1、uchar code xq2=星期二uchar code xq3=星期三uchar code xq4=星期四uchar code xq5=星期五uchar code xq6=星期六uchar code xq7=星期日uchar code du=摄氏度uchar code wen=温度:uint shi=23,fen=59,miao=50,nian=2011,yue=3,ri=21,num1,xq=1;uint nian1,nian2,nian3,nian4,yue1,yue2,ri1,ri2,shi1,shi2,fen1,fen2,miao1,miao2;void delayms(uint x
2、ms) uint i,j; for(i=xms;i0;i-) for(j=110;jj-);void delay(uint x) while(x-);void init() /ds18b20的初始化 uchar n; dq=1; delay(8); dq=0; delay(80); n=dq; delay(4);void write_byte(uchar dat) /ds18b20写入一个数据 uchar i; for(i=0;i1; uchar read_byte(void) /ds18b20读出一个数据 uchar value,i; value=value if(dq) value=val
3、ue|0x80; return value;uchar read_temperature(void) /ds18b20读出温度 uchar a,b; init(); write_byte(0xcc); write_byte(0x44); delay(300); write_byte(0xbe); a=read_byte(); b=read_byte(); b4; return b;void write_com(uchar com) /12864液晶写命令 rs=0; wr=0; en=0; P0=com; delayms(5); en=1;void write_date(uchar date)
4、 /12864液晶写数据 rs=1; P0=date;void init_12864() /12864液晶初始化 psb=0; write_com(0x30); write_com(0x0c); write_com(0x01);void xssj() /显示时间 write_com(0x8f); write_date(0x30+miao2); write_com(0x8e); write_date(0x30+miao1); write_com(0x8d); write_date(:); write_com(0x8c); write_date(0x30+fen2); write_com(0x8b
5、); write_date(0x30+fen1); write_com(0x8a); write_com(0x89); write_date(0x30+shi2); write_com(0x88); write_date(0x30+shi1);void xsxq() /显示星期 uchar i=0; write_com(0x92); if(xq=1) while(xq1i!=0) write_date(xq1i); i+; if(xq=2) i=0; while(xq2i! write_date(xq2i); if(xq=3) while(xq3i! write_date(xq3i); if(
6、xq=4) while(xq4i! write_date(xq4i); if(xq=5) i=0; while(xq5i! write_date(xq5i); if(xq=6) while(xq6i! write_date(xq6i); if(xq=7) while(xq7i! write_date(xq7i);void xsnyr() /显示年月日 write_com(0x87); write_date(0x30+ri1); write_date(0x30+ri2); write_com(0x82);- write_com(0x83); write_com(0x84); write_date
7、(0x30+yue1); write_date(0x30+yue2); write_com(0x86); write_com(0x85); write_com(0x80); write_date(0x30+nian1); write_date(0x30+nian2); write_date(0x30+nian3); write_date(0x30+nian4);void xswd() /显示温度 uchar i,j; write_com(0x98); j=0; while(wenj! write_date(wenj); j+; write_com(0x9b); write_date(0x30+
8、wd1); write_date(0x30+wd2); write_com(0x9c); while(dui! write_date(dui); i+;void zdinit() /中断初始化 TMOD=0x01; TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1;void jianpan() /键盘扫描 if(key1=0) delayms(10); ; while(!key1); shi+; if(shi=24) shi=0; if(key2=0) key2); fen+; if(fen=60) fen=0;
9、if(key3=0)key3); xq+; if(xq=8) xq=1; if(key4=0) delayms(10);key4); TR0=TR0;void pd() /判断时间 if(num1=20) num1=0; miao+; if(miao=60) miao=0; fen+; fen=0; shi=0; ri+; if(ri=32) ri=1; yue+; if(yue=12) yue=1; nian+; if(nian=9999) nian=0; if(nian%4=0|nian%400=0) if(yue=2) if(ri=30) ri=1; yue=3; if(yue=4|yu
10、e=6|yue=9|yue=11) if(ri=31) ri=1; yue+; if(ri=29) yue+; shi1=shi/10; shi2=shi%10; fen1=fen/10; fen2=fen%10; miao1=miao/10; miao2=miao%10; nian1=nian/1000; nian2=nian%1000/100; nian3=nian%1000%100/10; nian4=nian%10; yue1=yue/10; yue2=yue%10; ri1=ri/10; ri2=ri%10; wd1=t/10; wd2=t%10; xssj(); xsxq(); xsnyr(); jianpan(); xswd();void main() /主函数 duan=0; /关闭数码管 wei=0; init_12864(); zdinit(); while(1) t=read_temperature(); pd();void T0_time() interrupt 1 num1+;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1