毕业论文--基于AT89S52单片机的多功能数字温度计的设计

上传人:r****d 文档编号:152290094 上传时间:2022-09-15 格式:DOCX 页数:39 大小:499.03KB
收藏 版权申诉 举报 下载
毕业论文--基于AT89S52单片机的多功能数字温度计的设计_第1页
第1页 / 共39页
毕业论文--基于AT89S52单片机的多功能数字温度计的设计_第2页
第2页 / 共39页
毕业论文--基于AT89S52单片机的多功能数字温度计的设计_第3页
第3页 / 共39页
资源描述:

《毕业论文--基于AT89S52单片机的多功能数字温度计的设计》由会员分享,可在线阅读,更多相关《毕业论文--基于AT89S52单片机的多功能数字温度计的设计(39页珍藏版)》请在装配图网上搜索。

1、摘 要本文介绍的是基于AT89S52单片机的多功能数字温度计的设计,体现模块化设计思想。论文重点阐述了硬件模块如MCU模块、温度感应模块、时钟模块、控制模块、显示模块、语音模块的设计。实现温度和时间的显示、语音播报,时间和闹钟的设置。温度传感器采用美国DALLAS半导体公司制造的DS18B20,测温范围为-55125,最高分辨率可达。DS18B20具有成本低和易使用的特点。关键词:单片机、温度计、语音播报、AT89S52、DS18B20ABSTRACTThis article describes the design of multi-function digital thermometer

2、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 display ,voice broad

3、cast ,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. And the DS18B20 has the advantages of low cost and ease of useKeyword :MCU, Thermometer, Voice Broadcast,AT89S52, DS18B20

4、目录前言- 1 -设计任务及要求- 1 -设计任务- 1 -设计要求- 1 -第二章 设计方案选择论证与设计- 1 -数字温度计设计方案论证- 1 -2.1.1 方案一- 1 -2.1.2 方案二- 1 -2.1.3 方案二的总体设计框图- 1 -各模块电路方案选择与设计- 1 -2.2.1 主控系统电路方案及设计- 1 -时钟电路设计- 1 -液晶显示系统设计- 1 -温度采集电路设计- 1 -2.2.5 按键控制模块- 1 -2.2.6 语音播报模块- 1 -2.2.7 程序下载模块- 1 -2.2.8 存储模块- 1 -第三章 系统软件设计- 1 -3.1 软件设计总括- 1 -3.2

5、系统程序设计部分- 1 -3.2.1 键盘扫描程序设计- 1 -3.2.2 温度传感器程序设计- 1 -3.2.3 语音播报程序设计- 1 -3.2.4 温度报警程序设计- 1 -3.2.5 显示电路子程序- 1 -3.2.6 时钟电路程序设计- 1 -3.2.7 主程序设计- 1 -第四章 结论- 1 -参考文献- 1 -致谢- 1 -附录A 总的原理图- 1 -附录B 程序清单错误!未定义书签。第一章 绪论前言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生

6、活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机已经在测控领域中获得了广泛的应用。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,并且具有时钟、闹钟等功能。该设计控制器使用单片机AT89S52,测温传感器使用DS18B20,用LCD以串口传送数据,实现温度显示,能准确达到以上要求。设计任务及要求设计任务 本论文将要设计一种基于单片机的多功能数字温度计,它具有实时温度显示并报温以及时钟显示与

7、报时,定时闹钟的功能。设计要求(1)输出温度和时钟采用液晶显示;(2)主控制器采用MCS-51系列单片机,温度传感器采用DS18B20;(3)可以进行时间调整、闹钟设置;(4)能够对温度和时间进行语音播报。第二章 设计方案选择论证与设计数字温度计设计方案论证 方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将温度显示出来,这种设计需要用到A/D转换电路感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响从而出现较大的偏差。时钟电路可以采用单片机定时器产生时

8、钟,但是它有两个个缺点,一个是不是很准确,二是程序比较复杂。 方案二在单片机电路设计中,大多都是使用传感器,所以可以考虑采用温度传感器DS18B20,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。在设计时钟电路时,可以用时钟芯片PCF8563。此芯片是I2C总线通信,可以利用一个纽扣电池为其供电,使得单片机掉电的情况下时钟仍然在运行,无需每次单片机复位后调整时间。具有简单方便的特点,并且很准确和稳定。从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。 方案

9、二的总体设计框图单片机主控制芯片单片机复位电路按键电路稳压电路时钟电路语音电路温度采集电路液晶显示电路温度报警电路各模块电路方案选择与设计 主控系统电路方案及设计(1) 方案选择方案一:采用数字芯片搭接控制电路,此法将使得本系统的控制电路非常庞大且复杂,并且也较难实现本设计系统的要求。方案二:采用单片机控制,通过硬件电路及编程可实现本系统的控制电路,并且采用此方案可以使得电路更加简洁,稳定性更高。所以选用了此方案。这一部分是整个系统的信息处理部分,相当于人的大脑。所以这部分的设计是相当重要的。本系统的主控CPU经过比较选择了STC公司的51内核单片机,型号为AT89S52。AT89S52简介:

10、AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80S52引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O

11、)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。(2)单片机主控制系统需要包括以下电路模块: 1) 电源模块的设计方案一:采用三只干电池作为电源。该方案的优点是设计简明扼要,成本低;缺点是输出功率不高,只能勉强驱动单片机,适合小电流负载。而且在整个系统工作中,电压会随着时间的推移不断降低,进而出现死机等情况。方案二:采用独立的稳压电源。电源的稳压的特性较好,能够保证整个系统稳定工作。由于单片机工作电压在5V左右,电压过高会引起单片机工作不正常,甚至烧坏单片机,电压过低也会引起单片机工作失常。所以为了保证单片机正常工作

12、需要为其设计较稳定的5V电源。综上分析,为使系统调试方便,能够稳定工作,必须有可靠电源,所以决定选择第二种方案。稳压电源电路如图(a)图(a) 5伏稳压电源J3是交流电源引入插座,首先变压器输出线连接到此插座,为电源模块提供5V以上12V以下的交流电压,通过整流桥的整流作用后,变为脉动的直流电,经过C1、C3的滤波后输入到稳压芯片LM7805中,从LM7805的第三脚输出的电压即为5V直流电压,再通过C4、C2的再次滤波后,便能输出较稳定的直流电压。其中C1、C2为瓷片电容,其可以滤除电源的高频尖脉冲信号干扰; C3、C4为电解电容,起到平波的作用。D1为电源指示灯,电阻R1起限流作用,防止长

13、时间电流过大工作烧坏发光二极管。此模块的设计要注意电源的选择,要想使得LM7805输出+5V电压,输入LM7805的电压必须大于才可以的。参数选择: 1)整流二极管选用1N4007; 2) C3、C4为电解电容分别选用470F16V和100F16V, C1、C2均选用104瓷片电容; 3)稳压芯片选用LM7805,正5V稳压输出芯片。2) 单片机复位电路的设计方案一:采用手动复位。手动复位需要人为在复位输入端加高电平让系统复位。一般采用的方法是在RST端和正电源VCC之间接一个按键,当按下按键后,VCC和RST端接通,RST引脚处有高电平,而且按键动作一般是数十毫秒、大于两个机器周期的时间,能

14、够安全的让系统复位。方案二:采用上电复位。上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。本设计采用方案二,具有上电复位和按键复位的双重复位功能。复位电路图如(b)。本复位电路采用的是电平复位方式,接通电源后,电容相当于是短路的,单片机的复位引脚RST为高电平,通过R3对C7进行充电,RST端

15、电压渐渐降低直到为零,单片机开始工作。电阻、电容的参数选择跟所采用的晶振有关,必须保证复位信号高电平持续时间大于两个机器周期。本系统采用的晶振,一个机器周期的时间为约为1s。所以复位的高电平持续时间必须大于2s,一般晶振电路起振时间为10ms,所以根据经验值选择电阻R3为10K,C7为10F,经验证可以满足本电路需求。按键S8可在单片机“死机”时进行手动复位。如果直接将按键并联在电容两端,按下按键后电容直接通过按键的触点放电,将会在瞬时产生较大的冲击电流,容易使按键的触点氧化。为了保护按键,通过一个电阻R2串联于按键和电容之间,这样当按下按键时,电容将通过R2放电,使得电流较小,不易使触点氧化

16、,而且不影响复位功能。图(b) 单片机复位电路3) 单片机晶振电路的设计单片机的内部时钟的晶振频率一般选择在4MHz12MHz之间,外接两个谐振电容。该电容的作用是对晶振的振荡频率起到了微调作用。本系统选择了的晶振,谐振电容选择典型值30pF的瓷片电容。电路如图(c)。图(c) 单片机晶振电路AT89S52单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。时钟电路设计方案一:采用DS12C887时钟芯片。DS12C887实时时钟芯片功能丰富,可以用来直接代

17、替IBM PC上的时钟日历芯片,同时它的管脚也和MC146818B、DS12887相兼容。由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决了“千年”问题;DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。在 12小时制模式中,用AM和P区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,

18、称为控制寄存器,113字节通用RAM 供用户使用,但是编程比较复杂,芯片比较昂贵,体积大,占用的I/O口也比较多。方案二:采用专门的时钟芯片PCF8563,此芯片是I2C总线通信,可以利用一个纽扣电池为其供电,使得单片机掉电的情况下时钟仍然在运行,无需每次单片机复位后调整时间,且占用I/O口少。出于节约单片机I/O口资源的考虑,本设计选用方案二较好。方案二靠硬件来自动生成,我们只是读取里面的数值即可,简单方便,更重要的是准确和稳定PCF8563 是PHIL IPS 公司推出的一款工业级内含I2C 总线接口功能的具有极低功耗的多功能时钟/ 日历芯片, PCF8563 的多种报警功能、定时器功能、

19、时钟输出功能、以及中断输出功能能完成各种复杂的定时服务, 甚至可为单片机提供看门狗功能, 内部时钟电路、内部振荡电路、内部低电压检测电路(110V) 以及两线制I2 C 总线通讯方式, 不但使外围电路简洁, 而且也增加了芯片的可靠性, 同时每次读写数据后内嵌的字地址寄存器会自动产生增量, 时钟00芯片PCF8563 亦解决了2000 年问题。主要的性能指标:1)宽电压范围 1.0-5.5V, 复位电压标准值 Vlow=0.9V ; 2)超低功耗,典型值为 0.25uA VDD=3.0V,Tamb=25 ; 3)可编程时钟输出频率为: 32.768KHz ,1024Hz, 32Hz ,1Hz ;

20、 4)四种报警功能和定时器功能; 5)内含复位电路,振荡器电容和掉电检测电路 ; 6)开漏中断输出 ; 7)400kHz I2C 总线(VDD=1.8-5.5V),其从地址:读,0A3H;写,0A2H; 电路原理图如图。图2.2.2 时钟电路图参数选择:1)时钟芯片选用PCF8563。2)外部晶振选用。3)J4是备用电池的接口,也可以用大容量电容替代电池,为芯片在掉电时供电。液晶显示系统设计方案一:采用LED数码管显示。方案二:采用液晶显示模块,能显示图形及汉字信息,使得工作状态显示更加直观,内容更加丰富。方案一此法显示控制电路简单成本低,但电路设计相对复杂,显示内容非常有限,比较特殊的字符,

21、图形等不能显示出来,给设计带来了极大的局限性,根据本系统的特点,需要显示的信息较多,而且本系统需要显示汉字,所以采用了方案二显示方法,另外根据显示方式和内容的不同,液晶模块可以分为数显液晶模块,液晶点阵字符模块,和点阵图形液晶模块种,经过比较,本系统选择了点阵图形液晶显示模块,该液晶屏具有更高的性价比,型号为QC12864B。液晶显示器特点: 带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口

22、方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 基本特性: 1) 低电源电压() 2) 显示分辨率:12864点 3) 内置汉字字库,提供8192个1616点阵汉字(简繁体可选) 4) 内置 128个168点阵字符 5) 2MHZ时钟频率 6) 显示方式:STN、半透、正显 7) 驱动方式:1/32DUTY,1/5BIAS 8) 视角方向:6点 9) 背

23、光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10 10)通讯方式:串行、并口可选 11)内置DC-DC转换电路,无需外加负压 12)无需片选信号,简化软件设计 13)工作温度: 0 - +55 ,存储温度: -20 - +60为了使本系统更加具有市场,采用了液晶屏显示工作状态,为了节省单片机端口,采用串行方式通信,此液晶可以显示的点阵数为12864个点,一屏可显示的汉字数为每行8个汉字,共可以显示4行,一屏总共可显示32个汉字。本显示系统可以显示当前的时间及当前室温,并可以显示家用电器的工作状态,使得用户对电器的开关状态一目了然,另外还有一些操作提示。电路原理图如图。图2.2.3

24、 液晶显示电路该显示系统还利用一个三极管来控制液晶屏的背光,即可以通过软件来开关背光显示,为系统节电并延长液晶屏的使用寿命,避免了因长期点亮背光造成液晶屏老化加快,同时节省电量。电路参数选择:1)液晶屏选用QC12864B;2)POT2为液晶屏对比度调节电位器,选用10K3296封装的精密可调电位器;3)三极管为液晶屏背光控制,选用PNP型的8050;温度采集电路设计方案一:AD590是单片集成的敏感电流源,激励电压在+4V+30V间选择,其测量范围为-55摄氏度-150摄氏度,所输出的电流数值(微安数)等于绝对温度K的数值。AD590具有标准化的输出和固有的线性关系,分不同的测温范围和精度供

25、设计者选用,通过微调电路对AD590的输出进行修正,可达到很高的测试精度。AD590不需要低电平测量设备和电桥,可以使用长导线,而不会因为电压的降低和感应的噪声电压而产生误差;它又是一个高阻抗的电流源;对激励的电压变化不够敏感。但是AD590需要把被测温度转化为电流再通过放大器和A/D转换器才能输出数字量送给单片机进行温度控制。方案二:采用专门的温度传感器DALLAS公司的DS18B20,此芯片为TO92封装,体积小,而且是单总线通信,只需一个I/O口即能实现控制,在一定程度上可以节约I/O口资源。通过比较,温度传感器DS18B20具有更高的性价比,DS18B20能够构建经济的测温网络。因而在

26、本次设计中,选用的是数字温度传感器DS18B20,故采用的是方案二。DALLAS公司的数字化温度传感器DS18B20支持单总线接口,具有单总线独特而经济的特点,使用户可以轻松的组建传感器网络,为测量系统的创建引入全新概念。DS18B20体积小,使用灵活,可以充分发挥单总线的优势。其测温范围为55125,在1085范围内,精度为。支持的宽电压,使系统设计更灵活,更方便。DS18B20可通过程序设置912位的分辨率。同时它具有负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。采用TO92封装,体积只有普通三极管那么大,并可以支持用户设定报警温度,设置值保存于芯片自带的EEPROM

27、中,掉电后依然保存。并且外围元件只需要一个的上拉电阻。下面简单介绍下单总线。单总线即只有一根数据线,系统中的数据交换控制都通过这根线完成。主机或从机通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其他设备使用总线。单总线通常要求外接一个约为的上拉电阻,当总线闲置时,其状态为高电平。主机和从机的通信可以分为三个步骤完成,分别为初始化 1Wire器件、识别 1Wire器件和交换数据。由于他们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1Wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1Wire器件将不响应主

28、机。所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。1Wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种信号类型。所有的单总线命令系列都是由这些基本的信号类型组成的。在这些信号中,除了应答脉冲外,其他均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。 温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转换到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占用第二字节。本系统采用DALLAS公司的单总线温度传感器DS18B20,此传感器只需占用单片机一个I/O口,可以在一定程度上解

29、决单片机I/O口紧张的情况。此芯片的测温范围为55125,可以满足一般的室温测量要求,其测量精度通过软件设置最大可达到,在本系统中设置其测温精度为。此芯片的连接电路非常简单,外部电路只需要一个上拉电阻即可,电路原理图如图(a)。图(a) 单总线温度传感器电路电路参数选择:1)度传感器为DS18B20,TO92小型封装。2)R33为上拉电阻,选。DS18B20温度传感器内部结构及温度转换64位ROM和1-Wire口存储控制逻辑SCRATCHPAD温度传感器TH/EEPROMTL/EEPROMEEPROM8位CRC发生器寄生电源电路DQGND 内部VDDVDD图2.2.4(b) DS18B20的内

30、部基本框图64位ROM的结构开始位是产品类型的编号 ,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图3所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3

31、所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC图2.2.4(c) DS18B20字节定义由表可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动

32、转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表(a) 是一部分温度值对应的二进制温度数据。表2.2.4(a) DS18B20温度转换时间表RIR0分辨率/位温度最大转换时间/ms009011010113751112750温度传感器的测温原理:器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减

33、法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄

34、存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致等于被测温度值。表(b)部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H0000 0001 1001 00000191H0000 0000 1010 000100A2H0000 0000 0000 00100008H00000 0000 0000 10000000H1111 1111 1111 0000FFF8H1111 1111 0101 1110F

35、F5EH1111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。2.2.5 按键控制模块方案一:44矩阵式键盘。此方案对于本系统来说无非是浪费I/O占用MCU的资源,不利于系统的扩展,这就使系统的实用性降低,况且本系统根本不需要16个按键。方案二:独立式按键。对于独立式按键来说,如果设置过多按键,虽然会占用较多I/O口,给布线带来不

36、便,此方案适用于按键较少的情况。在本设计中所需要的控制点数的较少,只需要几个功能键,简便、易操作、成本低就成了首要考虑的因素。所以此时,可采用独立式按键结构。按键控制电路如图。图2.2.4 按键控制电路 语音播报模块方案一:通过A/D转换器、单片机,存储器,DA转换器实现声音信号的采样、处理、存储和实现。首先将声音信号放大,通过AD转换器采样将语音模拟信号转换成数字信号,并由单片机和处理存放到存储器中,实现录音操作。在录、放音过程中由单片机控制D/A转换器,将存储器中的数据转化成声音信号。此方案安装调试复杂,集成度低,成本也不低。方案二:采用ISD1420语音录放。ISD1420是采用模拟存取

37、技术集成的可反复录放的20秒语音芯片,掉电语音不丢失,最大可分160段,最小每段语音长度为125ms,每段语音都可由地址线控制输出,每125ms为一个地址,由A0-A7八根地址线控制。该芯片采用多电平直接模拟量存储专利技术,每个采样值可直接存储在片内单个EEPROM单元中,因此能够非常真实、自然地再现语音、音乐、音调和效果声。此外,ISD1420还省去了A/D和D/A转换器,方便扩展更多的功能。综上所述,选择方案二,即ISD1420。语音播报电路原理图如2.2.6(a)所示。图2.2.6(a) 语音播报电路分段录音时,ISD1420的A0-A7用作地址输入线,A6、A7不可同时为高电平,所以地

38、址范围为00H-9FH,即为十进制码0-159 共160个数值。这表明ISD1420的EEPROM模拟存储器最多可被划分为160个存储单元,也就是说ISD1420最多可存储160个语音段,语音段的最小时间长度为。不同分段的选择是通过对A0-A7端接不同的高低电平来实现。ISD1420分段录音可以通过硬件(开关)来实现也可以通过软件编程来实现。图2.2.6(b)为硬件实现录音的开关控制电路。图2.2.6(b) 硬件开关控制电路图2.2.6(c)为ISD1420芯片引脚图。图2.2.6(c) ISD1420芯片引脚图ISD1420各引脚说明如下:A0-A7地址输入端,当A6和A7不全为高电平时,A

39、0-A7为分段录音信息地址线,不同的地址对应不同的录音片断。MIC话筒输入端,话筒输入信号通过电容交流耦合至此引脚并传给片上预放大器,耦合电容C7的值和该端内阻R7(10K)决定语音信号通频带下限频率。 MICREF话筒参考输人端,MICREF是预放大器的反相输入端,配合外电路可使片上预放大器具有较高的噪声抑制比和共模抑制比。ANA IN模拟信号输人端,对于话筒输入,ANA IN 引脚应通过外部电容C4与ANA OUT引脚连接,耦合电容C4决定片上控制预放大器通频带的下限频率。ANA OUT预放大器的输出端,预放大器的电压增益取决于AGC电平,对于小信号输入电平,其增益最大为24dB,对于强信

40、号,增益较低。AGC自动增益控制端,AGC 动态地调整预放大器增益,使加至MIC输入端的非失真信号的范围扩展。内阻抗(5欧)和外部电容决定AGC的响应时间,外部电容和外部电阻的RC时间常数决定AGC的释放时间。SP+、SP- 喇叭输出端,该端可直接驱动16欧的喇叭。XCLK外接时钟输入端,ISD1420具有内部时钟,一旦接人外部时钟,内部时钟会自动失去作用。改电路不用外部时钟该引脚接地,一般不推荐使用外部时钟,除非要求时钟信号特别精确。RECLED工作状态指示端,在录音或放音时该端输出低电平,可驱动一个LED来指示状态。在录音过程中指示灯一直亮着,在放音结束时,指示灯闪烁一下。PLAYE边沿触

41、发放音控制端,该端输人一低脉冲,芯片即进入放音状态,直至遇到信息结束标记(EOM)或到存储空间的末尾时回放过程结束,电路自动进入准备状态。回放过程中PLAYE变化不会影响回放过程。PLAYL电平触发放音控制端,该端电平变为低电平并保持,芯片进入放音状态,放音过程持续到该端电平由低变高或遇到信息结束标记(EOM),结束后电路进入准备状态。REC录音触发端,REC 一旦变为低电平,芯片就进入录音状态,REC的权限优先于PLAYE和PLAYL,在放音期间若遇REC 接低电平时,放音就会立即停止并转入录音状态开始录音。录音期间REC 应始终保持低电平,REC变高或存储空间变满时录音过程结束,这时在录音

42、截止的地方会记录一个信息结束标记(EOM)。VCCD、VCCA数字电源正端和模拟电源正端。VSSD、VSSA数字地和模拟地。电路实现录音功能说明如下,S1、S2、S3分别是控制录音和放音按键,当按下S1时开始录音,S2、S3为两种方式的放音按键,当按一下S2时开始放音,是下降沿触发的,而S3为电平控制的,必须一直按着此键直至放音结束。LED和限流电阻组成录放音指示电路,当录音结束、录音超出时限(存储器溢出)或放音结束时,ISD1420的25脚呈高电平,LED熄灭。对ISD1420进行分段录音之前要先列出语音信息与分段地址的对照表,如表所示。然后检查电路连接、接线和电源情况。并通过对照表来设置8

43、个开关选择要录音的地址,最后按下录音键直至录音结束,松开录音键,重复此操作就可以将自己需要录入的内容全部录入到芯片中。另外,A0和A1都需要接地,因为我们要确保分段间隔不小于,所以至少要四段,否则录音的信息可能会重叠,导致放音时达不到自己的要求。用户录制的语音每一段结束后芯片自动设有段结束标志(EOM),芯片录满后设有溢出标志(OVF)。表 信息与地址对照表语 音 信 息分段地址A7A6A5A4A3A2A1A0100H 0 0 0 0 0 0 0 0208H 0 0 0 0 1 0 0 0310H0 0 0 1 0 0 00418H0 0 0 1 10 00520H0 0 1 0 0 0 00

44、628H0 0 1 0 1 0 00730H0 01 1 0 0 00838H0 01 1 1 0 00940H0 1 0 00 0 0 0十48H0 1 0 0 1 0 00度50H0 1 0 1 0 0 0 0现在温度58H1 0 0 1 1 0 0 0现在时间60H01100000年68H01101000月70H01110000日78H01111000时80H10000000分88H10001000ISD1420单片录放时间8至20秒,音质好。芯片采用CMOS技术,内含震荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及EEPROM阵列。最小的录放系统仅需麦克风、喇

45、叭、两个按钮、电源及少数电阻电容。在录放操作结束后,芯片自动进入低功耗节电模式、功耗仅。ISD1420有唯一的录音控制和边缘电平触发两种放音控制。不分段时外围线路最简,也可按最小段长为单位任意组合分。 程序下载模块程序下载模块电路图如图所示。该模块采用了MAXIM公司生产的、包含两路接收器和驱动器的IC芯片MAX232,它的内部有一个电源电压变压器,可以把输入的+5V电源电压变换成为RS-232输出电平所需的10V电压,所以采用此芯片只需要单一的+5V电源就可以了。此模块设计的时候,很容易出现串口的连线连接错误的情况,在设计时要特别注意,否则串口不能正常工作,程序也就不能够下载到单片机中。在实

46、际应用中,器件对电源噪声很敏感,因此必须要对地加去耦电容C20,其值为。在具体电路设计时, C12、C13、C14、C15这四个电容要尽量靠近MAX232芯片,以提高抗干扰能力。图2.2.7 程序下载模块电路 存储模块存储电路主要用于存储一段时间的测量结果,包括温度值、年、月、日、时、分。AT24C02芯片是具有IIC总线接口的EEPROM,其存储容量为256*8,采用这种芯片可以解决掉电数据保存问题,并可对所存数据保存100年,并可多次擦写,擦写次数可达10万次以上。AT24C02是一个2K位串行CMOS E2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减

47、少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。AT24C02支持总线数据传送协议IIC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。在本设计中A0、A1和A2都直接接地,SCL接单片机口,SDA接单片机口,并通过10K上拉电阻拉高,正常情况下高电平为总线空闲状态。具

48、体电路图如图。图2.2.8 存储模块电路第三章 系统软件设计3.1 软件设计总括硬件设计是相当简单,因为很多的功能都已经封装好在一个个的芯片里面,但是要将这些功能部件完美的组合在一起,则需要软件的力量,底层代码的编写那将是一个不小的工程,每个模块传输数据的方法都不一样,对应每一个功能部分我们都写一个.h的头文件,将其功能函数封装在里面,这样,在主函数中,我们只调用这些函数就可以了,底层代码一定要精确,对于每个部件像12864液晶,pcf8563时钟芯片,18B20温度传感器这些芯片,对时序的要求是非常的严格的,必须不断的调试,反复的校验,这个必须要将对应的手册吃透。当然,当每个部件的.h文件都

49、写好了,再去调用则将没有那么吃力了,因为不再需要考虑底层的时序,而只要调用该函数就行了。一个主函数贯穿整个功能文件,简洁的将系统的功能统一起来。各程序模块对应头文件:#include reg51.h#include DS18B20.h#include ISD1420.h#include lcd.h#include myiic.h#include PCF8563.h#include usart.h#include key.h3.2 系统程序设计部分主程序是在程序运行的过程中必须先经过初始化,包括键盘程序,测量程序,以及各个控制端口的初始化工作。系统在初始化完成后就进入读取温度测量程序,实时的测量

50、当前的温度,得到温度后判断温度是否超过温度设置的上下限。超出(低于)温度上下限,调用报警子程序,再显示在LCD上。系统软件设计的总体流程图所示。初始化开始启动温度转换启动后800ms读取温度数据转换设置读出日历时间返回结束温度、时间设置设置完毕NYYNNNY图3.2 系统软件设计总体流程图 键盘扫描程序设计对于系统来说,按键输入程序是整个键盘控制应用系统的核心。当所设的功能键按下时,本系统应完成该键所设的功能。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。为了保证CPU对键一次闭合,仅作一次键

51、输入处理,必须去抖动影响。本设计采用软件去抖的办法是在检测到有按键按下时,执行一个510ms的延迟程序后在确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下的状态,从而消除了抖动影响。键盘子程序流程图如下图3.所示(延时子程序未在流程图中画出)。开始扫描键值是否有键按下延时去抖动是否有键按下提取键值调用按键子程序结束是是否否图 按键子程序流程图 温度传感器程序设计由在整个语音温度计的设计中是以正确采集温度为前提的,因为如果温度采集就不正确,那么即使后续电路如显示和报温电路均正确,最后的结果仍然不能达到我们所要的目标,也就是不能正确的对环境温度进行显示和报温,所以关于DS1

52、8B20的温度采集是非常重要的。DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。其测温子程序流程图如图3.所示。部分控制DS18B20指令功能如表3.所示:否开始初始化单总线是否应答跳过读序列号操作启动温度转换初始化单总线是否应答发出rom命令送出rom码读取温度寄存器计算并返回温度值返回否否是是图3. 温度传感器程序流程图表3. 控制DS18B20指令表指 令 指令代码 操 作 说 明 跳过ROMCCH忽略64位ROM编码温度转换 44H启动DS18B20进行温度转换 读暂

53、存器 BEH读暂存器9个字节内容 写暂存器 4EH将数据写入暂存器的TH、TL字节 复制暂存器 48H把暂存器的TH、TL字节写到E2RAM中 重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL中 读电源供电方式 B4H启动DS18B20发送电源供电方式的信号给主CPU 语音播报程序设计单片机语根据语音信息与分段地址的对照表和当前温度组合出播报当前的温度语音数据地址,再通过控制语音芯片放音,把处理的数据地址通过P0端口写给语音芯片,程序流程如图3.所示:对应按键是否按下读取公共模块程序判断当前温度时间读取对应语音程序结束开始是否图3. 语音播报子程序3.2.4 温度报警程

54、序设计初始默认上下限报警值,或键盘设定报警值,取量实时测温度值与温度上下限值比较,超过报警范围,导通三极管,触发蜂鸣器与指示灯报警,当实时温度恢复到报警范围内温度时,自动停止报警。流程图如图3.所示: 不报警小于0小于0大于0小于0大于0大于0读取温度值温度值减 上限值温度值减 下限值报警图3. 报警子程序流程图3.2.5 显示电路子程序LCD液晶显示程序分为液晶初始化、读忙、写指令和写数据操作,液晶显示器是一块慢器件,所以在执行每条指令之前必须确定模块忙标志为低电平(不忙),否侧此指令无效。开始LCD初始化LCD是否为忙单片机向LCD写命令单片机向LCD写数据显示数据结束否是设置显示初始化图

55、3. LCD显示程序流程图3.2.6 时钟电路程序设计实时时钟所用的芯片是PCF8563, PCF8563 有 16 个 位寄存器, 所有 16 个寄存器设计成可寻址的8位并行寄存器。具体流程图如图。开始时钟芯片是否有记忆数据?按定义好的数组内的值设置时间初始化LCD读取时间并在LCD上显示否是图3.2.6 时钟电路程序流程图3.2.7 主程序设计主程序中主要是实现对各个功能模块的调用,以实现相应的功能,主程序的设计思路如下:#include reg51.h#include DS18B20.h#include ISD1420.h#include lcd.h#include myiic.h#in

56、clude PCF8563.h#include usart.h#include key.hsbit ALARM_CLOCK=p14unsigned int init_time7=2012,6,6,12,45,57;/延时子程序void delay(int ms) int i; while(ms-) for(i = 0; i 250; i+) _nop_(); void main(void) int temp,time,i; unsigned int time7=; delay(10); Init_DS18B20(void); /温度传感器初始化 delay(10); pcf8563_star(

57、); /P8563的初始化 delay(10); InitCom(unsigned char BaudRate); /串口初始化 delay(10); lcd_init(); /初始化LCD delay(10); AT24CXX_Init(void); /初始化AT24LC02 delay(50); lcd_clr(); /清屏 pcf8563_init(void); /设置默认的时钟时间 while (1) lcd_clr(); /清屏 keyscan_settime();/按键子程序,时间设置 delay(10); time7=pcf8563_get_time();/从RTC芯片获取时钟数

58、据 if(time7=init_time7) speak_temp(time0); /语音播报时间值 年 speak_temp(time1); /语音播报时间值 月 speak_temp(time2); /语音播报时间值 日 speak_temp(time3); /语音播报时间值 时 speak_temp(time4); /语音播报时间值 分 speak_temp(time5); /语音播报时间值 秒 speak_temp(time6); /语音播报时间值 星期 delay(10); lcd_pos(10H); /设定显示位置 lcd_wdat(time0); /显示年 lcd_pos(11H); lcd_wdat(time1); /显示月 lcd_pos(12H); lcd_wdat(time2); /显示日 lcd_pos(13H); lcd_wdat(time3); /显示时 lcd_pos(14H); lcd_wdat(time4); /显示分 lcd_pos(15H); lcd_wdat(time5); /显示秒 lcd_pos(16H); lcd_wdat(time6); /显示星期 delay(10); temp=Get_Temperature(); /读取ds18b20当前温度

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!