液晶显示计数器倒计时完整程序Word文档格式.docx
《液晶显示计数器倒计时完整程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《液晶显示计数器倒计时完整程序Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
sbitLCD_RS=P2^4;
sbitLCD_RW=P2^3;
sbitLCD_EN=P2^2;
unsignedchartt,miao,fen,shi;
unsignedchara[]=&
quot;
QQ:
287712876&
;
charb[]=&
00:
00:
00&
/****************************************************************/
/**/
/*延时子程序*/
voiddelay(intms)
{
inti;
while(ms--)
{
for(i=0;
i&
250;
i++)
_nop_();
}
delay1(unsignedintz)
{unsignedcharx,y;
for(x=z;
x&
0;
x--)
for(y=110;
y&
y--);
/*检查LCD忙状态*/
/*lcd_busy为1时,忙,等待。
lcd-busy为0时,闲,可写指令与数据。
*/
bitlcd_busy()
bitresult;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
result=(bit)(P1&
amp;
0x80);
LCD_EN=0;
returnresult;
/*写指令数据到LCD*/
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。
voidwrite_com(unsignedcharcom)
while(lcd_busy());
LCD_RW=0;
P1=com;
/****************
*************************
***********************/
/*写显示数据到LCD*/
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。
voidwrite_date(unsignedchardate)
LCD_RS=1;
P1=date;
voidwrite_sfm(unsignedcharadd,unsignedchardate)
{unsignedcharshi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+0x40+add);
write_date(0x30+shi);
write_date(0x30+ge);
/*LCD初始化设定*/
voidinit()
{unsignedinti;
write_com(0x38);
//16*2显示,5*7点阵,8位数据
delay(5);
write_com(0x0c);
//显示开,关光标
write_com(0x06);
//移动光标
write_com(0x01);
//清除LCD的显示内容
write_com(0x80);
for(i=0;
i&
16;
i++)
{write_date(a[i]);
delay1(5);
write_com(0x80+0x40);
for(i=0;
12;
{write_date(b[i]);
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
voidmain()
{//unsignedchari;
init();
while
(1)
{if(tt==20)
{tt=0;
miao++;
if(miao==60)
{miao=0;
fen++;
if(fen==60)
{fen=0;
shi++;
if(shi==24)
{shi=0;
write_sfm(4,shi);
write_sfm(7,fen);
write_sfm(10,miao);
voidtimer0()interrupt1
{TH0=(65536-50000)/256;
tt++;