汪老师分享 - 51单片机温度监控报警系统的设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机温度监控报警系统的设计

1 电路设计

1.1 单元模块介绍

单片机是自动报警功能主机的一个核心器件,由它用来接收报警信号并通过控制来协调各个报警功能模块的正常报警工作,采用的是AT89C52报警电路蜂鸣器来发出声响报警。温度传感器采用DS18B20。显示电路采用LED数码显示管。

1.2 DS18B20特性

1.具有负压的特性:如果电源极性接反,芯片不会因为负压热而燃烧,但此时DS18B20不能进行正常工作。

2.在使用的过程中,不需要任何的外围元件。

3.温度范围为-55℃~+125℃,在-10~+85℃范围内精度为±0.5℃。

4.自适应电压波动的范围比较广,电压波动的范围为3.0至5.5V,在寄生电源模式下可以直接由数据电缆进行供电。

5.DS18B20是一个单总线接口。当与微处理器连接时,只需一个端口即可完成微处理器与DS18B20的双向通信。单总线经济实用,抗干扰能力强,更适合恶劣环境。它还可以实现恶劣环境下的现场温度测量,使用更加方便。方便用户建立传感器网络,为测量系统的建设引入了新的思路。

1.3 单片机简介

在各种单片机中,AT89C52是一种低功耗、高性能的8位CMOS单片机。AT89C52具有8K可编程闪存,采用ATMEL高密度非易失性存储器技术,完全兼容80C51工业产品的指令和PIN[1]。闪存允许在系统中编程程序存储器。它也适用于AT89C52。具有8位智能处理器和单片机系统的可编程闪存为各种嵌入式控制应用提供了灵活有效的解决方案[2]。

AT89C52具有以下标准功能:8K字节闪存、256字节ram、32位I/O端口电缆、三个16位定时器/计数器、二级音频交换结构、全双工串口、芯片晶体和时钟电路。AT89C52可以简化为0Hz静态逻辑运算,并支持两种可选的软件节能模式[3]。在空闲模式下,处理器停止工作并允许ram,当定时器/计数器和串口中断继续工作时,当电源出现故障时,可以使用AT89C52节能,存储ram内容。冻结振荡器并停止MCU运行,直到下一个硬件切换或复位。AT89C52单片机为许多嵌入式控制系统提供了灵活、低成本的解决方案[4]。因此选用AT89C52单片机。

1.3.1 AT89C52特性

1.兼容MCS51指令系统

2.8kB可反复擦写FlashROM

3.32个双向I/O口

4.256x8bit内部RAM

5.3个16位可编程定时/计数器中断

6.时钟频率0-24MHz

7.2个外部网络中断源,共6个外部中断源

8.低功率损耗支持空闲和定时掉电睡眠模式,软件自动设置定时睡眠和自动唤醒时间功能

1.3.2 AT89C52引脚图

图1.1 AT89C52引脚图

1.4 单片机最小系统的设计

单片机软件是一种高频集成电路设计芯片,它是一种超高功率高频集成电路芯片技术,具有很强的数据处理和控制能力[5]。CPU随机数据存储器、只读存储器ROM、各种I/O端口和中断系统,多晶硅集成了自动定时器/定时器的功能,形成了一个小型完整的数字计算机系统。本课程的设计主要采用AT89C52高压单片机[6]。最小输出系统主要由高压复位和振荡电路模块组成。单片机的最小操作系统如下图图1.2所示。

单片机复位电路的原理是复位单片机复位引脚的电阻和电容,实现电源复位。当复位电平持续超过两个时钟周期时,复位有效。重置电路包括一个密钥重置和一个上电重置,即将电容器连接到复位引脚上的VCC[7]。再通过手动连接一个按键复位后的电阻开关来直接达到GND;此时按键自动降低和复位,当按键自动复位后,按键复位开关便直接自动并联在电容器上。当一个复位开关按键自动放下时使它复位后的电容被自动连续放电、RST也被自动放电拉到一个稳定高电平,而且由于按键复位之后电容的连续自动充电,会连续使它保持一个很长很短一段时间的一个稳定高电平状从来可以使整个数控单片机实现按键自动复位[8]。

AT89C52使用最高的12MHz晶体振荡器。由于单片机中的振荡电路,只有一个晶体和两个电容器需要外部连接,通常是在15pF和50pF之间[10]。外部高频恒定晶振高速电路设计结合整个一台单片高频发电机内部恒定晶振高频电路设计即可直接产生整个一台单片高频发电机所有电路必需的恒定晶振时钟值和输出晶振频率。

图1.2 单片机最小系统

1.5 温度采集电路的设计

温度实时数据采集器位于主集成电路部分,DS18B20高频无线数字温度传感器用于实时采集点间温度数据。DS18B20是DALLAS公司是本公司专门生产的那种一线式一个串行式的数字温度传感器,具有3个引脚[11];串行数字数据温度输出量表对于测量的数值的控制范围一般设定为-55℃—+125℃,测量的数值的最小精度控制范围一般为0.5℃;被送出输入端所测量的数字温度量表是通过采用一个数位符号为1的可进行扩展的16位。一个串行式的数字数据温度输出量表的计算方式用来实现一个串行式的数字温度输出;CPU只是仅仅无需用一个连接输入输出端口的数据总线就已经完全可以与数字温度量表DS18B20通信。温度传感信号数据采集器的控制电路结构如图1.3所示。

图1.3 温度采集电路

1.6 LED显示报警电路的设计

LED其数字管与主微控制器的两个P0端互连,微控制器在数据采集后将温度集值数据转化为与其数字管值相对应的温度数据,通过其P0端口进行输出信号显示。即端口信号通过各段的解码管对不同端口信号A、b、c、d、e、f、g、dp端进行控制,控制不同端口的不同解码器管灯或模具[12],同时通过端口1、2、3、4四个不同的端口信号来控制四个不同的解码管。在这项工程设计中,集成电路芯片74HC245用于驱动数字管。同时,当数据采集期间获得的空气温度计数值超过所有设定的温度范围时,单次机会会输出一个报警信号,该信号被三极晶体管放大,然后将两个蜂鸣器一起驱动以发出警报声信号。LED数字管RF报警控制电路如下图1.4所示。

 图1.4 LED显示及报警电路

2 电路性能的测试

2.1 软件测试

在PROTUES应用软件中,连接好显卡电路示意图后将在Keil中自动生成的"温度监测.HEX"应用程序运行文件直接导入您的单片卡主机中。由于是在DS18B20系统中将所设置的平均温度初始数值设定为85℃,所以当开始仿真时报警器会报警,数码管显示也为85。4至5秒后数字温度传感器会显示当前温度,数码管也相应显示其数值。在使用PROTUES应用软件进行仿真中,调节好了DS18B20的左右温度按钮可是当前温度的数值没有对应值的加减,数码管理器会自动显示当前温度值。当温度降至15摄氏度以下或高于30摄氏度时,警报系统会自动发出警报。此次调整采用数字温度传感器DS18B20将其标准温度值降低到14摄氏度,此时温度报警自动报警,数字管信号显示14。14℃时的反馈电路仿真结果如下表图2.1所示。

 图2.1 14℃时,仿真电路图

调节DS18B20的温度值使其在0℃—99℃之间变化,电路仿真情况如表2.1所示。

表5.1 10℃—99℃温度范围内电路仿真情况统计表

设置温度值

0℃

5

10℃

15℃

17℃

20℃

22℃

25℃

26℃

28℃

数码管显示

0

5

10

15

18

20

23

25

27

29

否报警

设置温度值

30℃

31℃

35℃

40℃

50℃

60

70℃

80

90

99

数码管显示

30

31

35

40

50

60

70

80

90

99

否报警

2.2 硬件测试

完成硬件焊接并检查电路无误后,给电路加5V电压。用万用表测量各点电压均正确,将相关的C语言程序导入单片机中,打开开关进行硬件测试[16]。测试时发现了如下几个问题:

(1)数码管不显示——经过查找资料发现由于我们把晶振焊接得离单片机内部的振荡电路太远,导致无振荡产生[17]。重心将晶振焊接离单片机较近的地方,数码管显示正常。

(2)单片机的复位电路不工作——由于软件仿真比较理想,复位电路选择的电容在硬件中不起作用。将复位电路的电容并联一个较大的电容,并将单片机EA脚接电源后,单片机复位电路有效。

总电路图和PCB图

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!

  • 28
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值