精华内容
下载资源
问答
  • 单片机倒计时

    2021-03-19 18:51:13
    单片机写的倒计时程序
  • 单片机倒计时一分钟,后三秒有提示音,三个按键,分别是,启动停止和复位
  • 单片机倒计时实验报告 《单片机原理及应用》 课程设计报告 专业电子信息工程班级XX01姓名黄升平指导老师周莹莲、廖亦凡 二0一二年十二月二十五日 课程设计任务书 一、设计题目:答辩倒计时器二、设计要求 ...

    单片机倒计时实验报告 《单片机原理及应用》 课程设计报告 专业电子信息工程班级XX01姓名黄升平指导老师周莹莲、廖亦凡 二0一二年十二月二十五日 课程设计任务书 一、设计题目:答辩倒计时器二、设计要求 设计一个答辩倒计时器,用2位数码管显示剩余分钟,2位数码管显示剩余秒,复位后显示表示设定10分钟,并可加减修改,按开始/取消按钮开始倒计时,再次按开始/取消按钮则复位,时间到则蜂鸣音提示。总体要求如下:1、方案论证,确定总体电路原理图。 2、元器件选择,设计PCB图。3、绘制程序流程图,编写汇编语言源程序。4、安装调试,实现倒计时器的基本功能。 三、设计报告内容 1、写出设计方案,给出完整的电路原理图和设计程序流程图。 2、对所设计方案的实现进行全面分析。3、编程调试方法和程序清单。 4、安装调试过程,出现的各种现象,总结经验和体会。5、进一步完善的设想。 目录 一、课程设计目的....................................................................................1二、课程设计题目描述和要求................................................................1三、课程设计报告内容............................................................................1 硬件电路.........................................................................................................................2复位电路.......................................................(转载于:写论文网:单片机倒计时实验报告)...........................................................3晶振电路..................................................................................................................3单片机最小系统....................................................................................................4硬件流程图............................................................................................................4源程序设计...................................................................................................................5程序清单..................................................................................................................5程序流程图..............................................................................................................6 四、设计过程............................................................................................7 实践步骤.........................................................................................................................7实践标准.........................................................................................................................7系统调试...................................

    展开全文
  • 单片机倒计时程序

    2017-09-29 00:41:16
    //基于51单片机倒计时器 //时间范围0-99分 //其中shutdownIO为断开单片机自锁的电源用,可不用,就可以循环演示。倒计时运行后仍然可以加减时间
  • 基于51单片机倒计时设计

    热门讨论 2010-12-28 18:08:36
    基于51的单片机倒计时设计,里面有设计报告,c语言程序等等倒计时可以设置时间,可以暂停等等
  • 51单片机倒计时源程序.txt
  • 单片机倒计时,是m51单片机,当计时到0是,蜂鸣器会叫,led灯会闪烁
  • 基于51单片机倒计时数码管仿真设计 视频演示地址: https://www.bilibili.com/video/BV1ez4y1o71d/ 功能操作说明: 本设计包括四个按键,单片机复位按键,开始/加,停止/减,设置键。 开机运行后默认显示倒计时时间1...

    基于51单片机倒计时数码管仿真设计
    视频演示地址:
    https://www.bilibili.com/video/BV1ez4y1o71d/
    功能操作说明:
    本设计包括四个按键,单片机复位按键,开始/加,停止/减,设置键。
    开机运行后默认显示倒计时时间1分,十秒。
    按下开始或停止进行倒计时。按下设置后,设置分和秒。

    展开全文
  • 设计要求: 1:上电后二位数码管显示882:单击按钮,倒计时开始从20秒开始,到0时喇叭发声。3:双击按钮开关:倒计时从0开始正常记时,到20秒后发声。4:记数结束从开始状态重新开始下一轮.
  • 51单片机倒计时控制继电器输出时间,时间大于或等于1秒继电器输出,时间小于1秒继电器停止输出,已经经过调试可靠可行,请放心下载,不会浪费你的积分。
  • 单片机倒计时

    2014-12-20 17:29:19
    数码管显示时间,有加建,有减键,到时报警功能
  • 关于51单片机倒计时数码管显示的数值转换问题,很详细的
  • stc 单片机设计的 数码管倒计时 报警
  • 单片机C写的一个可调倒计时程序 调试过可以
  • 基于C语言的单片机程序,来实现倒计时的,led输出
  • 本文仅记录我自己瞎搞的...我的单片机长这样:JD51单片机开发板(我也不知道为啥他为啥传上来就斜了)开发板原理图我初步写的程序:#include <reg52.h> #define uchar unsigned char #define uint unsigned ...

    本文仅记录我自己瞎搞的东西,自己当做笔记看,如果偶然间您看到了本文,希望能博您一笑。

    我是菜逼!我是菜逼!我是菜逼!

    我的单片机长这样:

    f18eac773d7094c6fa717aa714d30c06.png
    JD51单片机开发板

    (我也不知道为啥他为啥传上来就斜了)

    0c0eef40ac484e237e5b5885bef3d5b6.png
    开发板原理图

    我初步写的程序:

    #include <reg52.h>
    
    #define uchar unsigned char
    #define uint unsigned int 
    
    sbit C573 = P2^5;		//控制数码管芯片开启
    uchar times = 0;		//计数器轮数
    uint time = 30;			//初步定义倒计时30秒
    code uchar letter[] =  {0xc0,0xf9,0xa4,0xb0,
    			0x99,0x92,0x82,0xf8,
    			0x80,0x90,0x88,0x83,
    			0xc6,0xa1,0x86,0x8e};
    	        /*        0 , 1 , 2 , 3 ,
    		          4 , 5 , 6 , 7 ,
    		          8 , 9 , a , b ,
    			  c , d , e , f ,  */
    code uchar local[] = { 1 ,0xfe,0xfd,0xfb,0xf7};
      //数码管位	     占位,左1,左2,左3,左4
    
    void Clock1();               //计时1s
    void T0reset();
    //uint Alltime( uint time ); //总时间(以后再写)
    void Output( uint temp );    //显示输出当前时间
    void delay( uint );	     //延时函数
    
    void main()
    {
    	while(1)
    	{
    		while(time)
    		{
    			Output(time);	         //显示时间
    			Clock1();		 //计时1秒
    			time--;			 //时间-1秒
    		}
    	}
    }
    
    void Clock1()
    {
    	times = 14;
    	while(times)
    	{ 
    		if(TF0 == 1)
    		{
    			T0reset();
    			times--;
    		}
    	}
    }
    
    void T0reset()
    {
    	TMOD = 0x01;
    	TH0 = 0;
    	TL0 = 0;
    	TF0 = 0;
    	TR0 = 1;
    }
    
    void delay( uint temp )
    {
    	while(temp--);
    }
    
    void Output( uint temp )
    {
    	C573 = 1;
    	if(time > 9)
    	{
    		while(1)
    		{
    			P2 = local[3];
    			P0 = letter[time/10];
    			delay(200);
    			P0 = 0xff;
    			
    			P2 = local[4];
    			P0 = letter[time%10];
    			delay(200);
    			P0 = 0xff;
    		}
    	}
    	else while(1)
    	{
    		P2 = local[4];
    		P0 = letter[time];
    	}
    
    }

    然后呢我发现我发现这个程序在数码管显示的while循环之中出不来????

    我不信邪(万一好了呢??)烧进去一看

    果然一直显示30,并没有在计时,计时函数一直就没运行。

    屎意用上心头,我跑厕所拉屎,随着一声声噗呲噗呲有一个主意涌上心头!!!

    这个是不是需要一个中断函数????

    然而我发现我不会写

    看了会也没太看明白,但是却有另一个想法!

    我是不是可以把计时函数拆开,然后时刻去查询是否计满1s????

    我去搞搞


    我回来了,我写不出来,我去学学中断函数。


    诶我的妈真香,我没用中断函数,还是用查询模式把他给写了。

    代码如下:

    #include <reg52.h>
    
    #define uchar unsigned char
    #define uint unsigned int 
    
    sbit C573 = P2^5;		//¿ØÖÆÊýÂë¹ÜоƬ¿ªÆô
    uchar times = 0;		//¼ÆÊýÆ÷ÂÖÊý
    uint time = 30;			//³õ²½¶¨Òåµ¹¼Æʱ30Ãë
    code uchar letter[] =  {0xc0,0xf9,0xa4,0xb0,
    						0x99,0x92,0x82,0xf8,
    						0x80,0x90,0x88,0x83,
    						0xc6,0xa1,0x86,0x8e};
    			  	/*        0 £¬ 1 £¬ 2 £¬ 3 £¬
    						  4 £¬ 5 £¬ 6 £¬ 7 £¬
    						  8 £¬ 9 £¬ a £¬ b £¬
    						  c £¬ d £¬ e £¬ f £¬  */
    code uchar local[] = { 1 ,0xfe,0xfd,0xfb,0xf7};
    		//ÊýÂë¹Üλ	 ռ룬×ó1£¬×ó2£¬×ó3£¬×ó4
    
    void T0reset();
    //uint Alltime( uint time ); //×Üʱ¼ä£¨ÒÔºóÔÙд£©
    void Output( uint temp );    //ÏÔʾÊä³öµ±Ç°Ê±¼ä
    void delay( uint );			 //ÑÓʱº¯Êý
    void Output0();
    
    void main()
    {
    	while(1)
    	{
    		while(time)
    		{
    			Output(time);	 //ÏÔʾʱ¼ä			 //ʱ¼ä-1Ãë
    			Output0();
    		}
    	}
    }
    
    void T0reset()
    {
    	TMOD = 0x01;
    	TH0 = 0;
    	TL0 = 0;
    	TF0 = 0;
    	TR0 = 1;
    }
    
    void delay( uint temp )
    {
    	while(temp--);
    }
    
    void Output()	                                          
    {
    	T0reset();
    	C573 = 1;
    	while(1)
    	{
    		P2 = local[1];
    		P0 = letter[time/1000];
    		delay(200);
    		P0 = 0xff;
    		
    		P2 = local[2];
    		P0 = letter[time/100];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[3];
    		P0 = letter[time/10];
    		delay(200);
    		P0 = 0xff;
    		
    		P2 = local[4];
    		P0 = letter[time%10];
    		delay(200);
    		P0 = 0xff;
    			
    		if(TF0)
    		{
    			times++;
    			T0reset();
    			if(times == 14) 
    			{
    				time--;
    				times = 0;
    			}
    		}
    		
    		if(!time) break;
    	}
    }
    
    void Output0()
    {
    	C573 = 1;
    	while(1)
    	{
    		P2 = local[1];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[2];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[3];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[4];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    	}
    }

    注释乱码了??算了凑合吧,我也懒得搞了。

    我现在打算

    1.我想用中断函数写一下这个程序

    2.我想加更多的操作,用户可以自己设置时间、倒计时到了会叫

    先来简单的最简单的,加操作。

    我搞了搞!你康康!!

    #include <reg52.h>
    
    #define uchar unsigned char
    #define uint unsigned int 
    
    sbit key1 = P3^2;
    sbit key2 = P3^3;
    sbit key3 = P3^4;
    sbit key4 = P3^5;
    sbit speaker = P2^4;
    sbit C573 = P2^5;		//¿ØÖÆÊýÂë¹ÜоƬ¿ªÆô
    uchar times = 0;		//¼ÆÊýÆ÷ÂÖÊý
    uint time = 0;			//³õ²½¶¨Òåµ¹¼Æʱ30Ãë
    code uchar letter[] =  {0xc0,0xf9,0xa4,0xb0,
    						0x99,0x92,0x82,0xf8,
    						0x80,0x90,0x88,0x83,
    						0xc6,0xa1,0x86,0x8e};
    			  	/*        0 £¬ 1 £¬ 2 £¬ 3 £¬
    						  4 £¬ 5 £¬ 6 £¬ 7 £¬
    						  8 £¬ 9 £¬ a £¬ b £¬
    						  c £¬ d £¬ e £¬ f £¬  */
    code uchar local[] = { 1 ,0xfe,0xfd,0xfb,0xf7};
    		//ÊýÂë¹Üλ	 ռ룬×ó1£¬×ó2£¬×ó3£¬×ó4
    
    void T0reset();				 //
    void Start();				 //
    void delay( uint );			 //ÑÓʱº¯Êý
    void Input();                //
    
    void main()
    {
    	while(1)
    	{
    		Input();
    		Start();	 //¿ªÊ¼
    			 speaker = 0;
    			 delay(2000000);
    			 speaker = 1;
    			 delay(2000000);
    			 speaker = 0;
    			 delay(2000000);
    			 speaker = 1;
    			 delay(2000000);
    			 speaker = 0;
    			 delay(2000000);
    			 speaker = 1;	
    	}
    }
    
    void T0reset()
    {
    	TMOD = 0x01;
    	TH0 = 0;
    	TL0 = 0;
    	TF0 = 0;
    	TR0 = 1;
    }
    
    void delay( uint temp )
    {
    	while(temp--);
    }
    
    void Start()	                                          
    {
    	T0reset();
    	C573 = 1;
    	while(1)
    	{
    		P2 = local[1];
    		P0 = letter[(time/1000)%10];
    		delay(200);
    		P0 = 0xff;
    		
    		P2 = local[2];
    		P0 = letter[(time/100)%10];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[3];
    		P0 = letter[(time/10)%10];
    		delay(200);
    		P0 = 0xff;
    		
    		P2 = local[4];
    		P0 = letter[time%10];
    		delay(200);
    		P0 = 0xff;
    			
    		if(TF0)
    		{
    			times++;
    			T0reset();
    			if(times == 14) 
    			{
    				time--;
    				times = 0;
    			}
    		}
    		
    		if(!time) break;
    	}
    }
    
    void Output0()
    {
    	C573 = 1;
    	while(1)
    	{
    		P2 = local[1];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[2];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[3];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[4];
    		P0 = letter[0];
    		delay(200);
    		P0 = 0xff;
    		
    		if(!key1) break;
    		if(!key2) break; 
    		if(!key3) break; 
    		if(!key4) break;  
    	}
    }
    
    
    
    void Input()
    {
    	C573 = 1;
    	while(1)
    	{
    		P2 = local[1];
    		P0 = letter[(time/1000)%10];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[2];
    		P0 = letter[(time/100)%10];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[3];
    		P0 = letter[(time/10)%10];
    		delay(200);
    		P0 = 0xff;
    
    		P2 = local[4];
    		P0 = letter[time%10];
    		delay(200);
    		P0 = 0xff;
    		
    		if(!key1) time += 10;
    		if(!key2) time ++;
    		if(!key3) time --;
    		if(!key4) break;
    	}
    }

    但是现在呢,我好像没有搞那个按键防抖还是什么的,出现了这个状况。

    bd89464c98719a8a029064454c8f83d6.png
    我也不知这是好还是坏https://www.zhihu.com/video/1243621908656422912

    我摸了摸74HC573 真的烫!!!

    我现在去看看中断函数咋写


    我写出来了!!!我现在去写注释!

    #include <reg52.h>
    
    #define uchar unsigned char
    #define uint unsigned int 
    
    sbit key1 = P3^2;
    sbit key2 = P3^3;
    sbit key3 = P3^4;
    sbit key4 = P3^5;
    sbit speaker = P2^4;
    sbit C573 = P2^5;		//控制数码管芯片开启
    
    uchar times = 0;		//计数器轮数
    uint time = 0;			//初步定义倒计时30秒
    code uchar letter[] =  {0xc0,0xf9,0xa4,0xb0,
    			0x99,0x92,0x82,0xf8,
    			0x80,0x90,0x88,0x83,
    			0xc6,0xa1,0x86,0x8e};
    	        /*        0 , 1 , 2 , 3 ,
    			  4 , 5 , 6 , 7 ,
    			  8 , 9 , a , b ,
    			  c , d , e , f ,  */
    code uchar local[] = { 1 ,0xfe,0xfd,0xfb,0xf7};
    		//数码管位	 占位,左1,左2,左3,左4
    
    void delay( uint temp )			 //延时函数
    {
    	while(temp--);
    }
    
    void OutputOnce()				 //输出单次数码管
    {
    	P2 = local[1];
    	P0 = letter[(time/1000)%10];
    	delay(200);
    	P0 = 0xff;
    
    	P2 = local[2];
    	P0 = letter[(time/100)%10];
    	delay(200);
    	P0 = 0xff;
    
    	P2 = local[3];
    	P0 = letter[(time/10)%10];
    	delay(200);
    	P0 = 0xff;
    
    	P2 = local[4];
    	P0 = letter[time%10];
    	delay(200);
    	P0 = 0xff;
    }
    
    void Input()					 //输入数字
    {
    	C573 = 1;
    	while(1)
    	{
    		OutputOnce();
    		if(!key1) time += 10;	         //S1加10秒
    		if(!key2) time ++;		 //S2加1秒
    		if(!key3) time --;		 //S3减1秒
    		if(!key4) break;		 //S4确定
    	}
    }
    
    void OutputTime()				 //循环输出数码管数字
    {								 
    	while(time)
    	{
    	 	OutputOnce();
    	}
    }
    
    void T0reset()					 //T0计时器复位
    {
    	TH0 = 0;
    	TL0 = 0;
    	TF0 = 0;
    }
    
    void Timer0() interrupt 1		 //中断函数timer0,不用调用T0reset函数,TF0会自动置0
    {
    	times++;
    	if(times == 14)
    	{
    		times = 0;
    		time--;
    	}
    }
    
    void main()
    {
    uint i;							 //定义局部变量i
    	while(1)
    	{
    		Input();
    		T0reset();
    		TMOD = 0x01;			 //计时器T0设为模式2运行
    		EA = 1;					 //打开中断总开关
    		ET0 = 1;				 //打开T0计时器中断开关
    		TR0 = 1;				 //开启T0计数器,开启Timer0中断函数
    		OutputTime();			 //输出time时间,等待中断函数启动
    		TR0 = 0;				 //关闭T0计数器,关闭Timer0中断函数,进入下一轮循环
    		for(i=0;i<600;i++)		 //蜂鸣器发声
    		{
    			speaker = 0;
    			delay(100);
    			speaker = 1;
    			delay(100);		 
    		}
    	}
    }

    演示效果如下:

    4672c2b16bc74436474ab04a7c4df2b7.png
    单片机倒计时实现https://www.zhihu.com/video/1243674895861002240

    蜂鸣器又把我家猫吓一跳,我家猫已经一个下午受我蜂鸣器的折磨了

    别看了,已经没了。

    展开全文
  • 本文通过倒计时秒表的设计,阐述了单片机最小系统的概念与设计,对单片机的定时、中断等功能模块的应用有进一步的理解;本文还阐述了单片机编程的一些方法。 关键字:单片机、电子秒表、定时、中断
  •  //将增计时变为减计时 if(TR0==0) //当定时器关闭时开启键值扫描 {key();} display(a); //显示函数 if(a) { led=0; //当减计时为0时,报警灯点亮 } else { led=1; //当减计时不为0时,报警灯熄灭 } } }

    #include

    unsigned  char code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管 0-9

    sbit led=P3^0;

    sbit s1=P0^0;

    sbit s2=P0^1;

    sbit k0=P2^0;

    sbit k1=P2^1;

    int sec=0,i,a,b=20,key1;

    /*-----延迟函数-------*/

    void delay(int z)

    {

    while(z-->0);

    }

    /*-----显示函数-------*/

    void display(int n)

    {

    if(n>0)

    {

    s2=1;s1=0;          //显示十位

    P1=tab[n/10];  //除10,取十位数值

    delay(100);           //延迟显示

    s1=1;s2=0;           //显示个位

    P1=tab[n%10];  //求余,取个位数值

    delay(100);           //延迟

    }

    else

    {                                //当输入值小于0,显示0

    s2=1;s1=0;            //显示十位

    P1=tab[0];            //除10,取十位数值

    delay(100);            //延迟

    s1=1;s2=0;            //显示个位

    P1=tab[0];                //求余,取个位数值

    delay(100);            //延迟显示

    }

    }

    /*-----外部中断0中断服务函数----------*/

    void RESET() interrupt        0

    {

    sec=0;         //恢复初始值

    b=20;         //恢复初始值

    TR0=0;         //关闭定时器

    }

    /*-----外部中断1中断服务函数----------*/

    void START() interrupt        2

    {

    TR0=1;        //打开定时器

    }

    /*-----定时器T0服务函数,计时功能----------*/

    void timer0() interrupt 1

    {

    i--;   //50ms时间到

    TH0=(65536-50000)/256;        //存放高8位,50ms

    TL0=(65536-50000)%256;          //存放低8位

    if(i==0)

    {

    i=20;            //1s计数

    sec++;                        //软件计数1s

    }

    }

    /*------键值扫描函数----------*/

    void key()

    {

    k0=1;k1=1;                    //读按键

    key1=P2;                //将P2的值赋值给key1

    key1=key1&0x03;                //屏蔽高6位,保留k0,k1的值

    while(key1!=0x03)   //判断是否有按键按下

    {

    delay(600);                        //消抖动

    key1=P2;

    key1=key1&0X03;

    while(key1!=0x03)         //当有按键按下时

    {

    if(k0==0) b=b+1;            //按下k0按键时,初始值加1

    else b=b-1;                         //按下k1按键时,初始值减1

    k0=1;k1=1;                   //判断按键是否抬起

    key1=P2;                  //重新将P2的值赋值给key1

    key1=key1&0x03;

    while(key1!=0x03)  //判断是否有按键按下

    {

    key1=P2;

    key1=key1&0x03;

    }

    }

    }

    }

    /*------主函数----------*/

    void main()

    {

    TMOD=0X01;                           //设定定时器0工作,工作方式1

    TH0=(65536-50000)/256;         //存放高8位,50ms

    TL0=(65536-50000)%256;         //存放低8位

    IT0=1;IT1=1;                 //外部中断选择下降沿触发

    IE=0X87;                         //开启INT0,INT1,T0

    PX0=1;                            //设定INT0为高优先级

    led=1;                                //初始灯熄灭

    TR0=0;                                //初始计数停止

    i=2;

    while(1)

    {

    a=b-sec;                         //将增计时变为减计时

    if(TR0==0)                         //当定时器关闭时开启键值扫描

    {key();}

    display(a);                         //显示函数

    if(a<=0)

    {

    led=0;                                 //当减计时为0时,报警灯点亮

    }

    else

    {

    led=1;                                //当减计时不为0时,报警灯熄灭

    }

    }

    }

    展开全文
  • 3.开始倒数计时结束后,继电器会做出相应判断。 4.重置后内定倒数时间为1min,显示“01:00”。 操作键动作如下: 1.操作键K1:可调整1min~99min及停止或中途调整定时; 2.操作键K2:设置倒数为调整分钟的十位...
  • 本资料是为单片机初学者准备的,每一步程序有详细的解释。为课程设计烦恼的同学可以参考一下。
  • 本文仅记录我自己瞎搞的...我的单片机长这样:JD51单片机开发板(我也不知道为啥他为啥传上来就斜了)开发板原理图我初步写的程序:#include <reg52.h> #define uchar unsigned char #define uint unsigned ...
  • 程序编译成功,仿真图已完成,都是0错误0警告。链接仿真时,LED各引脚的灯都是在跳动,可是灯却始终不亮。哪位大神帮我调试下?发邮箱。
  • 计时值 setval equ 22h ;设置的数值 counter equ 23h ;用于显示的计数器 count equ 24h ;秒计数器 keyval equ 25h ;按键寄存器 dispbuf equ 5eh ;显示缓冲区 first bit p2.5 ;第一个数码管控制 second bit ...
  • 单片机模拟十字路口的交通灯,采用自动红绿黄交通灯控制,具有固定的红灯、绿灯转换时间间隔,自动切换,每个方向具有倒计时功能。 功能要求: 1)要求南北方向车道和东西方向车道2条交叉道路上的车辆自动交替运行...
  • //中断计时 毫秒 秒 倒计时 void ShuMaXianShi(unsigned char s,unsigned char w,unsigned char d) { YanShi=255; P0=WeiXuanBiao[w]; wei=1; wei=0; P0=ShuMaGuan[s]|ShuMaGuan[d];//d显示小数点11,10关闭 ...
  • 51单片机-计时器-倒计时闹钟
  • 有关51单片机倒计时功能的倒计时表的设计,实现倒计时的功能
  • 单片机 校庆倒计时

    2011-12-23 15:19:15
    单片机 校庆倒计时单片机
  • 51单片机-计时器-倒计时闹钟

    千次阅读 2020-02-27 12:22:53
    51单片机-计时器-倒计时闹钟 1. 视频 bilibili视频地址: 2. 文件 文件下载地址: 3. 说明 注意KeyScan()函数if语句! 蜂鸣器频率问题; 想到再补充。 4. 代码 #include <reg52.h> sbit BUZZER = P2^3; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 736
精华内容 294
关键字:

单片机倒计时