基于AT89S52单片机的温度语音播报系统设计

描述

摘  要:

温度是一个非常重要的物理量,现代生活中所用到的电器、家具设备,包括工业产品等对温度的要求日益提高,灵敏的温度控制预警系统已成为日常生活中必不可少的产品。鉴于此,设计了基于AT89S52单片机的温度语音播报系统,温度值可通过显控单元直观展示,其温度阈值可根据生活场景动态调整,并可进行录音及语音播报。该系统抗干扰能力强,性价比高,扩展方便,可广泛应用于公共场所、大型仓库、工厂、智能化建筑等领域的多点温度检测中。

0  引言

随着物联网的快速发展与应用普及,人工智能更加为人们所熟知,同时也深刻影响了人们的日常生活及生产方式,其不但能够提供便捷化支持,还可以提供良好的安全保障条件。温控技术早在20世纪就已出现,发展到今天已经基本成熟与完善,从实验成果转化为实践器具。

本文选用AT89S52单片机为控制器,由温度传感器DS18B20、液晶显示屏1602、稳压芯片AMS1117、功放芯片LM86、喇叭、驻极体等主要元器件构成了一个完整的温度语音播报系统[1]。单片机可实时响应温度传感器输出的信号,通过LCD同步显示,其温度阈值可依据应用场景动态调节,并设置有语音录音和播报功能。通过多次测试一天中屋内不同时间的温度,验证了其精确度、灵敏度和语音播报功能达到预期目标[2]。

1  系统设计方案

AT89S52单片机是一款8位微控制器,它以低功耗和高性能的特点颇受人们喜爱,此外片内存储空间大,可以进行更为复杂的编程设计,运行速度不会受到很大影响。制造方面采用的是Atmel公司的技术,所以与80C51系列的产品有很好的兼容性。AT89S52单片机拥有带电可擦可编程只读存储器和8位CPU,使其能够适用于绝大多数场合[3]。

因此,本文选用AT89S52单片机为控制器,温度传感器DS18B20、实时语音芯片ISD4004和按键模块等均为外部设备串行通信元件。系统结构如图1所示。

液晶显示屏

2  系统硬件设计

2.1

单片机最小系统

本项目中,单片机构成的系统有很多I/O接口可以进行多个微型处理器的嵌套,可以方便地搭建各种所需的系统;可编程性较强,可以通过仿真软件实现仿真模拟,以确保方案的可行性。系统设计过程中会用到单片机定时器以实现延时功能,此外还有中断系统等。其构成电路如图2所示。

液晶显示屏

2.1.1  复位电路设计

重启作为微型控制系统执行的第一个步骤,是针对芯片整个电路实施控制,芯片中电路初始化,返回到预定的初始状态。外部的复位电路控制着AT89S52的恢复,复位电路一般有两种——上电复位和手动复位,前者使用较多。

上电复位是一种比较简单的复位重启电路,一般在RST端口和高电位中间加一个电容,之后接一个电阻再接地。上电复位一般是指在闭合电源开关前,将一个很短的高电平信号输送到RST输入端,之后在电源给电容充电时这个复位信号会降低,因此RST引脚高电平维持时间具体以电容充电时间为准,一般情况下,RST输入端口的高电平信号应保证充足的时间。

在手动复位时需要于复位端口加载高电平。一般在使用方式上,是于VCC端以及RST中另外增设按键,在按键按下之后VCC与RST电位相同,动作时间一般为几十毫秒,可以使系统在安全的环境内重启。

该系统复位电路图如图3所示。

液晶显示屏

2.1.2  时钟电路设计

由于单片机各个部分的执行都是以时钟频率作为参考,计数和延时等最常用的功能都依靠时钟电路来实现,因此时钟电路的精确性决定着整个系统的稳定性与可靠性。时钟频率的大小直接影响着单片机运行速度,一般时钟电路的设计有两种——外部时钟和内部时钟,电路如图4所示。

液晶显示屏

2.2

系统外设电路设计

AT89S52内包含有32个I/O口、4k的flash、128位RAM、40个引脚、5个中断、2个16 bytes的可编程定时计数器、2个全双工串行通信口、WDT电路、片内时钟振荡器。AT89S52的I/O端口分配情况如表1所示。

液晶显示屏

在设计中,AT89S52的P0.0~P0.7与LCD的D0~D7相连,以实时显示温度;P1.4~P1.7与语音芯片ISD4004的MISO、MOSI、SS以及SCLK对应连接;P1.0与DS18B20的第二个管脚相连,实现单片机与传感器的双向通信;扩音器模块的+INPUT与ISD4004的ANDOUT相连。

2.3

电源电路设计

干电池电池容量有限,持续时间短,成本高,随着外设的增多和时间的推移,电池电压在不断减小,不能保证系统的正常运行,因此本系统采用独立的DC5 V供电。外部电源接到系统5 V的DC端口之后经过自锁开关给整个系统提供电源,此外,以稳压芯片AMS1117构成稳压电路,能够将5 V电压变为3.3 V给语音芯片ISD4004使用,保证了整个系统的稳定工作。电源稳压电路如图5所示,其中C4为极性电容,能够进行稳压;C6为非极性电容,能够进行滤波,属于低通滤波器,保留直流成分。

液晶显示屏

2.4

温度采集模块设计

DS18B20是Dallas Semiconductor第一款支持“单线总线”接口的温度传感器,测量精度为±0.5 ℃,测量精度高,能够适应复杂恶劣的环境,对于微处理器处理,能够直接将温度转换为串行数字量[4]。DS18B20采用单线总线,可用数据线直接供电,因此可以不使用任何外围设备,减少了外围设备的使用量[5]。因此,系统选择DS18B20为温度采集器,测温电路图如图6所示。

液晶显示屏

DQ脚作为温度传感器中的关键要素,其主要功能情况如表2所示。

液晶显示屏

2.5

LCD显示模块设计

本文选用LCD1602作为显示单元。LCD1602的工作原理是基于液晶自身的特点,改变显示区域的电压大小就可以控制显示器工作。LCD1602有16个引脚,其与单片机的应用连接电路图如图7所示,LCD基本操作时序如表3所示。

液晶显示屏液晶显示屏

2.6

语音播报电路设计

ISD400系列适用于手机和其他便携式电子设备,工作电压3 V,能够录音8~16 min,音质较好,具备CMOS技术,内部还包含振荡器、平滑滤波器、音频放大器等。在进行芯片设计时需要考虑到所有的控制要求,并且能够用串行通信接口输入。

在模拟的体积存储技术中,每个样本直接存储在闪存中,因此可以非常自然地再现,很大程度上减少了一般的固体录音电路产生的“金属声”和量化噪声[6]。音频输入电路如图8所示,语音电路如图9所示。

液晶显示屏

3  系统的软件设计

C语言单片机的编程设计,大多数人选择使用Keil,在Keil中不论是选择C语言编程还是汇编都非常方便。本文选用Keil uVision5进行软件设计,Keil uVision5可以很好地兼容之前的版本,并加大对Cortex系列的开发力度,不论是界面还是开发环境都进行了升级优化。

3.1

系统主程序设计

程序在开始执行时首先要对主程序进行初始化,如温度检测程序、I/O口的初始化等。初始化结束后,执行温度测量的相关程序,实时测量当前的温度值。将测得值与设定值进行比较,判断此温度是否超过了阈值[7],如果超过温度上限或下限,则调用报警子程序并进行语音提示。主程序流程图如图10所示。

液晶显示屏

3.2

测温子程序设计

该系统能够正常工作的充分条件是能够精准地测量温度。若温度采集缺乏准确性,则即使后面单片机对信号处理得再好或者显示电路、语音播报报警都能够正常准确工作,实际结果还是达不到要求,整个系统不能准确进行温度测量及语音播报[8]。因此,DS18B20能否正常工作关系到整个系统能否正常运行。

DS18B20在通信时发送和接收信号是分开进行的,具备明确定义,其基本规则为:初始化DS18B20(发复位脉冲)→发出命令→对数据进行初步处理。其程序流程如图11所示。

液晶显示屏

4  系统仿真及其结果分析

  系统各项功能仿真方法及结果如表4所示。

液晶显示屏

利用Proteus进行的系统仿真如图12所示,显示屏可以实时显示当前温度,通过按键可以实现语音播报功能的切换和温度上下限的调节,系统温度上限调节仿真图如图13所示,系统录音选择仿真图如图14所示。

液晶显示屏

液晶显示屏

液晶显示屏

5  结语

本项目基于Proteus和单片机AT89S52完成了温度语音播报系统的设计及研发工作,不仅实现了温度实时监测,而且可自由录制提示语音、灵活部署,适用于公共场所、仓储库房、客厅、智能化建筑等领域的多点温度检测。整个系统采用模块化设计,结构简单,调试结果表明系统符合预期目标,可有效保障人们的日常生活安全。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_95841135 2023-05-26
0 回复 举报
请问一下,有没有相关代码呢 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分