基于单片机的温度控制器设计.doc

上传人:风**** 文档编号:980624 上传时间:2024-03-19 格式:DOC 页数:66 大小:371KB
下载 相关 举报
基于单片机的温度控制器设计.doc_第1页
第1页 / 共66页
基于单片机的温度控制器设计.doc_第2页
第2页 / 共66页
基于单片机的温度控制器设计.doc_第3页
第3页 / 共66页
基于单片机的温度控制器设计.doc_第4页
第4页 / 共66页
基于单片机的温度控制器设计.doc_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、基于单片机的温度控制器的设计摘 要温度是工业控制中主要的被控参数之一,在日常生活中也经常要用到温度的检测及控制。本文介绍了一种以AT89C51单片机为核心控制器,以DS18B20为温度传感器的温度控制器。首先,通过对元器件的选择,设计控制器的硬件电路,包括测温电路、按键电路、温度控制继电器电路、LCD液晶显示电路,AT89C51单片机最小系统等;然后,设计相关应用程序,包括主程序,读出温度子程序、温度控制继电器程序、LCD显示程序、按键处理程序等;最后,通过仿真,对整个系统进行调试、分析。最终实现温度采集、显示、控制等功能。仿真结果表明,所设计的控制器能够完成所需功能,并且具有测量精准高、实时

2、性好、使用方便等特点。关键词:温度控制;AT89C52;温度显示;DS18B20ABSTRACTThe temperature is one of the control parameters in the main industrial control,temperature detection and control are often used to in daily life.This paper introduces a kind of the temperature controller,AT89C51 is the controller,temperature sensor is

3、 DS18B20.At first,through the choice of components,hardware circuit design,including temperature measurement circuit,key circuit,temperature control relay circuit,LCD liquid crystal display circuit,AT89C51 single-chip microcomputer minimum systems;Then,design related applications,including the main

4、program,read the temperature procedure,temperature control relay program,LCD display procedures,key procedures;Finally,through the simulation to the whole system commissioning,analysis,can realize temperature gathering,display,control,and other functions.The simulation results show that the designed

5、 controller can complete the function,and it has high precision measurement,good real-time,convenient use,etc.Key word: Temperature control;AT89C52;Temperature display;DS18B2061基于单片机的温度控制器的设计目录摘 要IABSTRACTII第1章 引 言11.1 研究的背景及意义11.2 国内外研究现状11.3 研究的设想2第2章 温度控制器总体设计32.1 温度控制器的选择32.1.1 基于51单片机的温度控制器32.1

6、.2 基于ARM的温度控制器32.1.3 基于PLC的工业温度控制器42.2 本设计的重难点52.3 本章小结5第3章 温度控制器的硬件电路设计63.1 温度传感器的选择63.1.1 数字温度传感器63.1.2 热电阻温度传感器73.1.3 方案选择73.2 温度采集模块电路的设计73.2.1 DS18B20介绍73.2.2 温度传感器工作原理83.2.3 DS18B20工作原理介绍103.2.4 DS18B20使用中的注意事项113.2.5 DS18B20和AT89C51单片机连接电路123.3 显示模块设计123.3.1 LCD液晶显示器简介123.3.2 液晶模块简介133.3.3 液晶

7、显示部分与STC89C51单片机的接口153.4 按键电路的设计163.4.1 单片机检测按键的原理163.4.2 矩阵键盘的设计173.5 本章小结18第4章 系统软件设计194.1 主程序的设计194.2 DS18B20初始化程序204.3 LCD初始化程序的设计224.4 继电器控制的程序234.6 本章小结29第5章 仿真结果及分析305.1 系统仿真305.2 仿真分析315.3 本章小结31第6章 结束语326.1 研究总结326.2 本次设计的不足326.3 发展前景及展望326.4 设计小结33致 谢34参考文献35附 录36附录1 程序清单36附录2 电路原理图63基于单片机

8、的温度控制器的设计第1章 引 言1.1 研究的背景及意义温度控制器在生产和生活的领域已经得到了广泛的使用,如家电、汽车、以及各种工业生产过程等,控制电路也由于应用场合所要求的性能指标的不同而不同,在工业生产中,控制技术人员一直都在努力解决许多问题,如何提高温度控制对象的控制性能,以及怎样提高控制精度的问题。随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发及应用在很大程度上提高了工业生产及生活中对温度的控制水平1。1.2 国内外研究现状由于微机测量和控制技术的迅速发展和广泛应用,以单片机为核心的温度采集与控制器的设计与应用大大提高了生活和工业生产过程中对温度的

9、控制水平。国外研究对温度控制技术早在20世纪70年代的时候就已经开始了,比较早。最开始采用的组合仪表装置是模拟式的,能够实时采集和指示、记录以及控制现场的信息。80年代的末期开始出现的的温度控制系统是分布式的。当今正在开发和研制计算机数据采集的控制系统是多因子综合温度控制系统。这些年来,世界各国的温度测控技术发展的步伐加快,很多国家在实现自动化的基础上正向着完全自动化、无人化的方向大力发展温度控制系统。美国、日本的温度监测系统近20年来发展很快,他们结合本国条件做出了具有创新特色的成就,但其监控设备价格昂贵。我国的温度测控系统的技术研究比较晚,开始于20世纪的80年代。我国的工程技术人员在不断

10、地吸收发达国家的温度测控技术的基础之上,逐步掌握了温度室内微机控制系统的技术,但是该技术仅仅限于对温度的单项的环境因子进行控制。我国的温度测控设施计算机的应用发展,在从消化吸收、到简单应用阶段再到实用化、综合性应用阶段进行过渡和不断地发展。在技术上,则是以单片机控制的单参数和单回路的居多,目前还没有真正意义上的多参数温度综合控制系统,与发达国家比,还存在很大差距。 我国近年引进了多达16个国家和地区的工厂环境控制系统,对吸收国外先进经验、推动工厂温度自动检测产生了积极的作用。我国目前的温度测量控制系统离到工厂化还有很长的路要走,生产和实际中仍有许多的问题等着我们解决,如存在着装备配套的能力落后

11、,产业化的程度低下,环境控制的水平滞后,软硬件的资源还不能共享和可靠性差等缺点。随着社会的不断发展,温度的测量以及控制变得越来越重要。本文拟采用STC89C52单片机设计了一种对温度进行实时测量及控制的系统。单片机STC89C52 能够根据温度传感器DS18B20 所采集的温度在液晶显示屏上实时显示,可以手动设置温度范围,通过继电器控制加热,从而把温度控制在设定的范围之内。所有温度数据均通过液晶显示器LCD显示出来。1.3 研究的设想本文拟设计一种基于微处理器的温度实时采集控制系统。温度控制器除需具有温度采集功能外,还要能实时显示温度数据,可以手动设置温度范围,通过继电器控制加热从而把温度控制

12、在设定的范围之内等功能。通过对微处理器的选型、温度传感器的选择、显示器的选择以及设计外围电路完成硬件电路的设计。同时,还需要进行软件的设计完成所需功能。系统通过矩阵键盘来设定要控制的温度大小,单片机STC89C52 能够根据温度传感器DS18B20 所采集的温度信号控制温度升降继电器,从而使温度稳定在设定的大小。所有温度数据均通过液晶显示器LCD显示出来。第2章 温度控制器总体设计2.1 温度控制器的选择2.1.1 基于51单片机的温度控制器图2-1是基于51单片机的温度控制器框图。该控制器由温度采集模块、控制模块、显示模块、报警模块以及电源模块等组成。基于单片机的温度控制器框图如图2-1所示

13、。图2-1 基于单片机温度控制器框图15单片机是控制器的控制核心,因此单片机的选择,对所设计系统的实现以及功能的扩展有着很大的影响。单片机种类很多,在众多51系列单片机中,较为常用的是ATMEL 公司的AT89C51和AT89S52单片机,AT89C51片内4KROM是Flash工艺的,使用专用的编程器自己就可以随时对单片机进行电擦除和改写,片内有128字节的RAM。而AT89S52含有在系统可编程的Flash存储器,片内有8K闪存,RAM的容量也较AT89C51大,为256字节。显然这种单片机优点更多,开发时间也大为缩短2。2.1.2 基于ARM的温度控制器图2-2是基于ARM处理器的温度控

14、制器框图。此控制器主要是针对工业控制领域现场的仪器仪表而开发的。该框图包括了监控复位、ARM微处理器、电源、存储器扩展(RAM、Flash和EEPROM)、网络通信、DA转换输出、人机交换接口(LED)、温度检测电路、AD转换、RS232通信和CPLD控制电路(外围设备的译码、配置,实现系统的硬件软件化)等一些模块。基于ARM温度控制器框图如图2-2所示。图2-2 基于ARM温度控制器框图温度传感器用来测量外部温度信息,通过CPLD控制,ARM微处理器中处理AD转换后的数字信号,显示处理信息通过LCD显示,由网络接121远程监控。当然,现场也可以通过键盘实时人工进行干预。通过RS232串口传送

15、由ARM微处理器处理的数据到上位机再进行显示存储。若是工作过程中出现了一些错误,立即产生声光报警。而且,键盘还可以在现场进行干预设置,处理故障等等。这里的ARM单片机选用的是ATMEL公司的32位AT91M40800。AT91M40800不但有ARM7TDMI内核,而且它的内部还集成了有许多外围的一些设备,很多的内部寄存器就可以快速完成中断的处理。因为AT91M40800微处理器能够通过编程的EBI和片外存储器达到相连,使它具有很快的访问速度;而且它还具有8个优先级的向量中断控制器和外部数据的控制器相连接,从而可以提高中断响应的速度。所以,AT91M40800微处理器十分的适用于工业实时的控制

16、领域,也是嵌入式工业温度控制器中处理器的最佳选择。2.1.3 基于PLC的工业温度控制器PLC与其他微型计算机相比,更适于在恶劣的工业环境中运行,且数据处理功能大大增强, 具有强大的功能指令,编程也极为方便简单编程指令具有模块化功能,能够解决就地编程、监控、通讯等问题。PLC 的梯形图语言清晰、直观、可读性强, 易于掌握.PLC具有丰富的功能指令,能实现加减乘除四则运算及数据传送比较移位等功能,还具有实时时钟指令,可方便的实现定时及时间和年月日的设置与显示。PLC的主要优点可概括如下:1、高可靠性 ; 2、丰富的I/O接口模块;3、采用模块化结构; 4、编程简单易学;5、安装简单,维修方便。2

17、.1.4方案选择上述三种方案各有其优点,且均适合在工业场合使用,但是基于ARM处理器的控制器设计方案,设计相对复杂,设计难度较大,开发周期较长;而基于PLC的温度控制器,设计成本高,灵活性较低,因此,本课题拟采用51单片机作为控制器的主控芯片,基于51单片机的温度控制器具有开发周期短,成本低,功耗低,设计简单等优点。2.2 本设计的重难点由于之前对51单片机的学习只限于理论,还没有真正利操作过51单片机的硬件和软件的实际开发,所以对51单片机进行编程和系统设计对我来说将会是一个很大的挑战。而数字温度传感器DS18B20的使用虽然使硬件电路大为简化,但是它的工作原理和各种时序非常复杂,要想使它正

18、常工作,得到单片机要用到的温度采集信号,就必须对它的工作原理和各种时序非常熟悉,这些都是本次设计的重点和难点。2.3 本章小结本章介绍了数字温度控制器的设计思路,设计方案的选择,以及系统的组成和设计原理,介绍了主板电路和显示电路的原理,还介绍了数字温度传感器DS18B20的特点,以及LCD的使用。并通过框图形式可以更直观、形象地描述了系统的整体组成结构。第3章 温度控制器的硬件电路设计3.1 温度传感器的选择温度是表征物体冷热程度的物理量,它可以通过物体随温度变化的某些特性(如电阻、电压变化等特性)来间接测量,利用这种物理特性制成的传感器称为温度传感器。常用的温度传感器有热电偶、热敏电阻、热电

19、阻、集成温度传感器及数字式温度传感器等多种温度传感器。3.1.1 数字温度传感器典型的数字温度传感器如DS18B20,该传感器主要特性如下:1、数据线供电是寄生电源方式下的供电方式,电压适应的范围更宽,电压范围:3.05.5V;2、 DS18B20在和微处理器的连接仅仅需一条总线即就可以实现DS18B20和微处理器双向的通信,它的单线接口方式十分特殊;3、 DS18B20可以支持多个点的组网功能,多个DS18B20可并联的在唯一的总线上,能够实现组网的多点测温;4、 转换的电路及全部传感器元件就像一只三极管集成在的集成电路内,DS18B20在使用的时候不需要任何的外围元件;5、在-10+85时

20、精度为0.5,测温范围55+125;6、可分辨温度依次为0.5、0.25、0.125和0.0625,相对应的可以编程的分辨率是912位,可实现高精度测温;7、12位分辨率时最多在750毫秒内把温度值转换为数字,在9位分辨率时最多在 93.75毫秒内把温度转换为数字,速度更快;8、直接输出数字温度信号的测量结果,可传送CRC校验码,同时以单总线串行方式传送给CPU,有极强抗干扰和纠错能力;9、负压特性:接反电源的极性时,芯片不会因发热而烧毁,但不能正常工作。3.1.2 热电阻温度传感器热电阻的测量精度高,性能稳定,使用方便,测量范围宽,在高精度、低温测量中占有重要的地位。热电阻传感器主要用于中低

21、温度(-200+650或850)范围的温度测量。常用的工业标准化热电阻有铂热电阻和铜热电阻。铂电阻传感器是利用金属铂(Pt)的电阻值随温度变化而变化的物理特性而制成的温度传感器。以铂电阻作为测温元件进行温度测量的关键是要能准确地测量出铂电阻传感器的电阻值。铂电阻具有适用范围广、测量范围大、稳定性高、重复性好、价格低廉、使用方便等优点,成为目前工业和实验室中温度测量应用最广泛普遍的传感元件之一,工业中应用较多的热电阻传感器如Pt100。3.1.3 方案选择对比上述两种方案,虽然Pt100的测量温度范围比较大,但是由于其测温原理是电阻值随着温度的改变而改变,需要设计非常优良的温度采集电路,其中应包

22、括测温部分,线性化部分,放大部分,A/D转换部分,这就会使外围的电路更加复杂。DS18B20是数字式温度传感器,只需一根总线就可以与单片机通信,是外围的电路大大简化,测量的精度更准确。因此本控制器的设计中,温度传感器拟选择DS18B20作为温度采集传感器。3.2 温度采集模块电路的设计3.2.1 DS18B20介绍DS18B20引脚图如图3-1所示。图3-1 DS18B20引脚图DALLAS 最新的单线数字温度传感器DS18B20是一种新型“一线器件”,它的体积更小、更适用于多种场合、而且适用电压更宽、也更经济。DALLAS 半导体公司开发的数字化温度传感器DS18B20也是世界上第一片支持“

23、一线总线”接口的数字温度传感器。温度的测量范围为-55+125 摄氏度,能编程为9位12 位转换精度,0.0625摄氏度的测温分辨率,分辨率的设定参数及用户设定的报警温度会存储在EEPROM 中,掉电后依然能保存。用符号扩展的16位数字量方式串行的输出被测温度;采用寄生电源方式产生,其工作的电源既可以远端引入;3 根或2根线上可并联多个DS18B20,CPU只需要一根端口线就能与诸多的DS18B20 通信,较少占用微处理器的端口,可以节省逻辑电路和大量的引线,因而用它来组成的测温系统,具有线路简单,在一根通信线,可挂多个这样的数字温度计,非常的方便。3.2.2 温度传感器工作原理DS18B20

24、的读写时序及测温原理与DS1820是相同的,得到的温度值的位数却会因为分辨率的不同而不同,而且进行温度转换时的延时时间从2s 减为750ms。 DS18B20的测温原理:低温度系数的晶振,它是用以产生固定频率的脉冲信号给计数器1,它的振荡频率受到温度的影响非常的小。高温度系数的晶振,则它的振荡率会随着温度的变化而明显的改变,产生的信号就作为计数器2的脉冲输入。温度寄存器以及计数器1被预先设置在55所对应的一个基数值。对从低温度系数晶振产生的脉冲,将会通过计数器1来进行减法的计数,当计数器1预置的值减到了0的时候,计数器1的预置值将重新装入,这时候温度寄存器的值就加1。计数器1也就重新开始进行计

25、数,如此循环,停止温度寄存器值的累加时计数器2的计数值到0,所测温度就为此时温度寄存器中的数值。DS18B20功能特点:1.采用了总线技术,与单片机的通信只需要一根I/O线,在一根线上可以挂接多个的DS18B20。2.每只DS18B20它是根据序列号来访问相应的器件,具有一个独有的,不可更改的64位的序列号,。3.低压供电,电源范围为3-5V,可本地供电,也能直接通过数据线提供电源(即寄生电源2方式)。4.在-10C至+85C范围内的可以达到精度为0.5摄氏度,测温的范围为55+125摄氏度。5.温度超过了的预定值的器件可以用报警搜索命令识别以及寻址。6.用户可以自己设定报警上下限温度。7.它

26、转换12位的温度的最大时间为750毫秒,可编辑的数据位9-12位。8.DS18B20的分辨率由用户通过EEPROM设置为9-12位。9.DS18B20可以将检测到的温度值直接转化为数字量,并且通过串行通信方式10.与主控制器进行数据的通信。DS18B20有4个主要数据部件:1. 光刻ROM中的64位序列号在出厂之前就已经被光刻好了,它可看作该DS18B20的地址的序列码。64位光刻ROM的排列为:开始的8位 (28H)是产品类型的标号,接着48位是该DS18B20的自身序列号,最后的8位是前面的56位循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是让每一个DS18B20都不相

27、同,这样的话就能够一根总线上可挂接多个的DS18B20。2. DS18B20温度传感器能实现对温度的测量,以12位的转化为例:用16位的符号扩展二进制补码读数的形式提供,以0.0625/LSB的形式表达,其中S是符号位。3. DS18B20温度传感器它的内部存储器包括一个高速暂存RAM以及一个非易失性的、可电擦除的EEPRAM,后者存放高温度和低温度的触发器 TH、TL以及结构寄存器。4. 配置寄存器。DS18B20内部结构及功能:DS18B20内部的结构如图3-7所示。主要包括以下部分:电源,温度传感器,64位的ROM单总线接口,用于存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限

28、的TH和TL触发器,控制逻辑,8为循环冗余校验码(CRC)发生器等7部分。DS18B20内部结构如图3-2所示。图3-2 DS18B20内部结构3.2.3 DS18B20工作原理介绍温度的读取:DS18B20出厂时配置为12位,读取温度时共读取16位,所以要把后11位的2进制转化为10进制后再乘以0.0625就是所测的温度,还需判断正负。前5个的数字为符号位,若前5位为1时,读取的温度就为负数;若前5位为0时,读取的温度就为正数。DS18B20写操作:1.数据线首先置低电平“0”。2.延时的时间为15ms。3.再按从低位到高位的顺序发送字节(一次只能发送一位)。4.延时的时间为45ms。5.把

29、数据线拉到高电平。6.重复上(1)到(6)的操作,一直到所有的字节全部都发送完为止。7.最后把数据线拉高。DS18B20读操作:1.把数据线拉高“1”。2.延时2ms。3.数据线拉低“0”。4.延时15ms。5.将据线拉高“1”。6.延时15ms。7.读数据线的状态得到了1个状态位,并且进行数据处理。8.延时30ms。3.2.4 DS18B20使用中的注意事项DS18B20 虽具有连接方便、测温系统简单、占用口线少、测温的精度高等优点,然而在实际的应用中也应该注意以下几方面问题:1.DS18B20 从测温结束直到把温度值转换成为了数字量,需要一些转换时间,这必须保证,不然会出现转换错误现象,从

30、而使温度输出总是显示为85度。2.在实际的使用中,应该使电源电压保持在5V 左右的大小,若是电源的电压过低了,就会降低所测得的温度精度。3.较小的硬件开销就需要比较复杂的软件来进行补偿,因为DS1820和微处理器间数据是串行传送的,所以,对DS1820进行读写编程,就必须严格保证读写时序,否则就不能读取测得的温度值。4.DS18B20的有关资料由于未提及单总线上所挂DS18B20 数量,就使人误认为能够挂任意多个的DS18B20,但在实际的应用中并不是这样的,如果在单总线上所挂载的DS18B20超过了8个,就要解决微处理器的总线驱动问题,在进行多点测温系统设计时必须注意这一点。5.在DS18B

31、20测温程序的设计中,向DS18B20 发出了温度转换命令后,程序总是要等待DS18B20的返回信号,若某个DS18B20 接触不好或这断线,当程序读该DS18B20 时,将会没有返回的信号,程序就进入了死循环,这一点在进行DS18B20硬件连接和软件设计的时候也要给予重视34。3.2.5 DS18B20和AT89C51单片机连接电路DS18B20可以有两种供电的方式,一种用的是电源供电的方式,此时DS18B20的1脚接地,3脚接电源,2脚是信号线。另一种是寄生电源供电的一种方式,如图3-3 所示单片机端口接的是单总线,为了在DS18B20有效的时钟周期之内提供的电流足够,对总线的上拉可用一个

32、MOSFET管来完成。当DS18B20处于温度A/D转换操作和写存储器操作时,必须有强的上拉在总线上,上拉的最大开启时间为10微秒。采用寄生电源供电的供电方式时VDD端接地,单线制由于只有一根线,因此发送接口必须是三态的5。DS18B20与单片机的接口电路如图3-3所示。图3-3 DS18B20与单片机的接口电路3.3 显示模块设计3.3.1 LCD液晶显示器简介显示器是人和机器交流信息的重要界面,早期的是以显像管(CRT/Cathode Ray Tube)显示器为主,但是随着技术的不断发展,各种各样的显示技术不断诞生,而液晶(LCD)显示器由于具有耗电量较低、短小轻薄、无辐射的危险,平面直角

33、显示,和稳定不闪烁的影像等优势,更是在近年来不断下跌的价格吸引下,逐渐取代了主流的CRT之地位。液晶是一种既有液体的流动性还具光学特性的有机化合物,它的透明程度和呈现颜色受外加电场影响,利用这个特点就可以做成字符显示器。液晶显示器(LCD)英文为Liquid Crystal Display,它是一种采用液晶控制透光度的技术来实现色彩的显示器。和CRT显示器比,LCD的优点是十分明显的。因为通过控制是否透光从而控制亮和暗,当色彩不变化时,液晶也就保持不变,这样就不用考虑刷新率的问题。显示接口用来显示系统的状态,命令和采集的电压数据。本系统的显示部分用的是LCD液晶模块,采用的是一个161字符型液

34、晶的显示模块。 点阵图形式的液晶显示器是由 M 行N 列个显示单元组成的,若LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,则每行有 16 字节,共有 168=128个点所组成,屏上 6416 个显示单元和显示 RAM 区 1024 个的字节是相对应的,屏上相应位置的亮暗和每一个字节的内容是对应的。一个字符是由 68 或者 88一个点阵所组成的,所以要找到和屏上某几个位置相对应显示 RAM区的 8 个字节,而且应该使每一个字节不的同位为1状态,其它的则为0,为1的点亮,为0的点为暗,这样就组成了某一个字符。但是对内部自带字符发生器的控制器来说,字符显示就会比较简

35、单了,可以使控制器在文本方式下工作,根据在每行的列数找出显示RAM对应的地址和LCD开始显示的行列号,设立光标,在此送入该字符的对应代码就可以了。3.3.2 液晶模块简介LM016L结构及功能:LM016L液晶模块采用了HD44780的控制器,hd44780是具有简单而功能较强的指令集,能实现字符移动,闪烁等一些功能,LM016L与单片机MCU通讯可以采用8位或者4位并行传输的两种方式,hd44780控制器是由两个8位的寄存器,地址计数器RAM(AC),和字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),显示数RAM(DDRAM),及指令寄存器(IR)以及数据寄存器(DR)忙标

36、志(BF)。寄存指令码用IR,只可以写入不可以读出,DR用以寄存数据,数据是暂存从DDRAM和CGRAM读出,或内部操作自动的写入DDRAM和CGRAM的数据,当BF为1时,液晶模块就会处于内部模式,不响应接受数据和外部操作指令,DDTAM用以存储显示字符,能够存储总共80个字符码,CGROM是由5*10点阵字符32种和8位字符码生成的5*7点阵字符160种.CGRAM是专门给用户编写特殊字符而留的,容量只有64个字节,可以自定义4个5*10点阵字符或8个5*7点阵字符,AC可存储CGRAM和DDRAM的地址,若是地址码随指令写入了IR的话,那么IR就自动把地址码装入AC,与此同时,选择DDR

37、AM或者CGRAM5。LM016L液晶模块的引脚图如图3-4所示。图3-4 1601引脚图LM016L引脚介绍:Vss(1脚):一般的会接地。Vdd(2脚):一般接电源。Vee(3脚):液晶显示器的对比度调整端,接电源时它的对比度是最弱的,接地时它的对比度却是最高的(如果对比度过高则会产生“鬼影”,使用时可通过一个10K电位器用来调整对比度)。RS(4脚):RS是选择寄存器的引脚,低电平0时选择的是指令寄存器、高电平1时就会选择数据寄存器。R/W(5脚):R/W是读写的信号线,低电平(0)时则进行的是写操作,高电平(1)时进行的是读操作。E(6脚):E(或EN)端是使能(enable)端,也即

38、下降沿使能。DB0(7脚):底4位的三态、 双向数据总线的 0位(最低位)。DB1(8脚):底4位的三态、 双向数据总线 的1位。DB2(9脚):底4位的三态、 双向数据总线的 2位。DB3(10脚):底4位的三态、 双向数据总线的 3位。DB4(11脚):高4位的三态、 双向数据总线 的4位。DB5(12脚):高4位的三态、 双向数据总线的 5位。DB6(13脚):高4位的三态、 双向数据总线的 6位。DB7(14脚):高4位的三态、 双向数据总线 的7位(最高位)(也是busy flag)6。寄存器选择控制如表3-1。表3-1寄存器选择控制RSR/W操作说明00写入指令寄存器(清除屏等)0

39、1读busy flag(DB7),及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器中读取数据3.3.3 液晶显示部分与STC89C51单片机的接口 如图3-5所示。用89C51的P0口作数据线,用P1.2、P1.1、P1.0分别作LCD的E、R/W、RS。其中,E是下降沿触发片选信号,R/W是读写信号,RS是寄存器选择信号,本模块有如下设计要点:显示模块的初始化:首先要清屏,然后再设置8位接口数据位,显示的行数为1行,字型的为57点阵,然后再设置成整体显示,取消光标以及字体的闪烁,最后再设置成正向增量的方式且为不移位。送字符给LCD显示缓冲区,程序采用的是一

40、个显示的字符,2个字符数组,另一则显示电压数据,相应数组中被送入要显示的字符或者数据,完成之后再统一的显示.LCD显示的缓冲区送人一个要显示的字符或者数据,通过软件延时2.5毫秒后,再作个数是否够显示的判断,若不足够则地址加一,取下一个要显示的字符或者数据67。液晶与80C51单片机连接电路如图3-5所示。图3-5 液晶与89C51单片机的连接电路3.4 按键电路的设计3.4.1 单片机检测按键的原理单片机的I/O口即可以作为输出也可以作为输入使用,当该检测按键使用的是它的输入功能,我们把按键的其中一端接地,另一段与单片机的I/O口相连,开始时先给I/O口赋一个高电平,然后让单片机一直不断循环

41、检测该I/O口是已经否变为了低电平,若是按键闭合,就相当于此I/O口通过按键接地了,变成低电平,程序如果检测到I/O口变为了低电平就说明该按键已被按下,然后就执行相应的指令和程序8。3.4.2 矩阵键盘的设计键盘接口电路是单片机系统设计非常重要的一环,作为人机交互界面里最常用的输入设备。我们可以通过键盘输入数据或命令来实现简单的人机通信。通过4X4的矩阵键盘来可以对温度方便的进行设定,并通过液晶显示器实时显示温度设置的情况。44 的矩阵式键盘由4 根列线和4 根行线交叉构成,行列的交叉点上就是按键,这样就有16个按键。其中交叉点的行线和列线不连接,当按键按下,位于交叉点处的列线和行线导通。行线

42、由上拉电阻连接VCC。若是无按键按下,行线为高电平;若是有键按下,行、列线在交点导通,此时,行线电平状态是与此行线相连列线的电平状态关联。这是判断按键是否按下的关键环节。但是,矩阵键盘的每一条行线均和4条列线相连接,位于交点处的按键是否按下均会影响该键所在列线和行线的电平状态,各个按键之间将会相互的影响,按键分析时必须把列线、行线的状态信号配合处理,才能确定闭合键的位置9。在本设计中,按键电路原理图如图3-6所示。图3-6 按键电路原理图3.5 本章小结本章节重点分析了数字温度控制系统的硬件电路的设计,介绍了设计中要用到的芯片,包括有单片机芯片80C51、和液晶显示芯片LM016L、数字温度传

43、感器芯片DS18B20等。介绍了80C51的结构、特点、中断、定时/计数等。还介绍了设计中所用到的芯片,以及按键电路。通过本章加深了对51单片机的了解,熟悉了数字温度传感器DS18B20芯片。第4章 系统软件设计4.1 主程序的设计整个设计系统功能由软件配合硬件电路来实现,若硬件已经定型,软件的功能也就基本上确定了。从软件的不同功能可为两大类:一类是主程序(监控软件),是整个控制系统的核心,专门用于协调操作者和各执行模块的关系。二类是子程序(执行软件),它用来实现各种实质性的功能,比如测量、计算、显示、通讯等。每一个小的执行软件就是一个小功能执行的模块。在这里一一的列出各执行模块,并为每一个执

44、行模块进行接口和功能的定义。规划好各个执行模块以后,就可以进行监控程序的规划了。首先应根据系统的总体功能选择一种最合适的监控程序的结构,然后再根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系10。主程序流程图如图4-1所示。图4-1 主程序流程图主程序的C语言程序如下:/* 主程序*/main() set(); /开始设置while(1) /设置好后进入死循环 lcd_init(); / 初始化LCDkey(); /键盘扫描error(); /检查是否出错readtemp(); /读取温度值lcd(); /显示子函数relay(); /控制继电器delay(500); /延时4.

45、2 DS18B20初始化程序DS18B20初始化步骤如下:1.高电平“1”状态必须先给数据线。2.然后延时(该时间的要求不严格,但尽可能短一点)。3.把数据线拉低到电平“0”状态。4.再延时750微秒(该时间的范围为480-960ms)。5.把数据线拉高到电平“1”。6.延时等待(初始化已成功,在15-60ms时间之内DS18B20返回一个低电平“0”。根据该状态来确定它是否存在,但不可无限进行等待,否则程序会进入死循环状态,故要有超时控制的操作)。7.CPU如果读到了数据线上“0”状态的低电平,还要再做延时,延时时间由发出高电平开始算起(第(5)步的时间开始算),最少需480ms。8.再次把数据线拉高到高电平“1”后就结束11。 DS18B20初始化的C语言程序如下:/* DS18B20初始化子程序*/void Init_DS18B20() unsigned char x=0; /定义字符型局域变量DS = 1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922