基于51单片机的温度控制系统的设计 下载本文

贵州大学课程设计

t=b; t<<=8; t=t|a;

Temp_mea=t*(0.0625); }

/********精确延时********/ void Delay_us(uchar i) {

while(--i); }

/********键盘扫描程序********/ void Key_scan(void) {

uchar temp; P1=0xff; if(P1!=0xff) {

Delay(20); //延时消抖 if(P1!=0xff) {

temp=P1; switch(temp) { }

26

case 0xfe:Key_set();break; //P1.0按下,功能选择 case 0xfd:Key_inc();break; //P1.1按下,数字加一 case 0xfb:Key_dec();break; //P1.2按下,数字减一 default:break;

贵州大学课程设计

}

}

}

/********工作模式子程序********/ void Key_set(void) { }

/********按键加一子程序********/ void Key_inc(void) { }

/********按键减一子程序********/ void Key_dec(void) {

//Delay(150); switch(Set_flag)

27

Set_flag++;

if(Set_flag>=3) //Set_flag=1,设定上限值

Set_flag=0; //Set_flag=2,设定下限值

switch(Set_flag) { }

case 1:Temp_set1++;

if(Temp_set1>=99) Temp_set1=99;break; case 2:Temp_set2++;

if(Temp_set2>=Temp_set1) Temp_set2=Temp_set1;break; default:break;

贵州大学课程设计

{ case 1:Temp_set1--;

if(Temp_set1<=Temp_set2) Temp_set1=Temp_set2;break; case 2:Temp_set2--;

if(Temp_set2<=1) Temp_set2=1;break; default:break;

}

}

/********报警和指示程序********/ void Alarm(void) { uchar High; uchar Low; High=Temp_set1+5; Low=Temp_set2-5; if(Temp_mea>High) { Normal=1; Alarm_H=0; Alarm_L=1;

Alarm_BEEP=1;

} else

{if(Temp_mea

Alarm_BEEP=1;

28

贵州大学课程设计

} else { Normal=0; Alarm_H=1; Alarm_L=1;

Alarm_BEEP=0;

} }

}

29

附录二:硬件设计原理图

贵州大学课程设计

30