当前位置:文档之家› LCD显示数字时钟24小时及按键控制时间

LCD显示数字时钟24小时及按键控制时间

#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit lcd_rs=P1^0;
sbit lcd_rw=P1^1;
sbit lcd_en=P1^2;
sbit bell=P1^7;
sbit p20=P2^0;
sbit p21=P2^1;
sbit p22=P2^2;
sbit p23=P2^3;
sbit p24=P2^4;
sbit p25=P2^5;
uchar code tabledu[]=
"0123456789";
uchar miao1,miao2,shi1,shi2,fen1,fen2,a;
void time_init();
void key();
void delay(uint i)
{
uint x,y;
for(x=i;x>0;x--)
for(y=110;y>0;y--);
}
void wrrite_com(uchar com)
{
lcd_rs=0;
lcd_rw=0;
P0=com;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}
void wrrite_dat(uchar dat)
{
lcd_rs=1;
lcd_rw=0;
P0=dat;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}
void init()
{
lcd_en=0;
wrrite_com(0x38);
wrrite_com(0x0c);
wrrite_com(0x06);


}
void led_contrl(ulong i)
{
miao1=((((i%36000)%3600)%600)%60)%10;
miao2=((((i%36000)%3600)%600)%60)/10;
fen1=(((i%36000)%3600)%600)/60;
fen2=((i%36000)%3600)/600;
shi1=(i%36000)/3600;
shi2=i/36000;


}
void main()
{

ulong i=0;
init();
time_init();
wrrite_com(0x01);
wrrite_dat(tabledu[0]);
wrrite_com(0x80+0x40);
wrrite_dat(tabledu[0]);
wrrite_com(0x81+0x40);
wrrite_dat('-');
wrrite_com(0x82+0x40);
wrrite_dat(tabledu[0]);
wrrite_com(0x83+0x40);
wrrite_dat(tabledu[0]);
wrrite_com(0x84+0x40);
wrrite_dat('-');
wrrite_com(0x85+0x40);
wrrite_dat(tabledu[0]);
wrrite_com(0x86+0x40);
wrrite_dat(tabledu[0]);
wrrite_com(0x87+0x40);

while(1)
{

if(a==20)
{
p24=0;
p25=1;
if(p20==0)
{
delay(5);
if(p20==0)
{
i=i+60;

}
}
if(p21==0)
{
delay(5);
if(p21==0)
{
i=i-60;

}
}
if(p22==0)
{
delay(5);
if(p22==0)
{
i=i+3600;

}
}
if(p23==0)
{
delay(5);
if(p23==0)
{
i=i-3600;

}
}
a=0;
led_contrl(i);
wrrite_com(0x80);
wrrite_dat('S');

wrrite_com(0x83);
wrrite_dat('F');

wrrite_com(0x86);
wrrite_dat('M');


wrrite_com(0x80+0x40);
wrrite_dat(tabledu[shi2]);
//delay(150);

wrrite_com(0x81+0x40);
wrrite_dat(tabledu[shi1]);
//delay(150);



wrrite_com(0x82+0x40);
wrrite_dat('-');

wrrite_com(0x83+0x40);
wrrite_dat(tabledu[fen2]);
//delay(150);

wrrite_com(0x84+0x40);
wrrite_dat(tabledu[fen1]);
//delay(150);

wrrite_com(0x85+0x40);
wrrite_dat('-');

wrrite_com(0x86+0x40);
wrrite_dat(tabledu[miao2]);
//delay(150);

wrrite_com(0x87+0x40);
wrrite_dat(tabledu[miao1]);
//delay(150);

i++;
if(i>86398)
i=0;

if(shi1==5&&miao1==9)

{
bell=0;
delay(300);
bell=1;
}

}
}

}
void time_init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}

相关主题
文本预览
相关文档 最新文档