数字温度计研究与设计_第1页
数字温度计研究与设计_第2页
数字温度计研究与设计_第3页
数字温度计研究与设计_第4页
数字温度计研究与设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计说明书(论文)作者:学号:系:电子工程与光电技术系专业:电子信息工程题目:数字温度计研究与设计讲师 指导者:(姓名) (专业技术职务)讲师评阅者:(姓名) (专业技术职务)2015 年 6 月毕业设计说明书(论文)中文摘要传统温度计是以指针或水银显示,其发展空间受到精确度低、稳定性差,误差大,测量时间长的压制。而采用集成芯片的数字温度计克服了以上难题,同时具备了便于携带、体积小等特性。根据不同的温度采集元件,产生了精度不同的具有不同测温范围的的多规格温度计。本文介绍了一款数字温度计,以P89V51RD2为主控制器,传感器DS18B20作为温度采集芯片, AMPIRE128X64液晶屏为

2、显示器。作仿真电路图,Keil设计程序编码,联调得出仿真结果。系统的测量温度范围是-10100,温度值精确到小数点后1位。该系统具有结构简单、扩展性性强、适用范围广等特点。关键词温度计 P89V51RD2 DS18B20 AMPIRE128X64毕业设计说明书(论文)外文摘要Title Research and Design of Digital ThermometerAbstractTraditional thermometer pointer or mercury thermometer, according to its development space of low precisio

3、n, poor stability, large error, long-term measurements of suppression. Digital thermometer uses the integrated chip to overcome the above problems. Its major features are small volume, and conveniently portable.According to the different temperature acquisition device, more specifications thermomete

4、r ofthe different accuracy or temperature measurement range is produced.This paper introduces a portable digital thermometer, with P89V51RD2 as the main controller, sensor DS18B20 as a temperature acquisition chip, ampire128x64 LCD screen to display.Using Proteus simulation circuit diagram, Keil des

5、ign program coding, alignment simulation results are obtained.Measurement of the temperature range of the system is -10 100 , the temperature value is accurate to 1 decimal places. This system has the simple structure, strong expansibility, widely application etc.KeywordsThermometerP89V51RD2 DS18B20

6、 AMPIRE128X64目次1 引言111 课题的背景112 数字温度计的发展趋势和特征113 课题研究内容及要求214 章节内容安排32 方案的选择421 主控芯片的选择422 温度传感器的选择523 显示屏的选择624 报警器的选择63 系统硬件设计731 最小系统732 温度采集电路933 显示电路1034 报警电路134 软件电路的设计1441 总体软件设计流程1442 DS18B20子程序设计1643 液晶显示模块2244 报警子程序285仿真结果与调试30结论34致谢35参考文献361 11 课题的背景温度作为7个基本单位之一,是用来表示物体冷热程度的物理量。由于物体随温度变化会

7、产生相应的特性变化,而温度的测量仅且只能利用相关特性进行间接测量。温度的国际单位是开尔文,而其他经常使用的温标有华氏度、摄氏度等。人类的日常的生活、生产与温度是紧密连接的,温度计也就应运而生。16世纪末,早期的温度计就诞生了。第一支温度计是利用热胀冷缩的原理的制作的,但是受制于压强等环境因素,测量结果很不稳定。但这是人类历史中里程碑的进步。此后,其他科学家在伽利略的基础上反复尝试、改进,先后制出了华氏温度计、列士温度计和该良版华氏温度计(摄氏温度)。现今,英美等国家主要使用华氏温度、列氏温度在德国使用较多,摄氏温度广泛用于大部分科技研发和工农业生产中。在科技日新月异当代,不同规模的集成芯片大量

8、涌现,引发了关于温度计的革命。数字温度计(DTM),是以数字化技术为基础的测量方式,将温度的相对变化由连续变为离散的数字信号,同时能够实现时时显示的智能仪表。在数字化时代的今天,对仪器仪表的要求更高,不仅要求多功能,操作灵活方便,此外,其可扩展性、集成度还有精确性等性能指标也成为衡量标准。市场的需求反作用与生产,温度计迎来了新世纪。12 诚然,现代科学技术迎来了飞速发展的新时代,科学发现、技术突破和综合学科的创新交叉融合的出现进一步发展,科技成果在经济社会发展中的广泛应用,对精准性和正确度要求的各种信息参数现代社会有几何级的增长,数字温度计也就应运而生。数字温度计的发展在一定程度上取决于温度控

9、制系统。虽然温度控制系统在国内的产业中已经非常广泛地应用了,但由于外国在这一领域技术比较先进,国内的发展水平与之仍有不小的差距。精密的温控器产品以“点”控制和基于常规PID控制器为主,不能适应高智能化,自适应控制仪器,国内技术还不成熟。随着中国加入世界贸易组织后,在政府和企业的高度重视下,相关的企业资源重组,建立了一批批研发中心开拓创新,给仪器仪表行业带来个革新。此外,主流数字温度计的质量是由微处理器和温度传感器决定的,便于携带的低成本的微处理器和高精度、效率的温度传感器在其中占着举足轻重的作用。在经历了传统的分立式温度传感器 、模拟集成温度传感器 和智能集成温度传感器是三

10、个阶段后,智能集成性温度传感器能适用于大部分微控制器并且输出数据。数字温度计顺应时代发展的趋势,经历了从最初的热胀冷缩式温度计到水银式温度计再到现今流行的数字温度计,越来越方便,克服了克服了水银温度计读数困难、容易破碎产生环境污染,简易电子温度计测量精度差等缺点;具有功能完善、性能稳定、体积小、重量轻、功耗低、价格低等特点 1。同时,由于数字温度传感器能直接输出数字化的温度数据,可以很方便的与各种单片机连接,省去了调理电路,电路简单,稳定可靠,精度也较好,因此利用数字式温度传感器取代旧式的温度传感器是必然的趋势2。此外,数字温度计一般用电池供电,适用于日常生活的各种场合,在一些存在爆炸性气体等

11、等的特殊环境下,任然可以相对安全可靠的读取温度值,与水银温度计相比,从根本上解决了水银破损可能带来的危害。尽管随着时代的潮流,数字温度计发展迅速,但不可避免的数字温度计任然存在一些问题,主要体现在如下2个方面:(1)高精度数字温度计的稳定性是由传感器和仪表两部分的性能决定的,情况比较复杂,存在的问题也比较多,是造成目前高精度数字温度计实际使用效果较差的主要原因3。(2)用常规的测量方法测量, 检测精度要求较高时, 调理电路复杂, 使系统的稳定性很难得到保证, 且成本较高,而复杂结构带来的功耗与体积问题, 阻碍了便携式高精度测温仪的发展应用4。13 1.3.1 课题研究内容本课题要求设计一款便于

12、携带的数字式温度计,便于携带要求硬件结构简单、功耗小,数字温度计则要求有能直观读取温度值的显示器,所以选择一款低功耗的单片机芯片显得尤为重要,同时温度传感器DS18B20是符合本课题要求的一款单总线芯片,当然,作为基础器件的显示器也是极为重要的。在确定了系统所需要的芯片(P89V51RD2、DS18B20和AMPIRE128X64)后,根据“自顶向下”和“模块化”的原则,再设计之初,先设计的是显示模块,如果先设计温度采集模块,那么系统将无法验证温度是否读取正确,而显示模块可以向单片机输入固定的字符来检测正确性,之后设计的就是温度采集模块,最后加入了报警模块。本课题研究的主要是温度采集模块采集温

13、度经处理转换为数字信号发送到单片机,本课题研究的重点是以单片机为主控制器,DS18B20为温度采集器件,AMPIRE128X64为显示器件的便携式数字温度控制系统。设计目标如下:(1)技术指标:1) 温度计测温范围-10-100;2) 精度:;3) 温度值显示到小数点后1位;(2)扩展内容:可考虑将温度上下限值、当前温度同时显示.14 本论文从软件和硬件2个方面介绍了数字温度计的设计过程,本论文共5个部分:第一章为选题的背景。简要讲述了课题背景,国内外的发展与数字温度计的优势和发展趋势,以及主要任务和要达到的目标。第二章是方案的论证。将数字温度计分为4个模块,比较论证几种典型的芯片,从中选取的

14、合适的芯片。第三章详细介绍了硬件电路设计,包括主控芯片、采温芯片和显示屏的功能和优势。第四章讲述了结合硬件的软件设计,对程序流程图进行简单介绍,程序编码的注意事项与工作原理。第五章讲述了仿真结果并作了简要分析说明。2 本课题的实现方法是通过温度采集系统将采集的温度经过处理转换为数字信号发送到单片机,单片机经处理判断分别发送信号到显示模块和报警模块。这就涉及到4个核心芯片的选取(如图),本章节讲述了的选取的芯片及选取的理由。本课题的实现方案是以P89V51RD2为主控芯片、DS18B20为温度采集芯片、AMPIRE128X64是显示器件和蜂鸣器报警芯片。:图2.1 硬件设计框图21 2.1.1

15、ATMEL公司的AT89C52微处理器 AT89C52 是常见的一款低电压,高性能单片机,片内含8k字节的可多次擦写的Flash 只读程序存储器和256字节的随机存取数据存储器(RAM),它的体积小而且供电量低,它的四个端口只需要两个就能满足电路系统的设计需要,适合用于便携手持式产品的设计使用5。AT89C52是最基础的一款单片机,许多功能需要外接才能实现。2.1.2 TI公司MSP430F4013MSP430 微处理器是TI 公司的一个超低功耗微控制器系列,片内组合了不同功能模块,可适应不同应用层次的需要,提供了5 种底功耗模式,可最大限度的延长手持设备的电池寿命6。给低功耗设计带来了很大的

16、方便,但是MSP430系列的价格非常高,与其他芯片在都能实现功能的基础上,并没有突出的优势。而且工作电压在到,远不如5V的接口电路来的方便2.1.3 飞利浦P89V51RD2P89V51RD2是一款8051内核的微处理器,内含65KB FLASH和1KB字节的RAM,该芯片有一个典型特性:X2方式,即每个周期12个时钟周期和每个周期6个时钟周期(X2),设计工程师可任意选择,在X2模式下,不仅获得2倍的吞吐量而且极大程度上降低了电磁干扰。此外,P89V51RD2完全兼容MUC-51指令系统,而且一样有32个I/O口,工作电压是5V,但是该芯片的3组I/O做了扩展内置了电阻,此外ROM、RAM的

17、存储空间都扩大了。而且,P89V51RD2具有低功耗模式,即掉电模式和空闲模式。综上所述,P89V51RD2兼容MUC-51,是基础51芯片的扩展芯片,且功耗较低,价格便宜,比较MSP430F4013和AT89C52而言是一款较合理的芯片。22 温度传感器根据输出信号可分为三类:逻辑输出温度传感器、模拟式温度传感器和数字式温度传感器。2.2.1 逻辑输出温度传感器逻辑输出式温度传感器并不能严格的测出温度值,而是测出大概的温度范围,该温度传感器适用于报警系统等其他控制设备,不适于温度计的制作。所以,逻辑输出温度传感器不予考虑。2.2.2 模拟式温度传感器模拟式温度传感器是传统的传感器的统称,常见

18、的有热电偶、电阻等,利用敏感元件的感温特性,在温度变化是,测出其电压或电流或电阻值的变化,信号经过采集、A/D转换等步骤,在经过微处理器的数据处理后,将其传送到显示电路。尽管国际上一些机构和学者对于采用ITS-9国际温标的固定点法分度工业铂电阻温度设计得出了一些阶段性的结论和研究成果7、8。即在0100内,降低了误差在内。但是一方面,模拟式温度传感器常常需要冷端补偿,而且响应慢等不住;另一方面金属热电阻特别是铜、铁、铂等热电阻的标定既复杂又要求苛刻,且成本较高9。此外,信号经过A/D转换可能存在失真和漂移,测量并不是非常精确,实际操作有点麻烦。所以,模拟式温度传感器不予考虑。2.2.3 数字式

19、温度传感器如果采用数字式温度传感器上述问题在得到简化的同时,在减少A/D转换的同时节省了I/O口,简化了设计电路。以DALLAS 公司生产的智能型数字温度传感器DS18B20为例:用1-Wire(单总线器件)DS18B20 来组成的测温系统的数字温度计,与半导体器件作为测温元件构成的温控系统相比有以下优势:一是硬件线路简单,并且系统可外连接多个基于DS18B20 的数字温度计;二是能够直接读出测温结果;三是能够进行远距离多点温度测量。综上所述,DS18B20具有结构简单、操作灵活、无须外接电路的优点,符合本设计要求10。23 2.3.1 数码管LED数码管是将8个发光二极管组合的器件,由a,b

20、,c,d,e,f,g,dp表示段,数码管有段选和位选2种方式。为了显示字母和数字,需要通过软件编码或硬件译码来显示数字或字母。虽然数码管价格低、体积小(相对于液晶屏),但是耗电较大,而且只能同时显示一个字符,不够智能。2.3.2 字符型1602字符型1602是工业级的液晶显示屏,同一屏幕能显示32个字符。控制简单,价格低廉,但是屏幕较小,不能再同一界面显示实时温度和上下限,需要软件编程达到屏幕切换的目的。此外,不能显示汉字也是一个弊端。2.3.3 点阵式1286412864是液晶显示器的一种统称,具被广泛应用11。AMPIRE128X64是PROTEUS中常见的一款点阵式12864芯片,功能强

21、大,能同时显示实时温度和上下限,比较直观,符合本课题设计要求。而且,不带字库的液晶显示器可以根据自己的需求选择想要的字体,方便又灵活,而带字库的液晶显示屏只能显示GB2312的宋体,而想要显示其他形式的字体则必须以图片的形式展现。综上所述,本课题选取AMPIRE128X64为显示器。24 蜂鸣器是常见的一种结构化的讯响器,广泛由于各种需要声音报警或提醒的设备中。而就单片机系统设计中,蜂鸣器可以接直流电源(驱动电压趋近于5V),而且有源蜂鸣器自带振荡源,只要单片提供电信号,蜂鸣器就会工作,不仅编程简单,硬件电路也是简洁明了的。此外,在实际实物制作中,蜂鸣器具有价格低廉、体积小,便于携带等优势,蜂

22、鸣器是报警模块的不二选择。3 数字温度计分为:主控电路(即P89V51RD2为主的最小系统)、温度采集电路(DS18B20为传感器)、显示电路(AMPIRE128X64液晶显示屏)以及超限报警电路。设计框图如图所示:本课题的硬件仿真是基于Lab Center Electronics公司的 PROTEUS软件,PROTEUS实现了从概念到产品的设计,与Keil能联立调试,完成程序与硬件的搭建。本课题选取的P89V51RD2在PROTEUS元件库中没有,而因为P89V51RD2在代码和引脚等功能上兼容AT89C51,所以用AT89C51代替,仿真电路图如图所示。图3.1 硬件仿真电路图31 最小系

23、统单片机最小系统如图所示,是由单片机芯片、晶振振荡电路、复位电路组成的。图3.2 最小系统(AT89C51替代仿真)3.1.1 P89V51RD2的简介P89V51RD2是飞利浦生产的基于80C51的低功耗系列微处理器,此款芯片除了上文所述的X2方式的降低电磁干扰(EMI),程序存储器支持系统中编程和在应用中编程,可重复编程,ISP的应用在应用固件的作用下扩大了范围。P89V51RD2的工作电压是,的RAM,的Flash,增加了3个中断源和2个中断优先级、低电磁干扰方式以及双DPTR指针。和51微处理器相同的是有4个8位输入输出口,其中有三个高达的I/O口,同时内部自带上拉电阻。当然,最重要的

24、是具有低功耗模式:(1)外部中断唤醒的掉电模式(2)空闲模式。P89V51RD2有三种封装形式:DIP、PLCC、TQFP,在芯片的选取中体现在最后2位字母,本课题采用就是P89V51RD2FN,F代表温度范围是-40 85 ,N则代表DIP封装,如下表所示:表3.1 P89V51RD2封装3.1.2 时钟电路时钟电路由晶振和30 PF电容器组成的生成单片机需要的时钟振荡频率12 MHZ。在MCS51系列单片机片内置有一个高增益的反相放大器,放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。3.1.3 复位电路的原理其中,复位电路紧急

25、处理,当系统故障时,按下复位键系统将重启。复位电路包括电解电容器、电阻器、按键,单片机复位条件是连接高电平。单片机开始后,通过电容器的电压连续的,这是当通过电阻器的电压接近, RST在低水平,以便系统正常工作。当按钮被按下时,开关打开,这一次,形成一个循环在电容器,电容器短路,所以电容器是放电。一段时间后,电容器的电压由下降到,甚至更小。根据串联电路电压的总和,这一次通过电阻器的电压为,甚至更多,RST相当于高电平,系统自动重置。32 温度采集电路温度采集模块采用的是由达拉斯公司推出的最新的一种比较先进的智能温度传感器DS18B2012。DS18B20完成对温度的测量以及独立的将测量结果送给单

26、片机的任务,单片机完成对温度的转换和计算工作,再经显示电路显示出来,同时设有报警电路 13。DS18B20内部集成了ON-B0ARD(在板)专利技术,该芯片如一只三极管的外形内部集成了敏感元件和转换电路。该芯片是1-wire接口的数字温度传感器,能有效地提高抗干扰性,测温范围是-55+125,可以在编程时设置912位分辨率。此外,DS18B20的芯片硬件接口电路简单,很大程度上节省了引线和逻辑电路,通用性很好。其仿真电路图如图所示:图3.3 温度采集电路3.2.1 DS18B20供电方式DS18B20供电的方式有2种,一种是较为常见的直接接电源,即DS18B20的1号引脚接GND,2号引脚接I

27、/O口,3号引脚接VCC;而另外一种是由寄生电源供电,单片机端口接信号口,UDD、GND接地,为保证在有效的的足够的电流在DS18B20时钟周期内被提供,可用一个MOSFET管来完成对总线的上拉。3.2.2 DS18B20的工作原理DS18B20的工作原理如图所示:利用不同温度系数的晶振的振荡频率受温度影响不同(低温度系数变化小,高温度系数变化大)分别产生相同频率的脉冲信号送到两个计数器中,低温度系数晶振的计数和温度寄存器设定为最低温度-55摄氏度,低温度系数晶振产生的脉冲信号减法计数,到零后加一,低温度系数晶振的计数重新加入,重新开始计数,直到另一计数器计数到零,停止温度寄存器的累加,即为所

28、测得温度。图3.4 DS18B20测温原理33 显示电路由于LCD独具低压和微功耗性,液晶显示器在单片机系统中被广泛应用,AMPIRE128X64显示器是一款汉字图形型液晶显示模块硬件接口电路如图所示:图3.5 显示电路3.3.1 AMPIRE128X64显示器的引脚接口在显示电路中,VBB 接地,VDD 接+5V,VEE 为液晶对比度调整端,接正电源时对比度最弱,接地时对比度最高;为了获得最佳对比度,VEE 接地2。如表所示:表3.2 AMPIRE128X64接口说明如上表示,AMPIRE128X64有五个控制,一个复位,四个电源和八个三态数据引脚。与有字库的液晶显示屏不同的是AMPIRE1

29、28X64被分成2个液晶驱动,分左右显示,所有有CS1、CS2。3.3.2 AMPIRE128X64显示器的硬件结构AMPIRE128X64采用了由行驱动和列驱动2部分组成了的动态驱动的全点阵液晶显示,可以显示32个的汉字或64个的ASCII字符,也可以显示图片。AMPIRE128X64有5条与CPU相连的控制总线,8位并行I/O数据总线。该液晶显示器主要由8个硬件模块组成:(1) 显示数据(RAM/DRDAM): DRDAM用于存储数据,RAM映射到显示屏上的点(高电平显示,低电平不显示)(2) 输入输出缓冲器:是双向工作的,将液晶显示模块与MPU总线连接,实现不同时钟下系统的通讯。当片选有

30、效则实现通讯,否则中断联系,呈现高阻态,不影响其他功能的实现。(3) 输入寄存器:接收MPU给液晶显示模块(LCM)的数据并锁存。(4) 输出寄存器:用于暂时储存数据。(5) 指令寄存器:接收指令代码,译码将之送入寄存器或触发器。(6) 状态寄存器:表示液晶屏的当时工作状态,尤其“忙”状态是标志MPU对LCM访问必须判别的状态,处于“忙”是,输入输出缓冲器被锁,任何操作无效。(7) X地址寄存器:控制着液晶显示屏8个页面的选择的3位的页地址寄存器,是八选一的选择器,且没有自动修改功能,想要修改必须重置X地址寄存器。(8) Y地址计数器:管理64个单元的六位循环加一计数器,和X地址寄存器结合选通

31、唯一的显示单元,Y地址计数器有自动加1的功能,读写操作后加一,加满0X3F后循环归零再加一。34 报警电路为了加强数字温度计的实用性,设置了超限报警功能,如图图3.6 报警电路蜂鸣器实现报警功能的原理是:振动膜发声的电流经过电磁线圈,但是由于微处理器的输出电流只有,不能满足蜂鸣器发声的要求,因此将一个三极管充当电流放大,当单片机发出报警信号时,三极管导通,蜂鸣器工作。4 软件电路的设计在软件设计方面中, 笔者使用的是模块化设计程序方法,这种方法优势如下:模块化编程不仅简化了程序开发,而且便于理解和调试;当有相同作用的程序,需要2次以上的使用时,程序可以编写成函数,在以后需使用时,可以直接调用而

32、不需重新编写;对数字温度计而言,日后需要增减某一功能时,只需要调节相应程序模块即可,灵活性高。41 总体软件设计流程如图所示:软件设计部分要求实现传感器DS18B20采集到温度并且在内部转换为数字信号然后传送到单片机,单片机分为两部分,一部分将采集到的的温度转发给液晶显示器,在显示屏不被占用的情况下,实时显示温度;另一部分执行比较操作,即判断是否超限,超过上限或下限就输出电信号到蜂鸣器,蜂鸣器报警。void main() LCD_init(); clear12864(); /初始化 show();SX ();read_18B20(); Delay_nms(1000); /读温度while (1

33、)if(flag) /按秒刷新 read_18B20(); play_xiao (55 , 4 , Xiao); if(fg=1) play8(00 , 2 , fuhao); play32_n2(12 , 2 , Z); else play32_n3(00 , 2 , Z);/显示温度if(Z>S)alarm(); else if(fg) if(Z>10) alarm(); /超限报警 42 DS18B20子程序设计智能型传感器DS18B20采用的是具有双向传输功能的单总线协议,定义了三种必须的通信时序:初始化、写和读时序。但是由于常见的微处理器不支持单总线协议,为了完成DS18

34、B20间的通信,用软件模拟单总线时序是必要的。该协议的时序都是将微处理器作为主机,从设备作为单总线器件。每一次执行的操作都是从微处理器主动启动写时序开始,如果在写命令后,单总线器件回送数据,微处理器则启动读时序来完成接收。根据DS18B20的通信协议需要编写初始化、读字节和写字节程序。而作为可编程器件的特性,这三个步骤缺一不可,且DS18B20在每一次写操作之前必须先初始化复位,复位成功后才能进行预订的操作。对于复杂的可编程器件,不同的功能有着不同的时序要求。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。4.2.1 复位子程序DS18B20的复位时序如

35、图所示。主控制器先将DQ赋0,至少保持480us后加高电平,相当于提供了一个复位脉冲。延时15us60us后,检测DQ状态,若为低电平则表示复位成功,可以进行下一步操作。否则则表示温度传感器不存在、损坏等其他故障。工作流程如图所示:图4.2 DS18B20的复位时序编程必严格按照时序表,按顺序和时间在输入输出口输出相应的高低电平或读入数据。4.2.2 写数据子程序如图所示,DS18B20的写时序。执行操作前,应先DQ置为低电平,至少等待15us,然后将待写入数据以串行的形式送一位到DQ端,DS18B20将在60us120us内接收一位数据。完成一次操作后,DQ端置高电平,必须延时不少于1us的

36、时间用于恢复,即至少1us的恢复时间才能写下一位数据。工作流程图如图所示:图4.4 写数据时序图4.2.3 读数据子程序如图所示,DS18B20的读时序。当执行读取数据指令时,应该先将DQ置为低电平(启动读时序脉冲),至少有1us的时间延迟后,然后DQ端赋为高电平,DS18B20启动等待15us后,以便温度传感器能够将一位数据更加安全可靠的传送至DQ端,然后单片机读取数据平,在单片机完成一次读取后,至少有1us的延迟时间,即1us的时间用来恢复才能读下一位数据。工作流程图如图所示:图4.6 读数据时序图4.2.4 程序编写的注意事项DS18B20虽然有着系统简单方便、连接方便和精确性好等特点,

37、但是该芯片在实际应用中任然有一些问题需要注意:(1)第一点就是上文具体论述的时序问题,除了上文的初始化、读写时序,还有极其重要的是DS18B20在处理数据时,需要一定的延时来保证测得温度转换为数字量,否则会出现错误,温度显示为85。(2)智能型温度传感器DS18B20的测温精度和供电电压有着密切的关系,若电压降低或者不稳定会引起精度下降。(3)在关于DS18B20的相关资料介绍中并未提及单总线可连接的数量,容易误解为数量无限制,但在实际应用中连接超过8个DS18B20时,单片机的总线驱动就会出现问题,再多点测温设计系统是要注意。(4)在数字温度计的测温系统的设计中,由于单片机向DS18B20发

38、出温度转换指令,DS18B20执行命令,而此时程序会等待信号返回,若没有信号返回,系统会进入死循环,在仿真调试时要注意。4.2.5 DS18B20的常见指令表DS18B20在编写程序时,有一些固定的指令来便于程序的编写,如表所示:表4.1 温度传感器写入指令4.2.6 DS18B20的数据处理在如表所示的表格中介绍了DS18B20将12位转化的数据,分别存储在DS18B20的高八位、低八位的RAM中,二进制的前5位是符号位,若符号位为0的,只要将测得数值乘以就可以得到实际温度,而符号位为1,那就需要先去反再加一再乘以才能得到实际的温度。表一部分温度对应值表温度/二进制表示十六进制表示+1250

39、000 0111 1101 000007D0H+850000 0101 0101 00000550H0000 0001 1001 00000191H0000 0000 1010 000100A2H0000 0000 0000 00100008H00000 0000 0000 10000000H1111 1111 1111 0000FFF8H1111 1111 0101 1110FF5EH1111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H小数部分的处理有点麻烦,本课题中采取的是查表法。即将小数经过处理(乘以)得到的数据存储到程序存储器中,当需要

40、小数是,单片机可以直接读取。43 液晶显示模块上文已经论述过本课题的显示驱动电路采用的是AMPIRE128X64液晶显示屏,该12864具有功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产这是一款无字库的控制器是KS0108的图形点阵式128X64的显示器件。该芯片的硬件接口方式第三章已经详细介绍了,本章主要讲述的是AMPIRE128X64的程序编写方式及相关注意事项。4.3.1 液晶显示屏的显示原理在计算机中,数据的存在形式是以0和1,不同的数据操作,液晶显示器会呈现不同的结果。对于字母、数字而言,由于种类和数量少,而且在

41、一班情况下只需要一个字节就能处理,但是常用的汉字就有六千个,而且汉字占的字节是两个,于是为了能显示出汉字,就诞生了将ASCII表中很少用到的数值即高八位以2个为一组的形式表示汉字,即汉字的内码,低八位则是英文的内码。但是内码任然只要是一组组数字,要想让屏幕上显示字符,就需要将内码转换为字模。字模也是由一组组数字组成的,但字模是用来记录字符的形状,如图是字母取模,如图所示是汉字取模:图4.9 字母字模图4.10 汉字字模4.3.2 主控KS0108AMPIRE128X64KS0108 共有7 条指令 (参考下文指令表)15。KS0108和液晶屏之间的接口电路已经做在内部, 在使用时重点是设计出单

42、片机和液晶模块的接口电路, 然后设计相应的驱动程序, 而驱动程序设计的关键就是掌握液晶模块内驱动器的指令集16。 4.3.3 液晶显示屏的指令MPIRE128X64液晶显示屏的RS(寄存器选择信号),R/W(读写控制信号)和8个三态数据I/O口构成了控制指令,控制液晶显示屏来完成相应的操作,指令说明如表所示:表4.3 液晶显示屏的指令表4.3.4 液晶显示屏子程序与上文所述的DS18B20一样,液晶显示屏在操作前必须做一些设置:基本指令操作设置,开显示、关光标,清除显示,和光标的移动方向即DDRAM的地址计数器加一。具体操作指令上文已经论述过来,初始化流程如图所示:液晶屏的时序并没有苛刻的要求

43、,如图所示:图4.12 液晶显示屏的时序图4.3.5 注意事项液晶显示屏在编程时并没有像DS18B20那样有着苛刻的时序上的问题,但是启动液晶显示器的时候一定要清屏,唯一要注意的是扫描判断“忙”状态,若是液晶显示屏处于“忙”的状态,则微处理器要等待,若是不“忙”,则执行相应的操作。字符显示工作流程如图所示:图4.13 液晶显示屏的显示字符流程图不同的字符大小是不一致的,常见的汉字是的,数字和字母是的,在显示子程序中要以不同的程序显示出来,如果的数字以的汉字显示程序来显示会出现乱码。液晶显示屏是分为左右半屏,要想使得全屏显示,则需要分别驱动左右两边的KS0108。左边列起始地址(),右边列起始地

44、址为()。当然,分屏显示时,只需要驱动相应的半屏。4.3.5 字库的获取由于本课题选取的不带字库的液晶显示器,所以需要三方软件ZIMO21来获取字模,ZIMO21对于图形的获取非常方便,而且能够数据压缩,以此来减小微处理器的内点阵数据存储的占用。对于不同的液晶显示器有不同的取模方式,本芯片必须以“字节倒序,纵向取模”,否则显示乱码。图4.14 字模获取字模示意图44 报警子程序报警模块的程序设计很简单,只要给蜂鸣器提供高低电平就可以确保工作了,即单片机将内置上下限与DS18B20测得温度值比较,超限就报警,工作流程如图所示:图4.15 蜂鸣器工作流程图子程序如下:void alarm_sound(void)uint16 m,n=500;while (n-)beep = beep;for (m=0; m<100; m+); beep = 1; 5 仿真结果与调试数字温度计已完成所有的功能,能够实时测温,精确到小数点后一位,设置了上下

温馨提示

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

评论

0/150

提交评论