LCD12864显示实时时钟例程可运行.doc

LCD12864显示实时时钟例程可运行.doc

ID:55953107

大小:28.00 KB

页数:7页

时间:2020-06-18

LCD12864显示实时时钟例程可运行.doc_第1页
LCD12864显示实时时钟例程可运行.doc_第2页
LCD12864显示实时时钟例程可运行.doc_第3页
LCD12864显示实时时钟例程可运行.doc_第4页
LCD12864显示实时时钟例程可运行.doc_第5页
资源描述:

《LCD12864显示实时时钟例程可运行.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。下面是一段12864液晶显示实时时钟的程序:/***************************************************************************************时

2、间:2012.11.30晶振:11.0592MHz芯片:STC89C52RC功能描述:在12864上显示年、月、日、星期、时、分和秒等时间信息***************************************************************************************/#include#defineucharunsignedcharsbitCLK=P1^4;//DS1302引脚定义sbitIO=P1^5;sbitCE=P1^6;sbitACC

3、0=ACC^0;sbitACC7=ACC^7;sbitRS=P2^4;//12864引脚定义数据口为P0sbitRW=P2^5;sbitEN=P2^6;sbitPSB=P2^1;sbitRET=P2^3;voidInput_1byte(ucharTD)//DS1302输入一字节数据{uchari;ACC=TD;for(i=8;i>0;i--){IO=ACC0;CLK=1;CLK=0;ACC=ACC>>1;}}ucharOutput_1byte(void)//DS1302输出一字节数据{uchari;for(

4、i=8;i>0;i--){ACC=ACC>>1;ACC7=IO;CLK=1;CLK=0;}return(ACC);}voidWrite_DS1302(ucharadd,uchardat)//向DS1302写{CE=0;CLK=0;CE=1;Input_1byte(add);Input_1byte(dat);CE=0;}ucharRead_DS1302(ucharadd)//从DS1302读{ucharinf;//信息临时存储变量CE=0;CLK=0;CE=1;Input_1byte(add);inf=Out

5、put_1byte();CE=0;return(inf);}/**********************DS1302初始化*****************************/voidinit_1302(){if(Read_DS1302(0xd1)==0x55)//判断内存单元的内容,是否进行初始化{return;}else{Write_DS1302(0x8e,0x00);//关闭写保护Write_DS1302(0x90,0x00);//电池充电设置Write_DS1302(0x80,0x00);/

6、/秒Write_DS1302(0x82,0x54);//分Write_DS1302(0x84,0x20);//时Write_DS1302(0x86,0x30);//日Write_DS1302(0x88,0x11);//月Write_DS1302(0x8a,0x05);//星期Write_DS1302(0x8c,0x12);//年Write_DS1302(0xd0,0x55);//写RAMWrite_DS1302(0x8e,0x80);//打开写保护}}/**********************延时函数*

7、****************************/voidDelayUs2x(unsignedchart){while(--t);}voidDelayMs(unsignedchart){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/**********************12864判忙*****************************/voidcheck_busy(){RS=0;RW=1;EN=1;while((P0&0x80)

8、==0x80);EN=0;}/**********************12864写指令*****************************/voidwrite_com(ucharcom){check_busy();RS=0;RW=0;EN=1;P0=com;DelayUs2x(250);EN=0;DelayUs2x(250);}/**********************12864写数据*******

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

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

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