基于51单片机的双机通信温度检测报警系统的仿真设计
一、设计要求
主机、从机均以AT89C52单片机为控制核心。从机利用DS18B20检测温度,并将温度值通过串口发送给主机。主机将从机发送的温度值与报警上下阈值比较后,发送控制命令给从机,从机收到控制命令后执行相应的动作。
二、设计内容
从机利用DS18B20数字温度传感器检测温度,并将温度值(保留两位小数)在LCD1602的第一行显示,同时将温度值通过串口发送给主机。主机接收从机发送的温度值,并将温度值显示在LCD1602的第一行。主机通过矩阵按键输入温度报警上下限的阈值,上下阈值在LCD1602的第二行显示。主机将从机发送的温度值与上下阈值比较,当温度值在上下阈值范围内(不包括上下阈值)时,主机发送命令,从机接收命令控制直流电机转动;当温度值等于或超出上下阈值时,主机发送命令,从机接收命令控制直流电机停转、蜂鸣器报警。
三、设计方案
本次设计主要包括两个LCD1602显示模块、矩阵键盘输入模块、直流电机模块、蜂鸣器模块、DS18B20测温模块,串口通信模块。
LCD1602显示模块:主机和从机的LCD1602显示模块相同,下面以主机为例说明。主机的P0端口连接LCD1602的D0~D7引脚控制数据的输入输出;主机的P2^5、P2^6、P2^7引脚分别连接LCD1602的RW、RS、E引脚控制LCD1602的读/写选择、数据/指令选择和使能信号。如下图所示:
矩阵键盘输入模块:主机的P1端口控制4X4矩阵键盘。矩阵键盘能输入数字0~9、小数点、负号,还有删除、确认、设置上限、设置下限的功能。如下图所示:
DS18B20测温模块:从机的P3^7引脚连接DS18B20的DQ引脚。如下图所示:
关于DS18B20的相关知识,我在之前的文章中介绍过,在此就不赘述了,可以访问下方链接:
https://blog.csdn.net/weixin_45755708/article/details/142387374?spm=1011.2415.3001.10575&sharefrom=mp_manage_linkhttps://blog.csdn.net/weixin_45755708/article/details/142387374?spm=1011.2415.3001.10575&sharefrom=mp_manage_link
直流电机模块:从机的P2^0引脚连接驱动芯片ULN2003输入端的1B引脚,ULN2003的输出端的1C引脚连接直流电机的一端,直流电机的另一端接+5V。如下图所示:
蜂鸣器模块:从机的P1^5引脚连接PNP三极管的基极,三级管的发射极接+5V、集电极接蜂鸣器。如下图所示:
串口通信模块:主机的P3^0引脚(即接收端)与从机的P3^1引脚(即发送端)连接;主机的P3^1引脚(即发送端)与从机的P3^0引脚(即接收端)连接。
四、设计仿真
仿真环境:Proteus 8 Professional
功能描述:
1.从机利用DS18B20检测温度并显示在LCD1602上;
2.从机将检测的温度发送给主机,主机将温度显示在LCD1602的第一行;
3.主机通过矩阵键盘设定报警温度的上下阈值,并将上下阈值显示在LCD1602的第二行;
4.主机将从机发送的温度和上下阈值比较后,发送控制命令给从机;
5.从机收到主机的命令后,执行相应的操作(控制直流电机转动或蜂鸣器报警);
演示视频如下:
基于51单片机的双机通信温度检测报警系统的仿真设计
关于本设计的具体Keil工程和Proteus电路图可访问下方链接:
https://item.taobao.com/item.htm?ft=t&id=900479543031
最重要的一点,祝大家天天开心!!!!