基于51单片机的AM2301温湿度传感器在LCD1602上显示驱动程序(带实物图).doc
《基于51单片机的AM2301温湿度传感器在LCD1602上显示驱动程序(带实物图).doc》由会员分享,可在线阅读,更多相关《基于51单片机的AM2301温湿度传感器在LCD1602上显示驱动程序(带实物图).doc(18页珍藏版)》请在冰豆网上搜索。
AM2301温湿度传感器模块
AM2301数字温湿度传感器是一各包括有数字校准输出的温湿度传感器。
它采用独特的数字采集模块和高新温湿度采集传感技术,可以确保产品可靠性高以及稳定性好。
该款传感器具有响应快、抗干扰力强、性价比高、品质卓越等优点。
以及超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用的最佳选则。
[9]
AM2301引脚图
图3-10AM2301引脚图
AM2301各引脚说明
表3-7AM2301引脚
引脚
颜色
名称
注释
1
红色
VDD
供电3.3-5.5VDC
2
黄色
SDA
串行数据,单总线
3
黑色
GND
接地,电源负极
4
NC
空脚,请悬空(不要接Vcc或Gnd)
AM2301技术参数
表3-8AM2301技术参数
参数
条件
Min
Typ
Max
单位
湿度
分辨率
0.1
%RH
16
Bit
重复性
±1
%RH
精度
25℃
±3
%RH
0-50℃
±5
%RH
互换性
可完全互换
采样周期
1
2
S
响应时间
1/e(63%)25℃,1m/s空气
2
S
迟滞
±0.3
%RH
长期稳定性
典型值
±1
%RH/yr
温度
分辨率
0.1
℃
16
Bit
重复性
±0.5
℃
精度
±1
℃
量程范围
-40
80
℃
响应时间
1/e(63%)
6
20
S
AM2301驱动电路
图3-11AM2301驱动电路图
温湿度传感器模块流程设计
用户主机(MCU)发送一次开始信号后,AM2301自动从休眠模式转换到高速模式。
等待主机开始,信号发送后,AM2301发送响应信号,送出40比特的数据,发送数据结束之后触发一次信号采集,对外部环境进行数据采集,采集结束传感器自动转入休眠模式,直到下一次通信信号的来临。
此时AM2301的SDA数据线由上拉电阻拉高,一直保持高电平,且AM2301的SDA引脚处于输入状态,时刻检测外部信号。
一旦接收到主机发送的信号,再次进入采集状态,对外部数据进行一次采集。
整个过程流程图如下:
图4-10温湿度传感器流程图
1602LCD显示屏测试
根据第三章说明的LCD硬件连线要求,将屏幕的14个接口按要求分别连接至单片机的各端口,确认无误后,个单片机上电,并将编完的程序通过STC-ISP软件烧入到单片机中,连线图如下:
图5-3LCD1602连线图
给单片机上电之后,屏幕显示如下:
图5-4LCD1602显示效果
该LCD显示屏能正常显示预期设置字幕。
AM2301温湿度传感器测试
根据温湿度传感器驱动电路,实物连接图如下:
图5-7AM2301连线图
给单片机上电,则可在LCD屏幕上得到如下数据:
图5-8AM2301采集数据
LCD屏幕第一行显示当前室内湿度情况,第二行显示当前室内温度情况,若用吹风机对其吹风,则温湿度会相应变化。
附录
主要程序源代码:
1.REG52.H
/*--------------------------------------------------------------------------
REG52.H
Headerfileforgeneric80C52and80C32microcontroller.
Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.
Allrightsreserved.
--------------------------------------------------------------------------*/
#ifndef__REG52_H__
#define__REG52_H__
/*BYTERegisters*/
sfrP0=0x80;
sfrP1=0x90;
sfrP2=0xA0;
sfrP3=0xB0;
sfrPSW=0xD0;
sfrACC=0xE0;
sfrB=0xF0;
sfrSP=0x81;
sfrDPL=0x82;
sfrDPH=0x83;
sfrPCON=0x87;
sfrTCON=0x88;
sfrTMOD=0x89;
sfrTL0=0x8A;
sfrTL1=0x8B;
sfrTH0=0x8C;
sfrTH1=0x8D;
sfrIE=0xA8;
sfrIP=0xB8;
sfrSCON=0x98;
sfrSBUF=0x99;
/*8052Extensions*/
sfrT2CON=0xC8;
sfrRCAP2L=0xCA;
sfrRCAP2H=0xCB;
sfrTL2=0xCC;
sfrTH2=0xCD;
/*BITRegisters*/
/*PSW*/
sbitCY=PSW^7;
sbitAC=PSW^6;
sbitF0=PSW^5;
sbitRS1=PSW^4;
sbitRS0=PSW^3;
sbitOV=PSW^2;
sbitP=PSW^0;//8052only
/*TCON*/
sbitTF1=TCON^7;
sbitTR1=TCON^6;
sbitTF0=TCON^5;
sbitTR0=TCON^4;
sbitIE1=TCON^3;
sbitIT1=TCON^2;
sbitIE0=TCON^1;
sbitIT0=TCON^0;
/*IE*/
sbitEA=IE^7;
sbitET2=IE^5;//8052only
sbitES=IE^4;
sbitET1=IE^3;
sbitEX1=IE^2;
sbitET0=IE^1;
sbitEX0=IE^0;
/*IP*/
sbitPT2=IP^5;
sbitPS=IP^4;
sbitPT1=IP^3;
sbitPX1=IP^2;
sbitPT0=IP^1;
sbitPX0=IP^0;
/*P3*/
sbitRD=P3^7;
sbitWR=P3^6;
sbitT1=P3^5;
sbitT0=P3^4;
sbitINT1=P3^3;
sbitINT0=P3^2;
sbitTXD=P3^1;
sbitRXD=P3^0;
/*SCON*/
sbitSM0=SCON^7;
sbitSM1=SCON^6;
sbitSM2=SCON^5;
sbitREN=SCON^4;
sbitTB8=SCON^3;
sbitRB8=SCON^2;
sbitTI=SCON^1;
sbitRI=SCON^0;
/*P1*/
sbitT2EX=P1^1;//8052only
sbitT2=P1^0;//8052only
/*T2CON*/
sbitTF2=T2CON^7;
sbitEXF2=T2CON^6;
sbitRCLK=T2CON^5;
sbitTCLK=T2CON^4;
sbitEXEN2=T2CON^3;
sbitTR2=T2CON^2;
sbitC_T2=T2CON^1;
sbitCP_RL2=T2CON^0;
#endif
2.INTRINS.H
/*--------------------------------------------------------------------------
INTRINS.H
IntrinsicfunctionsforC51.
Copyright(c)1988-2004KeilElektronikGmbHandKeilSoftware,Inc.
Allrightsreserved.
--------------------------------------------------------------------------*/
#ifndef__INTRINS_H__
#define__INTRINS_H__
externvoid_nop_(void);
externbit_testbit_(bit);
externunsignedchar_cror_(unsignedchar,unsignedchar);
externunsignedint_iror_(unsignedint,unsignedchar);
externunsignedlong_lror_(unsignedlong,unsignedchar);
externunsignedchar_crol_(unsignedchar,unsignedchar);
externunsignedint_irol_(unsignedint,unsignedchar);
externunsignedlong_lrol_(unsignedlong,unsignedchar);
externunsignedchar_chkfloat_(float);
externvoid_push_(unsignedchar_sfr);
externvoid_pop_(unsignedchar_sfr);
#endif
3.STDIO.H
/*--------------------------------------------------------------------------
STDIO.H
PrototypesforstandardI/Ofunctions.
Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.
Allrightsreserved.
-----------------------------------------------------------------