基于51单片机——60秒倒计时时钟

设计要求:

两个数码管实现从59开始显示倒计时时钟。

硬件电路连接

基于51单片机——60秒倒计时时钟_第1张图片

程序

#include

unsigned char second,timer;

void t1_init()     //中断初始化
{
     TMOD=0x10;     //软件启动定时器T1,方式1 0001 0000
     IE=0x88;       //EA=1;ET1=1;开总中断,开定时器T1中断 1000 1000
     TH1=0x3c;          
     TL1=0xb0;      //置入初值3CB0(H),15536(D),单次定时时间为50ms
     TR1=1;         //使能定时器T1中断
}

void main()
{
     t1_init();
     second=59;     //从59开始倒计数
     timer=0;
     while(1);
}

void t1_func() interrupt 3  //定时器T1中断函数
{
     TH1=0x3c;      //重装初值
     TL1=0xb0;
     if(timer<20)   //50ms*20=1s
     {
          timer=timer+1;
     }
     else if(timer==20) //1s时间到
     {
          timer=0;
          if(second==0)
          {
             second=59;
          }
          else 
          {
             second=second-1;   //倒计时减1
          }
     }
     P2=second/10;	 //取整数表示十位
     P3=second%10;   //取余数表示个位
}







 

你可能感兴趣的:(单片机简单设计,51单片机,蓝桥杯,单片机)