LCD1602液晶显示DS1302实时时钟Proteus仿真.docx

LCD1602液晶显示DS1302实时时钟Proteus仿真.docx

ID:61419313

大小:37.68 KB

页数:5页

时间:2021-01-28

LCD1602液晶显示DS1302实时时钟Proteus仿真.docx_第1页
LCD1602液晶显示DS1302实时时钟Proteus仿真.docx_第2页
LCD1602液晶显示DS1302实时时钟Proteus仿真.docx_第3页
LCD1602液晶显示DS1302实时时钟Proteus仿真.docx_第4页
LCD1602液晶显示DS1302实时时钟Proteus仿真.docx_第5页
资源描述:

《LCD1602液晶显示DS1302实时时钟Proteus仿真.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Proteus仿真图:仿真程序:#include#include#include#defineuintunsignedint#defineucharunsignedchar//*******LCD*******sbitLCDRS=P2^0;//LCD数据/命令选择端sbitLCDRW=P2^1;sbitLCDEN=P2^2;//LCD使能新号端//******DS1302******sbitIO=P1^0;//1302数据线sbitSCLK=P1^1;//1302时钟线sbitRST=P1^2;//复位u

2、intnum=0;//uchar*week[]={"SUN","***","MON","TUS","WEN","THU","FRI","SAT"};ucharDate[]={"Date:2000-00-00"};ucharTime[]={"Time:*00:00-00*"};uchardate_time[7];//从ds1302读取的当前日期时间//=======延时=======voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//********向1302写数据*********voidw

3、rite_ds1302(uchardat){uchari;for(i=0;i<8;i++){IO=dat&0x01;//保持最后一位为1,读状态SCLK=1;delay(1);SCLK=0;dat>>=1;}}//*********从1302读数据*********ucharread_ds1302(){uchari,b=0x00;for(i=0;i<8;i++){b

4、=_crol_((uchar)IO,i);SCLK=1;delay(1);SCLK=0;}returnb/16*10+b%16;//与BCD码转换}//*********从指定位置读数据*******

5、*ucharread_data(ucharaddr){uchardat;RST=0;SCLK=0;RST=1;write_ds1302(addr);dat=read_ds1302();SCLK=1;RST=0;returndat;}//*********读取当前日期时间*********voidread_date_time(){uchari,addr=0x81;for(i=0;i<7;i++){date_time[i]=read_data(addr);addr+=2;}}//----------LCD写指令----------voidlcd_write_com(u

6、charcom){LCDRS=0;//RS为0时,写指令,RS为1时,写数据P0=com;delay(5);LCDEN=1;delay(5);LCDEN=0;}//----------LCD写数据----------voidlcd_write_data(uchardat){LCDRS=1;P0=dat;delay(5);LCDEN=1;delay(5);LCDEN=0;}//-------LCD初始化-------voidlcd_init(){LCDEN=0;lcd_write_com(0x38);//LCD显示模式设置lcd_write_com(0x0c);//

7、LCD显示开/关及光标设置lcd_write_com(0x06);//当写一个字符后地址指针加1,且光标加1lcd_write_com(0x01);//显示清屏}//---------设置液晶显示位置-----------voidset_lcd_pos(ucharp){lcd_write_com(p

8、0x80);}//---------液晶显示程序----------voidlcd_print(ucharp,uchar*s){set_lcd_pos(p);for(num=0;num<16;num++){lcd_write_data(s[num]);delay(10

9、);}}//----------日期时间转换-----------voidformat_datetime(uchard,uchar*p){p[0]=d/10+'0';p[1]=d%10+'0';}//---------主程序----------voidmain(){LCDRW=0;lcd_init();while(1){read_date_time();format_datetime(date_time[6],Date+8);//年月日format_datetime(date_time[4],Date+11);format_datetime(date_time[3

10、],Dat

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。