单片机源程序如下:
sbit key1=P3^5;
sbit relay1=P1^0;
sbit relay2=P1^1;
sbit key2=P3^6;
sbit key3=P3^7;
sbit beep=P3^2;
void timer0_init()
{
TMOD|=0x02;
TH0=TL0=156;
ET0=1;
TR0=1;
EA=1;
}
void delay_ms(uint ms)
{
uchar a,b,c;
while(ms--)
{
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
}
void main()
{
timer0_init();
InitLcd1602(); //初始化LCD1602
wendu=(int)readtemp();
wendu1=(int)readtemp1();
delay_ms(500);
wendu=(int)readtemp();
wendu1=(int)readtemp1();
while(1)
{
//TR0=0;
wendu=(int)readtemp();
wendu1=(int)readtemp1();
//TR0=1;
if(wendu>-55 && wendu<125)
{
sprintf(dis,"Wendu=%03dC P=%d",wendu,dangwei);
LcdShowStr(0, 0, dis);
sprintf(dis,"Set=%02dC T=%03dC",set_L,wendu1);
LcdShowStr(0, 1, dis);
if(wendu<set_L)
{
if((set_L-wendu)>10) {dangwei=3;}
if((set_L-wendu)<=10 &&(set_L-wendu)>5 ) {dangwei=2;}
if((set_L-wendu)<=5) {dangwei=1;}
}
else
{
dangwei=0;
}
}
if(dangwei==3) {relay1==1 && relay2==1;}
if(dangwei==2) {relay1==1 && relay2==0;}
if(dangwei==1) {relay1==0 && relay2==1;}
if(dangwei==0) {relay1==0 && relay2==0;}
|