预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共22页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

程序清单: #include<reg52.h> #include<intrins.h> #include<stdio.h> #defineucharunsignedchar sbitTMDAT=P1^4; //两个DS18B20的I/O口 sbitTMDAT1=P1^5; sbitCS=P1^0; sbitCLK=P1^1; sbitDIO=P1^2; sbitKEY=P1^3; sbitHEAT=P1^7; sbitCOLD=P3^3; sbitHEAT1=P1^6; sbitCOLD1=P3^2; sbitALARM=P3^6; intnum;//保存输入的数字 intkey=7;//保存数码管号 intqiehuan=0;//控制屏幕显示温度或者参数 intchoose=0;//保存正在使用的DS18B20号 intmax1=23;//一号通道的报警上下限值 intmin1=5; intupper1=22;//一号通道的预定温度值 intlower1=18; intmax2=23;//二号通道的报警上下限值 intmin2=5; intupper2=22;//二号通道的预定温度值 intlower2=18; unsignedcharbuffer1[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//控制符,用于显示不带小数点的数字 unsignedcharbuffer2[16]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f};//控制符,用于显示带小数点的数字 unsignedcharturn[8]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87};//控制符,用于选定数码管号 unsignedintresult,result1;//保存十六进制的温度值 unsignedchara,b; uchardatarebuf,sebuf; ucharbdatacom_data; sbitmos_bit=com_data^7; sbitlow_bit=com_data^0; voidsend(ucharsebuf); voiddelay_50us(); voidreceive(); voidreset(); voiddmsec(unsignedintcount); voidtmreset(void); voidtmstart(void); voidtmreset1(void); voidtmstart1(void); voidfuzhi(void);//用于修改参数值 voidxianshi(void);//将修改的参数值显示 unsignedchartmrtemp(void); unsignedchartmrtemp1(void); main() { unsignedintzhengshu,dot; unsignedchartemperature; unsignedintsymbol; intshiwei; intgewei; unsignedintzhengshu1,dot1; unsignedchartemperature1; unsignedintsymbol1; intshiwei1; intgewei1; while(1) { if(choose==0)//通道一工作 {dmsec(1); tmstart(); dmsec(1000); tmrtemp(); reset(); if(result>0xf800)//将通道一的温度转换为十进制 {symbol=1; result=~result+1; } zhengshu=result/16; dot=result&0x000f; dot=(dot*10)/16; shiwei=(zhengshu/10); gewei=(zhengshu%10); temperature=zhengshu+dot*0.1;//通道一的十进制温度 if(temperature>upper1)//通道一温度控制 {COLD=1; HEAT=0; }//超过预定温度的上限,启动小风扇 elseif(temperature<lower1) {COLD=0; HEAT=1;}//低于预定温度的下限,启动小灯泡 else {COLD=0; HEAT=0;} if(temperature>max1|temperatu