1、摘要本文介绍的是基于 AT89S52 单片机的多功能数字温度计的设计,体现模块化设计思想。论文重点阐述了硬件模块如 MCU 模块、温度感应模块、时钟模块、控制模块、显示模块、语音模块的设计。实现温度和时间的显示、语音播报,时间和闹钟的设置。温度传感器采用美国 DALLAS 半导体公司制造的 DS18B20,测温范围为-55125,最高分辨率可达 0.0625。DS18B20 具有成本低和易使用的特点。关键词:单片机、温度计、语音播报、AT89S52、DS18B20ABSTRACTThis article describes the design of multi-function digita
2、l thermometer based on AT89S52 Microcontroller , which reflect the modular design concept. The paper focuses on the design of hardware modules such as the MCU module, temperature sensor module ,clock module ,control module ,display module ,voice module .its can comply the temperature and time displa
3、y ,voice broadcast ,time and alarm settings .the temperature sensor select DS18B20 which produced by DALLAS semiconductor company of America .its temperature measurement range from -55 to 125,The highest resolution can be reach to 0.0625. And the DS18B20 has the advantages of low cost and ease of us
4、eKeyword :MCU, Thermometer, Voice Broadcast,AT89S52, DS18B20湖南科技大学本科生毕业设计(论文)i目录1.1 前言 .- 1 -1.2 设计任务及要求 .- 1 -1.2.1 设计任务 - 1 -1.2.2 设计要求 - 1 -第二章 设计方案选择论证与设计 .- 2 -2.1 数字温度计设计方案论证 .- 2 -2.1.1 方案一 .- 2 -2.1.2 方案二 .- 2 -2.1.3 方案二的总体设计框图 .- 3 -2.2 各模块电路方案选择与设计 .- 3 -2.2.1 主控系统电路方案及设计 .- 3 -2.2.2 时钟电路设
5、计 .- 6 -2.2.3 液晶显示系统设计 .- 8 -2.2.4 温度采集电路设计 .- 9 -2.2.5 按键控制模块 .- 14 -2.2.6 语音播报模块 .- 14 -2.2.7 程序下载模块 .- 19 -2.2.8 存储模块 .- 19 -第三章 系统软件设计 - 20 -3.1 软件设计总括 - 20 -3.2 系统程序设计部分 - 21 -3.2.1 键盘扫描程序设计 .- 22 -3.2.2 温度传感器程序设计 .- 23 -3.2.3 语音播报程序设计 .- 25 -3.2.4 温度报警程序设计 .- 26 -3.2.5 显示电路子程序 .- 26 -3.2.6 时钟电
6、路程序设计 .- 27 -湖南科技大学本科生毕业设计(论文)ii3.2.7 主程序设计 .- 28 -第四章 结论 - 32 -参考文献 .- 33 -致谢 .- 34 -附录 A 总的原理图 .- 35 -附录 B 程序清单 .- 36 -湖南科技大学本科生毕业设计(论文)- 1 -第一章 绪论1.1 前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。随着时代的进步和
7、发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机已经在测控领域中获得了广泛的应用。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,并且具有时钟、闹钟等功能。该设计控制器使用单片机 AT89S52,测温传感器使用 DS18B20,用 LCD 以串口传送数据,实现温度显示,能准确达到以上要求。1.2 设计任务及要求1.2.1 设计任务 本论文将要设计一种基于单片机的多功能数字温度计,它具有实时温度显示并报温以及时钟显示与报时,定时闹钟的功能。1.2.2 设计要求(1)输出温度和时钟采用液晶显示;(2
8、)主控制器采用 MCS-51 系列单片机,温度传感器采用 DS18B20;(3)可以进行时间调整、闹钟设置;(4)能够对温度和时间进行语音播报。湖南科技大学本科生毕业设计(论文)- 2 -第二章 设计方案选择论证与设计2.1 数字温度计设计方案论证2.1.1 方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将温度显示出来,这种设计需要用到 A/D 转换电路感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响从而出现较大的偏差。时钟电路可以采用单片机定时
9、器产生时钟,但是它有两个个缺点,一个是不是很准确,二是程序比较复杂。2.1.2 方案二在单片机电路设计中,大多都是使用传感器,所以可以考虑采用温度传感器 DS18B20,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。在设计时钟电路时,可以用时钟芯片 PCF8563。此芯片是 I2C 总线通信,可以利用一个纽扣电池为其供电,使得单片机掉电的情况下时钟仍然在运行,无需每次单片机复位后调整时间。具有简单方便的特点,并且很准确和稳定。从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简
10、单,故采用了方案二。湖南科技大学本科生毕业设计(论文)- 3 -2.1.3 方案二的总体设计框图单片机主控制芯片单片机复位电路按键电路稳压电路时钟电路语音电路温度采集电路液晶显示电路温度报警电路2.2 各模块电路方案选择与设计2.2.1 主控系统电路方案及设计(1) 方案选择方案一:采用数字芯片搭接控制电路,此法将使得本系统的控制电路非常庞大且复杂,并且也较难实现本设计系统的要求。方案二:采用单片机控制,通过硬件电路及编程可实现本系统的控制电路,并且采用此方案可以使得电路更加简洁,稳定性更高。所以选用了此方案。这一部分是整个系统的信息处理部分,相当于人的大脑。所以这部分的设计是相当重要的。本系
11、统的主控 CPU 经过比较选择了 STC 公司的 51 内核单片机,型号为 AT89S52。AT89S52 简介:AT89S52 是一个低功耗,高性能 CMOS 8 位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS-51 指令系统及 80S52 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S52 可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52
12、具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM) ,32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编湖南科技大学本科生毕业设计(论文)- 4 -程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。(2)单片机主控制系统需要包括以下电路模块:1) 电源模块的设计方案一:采用三只干电池作为电源。该方案的优点是设计简明扼要,成本低;缺点是输出功率不高,只能勉强驱动单片机,适合小电流负载。而且在整个系统工作中,电压会随着时间的推移不断降低,进而出现死机等
13、情况。方案二:采用独立的稳压电源。电源的稳压的特性较好,能够保证整个系统稳定工作。由于单片机工作电压在 5V 左右,电压过高会引起单片机工作不正常,甚至烧坏单片机,电压过低也会引起单片机工作失常。所以为了保证单片机正常工作需要为其设计较稳定的 5V 电源。综上分析,为使系统调试方便,能够稳定工作,必须有可靠电源,所以决定选择第二种方案。稳压电源电路如图 2.2.1(a)图 2.2.1(a) 5 伏稳压电源J3 是交流电源引入插座,首先变压器输出线连接到此插座,为电源模块提供 5V 以上 12V 以下的交流电压,通过整流桥的整流作用后,变为脉动的直流电,经过 C1、C3 的滤波后输入到稳压芯片
14、LM7805 中,从 LM7805 的第三脚输出的电压即为 5V 直流电压,再通过 C4、C2 的再次滤波后,便能输出较稳定的直流电压。其中 C1、C2 为瓷片电容,其可以滤除电源的高频尖脉冲信号干扰; C3、C4为电解电容,起到平波的作用。D1 为电源指示灯,电阻 R1 起限流作用,防止长时间电流过大工作烧坏发光二极管。此模块的设计要注意电源的选择,要想使得 LM7805 输出+5V 电压,输入 LM7805 的电压必须大于 7.5V 才可以的。参数选择:1)整流二极管选用 1N4007;2) C3、C4 为电解电容分别选用 470F16V 和 100F16V, C1、C2 均选用 104
15、瓷片电容;3)稳压芯片选用 LM7805,正 5V 稳压输出芯片。2) 单片机复位电路的设计湖南科技大学本科生毕业设计(论文)- 5 -方案一:采用手动复位。手动复位需要人为在复位输入端加高电平让系统复位。一般采用的方法是在 RST 端和正电源 VCC 之间接一个按键,当按下按键后,VCC 和 RST 端接通,RST 引脚处有高电平,而且按键动作一般是数十毫秒、大于两个机器周期的时间,能够安全的让系统复位。方案二:采用上电复位。上电复位电路是种简单的复位电路,只要在RST 复位引脚接一个电容到 VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到 RST 复位引脚一
16、个短暂的高电平信号,这个复位信号随着 VCC 对电容的充电过程而回落,所以 RST 引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST 引脚的高电平信号必须维持足够长的时间。本设计采用方案二,具有上电复位和按键复位的双重复位功能。复位电路图如 2.2.1(b)。本复位电路采用的是电平复位方式,接通电源后,电容相当于是短路的,单片机的复位引脚 RST 为高电平,通过 R3 对 C7 进行充电,RST 端电压渐渐降低直到为零,单片机开始工作。电阻、电容的参数选择跟所采用的晶振有关, ,必须保证复位信号高电平持续时间大于两个机器周期。本系统采用 11.0592MHz 的
17、晶振,一个机器周期的时间为约为 1s。所以复位的高电平持续时间必须大于 2s,一般晶振电路起振时间为 10ms,所以根据经验值选择电阻 R3 为 10K,C7 为 10F,经验证可以满足本电路需求。按键 S8可在单片机“死机”时进行手动复位。如果直接将按键并联在电容两端,按下按键后电容直接通过按键的触点放电,将会在瞬时产生较大的冲击电流,容易使按键的触点氧化。为了保护按键,通过一个电阻 R2 串联于按键和电容之间,这样当按下按键时,电容将通过 R2 放电,使得电流较小,不易使触点氧化,而且不影响复位功能。图 2.2.1(b) 单片机复位电路湖南科技大学本科生毕业设计(论文)- 6 -3) 单片
18、机晶振电路的设计单片机的内部时钟的晶振频率一般选择在 4MHz12MHz 之间,外接两个谐振电容。该电容的作用是对晶振的振荡频率起到了微调作用。本系统选择了 11.0592MHz 的晶振,谐振电容选择典型值 30pF 的瓷片电容。电路如图 2.2.1(c)。图 2.2.1(c) 单片机晶振电路AT89S52 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。2.2.2 时钟电路设计方案一:采用 DS12C887 时钟芯片。DS12C887 实时时钟芯片
19、功能丰富,可以用来直接代替 IBM PC 上的时钟日历芯片,同时它的管脚也和MC146818B、DS12887 相兼容。由于 DS12C887 能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决了“千年”问题;DS12C887 中自带有锂电池,外部掉电时,其内部时间信息还能够保持 10 年之久;对于一天内的时间记录,有 12 小时制和 24 小时制两种模式。在 12 小时制模式中,用 AM 和 P 区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用 BCD 码表示; DS12C887 中带有 128 字节RAM,其中有 11 字
20、节 RAM 用来存储时间信息,4 字节 RAM 用来存储 DS12C887的控制信息,称为控制寄存器,113 字节通用 RAM 供用户使用,但是编程比较复杂,芯片比较昂贵,体积大,占用的 I/O 口也比较多。方案二:采用专门的时钟芯片 PCF8563,此芯片是 I2C 总线通信,可以利湖南科技大学本科生毕业设计(论文)- 7 -用一个纽扣电池为其供电,使得单片机掉电的情况下时钟仍然在运行,无需每次单片机复位后调整时间,且占用 I/O 口少。出于节约单片机 I/O 口资源的考虑,本设计选用方案二较好。方案二靠硬件来自动生成,我们只是读取里面的数值即可,简单方便,更重要的是准确和稳定PCF8563
21、 是 PHIL IPS 公司推出的一款工业级内含 I2C 总线接口功能的具有极低功耗的多功能时钟/ 日历芯片, PCF8563 的多种报警功能、定时器功能、时钟输出功能、以及中断输出功能能完成各种复杂的定时服务, 甚至可为单片机提供看门狗功能, 内部时钟电路、内部振荡电路、内部低电压检测电路(110V) 以及两线制 I2 C 总线通讯方式, 不但使外围电路简洁, 而且也增加了芯片的可靠性, 同时每次读写数据后内嵌的字地址寄存器会自动产生增量, 时钟 00 芯片 PCF8563 亦解决了 2000 年问题。主要的性能指标:1)宽电压范围 1.0-5.5V, 复位电压标准值 Vlow=0.9V ;
22、 2)超低功耗,典型值为 0.25uA VDD=3.0V,Tamb=25 ; 3)可编程时钟输出频率为: 32.768KHz ,1024Hz, 32Hz ,1Hz ; 4)四种报警功能和定时器功能; 5)内含复位电路,振荡器电容和掉电检测电路 ; 6)开漏中断输出 ; 7)400kHz I2C 总线(VDD=1.8-5.5V),其从地址:读,0A3H;写,0A2H; 电路原理图如图 2.2.2。图 2.2.2 时钟电路图参数选择:1)时钟芯片选用 PCF8563。2)外部晶振选用 32.768K。3)J4 是备用电池的接口,也可以用大容量电容替代电池,为芯片在掉电时供电。湖南科技大学本科生毕业
23、设计(论文)- 8 -2.2.3 液晶显示系统设计方案一:采用 LED 数码管显示。方案二:采用液晶显示模块,能显示图形及汉字信息,使得工作状态显示更加直观,内容更加丰富。方案一此法显示控制电路简单成本低,但电路设计相对复杂,显示内容非常有限,比较特殊的字符,图形等不能显示出来,给设计带来了极大的局限性,根据本系统的特点,需要显示的信息较多,而且本系统需要显示汉字,所以采用了方案二显示方法,另外根据显示方式和内容的不同,液晶模块可以分为数显液晶模块,液晶点阵字符模块,和点阵图形液晶模块种,经过比较,本系统选择了点阵图形液晶显示模块,该液晶屏具有更高的性价比,型号为 QC12864B。液晶显示器
24、特点: 带中文字库的 128X64 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 内置 8192 个 16*16 点汉字,和 128个 16*8 点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 84 行 1616 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。基本
25、特性:1) 低电源电压(VDD:+3.0-+5.5V)2) 显示分辨率:12864 点3) 内置汉字字库,提供 8192 个 1616 点阵汉字(简繁体可选)4) 内置 128 个 168 点阵字符5) 2MHZ 时钟频率6) 显示方式:STN、半透、正显7) 驱动方式:1/32DUTY,1/5BIAS8) 视角方向:6 点9) 背光方式:侧部高亮白色 LED,功耗仅为普通 LED 的 1/51/1010)通讯方式:串行、并口可选11)内置 DC-DC 转换电路,无需外加负压12)无需片选信号,简化软件设计13)工作温度: 0 - +55 ,存储温度: -20 - +60为了使本系统更加具有市
26、场,采用了液晶屏显示工作状态,为了节省单片机端口,采用串行方式通信,此液晶可以显示的点阵数为 12864 个点,一屏湖南科技大学本科生毕业设计(论文)- 9 -可显示的汉字数为每行 8 个汉字,共可以显示 4 行,一屏总共可显示 32 个汉字。本显示系统可以显示当前的时间及当前室温,并可以显示家用电器的工作状态,使得用户对电器的开关状态一目了然,另外还有一些操作提示。电路原理图如图 2.2.3。图 2.2.3 液晶显示电路该显示系统还利用一个三极管来控制液晶屏的背光,即可以通过软件来开关背光显示,为系统节电并延长液晶屏的使用寿命,避免了因长期点亮背光造成液晶屏老化加快,同时节省电量。电路参数选
27、择:1)液晶屏选用 QC12864B;2)POT2 为液晶屏对比度调节电位器,选用 10K3296 封装的精密可调电位器;3)三极管为液晶屏背光控制,选用 PNP 型的 8050;2.2.4 温度采集电路设计方案一:AD590 是单片集成的敏感电流源,激励电压在+4V+30V 间选择,其测量范围为-55 摄氏度-150 摄氏度,所输出的电流数值(微安数)等于绝对温度 K 的数值。AD590 具有标准化的输出和固有的线性关系,分不同的测温范围和精度供设计者选用,通过微调电路对 AD590 的输出进行修正,可达到很高湖南科技大学本科生毕业设计(论文)- 10 -的测试精度。AD590 不需要低电平
28、测量设备和电桥,可以使用长导线,而不会因为电压的降低和感应的噪声电压而产生误差;它又是一个高阻抗的电流源;对激励的电压变化不够敏感。但是 AD590 需要把被测温度转化为电流再通过放大器和 A/D 转换器才能输出数字量送给单片机进行温度控制。方案二:采用专门的温度传感器 DALLAS 公司的 DS18B20,此芯片为 TO92封装,体积小,而且是单总线通信,只需一个 I/O 口即能实现控制,在一定程度上可以节约 I/O 口资源。通过比较,温度传感器 DS18B20 具有更高的性价比,DS18B20 能够构建经济的测温网络。因而在本次设计中,选用的是数字温度传感器 DS18B20,故采用的是方案
29、二。DALLAS 公司的数字化温度传感器 DS18B20 支持单总线接口,具有单总线独特而经济的特点,使用户可以轻松的组建传感器网络,为测量系统的创建引入全新概念。DS18B20 体积小,使用灵活,可以充分发挥单总线的优势。其测温范围为55125,在1085 范围内,精度为0.5。支持 3V3.5V的宽电压,使系统设计更灵活,更方便。DS18B20 可通过程序设置 912 位的分辨率。同时它具有负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。采用 TO92 封装,体积只有普通三极管那么大,并可以支持用户设定报警温度,设置值保存于芯片自带的 EEPROM 中,掉电后依然保存。
30、并且外围元件只需要一个 4.7K 的上拉电阻。下面简单介绍下单总线。单总线即只有一根数据线,系统中的数据交换控制都通过这根线完成。主机或从机通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其他设备使用总线。单总线通常要求外接一个约为 4.7K 的上拉电阻,当总线闲置时,其状态为高电平。主机和从机的通信可以分为三个步骤完成,分别为初始化 1Wire 器件、识别 1Wire器件和交换数据。由于他们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问 1Wire 器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1Wire 器
31、件将不响应主机。所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。1Wire协议定义了复位脉冲、应答脉冲、写 0、读 0 和读 1 时序等几种信号类型。所有的单总线命令系列都是由这些基本的信号类型组成的。在这些信号中,除了应答脉冲外,其他均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。温度寄存器中的温度值以 9 位数据格式表示,最高位为符号位,其余 8位以二进制补码形式表示温度值。测温结束时,这 9 位数据转换到暂存存储器的前两个字节中,符号位占用第一字节,8 位温度数据占用第二字节。湖南科技大学本科生毕业设计(论文)- 11 -本系统采用 DALLAS 公司的单总
32、线温度传感器 DS18B20,此传感器只需占用单片机一个 I/O 口,可以在一定程度上解决单片机 I/O 口紧张的情况。此芯片的测温范围为55125,可以满足一般的室温测量要求,其测量精度通过软件设置最大可达到 0.0625,在本系统中设置其测温精度为 0.1。此芯片的连接电路非常简单,外部电路只需要一个上拉电阻即可,电路原理图如图2.2.4(a)。图 2.2.4(a) 单总线温度传感器电路电路参数选择:1)度传感器为 DS18B20,TO92 小型封装。2)R33 为上拉电阻,选 4.7K。DS18B20 温度传感器内部结构及温度转换64 位ROM和1-Wire 口存储控制逻辑SCRATCH
33、PAD温度传感器TH/EEPROMTL/EEPROMEEPROM8 位 CRC 发生器寄生电源电路DQGND 内部 VDDVDD图 2.2.4(b) DS18B20 的内部基本框图64 位 ROM 的结构开始位是产品类型的编号 ,接着是每个器件的惟一的序号,共有 48 位,最后位是前面 56 位的 CRC 检验码,这也是多个 DS18B20湖南科技大学本科生毕业设计(论文)- 12 -可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20 温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为字节的存储器,结
34、构如图3 所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图 3 所示。低位一直为,是工作模式位,用于设置 DS18B20 在工作模式还是在测试模式,DS18B20 出厂时该位被设置为,用户要去改动,R1 和0 决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRCTMR1 1R0 1 1 1 1.图2.2.4(c) DS18B20字节定义由表 2.
35、2.4-1 可见,DS18B20 温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 0.0625LSB 形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时
36、,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表 2.2.4(a) 是一部分温度值对应的二进制温度数据。湖南科技大学本科生毕业设计(论文)- 13 -表 2.2.4(a) DS18B20 温度转换时间表RI R0 分辨率/位 温度最大转换时间/ms0 0 9 93.750 1 10 187.51 0 11 3751 1 12 750温度传感器的测温原理:器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20
37、就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致等于
38、被测温度值。表2.2.4(b) 部分温度对应值表温度/ 二进制表示 十六进制表示+125 0000 0111 1101 0000 07D0H+85 0000 0101 0101 0000 0550H+25.0625 0000 0001 1001 0000 0191H+10.125 0000 0000 1010 0001 00A2H+0.5 0000 0000 0000 0010 0008H0 0000 0000 0000 1000 0000H-0.5 1111 1111 1111 0000 FFF8H-10.125 1111 1111 0101 1110 FF5EH-25.0625 1111
39、1110 0110 1111 FE6FH-55 1111 1100 1001 0000 FC90H另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作按协议进行。操作协议为:初使化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。湖南科技大学本科生毕业设计(论文)- 14 -2.2.5 按键控制模块方案一:44 矩阵式键盘。此方案对于本系统来说无非是浪费 I/O 占用MCU 的资源,不利于系统的扩展,这就使系统的实用性降低,况且本系统根本不需要 16 个按键。方案二:独立式按键。对于独立式按键
40、来说,如果设置过多按键,虽然会占用较多 I/O 口,给布线带来不便,此方案适用于按键较少的情况。在本设计中所需要的控制点数的较少,只需要几个功能键,简便、易操作、成本低就成了首要考虑的因素。所以此时,可采用独立式按键结构。按键控制电路如图 2.2.4。图 2.2.4 按键控制电路2.2.6 语音播报模块方案一:通过 A/D 转换器、单片机,存储器,DA 转换器实现声音信号的采样、处理、存储和实现。首先将声音信号放大,通过 AD 转换器采样将语音模拟信号转换成数字信号,并由单片机和处理存放到存储器中,实现录音操作。在录、放音过程中由单片机控制 D/A 转换器,将存储器中的数据转化成声音信号。此方
41、案安装调试复杂,集成度低,成本也不低。方案二:采用 ISD1420 语音录放。ISD1420 是采用模拟存取技术集成的可反复录放的 20 秒语音芯片,掉电语音不丢失,最大可分 160 段,最小每段语音长度为 125ms,每段语音都可由地址线控制输出,每 125ms 为一个地址,由 A0-A7 八根地址线控制。该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个 EEPROM 单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声。此外,ISD1420 还省去了 A/D 和 D/A 转换器,方便扩展湖南科技大学本科生毕业设计(论文)- 15 -更多的功能。综上所述,选择方
42、案二,即 ISD1420。语音播报电路原理图如 2.2.6(a)所示。图 2.2.6(a) 语音播报电路分段录音时,ISD1420 的 A0-A7 用作地址输入线,A6、A7 不可同时为高电平,所以地址范围为 00H-9FH,即为十进制码 0-159 共 160 个数值。这表明ISD1420 的 EEPROM 模拟存储器最多可被划分为 160 个存储单元,也就是说ISD1420 最多可存储 160 个语音段,语音段的最小时间长度为 0.125S。不同分段的选择是通过对 A0-A7 端接不同的高低电平来实现。ISD1420 分段录音可以通过硬件(开关)来实现也可以通过软件编程来实现。图 2.2.
43、6(b)为硬件实现录音的开关控制电路。湖南科技大学本科生毕业设计(论文)- 16 -图 2.2.6(b) 硬件开关控制电路图 2.2.6(c)为 ISD1420 芯片引脚图。图 2.2.6(c) ISD1420 芯片引脚图ISD1420 各引脚说明如下:A0-A7地址输入端,当 A6 和 A7 不全为高电平时,A0-A7 为分段录音信息地址线,不同的地址对应不同的录音片断。湖南科技大学本科生毕业设计(论文)- 17 -MIC话筒输入端,话筒输入信号通过电容交流耦合至此引脚并传给片上预放大器,耦合电容 C7 的值和该端内阻 R7(10K)决定语音信号通频带下限频率。MICREF话筒参考输人端,M
44、ICREF 是预放大器的反相输入端,配合外电路可使片上预放大器具有较高的噪声抑制比和共模抑制比。ANA IN模拟信号输人端,对于话筒输入,ANA IN 引脚应通过外部电容C4 与 ANA OUT 引脚连接,耦合电容 C4 决定片上控制预放大器通频带的下限频率。ANA OUT预放大器的输出端,预放大器的电压增益取决于 AGC 电平,对于小信号输入电平,其增益最大为 24dB,对于强信号,增益较低。AGC自动增益控制端,AGC 动态地调整预放大器增益,使加至 MIC 输入端的非失真信号的范围扩展。内阻抗(5 欧)和外部电容决定 AGC 的响应时间,外部电容和外部电阻的 RC 时间常数决定 AGC
45、的释放时间。SP+、SP- 喇叭输出端,该端可直接驱动 16 欧的喇叭。XCLK外接时钟输入端,ISD1420 具有内部时钟,一旦接人外部时钟,内部时钟会自动失去作用。改电路不用外部时钟该引脚接地,一般不推荐使用外部时钟,除非要求时钟信号特别精确。RECLED工作状态指示端,在录音或放音时该端输出低电平,可驱动一个LED 来指示状态。在录音过程中指示灯一直亮着,在放音结束时,指示灯闪烁一下。PLAYE边沿触发放音控制端,该端输人一低脉冲,芯片即进入放音状态,直至遇到信息结束标记(EOM)或到存储空间的末尾时回放过程结束,电路自动进入准备状态。回放过程中 PLAYE 变化不会影响回放过程。PLA
46、YL电平触发放音控制端,该端电平变为低电平并保持,芯片进入放音状态,放音过程持续到该端电平由低变高或遇到信息结束标记(EOM) ,结束后电路进入准备状态。REC录音触发端,REC 一旦变为低电平,芯片就进入录音状态,REC 的权限优先于 PLAYE 和 PLAYL,在放音期间若遇 REC 接低电平时,放音就会立即停止并转入录音状态开始录音。录音期间 REC 应始终保持低电平,REC 变高或存储空间变满时录音过程结束,这时在录音截止的地方会记录一个信息结束标记(EOM) 。VCCD、VCCA数字电源正端和模拟电源正端。VSSD、VSSA数字地和模拟地。电路实现录音功能说明如下,S1、S2、S3
47、分别是控制录音和放音按键,当按下 S1 时开始录音,S2、S3 为两种方式的放音按键,当按一下 S2 时开始放音,是下降沿触发的,而 S3 为电平控制的,必须一直按着此键直至放音结束。LED湖南科技大学本科生毕业设计(论文)- 18 -和限流电阻组成录放音指示电路,当录音结束、录音超出时限(存储器溢出)或放音结束时,ISD1420 的 25 脚呈高电平,LED 熄灭。对 ISD1420 进行分段录音之前要先列出语音信息与分段地址的对照表,如表 2.2.6 所示。然后检查电路连接、接线和电源情况。并通过对照表来设置 8 个开关选择要录音的地址,最后按下录音键直至录音结束,松开录音键,重复此操作就
48、可以将自己需要录入的内容全部录入到芯片中。另外,A0 和 A1 都需要接地,因为我们要确保分段间隔不小于 0.5S,所以至少要四段,否则录音的信息可能会重叠,导致放音时达不到自己的要求。用户录制的语音每一段结束后芯片自动设有段结束标志(EOM) ,芯片录满后设有溢出标志(OVF) 。表 2.2.6 信息与地址对照表语 音信 息分段地址A7 A6 A5 A4 A3 A2 A1 A01 00H 0 0 0 0 0 0 0 02 08H 0 0 0 0 1 0 0 03 10H 0 0 0 1 0 0 0 04 18H 0 0 0 1 1 0 0 05 20H 0 0 1 0 0 0 0 06 28
49、H 0 0 1 0 1 0 0 07 30H 0 0 1 1 0 0 0 08 38H 0 0 1 1 1 0 0 09 40H 0 1 0 0 0 0 0 0十 48H 0 1 0 0 1 0 0 0度 50H 0 1 0 1 0 0 0 0现在温度 58H 1 0 0 1 1 0 0 0现在时间 60H 0 1 1 0 0 0 0 0年 68H 0 1 1 0 1 0 0 0月 70H 0 1 1 1 0 0 0 0日 78H 0 1 1 1 1 0 0 0时 80H 1 0 0 0 0 0 0 0分 88H 1 0 0 0 1 0 0 0湖南科技大学本科生毕业设计(论文)- 19 -ISD1420 单片录放时间 8 至 20 秒,音质好。芯片采用 CMOS 技术,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及 EEPROM 阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式、功耗仅0.5uA。ISD1420