资源简介
经验证通过可用 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
相关资源
- 温湿度传感器DHT11在mini2440上基于lin
- Stc89C52 超声波测距 并且 1602显示
- 1602光标移动及数据修改
- 4×4矩阵键盘键值LCD1602显示汇编语言
- 基于单片机的温湿度1602显示
- 51单片机读取DS18b20数据加1602显示+pr
- 51单片机驱动K型热电偶数字转换器M
- 51单片机Protues,仿真DS18b20温度传感器
- 单片机电子密码锁,1602显示,密码可
- DS1302 LCD1602显示 protues仿真
- LCD1602显示代码,verilog HDL编写。
- ds1302时钟、温度、LCD1602显示,按键设
- DHT11 温湿度传感器1602显示 可用程序
- 用FPGA实现LCD1602显示程序
- 51单片机串口通信+1602显示字符串
- Verlog 驱动TLC549在LCD1602显示
- SHT10 SHT20 SHT21温湿度单片机89C52 1602显
- 基于51单片机的超声波测距程序LCD16
- 基于VHDL的LCD1602显示程序,电路设计,
- 1602显示汉字C51
- DS1302时钟LCD1602显示
- 51电压表 1602显示附proteus仿真
- 光电测速及LCD1602显示
- lM016L/1602显示汉字(lcd1602手册+keil51
- 矩阵键盘4*4+1602显示+protues仿真
- LCD1602显示万年历程序
- 51单片机频率计1602显示
- DS1302时钟芯片做的LCD1602显示时钟51单
评论
共有 条评论