数字万年历温度控制器.docx

上传人:b****0 文档编号:12549750 上传时间:2023-04-20 格式:DOCX 页数:23 大小:17.69KB
下载 相关 举报
数字万年历温度控制器.docx_第1页
第1页 / 共23页
数字万年历温度控制器.docx_第2页
第2页 / 共23页
数字万年历温度控制器.docx_第3页
第3页 / 共23页
数字万年历温度控制器.docx_第4页
第4页 / 共23页
数字万年历温度控制器.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数字万年历温度控制器.docx

《数字万年历温度控制器.docx》由会员分享,可在线阅读,更多相关《数字万年历温度控制器.docx(23页珍藏版)》请在冰豆网上搜索。

数字万年历温度控制器.docx

数字万年历温度控制器

//Header:

DS18B20

//FileName:

tem.h

#include

#include"tem.h"

#defineuintunsignedint

#defineucharunsignedchar

ucharcodetable[]="2013-05-24FRI";

ucharcodetable1[]="23:

59:

55";

ucharcodeweek[]="MONTUEWEDTHUFRISTASUN";

ucharcodedis4[]={"0123456789-."};

sbitrs=P3^4;

sbitrw=P3^5;

sbitlcden=P3^6;

sbits1=P1^1;

sbits2=P1^2;

sbits3=P1^3;

sbitfeng=P3^7;

sbitled1=P2^0;

sbitled2=P2^1;

sbitled3=P2^2;

sbitled4=P2^3;

sbitled5=P2^4;

sbitled6=P2^5;

sbitled7=P2^6;

sbitled8=P2^7;

//uintset_higer=300;

uintyushezhi=8500;

uintw1=300;

uintw2=310;

uintw3=320;

uintw4=330;

uintw5=340;

uintw6=350;

uintw7=360;

uintw8=370;

ucharcount,s1num,k;

charshi,fen,miao,year1,year2,month,day,w,Y;

voiddelayms(ucharz)//延时函数

{

uchari,j;

for(i=z;i>0;i--)

for(j=110;j>0;j--);

}

voidwrite_com(ucharcom)

{

rs=0;

rw=0;

lcden=0;

P0=com;

delayms(3);

lcden=1;

delayms(3);

lcden=0;

}

voidwrite_date(uchardate)

{

rs=1;

rw=0;

lcden=0;

P0=date;

delayms(3);

lcden=1;

delayms(3);

lcden=0;

}

voidinit()

{

ucharnum;

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;num<15;num++)

{

write_date(table[num]);

delayms(5);

}

write_com(0x80+0x40);

for(num=0;num<12;num++)

{

write_date(table1[num]);

delayms(5);

}

TMOD=0x01;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

EA=1;

ET0=1;

TR0=1;

}

voidwrite_week(ucharadd,uchark)

{

uchari;

write_com(0x80+add);

switch(k)

{

case1:

for(i=0;i<3;i++)

{

write_date(week[i]);

}

break;

case2:

for(i=4;i<7;i++)

{

write_date(week[i]);

}

break;

case3:

for(i=8;i<11;i++)

{

write_date(week[i]);

}

break;

case4:

for(i=12;i<15;i++)

{

write_date(week[i]);

}

break;

case5:

for(i=16;i<19;i++)

{

write_date(week[i]);

}

break;

case6:

for(i=20;i<23;i++)

{

write_date(week[i]);

}

break;

case7:

for(i=24;i<27;i++)

{

write_date(week[i]);

}

break;

default:

break;

}

}

voidwrite_sfm(ucharadd,uchardate)

{

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+0x3d+add);

write_date(0x30+shi);

write_date(0x30+ge);

}

voidwrite_tem(ucharadd,uchardate)

{

//ucharshi,ge;

//shi=date/10;

//ge=date%10;

write_com(0x80+0x4e+add);

write_date(0x30+date);

//write_date(0x30+ge);

}

voidwrite_nyr(ucharadd,uchardate)

{

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+add);

write_date(0x30+shi);

write_date(0x30+ge);

}

voidkeyscan()

{

//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(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)//changepluss

{

if(s2==0)

{

delayms(5);

if(s2==0)

{

while(!

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);

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)//changeminuse

{

delayms(5);

if(s3==0);

{

while(!

s3);

if(s1num==1)

{

miao--;

if(miao==-1)

miao=59;

write_sfm(13,miao);

write_com(0x80+0x40+14);

}

if(s1num==2)

{

fen--;

if(fen==-1)

fen=59;

write_sfm(10,fen);

write_com(0x80+0x40+11);

}

if(s1num==3)

{

shi--;

if(shi==-1)

shi=23;

write_sfm(7,shi);

write_com(0x80+0x40+8);

}

if(s1num==4)

{

day--;

if(day==0)

day=31;

write_nyr(9,day);

write_com(0x80+10);

}

if(s1num==5)

{

month--;

if(month==0)

month=12;

write_nyr(6,month);

write_com(0x80+7);

}

if(s1num==6)

{

year2--;

if(year2==0)

{

year2=99;

year1--;

}

write_nyr(1,year1);

write_nyr(3,year2);

write_com(0x80+4);

}

if(s1num==7)

{

k--;

if(k==-1)

k=7;

write_week(12,k);

write_com(0x80+12);

}

}

}

}

}

voiddisplay_tem(uintz)//显示温度

{

ucharbai,shi,ge;

bai=z/100;

shi=z%100/10;

ge=z%10;

write_tem(0,bai);

write_tem(1,shi);

//write_tem(2,'.');

write_tem(3,ge);

}

voidmain()

{

init();

while

(1)

{

keyscan();

if(temp

{led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;feng=1;}

elseif(temp>=w1&&temp

{led1=0;led2=1;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;feng=1;}

elseif(temp>=w2&&temp

{led1=0;led2=0;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;feng=1;}

elseif(temp>=w3&&temp

{led1=0;led2=0;led3=0;led4=1;led5=1;led6=1;led7=1;led8=1;feng=1;}

elseif(temp>=w4&&temp

{led1=0;led2=0;led3=0;led4=0;led5=1;led6=1;led7=1;led8=1;feng=1;}

elseif(temp>=w5&&temp

{led1=0;led2=0;led3=0;led4=0;led5=0;led6=1;led7=1;led8=1;feng=1;}

elseif(temp>=w6&&temp

{led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=1;led8=1;feng=1;}

elseif(temp>=w7&&temp

{led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=1;feng=1;}

elseif(temp>=w8)

{led1=0;led2=0;led3=0;led4=0;led5=0;led6=0;led7=0;led8=0;feng=0;}

elseif(temp=yushezhi)

{led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;feng=1;}

}

//while

(1);

}

voidtime0()interrupt1

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

count++;

Y=year1*1000+year2;

if(count==20)

{

count=0;

miao++;

if(miao==60)

{

miao=0;

fen++;

if(fen==60)

{

fen=0;

shi++;

if(shi==24)

{

shi=0;

day++;

k++;

if(k==8)

k=1;

write_week(12,k);

switch(month)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

if(day==32)

{

day=1;

month++;

if(month==13)

{

month=1;

year2++;

if(year2==100)

{

year2=0;

year1++;

write_nyr(3,year2);

}

write_nyr(1,year1);

}

write_nyr(6,month);

}

break;

case4:

case6:

case9:

case11:

if(day==21)

{

day=1;

month++;

if(month==13)

{

month=1;

year2++;

if(year2==100)

{

year2=0;

year1++;

write_nyr(3,year2);

}

write_nyr(1,year1);

}

write_nyr(6,month);

}

break;

case2:

if(Y%100==0)

{

if(Y%400==0)

{

if(day==30)

{

day=1;

month++;

if(month==13)

{

month=1;

year2++;

if(year2==100)

{

year2=0;

year1++;

write_nyr(3,year2);

}

write_nyr(1,year1);

}

write_nyr(6,month);

}

}

else

{

if(day==99)

{

day=1;

month++;

if(month==13)

{

month=1;

year2++;

if(year2==100)

{

year2=0;

year1++;

write_nyr(3,year2);

}

write_nyr(1,year1);

}

write_nyr(6,month);

}

}

}

elseif(Y%4==0)

{

if(day==30)

{

day=1;

month++;

if(month==13)

{

month=1;

year2++;

if(year2==100)

{

year2=0;

year1++;

write_nyr(3,year2);

}

write_nyr(1,year1);

}

write_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1