智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc

上传人:laozhun 文档编号:4149320 上传时间:2023-04-07 格式:DOC 页数:36 大小:1.18MB
返回 下载 相关 举报
智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc_第1页
第1页 / 共36页
智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc_第2页
第2页 / 共36页
智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc_第3页
第3页 / 共36页
智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc_第4页
第4页 / 共36页
智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc》由会员分享,可在线阅读,更多相关《智能仪表综合训练设计说明书单片机温度实时曲线的显示.doc(36页珍藏版)》请在三一办公上搜索。

1、中文摘要液晶是现在电子产品中使用越来越多的一种显示器件。我们经常会在各种各样的电子产品和仪器上看到液晶显示器的存在。这些液晶品种繁多,功能不一 ,有的是字符型 ,有的是点阵型常常用来显示各种参数 ,包括电压、电流、温度及各种电气参数和一些特定信息。液晶不但用来显示各种文字还可以被设计成各种图案、通过改变里面特定显示 的内容 ,还还可以动态的显示各种图案及画面。液晶的使用打破了以往单一声光显示功能 ,为人们提供了更多丰富多彩的显示信息。使显示的内容更加形象化 、生动化。本设计采用以单片机为核心的低成本、高精度、微型化数字显示温度实时曲线的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、

2、中断程序、DS18B20温度转换的驱动程序、显示子程序等模块组成。DS18B20温度传感器数字信号经单片机综合分析处理,实现温度显示以及曲线绘图各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。相关部分附有硬件电路图、程序流程图。关键词:AT89S52单片机;DS18B20温度传感器;12864液晶显示模块;目录中文摘要I第1章 前言11.1 液晶的概述11.2 液晶显示的意义11.3 液晶LCD的各类应用11.4 课程设计的任务和要求2第2章 液晶显示温度曲线方案设计32.1总体选型方案32.1.1 温度检测电路选型方案32.1.2液晶显示模块选型方案32.1.

3、3键盘输入模块选型方案32.2整体设计思路3第3章 液晶温度显示硬件设计43.1 控制模块硬件设计43.1.1 AT89S52单片机简介43.1.2 AT89S52单片机最小系统硬件设计53.2液晶显示模块硬件设计63.2.1 LCD12864ZK液晶模块介绍63.2.2液晶显示模块硬件设计93.3温度模块的硬件设计103.3.1温度传感器DS18B20概述103.3.2温度模块的硬件设计11第4章 液晶显示系统软件设计134.1主程序设计134.2 液晶显示模块的设计134.2.1 12864程序设计134.2.2 12864程序设计流程图154.3 温度模块软件设计174.3.1 DS18

4、B20测温数据的读取程序设计174.3.2 DS18B20温度读取流程20第5章 总结22参考文献23附录A:温度实时曲线显示硬件原理图24附录B:软件程序25第1章 前言1.1 液晶的概述物质通常分为三种型态 晶体(固体)、液体、气体 。某些 固体物质在一定条件下会呈现液态晶体状态 。这种状态既不同于各向同性的液体,也不同于在三维空间分子完全规则排列的固体晶体,但又具有液体的流动性、连续性和分子排列的有序性。这种处于液体和晶体之间过渡相态的物质称为液晶。液晶分为热致液晶和溶致液晶。前者是物质在某一温度范围内呈现液晶状态,后者是物质溶于水或有机溶剂而形成的。用于电子器件的液晶为热致液晶。现在的

5、液晶物质均为芳香族化合物,已被发现的液晶物质多达3000余种 。液晶分子呈棒状或条状,宽约十几nm(纳米),长约数nm 液晶分子有较强的电偶极矩和容易极化的化学团。由于液晶分子间的作用力比固体弱,所以液晶分子容易呈现各种状态。液晶分子的介电常数、电导率、折射率、磁化率等具有较大的各向异性 ,在外加电场作用下会产生各种电光效应,从而可应用于液晶显示器(Liquid Crystal Display Device ,缩写为LCD) 。1.2 液晶显示的意义随着计算机技术的发展 ,基于微处理器的智能仪表已成为仪表的主体.而越来越多的智能仪表采用图形点阵液晶模块后 ,提供了丰富灵活的显示内容 ,更符合人

6、性化的特点.智能仪表的功能是否强大、用户操作性是否方便 ,都必须通过界面友好的外观和可操作性来体现。可见 ,人机界面是智能仪表开发中的主要环节 ,在开发的工作量中占了很大的比例.现有技术中智能仪表人机界面一般由液晶显示器和微处理器组成。目前 ,已有很多文献对液晶显示技术、图形用户界面设计作了研究。1.3 液晶LCD的各类应用1)办公自动化(OA)。如PC机、台式计算机、传真机、复印机、文字处理机等 。2)个人数字助理(PDA)。如笔记本电脑、袖珍计算机、计算器、电子信笺(备忘)等。3)设备自动化(FA)。如测量设备、提升机、电梯等 。4)通讯 。如无绳 电话、个人手提 电话系统、多功能电话、手

7、提数据终端、蜂窝电话等。5)车辆设备。如汽车收音机、汽车音响、汽车VCD、速度表、汽车导航系统(GPS)等。1.4 课程设计的任务和要求设计温度实时曲线显示测量仪,任务:温度变化时能及时再现正确的温度数值多大,并且可以看到液晶显屏上描绘的实时温度曲线。设计温度测量仪,要求:1) 设计出温度实时曲线显示测量仪的硬件结构电路。2) 设计软件流程图并编写程序。3) 精度等级是0.5。第2章 液晶显示温度曲线方案设计2.1总体选型方案2.1.1 温度检测电路选型方案考虑到经济、测温精度与52单片机I/O口的资源等因素。温度检测电路采用智能温度传感器DS18B20,它与单片机相连只需要3线,减少了外部的

8、硬件电路。并且温度传感器DS18B20输出的信号为数字信号,可以被单片机直接采集。省去了一般温度传感器输出信号要经过放大电路,模数转换的环节。2.1.2液晶显示模块选型方案由于要显示温度实时曲线,故传统的小的液晶显示屏1602不能满足本课题要求。故选用更宽,更大点的液晶显示屏12864ZK。它可以显示半宽字型,显CGRAM字型,显示中文字形。更为重要的是显示实时曲线必须满足打点要求,由于它具有绘图功能故满足打点要求。2.1.3键盘输入模块选型方案 采用独立键盘,它的功能是作为52单片机触发外部中断硬件。2.2整体设计思路本课题设计的是液晶显示温度实时曲线,首先要达到的最简单想法是可以在液晶屏上

9、显示温度,要显示温度,必须将温度传感器输出(数字量)信号传送至单片机,通过程序对信号进行处理,所以在这里我们需要存储器来储存一些必要的信息,之后是显示这里的显示我们是用LCD显示,在这里要提到键盘的作用,键盘在这里是实现显示界面的切换。设计思路图见图2.1。图2.1 液晶显示整体方案设计图第3章 液晶温度显示硬件设计3.1 控制模块硬件设计3.1.1 AT89S52单片机简介3.1.1.1硬件结构该系统采用的是Atmel公司生产的AT89S52单片机为主控器。At89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失

10、性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时

11、器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器 8K 字节在系统可编程 Flash AT89S52在单片机的引脚外围固定的引脚,如VCC(40),GND(20)已经正确固定到电源和地上。X1(18),X2(19)是接晶振的引脚已经外接到11.0592MHZ和30PF的电容。RST(9)是单片机的复位引脚,通过RC回路,作为单片机的上电复位。作为P3口的第二功能端口,P3.0(10),P3.1(11)为单片机的通信引脚,和MAX232芯片连接。方便在下载程序时,只要上电复位即可完成下载的硬件操作。

12、另外,为了提高P0口的驱动能力,在P0口的各引脚上接了上拉电阻5.1K到电源Vcc=5V。采用一片MAX232,为RS232与TTL电平的转换,使得可以方面使用电脑的COM口对单片机进行程序的烧录。其芯片引脚图如图3.1所示。图3.1 AT89S52引脚图3.1.2 AT89S52单片机最小系统硬件设计1)单片机复位电路硬件设计原理图,如图3.2所示。图3.2 复位电路原硬件原理图2)单片机的时钟电路硬件设计原理图,如图3.3所示。图3.3 时钟电路硬件原理图3)单片机的电源电路硬件设计原理图,如图3.4所示。 图3.4 电源电路原理图4)中断按键硬件设计原理图,如图3.5所示。图3.5 中断

13、按键硬件原理图3.2液晶显示模块硬件设计3.2.1 LCD12864ZK液晶模块介绍3.2.1.1 基本功能LCM12864ZK中文液晶显示模块的屏幕由 128*64点构成 ,可显示四行、每行8个汉字。其字型ROM内含8192个16*16点的中文字型和128个16* 8点的半宽字母符号字型。绘图显示RAM(GDRAM)提供 64*32BYTE空间、最多控制256*64点的二维绘图缓冲空间 ,绘图显示画面提供一个 64*256点的绘图区域。造字 RAM (CGRAM)提供 4组软件可编程的 16*16点阵造字功能。LCM12864ZK与单片机等微控器的接口界面灵活 ,有并行、串行两种模式 ,其中

14、并行模式又有8位/4位两种接法,串行模式又分3线 /2线两种接法。3.2.1.2 引脚功能 (见表3.1)表3.1 12864ZK引脚功能引脚名称功能1K背光源负极2A背光源正极3GND地4VCC3V/5V5NC未连接6RS(并行)选择寄存器 (0:指令寄存器 1:数据寄存器);(串行)片选 (0:禁止 1:允许)7RW(并行)读写控制脚 (0:写入 1:读 ) ; (串行 )输入串行数据8E(SCLK)(并行)写数据启始脚(串行)输入串行脉冲916DB0DB7I/O数据线 0717PSB控制界面0:串行1:并行 8 /4位18 /RST复位信号,低有效19,20VR,V0LCD亮度调整,外接

15、电阻端3.2.1.3功能指令系统简介LCM12864ZK以ST7920为内核,其指令系统分为基本指令集和扩充指令集。基本指令集包括清除显示、位地址清零、进入点设定、显示状态开/关、光标或显示移位控制、功能设定、设定CGRAM位址、设定显示数据RAM (DDRAM)位址、读取忙标志(BF)、写数据到RAM(DDRAM/CGRAM /GDRAM)、读出 RAM的值等指令;扩充指令集包括待命模式、卷动位址或RAM位址、选择睡眠模式、扩充功能设定、设定光标位址(IRAM)或卷动位址、设定绘图RAM地址等指令。下面介绍本课题中常用的12864功能指令,见表3.2,3.3。1)指令表3.2(RE=0:基本

16、指令集)指令指令码说明RS RWDB7 DB6DB5DB4DB3DB2DB1DB0清除显示0000000001将DDRAM 填满“20H” ,并且设定DDRAM的地址计数器(AC)到“00H”功能设定00001DLX0REXXDL=1(必须设为1)RE=1:扩充指令集动作RE=0:基本指令集动作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM 地址到地址计数器(AC)设定DDRAM 地址001AC6AC5AC4AC3AC2AC1AC0设定DDRAM 地址到地址计数器(AC)读取忙碌标志(BF)和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙碌标志(BF

17、)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写资料到RAM10D7D6D5D4D3D2D1D0写入资料到内部的 RAM(DDRAM/CGRAM/IRAM/GDRAM)读出RAM的值11D7D6D5D4D3D2D1D0从内部 RAM 读取资料(DDRAM/CGRAM/IRAM/GDRAM)2)指令表3.3(RE=1:扩展指令集)指令指令码说明RS RWDB7 DB6DB5DB4DB3DB2DB1DB0待命模式0000000001将 DDRAM 填满“20H” ,并且设定DDRAM的地址计数器(AC)到“00H”卷动地址或IRAM地址选择000000001SRSR=1:允许输入垂

18、直卷动地址 SR=0:允许输入IRAM地址反白选择00000001R1R0选择 4 行中的任一行作反白显示,并可决定反白与否睡眠模式0000001SLXXSL=1:脱离睡眠模式 SL=0:进入睡眠模式扩充功能设定000011X1REG0RE=1: 扩充指令集动作 RE=0: 基本指令集动作 G=1 :绘图显示ON G=0 :绘图显示OFF设定IRAM地址或卷动地址0001AC5AC4AC3AC2AC1AC0SR=1:AC5AC0为垂直卷动地址 SR=0:AC3AC0为ICON IRAM地址设定绘图RAM地址001AC6AC5AC4AC3AC2AC1AC0设定CGRAM 地址到地址计数器(AC)

19、备注: 1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取 BF标志时 BF需为0,方可接受新的指令;如果在送出一个指令前并不检查 BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。 2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。3.2.2液晶显示模块硬件设计该模块设计的液晶显示器的数据端口连接在了单片机的P0口,而控制端RS、RW、EN分别接单片机的

20、P2.6、P3.6、P2.7。LCD12864ZK低电平复位,电源5V直流供电。硬件电路如图3.7所示。图3.7 12864液晶显示原理图3.3温度模块的硬件设计3.3.1温度传感器DS18B20概述温度传感器是将温度信号转换为电信号的装置,型号有很多,数字式温度传感器常用的有DS18B20、DS1820等。此设计采用的是DS18B20。DS18B20是DALLAS公司生产的一线式数字温度传感器,是世界上第一片支持“ 一线总线”接口的温度传感器, 在其内部使用了在板(ON-BOARD)专利技术。具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分

21、辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20内部结构如图3.8所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列见下节图3.9所示,DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源。图3.8 DS18B20内部结构框图ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS1

22、8B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8X5X41)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。例如125的数字输出为07D0H,25.0625的数字输出为0191H,25.0625的数字输出为FF6FH,55的数字输出为FC90H。DS18B20主要特性如下:适应电压范围更宽, 电压范围:3.0V5.5V, 在寄生电源方式下可由数

23、据线供电;独特的单线接口方式, DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与的双向通讯;DS18B20支持多点组网功能, 多个DS18B20可以并联在唯一的三线上, 实现组网多点测温;DS18B20在使用中不需要任何外围元件, 全部传感元件及转换电路集成在形如一只三极管的集成电路内;温度范围-55+125 , 在-1085 时精度为0.5;可编程的分辨率为9-12位, 对应的可分辨温度分别为0.5、0.25、0.125和0.0625, 可实现高精度测温;在9位分辨率时最多在93.75ms内把温度转换为数字, 位分辨率时最多在750ms内把温度值转换为数字, 速度更快;测量

24、结果直接输出数字温度信号, 以“ 一线总线”串行传送给CPU, 同时可传送CRC校验码, 具有极强的抗干扰纠错能力;负压特性电源极性接反时, 芯片不会因发热而烧毁, 但不能正常工作。3.3.2温度模块的硬件设计温度的测量是采用数字温度传感器DS18B20,外围电路如图所示。当DS18B20正在执行温度转换或从高速暂存器EPPROM传送数据时,工作电流可达1.5mA,这个电流可能会引起连接单总线的弱上拉电阻的不可接受的压降,这需要更大的电流,而此时Cpp(寄生电源储能电容)无法提供,为了保证DS18B20有充足的供电,当进行温度转换或拷贝数据到EEPROM操作时,必须给单总线一个上拉电阻,一般为

25、4.7K的上拉电阻,根据距离远近可以适当调节阻值,距离近时减小阻值,但不能低于2.1K,否则DS18B20将无法复位。其数据线DQ端接单片机P1.0口。硬件电路如图3.9所示。图3.9 DS18B20接线在外部电源供电方式下, DS18B20工作电源由VDD引脚接人, 不存在电源电流不足的问题, 可以保证转换精度, 同时在总线上理论可以挂接任意多个DS18B20传感器, 组成多点测温系统。注意在外部供电的方式下, DS18B20的GND引脚不能悬空, 否则不能转换温度, 读取的温度总是85。第4章 液晶显示系统软件设计4.1主程序设计主程序要满足不断地采集温度信息,实时显示温度数值,描绘温度实

26、时曲线,等要求。故主程序流程图见图4.1。图4.1 主程序流程图 4.2 液晶显示模块的设计4.2.1 12864程序设计4.2.1.1 12864ZK控制器指令操作方式该课题使用液晶模块控制驱动器ST7920,它提供了并行和串行两类指令操作方式。这两种控制方式,由外部PSB引脚来选择:当PSB引脚输入高电平时,为并行操作方式。当PSB引脚输入低电平时,为串行操作方式。其中,并行操作方式又可以分为8位并行操作方式和4位并行操作方式两种。下面只对这8位并行操作方式进行介绍。 12864ZK液晶模块8位并行连接时序图:(1)MPU写资料到模块,见图4.2。图4.2 MPU写资料到模块时序图(2)M

27、PU从模块读出资料,见图4.3。图4.3 MPU从模块读出资料时序图主控制系统将配合(RS、RW、E、DB0DB7)来完成数据传送。从一次完整的流程来看,当执行设定地址(CGRAM,DDRAM,IRAM等)指令后,若要读取数据则需要先空读一次,才能得到正确的数据。第二次读取时不需要空读,除非又执行一次设定地址指令才需要再次空读一次。4.2.1.2LCM绘图过程分析图形显示程序的关键在于解决图形坐标系、屏幕坐标系、GDRAM坐标系的转换问题,也就是确定要显示的点对应在液晶屏面上像素的位置和在 GDRAM中的地址。得到这个对应关系后 ,我们就可以通过将某个存储单元中的某一位置为1来实现在液晶屏上画

28、出这个点。LCM12864ZK的水平与垂直地址示意图如图4.4所示 2 。图4.4LCM12864ZK水平地址与垂直地址示意图LCM12864ZK液晶模块内GDRAM与液晶屏幕的对应关系如图4.5所示。图4.5 GDRAM与液晶屏幕的对应关系示意图由以上GDRAM排列顺序及其与液晶屏幕的对应关系可知:(1) LCM12864ZK的绘图RAM(GDRAM)为64行*32BYTE/行(64行*16WORD/行 )。(2) 在液晶屏幕上只能显示 1283 64个点 ,对应于GDRAM中128*64bit。当GDRAM的横坐标小于8并且纵坐标值小于32时,其内容将显示在屏幕上半部,当GDRAM的横坐标

29、为815并且纵坐标值小于32时,其内容将显示在屏幕下半部;当GDRAM的纵坐标大于31(3263)时其内容将不能显示在屏幕上。LCM12864ZK在已知GDRAM位址的情况下,写图RAM步骤如下:(1) 先将垂直坐标Y写入(063) ;(2) 再将水平坐标X写入(015) ;(3) 将D15D8数据写入;(4) 将D7D0数据写入。在实际绘图过程中,由于每一个GDRAM地址对应于16个位(BIT)地址,所以如果第二次写GDRAM(H,V),则该RAM中其他位的值有时会改变,为了避免这种改变,需要事先将该地址中的内容读出来 (ST7920有此功能)与此次要写入的值取或后作为最终值写入。4.2.2

30、 12864程序设计流程图由上述4.2节液晶显示模块的设计,设计的功能函数流程图见图4.5,图4.6,图4.7,图4.8,图4.9。 图4.5 MPU往模块写数据流程图 图4.6 MPU从模块读出数据流程图 图4.7 MPU从模块指令信息流程图 图4.8 MPU往模块写指令流程图图4.9 绘图程序流程图4.3 温度模块软件设计4.3.1 DS18B20测温数据的读取程序设计对室内温度的检测室通过数字温度传感器DS18B20实现的,在温度模块硬件电路的设计中已经对的硬件电路做了设计,现在设计DS18B20的软件部分。1.DS18B20的内部数据部件(1)光刻ROM中的64位序列号是出厂前被光刻好

31、的, 它可以看作是DS18B20该DS18B20的地址序列码。64位光刻的ROM排列是:开始8位(24H)是产品类型标号, 接着的48位是该DS18B20自身的序列号, 最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同, 这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20中的温度传感器可完成对温度的测量, 以12位转化为例用16位符号扩展的二进制补码读数形式提供, 以0.0625/LSB的形式表达, 其中S为符号。如图4.10所示。图4.10 DS18B20温度值格式表这是12位转化后得到的12位数

32、据, 存储在的两个8比特的RAM中, 二进制中的前面5位是符号位, 如果测得的温度大于0, 这位为0, 只要将测到的数值乘以0.0625即可得到实际温度,如果温度小于0, 这位为1, 测到的数值需要取反加1再乘以0.0625即可得到实际温度。例如+125的数字输出为,07D0H,+25.0625 的数字输出为,0191H,-25.0625的数字输出为,FF6FH -55的数字输出为FC90H。2.单总线协议单总线协议能够实现数据的双向传输, 操作包括数据的读写和复位功能。下面对各个方面进行具体的介绍。(1)总线复位,首先必须对DS18B20进行复位,由单片机给DS18B20单总线至少480Us

33、的低电平信号,当DS18B20接到此复位信号后,延时15-60us,通过大地总线60-240us来产生应答脉冲。主机接收到从机的应答脉冲后,说明有单总线器件在线,通信双方达成基本协议。复位时序如图4.11所示。图4.11 复位时序图(2)控制器发送ROM指令。一旦总线主机检测到应答信号,便可以发起ROM操作指令。ROM指令一共有5条,见表格4.1每一个工作周期只能发一条。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接多少个DS18B20并做出处理。一般只挂一个DS18B20时可以跳过ROM指令。表4.1 ROM指令表指令 代码功能说明读ROM

34、0x33用于读出DS18B20内集成的64位激光ROM序列号匹酪ROM 0x55跳过ROM 0xCC搜索ROM 0xF0多个DS18B20在线时, 可用此命令匹配一个给定序列号,此后命令就针对该芯片忽略序列号, 对所有在线的DS18B20进行配置用于读出在线的DS18B20的序列号报警ROM 0xEC对温度超过上限或者下限时,读出报警的DS18B20(3)DS18B20共有9个RAM,每个字节为8位。第1、2个字节是温度转换后的数值信息,3、4个字节是用户E2PROM(常用于温度报警值存储)的镜像,在上电复位时旗帜被刷新。第五个字节则是用户第三个E2PROM的镜像。第6、7、8个字节为计数器寄

35、存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。E2PROM非易失性记忆体,用于存放长期需要保存的数据。RAM及E2PROM结构图如图4.12所示。图4.12 DS18B20 RAM及E2PROM结构图控制器发送存储器操作指令:在执行ROM指令后才能执行内存指令。在ROM指令发送给DS18B20之后,紧接着就是发送存储器操作指令了。操作指令同样为8位,共6条,见表格4.2。存储器操作指令的功能是控制DS18B20工作。表4.2 RAM指令表指令 代码功能说明温度变换 0x44启动温度转换,12位转换最长750ms读温度寄存

36、器 0xBE读取温度寄存器的温度值写温度寄存器 0x4E发出内部RAM的3、4字节写上下限温度数据命令,在该命令后紧跟两个字节数据复制温度寄存器 0x4B将RAM中的3、4字节数据复制到E2PROM中重调E2PROM 0xB8将E2PROM中的数据拷贝到温度寄存器中读供电方式 0xB4寄生供电时,DS18B20发送“0”;外接电源供电时,DS18B20发送“1”(4)数据处理:DS18B20要求严格的时序来保证数据的完整性。在单线DQ上,存在复位脉冲、应答脉冲、写“0”、写“1”、读“0”、读“1”几种信号类型。数据位的读写是由读写时序来实现的。写时序:当主机将数据线从高电平拉至低电平时,产生

37、时序,写时序分别为写“0”和写“1”,时序图如下图所示。在写数据时序的前15us总线需要是被控制器拉为低电平,而后则将是芯片对总线数据的采样时间,采样时间在15-60us,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。每一位的发送都应该至少15us的低电平起始位,随后的数据“0”或“1”应该在45us内完成。整个位的发送时间应该保持在60-120us,否则不能保证通信的正常。写时序图如图4.13所示。图4.13 写时序图读时序:该时序也是必须有主机产生1us的低电平,表示该时间的起始。然后在总线被释放后的15us中DS18B20会发送内部数据位,因此再次15

38、us内主机必须停止把DQ引脚置底,这时控制如果发现总线为高电平表示读数据“1”,如果总线为低电平,则表示读数据“0”。每一位的读取之前都由控制器加一个起始信号。图4.14为读时序图。图4.14读时序图所有的读写时序至少需要60us且每两个独立的时序至少1us的回复时间。在写时序中,主机将在拉低总线15us内释放总线,并向DS18B20写“1”。若主机拉低总先后能保持至少60us的低电平,则向单总线器件写“0”。DS18B20仅在主机发出读时序时才产生向主机传输数据,所以当主机向DS18B20发出度数据命令后。必须马上产生时序,以便DS18B20传输数据。4.3.2 DS18B20温度读取流程单

39、片机在实现DS18B20温度转换和读取的程序设计中必须严格按照其时序来进行,此设计中,单总线上只挂接了一个DS18B20,所以不用对ROM寄存器进行操作,直接跳过ROM,对RAM寄存器进行操作。在单片机发出温度转换命令后,须延时,以便DS18B20完成温度转换,在单片机发出读温度命令后,必须马上产生读时隙接收DS18B20的发回来的数据。单片机实现温度转换和读取的程序流程图如图4.15所示,温度模块主流程图如图4.15所示。图 4.15 温度读程序流程图第5章 总结近年来,随着温度检测技术和单片机的发展,基于单片机的测温测技术的应用越来越广泛,尤其是人机画面更加人性化。本设计主要以温度为研究对

40、象,通过液晶模块显示实时温度值,能够显示温度实时曲线。主要做的工作可总结如下:1.综合分析了各种类型的传感器和它的工作特点,设计了一个可行的测量方案。2.实现了测温系统的硬件电路和软件结构设计,综合考虑精度、成本等因素,合理选用了传感器、单片机及其外围芯片。 在课题的研究中,仍然存在一些问题有待进一步改进完善:1.对环境温度的测量只是用了一个DS18B20温度传感器,室内某点温度不可能代替整个室内的温度,故要实现该设计的实用性,应该在单总线上挂上多个温度传感器分布在室内的关键角落。2.该设计是可以显示温度的实时曲线但由于刷新液晶屏幕频率过慢给人有闪烁感有待换用更高性能的单片机。参考文献1 景小

41、健,尹清华等. MG - 12864液晶显示器在智能仪表中的应用,化工自动化及仪表,2003,30(6):62-64.2 北京青云创新科技发展有限公司.带中文字库图形液晶显示模块 LCM12864ZK使用说明书Z.2002.3 孙传友,孙晓斌,张一. 感测技术与系统设计M,北京:科学出版社,2004:708-710.4 徐科军. 传感器与检测技术M,北京:电子工业出版社,2004.09:4.5 张军. 智能温度传感器DS18B20及其应用J.仪表技术.2010,(04).6 马家成, 孙玉德, 张颖. MCS- 51单片机原理与接口技术M. 2版. 哈尔滨:哈尔滨工业大学出版社,1998 .7

42、 张萍. 基于数字温度计DS18B2的温度测量仪的开发J.自动化仪表, 2007(6): 64-66 .8 金伟正. 单线数字温度传感器的原理与应用J.电子技术应用,2000(6):66- 68 .9 马忠梅,籍顺心. 单片机的C语言应用程序设计M.北京航空航大大学出版社,2003.附录A:温度实时曲线显示硬件原理图附录B:软件程序#include #define uint unsigned int#define uchar unsigned char#define x1 0x80#define x2 0x88#define y1 0x80#define comm 0#define dat 1

43、bit flag=0;sbit RS = P26; /H=data; L=command;sbit RW = P36; /H=read; L=write;sbit E = P27; /input enable;sbit PSB= P21; /H=并口; L=串口;sbit RST= P35; /Reset Signal 低电平有效sbit busy=P07; /lcd busy bitsbit DQ =P10; /18B20数据线引脚uchar temper2;/存放温度的数组void wr_lcd (uchar dat_comm,uchar content);void chk_busy (void);void delay (uint us);void set_dot(uchar x,uchar y) ;void init_lcd (void)RST = 1;PSB = 1;wr_lcd(comm,0x30); /*30-基本指令动作*/wr_lcd(comm,0x01); /*清屏,地址指针指向00H*/wr_lcd(comm,0x06); /*光标的移动方向*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号