基于单片机温湿度测量电路的设计
附 录
附录1
24
基于单片机温湿度测量电路的设计
附录2.源程序
#include #include
uchar temp[] =\设置 的湿度值显示 uchar temp_s[] =\//实时湿度显示 sbit sw3=P1^5; //按键定义 sbit sw1=P1^3; sbit sw2=P1^4; sbit baojing=P3^3; //sbit led=P3^5; uchar set; //变量定义 uchar num1; uchar getdata=55; uint shangxian=34; uchar temp_h,temp_t; void conv(); yunxing(); void key(); void kongzhi();
void zhuanhuan()//扫描数据转换 {
temp[7]=shangxian/10+0x30; temp[8]=shangxian+0x30; temp_s[3]=temp_h/10+0x30; temp_s[4]=temp_h+0x30;
25
基于单片机温湿度测量电路的设计
temp_s[3]=temp_h/10+0x30; temp_s[4]=temp_h+0x30; temp_s[12]=temp_t/10+0x30;
temp_s[13]=temp_t+0x30; temp_s[14]=0xdf; temp_s[15]='C'; }
//------------------------------------------------------------ main() {
baojing=0;
delay(500); baojing=1; // led=0;
LCD_Initial(); //液晶初始化 while(1) {
RH();
temp_t=U8T_data_H; temp_h=U8RH_data_H;
zhuanhuan(); key();// 按键检测 kongzhi();
GotoXY(0,0);//显示起始位置 Y=0,第一行,Y=1 第二行//显示第一行 Print(temp);// 内容
GotoXY(0,1);//显示起始位置 Y=0,第一行,Y=1 第二行 显示第二行 Print(temp_s);// 内容
26
基于单片机温湿度测量电路的设计
delay(1);
//getdate= GetADCResult(0)*3.9; } }
void key() //按键检测程序 {
if(set==1)//上限设置
{
if(sw1==0) {
delay(50);
if(sw1==0)
//上限 减功能
{ //while(sw1==0);
if(shangxian>0) shangxian--; else( shangxian=255); } }
if(sw2==0) //上限 加功能 {
delay(50); if(sw2==0)
{ //while(sw2==0) ;
if(shangxian<255) shangxian++;
else( shangxian=0);
}
}
}
27
基于单片机温湿度测量电路的设计
}
void kongzhi() //控制报警 {
if((temp_h>=shangxian)|(temp_t>32)) //此处 设定预设温度 { //led=1; num1++; if(num1>=20) { num1=0;
baojing=~baojing; } }
else {baojing=1; } } DHT11
传感器接受和发送信息,然后将接收来的信息作出相应的判断和处理,然后反馈到显示器。
#include #include
aem
typedef unsigned char U8; /* defined for unsigned 8-bits integer variable
无符号8位整型变量 */
typedef signed char S8; /* defined for signed 8-bits integer variable
有符号8位整型变量 */
typedef unsigned int U16; /* defined for unsigned 16-bits integer variable
无符号16位整型变量 */
28