#include bit flag = 0; unsigned char time = 0; unsigned int worktime = 0;//定义持续时间变量 uint times = -1; bit times_flag = 0; uchar times_temp = 0; bit auto_flag = 0; uchar start_temp; uchar wind_speed = 4; int main(){ unsigned int tempp; TMOD=0x11;//定时器0工作方式1,定时器1工作方式1 TH1=0xff;//(65536-10)/256;//赋初值定时 TL1=0xf6;//(65536-10)%256;//0.01ms TH0=0xfc;//(65536-1000)/256;//赋初值定时/用于定工作时间 TL0=0x18;//(65536-1000)%256;//1ms EA=1;//开总中断 ET1=1;//开定时器1中断 TR1=1;//启动定时器1 t=50; flag=1; IT0 = 0; EX0 = 1; L298_Config(); //LCD1206_config(); //init(); P08 = 0; start_temp = GET_Temperature(); while(1){ tempp = GET_Temperature(); if(tempp>=50&&(tempp-temp)<=2){ P0 |= 0xf0; P08 = 0; set_t(0); buzzer(); } if(temp!= tempp&&tempp<80)flag_button = 1,temp = tempp; if(flag_button){ ShowLcd(); flag_button = 0; } if(Time_button == 0)set_time(); if(auto_button == 0)auto_flag = !auto_flag,delay(5); if(auto_flag){ flag_com = 4; auto_set_mode(); } delay(5); key(); } } void buzzer(){ int i=0; for(;i<20;i++){ P04 = !P04; delay(5); } } void set_time(){ times += 5000; flag_button = 1; } void auto_set_mode(){ if(temp >= start_temp+2){ start_temp = temp; if(wind_speed>1)wind_speed--; if(wind_speed == 1)P21 = 0; else if(wind_speed == 2)P22 = 0; else if(wind_speed == 3)P23 = 0; else if(wind_speed == 4)P24 = 0; } else if(temp <= start_temp - 2){ start_temp = temp; if(wind_speed<4)wind_speed++; if(wind_speed == 1)P21 = 0; else if(wind_speed == 2)P22 = 0; else if(wind_speed == 3)P23 = 0; else if(wind_speed == 4)P24 = 0; } }