基于 52 单片机的温湿
度检测仪的设计
摘要
利用 Atmel52 系列单片机和数字温湿度传感器 AM2301 设计并
制作一个简单的温湿度检测仪。以单片机为核心,外围电路包括电源、
时钟芯片、12864LCD、Max232 芯片、AM2301 传感器以及蜂鸣器报
警电路等。其中 AM2301 传感器是含有已校准数字信号输出的温湿度
复合传感器,它包括一个电阻式感湿元件和一个 NTC 测温元件。LCD
显示包括万年历、温湿度以及报警设置,同时通过内部中断方式把温
湿度的实时值通过 VB 编写的上位机程序接收并显示。
一、 设计功能
(1)LCD 分两个界面显示:主界面和设置报警界面;
(2)主界面显示万年历和温湿度实时值;
(3)设置报警界面显示温湿度上下限及开/关报警;
(4)当温湿度低于设置的下限或高于设置的上限并且开报警后,蜂
鸣器和 led 灯配合报警;
(5)有按键设置功能,以及关报警和回到主界面显示功能;
(6)能通过 Max 芯片和计算机通信,把温湿度数据显示在上位机界
面上,实现远程监控。
二、 设计所需元件清单
(1)9V 电源
(2)杜邦线若干
(3)12864LCD1 块
(4)80X52 单片机 1 片
(5)排阻 1 排,电阻若干
(6)AM2301 传感器 1 个
(7)32768Hz 晶振 1 个,12MHz 晶振 1 个
(8)蜂鸣器 1 个
(9)LM2940 稳压元件 1 个
(10)DS1302 时钟芯片 1 片
(11)船型开关 1 个,触点开关若干
(12)30pF 电容若干,22uF 电容若干
(13)LED 灯 2 个,三极管,纽扣电池
三、具体设计
根据所要实现的功能,将系统模块化设计,总体模块结构图如
下图所示:
以下就分别就各模块功能实现进行设计。
1. 复位电路
这部分是单片机一般都需要的,当运行出错或者死机时,利用复
位按键能重新启动系统。
RST
2. 时钟电路
如上图所示。其中时钟芯片 DS1302 的各引脚功能如下:
Vcc1:主电源;Vcc2:备份电源。当 Vcc2>Vcc1+0.2V 时,由 Vcc2
向 DS1302 供电,当 Vcc2< Vcc1 时,由 Vcc1 向 DS1302 供电。
SCLK:串行时钟,输入,控制数据的输入与输出;
I/O:三线接口时的双向数据线;
RST 为复位引脚,在读、写数据期间,必须为高,
X1 X2 为 32867Hz 晶振管脚,为芯片提供时钟脉冲。
3. 报警电路
各 I/O 口在上电时为高电平,LED 灯和蜂鸣器处于熄灭和不响状态。
其中 LED 灯通过一个 1K 的电阻限流,防止点亮时电流过大被烧坏。蜂
鸣器要用 NPN 型三极管驱动,当 P2.5 口输出高电平时,Q1 饱和导通,
蜂鸣器获得工作电流发出响声。
4. 键盘扫描电路
这里用了 5 个按键。其中按键 1 是调时按键,根据按的次数依次
进入年、月、日、时、分、秒、星期调整,再按一次则退出。按键 2
和 3 分别是加操作和减操作。按键 4 是设置温湿度上下限值及报警开
关;按键 5 是关报警。
5. 12864LCD 显示电路
ST7920 系列 12864 是带中文字库的液晶显示器,它可以显示 4 行,
每行 16 个字节,各行的地址依次为 0x80~0x87、0x90~0x97、0x88~0x8F
0x98~0x9F。
注:RB0~RB7(为数据口)依次接 P1 各口,变阻器 R2 下端接地。
5.1 接口说明:
VSS 为电源地;VDD 为电源正端;V0 为 LCD 驱动电压输入端;
RS:并行的指令/数据选择信号,串行的片选信号;
RW:并行的读写选择信号,串行的数据口;
E:并行的使能信号,串行的同步时钟;
PSB:并/串行接口选择,高电平时为并行;
NC:空脚;
RST:复位信号,低电平有效;
BLA:背光源正极;
BLK:背光源负极。
5.2、12864 读写时序图如下:
读写操作时序
数据与命令时序
5.3、基本操作时序
(1)读状态:输入:RS=L,RW=H,E=H
输出:D0~D7=状态字
(2)写指令:输入:RS=L,RW=L, D0~D7=指令码,E=高脉冲 输出:
无
(3)读数据:输入:RS=H,RW=H,E=H
输出:D0~D7=数据