C51,利用定时器t0,设计时钟(通过led点亮方式显示)

  • Post author:
  • Post category:其他


采用中断扩展方式实现1 s定时。将内存单元30H、31H、32H分别作为时、分、秒单元,每当定时1 s到时,秒单元内容加1,同时秒指示灯闪;满60 s,则分单元加1,同时分指示灯闪;满60 min,则时单元加1,同时,时指示灯闪;满24 h后将时单元清“0”,同时熄灭所有指示灯。

在这里插入图片描述

在这里插入图片描述

#include<reg52.h>
sbit P1_0=P1^0;
sbit P1_3=P1^3;
sbit P1_7=P1^7;
int i,y,a,b,o;
void delayms (unsigned int i)
{
 unsigned int j;
 for(;i!=0;i--)
 {
  for(j=0;j<123;j++);
  }
}
void timer0_() interrupt 1
{
 TH0=0x3C;
 TL0=0xB0;
 i++;
 if(i==10)
 {
  P1_0=~P1_0;
  i=0;
  y++;
  if(y==60)
  {
   P1_3=~P1_3;
   delayms(200);
   P1_3=0;
   y=0;
   a++;
   if(a==60)
   {
    P1_7=~P1_7;
	delayms(200);
	P1_7=0;
	a=0;
	 b++;
	if(b==24)
	{
	 P1=0xFF;
	 }
	}
   }
  }
}
void main()
{
  TMOD=0x01;
  TH0=0x3C;
  TL0=0xB0;
  TR0=1;
  ET0=1;
  EA=1;
  i=0;
  y=0;
  a=0;
  o=0;
  b=0;
  while(1);
}



版权声明:本文为qq_52679261原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。