语音温度计设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语音温度计项目设计
1 设计要求
利用所学的电子电路、单片机、计算机方面的有关知识,设计语音温度计。以AT89S51单片机为核心,用DS18B20数字温度传感器来采集环境温度,用数码管显示,测量范围为:0-100摄氏度,能够使用语音芯片来实现语音报温并且能够记录和修改报警温度值。
2 设计基本原理
本次设计题目为语音温度计的设计,因为要用单片机去完成程序控制,以及数据转换,故外围电路设计起来就比较简单,具体说来整个硬件设计大体有如下几个部分:核心控制CPU,环境温度采集,数码管显示,语音播报, 键盘以及超量报警。所以设计的重点也就转移到程序设计上来。硬件电路的系统框图如图 1 所示:
图1 语音温度计设计的系统框图
3. 设计方案
3.1 系统电路的硬件设计
系统电路的硬件电路图如图2所示:
图2 系统电路图
由前面图1的系统框图可以知道电路的设计大概就是分为5部分,即核心控制CPU、键盘、温度采集、语音录放以及显示电路。以下将分别介绍各个模块的工作原理,以及在整个电路种的接口的电路。
3.1.2键盘控制模块
在单片及应用系统中,为了控制系统的工作状态以及向系统中输入数据,应用系统应该设有按键或键盘。例如复位用复位按键,功能转换用功能键以及数据输入用数字键盘等。
单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其他按键或键盘都是以开关状态来设置功能或输入数据的。因此,这些开关不只是简单的用于电平输入。
当所设的功能键或数字键按下时,计算机应用系统应完成该键所设的功能。因此,键信息输入是与软件结构密切相应的过程。对某些应用系统来说,键输入程序是整个键盘控制应用系统的核心。图4就是单片机键扫描框图:对于一组键,或一个键盘,总有一个接口电路与CPU相连。通过软件了解键输入信息,CPU可以采用中断的方式或查询方式了解有无按键按下并检查是哪一个键按下,当有键按下时,执行该键的功能程序。
键输入接口与软件应可靠而快速的实现键信息输入与键功能任务。为此,应解决下
图4 键盘扫描框图
列问题。
①键开关状态的可靠输入:目前,无论是按键或键盘都是机械触点的合断作用。由于机械触点的弹性作用,在闭合及断开瞬间均有抖动过程,会出现一系列负脉冲。抖动时间长短与开关的机械特性有关,一般为5—10ms。按键的稳定闭合周期,有操作人员的按键动作所决定,一般为十分之几秒至几秒的时间。为了保证CPU对键一次闭合,
仅作一次键输入处理,必须去抖动影响。通常去抖动影响的措施有软件和硬件两种。采用软件去抖的办法是在检测到有按键按下时,执行一个5-10ms的延迟程序后在确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真
正键按下的状态,从而消除了抖动影响。
②选择键盘检测方法:对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下是才有意义。对是否有键按下的信息输入方式有中断方式与查询方式两种。
③编制好键盘程序:一个完善的键盘控制程序应具备下列功能:a检测有无按键按下。b有按键按下后,在无硬件去抖电路时,应有软件延时方法去除抖动影响。C有可靠的逻辑处理方法。如n键所定,即只处理一个键,其间任何按下又松开的键不产生影响;不管一次按键持续有多长时间,仅执行一次按键功能程序。
另外,独立式按键也经常使用到。独立式按键是指直接用I/O口线构成的单个按键电路。每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。独立式按键电路配置灵活,软件机构简单,但每个按键必须占用一个根I/O口线,在按键数量较多时,I/O口线浪费较大。故在按键数量不多时,常采用这种按键电路。本次设计中采用的P1口作为I/O口,连接着单个按键开关,分别来控制录音、放音、显示报警温度限以及增加报警温度值和减小报警温度值等功能,电路中用了整个P1口,多出来的几个按键是为了进行电路的扩展使用的,可以实现更多的功能。当然前提是在基本实现前面的温度显示和语音报温的基础上才做扩展电路部分。
3.1.3温度采集模块
(1)概述
要测量温度必须进行温度采集,而温度采集的精度将直接关系到所测温度的精度。在本次设计中采用了DS18B20来作为数据采集器,它的精度最少可以精确到0.0625,完全可以用来进行环境温度的测量。DS18B20是美国DALLAS 公司生产的单总线数字温度传感器,可把温度信号直接转换成串行数字信号供微处理器处理,而且可以在一条总线上挂接任意多个DS18B20芯片,构成多点温度检测系统无需任何外加硬件。DS18B20 数字温度传感器可提供9~12 位温度读数,读取或写入DS18B20 的信息仅需一根总线,总线本身可以向所有挂接的DS18B20 芯片提供电源,而不需额外的电源。由DS18B20 这一特点,非常适合于多点温度检测系统,硬件结构简单,方便联网,在仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中被广泛应用。温度传感器的特点如下:
①数据传输采用单总线(1 - Wire Bus) 结构,无需外围其它元件
②能应用在分布式测量系统中
③温度输出为9bit~12bit 可编程
④测温范围为- 55 ℃~ + 125 ℃,在- 10 ℃~85 ℃时精度为±0. 5 ℃
⑤输出分辨率为12bit 时最大的转换时间为750ms
⑥具有可编程的温度报警功能
⑦具有可靠的CRC 数据传输校验功能
⑧电源电压范围为3~5.5V
⑨低功耗,无外部供电电源也能可靠工作
(2)温度传感器的使用
单总线数字温度传感器DS18B20可以采用TO-92的封装或8 脚SOIC 封装。其引脚排列及含义如图5所示:
图5 DS18B20的TO-92封装和SOIC封装
DS18B20 的供电方式有两种:一种是寄生电源;另一种为外电源供电,因为多个器件挂在总线上,为了识别不同的器件,在程序设计中一般有四个步骤:初始化命令、传送ROM 命令;传送RAM命令;数据交换命令。下面就DS18B20 温度传感器件具体介绍其每一部分的时序。
单总线上每一个器件的使用都是从初始化开始的, 初始化的时序是计算机先发出480-800us 的复位脉冲, 在15-60us后, 一个或多个单总线器件发出
60-240us 的应答脉冲,其时序波形如图6(a)所示。
数据交换命令是用具体的读/写时序脉冲读出单总线上器件所输出的数据,或者向单总线上器件写入数据具体写“1”、写“0”和读信号时序见图图6(b)、图6(c)和图6(d)。只要将复位、读、写的时序了解清楚,使用DS18B20, 就不会出现什么困难了。DS18B20 无论是初始化还是读写操作都有较为严格的时序要求。初始化主机需将总线拉低至少480μs且等待DS18B20 发回的存在脉冲。DS18B20 将在收到复位脉冲后15~60μs 后将总线拉低60~240μs 作为存在脉冲,故主机需等待15~60μs 读取存在脉冲。读写时序分别包括“写1”“写0”时序和“读1”“读0”时序。所有读写时序必须经过至少60μs 且在各个读写时序之间要有1μs 的恢复时间。
(a)初始化信号