lcd液晶显示电子时钟LCD liquid crystal display electronic clock.docx
- 文档编号:29005453
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:13
- 大小:16.03KB
lcd液晶显示电子时钟LCD liquid crystal display electronic clock.docx
《lcd液晶显示电子时钟LCD liquid crystal display electronic clock.docx》由会员分享,可在线阅读,更多相关《lcd液晶显示电子时钟LCD liquid crystal display electronic clock.docx(13页珍藏版)》请在冰豆网上搜索。
lcd液晶显示电子时钟LCDliquidcrystaldisplayelectronicclock
lcd1602液晶显示电子时钟(LCD1602liquidcrystaldisplayelectronicclock)
LCD1602liquidcrystaldisplayelectronicclock
Heroesandheroes,happyNewYear!
IlearnClanguagesoontodaytowriteaclockprogram,foundwhendebugging,manualadjustmentiscompletelynormal,butintheautomatictime,dateandweekisinconsistentwiththefacts,pleasehelpme,thankyou,thefollowingsourceprogram
#include
#defineucharunsignedchar
#defineuintunsignedint
Sbitrs=P2^0;
SbitRW=P2^1;
Sbitlcden=P2^2;
Sbits1=P1^5;
Sbits2=P1^6;
Sbits3=P1^7;
Uchar,count,s1num;
Char,Miao,Shi,Fen,W,R,y,a;
Ucharcodetable[]="2009-01-29W4"";
Ucharcodetable1[]="00:
00:
00"";
Voiddelay(uintz)//delayprocedures
{
Uint,x,y;
For(x=z;x>0;x--)
For(y=110;y>0;y--);
}
Voidwrite_com(ucharcom)//writecommandstothe1602LCD
{
RW=0;
Rs=0;
Lcden=0;
P0=com;
Delay(5);
Lcden=1;
Delay(5);
Lcden=0;
}
Voidwrite_date(uchardate)//writedatatothe1602LCD
{
RW=0;
Rs=1;
Lcden=0;
P0=date;
Delay(5);
Lcden=1;
Delay(5);
Lcden=0;
}
Void(init)//initialize
{
Ucharnum;
Lcden=0;
Write_com(0x38);//setthedisplaymode
Write_com(0x0c);//opendisplay
Write_com(0x06);//whenwritingtimeautomaticplus1
Write_com(0x01);//screendisplay
Write_com(0x80);//pointerdataset
For(num=0;num<15;num++)//setthefirstlinedigitalposition
{
Write_date(table[num]);//thefirstlineofdigitaldisplay
Delay(5);
}
Write_com(0x80+0x40);//setthenextdisplaysecondlines
For(num=0;num<12;num++)//setthesecondrowposition
{
Write_date(table1[num]);//digitaldisplaysecondlines
Delay(5);
}
TMOD=0x01;//setthetimerfunction1
TH0=(65536-50000/256);//timerinitialloading
TL0=(65536-50000)%256;
EA=1;//openinterrupt
ET0=1;//T0timerinterrupt
TR0=1;//starttimer
}
Voidwrite_sfm(ucharadd,uchardate)whentheseparation//
{
UcharShi,Ge;//setabit,tenbitvariable
Shi=date/10;//fromten
Ge=date%10;//froma
Write_com(0x80+0x40+add);//location
Write_date(0x30+shi);//thetenbitdata
Write_date(0x30+ge);//abitdata
}
Voidwrite_r(uchar,add,uchar,date)
{
UcharGe;//setabit
Ge=date;
Write_com(0x80+add);//location
Write_date(0x30+ge);//abitdata
}
Voidwrite_ny(ucharadd,uchardate)whentheseparation//
{
UcharShi,Ge;//setabit,tenbitvariable
Shi=date/10;//fromten
Ge=date%10;//froma
Write_com(0x80+add);//location
Write_date(0x30+shi);//thetenbitdata
Write_date(0x30+ge);//abitdata
}
Void(keyscan)//keyscan
{
If(s1==0)//iftheS1keyispressed
{
Delay(5);//Xiaodou
If(s1==0)//againconfirmingwhetherakeyispressed,theexecutionofprogram
{
S1num++;
While(S1!
);//determinewhethertheS1keyup,
Iflifted,enterthesetstate
If(s1num==1)//ifthisnumberis1,theimplementationofprogram
{
TR0=0;//shutdowntimer
Write_com(0x80+0x40+10);//setthecursorinthesecondposition
Write_com(0x0f);//setthelightandflashingdisplay
}
}
If(s1num==2)//ifthisnumberis2,theimplementationofprogram
{
Write_com(0x80+0x40+7);//setthecursorintheposition
}
If(s1num==3)//ifthisnumberis3,theimplementationofprogram
{
Write_com(0x80+0x40+4);//setthecursorintheposition
}
If(s1num==4)//ifthisnumberis4,theimplementationofprogram
{
Write_com(0x80+14);//setthecursorpositionintheweek
}
If(s1num==5)//ifthisnumberis5,theimplementationofprogram
{
Write_com(0x80+9);//setthecursorpositiononthedate
}
If(s1num==6)//ifthisnumberis6,theimplementationofprogram
{
Write_com(0x80+6);//setthecursorpositioninthemonth
}
If(s1num==7)//ifthisnumberis7,theimplementationofprogram
{
Write_com(0x80+3);//setthecursorpositionintheyear
}
If(s1num==8)//ifthisnumberis8,exitthesettingstate
{
S1num=0;//thenumberzero
Write_com(0x0c);//closecursor
TR0=1;//starttimer,traveltime
}
}
If(s1num!
=0)//ifthisnumberisnot0,thenentertheadjustmentplusorminuskey
{
If(s2==0)toconfirmwhetherakeyispressed.
{
Delay(5);//Xiaodou
If(s2==0)//againconfirmingwhetherakeyispressed
{
While(S2!
);//determinewhethertheS1keyislifted,iflifted,enterthesetstatenumber
If(s1num==1)//determinethesetpositionisinseconds
{
Miao++;
If(miao==60)isappliedtothe60//
Miao=0;//reset
Write_sfm(10,Miao);//refresh
Write_com(0x80+0x40+10);
}
If(s1num==2)
{
Fen++;
If(fen==60)
Fen=0;
Write_sfm(7,Fen);
Write_com(0x80+0x40+7);
}
If(s1num==3)
{
Shi++;
If(shi==24)
Shi=0;
Write_sfm(4,Shi);
Write_com(0x80+0x40+4);
}
If(s1num==4)//determinethesetpositionisintheweek
{
W++;
If(w==7)isappliedtothe7//
W=0;//ZhouQingling
Write_r(14,w);//refresh
Write_com(0x80+14);
}
If(s1num==5)//determinethesetpositionisintheday
{
R++;
If(r==32)isappliedtothe31//
R=1;//day1
Write_ny(9,R);//refresh
Write_com(0x80+9);
}
If(s1num==6)//determinethesetpositionisinJune
{
Y++;
If(y==13)isappliedtothe12//
Y=1;//seigetsu
Write_ny(6,y);//refresh
Write_com(0x80+6);
}
If(s1num==7)//determinethesetpositionisintheyear
{
A++;
If(a==100)isappliedtothe99//
A=0;//yearzero
Write_ny(3,a);//refresh
Write_com(0x80+3);
}
}
}
If(s3==0)
{
Delay(5);
If(s3==0)
{
While(...S3);
If(s1num==1)
{
Miao--;
If(miao==-1)
Miao=59;
Write_sfm(10,Miao);
Write_com(0x80+0x40+10);
}
If(s1num==2)
{
Fen--;
If(fen==-1)
Fen=59;
Write_sfm(7,Fen);
Write_com(0x80+0x40+7);
}
If(s1num==3)
{
Shi--;
If(shi==-1)
Shi=23;
Write_sfm(4,Shi);
Write_com(0x80+0x40+4);
}
If(s1num==4)
{
W--;
If(w==-1)
W=6;
Write_r(14,w);//refresh
Write_com(0x80+14);
}
If(s1num==5)//determinethesetpositionisintheday
{
R--;
If(r==0)
R=31;
Write_ny(9,R);//refresh
Write_com(0x80+9);
}
If(s1num==6)//determinethesetpositionisinJune
{
Y--;
If(y==0)
Y=12;
Write_NY(6/refreshthedisplay,y).
Write_COM(0x80+6);
}
If(s1num==7)
{
Sub-.
If(A==0)
A=99;
Write_NY(three)//refresh
Write_COM(0x80+3);
}
}
}
}
}
Invalidmain()/MasterProgram
{
Init();
And
(1)
{
Keyscan();
}
}
(1)timer0invalidinterrupt/interrupt
{
Th0=(6553650000)/256;
Tl0=256(6553650000)%;
Number++
If(==19)
{
Number=0;
Miao++
If(Miao==60)
{
Miao=0;
Fen++
If(Fen==60)
{
Fen=0;
Stone++
If(stone==24)
{
Stone=0;
W++/weekplus1
R++//daysplus1
If(W==7)
{
W=0;
If(R==32)
{
R=1;
Monthplus1++Y//
If(Y==13)
{
Y=1;
A++/yearplus1
If(A=100)
{
A=0;
}
Write_NY(three)//refresh
}
Write_NY(6);
}
Write_NY(9,R);
}
Write_R(14,W/refresh);
}
(4SFM_,stone);
}
Write_SFM(7,Fen);
}
Write_SFM(10,Miao);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lcd液晶显示电子时钟LCD liquid crystal display electronic clock lcd 液晶显示 电子 时钟
![提示](https://static.bdocx.com/images/bang_tan.gif)
链接地址:https://www.bdocx.com/doc/29005453.html