资源简介
经验证通过可用 89C52单片机读取 DHT11温湿度传感器数据 通过1602液晶显示 并通过串口发送数据

代码片段和文件信息
//硬件连接: P2.0口为通讯口连接DHT1 (结果:反应有点慢,小数部分为0,可能是原件问题)
#include
//#include
#define uchar unsigned char
#define uint unsigned int
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位整型变量 */
sbit P2_0 = P1^6 ;
sbit P2_1 = P2^1 ;
sbit rs=P1^0;
sbit rw=P1^1;
sbit en=P1^2;
//----------------定义区--------------------//
U8 U8FLAG;
U8 U8countU8temp;
U8 U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
U8 U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
U8 U8comdata;
uchar display[5] = {0x000x000x000x000x00};
uchar display0[5] = {0x000x000x000x000x00};
uchar display1[5] = {0x000x000x000x000x00};
uchar display2[5] = {0x000x000x000x000x00};
uchar table0[]={“Tem:“};
uchar table1[]={“Hty:“};
U8 outdata[5]; //定义发送的字节数
U8 indata[5];
U8 count count_r=0;
U8 str[5]={“RS232“};
//延时函数
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 delayms(uint ms){
uint ij;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
void wcom(uchar com){ //写指令
rw=0;
rs=0;
P0=com;
delayms(5);
en=1;
delayms(5);
en=0;
}
void wdat(uchar dat){ //写数据
rw=0;
rs=1;
P0=dat;
delayms(5);
en=1;
delayms(5);
en=0;
}
void init(){ //初始化
uchar num;
wcom(0x38); //初始化1206
wcom(0x0c);
wcom(0x06);
wcom(0x01);
wcom(0x80); //设置显示位置
for(num=0;num<4;num++)
{
wdat(table0[num]);
delayms(5);
}
wcom(0x80+0x40); //设置显示位置
for(num=0;num<4;num++)
{
wdat(table1[num]);
delayms(5);
}
}
void COM(void) //串行总线 ,接收每字节数据
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
//----------------------
P2_1=0 ; //T
P2_1=1 ; //T
//----------------------
while((!P2_0)&&U8FLAG++);
Delay_10us();
Delay_10us();
U8temp=0;
if(P2_0)U8temp=1;
U8FLAG=2;
while((P2_0)&&U8FLAG++);
//----------------------
P2_1=0 ; //T
P2_1=1 ; //T
//----------------------
//超时则跳出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-----
//----调用相关子程序
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 397310 2008-08-12 17:21 DHT11+1602显示+串口\DHT11资料\DHT11湿温度传感器使用范例.pdf
文件 406016 2010-08-29 17:45 DHT11+1602显示+串口\DHT11资料\DHT11说明书0313.doc
文件 468948 2008-08-12 17:21 DHT11+1602显示+串口\DHT11资料\DHT11说明书200808修订版.pdf
文件 13880 2012-04-21 17:15 DHT11+1602显示+串口\程序\dht
文件 6809 2012-04-21 17:15 DHT11+1602显示+串口\程序\dht.c
文件 3067 2012-04-21 17:15 DHT11+1602显示+串口\程序\dht.hex
文件 54 2012-04-21 17:15 DHT11+1602显示+串口\程序\dht.lnp
文件 14718 2012-04-21 17:15 DHT11+1602显示+串口\程序\dht.LST
文件 18544 2012-04-21 17:15 DHT11+1602显示+串口\程序\dht.M51
文件 15850 2012-04-21 17:15 DHT11+1602显示+串口\程序\dht.OBJ
文件 1208 2012-04-21 17:17 DHT11+1602显示+串口\程序\dht.Opt
文件 366 2012-04-21 17:17 DHT11+1602显示+串口\程序\dht.plg
文件 2041 2012-04-12 19:14 DHT11+1602显示+串口\程序\dht.Uv2
....... 1200 2012-04-16 16:21 DHT11+1602显示+串口\程序\dht_Opt.Bak
文件 2041 2012-04-07 16:54 DHT11+1602显示+串口\程序\dht_Uv2.Bak
文件 6376 2005-03-22 15:22 DHT11+1602显示+串口\程序\STARTUP.A51
文件 14048 2012-04-21 17:15 DHT11+1602显示+串口\程序\STARTUP.LST
文件 749 2012-04-21 17:15 DHT11+1602显示+串口\程序\STARTUP.OBJ
目录 0 2012-04-21 17:12 DHT11+1602显示+串口\DHT11资料
目录 0 2012-04-21 17:17 DHT11+1602显示+串口\程序
目录 0 2012-04-21 17:12 DHT11+1602显示+串口
----------- --------- ---------- ----- ----
1373225 21
相关资源
- [免费]msp430f149控制PS2键盘并用1602显示
- ADC0809数字电压表 LCD1602显示 汇编程序
- LCD1602显示程序
- DS18B20-液晶1602显示温度和控制(代码
- STM32温湿度传感器DHT11代码,通过串口
- STM32+ZE08-CH2O甲醛传感器+LCD1602显示.r
- STM32f103电压采样并用LCD1602显示
- 数字温湿度传感器DHT11详解及例程利用
- 温湿度传感器DHT11资料+程序
- STM32-串口能显示-超声波测距SR04 - LC
- STM32F407VET6_SMART_LCD1602显示
- STM32+超声波传感器HC_RS04+光照传感器
- 汇编程序测控51单片机超声波测距16
- 51单片机时钟电路LCD1602显示完整源码
- 基于stm32的lcd1602显示C程序源码
- fpga驱动1602显示字符
- STM32,超声波测距模块HC_SR04,1602显示
- 基于51单片机的超声波测距LCD1602显示
- STM32-LCD1602显示proteus仿真实验
- 温湿度传感器DHT11的Proteus仿真.zip
- STM32F103 驱动四路MAX6675 采集温度 LC
- 电子秤1602显示
- 基于DS18B20传感器的数字温度监控系统
- rc522之51单片机1602显示以及上位机
- STM32 1602显示AD采集的电压值
- 基于51单片机的DS18B20温度控制1602显示
- 基于STM32的LCD1602显示
- LCD1602显示 基于nios ii
- 51单片机ADC0804程序1602显示带仿真
- 基于51单片机和DS18B20的温度控制器带
评论
共有 条评论