基于单片机的温度语音播报系统设计与实现
扫描二维码
随时随地手机看文章
引言
随着物联网的快速发展与应用普及,人工智能更加为人们所熟知,同时也深刻影响着人们的日常生活及生产方式,其不但能够提供便捷化支持,还可以提供良好的安全保障条件。温控技术早在20世纪就已出现,发展到今天已经基本成熟与完善,从实验成果转化为实践器具。
本文选用AT89S52单片机为控制器,由温度传感器DS18B20、液晶显示屏1602、稳压芯片AMS1117、功放芯片LM86、喇叭、驻极体等主要元器件构成了一个完整的温度语音播报系统。单片机可实时响应温度传感器输出的信号,通过LCD同步显示,其温度阈值可依据应用场景动态调节,并设置有语音录音和播报功能。通过多次测试一天中屋内不同时间的温度,验证了其精确度、灵敏度和语音播报功能达到预期目标。
1系统设计方案
AT89S52单片机是一款8位微控制器,它因低功耗和高性能的特点而颇受人们喜爱,此外片内存储空间大,可以进行更为复杂的编程设计,运行速度不会受到很大影响。制造方面采用的是Atme1公司的技术,所以与80C51系列的产品有很好的兼容性。AT89S52单片机拥有带电可擦可编程只读存储器和8位CPU,使其能够适用于绝大多数场合。
因此,本文选用AT89S52单片机为控制器,温度传感器DS18B20、实时语音芯片ISD4004和按键模块等均为外部设备串行通信元件。系统结构如图1所示。
2系统硬件设计
2.1单片机最小系统
本项目中,单片机构成的系统有很多I/0接口可以进行多个微型处理器的嵌套,可以方便地搭建各种所需的系统:可编程性较强,可以通过仿真软件实现仿真模拟,以确保方案的可行性。系统设计过程中会用到单片机定时器以实现延时功能,此外还有中断系统等。其构成电路如图2所示。
2.1.1复位电路设计
重启作为微型控制系统执行的第一个步骤,是针对芯片整个电路实施控制,芯片中电路初始化,返回到预定的初始状态。外部的复位电路控制着AT89S52的恢复,复位电路一般有两种—上电复位和手动复位,前者使用较多。
上电复位是一种比较简单的复位重启电路,一般在RST端口和高电位中间加一个电容,之后接一个电阻再接地。上电复位一般是指在闭合电源开关前,将一个很短的高电平信号输送到RST输入端,之后在电源给电容充电时这个复位信号会降低,因此RST引脚高电平维持时间具体以电容充电时间为准,一般情况下,RST输入端口的高电平信号应保证充足的时间。
在手动复位时需要于复位端口加载高电平。一般在使用方式上,是于VCC端和RST中另外增设按键,在按键按下之后VCC与RST电位相同,动作时间一般为几十毫秒,可以使系统在安全的环境内重启。
该系统复位电路图如图3所示。
2.1.2时钟电路设计
由于单片机各个部分的执行都是以时钟频率作为参考,计数和延时等最常用的功能都依靠时钟电路来实现,因此时钟电路的精确性决定着整个系统的稳定性与可靠性。时钟频率的大小直接影响着单片机运行速度,一般时钟电路的设计有两种—外部时钟和内部时钟,电路如图4所示。
图4时钟电路
2.2系统外设电路设计
AT89S52内包含有32个I/O口、4k的flaSh、128位RAM、40个引脚、5个中断、2个16byteS的可编程定时计数器、2个全双工串行通信口、wDT电路、片内时钟振荡器。AT89S52的I/O端口分配情况如表1所示。
在设计中,AT89S52的P0.0~P0.7与LCD的D0~D7相连,以实时显示温度:P1.4~P1.7与语音芯片ISD4004的M1S0、M0S1、SS以及SCLK对应连接:P1.0与DS18B20的第二个管脚相连,实现单片机与传感器的双向通信:扩音器模块的+1NPUT与ISD4004的AND0UT相连。
2.3电源电路设计
干电池电池容量有限,持续时间短,成本高,随着外设的增多和时间的推移,电池电压在不断减小,不能保证系统的正常运行,因此本系统采用独立的DC5V供电。外部电源接到系统5V的DC端口之后经过自锁开关给整个系统提供电源,此外,以稳压芯片AMS1117构成稳压电路,能够将5V电压变为3.3V给语音芯片ISD4004使用,保证了整个系统的稳定工作。电源稳压电路如图5所示,其中C4为极性电容,能够进行稳压:C6为非极性电容,能够进行滤波,属于低通滤波器,保留直流成分。
2..温度采集模块设计
DS18B20是DallaSSemiconductor第一款支持"单线总线"接口的温度传感器,测量精度为士0.5℃,测量精度高,能够适应复杂恶劣的环境,对于微处理器处理,能够直接将温度转换为串行数字量。DS18B20采用单线总线,可用数据线直接供电,因此可以不使用任何外围设备,减少了外围设备的使用量。因此,系统选择DS18B20为温度采集器,测温电路图如图6所示。
DQ脚作为温度传感器中的关键要素,其主要功能情况如表2所示。
2.54LC显示模块设计
本文选用LCD1602作为显示单元。LCD1602的工作原理是基于液晶自身的特点,通过改变显示区域的电压大小来控制显示器工作。LCD1602有16个引脚,其与单片机的应用连接电路图如图7所示,LCD基本操作时序如表3所示。
2.6语音播报电路设计
ISD400系列适用于手机和其他便携式电子设备,工作电压3V,能够录音8~16min,音质较好,具备CM0S技术,内部还包含振荡器、平滑滤波器、音频放大器等。在进行芯片设计时需要考虑到所有的控制要求,并且能够用串行通信接口输入。在模拟的体积存储技术中,每个样本都直接存储在闪存中,因此可以非常自然地再现,很大程度上减少了一般的固体录音电路产生的"金属声"和量化噪声。音频输入电路如图8所示,语音电路如图9所示。
3系统的软件设计
C语言单片机的编程设计,大多数人选择使用Kei1,在Kei1中不论是选择C语言编程还是汇编都非常方便。本文选用Kei1uViSion5进行软件设计,Kei1uViSion5可以很好地兼容之前的版本,并加大对Cortex系列的开发力度,不论是界面还是开发环境都进行了升级优化。3.1系统主程序设计
程序在开始执行时首先要对主程序进行初始化,如温度检测程序、I/0口的初始化等。初始化结束后,执行温度测量的相关程序,实时测量当前的温度值。将测得值与设定值进行比较,判断此温度是否超过了阈值,如果超过温度上限或下限,则调用报警子程序并进行语音提示。主程序流程图如图10所示。
3.2测温子程序设计
该系统能够正常工作的充分条件是能够精准地测量温度。若温度采集缺乏准确性,则即使后面单片机对信号处理得再好或者显示电路、语音播报报警都能够正常准确工作,实际结果也还是达不到要求,整个系统不能准确进行温度测量及语音播报[8]。因此,DS18B20能否正常工作关系到整个系统能否正常运行。
DS18B20在通信时发送和接收信号是分开进行的,具备明确定义,其基本规则为:初始化DS18B20(发复位脉冲)二发出命令二对数据进行初步处理。其程序流程如图11所示。
4系统仿真及其结果分析
系统各项功能仿真方法及结果如表4所示。
利用ProteuS进行的系统仿真如图12所示,显示屏可以实时显示当前温度,通过按键可以实现语音播报功能的切换和温度上下限的调节,系统温度上限调节仿真图如图13所示,系统录音选择仿真图如图14所示。
5结语
本项目基于ProteuS和单片机AT89S52完成了温度语音播报系统的设计及研发工作,不仅实现了温度实时监测,而且可自由录制提示语音、灵活部署,适用于公共场所、仓储库房、客厅、智能化建筑等领域的多点温度检测。整个系统采用模块化设计,结构简单,调试结果表明系统符合预期目标,可有效保障人们的日常生活安全。