0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于AT89C2051单片机和AD7416芯片实现多路温湿度循环检测系统的设计方案

基于AT89C2051单片机和AD7416芯片实现多路温湿度循环检测系统的设计方案

来源: elecfans
2021-11-18
类别:工业控制
eye 11
文章创建人 拍明

原标题:基于AT89C2051单片机和AD7416芯片实现多路温湿度循环检测系统的设计方案

该设计方案旨在构建一个能够对多路温湿度进行实时、循环检测的系统,其核心控制单元采用经济高效的AT89C2051单片机,而温度采集则选用高精度、易于集成的AD7416数字温度传感器。整个系统将具备数据采集、处理、显示以及必要的扩展功能,以满足不同应用场景的需求。

image.png

1. 系统概述与总体设计

多路温湿度循环检测系统的主要功能是周期性地采集多个测量点的温度和湿度数据,经过处理后在显示设备上直观地展现出来,同时可能预留数据存储和通信接口。系统应具备良好的稳定性、可靠性和一定的抗干扰能力。

系统总体设计思路如下:

  • 中央处理单元: 选用AT89C2051单片机作为核心控制器,负责系统初始化、时序控制、数据采集、数据处理、数据存储(如果需要)、显示驱动以及对外通信等所有核心功能。AT89C2051是一款低功耗、高性能的CMOS 8位微控制器,具备2KB可擦写可编程只读存储器(FLASH ROM),128字节片内RAM,15条I/O线,两个16位定时器/计数器,一个五向量两级中断结构,一个全双工串行口,一个精确的模拟比较器,以及片内振荡器和时钟电路。选择AT89C2051的原因在于其体积小巧、功耗低、集成度高,且具有足够的处理能力和I/O资源来满足多路温湿度检测的需求。其FLASH存储器方便程序的烧写和调试,且价格适中,非常适合成本敏感的应用。

  • 温度采集模块: 采用AD7416数字温度传感器。AD7416是一款10位、2线(I²C兼容)数字温度传感器,其特点是测量范围广(-55°C至+125°C)、精度高(±1°C @ +25°C)、功耗低,且输出为数字信号,避免了模拟信号传输中的噪声干扰和AD转换器的误差,简化了硬件设计。选择AD7416的主要原因是它直接输出数字温度值,省去了外部ADC电路,大大简化了硬件连接和软件编程。其I²C接口易于与单片机通信,且支持多片AD7416通过不同的地址同时挂载在I²C总线上,从而实现多路温度的采集。

  • 湿度采集模块: 选用高精度、响应速度快的数字湿度传感器,例如DHT11或DHT22。DHT11/DHT22集成了温度和湿度传感器,并输出数字信号,可以直接与单片机进行单总线通信。选择DHT11/DHT22的理由是其集成度高、价格便宜、易于使用,且能够同时提供温度和湿度数据,减少了传感器数量。尽管AD7416可以测量温度,但为了实现“温湿度”检测,且湿度传感器通常也集成温度测量功能,因此采用独立的温湿度一体化传感器更为方便。若精度要求更高,可考虑SHT系列传感器,如SHT20、SHT30等,它们提供更高的测量精度和更快的响应速度,同样采用I²C接口。

  • 多路切换模块: 由于AT89C2051的I/O口数量有限,且AD7416和湿度传感器可能占用较多的I/O资源,对于多路传感器,需要设计一个多路切换电路。可以使用模拟开关(如CD4051/CD4052/CD4053)来切换I²C总线或单总线接口,使得单片机能够依次与不同的传感器通信。CD4051/CD4052/CD4053是CMOS模拟多路复用器/解复用器,具有低导通电阻、低功耗、宽电源电压范围等优点,非常适合用于切换数字信号或模拟信号。通过单片机的几个I/O口控制多路复用器的选择端,即可实现多路传感器的分时访问。

  • 显示模块: 采用LCD1602液晶显示模块或OLED显示模块。LCD1602是字符型液晶显示屏,能够显示两行16个字符,足以显示多路温湿度数据。其接口简单,价格低廉,是常见的选择。如果追求更小的体积和更高的显示效果,OLED显示模块(如0.96寸OLED)也是一个不错的选择,OLED具有自发光、对比度高、视角广、响应速度快等特点,但价格相对较高。选择LCD1602是因为其成熟度高、驱动简单、成本低,非常适合入门级和成本敏感的项目。

  • 电源模块: 提供稳定的直流电源。通常采用外部适配器(如5V DC)供电,并通过LDO(低压差线性稳压器)如AMS1117-3.3或AMS1117-5.0等为各模块提供稳定的电压。AMS1117系列稳压器具有输出电压稳定、压差小、输出电流大等优点,能够为单片机和传感器提供纯净的电源,确保系统稳定运行。

  • 人机交互与报警模块(可选): 可通过按键设置检测间隔或切换显示模式。当温湿度超出预设阈值时,可驱动蜂鸣器或LED灯进行声光报警。

2. 硬件设计

2.1 AT89C2051单片机最小系统

AT89C2051单片机最小系统包括:

  • 电源电路: VCC和GND。通常VCC接5V电源。

  • 晶振电路: 外部晶振和两个匹配电容。推荐使用11.0592MHz或12MHz晶振,以便于串口通信的波特率设置。晶振连接到XTAL1和XTAL2引脚,并串联两个30pF左右的电容到地。

  • 复位电路: 由复位按键、电阻和电容组成。POR(Power-On Reset)电路可在上电时自动复位单片机。

  • I/O口扩展: AT89C2051共有15个I/O口(P1.0-P1.7, P3.0-P3.7,其中P3.0和P3.1为RXD/TXD,P3.2和P3.3为外部中断,P3.4和P3.5为定时器输入,P3.6和P3.7为WR/RD)。这些I/O口将用于连接温度传感器、湿度传感器、显示模块、按键以及多路切换芯片的控制引脚。

2.2 AD7416温度传感器接口电路

AD7416与AT89C2051通过I²C总线进行通信。I²C总线仅需两条线:SDA(数据线)和SCL(时钟线)。

  • SDA连接AT89C2051的P3.0(RXD)或P1口任意引脚,SCL连接AT89C2051的P3.1(TXD)或P1口任意引脚。需要注意的是,I²C总线需要外部上拉电阻,通常为4.7kΩ或10kΩ,连接到VCC。

  • AD7416的VCC和GND分别连接电源和地。

  • AD7416具有地址引脚A0和A1,用于设置I²C器件地址。通过不同的连接方式(接GND、接VCC),可以设置不同的地址,从而在一组I²C总线上连接多片AD7416。例如,A0和A1都接地,地址为0x48;A0接VCC,A1接地,地址为0x49,以此类推。这对于实现多路温度检测至关重要。

2.3 DHT11/DHT22湿度传感器接口电路

DHT11/DHT22采用单总线通信。

  • 数据引脚(DATA)连接AT89C2051的一个I/O口,例如P1.0。

  • VCC和GND分别连接电源和地。

  • 数据线需要一个4.7kΩ或10kΩ的上拉电阻到VCC。

2.4 多路切换模块电路

以CD4051为例,CD4051是一个8选1模拟多路复用器。

  • VCC和GND接电源。

  • EN(使能端)接低电平使能。

  • A、B、C为选择控制端,连接AT89C2051的三个I/O口(例如P1.1、P1.2、P1.3)。通过控制这三个引脚的高低电平组合,可以选择连接8路输入中的一路。

  • COMMON OUT/IN端(公共端)连接单片机的I²C总线SDA线或DHT传感器的DATA线。

  • Y0-Y7为8路输入/输出端,分别连接8个AD7416的SDA线或8个DHT传感器的DATA线。

例如,如果要切换I²C总线,则CD4051的COMMON OUT/IN端连接单片机的SDA线,8个Yx端分别连接8个AD7416的SDA线。SCL线则可以并行连接所有AD7416(前提是它们的地址不同)。对于DHT传感器,COMMON OUT/IN端连接单片机的DATA线,8个Yx端分别连接8个DHT传感器的DATA线。

2.5 显示模块电路

LCD1602:

  • DB0-DB7(数据线)连接AT89C2051的P1口或其他可用的I/O口(P1.0-P1.7)。

  • RS(寄存器选择)、RW(读写选择)、E(使能)连接AT89C2051的I/O口(例如P3.2、P3.3、P3.4)。

  • VCC、GND、VDD(对比度调节)连接电源。

  • BLA、BLK(背光)连接电源和地,可通过电阻限流。

0.96寸OLED(SSD1306驱动):

  • 大部分0.96寸OLED模块支持I²C或SPI接口。如果选用I²C接口,则SDA和SCL连接AT89C2051的I²C总线。

  • VCC和GND连接电源。

  • OLED模块内部通常集成有驱动芯片,无需外部复杂电路。

2.6 电源模块

  • 输入端:DC5V电源适配器接口。

  • 稳压芯片:AMS1117-3.3或AMS1117-5.0。例如,输入5V,通过AMS1117-3.3输出3.3V给需要3.3V供电的模块(如某些版本的AD7416或OLED)。对于5V供电的AT89C2051和LCD1602,可直接使用5V电源。

  • 滤波电容:在电源输入和输出端并联电解电容和陶瓷电容,用于滤波和去耦,提高电源稳定性。

3. 软件设计

软件设计是系统成功的关键,包括初始化、数据采集、数据处理、显示驱动和循环检测等模块。采用模块化编程思想,使程序结构清晰、易于维护。

3.1 主程序流程

  1. 系统初始化:

    • 单片机I/O口初始化:设置各引脚为输入或输出模式。

    • 定时器初始化:设置定时器用于产生检测间隔,或作为延时函数。

    • 串口初始化(如果需要):用于调试或上位机通信。

    • 显示模块初始化:对LCD1602或OLED进行初始化操作,清屏。

    • 多路切换模块初始化:将多路复用器设置到初始状态。

  2. 主循环:

    • 控制多路复用器选择第一路传感器。

    • 延时等待传感器稳定。

    • 温度采集(AD7416):

    • 湿度采集(DHT11/DHT22):

    • 数据处理:

    • 数据显示:

    • 延时: 设定一定的延时,以便观察数据,或等待下一个检测周期。

    • 重复上述步骤,直到所有路数检测完毕,然后从第一路开始新一轮循环。

    • 单片机发送AD7416的I²C启动信号。

    • 发送AD7416的器件地址(读模式)。

    • 从AD7416读取10位温度数据(高8位和低2位)。

    • 将读取到的数据进行温度转换(根据AD7416的数据手册进行换算)。

    • 单片机发送DHT传感器的起始信号(拉低电平18ms,再拉高电平40us)。

    • 等待DHT传感器响应信号(拉低电平80us,再拉高电平80us)。

    • 读取40位数据(高16位为湿度整数和小数,低16位为温度整数和小数,最后8位为校验和)。

    • 进行校验和验证,确保数据正确性。

    • 解析湿度和温度数据。

    • 将采集到的温度和湿度数据存储到RAM中。

    • 对数据进行平均值滤波、中值滤波等算法,消除测量误差。

    • 进行超限报警判断,如果数据超出预设阈值,触发报警。

    • 在LCD1602或OLED上显示当前测量点的编号、温度和湿度。

    • 例如,显示格式为“CH1: T=XX.X C H=YY.Y %”。

    • 循环检测: 依次切换多路传感器。

3.2 关键子程序

  • I²C通信子程序: 包含I²C起始信号、停止信号、发送字节、接收字节、应答信号等函数。这些函数是AD7416通信的基础。

  • AD7416数据读取与转换子程序: 调用I²C通信子程序读取AD7416的数据,并将其转换为实际温度值(摄氏度)。

  • DHT11/DHT22数据读取与解析子程序: 按照DHT传感器的数据协议,实现单总线通信时序,读取40位数据,并解析出湿度和温度。

  • LCD1602/OLED显示驱动子程序: 包含发送指令、发送数据、清屏、设置光标位置、显示字符串、显示数字等函数。

  • 按键扫描子程序(可选): 实现按键的消抖和功能判断。

  • 报警控制子程序(可选): 控制蜂鸣器或LED的开关。

4. 系统测试与调试

  • 分模块测试: 先对电源模块、单片机最小系统、传感器模块、显示模块等进行独立测试,确保各部分功能正常。

  • 集成测试: 将所有模块连接起来,进行整体功能测试。

  • 软件调试: 使用仿真器或在板调试工具,逐步调试程序,检查I/O口状态、变量值,确保程序逻辑正确。

  • 精度校准: 将系统置于已知温湿度环境中,与标准仪器进行对比,对采集数据进行校准,提高测量精度。

  • 稳定性测试: 长时间运行系统,观察其稳定性、可靠性以及抗干扰能力。

5. 优选元器件型号及功能说明

5.1 AT89C2051单片机

  • 型号: AT89C2051-24PC (PDIP封装) 或 AT89C2051-24PI (PLCC封装)

  • 功能: 8位微控制器,2KB FLASH ROM,128B RAM,15条I/O线,两个16位定时器/计数器,全双工串行口,模拟比较器。

  • 选择原因: 小体积、低功耗、高集成度、FLASH存储器易于烧写和调试、成本低廉,非常适合作为嵌入式控制器的核心。其I/O口数量足以满足多路温湿度检测的需求,且有足够的处理能力进行数据处理和显示。24MHz最高工作频率提供了足够的处理速度。

5.2 AD7416数字温度传感器

  • 型号: AD7416ARZ (SOIC-8封装)

  • 功能: 10位I²C数字温度传感器,测量范围-55°C至+125°C,精度±1°C (25°C)。直接输出数字温度值。

  • 选择原因: 高精度、宽测量范围、数字输出(免AD转换)、I²C接口简化布线和编程。支持多片挂载在同一I²C总线上,通过A0、A1地址引脚设置不同地址,完美支持多路温度采集。低功耗。

5.3 DHT系列温湿度传感器

  • 型号: DHT11 (TO-92封装) 或 DHT22 (TO-92封装)

  • 功能: DHT11:湿度20-90%RH ±5%RH,温度0-50°C ±2°C;DHT22:湿度0-100%RH ±2%RH,温度-40-80°C ±0.5°C。单总线数字信号输出。

  • 选择原因: 成本低廉、集成度高、单总线通信简单方便、能够同时提供温度和湿度数据。DHT22比DHT11精度更高、测量范围更广,如果对精度有更高要求,优先选择DHT22。

5.4 多路模拟开关/多路复用器

  • 型号: CD4051BE (DIP-16封装) 或 CD4051BM (SOIC-16封装)

  • 功能: 8选1模拟多路复用器/解复用器,具有低导通电阻、低功耗、宽电源电压范围。

  • 选择原因: 实现多路传感器(尤其是I²C总线或单总线)的切换,有效节省单片机I/O口资源。通过3个控制引脚即可实现8路切换,简单高效。CD4052(4选2双路复用器)和CD4053(2选2三路复用器)也可根据实际路数需求选择。

5.5 LCD显示模块

  • 型号: LCD1602 (带背光,蓝色或绿色)

  • 功能: 字符型液晶显示屏,可显示2行16个字符。

  • 选择原因: 价格低廉、驱动简单、资料丰富、显示效果清晰。是入门级和成本敏感项目的理想选择。

5.6 OLED显示模块(可选)

  • 型号: 0.96寸OLED模块 (SSD1306驱动,I²C接口)

  • 功能: 图形显示屏,自发光,高对比度,视角广,响应速度快。

  • 选择原因: 显示效果更佳、体积更小、更省电。适用于对显示质量和便携性有更高要求的场合。由于其图形特性,可以显示更丰富的信息和图形界面,但编程相对LCD1602更复杂一些。

5.7 稳压器

  • 型号: AMS1117-3.3 或 AMS1117-5.0 (SOT-223封装)

  • 功能: 低压差线性稳压器,输入电压范围宽,输出电压稳定。

  • 选择原因: 为单片机和传感器提供稳定的工作电压,确保系统正常运行。低压差特性使其在输入电压与输出电压接近时也能良好工作,效率较高。

5.8 晶体振荡器

  • 型号: 11.0592MHz 或 12MHz 无源晶振

  • 功能: 提供单片机时钟信号。

  • 选择原因: 11.0592MHz晶振可以精确地产生各种标准波特率,方便串口通信;12MHz晶振是常用频率,可提供较快的处理速度。

5.9 其他通用元器件

  • 电阻: 各类限流电阻、上拉电阻、下拉电阻,例如4.7kΩ、10kΩ、220Ω等。

  • 电容: 滤波电容(10uF、0.1uF等)、晶振匹配电容(30pF)。

  • 按键: 用于人机交互,如复位按键、功能设置按键。

  • LED: 用于电源指示、报警指示等。

  • 排针/排座: 用于模块间连接,方便调试和维护。

  • PCB板: 承载所有元器件,提供电气连接。

6. 系统扩展与展望

  • 数据存储: 可通过外扩EEPROM(如24C02/24C08)或Flash芯片(如W25Q系列)存储历史温湿度数据,实现数据记录功能。

  • 通信接口: 可扩展RS232/RS485、USB、以太网或无线模块(如ESP8266 Wi-Fi模块、蓝牙模块)实现与上位机或云平台的通信,实现远程监控。

  • 报警方式: 除声光报警外,可扩展短信报警、网络报警等。

  • 控制功能: 可根据温湿度数据,控制风扇、加热器、加湿器等执行机构,实现环境的自动调节。

  • 用户界面: 可通过外扩键盘或触摸屏,提供更友好的用户交互界面。

  • 多路传感器类型: 除了温湿度,还可以扩展光照、CO2浓度、PM2.5等其他环境参数的检测。

总结

基于AT89C2051单片机和AD7416芯片的多路温湿度循环检测系统设计方案,充分利用了这两款芯片的优势,结合了高精度数字传感器和多路复用技术,实现了一个功能完善、成本效益高、易于实现的监测系统。通过精心的硬件设计和软件编程,该系统能够稳定可靠地采集和显示多路温湿度数据,并具备良好的可扩展性,满足不同应用场景的需求。该设计方案为温湿度监测、环境控制、农业生产、工业自动化等领域提供了可靠的解决方案。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告