




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要本文设计了一个温度检测报警器电路。采用单片机AT89C51和温度传感器DS18B20组成温度自动测控系统,可根据实际需要任意设定温度值,并进行报警和处理,通过LM016L显示温度。本文是从测温电路、主控电路、报警电路以及驱动电路等几个方面来设计的。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,还能直接采用测温器件测量温度,从而简化数据传输与处理过程。此设计的优点主要体现在可操作性强,结构简单,拥有很大的扩展空间等。关键词:AT89C51;DS18B20;LM016L;报警电路目 录 第一章 绪论1 1.1 选题的背景1 1.2 选题的目的及意义1 1.3 论文结构2 第二
2、章 设计的整体方案3 2.1 设计的主要内容3 2.2 设计性能要求3 第三章 模块设计和器件的选择4 3.1 单片机的选择4 3.2 温度采集模块设计8 3.3 温度显示模块设计15 3.4直流电机驱动模块19 第四章 系统电路设计21 4.1 主电路程序21 4.2 晶振复位电路21 4.3 温度采集电路24 4.4 按键电路26 4.5驱动电路26 4.6 报警电路27 4.7 电源电路28 第五章 软件仿真30 5.1 软件介绍30 5.2 仿真过程30 第六章 体会与展望34 6.1 设计总结34 6.2 设计前景34 附录A 系统总图36 附录B 系统程序37 参考文献53 外文资
3、料65 致 谢73 第一章 绪论1.1 选题的背景 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的。单片机在测控领域中具有十分广泛的应用,它既可以测量电信号,又可以测量温度湿度等非电信号。由单片机构成的温度检测、温度控制系统可广泛应用于很多领域。单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等测控领域的应用中独占鳌头。今天,我们的生活环境和工作环境有越来越多称之为单片机的小电脑在为我们服务。时下,家用电器和办公设备的智能化、遥控化、模糊控制化已成为世界潮流,而这些高性能无一不是靠单片机来实现的。温度是个非常常见的量,不仅与人民的生活息
4、息相关,而且工业和农业生产也需要实时测量温度,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经应用的非常广泛,可以说是渗透到社会的每一个领域。本次设计就是基于单片机为核心的温度报警器。1.2 选题的目的及意义随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已应用于诸多领域。无论是在工业方面、农业方面或者是平民大众的生活当中,我们都能看到温度报警器的身影。传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外部硬件支持。
5、其缺点如下:(1) 硬件电路复杂;(2) 软件调试复杂;(3) 制作成本高。因此,利用新型温度传感器取代旧式的温度传感器是必然的趋势,新型的温度传感器的优势越来越得到体现,越来越普及。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域不可缺少的器件。 本设计的温度报警器与传统的温度报警器相比,不仅具有读数方便,测温范围广,测温准确,控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。如果你还需附加的功能,只要通过扩展单片机的端口,在软件里面编写相应的程序即可。在本设计中,温度传感器使用DS18B20,显
6、示部分用LM016L,能准确达到以上要求。1.3 论文结构第一章介绍了此设计的背景和意义。第二章叙述了设计的整体思路,即如何将单片机,温度传感器和显示屏结合在一起以达到设计目标。第三章叙述了选择AT89C51单片机、DS18B20和显示设备等的原因。第四章叙述系统的电路及流程图。第五章通过仿真软件来模拟温度报警器。第六章客观评价本设计存在的优缺点,及作品的发展。74第二章 设计的整体方案2.1 设计的主要内容根据系统的设计要求,温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,然后通过LM016L显示,除此,还可以设置合适的温度区间,对所测温度进行监控。利用外接的键盘设置电路
7、,对温度上下限进行设置。当温度过低时,黄灯报警,并驱动电炉工作,电驴加热程度与温度有关;当温度过高时,旋转灯报警,且驱动风扇工作,风扇的转速与温度有关,当高温部分超过30时,风扇全速转动,当高温部分小于30时,风扇加速转动。系统框图如下:AT89C51温度显示温度传感器 双声黄灯报警报警电路单声旋转灯报警 按键输入低温驱动驱动装置高温驱动图2-1 系统框图 2.2 设计性能要求 设计的主要功能和指标如下:(1)利用温度传感器(DS18B20)测量某一点温度并显示。(2)方便用户设定上下限温度,可调节的温度范围在099。(3)当达到报警温度后,能够进行报警,并且作出相应的处理。第三章 模块设计和
8、器件的选择 本设计选用DS18B20作为温度传感器,选用AT89C51单片机作为整个设计的核心处理器。通过处理来自温度传感器的温度信息后,将此信息传送给LCD016L,并驱动相应的外围设备,当温度过低时,驱动电炉进行加热;当温度过高时,驱动风扇进行散热。所用到的器件有AT89C51、DS18B20、LCD016L等。3.1 单片机的选择AT89C51是美国ATMEL公司生产的低电压、高性能的CMOS 8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机数据存储器(RAM)。该器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MSC-
9、51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可以提供许多高性价比的应用场合,可灵活应用于各种控制领域。3.1.1 AT89C51的基本组成 图3-1所示为AT89C51带闪存(Flash ROM)单片机的基本结构框图。外部事件计数输入振荡器和时序OSC程序存储器4KB FlashROM数据存储器128字节RAM/SFR2*16位定时器/计数器DBUS80C51CPU可编程I/O可编程全双工串行口64KB总线扩展控制器内中断外中断串行通信P0 P2 P1 P3控制图3-1 AT89C51单片机结构框图在一小块芯片上,集成了一个微型计算机的各个
10、组成部分,即AT89C51单片机芯片包括:v 一个8位80C51微处理器(CPU)。v 片内128字节数据处理器RAM/SFR,用以存放可以读/写的数据。v 片内4K程序存储器Flash ROM,用以存放程序、一些原始数据和表格。v 4个8位并行I/O端口P0P3,每个端口可以用作输入/输出。v 两个16位的定时器/计数器。每个定时器/计数器可以设置成计数方式,用以对外部事件进行计数;也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。v 具有5个中断源、两个中断优先级的中断控制系统。v 一个全双工URAT的串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通信。v 片内振
11、荡器和时钟电路。但石英晶体和微调电容需要外接,最高振荡频率为24MHz。v 89C51单片机与8051单片机相比,具有两种节电工作方式,即空闲方式和掉电方式。以上各个部分通过片内8位数据总线相连接。3.1.2 AT9C51的引脚及其功能1.电源引脚VCC和VSS VCC:电源端,为+5v。 VSS:接地端。2.外接晶体引脚XTAL1和XTAL2 XTAL1:接外部晶体和微调电容的一端。来自反向振荡放大器的输入及内部时钟电路的输入。 XTAL2:接外部晶体和微调电容的一端。来自反向振荡放大器的输出。3.控制信号引脚RST、ALE、 RST:复位输入端,高电平有效。当复位时,需要保持输入端两个机器
12、周期的高电平时间。 ALE/ :地址锁存允许信号端。当CPU访问外部存储器时,ALE输出信号作为锁存低8位地址的控制信号。在Flash编程期间,此引脚用于输入编程脉冲。通常情况下,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外输出时钟或定时信号。 :外部存储允许输出信号端。当外部程序存储器取指令时,每个机器周期两次有效。但在此期间内,每当访问外部程序存储器时,这两次有效的信号将不出现。 /:外部程序存储器地址允许输入端/固化编程电压输入端。当保持低电平时,CPU只访问片外ROM并执行片外程序存储器中的指令,而不管是否有片内程序存储器。然而需要注意的是,如果
13、加密位LB1被编程,则复位时在内部会锁存端的状态;当端保持高电平时,CPU只访问片内Flash ROM并执行内部程序存储器中的指令。在Flash ROM编程期间,此引脚也用于施加12V的编程电源()。4.输入/输出端口P0、P1、P2、P3 P0口:P0口是一个漏级开路的8位双向I/O口,每脚可吸收8个TTL门电流。当P1口作为输入口时,应先向端口锁存器写入全1,此时P0的全部引脚浮空,可作为高阻抗输入。在Flash ROM编程时,P0口接受指令字节;而当Flash进行校验时,P0输出指令字节,此时必须外接上拉电阻。 P1口:P1口是一个内部带上拉电阻的8位双向I/O口,P1的输出缓冲器能驱动
14、4个TTL输入。P1口管脚写入1后,被内部电阻上拉为高电位,可用作输入。在Flash ROM编程和校验时,P1口作为低八位地址。 P2口:P2口是一个内部带上拉电阻的8位双向I/O口,P2的输出缓冲器能驱动4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。当P2口用于外部程序存储器或16位地址的外部数据存储器进行存取时,P2口输出地址的高八位。P2口在Flash ROM编程和校验时,用于接收高位地址和一些控制信号。 P3口:P3口是一个内部带上拉电阻的8位双向I/O口,P3的输出缓冲器能驱动4个TTL输入。对端口写1时,它们被内部上拉为高电平,并用作输入。P3
15、口在Flash ROM编程和校验时,用于接收一些控制信号。在AT89C51中,P3端口还用于一些复用功能。其复用功能如表3-1所列。 表3-1 P3各端口引脚与复用功能表端口管脚 复用功能P3.0RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 (外部中断0)P3.3 (外部中断1)P3.4 T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6(外部数据存储器写选通) P3.7(外部数据存储器读选通)3.1.3 AT89C51的工作模式AT89C51单片机有两种节电工作模式,分别为空闲模式和掉电模式。这两种模式是通过控制SFR中的PCON(电源控制寄存器)中的PD和I
16、DL位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式。IDL是空闲模式,当IDL=1时,激活空闲工作模式。如果同时向PD和IDL同时写1,则PD优先。在空闲工作状态下,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU的内部状态维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的内容保持不变,端口状态也保持不变。ALE和保持逻辑高电平。进入空闲模式后,有两种方法可以退出。一是任何的中断请求被响应都可以由硬件将IDL清0而中止此模式。当执行完中断服务程序返回到主程序时,在主程序中,下一条要执行的指令将是原先使IDL置位指令后面的那条指令。另一种退
17、出方法是通过硬件复位,由于在空闲模式下振荡器仍然工作,因此硬件复位仅需2个机器周期便可完成。而RST端的复位信号直接将IDL清0,从而退出空闲模式,CPU则从进入空闲方式的下一条指令开始重新执行程序。在掉电模式下,内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能的部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和都为低电平。退出掉电模式的唯一方法是硬件复位,复位后将所有特殊功能寄存器的内容初始化,但不改变片内RAM的数据。下表为空闲和掉电模式外部引脚状态。表3-2 空闲和掉电模式外部引脚状态模式程序存储器ALEP0P1P2P3空
18、闲模式内部11数据数据数据数据空闲模式外部11浮空数据地址数据掉电模式内部00数据数据数据数据掉电模式外部00浮空数据数据数据3.2 温度采集模块设计3.2.1 方案论证方案1:采用热敏电阻,这种电阻是利用对温度敏感的半导体材料制成的,电阻值随温度变化有明显的改变。负温度系数热敏电阻通常是由锰、钴的氧化物烧制成,但热敏电阻精度、重复性、可靠性较差,不适用于检测小于1的信号;而且线性度较差,不能直接用于A/D转化,应该用硬件或软件对其进行线性补偿。方案2:采用温度传感器铂电阻Pt1000.铂电阻的物理化学性能在高温和氧化物介质中很稳定,它能用做工业测温元件,且元件线性度较好。但其成本太贵,不适合
19、做普通设计。方案3:采用集成温度传感器DS18B20。此传感器可以直接读取被测温度值,无需转换,电路简单,精度高,软硬件均易实现。方案选择:选择方案3。理由:电路可靠,无需调试,费用较低,可靠性高,具有很高的精度,并且应用电路简单,便于设计。 3.2.2 DS18B20的性能特点DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器。与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字读数方式。DS18B20的性能特点如下:l 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条接口线,即可实现微处理
20、器与DS18B20的双向通讯。l DS18B20支持多点组网功能,多个DS18B20可以并联在一起,实现组网多点测温。l DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。l 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。l 测温范围55125,在-10+85时精度为0.5。l 零待机功耗。l 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。l 用户可定义的非易失性温度报警设置。l 负电压特性,电源极性接反时,温度计不会因发热而烧毁,只是不能正常工作。DS
21、18B20作为新型的一线器件,能够方便地和中央处理器进行连接,并具有很大的扩展空间。温度范围较广,使得整体的测温范围能大幅度的上升,零待机消耗更是起到了节能的作用。利用用户能自定义报警设置这一特点,能够在实现报警功能上得到很大的便利,同时极强的抗干扰性能使得温度的检测更加准确,作为温度计最基本的要求,准确必须满足。这些好处使得DS18B20最终被选择。3.2.3 DS18B20的内部结构DS18B20采用3脚PR-35封装,其内部结构框图如下图所示。存储器与控制逻辑64位ROM和单线接口温度传感器高速缓存高温触发器TH低温触发器TL配置寄存器8位CRC发生器图3-2 DS18B20内部结构框图
22、 64位ROM的位结构如下图所示。开始8位是产品类型的编号;接着是每个器件的唯一的序号,共有48位;最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用单线进行通信的原因。8位检验CRC48位序列号8位工厂代码(10H) MSB LSB MSB LSB MSB LSB 图3-3 64位ROM结构框图 DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的电可擦除的。高速暂存RAM为9字节的存储器,结构如图3-4所示。 图3-4为高速暂存RAM结构图 前2字节包含测得的温度信息。第3和第4字节是TH和TL的复制值,是易失的,每次上电复位时被刷新。第5个字节为
23、配置寄存器,其内容用于确定温度值的数字转化分辨率,DS18B20工作时按此寄存器中的分辨率将温度转化为相应精度的数值。该字节各位的定义如图3-5所示.位数87654321含义TMR1R011111图3-5 配置寄存器位定义 其中,低5位一直为1;TM是测试位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率,其定义方法见表3-3。表3-3 DBS18B20分辨率的定义和规定R1R0分辨率/位温度最大转化时间/ms00993.750110187.510113751112750 由表3-3可见
24、,DS18B20温度转换的时间比较长,而且设定的分辨率越高,所需要的转换时间越长。因此,在实际应用中要将分辨率和转化时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接受到温度转换命令后,开始启动转化。转化完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存RAM的第1、2字节中。单片机可以通过单线接口读出该数据,低位在前,高位在后,数据格式是以0.0625/LSB形式表示。温度值格式如图3-6所示。 低字节 高字节SSSSS 图3-6 温度数据值格式 图中,S表示符
25、号位。当S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制值。表3-4列出了部分温度值对应的二进制温度表示的数据。 表3-4 DS18B20温度与表示值对应表温度二进制表示十六进制表示+1250000 0111 1101 0000 07D0H+850000 0101 0101 0000 0550H+25.06250000 0001 1001 0001 0191H+10.1250000 0000 1010 0010 00A2H+0.50000 0000 0000 1000 0008H00000 0000 0000
26、 0000 0000H-0.51111 1111 1111 1000 FFF8H-10.1251111 1111 0101 1110 FF5EH-25.06251111 1110 0110 1111 FE6FH-551111 1100 1001 0000 FC90H 64位ROM的最高位有效字节中存储有循环冗余检验码(CRC)。主机根据ROM的前56位来计算CRC值,并与存入DS18B20的CRC值相比较,以判断主机收到的ROM数据是否正确。3.2.4 DS18B20的测温原理DS18B20的测温原理如图3-7所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减
27、法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值加1,减法计数器1的预置值将被重新装入,并重新开始对低温度系数振荡器产生的脉冲信号进行计数。如此循环,直到减法计
28、数器2计数到0时,停止温度寄存器的累加,此时温度寄存器的数值就是所测温度值。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被修正温度值。另外,由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读/写时序很重要。系统对DS18B20的各种操作必须按照协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。斜率累加器计数比较器预置减法计数器1低温度系数振荡器 预置增加温度寄存器减到0停止减到0高温度系数振荡器减法计数器2 图3-7 DS18B20测温
29、原理图3.2.5 DS18B20的各条命令u Read ROM 33H。这条命令允许总线控制器读取DS18B20的位系列编码、唯一的序列号和8位CRC码。只有在总线上存在单只DS18B20时,才能使用该命令。如果总线上不止一个从机,则当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起形成相“与”的效果)。u Match ROM 55H。这是一条匹配ROM指令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有与64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作。所有与64位序列不匹配的从机都将等待复位脉冲。这条指令在总线上有单个或多个器件
30、都是可以使用。u Skip ROM CCH。这条命令允许总线控制器不用提供64位ROM编程就使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线上不止一个从机,则在Skip ROM命令之后跟着发一条读命令。由于多个从机同时传送信号,所以总线上就会发生数据冲突(漏极开路连在一起形成相“与”)。u Search ROM F0H 当一个系统重新启动时,总线控制器可能并不知道单线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。u Alarm Search ECH。这条命令的流程与Search ROM相同。然而,只有在最近一次测温后遇到
31、报警条件的情况下,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到下一次测得的温度值达不到报警条件。u Write Scratchpad 4EH。这条命令向DS18B20的暂存器TH和TL中写入数据,可以在任何时刻发出复位命令来中止写入。u Read Scratchpad BEH。这条命令读取暂存器的内容。读取将从第1字节开始,一直进行下去,直到第9字节(CRC)读完。如果不想读完所有字节,则控制器可以在任何时间发出复位命令来中止读取。u Copy Scratchpad 48H。这条命令将暂存器的内容复制到DS18B20的
32、存储器,即把温度报警器触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于把暂存器复制到存储器,则DS18B20就会输出一个0;如果复制结束,则DS18B20输出1.如果使用寄生电源,则总线控制器必须在这条命令发出之后立即启动强上拉,并最少保持10ms。u Convert T 44H。这条命令启动一次温度转化而无需其他数据。温度转化命令被执行后DS18B20进入等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转化,则DS18B20将在总线上输出0;如果温度转化完成,则输出1.如果使用寄生电源,则总线控制器必须在发
33、出这条命令之后立即启动强上拉,并保持500ms以上时间。u Recall E2 B8H。这条命令把报警触发器的值复制到暂存器。这种复制操作在DS18B20上电时自动执行,这样器件一上电暂存器里马上就存在有效的数据了。若在这条命令发出之后发出读数据隙,器件会输出温度转化忙的标识:0表示忙;1表示完成。u Read Power Supply B4H。若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式:0表示寄生电源;1表示外部电源。3.2.6 温度数据的计算处理方法 从DS18B20读取出的二进制必须先转换成十进制,才能用于字符的显示。DS18B20的转化精度为912位可选,为了
34、提高精度采用12位。在采用12位转化精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察表3-5可以发现,一个十进制与二进制间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位值。而剩下的低字节的低半字节化为十进制后,即是温度值的小数部分。因为小数部分是半字节,所以二进制值范围是0F,转化为十进制小数值就是0.0625的倍数。实际不必这么高的精度,可以精确到0.1.下表就是二进制与十进制的近似对应关系表。 表3-5 小数部分二进制和十
35、进制的近似对应关系表二进制值0123456789ABCDEF十进制值01123344566788993.3 温度显示模块设计3.3.1液晶显示简介在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。本次设计采用液晶显示器的原因:(1)显示质量高,由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪
36、烁。(2)数字式接口,液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。(3)体积小、重量轻,液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。(1)液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样就可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。(2)液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示
37、外,液晶显示器还有彩色显示。(3)液晶显示器各种图形的显示原理:a.线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。这就是LCD显示的基本原理。b.字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,即要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”。这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字
38、符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3.3.2 LM016L的结构及功能 LM016L液晶模块采用HD44780控制器,HD44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机通讯可采用8位或4位并行传输两种方式,HD44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)、忙标志(BF)、显示数RAM(DDRAM)、字符发生器ROM(CGOROM)、字符发生器RAM(CGRAM)、地址计数器RAM(AC)。LM016L液晶模块
39、的引脚功能如表3-6所示。表3-6 引脚功能表引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3VEE液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。5RWRW为读写信号线,高电平时进行读操作,低电平时进行写操作。6EE端为使能端,下降沿使能。7D0低4位三态、 双向数据总线 0位(最低位)8D1低4位三态、 双向数据总线 1位9D2低4位三态、 双向数据总线 2位10D3低4位三态、 双向数据总线 3位11D4高4位三态
40、、 双向数据总线 4位12D5高4位三态、 双向数据总线 5位13D6高4位三态、 双向数据总线 6位14D7高4位三态、 双向数据总线 7位(最高位)(也是busy flag) LM016L字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线,本次模型采用14条引脚线,如图3-9所示。图3-9 LM016L模型寄存器选择控制如表3-7.表3-7寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(D7),以及读取位址计数器(D0D6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据 busy flag(D7):此位被
41、清除为0时,LCD将无法再处理其它的指令要求。液晶模块内部的控制器共有11条控制指令,如表3-8所示:表3-8 控制命令表序号指令RSRWD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6功能00001DLNF*7字符发生器地址0001字符发生存储器地址8数据存贮器地址001显示数据存储器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容LM016L液晶
42、模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置。 I/D:光标移动方向,高电平右移,低电平左移; S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示; C:控制光标的开与关,高电平表示有光标,低电平表示无光标 ;B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位。 S/C:高电平时移动文字,低电平时移动光标。指令
43、6:功能设置命令。 DL:高电平时为4位总线,低电平时为8位总线 ;N:低电平时为单行显示,高电平时双行显示 ;F: 低电平时显示5*7的点阵字符,高电平时显示5*10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址。 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。3.4直流电机驱动模块3.4.1方案选择方案一:采用继电器对电动机的开和关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,实现容易;缺点是继电器的响应速度慢、机械结构易损坏、寿命较
44、短。方案二:采用专用芯片L298。L298是一个具有高电压、大电流的全桥驱动芯片,它响应频率高,且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。基于上述理论和实际情况分析,拟定选择方案二。3.4.2 L298驱动芯片L298 为SGS-THOMSON Microelectronics 所出产的双全桥直流电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相电机的专用驱动器,可同时驱动2个二相或1个四相电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2
45、A以下的步进电机,且可以直接通过电源来调节输出电压;此芯片可直接由单片机的I/O端口来提供模拟时序信号,节省了单片机I/O 端口的使用。在本次设计中,此驱动芯片的作用主要是放大电流。因为单片机的引脚输出电流大约为30mA,而一般的电机的工作电流在十几安培左右。故采用此芯片可以保证电机正常工作。L298的逻辑功能如下表3-9。 表3-9 L298的逻辑功能IN1IN2ENA电机状态XX0停止101正转011反转001停止111停止第四章 系统电路设计整个设计的电路包括了最小系统电路、温度采集电路、温度显示电路、报警电路、按键电路等。4.1 主电路程序主程序的主要功能是负责温度的实时显示、读出并处
46、理DS18B20的温度值。主程序的另一功能是判断上限温度是否大于下限温度。其程序流程见图4-1所示。由总的流程图可以分析出,在整个程序中应该包括如下几个部分:读取DS18B20温度子程序,温度转换子程序,温度计算子程序,数据显示子程序等。主程序流程图如下所示。开始上限大于下限?N系统初始化按键设置YerrorY显示温度按键检测?温度极限?YN从DS18B20中读取温度报警程序N图4-1 主程序流程图返回4.2 晶振复位电路晶振、复位电路与单片机连接构成最小系统电路,如何选取合适的引脚,选取何种连接方式都至关重要。因此需要了解AT89C51的引脚特点。图4-2为AT89C51单片机的引脚图。 图
47、4-2 AT89C51单片机引脚图在晶振电路中,AT89C51具有两种晶振方式,一种是片内时钟振荡方式,但需要在引脚外接石英晶体和振荡电容,振荡电容的值一般取10-30pf。另一种是外部时钟方式,即将XTAL1接外部时钟,XTAL2脚悬空。本设计的晶振电路采用片内时钟振荡方式,如图4-3所示。 图4-3 晶振电路单片机的晶振频率采用12MHZ,加两个30pF电容。两个电容主要用于校正波形,振荡器的作用主要是产生时钟振荡。而整个电路的作用则是为了产生自激振荡。对于复位电路,AT89C51有两种复位方式,分别是上电复位和按键复位。本设计采用的是按键复位,即利用复位电容和按键的组合。按键复位:引脚R
48、ST作用是复位输入。当振荡器复位时,要保持RST脚两个机器周期的高电平时间。在按下按键后,系统自动复位。在复位电路中添加按键主要是为了能够使得复位更加方便,电容主要是在复位后进行充电,而下拉电阻起到限流的作用,保护了电路。图4-4 复位电路 读出温度程序的主要功能是读出RAM中的数据。在读出时需进行CRC校验,校验有错时不进行温度数据的读取。其程序流程图如图4-5所示。发DS18B20复位命令CRC校验?N发跳过ROM命令Y发读取温度命令移入温度寄存器读取操作N结束全部读完? Y图4-5 读出温度子程序流程图图4-5 读出温度程序流程图4.3 温度采集电路温度采集电路主要运用到了DS18B20
49、和AT89C51。如何使两者连接实现功能是温度控制电路的主要设计目的。图4-6 DS18B20管脚图在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,DQ与单片机的I/O线相连;另一种是用寄生电源供电,此时VCC、GND接地,DQ接单片机I/O。内部寄生电源DQ口线要接5K左右的上拉电阻。这里采用的是第一种连接方法,DS18B20的1脚接地,3脚接电源,2脚接单片机的P2.7口。如图4-7所示:图4-7 温度采集电路温度采集部分软件编程包括温度转换程序、温度计算程序及温度显示程序。温度转换程序是从发温度转化命令开始。当采用12位分辨率时,转换时间约为750m
50、s。温度转化命令程序流程图如下所示。发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束 图4-8温度转化程序流程图 温度计算程序将RAM中读取的值进行BCD码的转化运算,并进行温度值正负的判定。计算温度程序流程图如下所示。开始计算小数位温度BCD值N温度零下?计算整数位温度BCD值Y温度值取补码置“-”标志结束无标志图4-9 温度计算程序流程图温度显示程序主要是对显示缓冲器中的显示数据进行刷新操作。 一个字节不能直接在显示屏上显示,这就需要将字节通过处理转化成能在LCD上显示的数,所以在接收到温度信息后,需要通过程序的转化,变成能在LCD上显示的字符。温度显示程序流程图如下图所示。 温度数据移入显示寄存器N百位数为0?N十位数为0 ?Y百位显示数据(不显示符号)百位显示符号十位显示数据十位显示符号百位不显示Y结束 图4-10温度显示程序流程图4.4 按键电路 本次设计采用3*4矩阵键盘电路,方便用户设置上下限。由下图可以看出其工作原理。当按下上限按钮,则进入十位设置,完成后,自动跳转到个位进行设置。若需要修改时,重复上面的操作步骤直至合适为止。下面分别为按键硬件电路和流程图。 图4-11 按键电路 上限或下限按下?N Y下限设置上限设置返回图4-12 按键程序流程图4.5驱动电路 在P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 证券投资分析策略与实践应用试题
- 夏日冰棒美术课件
- 社交媒体营销策略案例分析与探讨题
- 汽车行业技术研发经验证明书(6篇)
- 生产安全检查知识手册
- 农村集体经济合作社章程及合作协议书
- 行政管理中的前沿公共关系学试题及答案
- 2025年行业前景试题及答案
- 行政管理经济法概论重难点探讨试题及答案
- 水利水电工程关键考点及复习策略试题及答案
- 矿山矿石运输协议书
- 2025入团积极分子发展对象考试题库及参考答案详解【巩固】
- 疫苗管理制度
- 2024届北京朝阳人大附朝阳分校中考一模生物试题含解析
- ktv保安合同协议书
- 2025届山东省威海市二中高三二诊模拟考试生物试卷含解析
- 语文课程标准修订要点分析
- 2025年随州国投集团公开招聘42名工作人员笔试参考题库附带答案详解
- 厦大介绍课件
- 陕西建筑工程验收资料(A表)
- 社区共享充电桩计划书
评论
0/150
提交评论