版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 - 29 -第1章项目概述跟随科技的脚步,测温这一运用关系到生活的方方面面,而温度测量逐步向信息数字化发展。相比较传统物理测温方法的温度测量功能单一,且具有不精确性,数字温度计测量为其很好的解决了问题,不仅便携,而且检测精度高,功能多等优点赢得了大家对其的青睐,这项技术也应用的越来越广泛。1.1项目背景液晶是目前电子产品中使用越来越多的一种显示器。我们经常会在各种各样的电子产品和电子仪器上看到液晶显示器的存在。这些液晶品种繁多,功能多种多样,如LCD1602字符型液晶,LCD12864带中文字库可以显示汉字的液晶,还有TFT彩屏液晶。这些液晶被人们用来显示各种参数,如电压电流、温度湿度以及各
2、种电气参数和一些特定信息。液晶除了用来显示字符外,还可以用来显示各种图案及画面。 1.2项目简介本设计采用以AT89S52单片机为核心的低成本、高精度的LCD12864液晶显示温度时实曲线的硬件电路和软件设计方法。整个项目采用模块化设计,由主程序,DS18B20温度转换程序,LCD12864液晶显示模块组成。DS18B20温度传感器数字信号经AT89S52单片机综合分析处理,实现温度显示以及曲线绘图等功能。在此基础上设计了系统的总体方案,最后将编译好的程序烧写到单片机学习开发板上的AT89S52芯片中,实现温度检测系统的功能。相关部分附用硬件实物图、及程序流程图。1.3应用范围本项目设计的LC
3、D12864温度检测系统可应用于工业上温度的检测,农业上大棚温度的检测,以及日常生活中,环境温度的检测,由于该项目所采用的温度传感器为不锈钢封装防水性温度传感器,故本项目设计也可用于测量水温或是工业上液体温度,只要在DS18B20温度传感器的测温范围内均可。 大连东软信息学院毕业设计(论文) 大连东软信息学院毕业设计(论文) 第2章项目实施方案2.1概述考虑到经济、测温精度与52单片机I/O口的资源等因素。温度检测电路采用智能温度传感器DS18B20,它与单片机相连只需要3线,减少了外部的硬件电路。并且温度传感器DS18B20输出的信号为数字信号,可以被单片机直接采集。省去了一般温度传感器输出
4、信号要经过放大电路,模数转换的环节。本设计使用的温度探头采用全新原装进口DS18B20温度传感器芯片,芯片每个引脚热缩管隔开,防止短路,内部封胶,防水防潮。3.0V-5.5V供电,9-12位可调分辨率,感温范围宽-55至+125摄氏度,单总线,单接口,3根输出引线分别为红色(VCC)、黄色(DATA)、黑色(GND)。由于本设计要显示温度实时曲线,故传统的小的液晶显示屏1602不能满足本设计的要求。故选用更宽,更大点的液晶显示屏HJ12864ZW。它可以显示半宽字型,显CGRAM字型,显示中文字形。更为重要的是显示实时曲线必须满足打点要求,由于它具有绘图功能故满足打点要求。2.2开发环境硬件环
5、境:学校配置笔记本电脑,USB转串口下载线,电源线。软件环境:Windows7系统,STC-SIP软件,Keil编译软件,Altium Designer 电路绘制软件。2.3硬件设计2.3.1硬件系统框图 本设计的是基于12864液晶的温度检测系统,采用AT89S52单片机,温度的显示采用12864液晶显示温度实时曲线,首先要达到的最简单想法是可以在液晶屏上显示温度,要显示温度,必须将温度传感器输出(数字量)信号传送至单片机,通过程序对信号进行处理,所以在这里我们需要存储器来储存一些必要的信息,之后是显示,这里的显示我们是用LCD12864显示,设计思路图见图2.1。图2图2.1 液晶显示整体
6、方案设计图2.3.2显示模块硬件设计显示模块采用LCD12864液晶显示温度实时曲线,由于要显示温度实时曲线,故传统的液晶显示屏LCD1602不能满足本项目要求。故选用更宽,更大点的液晶显示屏LCD12864。它可以显示半宽字型,显示中文字形。(1)LCD12864液晶基本功能LCD12864液晶主显模块由 128*64点构成 ,能显示四行、每行可显示8个汉字。里面的字型ROM内含8192个16*16中的中文字型和128个16* 8中的半宽字母符号类型。绘图中会显示RAM(GDRAM)提供 64*32BYTE的结构、可以最大限度控制256*64点的二维绘图空间 ,绘图显示可以为画面提供 64*
7、256的绘图范围。造字中由RAM提供了4组软件可用于编程的16*16点阵造字的功能。LCD12864与单片机中的微控制器接口的灵活界面 ,有并行、串行两种模式 ,其中并行模式又有8位/4位两种接法,串行模式又分3线 /2线两种接法。(2)LCD12864液晶引脚功能显示模块LCD12864液晶屏的引脚功能请参见表2.1表2.1 LCD12864引脚功能引脚名称功能1K背光源的负极2A背光源的正极3GND地4VCC3V/5V5NC未连接6RS(并行)选择性寄存器 (1:数据寄存器 0:指令寄存器);(串行)代表片选 (0:禁止 1:允许)7RW(并行)控制脚 (0:写入 1:读) ; (串行)串
8、行数据8E(SCLK)(并行) 写入数据的启始脚 (串行) 输入的串行脉冲9-16DB0DB7I/O数据线 0717PSB控制界面0:串行1:并行 8 /4位18 /RST复位信号,低有效19,20VR,V0LCD亮度调整,外接电阻端2.3.3LCD12864液晶功能指令系统LCD12864用以ST7920为内核系统,指令系统可以分为扩充指令集和基本指令集两种。扩充指令集包括了一些位址、待命模式和RAM地址、扩充功能设定、睡眠模式、设定绘图RAM地址等等一些指令;基本指令集包括了位址清零、显示清除、显示状态开/关、或显示移位控制、功能设定、据到RAM、读出 RAM值等指令。备注: (1)模块在
9、接受指令之前,微处理顺需要先确认好模块内部是处于一个非忙碌的状态,读取 BF的标志即 BF需变为0,可接受更新指令;如果需要在送出一个指令之前并不检查 BF的标志,在上一个指令和下一个指令的中间需延迟一段比较长时间的,等待上一个指令执行完成,指令的执行时间请参考指令表中的个别指令说明。 (2)“RE”是指扩充指令集与基本指令集中选择控制位“元”,需要变更“RE”位元后,后面的指令集维持在一个最后的状态,除非需要再次变更“RE”的位元,否则使用相同的指令集时,不需每次重设“RE”位元。2.3.4温度传感器DS18B20概述温度传感器是将温度信号转换为电信号的装置,型号有很多,数字式温度传感器常用
10、的有DS18B20、DS1820等。此设计采用的是DS18B20。DS18B20是DALLAS公司生产的一线式数字温度传感器,是世界上第一片支持“ 一线总线”接口的温度传感器, 在其内部使用了在板(ON-BOARD)专利技术。具有3引脚TO92小体积的封装形式;温度测量的范围一般为55125,编程在9位12位A/D转换精度的,测温得到的分辨率可到达0.0625,用于被测温度的符号扩展为16位数字方式串行的输出;其中工作电源既在较远端引入或者可以采取寄生电源方式的产生;多个DS18B20并联到了3根或者2根线上时,CPU端只需要一根端口线就可以与很多DS18B20通信,占用到的微处理器端口较少的
11、话,方可减少对逻辑电路和大量的引线需求。DS18B20内部的结构,核心由4部分够成:温度传感器、64位ROM、配置寄存器、非挥发的温度报警触发器TL与TH。DS18B20管脚排列祥见下节图所示, GND表示电源地;DQ表示数字信号输入输出端;VDD表示外接供电电源。ROM中64位序列号在出厂前就已经光刻好了,可以看作是一个DS18B20地址的序列码,每个DS18B20的64位的序列号码均不相同。64位中ROM的排循环中的冗余校验码为(CRC=X8X5X41)。ROM在其中的作用是将每一个的DS18B20不相同,于是就可以实现一根总线上面可以挂接多个DS18B20的目的了。DS18B20中温度传
12、感器作用是完成它对温度测量校准,其中16位符号扩展的二进制补码的读数形式所提供,用0.0625/LSB形式表现,里面S表示符号位。例如125的数字输出为07D0H,25.0625的数字输出为0191H,25.0625的数字输出为FF6FH,55的数字输出为FC90H。DS18B20主要特性如下:(1)适应的电压范围更广, 电压范围:3.0V5.5V, 在寄生电源的方式下数据线供电可为其供电;(2)单线接口方式, DS18B20 在与微处理器中连接的时候只需要一条口线便可实现对的双向通讯与微处理器对接;(3) DS18B20用于多点的组网功能, 多个DS18B20还可以一起并联位于唯一的三线上的
13、, 实现多点测温;(4) DS18B20在使用的过程中不需要外围元件, 里面的全部传感元件和转换电路都集成在了一只三极管的般大小的集成电路内;(5)可用于编程的分辨率为9-12位, 对应其可分辨温度范围分别是0.5、0.25、0.125和0.0625, 可实现高精度对温度的测量;(6)温度范围-55到125 , 在-1085 时准确度为0.5;(7)处于9位分辨率的时候最多可在93.75ms内将温度转换成为数字, 处于位分辨率时最多可以在750ms内把温度数值转换成为数字, 速度更快;(8)测量结果将直接输出数字的温度信号, 以“ 一线总线”方式串行发送给CPU, 同时传送CRC校验码, 并同
14、时具备极强的抗干扰和纠错能力;(9)负压特性电源极性如果接反, 芯片不会由于发热而烧毁, 但是不能正常工作。2.4软件设计2.4.1软件系统框图根据需求调研结果本系统主要包括主程序不断采集温度信息,描绘温度实时曲线,实时显示温度数值,等等需求。下列出程序核心代码及程序总体流程图如图2.2所示。图 2.2 主程序流程图2.4.2模块液晶显示设计(1) LCD12864程序设计1、LCD12864控制器指令操作方式本设计使用液晶模块控制驱动器ST7920,它提供了并行和串行两类指令操作方式。这两种控制方式,由外部PSB引脚来选择:当PSB引脚输入高电平时,为并行操作方式。当PSB引脚输入低电平时,
15、为串行操作方式。其中,并行操作方式又可以分为8位并行操作方式和4位并行操作方式两种。下面只对这8位并行操作方式进行介绍。 LCD12864液晶模块8位并行连接时序图:MPU写资料到模块,见图2.3。图2.3 MPU写资料到模块时序图(2)MPU从模块读出资料,见图2.4。图2.4 MPU从模块读出资料时序图主控制系统将配合(RS、RW、E、DB0DB7)来完成数据传送。从一次完整的流程来看,当执行设定地址(CGRAM,DDRAM,IRAM等)指令后,若要读取数据则需要先空读一次,才能得到正确的数据。第二次读取时不需要空读,除非又执行一次设定地址指令才需要再次空读一次。2、LCM绘图过程中的分析
16、图形显示程序的关键是在于怎样去解决屏幕坐标系、图形坐标系、GDRAM中坐标系之间转换的问题,就是确定要显示的点与其对应在液晶屏面上像素位置和 GDRAM的地址。得到了这样一个对应关系后以后 ,我们可以通过将某个存储单元中的某一位置为1实现在液晶屏上面画出这个点。LCD12864中垂直与水平的地址示意图如图2.5所示。图2.5LCD12864垂直地址与水平地址示意图LCD12864液晶模块中液晶屏幕与GDRAM的对应关系如下图2.6所示。图2.6液晶屏幕与GDRAM的对应关系示意图以上面液晶屏幕及GDRAM排列顺序的对应关系可得出:(1) LCD12864的绘图RAM(GDRAM)为64行*32
17、BYTE/行(64行*16WORD/行)。(2) 在液晶屏幕上只能够显示出1283 64点,对应GDRAM中128*64bit。当GDRAM的纵坐标值小于32并且横坐标处于小于8的时候,内容部分将显示在屏幕的上半部分,当GDRAM的纵坐标值小于32并且横坐标为815时,内容将会显示在屏幕的下半部份;当GDRAM纵坐标处于大于31(3263)时的内容将不能显示在屏幕上。LCD12864在已知GDRAM位址的情况下,写图RAM步骤如下:(1) 先将垂直坐标Y写入(063) ;(2) 然后将水平坐标X写入(015) ;(3) 将D15D8的数据也一起写入;(4) 将D7D0的数据也一起写入。实际的绘
18、图过程中,每一个GDRAM地址都有一个与其相对应的16个位(BIT)地址,如果在第二次写入GDRAM(H,V),则该RAM中的其他代表的值有时也会改变,为了防止这种改变,事先将该地址中内容读出来与需要写入的值取或者作为最终的值写入其中。2.4.3 LCD12864工作流程图由上述2.4.2节液晶显示模块的设计,设计的功能函数流程图见图2.7,图2.8,图2.9,图2.10,图2.11。图 2.7 MPU往模块写流程图图 2.8 从模块读数据流程图图 2.9 MPU从模块指令信息流程图图 2.10 MPU往模块写指令流程图图 2.11 绘图程序流程图2.4.4 DS18B20测温数据的读取程序设
19、计对室内温度的检测室通过数字温度传感器DS18B20实现的,在温度模块硬件电路的设计中已经对的硬件电路做了设计,现在设计DS18B20的软件部分。(1)DS18B20的内部数据部件光刻中ROM的64位序列号是出厂前就已经被光刻好的, 可以被当作是DS18B20该DS18B20的一个地址序列码。64位光刻ROM排列应该是:开始8位为产品的类型标号, 然后的48位是其DS18B20本身的序列号, 最后面8位应该是前面56位的循环冗余的校验码。其中光刻ROM作用是使每一个DS18B20都不相同,通过这种办法就可以实现一根总线上可以挂接多个DS18B20的一个目的。DS18B20中温度传感器用于完成对
20、温度的测量, 用12位的转化为例,用16位符号扩展二进制补码的读数形式提供, 通过0.0625/LSB的形式来表现,如图2.12所示。 图2.12 DS18B20为温度值的格式表以上是12位转化以后所得到12位数据值, 存储在两个8比特RAM中, 二进制中前面的5位表示符号位,如果测得温度大于0的话, 位表示0, 将测得数值乘以0.0625可以得到实际的温度,如果温度小于0的话, 位表示1, 测得的数值需取反加1然后再乘以0.0625便可得到实际温度的数值。(2)单总线协议单总线协议能够实现数据的双向传输, 操作包括数据的读写和复位功能。下面对各个方面进行具体的介绍。 总线复位,首先必须对DS
21、18B20进行复位,由单片机给DS18B20单总线至少480Us的低电平信号,当DS18B20接到此复位信号后,延时15-60us,通过大地总线60-240us来产生应答脉冲。主机接收到从机的应答脉冲后,说明有单总线器件在线,通信双方达成基本协议。复位时序如图2.13所示。图2.13 复位时序图控制器发送ROM指令。一旦总线主机检测到应答信号,便可以发起ROM操作指令。ROM指令一共有5条,见表格2.15每一个工作周期只能发一条。ROM指令为8位长度,功能是对片内的64位ROM进行操作。其目的是分辨一条总线上挂接多少个DS18B20并做出处理。一般只挂一个DS18B20时可以跳过ROM指令。表
22、2.2 ROM指令表指令 代码功能说明读ROM 0 x33用于读出DS18B20内集成的64位激光ROM序列号匹配ROM 0 x55跳过ROM 0 xCC搜索ROM 0 xF0多个DS18B20在线时, 可用此命令匹配一个给定序列号,此后命令就针对该芯片忽略序列号, 对所有在线的DS18B20进行配置用于读出在线的DS18B20的序列号报警ROM 0 xEC对温度超过上限或者下限时,读出报警的DS18B20DS18B20共有9个RAM,每个字节为8位。第1、2个字节是温度转换后的数值信息,其中里面的第3、4个字节是用户的E2PROM(常用于温度报警值存储)的镜像,在上电复位时旗帜被刷新。第五个
23、字节则是用户第三个E2PROM的镜像。第6、7、8个字节为计数器寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。E2PROM非易失性记忆体,用于存放长期需要保存的数据。RAM及E2PROM结构图如图2.14所示。图2.14 DS18B20 RAM及E2PROM结构图控制器发送存储器操作指令:在执行ROM指令后才能执行内存指令。在ROM指令发送给DS18B20之后,紧接着就是发送存储器操作指令了。操作指令同样为8位,共6条,见表格2.3。存储器操作指令的功能是控制DS18B20工作。表2.3 RAM指令表指令 代码功能说明
24、温度变换 0 x44启动温度转换,12位转换最长750ms读温度寄存器 0 xBE读取温度寄存器的温度值写温度寄存器 0 x4E发出内部RAM的3、4字节写上下限温度数据命令,在该命令后紧跟两个字节数据复制温度寄存器 0 x4B将RAM中的3、4字节数据复制到E2PROM中重调E2PROM 0 xB8将E2PROM中的数据拷贝到温度寄存器中读供电方式 0 xB4寄生供电时,DS18B20发送“0”;外接电源供电时,DS18B20发送“1”数据处理:DS18B20要求严格的时序来保证数据的完整性。在单线DQ上,存在复位脉冲、应答脉冲、写“0”、写“1”、读“0”、读“1”几种信号类型。数据位的读
25、写是由读写时序来实现的。写时序:当主机将数据线从高电平拉至低电平时,产生时序,写时序分别为写“0”和写“1”,时序图如下图所示。在写数据时序的前15us总线需要是被控制器拉如果是低电平,则将是芯片对总线数据采样时间,采样时间如果在15-60us,则采样时间内控制器总线拉高表示写“1”,反之控制器将总线拉低表示写“0”。每一位发送的都必须保证至少为15us低电平是起始位,之后的数据则是“0”或“1”在45us里面完成。整个发送时间保持在60-120us,否则将不能保证正常通信。如图2.15所示。图2.15 写时序图读时序:该时序也是必须有主机产生1us的低电平,表示该时间的起始。然后在总线被释放
26、后的15us中DS18B20会发送内部数据位,因此再次15us内主机必须停止把DQ引脚置底,这时控制如果发现总线为高电平表示读数据 “ 1 ” ,如果总线为低电平,则表示读数据“0”。每一位的读取之前都由控制器加一个起始信号。图2.16为读时序图。图2.16读时序图所有读写时序都至少要60us并且里面每两个独立时序至少1us的回复时间。写时序过程中,主机将会在总线拉低的15us内释放总线,并向DS18B20写“1”。若主机将拉低总线后仍能够保持在不少于60us的低电平范围,则需要向单总线上写“0”。DS18B20仅主机需要发出读时序的时候才产生向主机传输数据,即当主机往DS18B20发出度数据
27、的命令后。需要立刻产生时序,以便DS18B20传输数据。2.4.5 DS18B20温度读取流程单片机在实现DS18B20温度转换和读取的程序设计中必须严格按照其时序来进行,此设计中,单总线上只挂接了一个DS18B20,所以不用对ROM寄存器进行操作,直接跳过ROM,对RAM寄存器进行操作。在单片机发出温度转换命令后,须延时,以便DS18B20完成温度转换,在单片机发出读温度命令后,必须马上产生读时隙接收DS18B20的发回来的数据。单片机实现温度转换和读取的程序流程图如图4.16所示,温度模块主流程图如图2.17所示。图 2.17 温度读程序流程图第3章项目实施过程3.1硬件实现过程3.1.1
28、 原理图设计(1)控制模块硬件设计本设计所采用的控制模块硬件为AT89S52单片机,选用AT89S52主要有一下几点原因:1、其功能比标准51略强,多128BRAM,多一个定时器、多512BEEPROM,内置8KROM足够容纳本设计的程序;2、方便购买,且资料众多,编程与51兼容,适合初学者使用;3、支持ISP下载,FLASHROM可下载10000次以上且性能稳定。 (2)AT89S52硬件结构AT89S52 是功耗低、高性能的CMOS8位微控制器,具备了8K在系统可编程的Flash存储器。Atmel公司高密度的非易失性存储器,与同类80C51引脚和产品指令兼容。片上的Flash允许程序的存储
29、器系统也可用于编程。芯片上,有灵活的8位CPU和在系统中可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位
30、为止。在单片机的引脚外围固定的引脚,如VCC(40),GND(20)已经正确固定到电源和地上。X1(19),X2(18)是接晶振的引脚已经外接到11.0592MHZ和30PF的电容。RST(9)是单片机的复位引脚,通过RC回路,作为单片机的上电复位。 作为P3口的第二功能端口,P3.0(10),P3.1(11)为单片机的通信引脚,和MAX232芯片连接。方便在下载程序时,只要上电复位即可完成下载的硬件操作。另外,为了提高P0口的驱动能力,在P0口的各引脚上接了上拉电阻5.1K到电源VCC=5V。采用一片MAX232,为RS232与TTL电平的转换,使得可以方便使用电脑的COM口对单片机进行程序
31、的烧录。其芯片引脚图如图3.1所示。图3.1 AT89S52引脚图3.1.2AT89S52单片机最小系统硬件设计(1)单片机的时钟电路硬件设计原理图,如图3.2所示。图3.2 时钟电路硬件原理图(2)单片机复位电路硬件设计原理图,如图3.3所示。图3.3复位电路原硬件原理图 (3)单片机的电源电路硬件设计原理图,如图3.4所示。图3.4 电源电路原理图3.1.3液晶显示模块设计该模块设计的液晶显示器的数据端口连接在了单片机的P0口,而控制端RS、RW、EN分别接单片机的P2.1、P1.5、P1.6。LCD12864低电平复位,电源5V直流供电。硬件电路如图3.5所示。图3.5 LCD12864
32、液晶显示原理图3.1.4温度采集模块的硬件设计温度的测量是采用数字温度传感器DS18B20,外围电路如图所示。当DS18B20正在执行温度转换或从高速暂存器EPPROM传送数据时,工作电流可达1.5mA,这个电流可能会引起连接单总线的弱上拉电阻的不可接受的压降,这需要更大的电流,而此时CPP(寄生电源储能电容)无法提供,为了保证DS18B20有充足的供电,当进行温度转换或拷贝数据到EEPROM操作时,必须给单总线一个上拉电阻,一般为4.7K的上拉电阻,根据距离远近可以适当调节阻值,距离近时减小阻值,但不能低于2.1K,否则DS18B20将无法复位。其数据线DQ端接单片机P1.0口。硬件电路如图
33、3.6所示。在外部电源供电方式下, DS18B20工作电源由VDD引脚接人, 不存在电源电流不足的问题, 可以保证转换精度, 同时在总线上理论可以挂接任意多个DS18B20传感器, 组成多点测温系统。注意在外部供电的方式下, DS18B20的GND引脚不能悬空, 否则不能转换温度, 读取的温度总是85。图3.6 DS18B20接线3.2软件实现过程3.2.1 主程序设计主程序要满足不断地采集温度信息,实时显示温度数值,描绘温度实时曲线,等要求,其函数代码如下:3.2.2 核心代码(1)main() 函数代码:void main()unch X,Y;uint temp;uint temp1;ui
34、nt temp2;X=12; /横坐标从第12格开始画Y=56;/纵坐标初始温度为坐标原点,在第56格上lcd_initial();/12864液晶初始化函数initial_ds();/ds18b20初始化clear_DDRAM();clear_GDRAM();/清楚GDRAM,以免绘图显示打开后出现花屏draw_picture_128_64(0 x80,0 x80,table_picture); /画坐标函数while(1)temp_change();delay700ms();temp=get_temp();temp1=temp/100;temp2=temp/10-temp1*10;Y=56
35、-temp1%22*10-temp2;if(Y = 55)Y = 1;lcd_set_dot(X,Y);X+;if(X=128)X=12;Y=56;clear_GDRAM();draw_picture_128_64(0 x80,0 x80,table_picture);(2)lcd_set_dot() 打点函数代码:void lcd_set_dot(unch x,unch y)unch x_byte;unch x_bit;unch y_byte;unch y_bit;unch TempH,TempL;x=x&0 x7f;y=y&0 x3f;x_byte=x/16;x_bit=x%16;y_by
36、te=y/32;y_bit=y%32;write_com(0 x34);write_com(0 x80+y_bit);write_com(0 x80+x_byte+8*y_byte);read_data(); TempH=read_data();TempL=read_data();write_com(0 x80+y_bit);write_com(0 x80+x_byte+8*y_byte);if(x_bit8)write_data(TempH|(0 x01(7-x_bit);write_data(TempL);elsewrite_data(TempH);write_data(TempL|(0
37、x01(15-x_bit);write_com(0 x36);write_com(0 x30);(3)draw_picture_128_64() 载入温度坐标系函数代码:void draw_picture_128_64(unch y_address,unch x_address,unch *point)unch j,i;uint k;k=0; write_com(0 x34);for(j=0;j32;j+) write_com(y_address+);/先写垂直地址write_com(x_address);/再写水平地址for(i=0;i8;i+)write_data(pointk+);/写入
38、数据write_data(pointk+);y_address=0 x80; x_address=0 x88;for(j=0;j32;j+)write_com(y_address+);/先写垂直地址write_com(x_address);/再写水平地址for(i=0;i8;i+)write_data(pointk+);/写入数据write_data(pointk+);write_com(0 x36);/打开显示(4)temp_change() 温度转换函数代码:void temp_change()initial_ds();delay500us();temp_write_byte(0 xcc)
39、;temp_write_byte(0 x44); uint get_temp()unch h_byte,l_byte;float f_temp;initial_ds();/先进行ds18b20初始化delay500us();temp_write_byte(0 xcc);temp_write_byte(0 xbe);l_byte=temp_read_byte();h_byte=temp_read_byte();temp=h_byte;temp=8;temp=temp|l_byte;f_temp=temp*0.0625;temp=f_temp*100+0.5;return temp;3.3调试过程
40、在做嵌入式项目中系统的硬件调试和软件调试是必不可少的步骤。本项目硬件有5个模块组成,具体调试步骤由以下几个部分组成。3.3.1硬件调试 (1)检查电路在电子电路组装好,在通电调试之前,都必须通过硬件逻辑设计图来认真的检查各个模块之间的连线是不是有错误,按照一定的顺序逐一的对应检查。核对元器件的型号,特别要注意查看电源是否接错,电路的连接是否有短路和断路,二极管方向和电解电容的极性是否结反,并且还要查看元器件是否焊接牢固,都是必不可少的步骤。 (2)通电观察 做好上述步骤之后,可通电观察。通上电之后,观察是否有异常现象,如冒烟,元器件发烫,有异味等。如果有上述现象,应立刻关闭电源,查出问题并解决
41、后可重新打开电源,继续观察。如果没有问题后,在检测下有电源引脚的器件的电压是否正常,没有问题说明电路已经正常工作。 (3)综合检查以上模块问题解决以后,将程序下载到模块中。观察结果并做好记录,整改,直到达到预期的目标。3.3.2 软件调试第一步将硬件调试完毕后,进行软件调试。程序编写好了之后,下载到相应模块当中进行进一步调试,通过观察模块上的LED灯的显示,来查看发送模块是否成功发送了数据和接受模块是否成功接受了数据,对于调试过程中的问题进行好记录,并且认真整改。大连东软信息学院毕业设计(论文)第4章项目成果4.1系统总框图本系统以AT89S52单片机为基础,通过DS18B20温度传感器采集室
42、内环境温度,采集到的数值以温度曲线的形式显示在LCD12864液晶屏上,系统的总框图如图4.1所示。图 4.1 系统总框图4.2系统原理图本系统主要构成模块为AT89S52,LCD12864液晶显示,DS18B20温度传感器。结合系统设计,系统的原理图如图4.2所示。图 4.2 系统原理图4.3系统测试将编译好的HEX文件,通过STC-SIP烧写软件烧写到单片机里,按照代码管脚将温度传感器连接好,红接VCC,黑接GND,黄接P3.3。打开单片机开发板开关,LCD12864液晶屏就会根据DS18B20所读取到的环境温度,来显示实时的温度曲线,测试实物图如图4.3所示。图 4.3 测试实物图第5章
43、结 论本系统已经基本实现需求中的几项要求,软硬件皆已完成,并达到相应目标,可应用于仓库实际温度的测量与实现,但是限于开发水平,系统中还有许多不足之处,有待在实际应用中做出相应的改善和提高。此外,本系统目前只能针对日常生活中的普通需要而进行操作,还不能应用于专业领域中进行高端精度的操作使用。总体来讲,本项目达到目标,系统已完成,随着日后技术支持和环境支持,能够继续改进与升级,从而适用于更多方面。在本系统的设计中,仍然存在一些问题有待进一步改进完善:1.对环境温度的测量只是用了一个DS18B20温度传感器,仓库室内某点温度不可能代替整个室内的温度,故要实现该设计的实用性,应该在单总线上挂上多个温度传感器分布在室内的关键角落。2.该设计是可以显示温度的实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026卫生岗面试题目及答案
- 2026文员面试题及答案
- 2026西藏考编面试题及答案
- 2026香料专业面试题及答案
- 2026心理培训面试题目及答案
- 敬老院老人药物中毒应急演练脚本
- 地面耐磨处理验收记录
- 常年供货商合作协议书三篇
- 市工商所自查自纠报告
- 2026年光伏接线盒生产工艺
- 2026年广东省中考化学试卷(含答案及解析)
- 2026年全国保密教育线上培训考试题库(含标准答案)
- 2026广西来宾市机关事务管理中心招聘事业单位后勤服务控制数人员1人笔试备考题库及答案详解
- 危险化学品安全周知卡
- 专业护理技术操作标准规范
- 《陆上风电场工程概算定额》NBT 31010-2019
- GB/T 3536-2008石油产品闪点和燃点的测定克利夫兰开口杯法
- GB/T 14436-1993工业产品保证文件总则
- 废水处理工考试题库
- 建行批量代发工资模板
- 黑龙江省第三次国土调查实施方案
评论
0/150
提交评论