中断及定时器实现24时 时钟,程序如下:
#include <reg52.h>
#define PORTLEN P0
sbit bit_select = P2^0;
sbit seg_select = P2^1;
unsigned char src[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char qrc[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char second1[8];
unsigned char shi = 0;
unsigned char fen = 0;
unsigned char miao = 0;
void timer0_init(void)
{
EA = 1; //打开总中断
TMOD |= 0x01; //设置工作方式
TH0 = (65536 - 20000) / 256;
TL0 = (65536 - 20000) % 256; //设置定时器初值,1ms产生一次中断
ET0 = 1; //打开定时器中断
TR0 = 1; //打开定时器,开始每隔1ms加1
} //打开计时器开始加1,当TH0 =0xff,TL0=0xff时&