基于单片机的温湿度实时监控的程序设计

51单片机stc89c52rc是本方案的选用芯片,以其8位处理和极低的价格来看,是很适合进行本次实验。lcd显示屏本次选用的型号是1602a。
在实现51单片机实现温湿度传感器实时监控并lcd显示的基础功能后,还可以通过单片机的串口通信和wifi模块或者zigbee模块进行物联网连接,使设备连接互联网,再通过tcp连接进行物联网的一整套方案,包括手机app实时监控数据,也可以是手机app远程开启风扇来调节温度或者湿度,但这些不在本次方案中细说,本人已经实现上述功能,只是技术不完善,所以不在此公布。
51单片机内部程序:
c
#include#include#include#include#include#include
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位整型变量 */
typedef signed int s16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
typedef unsigned long u32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */
typedef signed long s32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
typedef float f32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
typedef double f64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
//
#define uchar unsigned char
#define uint unsigned int
#define data_0_time 4
//----------------------------------------------//
//----------------io口定义区--------------------//
//----------------------------------------------//
sbit p2_0 = p2^0 ;
//----------------------------------------------//
//----------------定义区--------------------//
//----------------------------------------------//
u8 u8flag,k;
u8 u8count,u8temp;
u8 u8t_data_h,u8t_data_l,u8rh_data_h,u8rh_data_l,u8checkdata;
u8 u8t_data_h_temp,u8t_data_l_temp,u8rh_data_h_temp,u8rh_data_l_temp,u8checkdata_temp;
u8 u8comdata;
u8 outdata[5]; //定义发送的字节数
u8 indata[5];
u8 count, count_r=0;
u8 str[5]={rs232};
u16 u16temp1,u16temp2;
u8 a[]={temperature: };
u8 b[]={humidity: };
u8 wd_sw,wd_gw,sd_sw,sd_gw;
void delay(u16 j)
{
u8 i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void delay_10us(void)
{
u8 i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void com(void)
{
u8 i;
for(i=0;i<8;i++)
{
u8flag=2;
while((!p2_0)&&u8flag++);
delay_10us();
delay_10us();
delay_10us();
u8temp=0;
if(p2_0)u8temp=1;
u8flag=2;
while((p2_0)&&u8flag++);
//超时则跳出for循环
if(u8flag==1)break;
//判断数据位是0还是1
// 如果高电平高过预定0高电平值则数据位为 1
u8comdata<<=1;
u8comdata|=u8temp; //0
}//rof
}
//--------------------------------
//-----湿度读取子程序 ------------
//--------------------------------
//----以下变量均为全局变量--------
//----温度高8位== u8t_data_h------
//----温度低8位== u8t_data_l------
//----湿度高8位== u8rh_data_h-----
//----湿度低8位== u8rh_data_l-----
//----校验 8位 == u8checkdata-----
//----调用相关子程序如下----------
//---- delay();, delay_10us();,com();
//--------------------------------
void rh(void)
{
//主机拉低18ms
p2_0=0;
delay(180);
p2_0=1;
//总线由上拉电阻拉高 主机延时20us
delay_10us();
delay_10us();
delay_10us();
delay_10us();
//主机设为输入 判断从机响应信号
p2_0=1;
//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
if(!p2_0) //t !
{
u8flag=2;
//判断从机是否发出 80us 的低电平响应信号是否结束
while((!p2_0)&&u8flag++);
u8flag=2;
//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
while((p2_0)&&u8flag++);
//数据接收状态
com();
u8rh_data_h_temp=u8comdata;
com();
u8rh_data_l_temp=u8comdata;
com();
u8t_data_h_temp=u8comdata;
com();
u8t_data_l_temp=u8comdata;
com();
u8checkdata_temp=u8comdata;
p2_0=1;
//数据校验
u8temp=(u8t_data_h_temp+u8t_data_l_temp+u8rh_data_h_temp+u8rh_data_l_temp);
if(u8temp==u8checkdata_temp)
{
u8rh_data_h=u8rh_data_h_temp;
u8rh_data_l=u8rh_data_l_temp;
u8t_data_h=u8t_data_h_temp;
u8t_data_l=u8t_data_l_temp;
u8checkdata=u8checkdata_temp;
}//fi
}//fi
}
void main()
{
u8 i,j;
lcdinit();
delay(1); //延时100us(12m晶振)
while(1)
{
rh();//调用温湿度读取子程序
str[0]=u8t_data_h;
str[1]=u8t_data_l;
str[2]=u8rh_data_h;
str[3]=u8rh_data_l;
str[4]=u8checkdata;
wd_sw=u8t_data_h/10%10+0x30;
wd_gw=u8t_data_h%10+0x30;
sd_sw=u8rh_data_h/10%10+0x30;
sd_gw=u8rh_data_h%10+0x30;
a[12]=wd_sw;
a[13]=wd_gw;
a[14]=0xdf;
a[15]='c';
a[16]='\0';
lcdwritecom(0x00+0x80);
for(i=0;i<16;i++)
{
lcdwritedata(a[i]);
}
b[9]=sd_sw;
b[10]=sd_gw;
b[11]='\%';
b[12]='\0';
lcdwritecom(0x42+0x80);
for(i=0;i<12;i++)
{
lcdwritedata(b[i]);
}
//读取模块数据周期不易小于 2s

LED照明企业扎堆智慧灯杆业务,分食新基建“蛋糕”
等离子焊接和氩弧焊接的区别
交流异步电动机的结构与特点
瑞萨电子推出两款具有低静态电流双路输出同步控制器 适用于车载常开系统
电位器两端串联.二极管的电路
基于单片机的温湿度实时监控的程序设计
4G时代 如何应对测试挑战
食品零售自动驾驶车可上路,美国放宽公开道路测试
单片机教程十六:单片机定时器与计数器
工业自动化领域中激光切割设备市场空间广阔
第三届全球物联网产业大会开幕,畅想物联网+区块链美好未来
HTC在智能手机领域的形势跟现在VR市场的情况类似,创下历史新低
2018年这15大技术将会走在科技的前端!
详解Cree光通量能够超过1000lm的小型白色LED
自动点焊机安全操作规范的详细介绍
Microchip安全认证让LoRa技术再无漏洞
GaN功率开关会对EMI造成怎样的影响
智能时代最基本的两大平台
基于安森美半导体单片控制器实现电源参考电源的设计方案
新唐科技N584L030芯片介绍