欢迎来到天天文库
浏览记录
ID:37836484
大小:62.00 KB
页数:13页
时间:2019-06-01
《12864显示可调1302时钟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/***************************************************************系统名称:多功能电子时钟仪日期:2012,6,20功能描述:LCD12864串行模式显示,DS1302读取时间年月份,18B20读取温度****************************************************************/#include#include#include#defineucharunsignedchar#def
2、ineuintunsignedint/*------------LCD12864相关声明-----------------------------*/#definecom0#definedat1sbitcs=P2^4;sbitsid=P2^5;sbitsck=P2^6;sbitpsb=P2^1;ucharcodeTAB1[]={"多功能电子时钟仪"};//第一行初始化.ucharcodeTAB2[]={"20年月日"};//第二行ucharcodeTAB3[]={"星期::"};//第三行ucharcodeTAB4[]={"室温:℃"};//第四行/
3、*----------------------DS1302相关声明-------------------------*/charTAB_1302[]={0x00,0x40,0x09,0x10,0x07,0x00,0x12};//秒:分:时:日:月:星期:年.ucharcodeTAB_XQ[]={"一二三四五六日"};//把DS1302数字日期转换为中文字符.sbitT_CLK=P1^4;/*实时时钟的时钟线引脚*/sbitT_IO=P1^5;/*实时时钟的数据线*/sbitT_RST=P1^6;/*实时时钟的复位线引脚*/ucharbdatadatb
4、yte;sbitdatbyte0=datbyte^0;sbitdatbyte7=datbyte^7;/*--------------18B20相关声明-------------------------------*/uchardis1[16];sbitDQ=P1^0;/*DS18B20温度检测*//*----------键盘相关声明-------------------------------------*/sbitkey=P3^5;//功能键sbitkey1=P3^3;//自加“+”键sbitkey2=P3^4;//自减“-”键ucharsum,k
5、eyflag=0;//调用时,分,秒,标志,调用键盘处理标志./*--------------以下为LCD12864相关函数--------------------------*//**************************************************************函数名称:voiddelay1ms(uintx)函数功能:延时1MS***************************************************************/voiddelay1ms(uintx){uinti,j
6、;for(i=0;i7、CY;sck=1;}}/**************************************************************函数名称:ucharr_12864byte(void)函数功能:读字节***************************************************************/ucharr_12864byte(void){uchari,temp1,temp2;temp1=0;temp2=0;for(i=0;i<8;i++){temp1=temp1<<1;sck=0;sck=1;sck8、=0;if(sid)temp1++;}for(i=0;i<8;i++){temp2=temp2<<1;sck
7、CY;sck=1;}}/**************************************************************函数名称:ucharr_12864byte(void)函数功能:读字节***************************************************************/ucharr_12864byte(void){uchari,temp1,temp2;temp1=0;temp2=0;for(i=0;i<8;i++){temp1=temp1<<1;sck=0;sck=1;sck
8、=0;if(sid)temp1++;}for(i=0;i<8;i++){temp2=temp2<<1;sck
此文档下载收益归作者所有