程序清单:
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#define uchar unsigned char
sbit TMDAT = P1^4; //两个DS18B20的I/O口
sbit TMDAT1 = P1^5;
sbit CS=P1^0;
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit KEY=P1^3;
sbit HEAT=P1^7;
sbit COLD=P3^3;
手机镀膜机sbit HEAT1=P1^6;
sbit COLD1=P3^2;
sbit ALARM=P3^6;
int num; //保存输入的数字
int key=7; //保存数码管号
int qiehuan=0; //控制屏幕显示温度或者参数 int choose=0; //保存正在使用的DS18B20号
int max1=23; //一号通道的报警上下限值 int min1=5;
int upper1=22; //一号通道的预定温度值 int lower1=18;
int max2=23; //二号通道的报警上下限值
int min2=5;
int upper2=22; //二号通道的预定温度值
int lower2=18;
冷焊钳
unsigned char buffer1[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//控制符,用于显示不带小数点的数字陶瓷手链unsigned char buffer2[16]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f};//控制符,用于显示带小数点的数字
unsigned char turn[8]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87};//控制符,用于选定数码管号
unsigned int result,result1;//保存十六进制的温度值
unsigned char a,b;
uchar data rebuf,sebuf;
uchar bdata com_data;
sbit mos_bit=com_data^7;
sbit low_bit=com_data^0;
void send(uchar sebuf);
void delay_50us();
void receive();
void reset();
void dmsec (unsigned int count);
void tmreset (void);
void tmstart (void);
void tmreset1 (void);
void tmstart1 (void);
void fuzhi(void);//用于修改参数值
void xianshi(void);//将修改的参数值显示
unsigned char tmrtemp (void);
unsigned char tmrtemp1 (void);
main()
{
unsigned int zhengshu,dot;
unsigned char temperature;
unsigned int symbol;
int shiwei;
int gewei;
unsigned int zhengshu1,dot1;
unsigned char temperature1;
unsigned int symbol1;
int shiwei1;
int gewei1;
while(1)
秸秆腐熟剂{
if(choose==0) //通道一工作
{dmsec(1);
tmstart ();
dmsec(1000);
tmrtemp ();
reset();
if(result>0xf800) //将通道一的温度转换为十进制
{ symbol=1;
ad8009
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;
} //超过预定温度的上限,启动小风扇
else if(temperature<lower1)
{ COLD=0;
HEAT=1;} //低于预定温度的下限,启动小灯泡
else
{ COLD=0;
HEAT=0;}
if(temperature>max1|temperature<min1)
{ ALARM=0;} //高于或低于设定温度的上下限,则报警
else
{ ALARM=1;}
}
else{
预绞丝dmsec(1); //通道二工作
tmstart1 ();
dmsec(1000);
tmrtemp1 ();
reset();
if(result1>0xf800) //将通道二的温度转换为十进制