电热水器水温水位控制系统设计
第22页
附录1
电热水器水温水位控制系统设计
第23页
附录2
2.1 主程序清单 主程序:
#include #include
sbit buzzer=P1^0;//蜂鸣器 sbit heater=P1^6;//加热器 sbit c=P3^6;//水阀门
sbit P0_0=P3^7;//温度DS18B20数据线 sbit adc=P1^5;// sbit ccl=P1^4;
sbit led8=P0^0; sbit led7=P0^1; sbit led6=P0^2; sbit led5=P0^3; sbit led4=P0^4; sbit led3=P0^5; sbit led2=P0^6;
sbit led1=P0^7;//8位数码管显示位选端
uchar temp111; uchar a,b; uchar bitselect;
bit key1,key2,key3,keyon,keyoff,buzzer1; uchar key1_state,temp,key2_state; uint pl;
uint LED1_data,LED2_data,LED3_data,LED4_data,led_data; int ytm=40,yp=60,tm=0,p=0;
电热水器水温水位控制系统设计
第24页
long t0count,x,o; uchar x70,0xFF,0xBF};
uchar disbuffer[]={0,0,0,0,0,0,0,0};
/*******************************************************/
void delay(uint v) {
while(v!=0) v--; }
/********************************显示模块**********************/ //*********************************************
void display1(void) {
for(bitselect=0;bitselect<8;bitselect++)
{if(bitselect==0){led1=0;led2=1;led3=1;led4=1;led1=1;led2=1;led3=1;led4=1;}
else
if(bitselect==1){led1=1;led2=0;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;}
else
if(bitselect==2){led1=1;led2=1;led3=0;led4=1;led5=1;led6=1;led7=1;led8=1;}
else
if(bitselect==3){led1=1;led2=1;led3=1;led4=0;led5=1;led6=1;led7=1;led8=1;}
else
if(bitselect==4){led1=1;led2=1;led3=1;led4=1;led5=0;led6=1;led7=1;le
code
led_segment[13]={0xC0,0xCF,0xA4,0x86,0x8B,0x92,0x90,0xC7,0x80,0x82,0
// 温度值的变量;
// 结果为负和正的标志位。
延
时
程
序
电热水器水温水位控制系统设计
第25页
d8=1;}
else
if(bitselect==5){led1=1;led2=1;led3=1;led4=1;led5=1;led6=0;led7=1;led8=1;}
else
if(bitselect==6){led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=0;led8=1;}
else
if(bitselect==7){led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=1;led8=0;}
P2=led_segment[disbuffer[bitselect]]; delay(200); }
P2=0xff; //及时关闭P2口,以免造成最后一灯较亮 }
/*****************************************************/ void alarm() {uint i;
for(i=0;i<100;i++) {
delay(50); buzzer=1; delay(50); buzzer=0; } }
/******************************读键程序******************/ void read_key() { keyon=0;
if(INT1==0) {key1=1;keyon=1;keyoff=1;} if(INT0==0){key2=1;keyon=1;keyoff=1;} if(T1==0){key3=1;keyon=1;keyoff=1;}
电热水器水温水位控制系统设计
第26页
display1(); }
/**********************防连击*****************************/ KeyProcess() {
while(keyoff) {read_key(); if(keyon==0) {keyoff=0; if(key1==1)
{key1_state++;key2_state=0; if(key1_state==3)key1_state=0; key1=0; } } } }
SetProcess()/********************设定和显示模式选定**********/ {if(key1_state==1) {if(keyon==0) {keyoff=0; if(key2==1) {ytm++;
if(ytm==100){ytm=0;} key2=0; }
if(key3==1) {ytm--;
if(ytm==-1){ytm=99;} key3=0; } }
disbuffer[7]=11;disbuffer[6]=11;disbuffer[5]=11;disbuffer[4]=11;disbuffer[3]=11;disbuffer[2]=ytm/10;disbuffer[1]=ytm;disbuffer[0]=10;display1();

