版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章单片机的开发使用
在单片机的内部,数据通过总线传递,在开发使用时一般也采用总线结构,即通过总线与外部存储器,外围设备连接,其示意如图1.41所示。6.1常用外围接口电路及扩展6.2存储器扩展6.3数据输入输出6.4键盘输入接口电路6.5显示器接口电路6.6硬件日历钟接口电路6.7串行多机通讯6.1常用外围接口电路及扩展6.1.18位数据/地址锁存器74LS273/3736.1.28位并行数据输入/输出锁存器8212/82826.1.38位并行数据输入/输出接口8255A6.1.4带有RAM和定时器/计数器的8位并行输入/输出接口81556.1.18位数据/地址锁存器74LS273/3731.74LS27374LS273是一种带清除功能的8D触发器,其内部结构如图6.1所示,引脚分布如图6.2所示,每个触发器的功能如表6.1所示。1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。与单片机的连接如图6.21所示。清除DQCRDQCRDQCRDQCRDQCRDQCRDQCRDQCR时钟1Q2Q3Q4Q5Q6Q7Q8Q图6.174LS273内部结构图1D2D3D4D5D6D7D8D120219318417516615714813912101174LS273Vcc8Q8D7D7Q6Q6D5D5Q时钟清除1Q1D2D2Q3Q3D4D4QGND图6.274LS273引脚图表6.174LS273功能表输入输出Q消除时钟DLHHH×↑↑L×HL×LHLQD2.74LS37374LS373是一种带有三态输出门的8D触发器,其内部结构如图6.3所示,引脚分布如图6.4所示,数据输入由允许端G控制,数据输出由数据输出控制端控制。各触发器仅输出单一状态,1D~8D为数据输入端,1Q~8Q为数据输出端,每个触发器的功能如表6.2所示,常用作数据/地址锁存器,与单片机的连接如图6.25(2)所示。图6.374LS373内部结构图1Q2Q3Q4Q5Q6Q7Q8Q允许G1D2D3D4D5D6D7D8D输出控制DGQDGQDGQDGQDGQDGQDGQDGQ表6.274LS373功能表输出控制允许GD输出LLLHHHL×HL××HLQ0高阻态120219318417516615714813912101174L3273Vcc8Q8D7D7Q6Q6D5D5Q允许G输出控制1Q1D2D2Q3Q3D4D4QGND图6.474LS373引脚图6.1.28位并行数据输入/输出锁存器8212/8282
1.82128212是一种8位并行数据输入/输出接口,主要由一个带有三态输出缓冲器的锁存器、输入/输出门控电路以及中断请求触发器等部件组成,其内部结构和引脚功能如图6.5所示。在微机应用系统中,常用作三态输出缓冲器、锁存器和多路转换器。有多种工作方式,其功能说明如下:(1)数据锁存数据锁存器由8个D触发器构成,当时钟输入端C为高电平时,触发器的输出端Q跟随数据输入端D,即输出与输入保持一致。当C为低电平时数据锁存。复位信号用来对锁存器进行清除。(2)输出缓冲器在锁存器的输出端设有不带反相器的三态输出缓冲器,由控制信号EN控制。这条控制线可使缓冲器将锁存器的数据发送到外部数据线,或者控制缓冲器禁止数据输出,对外部呈现高阻态。由于设置有三态缓冲器,因此8212可直接连到外部双向数据总线上。图6.58212内部结构图与引脚功能
(a)引脚图1242233224215206197188179161015111412138212DS1MDDI1DO1DI2DO2DI3DO3DI4DO4STBGNDVccINTDI8DO8DI7DO7DI6DO6DI5DO5CLRDS2DI8~DI1数据输入DO8~DO1数据输出DS1DS1装置选择MD模式STB选通INT中断(低电平有效)CLR清0(低电平有效)(b)引脚功能
(C)内部结构≥WRCLRMD器件选择数据所存器DS1DS2STBDI1DI3DI2DI4DI5DI6DI7DI8DO3DO1DO2DO4DO5DO6DO7DO8ENINT低有效输出缓冲器DQCRDQCRDQCRDQCRDQCRDQCR&&≥&低有效DQCRDQCR&服务请求触发器≥DSQC≥(3)控制逻辑与信号
8212内部设置有用于控制器件选择,数据锁存,输出缓冲以及中断请求的控制信号输入端DS1、DS2、MD以及STB等,用来控制8212中各部件的工作。
DS1、DS2:器件选择,当DS1为低电平,DS2为高电平时,器件被选中,输出缓冲器允许工作,数据送外部数据总线,中断请求触发器置位。
MD:方式选择,控制输出缓冲器的工作状态,并决定锁存器时钟信号C的来源。当MD为高电平时,8212进入输入工作方式,并控制时钟来源于STB信号。在输入方式中,输出缓冲器的状态由器件选择逻辑(DS1
、DS2)决定。
STB:选通输入。在MD为低电平(输入方式)时,STB作为锁存器时钟输入端,并且使中断触发器复位。DI8~DI1:数据输入端。DO8~DO1:数据输出端。:复位脉冲输入端。8212与80C51单片机的连接如图6.6所示。图6.68212与单片机的连接+5V
P0口
80C51
ALE
DI8~DI1
DS2DO8~DO1DS1
MD82122.82828282也是一种带有三态输出缓冲器的8位锁存器,其引脚和内部结构如图6.7所示,可用作锁存器,输出缓冲器和多路转换器。8282有20个引脚,采用双列直插式封装,其内部由8个触发器和相应的门控电路组成。引脚说明如下:DI7~DI0:8位数据输入线。DO7~DO0:8位数据输出线。STB:数据输入锁存选通信号,高电平有效。当该信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存。 :数据输出允许信号,低电平有效。当该信号为低电平时,锁存器中的数据送数据输出线。当该信号为高电平时,输出线为高阻态。(a)引脚图12021931841751661571481391210118282VccDO0DO1DO2DO3DO4DO5DO6DO7STBDI0DI1DI2DI3DI4DI5DI6DI7OEGND图6.7
8282引脚与内部逻辑(b)内部结构图STBDI2DI3DI4DI5DI6DI7DI0DI1DO1DO2DO3DO4DO5DO6DO7OEDO0DCLKQ8282与单片机的连接如图6.8所示,作为单片机的外部地址锁存器,用来锁存P0口输出的低8位地址。接地,表示地址输入锁存后可立即在D07~D00获得输出。图6.88282与单片机的连接DO8~DO1DI08282DI7STB80C51P0口ALEOE6.1.38位并行数据输入/输出接口8255A
8255A是一种常用的8位并行输入/输出接口,其内部设有三个端口,具有三种不同的工作方式,由编程选择。8255A的内部结构与引脚分布如图6.9所示。图6.9
8255A内部结构与引脚图(b)引脚图PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3140239338437536635734833932103111301229132814271526162517241823192220218255APA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2(a)内部结构图内部逻辑外部接口数据总线缓冲器CSD0~D7B组控制A口上C口A口下C口读/写控制逻辑RDWRA1A0RESETPA0~PA7PC4~PC7PC0~PC3PB0~PB7A组控制8位内部数据总线1.引脚功能
8255A共有40个引脚,采用双列直插式结构,其功能如下:D7~D0:双向三态数据线,用于与CPU的数据总线连接。 :片选信号,低电平有效。:读信号,低电平有效,控制数据读出。:写信号,低电平有效,控制数据写入。
PA7~PA0:端口A输入输出线。
PB7~PB0:端口B输入输出线。
PC7~PC0:端口C输入输出线。
RESET:复位信号。A1~A0:片内地址线,用于端口选择。
2.内部结构
8255A内部包括三个8位并行输入/输出端口、两组工作方式控制电路,一个读/写控制逻辑电路和一个8位总线缓冲器。各功能部件的作用如下:
(1)端口A、B、CA口:可作为8位数据输出锁存器/缓冲器和8位数据输入锁存器。
B口:可作为8位数据输入/输出锁存器/缓冲器和8位数据输入缓冲器。
C口:可作为8位数据输出锁存器/缓冲器和8位数据输入缓冲器,输入不锁存。(2)工作方式控制电路有两组,一组是A组控制电路,另一组是B组控制电路。这两组控制电路具有一个控制命令寄存器,用来接收CPU发来的控制字,以决定两组端口的工作方式,也可根据控制字的要求对C口按位清0或者置1。
A组控制电路用来控制A口和C口的上半部分PC7~PC4;B组控制电路用来控制B口和C口的下半部分PC3~PC0。(3)总线数据缓冲器总线数据缓冲器是一个三态双向8位缓冲器,作为8255与系统总线之间的接口,用来传送数据、控制命令以及外部状态信息。(4)读/写控制逻辑电路读/写控制逻辑电路接收CPU发来的地址A1~A0和控制信号、、RESET、等,然后根据控制信号的要求,将端口数据读出,送往CPU,或者将CPU送来的数据写入端口。各端口的工作状态如表6.3所示。
表6.38255A工作状态选择表A1A0
工作状态001010010010010A口数据→数据总线B口数据→数据总线C口数据→数据总线00110101100100100100总线数据→A口总线数据→B口总线数据→C口总线数据→控制字寄存器×
×11×
××
×
1010110数据总线为三态非法状态数据总线为三态3.8255A控制字
8255A有三种基本工作方式,由方式控制字来设定。控制字有两个,一个是工作方式控制字,另一个是C口置位/复位控制字。这两个控制字共用一个端口地址,由最高位D7予以区分。
(1)方式控制字其格式如图6.10所示,有8位,最高位D7必须为1,D6~D3用于A组控制,D2~D0用于B组控制。例如设8255A的端口地址为60H~63H,各端口均工作于方式0,A口、C口为输入,B口为输出,可用如下程序进行初始化设置。
MOVDPTR,63HMOVA,99HMOVX@DPTR,A图6.108255A工作方式控制字端口C(高4位)1:输入0:输出端口B1:输入0:输出方式选择00:方式001:方式11×:方式2端口C(低4位)1:输入0:输出端口B1:输入0:输出方式选择0:方式01:方式1B组1D6D5D4D3D2D1D0A组(2)C口置位/复位控制字C口置位/复位控制字一次只能对一位进行操作,因此也称为C口位操作,最高位D7必须为0,其格式如图6.11所示。例如设8255A的端口地址为E000H~E003H,用PC2作脉冲发生器,其程序如下:
MOVDPTR,E003HMOVA,80HMOVX@DPTR,A;C口输出
NEXT:MOVA,05HMOVX@DPTR,A;PC2置1DECAMOVX@DPTR,A;PC2置0ACALLDELAY;延时
SJMPNEXT
图6.11C口按位操作控制字无关000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7置位/复位1:置位0:复位0D6D5D4D3D2D1D0
4.工作方式8255A有三种基本工作方式:方式0:基本输入输出方式1:选通输入输出方式2:双向传送(1)工作方式0
工作方式0是一种基本输入/输出方式,三个端口可由程序设定为输入或者输出,其中A口和B口作为8位端口,C口可分为上半部分和下半部分使用,各端口的输入、输出可构成16种组合,主要用于无条件传送和查询传送。无条件传送时,CPU直接执行输入输出指令,读写外设数据。查询传送时CPU需了解外设的状态,故需请求—应答信号。但是在方式0没有控制联络信号,常用C口的某些位作为请求—应答信号,即用C口配合A口和B口的操作。
(2)工作方式1
工作方式1是一种选通式输入/输出工作方式。在这种方式下,A口和B口作为数据输入/输出端口,C口提供控制联络信号。①
输入当A口方式1输入时,C口的PC5~PC3作为控制联络信号;当B口方式1输入时,C口的PC2~PC0作为控制联络信号。PC6、PC7未用,仍可定义为输入或者输出。各联络信号的定义如图6.12所示,作用如下::输入选通,输入,低电平有效,由外设送来,将数据送入输入锁存器。IBF:输入缓冲器满,输出,高电平有效,表示数据已送入输入锁存器。它由信号置位,由信号的上升沿复位。
INTR:中断请求,输出,高电平有效,向CPU发中断请求。发中断请求的条件是、IBF和INTE(中断允许)均为高电平。中断请求信号由的下降沿复位。
INTEA:端口A中断允许,由PC4的置位/复位来控制。
INTEB:端口B中断允许,由PC2的置位/复位来控制。图6.12方式1输入联络信号A组方式控制字A口输入PC6PC71:输入0:输出方式1D7D6D5D4D3D2D1D0
1
0
11
I/O×××方式1(A口)8位I/OSTBAIBFARDPC6PC7PC4PC5PA7~PA0INTEA&PC3INTRARDB组方式控制字方式11××××11×B口输入D7D6D5D4D3D2D1D0
方式1(B口)PC2PC1PB7~PB0INTEB&PC0STBBIBFB8位INTRB②输出:当A口为方式1输出时,C口的PC7、PC6、PC3作为控制联络信号;当B口为方式1输出时,C口的PC2~PC0作为控制联络信号。PC5、PC4未用,仍可定义为输入或者输出。各联络信号的定义如图6.13所示,作用如下:
图6.13
方式1输出联络信号1
0
10
I/O×
×
×
A组方式控制字A口输出PC4PC51:输入0:输出方式1D7D6D5D4D3D2D1D0
方式1(A口)
PC4PC5PC6PC7PA7~PA0INTEA&PC3WR8位I/OINTRAACKAOBFA方式1(B口)
PC2PC1PB7~PB0INTEB&PC0ACKBOBFB8位INTRBWR方式1B口输出B组方式控制字1×
×
×
×
10×D7D6D5D4D3D2D1D0
:输出缓冲器满,输出,低电平有效,是输出给外设的联络信号,表示CPU已将输出数据送到指定的端口,请求外设取走。它由信号的上升沿清0(有效),由信号的下降沿置1(无效)。:外设响应信号,输入,低电平有效,启动输出端口输出数据,表示数据已被外设取走。INTR:中断请求,输出,高电平有效,表示数据已被外围设备取走,请求CPU继续输出数据。中断请求的条件是、和INTE(中断允许)为高电平。中断请求信号由的下降沿复位。INTEA:端口A中断允许,由PC6的置位/复位控制。INTEB:端口B中断允许,由PC2的置位/复位控制。(3)工作方式2
工作方式2是一种双向传送方式,仅适合于端口A,作为双向数据总线端口,既可输入,又可输出,而且输入、输出均锁存。C口的PC7~PC3作为控制联络线,PC2~PC0未用,仍可定义为输入或者输出。各联络信号的定义如图6.14所示,其作用与方式1相同,其中INTE1由PC6的置位/复位控制,INTE2由PC4的置位/复位控制。
D7D6D5D4D3D2D1D0
方式控制字1
1×××1/01/01/0端口A双向方式PC2~PC01:输入0:输出端口B1:输入0:输出B组方式0:方式01:方式1WRRDPA7~PA0&PC3PC2~PC0&INTE2≥INTE18位I/OINTRAOBFAACKASTBAIBFAPC7PC6PC4PC5图6.14方式2联络信号5.连接与编程
8255与单片机的连接如图6.15所示,可用来与键盘、显示器或其它外围设备连接,进行数据输入/输出
【例6.1】对8255编程,使A口、B口和C口均工作于方式0,先由A口和C口的高4位输出一组数据,再由B口和C口的低4位输入一组数据。解:设A口地址为7F00H,B口地址为7F01H,C口地址为7F02H,控制口地址为7F03H,程序设计如下:MOVDPTR,#7F03HMOVA,#83HMOVX@DPTR,A;8255初始化
MOVDPTR,#7F00HMOVA,#data1MOVX@DPTR,A;A口输出INCDPTRINCDPTRMOVA,#data2MOVX@DPTR,A;C口输出MOVXA,@DPTR;C口输入MOVR7,AINCDPTRMOVXA,@DPTR;B口输入MOVR6,A图6.158255与单片机的连接P0口80C51ALEPA7~PA0PC7~PC0PB7~PB0P2.774LS373RDD7~D0A1RDA0WRA口8255CSB口
C口WREGEA图6.15(2)6.1.4带有RAM和定时器/计数器的8位并行
输入/输出接口81558155是一种内部设有256字节静态RAM和一个14位定时器/计数器的多功能8位并行输入输出接口,其内部结构如图6.16所示,常用作单片机的外部扩展接口,与键盘、显示器等外围设备连接。图6.16
8155内部结构与引脚图(a)内部结构图PB7~PB0PA7~PA0ACBPC5~PC0256×8RAM定时器控制逻辑IO/MAD7~AD0CEAERDWRRESETVccVssTIMERINTIMEROUT(b)引脚图14023933843753663573483393210311130122913281427152616251724182319222021VccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0PC3PC4TIMERINRESETPC5TIMEROUTIO/MCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7Vss8155A图6.16(2)
1.内部结构
8155的内部结构包括两个8位,一个6位并行输入/输出接口、256个字节的静态RAM、一个地址锁存器、一个14位的定时器/计数器和控制逻辑电路。各部件与存储器的地址选择由引脚IO/M决定。当IO/M为低电平时,表示AD7~AD0输入的是存储器地址,寻址范围为00~FFH;当IO/M为高电平时,表示AD7~AD0输入的是I/O端口地址,其编码如表6.4所示。表6.4
8155I/O地址编码AD7~AD0寄存器A7A6A5A4A3A2A1A0×
××××000命令/状态寄存器×××××001A口(PA7~PA0)×××××010B口(PB7~PB0)×××××011C口中(PC5~PC0)×××××100定时器低8位×××××101定时器高6位和2位计数器方式位2.工作方式在8155的控制逻辑电路中设置有一个控制命令寄存器和一个状态标志寄存器。控制命令寄存器只能写入,不能读出,其中低4位用来设置A口、B口和C口的工作方式,第4、5位用来确定A口、B口以选通输入输出方式工作时是否允许中断请求,第6、7位用来设置定时器的工作。工作方式控制字的格式如图6.17所示。D7D6D5D4D3D2D1D0TM2TM1IEBIEAPC2PC1PBPA0:A口输入1:A口输出0:B口输入1:B口输出00=ALT1:A口、B口基本输入输出,C口输入11=ALT2:A口、B口基本输入输出,C口输出01=ALT3:A口选通输入输出,B口基本输入输出
PC0:AINTRPC1:ABFPC2:PC5~PC3:输出10=ALT4:A口、B口选通输入输出
PC0:AINTRPC1:ABFPC2:
PC3:BINTRPC4:BBFPC5:1:A口中断允许0:A口中断禁止1:B口中断允许0:B口中断禁止00:空操作,不影响计数01:停止定时器计数10:定时器计数值减到0时停止计数11:启动,置方式和计数值后立即启动;若正在计数,则置新的方式和计数值,计数结束后按新的方式和计数值计数ASTBBSTBASTB图6.178155工作方式控制字格式
状态寄存器用来存放A口和B口的状态标志。状态标志寄存器的地址与命令寄存器的地址相同,CPU只能读出,不能写入,其格式如图6.18所示。D7D6D5D4D3D2D1D0×TIMERINTEBBBFINTRBINTEAABFINTRAINTR:中断请求INTE:中断允许
BF:缓冲器满TIMER:定时器中断图6.188155状态标志寄存器格式3.定时器/计数器在8155中设置有一个14位的定时器/计数器,可用来定时或对外部事件计数,CPU可通过程序选择计数器的长度和计数方式。计数器的长度和计数方式由输入给计数寄存器的控制字来确定,其格式如下:D7D0TL(04H)T7T6T5T4T3T2T1T0D7D0TH(05H)M2M1T13T12T11T10T9T8
其中T13~T0为计数长度,表示范围为2H~3FFFH。M2M1用来设置定时器的输出方式:M2M10
0单方波0
1连续方波(自动恢复初值)1
0单脉冲1
1连续脉冲(自动恢复初值)4.引脚功能
8155有40个引脚,采用双列直插式封装,引脚分布如图6.16(b)所示,各引脚功能如下:AD7~AD0:三态数据/地址引出线。:片选信号,低电平有效。:读命令,低电平有效。:写命令,低电平有效。ALE:地址及片选信号锁存信号,高电平有效,其后沿将地址和片选信号锁存到器件中。IO/:接口与存储器选择信号,高电平寻址I/O接口,低电平寻址存储器。PA7~PA0:A口输入/输出线。PB7~PB0:B口输入/输出线。PC5~PC0:C口输入/输出或控制信号线。用作控制信号时,功能如下:
PC0:AINTR,A口中断请求信号线。
PC1:ABF,A口缓冲器满信号线。
PC2:,A口选通信号线。
PC3:BINTR,B口中断请求信号线。
PC4:,B口选通信号线。TIMERIN:定时器/计数器输入端。:定时器/计数器输出端。RESET:复位信号线。Vcc:+5V电源。Vss:地。图6.198155与单片机的连接PA7~PA0PC5~PC0PB7~PB0地址译码P2口80C51
EAP2.7RDP0口WRALE
AD7~AD0
8155口
RDWRALEIO/MCE5.联接与编程
8155与单片机的联接如图6.19所示,其中片选信号由高位地址译码产生,IO/由P2.7提供。8155除用于接口扩展外,还提供了256字节的RAM和一个14位的定时器/计数器。
【例6.2】从A口输入数据,作为8155定时器计数初值,对输入脉冲分频,再由定时器输出端输出连续方波。
解:设8155控制命令寄存器地址为8100H,A口地址为8101H,B口地址为8102H,C口地址为8103H,定时器低8位地址为8104H,8位地址为8105H。定时器计数初值的低8位由A口输入,高6位设为0,程序设计如下:MOVDPTR,#8100H
MOVA,#42H
MOVX@DPTR,A;停止计数INCDPTR
MOVXA,@DPTR;由A口读取数据MOVDPTR,#8104H
MOVX@DPTR,A;输出计数初值低8位INCDPTR
MOVA,#40H
MOVX@DPTR,A;输出计数初值高6位及置工作方式MOVA,#0C2H
MOVDPTR,#8100H
MOVX@DPTR,A
;启动工作
……
6.2存储器扩展
由于MCS-51单片机内部存储器的容量较小,因此需要外部扩展,包括外部程序存储器和外部数据存储器。
6.2.1外部程序存储器扩展
6.2.2外部数据存储器扩展
6.2.3外部程序/数据共用存储器6.2.1外部程序存储器扩展
外部程序存储器一般由EPROM、E2PROM或Flash快闪存储器构成,在单片机开发装置中也可由RAM存储器构成,以便对用户程序进行调试或修改。1.用EPROM2764/27128构成外部程序存储器用2764/27128构成外部程序存储器的硬件连接如图6.20所示,两块2764和一块27128构成32K外部程序存储器。图6.202764/27128与单片机的连接74LS139DO7~DO074LS273CLKDI7~DI0A12~A0CE2764D7~D0OEA12~A0CE2764D7~D0OEA12~A0CE27128D7~D0OEY3A7~A0A13~A8Y2Y1Y0GA13P2.7P2.6P2.5P2.4~P2.080C51EAALEP0口PSEN2.用EPROM27128/27256构成外部程序存储器用27128/27256构成外部程序存储器的硬件连接如图6.21所示,片选信号由P2.7提供。当P2.7为低电平时选择27128,当P2.7为高电平时选择27256。一块27128与一块27256构成48K外部程序存储器。图6.2127128/27256与单片机的连接A12~A0CE27128D7~D0OEA12~A0CE27256D7~D0OEDO7~DO08212DI7~DI0DS2DS1P2.7P2.6P2.5~P2.080C51ALEEAP0口PSEN3.用E2PROM2864A构成外部程序存储器
2864A引入了写命令,可电擦除,然后写入。在2864A内部设有“页缓冲器”,因而可对其快速写入。写入完成后,信息长期保存。
2864A可按字节写入,也可按页写入。在按字节写入时,由CPU发字节写入命令,其内部锁存地址、数据和控制信号,然后启动一次写操作。若按页写入,16个字节为一页,共512页。写入时分两步完成,首先把数据写入页缓冲器,称为“页加载”,然后在内部定时电路的控制下写入指定单元,称为“页存储”。在“页存储”期间,若对2864A读,则读出的是最后写入的字节。若“页存储”尚未结束,读出的是最后写入的字节的反码。这样,可判断“页存储”是否完成。设源数据存储区首地址为SADDR,2864A用R0寻址,“页加载”程序设计如下:图6.222864与单片机的连接
PSENWRP2.5P2.4~P2.0
80C51
EAALEP0口OEWECEA12~A8
A7~A0
2864A
D7~D0
74LS373PLOAD:MOVR7,#10HMOVDPTR,#SADDR
;DPTR←源首地址
MOV
R0,#ADDRL
;R0←目的地址低位
MOVP2,#ADDRH
;P2←目的地址高位
PLOAD1:MOVXA,@DPTR
;取源数据
MOVR2,AMOVX@R0,A
;写入
INCDPTRINCR0CJNER0,#00H,PLOAD2
;判低8位地址满
INCP2PLOAD2:
DJNZR7,PLOAD1
;判一页是否写完
DEL:MOVXA,@R0
;判页存贮是否完成
XRLA,R2JZDELRET6.2.2外部数据存储器扩展
外部数据存储器一般由RAM存储器构成,常用的芯片有6264、62128和62256等。1.用6264/62128构成外部数据存储器用6264/62128构成外部数据存储器的硬件连接如图6.23所示,由两块6264和一块62128构成32KB的外部数据存储器。图6-236264/62128与单片机的连接P2.7P2.6P2.5P2.4~P2.080C51EAALEP0口WRRDY3GA13A13~A8A7~A0Y2Y1Y074LS139DO7~DO074LS273CLKDI7~DI0A12~A0CE6264D7~D0WEOEA12~A0CE6264D7~D0WEOEA12~A0CE62128D7~D0WEOE2.用62256构成外部数据存储器用62256构成外部数据存储器的硬件连接如图6.24所示,选用8282作为低8位地址锁存器,片选信号由P2.7提供。两块62256构成64K的外部数据存储器。图6.2462256与单片机的连接A12~A0CE62256D7~D0WEOEA12~A0CE62256D7~D0WEOEDO7~DO08282DI7~DI0STBOEP2.7P2.6~P2.0ALEEA80C51P0口WRRD6.2.3外部程序/数据共用存储器
在单片机开发装置中往往需要程序/数据共用存储器。在程序存储器中,允许读信号由产生;在数据存储器中,允许读信号由产生。若把这两个信号进行逻辑“与”,作为外部存储器的允许读信号,就可以使这部分存储器程序/数据共用。图6.25所示的62128就是程序/数据共用存储器。用这种方式构成外部存储器时,62128既占用外部数据存储器地址空间,又占用外部程序存储器地址空间,因此外部总存储空间减小。
图6.25外部程序/数据共用存储器的连接A7~A0A13~A8GY3A13Y2Y1Y074LS139DO7~DO074LS273CLKDI7~DI0A12~A0CE62128D7~D0OEWRA12~A0CE2864D7~D0OEWEA12~A0CE2764D7~D0OE&P2.7P2.6P2.5P2.4~P2.080C51EAALEP0口PSENRDWR
图6.25(2)6.3数据输入输出
在计算机的实际应用中,无论是数学计算或者自动控制,都会有大量的数据信息需要输入或者输出,这就是计算机与外围设备之间的数据信息的传输。其中涉及数据类型、接口电路、寻址方式及数据传输时的控制方式。
6.3.1数据类型
6.3.2输入输出寻址方式
6.3.3输入输出控制方式6.3.1数据类型
在数学计算和各种自动控制系统中,数据信息可分为三种,即数据信息、状态信息和控制信息。由于在计算机中,各种信息都是用二进制数表示的,常统称为数据。1.数据信息数据信息是计算机与外围设备之间传送的基本信息,从类型上可分为数字量、模拟量和开关量;从二进制数位上分,常见的有1位、4位、8位、16位以及32位等。数字量通常是由键盘、磁盘、磁卡阅读机输入的信息,或者是由计算机送给打印机、显示器或磁盘机的信息。这些信息都是二进制数据,或者是以ASCII码表示的数据或字符。模拟量是现场数据采集时遇到的物理量,如温度、压力、位移、转向、电压等。这些物理量需要由传感器采样,经A/D转换后输入给计算机。对于模拟控制系统,计算机输出的数字量须经D/A转后变为模拟量,再送给受控对象。开关量是指1位二进制数,表示信号的有或无、开关的闭合或断开、电机的启动或停止等。2.状态信息状态信息是反映外围设备当前所处的状态,是由外设通过专门的接口或电路送给计算机的信息,比如外设准备好(READY),外设忙(BUSY)等。在许多接口电路中,状态信息可有多个,拼成一个字节,由专门的寄存器存放,供CPU读取,称为状态字。3.控制信息控制信息是计算机发给外围设备的控制命令,通常随着外围设备或受控对象的不同而有不同的含义。在许多接口电路中,控制信号有多个,拼成一个字节,由专门的寄存器存放,计算机可一次输出,称为控制或者命令字。6.3.2输入输出寻址方式1.I/O端口为了便于计算机与外围设备的连接,产生了许多通用或者专用接口电路,如8155、8255、8279等。在这些芯片中,往往有多个数据输入输出口和状态/控制寄存器。在用这些接口与外设连接,构成计算机应用系统时,芯片中的数据输入输出口、状态寄存器、控制寄存器应分配地址,以便CPU访问。这些输入输出口常称为数据端口,状态寄存器称为状态端口,控制寄存器称为控制或者命令端口。每一个端口实际上就是CPU可访问的一个地址单元。2.I/O端口编址方式
I/O端口的编址方式取决于计算机的系统结构和指令系统,主要有两种,即与存储器统一编址和独立编址。在许多微处理器的指令系统中没有专门的I/O指令(例如MCS-51单片机),这样外设接口与存储器统一编址,CPU使用传送指令,可访问每一个端口。这种方式结构简单,指令一致,但是占用了存储器地址,减少了存储器容量。对于具有专门I/O(IN/OUT)指令的微处理器(例如80X86),可使外设接口独立于存储器空间之外。这种方式的优点是I/O端口不占用存储器地址,但是不如统一编址方便灵活。对于具有专门输入输出指令的微处理器,也可以部分统一编址,部分独立编址。6.3.3输入输出控制方式
由于外围设备的工作速度相差很大,CPU对于不同的数据输入输出应采用不同的控制方式。主要有三种:程序控制方式、中断控制方式和存储器直接寻取(DMA)方式。1.程序控制方式程序控制方式是在程序的控制下进行数据传送,又可分为直接传送和查询传送方式。(1)直接传送方式由CPU直接执行输入指令,由外设接口中的某一端口读取数据,或者执行输出指令,向某一端口写入数据。
例如在例6.1中,80C51单片机使用8255作为外部扩展接口电路,与外围设备联接(如图6.15(2)所示)。采用直接传送方式,CPU执行MOVX@DPTR,A指令,即可输出数据;执行MOVX
A,@DPTR指令,即可输入数据。(2)查询传送方式查询传送方式是CPU在执行数据传送指令之前先执行一条查询(测试)指令,以确定外部I/O端口是否准备好。如果没有准备好,继续查询等待;如果准备好,则进行一次数据传送。
如图6.26所示,设PA口方式1输出,PC7为8255输出给外围设备的联络信号,表示PA口输出缓冲器满(),以通知外设将数据取走。当外设将数据取走后,变为高电平。信号也可供CPU查询,以确定是否继续输出数据。OBFA74LS373GE图6.26
查询方式输入输出数据输出ACKA数据输入STBB┆P0口ALE
80C51
RDEAWRP2.7
P1.1P1.0D7~D0A0A18255RDPA口WRPC7CSPC6PB口
PC2PC1ACKAOBFAOBFA
若设PB口工作方式1输入,CPU则要查询IBFB,以确定是否读取数据。设PA口地址为7F00H,PB口地址为7F01H,控制口地址为7F03上,查询信号由P1口输入。查询方式输入输出程序如下:MOVDPTR,#7F03HMOVA,#0A6HMOVX@DPTR,A
;选择PA口方式1输出,PB口方式1输入OUT:JNBP1.0,OUT
;查询
MOVDPTR,#7F00HMOVA,@R0
;取数,地址由R0指示
MOVX@DPTR,A
;输出
INCR0;修改地址………IN:JNBP1.1,IN
;查询
MOVDPTR,#7F01HMOVX
A,@DPTR
;数据输入
MOV@R1,A
;存数,地址由R1指示
INCR1;修改地址2.中断控制方式对于低速外设常采用中断方式进行数据传送。当外部数据端口准备好后,向CPU发中断请求,CPU响应后执行中断服务程序,进行数据的输入或者输出。
8255选择工作方式1,采用中断方式进行数据传送的硬件连接如图6.27所示。图6.27中断方式输入输出…..P0口ALE80C51
RDEAWRP2.7INT0INT1D7~D0A0A18255RDPA口WRPC7CSPC6PB口INTRAPC2PC1INTRB74LS373GE数据输出OBFAACKA数据输入STBBIBFB3.直接存储器存取(DMA)方式对于高速外设,如磁盘、数传机等,可使高速外设直接与存储器进行数据传递,即DMA方式。为此,需要由专门的电路组成DMA控制器,完成DMA传送中的控制工作。(1)DMA控制器的功能①能够根据外设的要求向CPU发总线请求信号(HRQ),借用总线;②能够识别和接收CPU发来的总线响应信号(HLDA),获取总线控制权,进入DMA传送方式;③能够输出地址,对存储器或I/O端口寻址,而且能够修改地址指针,以指示下一地址单元;④能够发读/写命令,控制数据传送;⑤能对传送的数据字节计数,判断DMA传送是否结束;⑥数据传送完后发DMA结束信号,释放总线,使CPU恢复原来的工作。DMA控制器的逻辑结构如图6.28所示,主要由地址寄存器、字节计数器、控制寄存器、状态寄存器以及控制逻辑电路组成。其中地址寄存器用来存放DMA传送时的地址初值,传送过程中地址可以自增1或者自减1,以指示下一单元地址。字节计数器用来存放DMA传送时的字节数的初值,每传送一个字节,自动减1,控制DMA传送结束。控制寄存器用来存放CPU发来的控制命令,确定DMA控制器的工作方式,例如字节/块传送,地址增1/减1、读/写以及启动/停止等。状态寄存器用来存放DMA传送时的状态信息,例如DMA请求、DMA结束等。控制逻辑电路则是根据控制/状态寄存器中的控制命令及状态信息产生DMA传送时所需要的控制信号。(2)DMA传送过程首先由CPU对DMA控制器预置,即发控制字,设置DMA的工作方式,设置存储器起始地址、传送字节数,启动高速外围设备工作等。图6.28DMA传送控制逻辑示意图总线DMA请求DMA响应总线请求总线相应DMA控制器时序与控制逻辑电路控制寄存器地址寄存器字节计数器状态寄存器数据缓冲器控制逻辑电路输入设备CPU存储器
然后,当外设数据准备好后向DMA控制器发DMA请求。DMA控制器收到DMA请求信号后向CPU发总线请求(HRQ)。CPU在每个机器周期的末尾检查总线请求信号,若有请求则予以响应,并发总线响应信号(HLDA),让出总线控制权。DMA控制器收到总线响应信号后获得控制总线使用权,向外设发DMA响应信号,并控制外设与存储器之间的数据传送。在传送过程中由DMA控制器输出地址,发读/写控制信号,控制数据的读出或写入。每传送一个字节,地址加1(或者减1),字节计数器减1。减1为0时传送结束,并撤销总线请求信号,释放总线。CPU检测到总线请求信号撤销后即撤销总线响应信号,收回总线控制权,继续原来的工作。由于早期的MCS-51单片机没有总线请求与总线响应信号线,因此不支持DMA传送。而80C52JA具有用于DMA传送的目的地址寄存器、源地址寄存器和字节计数器,因此可实现DMA传送。6.4键盘输入接口电路6.4.1键盘的工作原理6.4.2键盘接口电路6.4.3键盘输入程序设计6.4.1键盘的工作原理
在一般的计算机操作中,命令、数据都是由键盘输入的。既使一台微机控制装置,也少不了一个由几个按键组成的小键盘。因此,键盘是计算机的主要输入设备。0列
1列
2列
3列图6.29
键盘的组成0行1行2行3行+5V1.键盘的组成键盘由一组按压式开关组成,如图6.29所示,排列成阵列。行线经电阻接
+5V电源,每一行和每一列的交叉处连接一个按键开关。如果没有键按下,列线与行线不通。如果某一按键按下闭合,则该键所在的列线与行线接通,于是列线上就有+5V输出电压;按键松开,输出电压消失。其它列线上,由于没有按键按下,故无+5V输出电压。在了解键盘的组成之后,进一步就是了解键码的识别。目前,键盘可分为两种类型,一种是编码键盘,由硬件电路给出按键的键码;另一种是非编码键盘,需要由软件判别。在单片机应用系统中,多使用非编码键盘。下面主要介绍非编码键盘的键码识别方法和可编程键盘/显示器接口电路8279的使用。2.去抖动由于按键按下时的机械动作,免不了产生抖动,因此必须消除抖动影响。对于非编码键盘可由图6.30所示的硬件电路或软件延时的方法来解决。对于编码键盘则由专门的接口电路(例如8279)自行消除。
图6.30所示电路实际上是由R-S触发器构成的单脉冲电路。当按钮开关按下时Q端输出低电平,当开关松开时Q端恢复高电平,即输出一个负脉冲,以此消除抖动。软件方式消除抖动,其流程图如图6.31所示,即通过延时来等候所产生电压波形的稳定。在键盘操作时,有时也会多个键同时按下,即重键。对于重键,可以前一次查询结果为最后结果。图6.30去抖动电路+5V&&QQ6.4.2键盘接口电路
非编码键盘的连接方式有两种,一种是程序扫描方式,另一种是中断方式。1.程序扫描方式程序扫描硬件连接如图6.32所示,用并行I/O接口8155作为中间接口电路,32个按键排列成4×8阵列。行线与PC0~PC4连接,列线与PA口连接,键码识别可由程序扫描方式来实现。
图6.31
软件消除抖动和识别键码流程图YYYNNN
闭合键释放吗?返回二次调用延时子程序12ms
有键闭合吗?调用延时子程序6ms
有键闭合吗?判断闭合键键码转键码处理KEY图6.31(2)081624+5V+5V地址译码WRRDP0口P2.0ALEEAP2.4P2.780C51WRPC0RD
PC1
AD7~0PC2IO/MPC3ALEPA08155CSVCCPA7RESETVSS图6.3232键键盘与单片机的连接5.1K×4………
(1)行输入扫描方式在图6.32中首先由PA口输出全0,即全部列线为低电平,然后读PC口。若PC口为全1,说明无键按下。若某一位为0,则说明该行有键按下。然后,识别键码。图6.32(2)
识别的方法是由PA口依次输出表6.5所示的数据,作为扫描代码,即每次只有一位为0,其余全为1。每输出一次扫描码,由PC口读入一次。若读入仍为全1,说明按下的键不在“0”所对应的列。若读入非全1,说明按下的键在“0”所对应的列。这样,就确定了按键的行、列值。例如PA口输出11111101,PC口读入1101,说明第一行第一列的按键按下闭合。键码的形成方法有多种,常用的方法是对第0列的每一按键赋以固定的编号:0,8,16,24,其余各列为第0列的编号加上闭合键所在的列号。表6.5
8155I/O地址编码PA7PA0PA0PA0PA0PA0PA0PA01111111011111101111110111111011111101111110111111011111101111111
(2)行反转输入方式行反转输入一般用于方阵排列的键盘,如图6.33所示。首先由PA口向列线输出全0,再由PB口读行线。若读入为全1,说明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 洛阳房产居间合同范本
- 猪肉白条买卖合同范本
- 电梯高空维修合同范本
- 破石机租赁合同协议书
- 爱情协议合同书名字叫
- 石材护栏订购合同范本
- 2025年河北省泊头市辅警招聘考试试题题库附参考答案详解研优卷
- 2025年学校食堂从业人员食品安全知识培训考试试题及答案
- 2025年汽车维修技术员职业技能考试试题及答案解析
- 2025山东省安全员-A证考试题库附答案
- 2025年高考语文全国一卷试题真题及答案详解(精校打印)
- 香港劳工雇佣合同协议
- JJF 2216-2025电磁流量计在线校准规范
- 诺姆四达人才测评题库
- 书法艺术疗愈在书法教育中的实践与应用研究
- 2025石嘴山辅警考试题库
- 美容美发场所卫生管理制度
- 成人脓毒症患者医学营养治疗要点指南解读(2025年)解读课件
- HSE管理体系管理手册
- 《服务替代营销》课件
- 《煤炭资源绿色开采》课件
评论
0/150
提交评论