欢迎来到天天文库
浏览记录
ID:39642188
大小:35.50 KB
页数:8页
时间:2019-07-08
《液晶显示程序2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#include#include#defineucharunsignedcharvoidlcd_ini();voidascii_change(void);voiddelay();voidwri_add(ucharcom);voidwri_dat(ucharcom1);voidshan(void);voiddisp();voidtkey(void);sbitcs=P1^7;sbitsid=P1^6;sbitsclk=P1^5;bitflag=1;uchardat,count,f=1;//f测试哪个单元为
2、当前闪烁状态 uchardataclock[3]={23,45,12};ucharcodeclockname[10]={"北京时间:"}; uchardatanum[6];/*******主程序*************/voidmain(){ lcd_ini(); count=10;//机器周期为1us,每次定时50ms,此变量用来控制循环次数,在下面赋值为20,共定时1秒 TMOD=0x01; TL0=0XB0; TH0=0X3C; EA=1; ET0=1; IT0=1; EX0=1; TR0=1; while(1) { back:
3、ascii_change(); disp(); delay(); if(flag==1) gotoback; tkey(); shan(); delay(); }}/****lcd初始化*******/ voidlcd_ini(){ wri_add(0x30); delay(); wri_add(0x0c); delay(); wri_add(0x01); delay(); wri_add(0x06); delay();} /********定时程序*************/ voidtimer1()interrupt1using2{
4、TL0=0XB0; TH0=0X3C; count--; if(count==0) { count=10; clock[2]++;//秒// } else gotoout; if(clock[2]==60) { clock[2]=0; clock[1]++;//分// } if(clock[1]==60) { clock[1]=0; clock[0]++; } if(clock[0]==24)//时// clock[0]=0; out:_nop_();}/*******十位个位转换成ASCII码************/
5、 voidascii_change(void) { num[5]=clock[2]-(clock[2]/10)*10+0x30; num[4]=clock[2]/10+0x30; num[3]=clock[1]-(clock[1]/10)*10+0x30; num[2]=clock[1]/10+0x30; num[1]=clock[0]-(clock[0]/10)*10+0x30; num[0]=clock[0]/10+0x30; } /********廷时程序*************/ voiddelay(){ uchari
6、,j; for(i=250;i>0;i--) for(j=250;j>0;j--);}/*****Writeaddress*********/voidwri_add(ucharcom){ uchari,j,k; cs=0; cs=1; dat=0xf8; for(i=1;i<=8;i++) { sid=(bit)(dat&0x80); sclk=0; sclk=1; sclk=0; dat=dat<<1;} dat=com; dat=dat&0xf0; for(j=1;j<=8;j++){ sid=(bit)(dat&0x80); sclk
7、=0; sclk=1; sclk=0; dat=dat<<1; } dat=com; dat=_cror_(dat,4);//此为高低四位交换 dat=dat&0xf0; for(k=1;k<=8;k++) { sid=(bit)(dat&0x80); sclk=0; sclk=1; sclk=0; dat=dat<<1; } }/*********Writedata*************/voidwri_dat(ucharcom1){ uchari,j,k; cs=0; cs=1; dat=0xfa; for(i=1;i<=8;i++
8、) { sid=(bit)(dat&0x80); sclk=0; sclk=1; sclk=0; dat=dat<<1;} dat=com1; dat=dat&0xf0; for
此文档下载收益归作者所有