本人小白,智能热水器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(); } }
|