《基于51单片机的AM2301温湿度传感器在LCD1602上显示驱动程序(带实物图)概要》由会员分享,可在线阅读,更多相关《基于51单片机的AM2301温湿度传感器在LCD1602上显示驱动程序(带实物图)概要(18页珍藏版)》请在金锄头文库上搜索。
1、AM2301温湿度传感器模块AM2301数字温湿度传感器是一各包括有数字校准输出的温湿度传感器。它采用独特的数字采集模块和高新温湿度采集传感技术,可以确保产品可靠性高以及稳定性好。该款传感器具有响应快、抗干扰力强、性价比高、品质卓越等优点。以及超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用的最佳选则。9AM2301 引脚图图3-10 AM2301引脚图AM2301各引脚说明表3-7 AM2301引脚引脚颜色名称注释1红色VDD供电 3.3-5.5VDC2黄色SDA串行数据,单总线3黑色GND接地,电源负极4NC空脚,请悬空(不要接Vcc或Gnd)AM2301 技术参数表3
2、-8 AM2301技术参数参数条件MinTypMax单位湿度分辨率0.1%RH16Bit重复性1%RH精度253%RH0505%RH互换性可完全互换采样周期12S响应时间1/e(63%)25,1m/s 空气2S迟滞0.3%RH长期稳定性典型值1%RH/yr温度分辨率0.116Bit重复性0.5精度1量程范围-4080响应时间1/e(63%)620SAM2301 驱动电路图3-11 AM2301驱动电路图温湿度传感器模块流程设计用户主机(MCU)发送一次开始信号后,AM2301自动从休眠模式转换到高速模式。等待主机开始,信号发送后,AM2301发送响应信号,送出40比特的数据,发送数据结束之后触
3、发一次信号采集,对外部环境进行数据采集,采集结束传感器自动转入休眠模式,直到下一次通信信号的来临。此时AM2301的SDA数据线由上拉电阻拉高,一直保持高电平,且AM2301的SDA引脚处于输入状态,时刻检测外部信号。一旦接收到主机发送的信号,再次进入采集状态,对外部数据进行一次采集。整个过程流程图如下:图4-10温湿度传感器流程图1602 LCD显示屏测试根据第三章说明的LCD硬件连线要求,将屏幕的14个接口按要求分别连接至单片机的各端口,确认无误后,个单片机上电,并将编完的程序通过STC-ISP软件烧入到单片机中,连线图如下:图5-3 LCD1602连线图 给单片机上电之后,屏幕显示如下:
4、图5-4 LCD1602显示效果 该LCD显示屏能正常显示预期设置字幕。AM2301温湿度传感器测试根据温湿度传感器驱动电路,实物连接图如下:图5-7 AM2301连线图给单片机上电,则可在LCD屏幕上得到如下数据:图5-8 AM2301采集数据LCD屏幕第一行显示当前室内湿度情况,第二行显示当前室内温度情况,若用吹风机对其吹风,则温湿度会相应变化。附录主要程序源代码:1. REG52.H/*-REG52.HHeader file for generic 80C52 and 80C32 microcontroller.Copyright (c) 1988-2002 Keil Elektroni
5、k GmbH and Keil Software, Inc.All rights reserved.-*/#ifndef _REG52_H_#define _REG52_H_/* BYTE Registers */sfr P0 = 0x80;sfr P1 = 0x90;sfr P2 = 0xA0;sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sf
6、r TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98;sfr SBUF = 0x99;/* 8052 Extensions */sfr T2CON = 0xC8;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD;/* BIT Registers */* PSW */sbit CY = PSW7;sbit AC = PSW6;sbit F0 = PSW5;sbit R
7、S1 = PSW4;sbit RS0 = PSW3;sbit OV = PSW2;sbit P = PSW0; /8052 only/* TCON */sbit TF1 = TCON7;sbit TR1 = TCON6;sbit TF0 = TCON5;sbit TR0 = TCON4;sbit IE1 = TCON3;sbit IT1 = TCON2;sbit IE0 = TCON1;sbit IT0 = TCON0;/* IE */sbit EA = IE7;sbit ET2 = IE5; /8052 onlysbit ES = IE4;sbit ET1 = IE3;sbit EX1 =
8、IE2;sbit ET0 = IE1;sbit EX0 = IE0;/* IP */sbit PT2 = IP5;sbit PS = IP4;sbit PT1 = IP3;sbit PX1 = IP2;sbit PT0 = IP1;sbit PX0 = IP0;/* P3 */sbit RD = P37;sbit WR = P36;sbit T1 = P35;sbit T0 = P34;sbit INT1 = P33;sbit INT0 = P32;sbit TXD = P31;sbit RXD = P30;/* SCON */sbit SM0 = SCON7;sbit SM1 = SCON6
9、;sbit SM2 = SCON5;sbit REN = SCON4;sbit TB8 = SCON3;sbit RB8 = SCON2;sbit TI = SCON1;sbit RI = SCON0;/* P1 */sbit T2EX = P11; / 8052 onlysbit T2 = P10; / 8052 only /* T2CON */sbit TF2 = T2CON7;sbit EXF2 = T2CON6;sbit RCLK = T2CON5;sbit TCLK = T2CON4;sbit EXEN2 = T2CON3;sbit TR2 = T2CON2;sbit C_T2 =
10、T2CON1;sbit CP_RL2 = T2CON0;#endif2. INTRINS.H/*-INTRINS.HIntrinsic functions for C51.Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.-*/#ifndef _INTRINS_H_#define _INTRINS_H_extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsi
11、gned char, unsigned char);extern unsigned int _iror_ (unsigned int, unsigned char);extern unsigned long _lror_ (unsigned long, unsigned char);extern unsigned char _crol_ (unsigned char, unsigned char);extern unsigned int _irol_ (unsigned int, unsigned char);extern unsigned long _lrol_ (unsigned long, unsigned char);extern unsigned char _chkfloat_(float);extern void _push_ (unsigned char _sfr);extern void _pop_ (unsigned char _sfr);#endif3. STDIO.H/*-STDIO.HPrototypes for standard I/O functions.Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.-