#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar int_time; //定义中断次数计数变量
uchar second=0;
uchar minute=0; //分钟计数变量
uchar hour=0;
sbit RS = P3^0;
sbit RW = P3^1;
sbit E = P3^2;
unsigned char s1[] = {"0123456789:"};//共阴
void display(unsigned char h,unsigned char m,unsigned char s)
{
writecmd(0xc4);
writedat(s1[h/10]);
writecmd(0xc5);
writedat(s1[h%10]);
writecmd(0xc6);
writedat(s1[10]);
writecmd(0xc7);
writedat(s1[m/10]);
writecmd(0xc8);
writedat(s1[m%10]);
writecmd(0xc9);
writedat(s1[10]);
writecmd(0xca);
writedat(s1[s/10]);
writecmd(0xcb);
writedat(s1[s%10]);
}
void main()
{
initlcd();
TMOD=0x01;
EA=1;
ET0=1;
TH0=0x3c;//(65536-50000)/256
TL0=0xB0;
int_time=0;
second=45;
minute=22;
hour=14;
TR0=1;
while(1)
{
display(hour,minute,second);
}
}
void T0_interserve() interrupt 1 using 1
{
TH0=0x3c;
TL0=0xB0;
int_time++;
if(int_time==20)
{
int_time=0;
second++;
}
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
}