单片机液晶时钟及仿真图.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机液晶时钟及仿真图

/******************************************** 功能说明:液晶时钟 接线说明:P0控制Data I/O ,P1^0控制时分秒调整,P1^1、P1^2控制时间增减,P2^6、P2^5、P2^7控制RS、RW、E 作 者:合工大 LS *********************************************/ #includereg52.h #define uchar unsigned char #define uint unsigned int char second,min=14,hour=13; uchar temp1,temp2,count,flag,i,j,move; uchar table1[]={ I love you! }; uchar table2[]={ 13:14:00 }; //sbit rs=P2^0; //sbit rw=P2^1; //sbit en=P2^2; sbit rs=P2^6; sbit rw=P2^5; sbit en=P2^7; sbit mod=P1^0; sbit inc=P1^1; sbit dec=P1^2; //-----------延时函数------------------// void delay(uint z) { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--); } //------------行控制---------------------// void write_com(uchar line) { rs=0;rw=0;en=1; //P3=line; P0=line; delay(1); en=0; } //------------数据控制------------------// void write_date(uchar Date) { rs=1;rw=0;en=1; //P3=Date; P0=Date; delay(1); en=0; } //------------------------------// void display(uchar addr, char tempx) { temp1=tempx/10; write_com(0xc0+addr); write_date(0x30+temp1); //0x30 0的字符码 temp2=tempx%10; write_com(0xc0+addr+1); write_date(0x30+temp2); } //-----------初始化--------------// void initial() { TMOD=0x01; //16位定时模式 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; //开CPU中断 ET0=1; //开定时器T0中断 TR0=1; //开定时器 write_com(0x38);//设置16*2显示,5*7点阵,8位数据接口 // write_com(0x0e);//开显示 write_com(0x0c);//显示开,关光标 write_com(0xc0); //第二行首址 for(j=0;j16;j++) { write_date(table2[j]); } } void main() { initial(); while(1) { write_com(0x80+move); for(i=0;i16;i++) { write_date(table1[i]); } display(4,hour); display(7,min); display(10,second); if(move15) move++; else move=0; delay(500); } } //---------------中断----------------------// void timer0() interrupt 1 { count++; if(count==20) { count=0; second++; if(second==60) { min++; second=0; if(min==60) { hour++; min=0; if(hour==24) { hour=0;min=0;s

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档