温度控制器的设计与制作(I).doc_第1页
温度控制器的设计与制作(I).doc_第2页
温度控制器的设计与制作(I).doc_第3页
温度控制器的设计与制作(I).doc_第4页
温度控制器的设计与制作(I).doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习情境6 温度控制器的设计与制作温度是工业生产中最常见和最基本的工艺参数,特别是在冶金、化工、机械各类工业生产中,广泛使用各种加热炉、热处理炉、反应炉等,因此,温度控制是生产过程自动化的重要任务之一。6.1咨询知识准备6.1.1单片机程序存储器扩展一单片机程序存储器概述单片机应用系统由硬件和软件组成,软件的载体就是硬件中的程序存储器。对于MCS-51系列8位单片机,片内程序存储器的类型及容量如表6.1所示。表6.1MCS-51系列单片机片内程序存储器一览表单片机型号片内程序存储器类型容量/B8031无8051ROM4K8751EPROM4K8951Flash4K对于没有内部ROM的单片机或者当程序较长、片内ROM容量不够时,用户必须在单片机外部扩展程序存储器。MCS-51单片机片外有16条地址线,即P0口和P2口,因此最大寻址范围为64KB(0000HFFFFH)。这里要注意的是,MCS-51单片机有一个管脚跟程序存储器的扩展有关。如果接高电平,那么片内存储器地址范围是0000H0FFFH(4KB),片外程序存储器地址范围是1000HFFFFH(60KB)。如果接低电平,不使用片内程序存储器,片外程序存储器地址范围为0000HFFFFH(64KB)。8031单片机没有片内程序存储器,因此管脚总是接低电平。扩展程序存储器常用的芯片是EPROM(Erasable Programmable Read Only Memory)型(紫外线可擦除型),如2716(2K8)、2732(4K8)、2764(8K8)、27128(16K8)、27256(32K8)、27512(64K8)等。另外,还有+5V电可擦除EEPROM,如2816(2K8)、2864(8K8)等等。如果程序总量不超过4KB,一般选用具有内部ROM的单片机。8051内部ROM只能由厂家将程序一次性固化,不适合小批量用户和程序调试时使用,因此选用8751、8951的用户较多。如果程序超过4KB,用户一般不会选用8751、8951,而是直接选用8031,利用外部扩展存储器来存放程序。二EPROM程序存储器扩展实例紫外线擦除电可编程只读存储器EPROM是国内用得较多的程序存储器。EPROM芯片上有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变1,即处于擦除状态。擦除干净的EPROM可以通过编程器将应用程序固化到芯片中。例6.1在8031单片机上扩展4KBEPROM程序存储器。(1)选择芯片。本例要求选用8031单片机,内部无ROM区,无论程序长短都必须扩展程序存储器(目前较少这样使用,但扩展方法比较典型、实用)。在选择程序存储器芯片时,首先必须满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。这样做的话,使用的芯片少,从而接线简单,芯片存储容量大,程序调整余量也大。如估计程序总长3KB左右,最好是扩展一片4KB的EPROM2732,而不是选用2片2716(2KB)。在单片机应用系统硬件设计中应注意,尽量减少芯片使用个数,使得电路结构简单,提高可靠性,这也是8951比8031使用更加广泛的原因之一。(2)硬件电路图。8031单片机扩展一片2732程序存储器电路如图6.2所示。图6.2单片机扩展2732EPROM电路(3)芯片说明。74LS373。74LS373是带三态缓冲输出的8D锁存器,由于片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址。图6.3EPROM2732管脚及说明EPROM2732。EPROM2732的容量为4K8位。4K表示有41024(22210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。前者确定了地址线的位数是12位(A0A11),后者确定了数据线的位数是8位(O0O7)。目前,除了串行存储器之外,一般情况下,我们使用的都是8位数据存储器。2732采用单一+5V供电,最大静态工作电流为100mA,维持电流为35mA,读出时间最大为250ns。2732的封装形式为DIP24,管脚如图6.3所示。其中,A0A11为地址线;O0O7为数据线;为片选线;/VPP为输出允许/编程高压。除了12条地址线和8条数据线之外,为片选线,低电平有效。也就是说,只有当为低电平时,2732才被选中,否则,2732不工作。/VPP为双功能管脚,当2732用作程序存储器时,其功能是允许读数据出来;当对EPROM编程(也称为固化程序)时,该管脚用于高电压输入,不同生产厂家的芯片编程电压也有所不同。当我们把它作为程序存储器使用时,不必关心其编程电压。(4)扩展总线的产生。一般的CPU,像INTEL8086/8088、Z80等,都有单独的地址总线、数据总线和控制总线,而MCS-51系列单片机由于受管脚的限制,数据线与地址线是复用的,为了将它们分离开来,必须在单片机外部增加地址锁存器,构成与一般CPU相类似的三总线结构。(5)连线说明:地址线。单片机扩展片外存储器时,地址是由P0和P2口提供的。图6.2中,2732的12条地址线(A0A11)中,低8位A0A7通过锁存器74LS373与P0口连接,高4位A8A11直接与P2口的P2.0P2.3连接,P2口本身有锁存功能。注意,锁存器的锁存使能端G必须和单片机的ALE管脚相连。数据线。2732的8位数据线直接与单片机的P0口相连。因此,P0口是一个分时复用的地址/数据线。控制线。CPU执行2732中存放的程序指令时,取指阶段就是对2732进行读操作。注意,CPU对EPROM只能进行读操作,不能进行写操作。CPU对2732的读操作控制都是通过控制线实现的。2732控制线的连接有以下几条:接地端。由于系统中只扩展了一个程序存储器芯片,因此,2732的片选端直接接地,表示2732一直被选中。若同时扩展多片,需通过译码器来完成片选工作。片选端:接8031的读选通信号端。在访问片外程序存储器时,只要端出现负脉冲,即可从2732中读出程序。(6)扩展程序存储器地址范围的确定。单片机扩展存储器的关键是搞清楚扩展芯片的地址范围,8031最大可以扩展64KB(0000HFFFFH)。决定存储器芯片地址范围的因素有两个:一个是片选端的连接方法,一个是存储器芯片的地址线与单片机地址线的连接。在确定地址范围时,必须保证片选端为低电平。(7)EPROM的使用。存储器扩展电路是单片机应用系统的功能扩展部分,只有当应用系统的软件设计完成了,才能把程序通过特定的编程工具(一般称为编程器或EPROM固化器)固化到2732中,然后再将2732插到用户板的插座上(扩展程序存储器一定要焊插座)。当上电复位时,PC=0000H,自动从2732的0000H单元取指令,然后开始执行指令。如果程序需要反复调试,可以用紫外线擦除器先将2732中的内容擦除,然后再固化修改后的程序,进行调试。如果要从EPROM中读出程序中定义的表格,需使用查表指令:MOVCA,A+DPTRMOVCA,A+PC6.1.2数据存储器扩展一单片机RAM概述表6.26116的操作方式方式IO0IO7H未选中高阻LLH读O0O7LHL写I0I7LLL写I0I7RAM是用来存放各种数据的,MCS-51系列8位单片机内部有128BRAM存储器,CPU对内部RAM具有丰富的操作指令。但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。此时,我们可以利用单片机的扩展功能,扩展外部数据存储器。实训6的参考程序1就是一个扩展RAM的使用实例。常用的外部数据存储器有静态RAM(Static Random Access MemorySRAM)和动态RAM(Dynamic Random Access MemoryDRAM)两种。前者读/写速度高,一般都是8位宽度,易于扩展,且大多数与相同容量的EPROM引脚兼容,有利于印刷板电路设计,使用方便;缺点是集成度低,成本高,功耗大。后者集成度高,成本低,功耗相对较低;缺点是需要增加一个刷新电路,附加另外的成本。MCS-51单片机扩展片外数据存储器的地址线也是由P0口和P2口提供的,因此最大寻址范围为64KB(0000HFFFFH)。一般情况下,SRAM用于仅需要小于64KB数据存储器的小系统,DRAM经常用于需要大于64KB的大系统。二SRAM扩展实例1应用系统中只扩展一片RAM图6.116116管脚图例6.3在一单片机应用系统中扩展2KB静态RAM。(1)芯片选择。单片机扩展数据存储器常用的静态RAM芯片有6116(2K8位)、6264(8K8位)、62256(32K8位)等。根据题目容量的要求,我们选用SRAM6116。它是一种采用CMOS工艺制成的SRAM,采用单一+5V供电,输入/输出电平均与TTL兼容,具有低功耗操作方式。当CPU没有选中该芯片时(=1),芯片处于低功耗状态,可以减少80%以上的功耗。6116的管脚与EPROM2716管脚兼容,管脚如图6.11所示。6116有11条(A0A10)地址线;8条(I/O0I/O7)双向数据线;为片选线,低电平有效;为写允许线,低电平有效;为读允许线,低电平有效。6116的操作方式如表6.2所示。(2)硬件电路。单片机与6116的硬件连接如图6.12所示。图6.12单片机扩展2KBRAM电路(3)连线说明。6116与单片机的连线如下:地址线:A0A10连接单片机地址总线的A0A10,即P0.0P0.7、P2.0、P2.1、P2.2共11根。数据线:I/O0I/O7连接单片机的数据线,即P0.0P0.7。控制线:18脚片选端连接单片机的P2.7,即单片机地址总线的最高位A15;22脚读允许线连接单片机的读数据存储器控制线17脚;写允许线27脚连接单片机的写数据存储器控制线17脚(4)片外RAM地址范围的确定及使用。按照图6.12的连线,片选端直接与某一地址线P2.7相连,这种扩展方法称为线选法。显然,只有P2.7=0,才能够选中该片61168031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A06116A10A9A8A7A6A5A4A3A2A1A0000000000000000000000001000000000010000000000011011111111111其中,“”表示跟6116无关的管脚,取0或1都可以。如果与6116无关的管脚取0,那么,6116的地址范围是0000H07FFH;如果与6116无关的管脚取1,那么,6116的地址范围是7800H7FFFH。单片机对RAM的读写除了可以使用在实训6中出现的指令:MOVXDPTR,A;64KB内写入数据MOVXA,DPTR;64KB内读取数据外,还可以使用以下对低256B的读写指令:MOVXRi,A;低256B内写入数据MOVXA,Ri;低256B内读取数据6.1.3并行I/O口扩展一MCS-51内部并行I/O口及其作用51系列单片机内部有4个双向的并行I/O端口:P0P3,共占32根引脚。P0口的每一位可以驱动8个TTL负载,P1P3口的负载能力为三个TTL负载。有关4个端口的结构及详细说明,在前面的有关章节中已作过介绍,这里不再赘述。在无片外存储器扩展的系统中,这4个端口都可以作为准双向通用I/O口使用。通过6.1和6.2节的介绍,我们知道,在具有片外扩展存储器的系统中,P0口分时地作为低8位地址线和数据线,P2口作为高8位地址线。这时,P0口和部分或全部的P2口无法再作通用I/O口。P3口具有第二功能,在应用系统中也常被使用。因此在大多数的应用系统中,真正能够提供给用户使用的只有P1和部分P2、P3口。综上所述,MCS-51单片机的I/O端口通常需要扩充,以便和更多的外设(例如显示器、键盘)进行联系。在51单片机中扩展的I/O口采用与片外数据存储器相同的寻址方法,所有扩展的I/O口,以及通过扩展I/O口连接的外设都与片外RAM统一编址,因此,对片外I/O口的输入/输出指令就是访问片外RAM的指令,即:MOVXDPTR,AMOVXRi,AMOVXA,DPTRMOVXA,Ri在实训6中,读者已经初步接触了用8155扩展I/O口的方法,实际中,扩展I/O口的方法有三种:简单的I/O口扩展、采用可编程的并行I/O接口芯片扩展以及利用串行口进行I/O口的扩展。二简单的I/O口扩展简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。它具有电路简单、成本低、配置灵活的特点。1.扩展实例图6.16为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。图6.16简单I/O口扩展电路2.芯片及连线说明在图6.16的电路中采用的芯片为TTL电路74LS244、74LS273。其中,74LS244为8缓冲线驱动器(三态输出),、为低电平有效的使能端。当二者之一为高电平时,输出为三态。74LS273为8D触发器,为低电平有效的清除端。当=0时,输出全为0且与其它输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。输入控制信号由P2.0和相“或”后形成。当二者都为0时,74LS244的控制端有效,选通74LS244,外部的信息输入到P0数据总线上。当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。输出控制信号由P2.0和相“或”后形成。当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到74LS273的输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。3.I/O口地址确定因为74LS244和74LS273都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是惟一的,只要保证P2.0=0,其它地址位无关)。但是由于分别由和控制,因而两个信号不可能同时为0(执行输入指令,如MOVXA,DPTR或MOVXA,Ri时,有效;执行输出指令,如MOVXDPTR,A或MOVXRi,A时,有效),所以逻辑上二者不会发生冲突。4.编程应用下述程序实现的功能是按下任意键,对应的LED发光。CONT:MOVDPTR,#0FEFFH;数据指针指向口地址MOVXA,DPTR;检测按键,向74LS244,读入数据MOVXDPTR,A;向74LS273输出数据,驱动LEDSJMPCONT;循环三采用8255扩展I/O口所谓可编程的接口芯片是指其功能可由微处理机的指令来加以改变的接口芯片,利用编程的方法,可以使一个接口芯片执行不同的接口功能。目前,各生产厂家已提供了很多系列的可编程接口,MCS-51单片机常用的两种接口芯片是8255以及8155,本书主要介绍这两种芯片在51单片机中的使用。8255和MCS-51相连,可以为外设提供三个8位的I/O端口:A口、B口和C口,三个端口的功能完全由编程来决定。1.8255的内部结构和引脚排列图6.17为8255的内部结构和引脚图。图6.178255的内部结构和引脚图(1)A口、B口和C口。A口、B口和C口均为8位I/O数据口,但结构上略有差别。A口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲/锁存器组成。B口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲器组成。三个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。(2)A、B组控制电路。这是两组根据CPU的命令字控制8255工作方式的电路。A组控制A口及C口的高4位,B组控制B口及C口的低4位。(3)数据缓冲器。这是一个双向三态8位的驱动口,用于和单片机的数据总线相连,传送数据或控制信息。(4)读/写控制逻辑。这部分电路接收MCS-51送来的读/写命令和选口地址,用于控制对8255的读/写。2)引脚(1)数据线(8条):D0D7为数据总线,用于传送CPU和8255之间的数据、命令和状态字。(2)控制线和寻址线(6条)。RESET:复位信号,输入高电平有效。一般和单片机的复位相连,复位后,8255所有内部寄存器清0,所有口都为输入方式。A0、A1:地址输入线。当=0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。(3)I/O口线(24条):PA0PA7、PB0PB7、PC0PC7为24条双向三态I/O总线,分别与A、B、C口相对应,用于8255和外设之间传送数据。(4)电源线(2条):VCC为+5V,GND为地线。2.8255的控制字8255的三个端口具体工作在什么方式下,是通过CPU对控制口的写入控制字来决定的。8255有两个控制字:方式选择控制字和C口置/复位控制字。用户通过程序把这两个控制字送到8255的控制寄存器(A0A1=11),这两个控制字以D7来作为标志。3.8255的工作方式8255有三种工作方式:方式0、方式1、方式2。方式的选择是通过上述写控制字的方法来完成的。(1)方式0(基本输入/输出方式):A口、B口及C口高4位、低4位都可以设置输入或输出,不需要选通信号。单片机可以对8255进行I/O数据的无条件传送,外设的I/O数据在8255的各端口能得到锁存和缓冲。(2)方式1(选通输入/输出方式):A口和B口都可以独立的设置为方式1,在这种方式下,8255的A口和B口通常用于传送和它们相连外设的I/O数据,C口作为A口和B口的握手联络线,以实现中断方式传送I/O数据。C口作为联络线的各位分配是在设计8255时规定的,分配表如表6.3所示。表6.38255C口联络信号分配表C口各位方式1方式2输入方式输出方式双向方式PC0INTRBINTRB由B口方式决定PC1IBFB由B口方式决定PC2SETB由B口方式决定PC3INTRAINTRBINTRAPC4I/OPC5IBFAI/OIBFAPC6I/OPC7I/O4.8255与MCS-51的接口8255和单片机的接口十分简单,只需要一个8位的地址锁存器即可。锁存器用来锁存P0口输出的低8位地址信息。图6.19为8255扩展实例。1)连线说明数据线:8255的8根数据线D0D7直接和P0口一一对应相连就可以了。控制线:8255的复位线RESET与8031的复位端相连,都接到8031的复位电路上(在图6.19中未画出)。寻址线:8255的片选端和A1、A0分别由P0.7和P0.1、P0.0经地址锁存器74LS373后提供,当然片选端的接法不是惟一的。当系统要同时扩展外部RAM时,就要和RAM芯片的片选端一起经地址译码电路来获得,以免发生地址冲突。I/O口线:可以根据用户需要连接外部设备。图6.19中,A口作输出,接8个发光二极管LED;B口作输入,接8个按键开关;C口未用。图6.198051和8255的接口电路2)地址确定8051A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08255A1A0A口:000B口:001C口:010控制口:011根据上述接法,8255的A、B、C以及控制口的地址分别为0000H、0001H、0002H和0003H(假设无关位都取0)。3)编程应用例6.7如果在8255的B口接有8个按键,A口接有8个发光二极管,即类似于图6.16中按键和二极管的连接,则下面的程序能够完成按下某一按键,相应的发光二极管发光的功能。MOVDPTR,#0003H;指向8255的控制口MOVA,#83HMOVXDPTR,A;向控制口写控制字,A口输出,B口输入MOVDPTR,#0001H;指向8255的B口LOOP:MOVXA,DPTR;检测按键,将按键状态读入A累加器MOVDPTR,#0000H;指向8255的A口MOVXDPTR,A;驱动LED发光SJMPLOOP四采用8155扩展I/O口在实训电路中采用的是另一种可编程的接口芯片8155,Intel公司研制的8155不仅具有两个8位的I/O端口(A口、B口)和一个6位的I/O端口(C口),而且还可以提供256B的静态RAM存储器和一个14位的定时/计数器。8155和单片机的接口非常简单,目前被广泛应用。1.8155的结构和引脚8155有40个引脚,采用双列直插封装,其引脚图和组成框图如图6.20所示。图6.208155的引脚图和结构框图(3)控制总线(8条):RESET:复位线,通常与单片机的复位端相连,复位后,8155的3个端口都为输入方式。ALE:地址锁存线,高电平有效。它常和单片机的ALE端相连,在ALE的下降沿将单片机P0口输出的低8位地址信息锁存到8155内部的地址锁存器中。因此,单片机的P0口和8155连接时,无需外接锁存器。7脚为RAM或I/O口的选择线。当=0时,选中8155的256BRAM;当=1时,选中8155片内3个I/O端口以及命令/状态寄存器和定时/计数器。TIMERIN、:定时/计数器的脉冲输入、输出线。TIMERIN是脉冲输入线,其输入脉冲对8155内部的14位定时/计数器减1;为输出线,当计数器计满回0时,8155从该线输出脉冲或方波,波形形状由计数器的工作方式决定。2.作片外RAM使用当=0,=0时,8155只能做片外RAM使用,共256B。其寻址范围由以及AD0AD7的接法决定,这和前面讲到的片外RAM扩展时讨论的完全相同。当系统同时扩展片外RAM芯片时,要注意二者的统一编址。对这256BRAM的操作使用片外RAM的读/写指令“MOVX”。3.作扩展I/O口使用当=0,=1时,此时可以对8155片内3个I/O端口以及命令/状态寄存器和定时/计数器进行操作。与I/O端口和计数器使用有关的内部寄存器共有6个,需要三位地址来区分,表6.4为地址分配情况。表6.46个内部寄存器的地址分配表AD7AD0选中寄存器A7A6A5A4A3A2A1A0000001010011100101内部命令/状态寄存器PA口PB口PC口定时/计数器低8位寄存器定时/计数器高8位寄存器1)命令/状态寄存器和接口芯片8255一样,芯片8155I/O口的工作方式的确定也是通过对8155的命令寄存器写入控制字来实现的。8155控制字的格式如图6.21所示。命令寄存器只能写入不能读出,也就是说,控制字只能通过指令MOVXDPTR,A或MOVXRi,A写入命令寄存器。在本书的实训电路板中,扩展了8155,用于连接8个LED显示和键盘,A、B口为基本输出方式,C口为基本输入方式,因此编写如下程序:图6.21 8155的控制字MOVDPTR,#CWR;设CWR为命令寄存器的地址MOVA,#03H;A、B口为基本输出方式,C口为基本输入方式MOVXDPTR,A状态寄存器中存放有状态字,状态字反映了8155的工作情况,状态字的各位定义如图6.22所示图6.228155的状态字状态寄存器和命令寄存器是同一地址,状态寄存器只能读出不能写入,也就是说,状态字只能通过指令MOVXA,DPTR或MOVXA,Ri来读出,以此来了解8155的工作状态。2)计数器高、低8位寄存器关于计数器高、低8位寄存器的使用,我们将在后面讲到定时器使用时再作介绍。4.I/O口的工作方式当使用8155的三个I/O端口时,它们可以工作于不同的方式,工作方式的选择取决于写入的控制字,如图6.21所示。其中,A、B口可以工作于基本I/O方式或选通I/O方式,C口可工作于基本I/O方式,也可以作为A、B选通方式时的控制联络线。图6.238155方式4时的逻辑结构方式1、2时,A、B、C口都工作于基本I/O方式,可以直接和外设相连,采用“MOVX”类的指令进行输入/输出操作。方式3时,A口为选通I/O方式,由C口的低三位作联络线,其余位作I/O线;B口为基本I/O方式。方式4时,A、B口均为选通I/O方式,C口作为A、B口的联络线。其逻辑组态如图6.23所示。C口的工作方式和各位的关系见表6.5。表6.5C口的工作方式方式方式方式方式PC0PC1PC2PC3PC4PC5全部为输入全部为输出A口中断请求A口缓冲器满A口选通输出输出输出A口中断请求A口缓冲器满A口选通B口中断请求B口缓冲器满B口选通5.定时/计数器使用8155的可编程定时/计数器是一个14位的减法计数器,在TIMERIN端输入计数脉冲,计满时由输出脉冲或方波,输出方式由定时器高8位寄存器中的M2、M1两位来决定。当TIMERIN接外脉冲时为计数方式,接系统时钟时为定时方式,实际使用时一定要注意芯片允许的最高计数频率!定时/计数器的初始值和输出方式由高、低8位寄存器的内容决定,初始值14位,其余两位定义输出方式。1)定时/计数器的输出方式定时器的输出方式见表6.6。表6.6定时器的输出方式M2M1方式波形00011011在一个计数周期输出单次方波连续方波在计满回0后输出的单个脉冲连续脉冲2)定时/计数器的工作8155对内部定时器的控制是由8155控制字的D7、D6位决定的(见图6.22),现总结如表6.7所示。表6.7定时/计数器的工作情况8155的控制字定时/计数器工作情况D7D600无操作,即不影响定时器的工作0110立即停止定时器的计数定时器计满回0后停止计数11若定时器不工作,则开始计数;若定时器正在计数,则计满回0后按新输入的长度值开始计数3)定时/计数器使用实例8155使用时,通常是先送计数长度和输出方式的两个字节,然后送控制字到命令寄存器,控制计数器的启停。例6.8编写8155定时器作100分频器的程序。设8155命令寄存器的地址为0000H,定时器低字节寄存器的地址为0004H,定时器高字节寄存器的地址为0005H。编程如下:ORG1000HMOVDPTR,#0004H;指向定时器低字节寄存器地址MOVA,#64HMOVXDPTR,A;装入定时器初值低8位值INCDPTR;指向定时器高字节寄存器地址MOVA,#40HMOVXDPTR,A;设定时器输出方式为连续方波MOVDPTR,#0000H;指向命令寄存器地址MOVA,#0C0HMOVXDPTR,A;装入命令字,开始计数SJMP$6.MCS-51单片机和8155的接口MCS-51和8155的接口非常简单,因为8155内部有一个8位地址锁存器,故无需外接锁存器。在二者的连接中,8155的地址译码即片选端可以采用线选法、全译码等方法,这和8255类似。在整个单片机应用系统中要考虑与片外RAM及其它接口芯片的统一编址,读者可参考本书的实训电路图中的方法,确定8155的相关地址。图6.24为一个连接实例。图6.248155和8051的接口电路此时,8155内部RAM的地址范围为:0000H00FFH,8155各端口的地址(设无关位为0,这些地址都不是惟一的)为:命令/状态口0400HA口0401HB口0402HC口0403H定时器低字节0404H定时器高字节0405H6.2计划学生学习的设想6.2.1学习目的知识目标:1.程序存储器、数据存储器、8155、8255模块的引脚及功能2.各模块的组成能力目标:1.识别常用的扩展程序存储器、数据存储器、8155、8255模块2.掌握扩展时硬件连线和地址范围确定。3.掌握扩展的编程方法。4.掌握单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的设计。5.掌握运用开发系统调试温控系统应用程序的基本方法。6.2.2学习条件1.教室2.多媒体3.单片机实训室(PG206)4.虚拟仿真实训室(Proteus)5.数字化综合服务平台6.2.3项目技术要求用MCS-51单片机设计一个温控系统。要求具有对环境温度进行实时测量,当外界温度高于设定最高温度时,启动风扇降温;当外界温度低于指定最低温度时,将发出报警声。6.2.4项目设计任务书学习情境温度控制器的设计与制作页数:项目名称单片机系统扩展专业班级项目设计人一、项目描述1、项目工作要求(任务书)(1)掌握I/O口扩展方法。(2)掌握单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的设计。图1 温度控制器样品图温度控制器电路原理图2、已具备资料(1)温度控制器基本原理图(2)单片机应用技术教材(3)单片机集成开发环境(4)综合实训板二、项目资讯1、程序存储器扩展。2、数据存储器扩展。3、I/O扩展。三、项目计划1、根据设计要求,选择确定设计方案,分析并实现原理图。2、确定本工作任务需要使用的工具和辅助设备,填写下表。项目名称各工作流程使用的工具辅助设备备注四、项目决策1、分小组讨论,分析阐述各自对温度控制器电路的理解和软件设计思路。2、老师指导确定最终设计方案和设计电路。3、每组选派一位成员阐述设计方案。五、项目实施1、设计前的准备工作具体有哪些?2、设计时要注意哪些事项?3、选择电路的流程?主要注意什么问题?4、温度控制器电路的元件如何选择?选择元件型号时的注意事项?5、如何对设计好的原理图进行检测?如何排除错误处?6、如何对设计好的程序进行检测?如何排除错误处?7、你认为完成该项工作需要注意哪些事项?8、工作过程中如何提升效率?提出你的建议。9、对整个工作的完成进行记录。六、项目检查1、学生填写检查单。2、教师填写评价表。3、撰写温度控制器的设计说明书。七、项目评估1、小组讨论,自我评述完成情况及发生的问题,小组共同给出提升方案和效率的建议。2、小组准备汇报材料,每组选派一人进行汇报。3、老师对方案评价说明。4、整理相关资料,列表说明项目资料及资料来源,注明存档情况。项目名称项目资料名称资料来源存档备注5、成品上交资料备注。项目名称上交资料名称七、备注(需要注明的内容)指导老师评语:项目完成人签字:日期:年月日指导老师签字:日期:年月日6.3决策项目方案的设计与选择方案一.可编程控制器(PLC)作为传统继电接触控制装置的替代产品已广泛应用于工业控制的各个领域。它以体积小、组装灵活、编程简单、抗干扰能力强及可靠性高等优点,越来越为众多用户所青睐。温度测控在工业自动化应用中是十分重要和普遍的,以PLC为核心,设计了一个温度自动测控系统。除主机外还加I/O扩展模块、A/D模块和D/A模块。系统由温度传感器AD590检测箱内温度,经电阻把电流信号转化为电压信号送入PLC的A/D转换模块,得到过程量,将此值与给定温度值进行有关运算,得出控制量,最后由控制量控制PLC输出的通断,经继电器组控制工作状态。该方案成本高,不采用。方案二.系统采用MCS-51系列单片机实现对温度的实时控制,具有程序设定,调节控制,温度超限报警、数字显示的功能。熟悉以单片机为核心的具有自整定功能的温度控制器的设计方法,同时培养学生利用已学知识进行产品化设计。6.4实施制作过程6.4.1硬件设计温度测量采用最新的单线数字温度传感器DS18B20,DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而,使用DS18B20可使系统结构更趋简单,可靠性更高。降温控制系统采用低压直流电风扇。当温度高于设定最高限温度时,启动风扇降温,当温度降到指定最高限温度以下后,风扇自动停止运转。温控系统的温度显示和温度的设定直接采用综合实训板上的显示和键盘。当环境温度低于设定的最低限温度值时,也采用综合实训板上的蜂鸣器进行报警。用0#、1#键作为温度最高限、最低限的设定功能键;2#、3#键作为温度值设定的增加和减小功能键。0#键:作为最高限温度的设定功能键。按一次进入最高限温度设定状态,选择最高限温度值后,再按一次确认设定完成。1#键:作为最低限温度的设定功能键。按一次进入最低限温度设定状态,选择最低限温度值后,再按一次确认设定完成。2#键:1功能键,每按一次将温度值加1,范围为199。3#键:1功能键,每按一次将温度值减1,范围为991。图2.2.1温控系统硬件接线原理图6.4.2软件设计(1)温控系统采用模块化程序结构,可以分成以下程序模块:系统初始化程序:首先完成变量的设定、中断入口的设定、堆栈、输入输出口及外部部件的初始化工作。主程序MAIN:完成键盘扫描、温度值采集及转换、温度值的显示。当温度值高于设定最高限时,驱动风扇工作;当温度值低于设定最低限时,驱动蜂鸣器报警。键盘扫描程序KEYSCAN:完成键盘的扫描并根据确定的键值执行相应的功能,主要完成最高温度、最低温度的设定。温度采集程序GET_TEMPER:完成DS18B20的初始化并发出温度转换命令,经过指定时间后读取转换的温度值。根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求CPU将数据线下拉500s,然后释放。DS18B20收到信号后等待1660s左右,后发出60240s的存在低脉冲,CPU收到此信号表示复位成功。温度转换程序TEMPER_COV:根据精度要求对采集到的温度值进行处理并转换成便于显示的BCD码值。显示子程序DISPLAY:显示实时温度及设定温度值。DS18B20初始化子程序INIT_1820:DS18B20在工作之前必须按照指定的要求完成初始化工作,否则无法正常工作。DS18B20读写子程序WRITE_1820、READ_1820、READ_1820T完成对18B20的读写功能,其中,READ_1820从DS18B20中读出一个字节的数据,READ_1820T从DS18B20中读出两个字节的温度数据。延时程序DELAY、DELAY1满足18B20要求的延时间隔及程序中的延时功能。(2)软件流程框图分别如图2.2.2、2.2.3、2.2.4、2.2.5和2.2.6所示。图2.2.2主程序流程图图2.2.3DS18B20初始化程序流程图图2.2.5DS18B20写入子程序图2.2.6DS18B20读取子程序(3)下面给出参考程序(部分);晶振:12MHz;HIG_TMPEQU32H;设定的最高温度值LOW_TMPEQU33H;设定的最低温度值NUB_VALEQU34H;加1、减1的暂存值TEMPER_HEQU36H;采集到温度值的低位TEMPER_LEQU35H;采集到温度值的高位TEMPER_NUMEQU30H;PORTEQU4400H;8155口地址PORTAEQU4401H;8155A口地址PORTBEQU4402H;8155B口地址PORTCEQU4403H;8155C口地址;FLAG1BIT00H;18B20初始化完成标志KEY_MKBIT08H;键盘按下标志KEY_HMKBIT09H;S1键按下标志KEY_LMKBIT0AH;S2键按下标志DISP_MKBIT0BH;温度设定状态标志DQBITP1.1;ORG0000HAJMPSTART;ORG0030HSTART:MOVSP,#60H;设置堆栈值MOVIE,#00HMOVTCON,#00HMOVTMOD,#10HMOVDPTR,#PORT;初始化8155口,A、B输出C输入MOVA,#43HMOVXDPTR,ASETBDQSETBP1.2MOVR0,#20HMOVR1,#20HMOVA,#00HSTART_1:MOVR0,AINCR0DJNZR1,START_1START_2:CLRP1.0CLRP1.2MOVHIG_TMP,#30H;初始高温限值设为30MOVLOW_TMP,#20H;初始低温限值设为20;ACALLRE_CONFIGNOPACALLINIT_1820JNBFLAG1,START_2MAIN:ACALLKEY_SCANJBKEY_LMK,MAIN1JBKEY_HMK,MAIN1ACALLGET_TEMPER;采集温度值ACALLTEMPER_COV;温度值转换MAIN1:ACALLDISPLAYMOVA,TEMPER_NUMCJNEA,HIG_TMP,MAIN2CLRCMAIN2:JCMAIN3SETBP1.2;启动风扇AJMPMAINMAIN3:CJNEA,LOW_TMP,MAIN4CLRCMAIN4:JNCMAIN5SETBP1.0;启动报警器AJMPMAINMAIN5:CLRP1.0CL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论