您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 12864液晶电子钟-具有按键可调、闹钟、温度显示
//程序已全部通过硬件测试,请放心使用。(没有使用到DS1302)/************12864时钟显示函数*************//******实现时间走动、按键控制、蜂鸣器闹铃、温度显示******/#includereg52.h#includestdio.h#defineucharunsignedchar#defineuintunsignedint/********************功能:定义液晶12864控制端接口*********************/sbitrs=P2^6;//注意:rw控制端始终为低电平,直接在硬件上接低电平sbiten=P2^7;sbitwd=P2^0;//温度传感器信号线/********************功能:定义蜂鸣器、按键接口*********************/sbitbeet=P2^2;//蜂鸣器定义sbitkey1=P1^0;//功能选择sbitkey2=P1^1;//至加sbitkey3=P1^2;//至减sbitkey4=P1^3;//北京时间与闹钟时间画面切换/********************功能:定义数据初始值******************************/charhour=23,minute=59,second=58,count=0;charshi=0,fen=0,miao=0,hm;intyears=2012;charmonth=12,day=30,mm=0,cc=7;uinttemp;floatf_temp;/********************功能:定义数组字符串*********************/ucharcodetable1[]={幸福牌电子钟};ucharcodetable2[]={温馨提示:00.0℃};/********************功能:延时函数***************************/voiddelay(uintz){uintx,y;for(x=z;x0;x--)for(y=110;y0;y--);}/*******************功能:蜂鸣器响应***********************/voidfengmingqi(){beet=0;delay(1);beet=1;delay(1);}/********************功能:液晶12864读写数据******************/voidxieling_shu(ucharaa,ucharbb){if(aa==1){rs=0;}if(aa==0){rs=1;}P0=bb;delay(1);en=1;delay(1);en=0;delay(1);}/********************功能:液晶12864写入地址******************/voidxieludizhi(ucharx,uchary){switch(x){case1:xieling_shu(1,0x80+y);return;//return返回的意思case2:xieling_shu(1,0x90+y);return;case3:xieling_shu(1,0x88+y);return;case4:xieling_shu(1,0x98+y);return;}}/********************功能:液晶12864写入字符串*****************/voidxiezifuchuan(uchar*dd){while(*dd!='\0'){xieling_shu(0,*dd++);}}/********************功能:液晶12864清屏函数*********************/voidqingping(){xieling_shu(1,0x01);//清屏xieling_shu(1,0x01);//清屏xieling_shu(1,0x01);//清屏delay(20);}/********************功能:液晶12864初始化指令操作******************/voidinit_12864(){xieling_shu(1,0x30);//基本指令操作xieling_shu(1,0x30);//基本指令操作xieling_shu(1,0x0C);//0x0c:无光标,OXOF:光标反白显示xieling_shu(1,0x01);//清屏xieling_shu(1,0x06);}/********************功能:液晶12864初始化字串显示******************/voidinit_zifu(){xieludizhi(1,0);xiezifuchuan(欢迎使用);delay(1);xieludizhi(2,0);xiezifuchuan(幸福牌电子钟);delay(1);xieludizhi(3,0);xiezifuchuan(订购热线);delay(1);xieludizhi(4,0);xiezifuchuan(Phone:0777-66914);delay(9534);qingping();xieludizhi(1,0);xiezifuchuan(table1);delay(1);xieludizhi(4,0);xiezifuchuan(table2);delay(1);xieludizhi(3,5);xiezifuchuan(星期);xieludizhi(2,2);xiezifuchuan(年月日);}/*******************功能:时间、年月日显示函数********************/voiddisplay(){xieludizhi(3,0);//显示时分秒xieling_shu(0,0x30+hour/10);xieling_shu(0,0x30+hour%10);xieling_shu(0,':');xieling_shu(0,0x30+minute/10);xieling_shu(0,0x30+minute%10);xieling_shu(0,':');xieling_shu(0,0x30+second/10);xieling_shu(0,0x30+second%10);xieludizhi(2,0);//显示年xieling_shu(0,0x30+years/1000);xieling_shu(0,0x30+years%1000/100);xieling_shu(0,0x30+years%100/10);xieling_shu(0,0x30+years%10);xieludizhi(2,3);//显示月xieling_shu(0,0x30+month/10);xieling_shu(0,0x30+month%10);xieludizhi(2,5);//显示日xieling_shu(0,0x30+day/10);xieling_shu(0,0x30+day%10);}/*******************功能:闹钟(时间、年月日)显示函数********************/voiddisplay1(){xieludizhi(3,0);//显示时分秒xieling_shu(0,0x30+shi/10);xieling_shu(0,0x30+shi%10);xieling_shu(0,':');xieling_shu(0,0x30+fen/10);xieling_shu(0,0x30+fen%10);xieling_shu(0,':');xieling_shu(0,0x30+miao/10);xieling_shu(0,0x30+miao%10);xieludizhi(2,0);//显示年xieling_shu(0,0x30+years/1000);xieling_shu(0,0x30+years%1000/100);xieling_shu(0,0x30+years%100/10);xieling_shu(0,0x30+years%10);xieludizhi(2,3);//显示月xieling_shu(0,0x30+month/10);xieling_shu(0,0x30+month%10);xieludizhi(2,5);//显示日xieling_shu(0,0x30+day/10);xieling_shu(0,0x30+day%10);}/*******************功能:星期函数*********************************/voidxingqi(){switch(cc){case1:xieludizhi(3,7);xiezifuchuan(一);return;case2:xieludizhi(3,7);xiezifuchuan(二);return;case3:xieludizhi(3,7);xiezifuchuan(叁);return;case4:xieludizhi(3,7);xiezifuchuan(四);return;case5:xieludizhi(3,7);xiezifuchuan(五);return;case6:xieludizhi(3,7);xiezifuchuan(六);return;case7:xieludizhi(3,7);xiezifuchuan(日);return;}}/*******************功能:按键程序*******************/voidanjian(){if(key4==0){delay(1);hm=~hm;while(key4==0);}/*******************功能:key1按键选择功能*******************/if(key1==0){delay(1);mm++;if(hm!=0){if(mm=4)mm=0;}if(mm==1){xieludizhi(3,3);xieling_shu(0,0x5f);}if(mm==2){TR0=1;xieludizhi(3,2);xieling_shu(0,0x5f);}if(mm==3){xieludizhi(3,0);xieling_shu(0,0x5f);}if(mm==4){xieludizhi(2,5);xieling_shu(0,0x5f);}if(mm==5){xieludizhi(2,3);xieling_shu(0,0x5f);}if(mm==6){xieludizhi(2,1);xieling_shu(0,0x5f);}if(mm==7){xieludizhi(3,7);xieling_shu(0,0x5f);}if(mm==8){xieludizhi(2,7);xieling_shu(0,0x02);}if(mm=9){xieludizhi(2,7);xieling_shu(0,0x20);mm=0;}//mm=0;跳出调整时间while(key1==0);}/*******************功能:key2按键加减功能*******************/if(mm==1&&key2==0)//秒加1{if(hm==0){TR0=0;delay(1);if(key2==0){second++;if(second=60){second=0;}}}if(hm!=0){delay(1);if(key2==0){miao++;if(miao=60){miao=0;}}}while(key2==0);}if(mm==1&&key3==0)//秒减1{if(hm==0){TR0=0;delay(1);if(key3==0){second--;if(second=-1){second=59;}}}if(hm!=0){delay(1);if(key3==0){miao--;if(mia
本文标题:12864液晶电子钟-具有按键可调、闹钟、温度显示
链接地址:https://www.777doc.com/doc-4637467 .html