1、数字万年历温度控制器 / Header: DS18B20/ File Name: tem.h#include#includetem.h #define uint unsigned int#define uchar unsigned charuchar code table= 2013-05-24 FRI;uchar code table1= 23:59:55 ;uchar code week=MON TUE WED THU FRI STA SUN;uchar code dis4=0123456789-.;sbit rs=P34;sbit rw=P35;sbit lcden=P36;sbit s
2、1=P11;sbit s2=P12;sbit s3=P13;sbit feng=P37;sbit led1=P20;sbit led2=P21;sbit led3=P22;sbit led4=P23;sbit led5=P24;sbit led6=P25;sbit led7=P26;sbit led8=P27;/uint set_higer=300;uint yushezhi=8500;uint w1=300;uint w2=310;uint w3=320;uint w4=330;uint w5=340;uint w6=350;uint w7=360;uint w8=370;uchar cou
3、nt,s1num,k;char shi,fen,miao,year1,year2,month,day,w,Y;void delayms(uchar z) /延时函数 uchar i,j; for(i=z;i0;i-) for(j=110;j0;j-);void write_com(uchar com) rs=0; rw=0; lcden=0; P0=com; delayms(3); lcden=1; delayms(3); lcden=0;void write_date(uchar date) rs=1; rw=0; lcden=0; P0=date; delayms(3); lcden=1;
4、 delayms(3); lcden=0;void init() uchar num; s1num=0; lcden=0; year1=20; year2=13; month=05; day=24; shi=23; fen=59; miao=55; k=5; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num15;num+) write_date(tablenum); delayms(5); write_com(0x80+0x40); for(num
5、=0;num12;num+) write_date(table1num); delayms(5); TMOD=0x01; TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; void write_week(uchar add,uchar k) uchar i; write_com(0x80+add); switch(k) case 1: for(i=0;i3;i+) write_date(weeki); break; case 2: for(i=4;i7;i+) write_date(weeki); break;
6、case 3: for(i=8;i11;i+) write_date(weeki); break; case 4: for(i=12;i15;i+) write_date(weeki); break; case 5: for(i=16;i19;i+) write_date(weeki); break; case 6: for(i=20;i23;i+) write_date(weeki); break; case 7: for(i=24;i27;i+) write_date(weeki); break; default: break; void write_sfm(uchar add,uchar
7、 date) uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x3d+add); write_date(0x30+shi); write_date(0x30+ge);void write_tem(uchar add,uchar date) /uchar shi,ge; /shi=date/10; /ge=date%10; write_com(0x80+0x4e+add); write_date(0x30+date); /write_date(0x30+ge);void write_nyr(uchar add,uchar date)
8、uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+add); write_date(0x30+shi); write_date(0x30+ge);void keyscan()/ rd=0; if(s1=0) delayms(5); if(s1=0) s1num+; while(!s1); if(s1num=1) TR0=0; write_com(0x80+0x3d+14); write_com(0x0f); /显示光标 if(s1num=2) write_com(0x80+0x3d+11); if(s1num=3) write_com(
9、0x80+0x3d+8); if(s1num=4) write_com(0x80+10); if(s1num=5) write_com(0x80+7); if(s1num=6) write_com(0x80+4); if(s1num=7) write_com(0x80+12); if(s1num=8) s1num=0; write_com(0x0c); TR0=1; /* if(s1num=4) s1num=0; write_com(0x0c); TR0=1; */ if(s1num!=0) /change pluss if(s2=0) delayms(5); if(s2=0) while(!
10、s2); if(s1num=1) miao+; if(miao=60) miao=0; write_sfm(13,miao); write_com(0x80+0x3d+14); if(s1num=2) fen+; if(fen=60) fen=0; write_sfm(10,fen); write_com(0x80+0x3d+11); if(s1num=3) shi+; if(shi=24) shi=0; write_sfm(7,shi); write_com(0x80+0x3d+8); if(s1num=4) day+; if(day=32) day=1; write_nyr(9,day);
11、 write_com(0x80+10); if(s1num=5) month+; if(month=13) month=1; write_nyr(6,month); write_com(0x80+7); if(s1num=6) year2+; if(year2=100) year2=0; year1+; write_nyr(1,year1); write_nyr(3,year2); write_com(0x80+4); if(s1num=7) k+; if(k=8) k=1; write_week(12,k); write_com(0x80+12); if(s3=0) /change minuse delayms(5); if(s3=0); while(!s3); if(s1nu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1