要求
1、用8位数码显示管显示00-00-00表示小时-分钟-秒。
2、用定时器
定时器代码
#include <reg52.h>
sbit LED=P1^0;
unsigned char numl=0;
int flag=0;
void main()
{
TMOD=0x01; //定时器工作模式
TH0=(65536-50000)/256; //定时高8位
TL0=(65536-50000)%256; //定时低8位
TR0=1; //打开定时器0
ET0=1; //打开定时器0中断
EA=1; //打开总中断
while(1)
{
if(flag)
{
flag=0; //flag清零,下一次flag=1的时候进入
LED=!LED; //LED取反输出
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256; //重置定时高8位
TL0=(65536-50000)%256; //重置定时低8位(50ms)
numl++;
if(numl==20) //判断计数到1s
{
numl=0;
flag=1; //flag置1 --> 主函数里执行取反
}
}
时钟程序:
#include <reg52.h>
sbit duan=P2^2;
sbit wei=P2^3;
unsigned char num[11]=//0到9和-显示数据提前储存
{
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0xbf
};
void delay_ms(unsigned int num)//