资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,基于89C51单片机的语音温度计的设计和实现,报告分为六大部分:,1,、,概述,2,、,设计思路介绍,3,、,硬件电路设计,4,、,软件设计,5,、,系统调试,6,、,总结,一.概述,1,、,课题背景、目的和意义,现在广泛使用的水银温度计存在响应速度慢、不便读数,在普通家庭、医院等需要测温的场合使用面狭窄并且不安全等很多问题,因而,出于安全性和智能化的考虑,我们需要开发一款测温速度快,读数方便,能根据需要进行,语音播报,,语音清晰,我们设计了该语音温度计。,2,、国内外发展现状,随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着,数字化,控制,,智能化,控制方向发展。,3,、,主要研究内容,(,1,)设计数字温度传感器,采集环境温度,电路,要求测温范围为:,0-100,摄氏度;,(,2,)设计,液晶显示,电路实现数据和数字信息的显示;,(,3,)设计,语音报温,电路,实现温度播报;,(,4,)设计温度,报警,电路;,(,5,)设计数据,修改,电路,要求记录和修改报警温度值。,二.设计思路,1,、系统方案图,方案一:,采用,热敏电阻,,三线式的测量电路,,12,位串行,AD,MAX187,作为,AD,转换电路的主要器件,然后通过单片机处理采集信息,在,数码管,上显示温度,语音芯片采用串行控制语音播报的,ISD1760,。,方案二:,考虑到精度和测温速度要求,采用,DS18B20,作为温度传感器,采用液晶,LCD1602,显示温度,语音芯片采用并行控制语音播报的,ISD1420,。,方案确定:,方案一的优点是制作成本低廉。,方案二采用的温度传感芯片,DS18B20,测温速度快准确,占用端口线,少,;另外,语音芯片采用,并行,口控制的,ISD1420,,,易,于录放音的操作。方案二的缺点是制作成本较高。,综合方案一和方案二的优缺点以及本课题的设计要求,采用方案二。,三.硬件电路设计,根据功能要求,本设计的硬件电路主要由单片机控制电路,,温度检测,电路、显示电路、,语音,播报电路、报警电路和,温度上下限修改,电路组成。,1,、,单片机控制电路,由单片机的,P2.5,口接收温度信号,,P0,口及,P2.1,、,P2.2,、,P2.3,控制液晶显示电路,,P1,口控制语音电路,,P2.4,口控制报警电路,,P3.5,口、,P3.6,口、,P3.6,口控制温度上下限修改电路。,复位电路,时钟电路,2,、,温度检测电路,温度检测电路如图,3.4,,由,DS18B20,作为温度传感器,图,3.4,中的,2,脚与单片机的输入输出(,I/O,)口,P2.5,脚连接,进行双向通信,采用,4.7k,电阻上拉。测得的温度数据通过单总线送给单片机处理,换算成十进制数。,3,、,显示电路,LCD1602,液晶显示器件有,16,个引脚,,1,引脚为电源地,,2,引脚为电源正极,,3,引脚为液晶显示偏压,为液晶显示器对比度调整端。数据,/,命令选择,RS,接,P2.1,,读,/,写选择,R/W,接,P2.2,,使能信号,E,接,P2.3,,,D0,到,D7,接,P0,口,,15-16,号引脚为背光源正、负端。,4,、,语音电路,*,ISD1420,语音芯片,是采用模拟存取技术集成的可反复录放的,20S,语音芯片,掉电语音不丢失,最大可分为,160,段,最小每段语音长度为,125 ms,,每段语音都可由单片机的,I/O,口控制放音操作。,我们将芯片分成,20,段,每段,1s,,手动将,10,1,9,点,及,摄氏度,录入,当有按键按下时,由单片机控制,组合选段播报当前温度。,控制放音口接单片机,P1.4,口,,A4-A7,接,P1.0-P1.3,口。,地址对应录入内容,A6 A5 A4 A3,0000,0001,0010,0011,1001,1010,1011,十,一,二,三,.,.,九,点,摄氏度,5,、,报警电路,由三极管及蜂鸣器组成。当温度传感器检测到的温度高于温度的上限或低于温度的下限设定值时,由单片机发出信号,三极管导通,使蜂鸣器发出响声报警,以提醒实验人员注意温度超出了范围。,6,、,温度上下限修改电路,温度上下限由,三个按键,控制修改,初始设定温度上限,TH=50,,,下限,TL=10,,S1,为自锁按键开关,,S2,和,S3,为普通按键,当,S1=1,(高电平),每按一次,S2,(,S3,),温度上限(下限)加,5,;当,S1=0,(低电平),每按一次,S2,(,S3,),温度上限(下限)减,5,。,附:,全电路图,四.软件部分设计,1,、,主程序设计,首先各芯片初始化操作,然后判断是否修改温度上下限值,是就修改,否继续执行程序,编程控制温度检测和数据传输,执行显示温度和显示温度上下限值程序,最后判断是否需要语音播报温度,是就播报当前温度值。,主程序流程图:,2,、,子程序设计,(,1,)显示子程序设计,指令,RS,R/W,D7,D6,D5,D4,D3,D2,D1,D0,清显示,0,0,0,0,0,0,0,0,0,1,光标返回,0,0,0,0,0,0,0,0,1,*,置输入模式,0,0,0,0,0,0,0,1,I/D,S,显示开,/,关控制,0,0,0,0,0,0,1,D,C,B,光标或字符移位,0,0,0,0,0,1,S/C,R/L,*,*,置功能,0,0,0,0,1,D/L,N,F,*,*,置字符存贮器地址,0,0,0,1,字符发生存贮器地址,置数据存贮器地址,0,0,1,显示字符存贮器地址,读忙标志或地址,0,1,BF,计数器地址,写数到,CGRAM,1,0,要写的数据内容,从,CGRAM,读数,1,1,读出的数据内容,(,2,)温度检测子程序设计,、,初始化,先将数据线置高电平“,1”,;延时;数据线拉到低电平“,0”,;延时,750,微秒;数据线拉到高电平“,1”,;延时等待;若,CPU,读到了数据线上的低电平“,0”,后,还要做延时,;,将数据线再次拉到高电平“,1”,后结束。,、,读数据,read_temp()/*,读取温度值并转换*,/,uchar a,b;,ds1820rst();/ds1820,复位,ds1820wr(0 xcc);/,跳过读序列号,ds1820wr(0 x44);/,启动温度转换,ds1820rst();,ds1820wr(0 xcc);/,跳过读序列号,ds1820wr(0 xbe);/,读取温度,a=ds1820rd();,/,读取到的第一个字节为温度,LSB,b=ds1820rd();,tvalue=b;,tvalue=8;,tvalue=tvalue|a;,if(tvalue0 x0fff),tflag=0;,else,tvalue=tvalue+1;,tflag=1;,(,3,)语音播报子程序设计,、给语音地址,、放音,A6 A5 A4 A3,0000,0001,0010,0011,1001,1010,1011,十,一,二,三,.,.,九,点,摄氏度,(,4,)报警子程序设计,(,5,)温度上下限修改子程序设计,*消抖程序,五,.,系统调试,1,、,调试过程,(,1,),硬件调试:,排除、检查电路板上的焊接和连线所出现的问题,(,2,),软件调试:,keil C51,编程,,编写的程序是否与硬件电路相符合,编写是否正确。,(,3,)整机联调,将程序下载到单片机,调试实现功能,2,、,调试出现的问题及解决方法,测试显示程序下载到单片机,液晶无显示 检查发现液晶电路有个接地端没焊,温度上下限值显示重叠 检查程序控制命令写重复了,温度限值修改按键一次变化几次 加消抖程序,上电语音就说“十,”,在主函数中加语音初始化(,P1=0 xf0,),温度的小数位和各位数一直一样 检查程序发现小数位多除了一次,调试影视资料演示,六,.,结论,整个设计是以,89C51,单片机为核心,通过数字温度传感器实现环境温度的采集和,A/D,转换。单片机把采集到的温度进行相应的转换,实现了在液晶显示器上显示功能,当温度超过设定温度上下限时实现报警功能,温度的上下限值可以随时进行修改。并且可以根据需要,实现温度的,语音播报,。经过理论分析和实验验证,该语音温度计具有成本低、灵活性高、可靠性好、抗干扰能力强、实时性高等优点,系统整体结构简单、容易实现、实用方便,符合系统的设计要求。,不足:,由于水平和工作时间有限,本设计的语音温度计在某些方面还存在不足,比如在播报温度时的,声音较小,,如果时间允许,可以在喇叭前加入,功放模块,,对音量进行放大,可以功放元器件可以选择,LM386,。另外,本设计的语音是手动录入的,录音质量和效果不太好,可以考虑用,语音拷贝机,进行录音,这样语音会比较纯正清晰。,希望各位专家给予批评指导!,谢谢!,
展开阅读全文