基于单片机的多点温度检测系统_毕业论文(35页).doc
-基于单片机的多点温度检测系统_毕业论文-第 35 页基于单片机的多点温度检测系统【摘要】温度是一个和人们息息相关的物理量,温度的变化会给我们带来重大的影响,因此对温度的检测控制非常重要,其检测控制一般使用各式各样的传感器。本设计使用的是DS18B20,它是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图该系统由上位机和下位机两大部分组成。下位机实现温度的检测并提供标准RS232通信接口,芯片使用了ATMEL公司的AT89C51单片机和DALLAS公司的DS18B20数字温度传感器。上位机部分使用了通用PC。该系统可应用于仓库测温、楼宇空调控制和生产过程监控等领域【关键字】:温度测量;单总线;数字温度传感器;单片机【Abstract】Temperature is a physical quantity and the people closely linked, the changes in temperature will bring significant influence to us, so the detection of the temperature control is very important, the general use of every kind of sensor detection and control.This design is the use of DS18B20, it is a high precision digital temperature sensor network, because of its unique advantages of single bus, users can easily set up a sensor network, and can make the multi-point temperature measurement circuit is simple, reliable and become. In this paper, combining with practical experience, introduces the hardware of digital temperature sensor DS18B20 with single chip and software programming, and gives the software flow chartThe system consists of host computer and slave computer of two parts. Lower machine to achieve the temperature detection and provide standard RS232 communication interface chip, use DS18B20 digital temperature sensor AT89C51 chip of ATMEL company and the DALLAS company. PC part using the generic PC. The system can be applied to the storage temperature, building air conditioning control and production process monitoring and other fields【 key words 】: temperature measurement, Single bus, Digital temperature sensor, singlechip目录【摘要】1一、绪论41.1 系统背景41.2 系统概述4二、方案论证52.1 传感器部分52.2 主控制部分62.3 系统方案7三、硬件设计83.1 主控制器83.2 温度传感器123.3 温度测试电路173.4 键盘与显示电路183.5 电源以及看门狗电路26四、软件设计294.1 概述294.2 程序设计29五、结语32参考文献33致谢34附录35附录一:温度测试子程序流程图33附录二 主电路电气原理图34基于单片机的多点温度检测系统第一章 绪论1.1 系统背景21世纪,科学技术的发展日新月异,科技的进步带动了测量技术的发展,现代控制设备的性能和结构发生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术也成为当今科技的一个主流,广泛地深入到研究和应用工程的各个领域。温度是一个和人们生活环境有着密切关系的物理量,也是一种在生产、科研、生活中需要测量和控制的重要物理量,是国际单位制七个基本量之一。温度的变化会给我们的生活、工作、生产等带来重大影响,因此对温度的测量至关重要。其测量控制一般使用各式各样形态的温度传感器。随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日显突出,已成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。分布式温度传感器在电力工业、煤矿、森林、火灾、高层建筑、航空、航天飞行器等有着重要的应用前景,引起研究人员的广泛关注。近年来,已经有不少分布式温度传感器的报道,包括基于光纤非线性效应的拉曼温度传感器等,但由于其昂贵的成本而无法得到广泛的应用。1.2系统概述本设计使用了美国 Dallas 半导体公司的新一代数字式温度传感器DS18B20,它具有独特的单总线接口方式 ,即允许在一条信号线上挂接数十甚至上百个数字式传感器 ,从而使测温装置与各传感器的接口变得十分简单 ,克服了模拟式传感器与微机接口时需要的A/D转换器及其它复杂外围电路的缺点。以AT89C51单片机作为控制核心,提出了一种基于DS18B20的分布式温度传感系统,多个温度传感节点通过单总线通过单总线与单片机相联形成分布式系统。单片机通过实时监控温度的变化,通过液晶显示温度的数值,当温度值超出允许范围时,报警器开始报警,从而远程实现对整个温度系统的管理和控制。第二章 方案论证温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。2.1传感器部分方案一采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二AD590是一种单片集成的两端式温度敏感电流源,它具有线性优良、性能稳定、灵敏的高、无需补偿、热容量小、抗干扰能力强、可远距离测温且使用方便的优点。首先要通过温度传感器将温度转换成电量,把它的电流信号转换成电信号,然后放大,输入到A/D转换电路,在输入到数码管显示出来。方案三进而考虑到用温度传感器,在单片机电路设计中,大多都使用传感器,所以可以采用一只温度传感器DS18B20,此传感器可以很容易直接读取被测温度值,进行转换就可以满足设计要求。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于AT89C51可以带多个DSB1820,因此可以非常容易实现多点测量.轻松的组建传感器网络。方案论证 从以上三种方案,很容易看出,方案一、方案二都需要对温度信号进行放大、转换,十分麻烦,电路复杂,且工作量大,稳定性差。方案三,电路比较简单,软件设计也比较简单,故采用方案三。采用温度芯片DSB1820测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更块。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。2.2 主控制部分方案一此方案采用PC机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。且人机交互友好。但是PC机输出信号不能直接与DS18B20通信。需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦。方案二此方案采用AT89C51八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。方案论证从以上两个方案可以看出,方案二更适合本设计,因为它而且体积小,硬件实现简单,安装方便。故本设计采用方案二2.3 系统方案综上所述,传感器部分采用温度传感器DS18B20,主控部分采用AT89C51单片机。总体结构方框图如图2.3-1所示。图2.3-1 总体结构方框图第三章 硬件设计3.1 主控制器AT89C51是一种集成了众多功能部件、功能强大的单片机,适合于要求硬件功能强大,运算速度块,工作环境恶劣,可靠性高,扩展功能强及低功耗的应用系统。并且它的市场货源充足。所以本设计选择了AT89C51单片机。AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。AT89C51的特性·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源 ·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路如图3.1-1 T89C51单片机40引脚分布图图3.1-1 T89C51单片机引脚分布图VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2 温度传感器这里我们用到温度芯片DS18B20。DS18B20是DALLAS公司的最新单线数字温度传感器,具有3引脚TO92小体积封装形式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,而且它体积更小、适用电压更宽、更经济 ,DS18B20是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。它的测量温度范围为 -55°C+125°C,在-10+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。DS18B20可以程序设定912位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。DS18B20的性能是新一代产品中最好的,性能价格比也非常出色。继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。总的来说DS18B20的主要特征即: ·全数字温度转换及输出。 ·先进的单总线数据通信。·最高12位分辨率,精度可达土0.5摄氏度。·12位分辨率时的最大工作周期为750毫秒。·可选择寄生工作方式。·检测温度范围为55°C +125°C (67°F +257°F)·内置EEPROM,限温报警功能。·64位光刻ROM,内置产品序列号,方便多机挂接。 ·多样封装形式,适应不同硬件系统DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:采用单总线的接口方式 与微处理器连接时 仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。 单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方 便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 测量温度范围宽,测量精度高 DS18B20 的测量范围为-55°C+125°C,在-10+85°C范围内,精度为±0.5°C。在使用中不需要任何外围元件。 持多点组网功能多个DS18B20 可以并联在惟一的三线上,实现多点测温。 供电方式灵活DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而 使系统结构更趋简单,可靠性更高。 测量参数可配置DS18B20的测量分辨率可通过程序设定 912 位。 负压特性 电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报 警温度的设定值DS18B20的内部结构如图3.2-1所示。图3.2-1 DS18B20内部结构图DS18B20的管脚排列如下图3.2-2图3.2-2 DS18B20的管脚排列DS18B20引脚功能: ·GND 电压地 ·DQ 单数据总线 ·VDD 电源电压 ·NC 空引脚18B20共有三种形态的存储器资源,它们分别是: ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3EEPROM,并在RAM都存在镜像,以方便用户操作。DS18B20有4个主要的数据部件: 64位激光ROM。64位激光ROM从高位到低位依次为8位CRC、48位序号和8位家族代码(28H)组成。 温度灵敏元件。 非易失性温度报警触发器TH和TL。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20在0工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图3.2-3所示。TMR1R011111MSB LSB图3.2-3 DS18B20配置寄存器结构图其中,TM:测试模式标志位,出厂时被写入0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。配置寄存器与分辨率关系如表3.2-1所示:表3.2-1 配置寄存器与分辨率关系R0R1温度计分辨率/bit最大转换时间/us00993.750110187.510113751112750高速暂存存储器高速暂存存储器由9个字节组成,其分配如图3.5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。温度低位温度高位THTL配置保留保留保留8位CRCLSB MSB图3.2-4 DS18B20 存储器映像图温度值格式图DS18B20 温度数据表:表3.2-2 DS18B20 温度数据表232221202-12-22-32-4MSBLSBSSSSS262524典型对应的温度值表: 表3.2-3 DS18B20温度值表温度/二进制表示十六进制表示+125 +25.0625+10.125+0.50-0.5-10.125-25.0625-550000 0111 1101 00000000 0001 1001 00010000 0000 1010 00100000 0000 0000 10000000 0000 0000 00001111 1111 1111 10001111 1111 0101 11101111 1110 0110 11111111 1100 1001 000007D0H0191H00A2H0008H0000HFFF8HFF5EHFE6FHFC90H3.3 温度测试电路1.硬件连接电路DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成硬件连接电路如图3.3-1所示:AT89C51DS18B201#DS18B202#DS18B203#DS18B2020#VCC=5V4.7K1WIRE图3.3-1 温度测试连接电路本系统为多点温度测试。DS18B20采用外部供电方式,理论上可以在一根数据总线上挂256个DS18B20,但时间应用中发现,如果挂接25个以上的DS18B20仍旧有可能产生功耗问题。另外单总线长度也不宜超过80M,否则也会影响到数据的传输。在这种情况下我们可以采用分组的方式,用单片机的多个I/O来驱动多路DS18B20。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。2. 对DS18B20的设计的注意事项(1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。(2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。(3)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0 的温度值。(4)实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。3.4键盘与显示电路1.键盘电路采用阵列式输入,排成4行4列,总共16个按键。16个按键的输入口为P1,当有键按下的时候,通过分别对各行各列进行扫描并查表得出键值。这样可以有效的减少对单片机 I/O口的占用,使单片机有更多的I/O口来实现其他的功能。使单片机的设计更加灵活有效。 如图3.4-1所示,16个按键排列成4行4列,4个行的引线分别同P1口的P1.4P1.7相联接,4个列的引线通过一个上拉电阻分别联接到P1.0P1.3口。如图3.4-1所示其中上拉电阻的值:R=4.7V/1.6mA=3K。在键盘操作过程中若四个按键同时按下时,则需要的上拉电阻值为12K,故此上拉电阻取值为10K。工作原理:从0列开始,顺序行扫描,即该行输出为0。每扫描一行,读入列线数据,从0开始,列检查,找该行输出为0的列,若无,则顺序扫描下一行,并检查其各列;若找到某列线为0,则该列与检查行交叉的按键为被按下的键。从0行0列开始,顺序将按键编号,就可以按扫描的值得到按键的值。本电路中从P1.3P1.0顺序输出0,再检查P1.7P1.4。此键盘的实现要用软件的方法识键和译键。2显示电路(1)LCD与单片机的接口电路LCD与单片机的接口电路如图3.4-2所示: 图3.4-1键盘电路图3.4-2 LCD与单片机的接口电路(2) 引脚分布及功能12864液晶显示屏共有20个引脚,其引脚名称及引脚编号的对应关系如图3.4-3所示:图3.4-3 12864液晶显示模块引脚分布图引脚功能如表3.4-1所示:表3.4-1 12864液晶显示模块引脚功能引脚符 号引 脚 功 能引脚符 号引 脚 功 能1VSS电源地15CS1CS1=1:芯片选择左边64*64点2VDD电源+5V16CS2CS2=1:芯片选择右边64*64点3VO液晶显示驱动电源0-5V17/RST复位(低电平有效)4RSH:数据输入;L:指令码输入18VEELCD驱动负电源5R/WH:数据读取;L:数据写入19A背光电源(+)6E使能信号。由H到L完成使能20K背光电源(-)7-14DB0-DB7数据线有些型号的模块19、20脚为空脚(3) 图形液晶显示原理12864液晶屏横向一共有128个点,纵向有64个点,全屏分为左半屏和右半屏,DDRAM表与128×64点的一一对应关系如表3.4-2所示:表3.4-2 12864液晶模块内部结构左 半 屏 右 半 屏CS1=1CS2=1Y=001626301。6263行号X=0X=7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB707DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7855DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB75663在液晶屏上显示16*16点阵汉字首先将汉字转换成相应的代码,在送入的液晶屏的相应的位置,下面以“学”字的显示为例进行说明,“学”字在液晶屏的上的点阵排布如图3.4-4所示,在显示时先输入汉字的第1页的16位数据,在输入第2页的16位数据,即第1页与第1列的公共部分即为要输入的第1个数据,第1页与第2列的公共部分即为第2个要输入的数据,按照这种取码方式可得出该字代码如下:(注:上面所说的第几页,第几列是相对汉字所说的)。 DB 40h, 30h, 11h, 96h, 90h, 90h, 91h, 96hDB 90h, 90h, 98h, 14h, 13h, 50h, 30h, 00hDB 04h, 04h, 04h, 04h, 04h, 44h, 84h, 7EhDB 06h, 05h, 04h, 04h, 04h, 06h, 04h, 00h图3.4-4图形显示的工作原理与汉字显示相似,如果在某位置显示指定大小的图形时,首先利用图形取模软件,将图形的代码提取出来,再根据显示汉字的原理将每页码的数据写入相应的寄存器中即可。 (4) 图形液晶控制方法 读状态字(Staus Read)RsR/WDB7DB6DB5DB4DB3DB2DB1DB001BUSY0ON/OFFRESET0000图3.4-5 读状态字状态字是计算机了解12864-1当前状态的唯一的信息渠道。状态字为一个字节,其中仅3位有效位,它们是:BUSY 表示当前12864-1接口控制电路运行状态。BUSY=1表示12864正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除状态字以外的任何操作。BUSY=0表示12864接口控制电路,已处于“准备好”状态,等待计算机的访问。ON/OFF 表示当前的显示状态。ON/OFF=1表示关闭显示状态,ON/OFF表示开显示状态。RESET 表示当前12864-1的工作状态,即反映RST端的电平状态。当RST为低电平状态时,12864-1处于复位工作状态,RESET=1。当前RST为高电平状态时, 12864-1为正常工作状态,RESET=0。在指令设置和数据读写时要注意状态字中的BUSY标志。只有在BUSY=0时,计算机对12864的操作才能有效。因此计算机在每次对12864操作之前,都要读出状态字判断BUSY是否为“0”,则计算机需要等待,直至BUSY=0为止。 显示开关设置(Display on/off)RS R/WDB7DB6DB5DB4DB3DB2DB1DB0000011111D图3.4-6 显示开关设置该指令设置显示开/关触发器的状态,由此控制显示数据的存储器的工作方式,从而控制显示屏上的显示状态。当D=1为开显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。此时在状态字中ON/OFF=0。当D=0为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态字中ON/OFF=1。 显示起始行设置(Display Start Line)RS R/WDB7DB6DB5DB4DB3DB2DB1DB00011显示起始行(063)图3.4-7 显示起始行设置该指令设置了显示起始行寄存器的内容。KS0108有64行显示的管理能力,该指令中L5L0为显示起始行的地址,取值在03FH(164行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的地址。如果定时间隔地,等间距地修改(如加一或减一)显示起始行寄器的