本人小白,智能熱水器C語言程序其中紅色的部分看不懂是什么變量,作用是什么,那位大佬看得懂,求指點
//單片機程序頭函數
#include <reg52.h>
//顯示函數
#include <display.h>
#include<intrins.h>
#include"eeprom52.h"
//宏定義
#define uint unsigned int
#define uchar unsigned char
//管腳聲明
sbit jdq= P1^0; //加熱繼電器
sbit shui=P1^3;//加水繼電器
sbit Feng = P2^6; //蜂鳴器
//按鍵
sbit Key1=P1^4; //設置
sbit Key2=P1^5; //加
sbit Key3=P1^6; //減
sbit Key4=P1^7; //確定
sbit shang=P3^7;//上限
sbit xia=P3^6;//下限
sbit DQ=P2^2; //定義DS18B20總線I/O
signed char w,bj,bjx,bjd; //溫度值全局變量
uchar c; //溫度值全局變量
bit bdata flag=0,flag_BJ,flag_off=1,que;
//時間計算
#define Imax 14000 //此處為晶振為11.0592時的取值,
#define Imin 8000 //如用其它頻率的晶振時,
#define Inum1 145 //要改變相應的取值。
#define Inum2 700
#define Inum3 3000
//解碼變量
unsigned char Im[4]={0x00,0x00,0x00,0x00};
//全局變量
uchar f;
signed char m,Tc;
unsigned char IrOK;
uchar n;
//signed char m=15;
void main() { Init1602(); EA=1;//打開中斷總開關 IT1=1;//下降沿有效 EX1=1;//外部中斷1開 ET1=1;//打開允許開關 TMOD=0x01;//設置工作方式 TL1=0x3c; TH1=0xb0;//賦初值 TH0=0;//T0賦初值 TL0=0; TR0=0;//t0開始計時 check_wendu(); delay(1000); bjd=99; bjx=0; //這兩個變量的作用就是,防止溫度大范圍跳動造成加熱設備誤動作 sx=byte_read(0x2000); xx=byte_read(0x2200); while(1) { check_wendu(); //Display_1602(m,ds,sx,xx); if(Mode==0) { Display_1602(m,ds,sx,xx); if((xia==1)&&(shang==1))//低于下限 { que=1; shui=0; jdq=1; } else { que=0; } if((shang==0)&&(xia==0))//高于上限 { shui=1; if(flag_BJ==0) flag_BJ=1; } if((shang==0)&&(xia==1))//錯誤 { shui=1; jdq=1; Feng=0; que=1; } if(flag==0) { if((m<bjd)&&(m>bjx)) { if(m>=sx) { jdq=1; if(flag_BJ==0) flag_BJ=1; } elseif((m<xx)&&(que==0)) { jdq=0; if(flag_BJ==0) flag_BJ=1; } else { flag_BJ=0; flag_off=1; } bjd=m+5; bjx=m-5; } } } Key(); Alam(); } }
|