第7章80C51并行IO扩展p_第1页
第7章80C51并行IO扩展p_第2页
第7章80C51并行IO扩展p_第3页
第7章80C51并行IO扩展p_第4页
第7章80C51并行IO扩展p_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

第7章单片机并行I/O扩展本讲重点:

接口概念;接口扩展与编址技术;

可编程扩展芯片8255(初始化,电路及应用);

键盘接口;

显示器接口打印机接口。计算机通常要外接的输入/输出设备输入设备:定义:往主机传送信息的设备

常用的输入设备:键盘、鼠标、扫描仪、读卡机等输出设备定义:接收主机信息并送出信息呈现给人们的设备

常用的输出设备:显示器、打印机、绘图仪等7.1单片机I/O扩展基础知识使用单片机本身的I/O口只能实现一些简单的数据输入/输出。例如发光二极管的驱动。复杂的I/O操作,必须经由接口电路协调与控制才能完成任务。CPU接口接口外设1外设2地址总线AB数据总线DB控制总线CB简单I/O扩展:(缓冲/驱动器扩展)单片机锁存器74LS273P0.0-P0.7P2.0P2.1RDWRD0D7D0D7D0D7D0D7缓冲器74LS244≥1≥1CLKCE1

CE2输出输入或门或门输入指令:MOVDPTR,#0100HMOVXA,@DPTR输出指令:MOVDPTR,#0200HMOVX@DPTR,A7.1.1I/O接口电路的功能输入/输出传送的信息包括:数据信息

数字量

模拟量

开关量状态信息表征外设状态

控制信息控制外设启停

在输入时,输入装置的信息是否准备好(Ready);在输出时,输出装置是否有空(Empty),若输出装置正在输出信息,则以Busy指示。

二进制形式表示的数或以ASCⅡ码表示的数或字符。

模拟量必须先经过A/D转换才能输入计算机,计算机的控制输出也必须先经过D/A转换才能控制执行机构。

只要用一位二进制数即可表示的量,如电机的运转与停止,开关的合与断,阀门的打开和关闭等——小于0.6V表示‘0’,大于3.4V表示‘1’。数据协议/格式不同速度不一致所需功率/电平不匹配所需测控点数量不匹配计算机/单片机与外设之间起桥梁作用的

电路或部件——接口(interface)。协调两者间的差异。速度协调、数据锁存数据转换总线隔离、驱动扩展输入/输出接口的作用及其类型接口电路的作用锁存作用防止由于CPU速度快,外设慢而产生的丢数现象隔离作用防止DB上的信息重叠变换作用在CPU与外设之间进行信息类型、电平、传送接收方式变换联络作用在CPU与外设之间进行联络,Ready,Busy输出接口电路——锁存作用输出接口中必须含锁存器接口电路(锁存器).......锁存信号写选通输出数据DB来自CPU速度匹配输入接口电路——隔离作用输入接口中必须含三态门接口电路(三态门).......读选通信号输入允许输入数据接口电路(三态门).......输入数据DB防止信息重叠1、

I/O接口的种类很多,有两种基本类型串行I/O接口并行I/O接口2、不可编程接口例:74LS273、74LS373、74LS138、74LS2443、可编程接口例:8155、8255、8250、8253I/O接口的类型7.1.2关于接口电路的更多说明1.接口与接口电路计算机/单片机与外设之间起桥梁作用的

电路或部件——接口(interface)。

本课程中讲到的接口可以是→器件→功能模块→电路板卡→设备/装置→……2.口或端口端口→接口电路中那些可编址并能进行读写操作

的寄存器,简称“口”。地址由选用的地址线条数与地址线名决定接口与端口的区别接口:由一个或多个端口组成。端口:可被独立选通的I/O接口电路,简称口。端口地址:端口在系统中被分配的惟一地址,简称口地址。端口可分为:输入端口——CPU从中读取外设的状态或数据信息输出端口——CPU通过它输出控制信号或数据信息状态端口——CPU从中读取外设的状态信息控制端口——由CPU控制输出控制信号数据端口——可以是输入数据端口或输出数据端口

I/O信息都是通过数据总线传递的。

3.I/O接口的特点异步性;实时性;与设备无关性。4.并行接口与串行接口7.1.3I/O编址技术统一编址I/O端口与内存储器采用一套地址,完全象存储器单元一样处理,使用访问存储器的指令。如:movx类指令独立编址采用一套与存储器不同的地址,利用/MREQ(存储器请求)和/IORQ(输入输出请求),CPU有专门的I/O指令如:IN,OUTMCS51系列采用统一编址

片内RAM与P0~P3均用MOV指令

片外RAM与外扩口I/O口均用MOVX指令

采用统一编址,使得I/O也用16位编址,可以使用数据存储器读/写指令进行I/O操作,无需专门的指令。扩展RAM和I/O口线选法外围器件地址选择线(A15~A0)片内地址单元数地址编码6264000

×××××××××××××8K0000~1FFFH825500111111111111××43FFC~3FFFH8155RAM01011110

××××××××2565E00~5EFFHI/O0101111111111×××65FF8~5FFDH0832011111111111111117FFFH825310011111111111××49FFC~9FFFH数据存储与I/O口同时扩展译码法0000H~1FFFH2000H~3FFFH8000H~9FFFH6000H~7FFFH4000H~5FFFH7.1.4

单片机I/O控制(三种)1.无条件传送方式(又称同步传送)

应用于定时为已知的且固定不变的低速I/O

无需等待的高速I/OmovxA,@DPTRmovx@DPTR,ADB三态门锁存器地址译码器地址译码器来自外设至外设ABRDWR无条件I/O举例——显示程序设计无条件方式例:2.查询方式又称有条件传送方式。即I/O操作前要查询设备的状态。单片机系统通过软件查询I/O电路中的某些特殊寄存器或位——是一种软硬结合的控制方式。条件传送方式程序举例Test:movDPTR,#PORTSmovxA,@DPTRanlA,#80HjzTest;(jnzTest)movDPTR,#PORTDmovxA,@DPTR

;输入

(movx@DPTR,A;输出)0/1状态信号D7输入接口状态准备好?传送信息YESNOReady=1Busy=0(A)3.中断方式7.2可编程并行接口芯片82557.2.18255硬件逻辑结构8255的基本特性与引脚:◆PA,PB,PC三个8位I/O口;◆PC口分高4位和低4位。高4位可与PA口合为一组(A组),低4

位可与PB口合为一组(B组)。◆3种工作方式。内部有4个寄存器,由A1,A0与读,写信号选择。

片选低有效,复位高有效。◆PC可按位置位/复位。◆40条引脚,DIP封装。须注意

VCC与GND引脚的位置。

一个8位的数据口D0~D7。PA3PA4PA2PA5PA1PA6PA0PA7RDWRGNDD0A1D1A0D2PC7D3PC6D4PC5D5PC4D6PC0D78255PC2PB7PC3PB6PB0PB5PB1PB4PB2PB3CSRESETPC1VCC40PIN7.2.28255工作方式8255A有3种工作方式,即方式0、方式1和方式2。◆三种方式中只有方式0用得最多且最容易使用。基本输入/输出方式就是简单输入/输出方式。◆方式1和方式2使用复杂。因单片机能自动提供各种应答信号,这两种方式已很难见到再有人用于单片机系统。工作方式A口B口C口0基本输入/输出输出锁存,输入三态基本输入/输出输出锁存,输入三态基本输入/输出输出锁存,输入三态1应答式输入/输出输入/输出均锁存应答式输入/输出输入/输出均锁存提供A口和B口的应答信号2应答式双向输入/输出输入/输出均锁存B口无此方式提供A口的应答信号PA,PB,PC口的三种工作方式示意图:RDWRD7——D0A1A0地址总线控制总线数据总线ABCPA0-7PB0-7PC4-7PC0-3A组B组8255的方式0ABPA0-7PB0-7控制线控制线A组B组ABPA0-7PB0-7控制线I/OA组B组76543210PC口8255的方式18255的方式276543210PC口1.方式0(基本输入/输出方式)这种工作方式不需要任何选通信号,A口、B口及C口的高4位和低4位都可以设定为输入或输出。作为输出口时,输出的数据均被锁存;作为输入口时,A口的数据能锁存,B口与C口的数据不能锁存。2.方式1(选通输入/输出方式)在这种工作方式下,A口可由编程设定为输入口或输出口,C口的3位用来作为输入/输出操作的控制和同步信号;B口同样可由编程设定为输入口或输出口,C口的另3位用来作为输入/输出操作的控制和同步信号。在方式1下A口和B口的输入数据或输出数据都能被锁存。1)方式1下A口、B口均为输入

在方式1下,A口和B口均工作在输入状态时,需利用C口的6条线作为控制和状态信号线,其定义如图所示:方式1下的信号定义(a)A口、B口均为输入时;(b)A口、B口均为输出时C口所提供的用于输入的联络信号有:STB(Strobe):选通脉冲信号(输入),低电平有效。当外设送来该信号时,输入的数据被装入8255A的输入锁存器中。IBF(InputBufferFull):输入缓冲器满信号(输出),高电平有效。此信号有效时,表示已有一个有效的外设数据锁存于8255A的口锁存器中,尚未被CPU取走,暂不能向接口输入数据,它是一个状态信号。INTR(InterruptRequest):中断请求信号(输出),高电平有效。当IBF为高、STB信号由低变高(后沿)时,该信号有效,向CPU发出中断请求。方式1:数据输入过程如下:当外设的数据准备好后,发出STB信号,输入的数据被装入锁存器中,然后IBF信号有效(变为高电平)。数据输入操作的时序关系如下图所示:2)方式1下A口、B口均为输出与输入时一样,要利用C口的6根信号线,其定义如前图(b)所示。用于输出的联络信号有:ACK(Acknowledge):外设响应信号(输入),低电平有效。OBF(OutputBuffeFull):输出缓冲器满信号(输出),低电平有效。INTR:中断请求信号(输出),高电平有效。方式1下数据输出过程如下:当外设接收并处理完1组数据后,发回ACK响应信号。3.方式2(双向数据传送方式)8255A只有A口具有这种双向输入输出工作方式,实际上是在方式1下A口输入输出的结合。在这种方式下,A口为8位双向传输口,C口的PC7~PC3用来作为输入/输出的同步控制信号。在这种情况下,B口和PC2~PC0只能编程为方式0或方式1工作,而C口剩下的3条线可作为输入或输出线使用或用作B口方式1之下的控制线。7.2.38255的编程内容8255A为可编程接口芯片,以控制字形式对其工作方式和C口各位的状态进行设置。它有两种控制字:工作方式控制字和C口置位/复位控制字。D7D6D5D4D3D2D1D0特征位=1A组方式选择00:方式001:方式11X:方式2A口B口CL

口CH

口B组方式选择=0,方式0=1,方式1=0,输出=1,输入=0,输出=1,输入=0,输出=1,输入=0,输出=1,输入8255控制寄存器接受控制命令,告诉8255以何种方式工作。其地址是:A1,A0=11。它可以接受两条命令,第一条命令叫“方式控制字”,方式控制字格式如下:A组B组注意:对同一控制寄存器可写两种命令,故必须在命令本身用“特征位”加以区别。第二条命令的特征位=01.工作方式命令字D7D6D5D4D3D2D1D0特征位=0Don’tcarebits选中的位将要输出的状态=0,清0=1,置18255控制寄存器可以接受的第2条命令是:可以对PC口按位进行“置1”和“清0”操作。具体命令格式如下:(地址同样是:A1,A0=11)例如:设8255的控制寄存器在系统中的地址是:0003H,要将PC5引脚置

1,可用如下指令完成:

MOVDPTR,#0003HMOVA,#0BH

MOVX

@DPTR,AD3D2D1选中PCx引脚000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC72.C口置位/复位命令字8255与单片机的连接:AT89C51825574LS373P0.0-P0.7ALE8DQ0Q1Q7CSRESETA0A1D0-D7GEAOERESETRDWRWRRD+5VPAQ7接片选/CS端,8255的(一组)寄存器地址可以是:PA口:0000HPB口:0001HPC口:0002H命令口:0003H也可以是:007CH,007DH,007EH,007FH……PC7PC0微型打印机3.初始化编程初始化编程就是向控制字寄存器写入命令字。例如,若对8255各口作如下设置:A口方式0输入,B口方式1输出,C口高位部分输出低位输入。设控制寄存器地址为0003H。解:按要求知工作方式命令字为95H,则初始化程序段为,MOVR0,#03HMOVA,#95H

MOVX@R0,A8255A与8031单片机接口例:

设8255A的A、B、C口和控制寄存器地址依次为00H、01H、02H和03H。如果用户需要将C口的PC3

置1,PC5

置0,可编程如下:MOVR0,#03H;8255A控制口地址

MOVA,#07H ;将PC3置1控制字

MOVX@R0,A ;置PC3=1MOVA,#0AH ;将PC5置0控制字

MOVX@R0,A;置PC5=07.3键盘接口技术单片机系统中使用的键盘不同于PC机中所用的,这里所指的键盘是价格便宜的非编码矩阵式键盘。目前,键盘可分为两种类型,一种是编码键盘,由硬件电路给出按键的键码;另一种是非编码键盘,需要由软件判别。键盘实际上是由排列成矩阵形式的一系列按键开关组成的,它是单片机系统中最常用的人机联系的一种输入设备。用户通过键盘可以向CPU输入数据、地址和命令。单片机系统中普遍使用非编码式键盘。这类键盘应主要解决以下几个问题:(1)键的识别;(2)如何消除键的抖动;(3)键的保护。在以上几个问题中,最主要的是键的识别。7.3.1键扫描和键码生成1.键盘举例独立式按键1)独立式按键接口结构独立式按键的接口电路示意图(a)中断方式;(b)查询方式独立式按键及其接口芯片内有上拉电阻芯片内无上拉电阻独立连接式键盘例1:特点:此子程序需不断(或定时)调用,否则可能漏判。4个键的优先级由指令顺序决定。P1.0P1.1P1.2P1.3KEY:JNBP1.0,FUNC1;逐键判别

JNBP1.1,FUNC2;位状态0转移

JNBP1.2,FUNC3JNBP1.3,FUNC4RET;无任何键按下由此返回FUNC1:……;做P1.0要求的“功能1”RETFUNC2:……;做P1.1要求的“功能2”RETFUNC3:……;做P1.2要求的“功能3”RETFUNC4:……;做P1.3要求的“功能4”RETAT89C51独立连接式键盘例2

特点:@此子程序采用中断查询不会漏判,省时。@键的优先级由指令顺序决定。@为防止一次按键多次中断,在功能子程序里应安排“关/开中断指令”并“延时”。P1.0P1.1P1.2P1.3ORG0003HLJMPKEY

…………KEY:JNBP1.0,FUNC1;逐键判别

JNBP1.1,FUNC2JNBP1.2,FUNC3

JNBP1.3,FUNC4RETI;无任何键按下由此返回FUNC1:……

;做P1.0要求的“功能1”RETIFUNC2:……

;做P1.1要求的“功能2”RETIFUNC3:……

;做P1.2要求的“功能3”RETIFUNC4:……

;做P1.3要求的“功能4”RETIINT0&(上拉)AT89C51矩阵式键盘AT89C518155P0ALECERESETAD0-7EARESETRDWRWRRDPA7PA6PA5PA4PA3PA2PA1PA0PC0PC1PC2PC3P2.7ALE+5v+5v行线列线0行7行0列3列048121620242815913172125292610141822263037111519232631P2.0IO/M8155控制寄存器:0100H8155A口地址:0101H8155C口地址:0103HA口为输出C口为输入口0行1行2行3行4行5行6行7行行线(PA0-PA7)列线PC0-30列3列0481216202428159131721252926101418222630371115192326311列2列0行1行2行3行4行5行6行7行0列1列2列3列012345678910111213141516171819202122232425262728293031列线PC0-3行线PA0|PA7左右两图是一样的习惯说“横行竖列”定时扫描工作方式键盘上有键闭合否开始KM=1KP=1返回1→KM0→

KM0→

KP图5.8定时扫描方式程序框图查询键码1→KPNNNYYY(2)中断工作方式计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,在中断服务程序中扫描键盘,执行键功能程序。中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。2.键码键盘上的每一个键都担负着一项处理功能,而这些功能都是由相应的键处理程序段来完成的。实际上,这就是个软硬件结合的多分支结构。为了顺利地实现分支到各个键处理程序段,就需要对键进行编码——键码。键的编码没有统一的规定,只要能实现功能分支即可。最常用的编码方法是以键在键盘矩阵中的位置,从0开始按自然顺序进行编码。右表最左边一列为各行的扫描码;

最后一行为列有闭合键时的状态码;状态码又称返回码,表中内容为键码。3.键盘扫描通常有行扫描法和线反转法。单片机中常用的是行扫描法。为了识别键盘上的闭合键,通常有:这里介绍的键盘扫描是由软件实现的,所以扫描过程也就是扫描程序的执行过程。4.键盘扫描程序流程5.去抖动分为软件法和硬件法。主要是通过延时避开抖动。按键在闭合和断开时,触点会存在抖动现象:

硬件去抖动6.键的保护

键的保护问题指的是当有双键或多键同时按下时会出现什么问题以及如何加以解决。以下图为例,若在同一行上有两个键同时按下,从硬件上来说,不会出现什么问题;从软件上来说,由于这时读入的列代码中出现了两个0,由此代码与行值组合成的键特征值就超出了原设定键的范围,因此也就查不出有效的键值来。一旦出现这样情况,一般作为废键处理。7.3.2用8255实现键盘接口补充:串行口键盘及显示接口电路7.4LED显示器接口7.4.1LED显示器概述并排使用的多位数码管称为LED显示器。LED数码管的结构:共阳与共阴极@单片机系统扩展LED数码管时多用共阳LED:共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“1”)点亮的,要求驱动功率较大。@通常每个段笔画要串一个数百欧姆的降压电阻。公共阳极hgfedcbaabcdgefh公共阴极hgfedcbaabcdgefhhgf……ahgf……a高电平点亮低电平点亮接高电平接地LED数码管的译码:硬件译码与软件译码共阴LEDabcdgefhgfedcbaDCBAP1.3P1.2P1.1P1.0CD4511AT89C5174LS48/CD4511是“BCD码→七段共阴译码/驱动”IC;74LS47是“BCD码→七段共阳译码/驱动”ICLED数码管的译码:软件译码(用8155输出)软件译码特点:(用8155输出)不用专用的译码/驱动器件,驱动功率较小;不增加硬件的开销;软件编程较复杂;字型灵活(比如:有八段,只可译多种字符,字型好看……)。共阳LEDabcdgefhP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5VAT89C51硬件译码特点:采用专用译码/驱动器件,驱动功率较大;增加了硬件的开销,字型固定(比如:只有七段,只可译数字,字型不好看……)。

要使数码管显示指定的字符对共阴极接法的电路:1、要发光的二极管段加高电平2、共阴极端接低电平称0CFH为字形码G端称为字位dpgfedcbad7d6d5d4d3d2d1d010011110CFH+5v“1”“0”7.4.2LED显示器显示原理LED数码管的软件译码P.143表7.3八段LED数码管段代码编码表(连线不同可有多种表):字形0123456789黑共阳0C00F90A40B09992820F880900FF共阴3F065B4F666D7D077F6F00公共阳极hgfedcbaabcdgefh公共阴极hgfedcbaabcdgefhhgf……ahgf……a高电平点亮低电平点亮接高电平接地七段LED的段选码显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HΓ31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“灭”00HFFHA77H88HB7CH83H

(1)软件查表方式采用软件查表方式时,需为每一只数码管配备一个8位代码锁存器,存放显示代码。锁存器有多种形式,右图仅是其中的一种,选用的是74LS273。设显示代码表首地址为m,程序设计如下:DISP:

MOVA,#data

;A←要显示的数符

MOVDPTR,#m

;DPTR←表首地址

MOVCA,@A+DPTR

;查表

MOVDPTR,#ADDR

;DPTR←数码管口地址MOVX@DPTR,Am:DB

3FH,06H,5BH,4FH,…abcdefgh74LS273DI1…DI8CLK≥CSP0口80C51WR显示代码锁存器MCI4495内部结构与引脚11地址译码器和笔段ROM阵列1a1b1c1d1e1f1g121314151234h+i11710D4位锁存器15A16B19C11LE290Ω×9VCR168VSSVDD(2)硬件译码方式硬件译码是用译码器把要显示的字符转换成显示代码。已有专用芯片,可把4位二进制数转换成对应的显示代码。例如Motorola公司生产的MC14495就是一种CMOS型七段十六进制--BCD码锁存译码驱动器,下图所示,真值表如书中的表7.4所示。MCI4495×280C51P10P11P12P13P14P16P17

ABCDLEabcdefgabcdefgABCDLEabcdefgabcdefgMCI4495与LED显示器的联接7.4.3LED显示器接口1.用8255实现LED显示器接口76LED显示器的扩展(显示方式)LED数码管的显示方式:静态与动态动态显示特点:

有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂。(有多个LED时尤为突出)静态显示特点:

无闪烁,用元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。静态显示:

各数码管在显示过程中持续得到送显信号,与各数码管接口的I/O口线是专用的。动态显示:

(用8155输出。P.211)各数码管在显示过程中轮流得到送显信号,与各数码管接口的I/O口线是共用的。LED显示器有静态显示与动态显示两种形式:1、静态显示接口

常采用MC14495芯片作为LED的静态显示器接口,它是MOTOROLA公司生产CMOSBCD—七段十六进制锁存、译码驱动芯片,可以与LED显示器直接相连。具体应用略。2.动态显示接口

常用可编程并行接口芯片8155作为LED动态显示器的接口。实验设备中8031通过8155接六只共阴极LED动态显示器的接口。PA口作为字位码口,PB口作为字形(字段)码口。LED显示器静态显示方式N位LED显示器静态显示电路ABCLKhgfedcbaCLRABCLKCLRABCLKCLR+5VVCCTxDRxD89C51单片机74LS16474LS16474LS164hgfedcbahgfedcba+5V共阳LED数码管LED数码管静态显示举例有几个LED就要几个74LS164,但只要数据不变,送一次就保持住了,且不闪烁,编程十分简单。在单片机系统中,如果并行口的IO资源不够,而串行口又没有其他的作用,那么我们可以用74LS164来扩展并行IO口,节约单片机资源。74LS164是一个串行输入并行输出的移位寄存器。并带有清除端。其中Q0—Q7是并行输出端。A,B串行输入端

温馨提示

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

评论

0/150

提交评论