微机可编程IO接口.ppt

上传人:小飞机 文档编号:6284504 上传时间:2023-10-13 格式:PPT 页数:57 大小:487KB
返回 下载 相关 举报
微机可编程IO接口.ppt_第1页
第1页 / 共57页
微机可编程IO接口.ppt_第2页
第2页 / 共57页
微机可编程IO接口.ppt_第3页
第3页 / 共57页
微机可编程IO接口.ppt_第4页
第4页 / 共57页
微机可编程IO接口.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《微机可编程IO接口.ppt》由会员分享,可在线阅读,更多相关《微机可编程IO接口.ppt(57页珍藏版)》请在三一办公上搜索。

1、微机系统与接口,1,第七章 并行I/O接口 与可编程并行接口,陆尧胜 谢军 主讲暨南大学信息科学技术学院电子工程系,微机系统与接口,微机系统与接口,2,第八章 并行I/O接口与可编程并行接口,可编程接口概术可编程并行输入输出接口芯片8255A可编程定时计数器接口芯片8253,微机系统与接口,3,可编程接口概术 一个简单的具有输入功能和输出功能的可编程接口电路(如下图),包括:1)一个输入接口,其组成主要是八位的三态门;2)一个输出接口,其组成主要是八位的锁存器;3)另外还有八位的多路转换开关及控制这个开关的寄存器FF。,微机系统与接口,4,可编程接口电路示意图:,微机系统与接口,5,-用户对寄

2、存器FF写入的内容称为命令字或方式控制字;-寄存器FF称为命令寄存器,相应的端口称为命令端口或控制端口;-对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操作过程。(思考:如何构造一个16-BIT 接口电路?),可编程接口的初始化,微机系统与接口,6,8255A 并行I/O接口8253 计数器/定时器8259A 中断控制器(第九章)8251 串行通讯控制器(第十章),常用的可编程芯片:,微机系统与接口,7,可编程并行输入输出接口-i8255A,一、接口功能:8255A是一种通用的可编程并行IO接口芯片,广泛用于几乎所有系列的微型机系统中,如8086、MC-S51、Z80-CPU

3、系统等。8255A具有3个带锁存或缓冲的数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式。通用性强、使用灵活,可为CPU与外设之间提供并行输入输出通道。,微机系统与接口,8,二、8255A的内部结构:,微机系统与接口,9,二、8255A的内部结构:,微机系统与接口,10,RD:读信号,低电平有效。WR:写信号,低电平有效。RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输入寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设信号线呈现高阻悬浮状态。,三、8255A的管脚:,微机系统与接口,11,8255A的管脚说明:1

4、、与外设连接的管脚 8255A有三个数据端口,每个端口是8位的,与外设相连接的管脚共有24位。其中:A口有PA7PA0八个I/O引脚,B口有PB7PB0八个I/O引脚,C口有PC7PC0八个I/O引脚。特别地,PC7PC0,其中可有若干根复用线可用于“联络”信号或状态信号,其具体定义与端口的工作方式有关。,微机系统与接口,12,2、与CPU连接的管脚-数据线D7D0-读写控制线-复位线RESET-片选信号-端口地址控制线A0和A1。,微机系统与接口,13,3、电源线和地线 8255A的电源引脚为VCC和GND:VCC为电源线,一般取5V。GND为电源地线。,微机系统与接口,14,8255A的工

5、作方式及编程,1、8255A的工作方式8255A有三种工作方式,它们是:方式0基本输入输出方式;方式1选通输入输出方式;方式2双向传送方式。Mode0/mode1/mode3 问题:与信息传递方式的对照?,微机系统与接口,15,2、8255A编程 所谓8255A编程,就是用户在使用8255前,用软件(/程序/指令)来定义端口的工作方式,重组硬件结构,选择所需要的功能。,微机系统与接口,16,1.8255A的方式命令字 作用:指定8255A的工作方式及该方式下3个并行端口(PA、PB、PC)的功能,是作输入还是作输出。格式:8位,其中最高位是特征位,一定要写1,其余各位定义如下,应根据用户的设计

6、要求填写1或0。,微机系统与接口,17,例1:要把A口指定为1方式,输入,C口上半部为输出;B组指定为0方式,输出,C口下半部定为输入,则工作方式命令字(代码)是:10110001B或B1H。若将此命令代码写到8255A的命令寄存器,即实现了对8255A工作方式及端口功能的指定,或者说完成了对8255A的初始化。初始化的程序段为:MOV DX,303H;8255A命令口地址 MOV AL,0B1H;初始化命令 OUT DX,AL;送到命令口,微机系统与接口,18,2.按位置位/复位命令作用:指定PC口的某一位(某一个引脚)输出高平或低电平。(位操作,只限于C口)格式:8位,其中最高位是特征位,

7、一定要写0,其余各位的定义如下,应根据用户的设计要求填写1或0.,微机系统与接口,19,例2:若要把C口的PC2引脚置成高电平输出,则命令字应该为00000101B或05H。将该命令的代码写入8255A的命令寄存器,就会使得从PC口的PC2引脚输出高电平,其程序段为:MOV DX,303H;8255A命令口地址 MOV AL,05H;使PC2=1的命令字 OUT DX,AL;送到命令口 如果要使引脚PC2输出低电位,则程序段为:MOV DX,303H;8255A命令口地址 MOV AL,04H;使PC2=0的命令字 OUT DX,AL;送到命令口,微机系统与接口,20,例3:利用8255A的P

8、C7产生负脉冲,作打印机接口电路的数据选通信号,其初始化程序段为:MOV DX,303H;8255A命令口 MOV AL,00001110B;置PC7=0 OUT DX,AL NOP;维持低电平,延时 NOP MOV AL,00001111B;置PC7=1 OUT DX,AL 利用C口的按位控制特性可产生脉冲或方波输出,对外设进行控制。(思考题:如何同时在PC4和PC7产生脉冲波?),微机系统与接口,21,3.A口和B口的“位操作”A口、B口也可以按位输出高低电平,但是,它与前面的按位置位/复位命令有本质的差别,并且实现的方法也不同,是以送数据到A口、B口来实现的。其具体作法是:若要使某一位置

9、高电平,则先对端口进行读操作,将读入的原输出值,“或”上一个字节,该字节中使该位为1,其他位为0,然后再送到同一端口,即可使该位为1;同样,将读入的原输出值“与”上一个字节,该字节中使该位为0,其他位为1,然后再送到同一端口,即可使该位清零。,微机系统与接口,22,例5:若要使PA7位输出高/低电平,则用下列程序段:1)使PA7输出高电平.MOV DX,300H;PA数据口地址 IN AL,DX;读入A口原输出内容 MOV AH,AL;保存原输出内容 OR AL,80H;使PA7=1 OUT DX,AL;输出PA7 MOV AL,AH;恢复原输出内容 OUT DX,AL,微机系统与接口,23,

10、2)使PA7输出低电平MOV DX,300H;A口地址IN AL,DX;读入端口原输出值MOV AH,AL;保存原输出值OR AL,7FH;使PA7=0OUT DX,AL;输出PA7 MOV AL,AH;恢复原输出内容OUT DX,AL,微机系统与接口,24,4.关于命令字的提示 方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始工作要在使用8255A之前做。按位置位/复位命令只是对PC口的输出进行控制,使用它不破坏已经建立的3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的任何地方。两个命令的最高位(D7)都分配作了特征位,之所以要设置特征位,

11、是为了硬件识别两个不同的命令。按位置位/复位的命令代码只能写入命令口(易弄错)。,微机系统与接口,25,五、8255A的三种工作方式,1、8255A工作在方式0 例1:8255A的A口和B口工作在方式0,A口为输入端口,接有四个开关。B口为输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段发光二极管显示开关所拨通的数字。,微机系统与接口,26,电路,LED数码管,段码表(字形码),微机系统与接口,27,程序段:mov al,90h;设置8255方式字mov dx,ctrl_port;方式0,A口输入、B口输入out dx,al mov dx,a_portin al,dx;取键

12、盘信息and al,0fh;屏蔽高4位mov bx,offset tab1;取段码表首地址xlat;查表得段码mov dx,b_port;输出显示out dx,al,微机系统与接口,28,应用举例,LED 数码管动态显示系统实验(参考)作业,微机系统与接口,29,2、8255A工作在方式1选通输入方式,PC4-STBA:A口的选通信号,当其有效时,外设把数据打入A口的输入缓冲器,PR5-IBFA:A口的输入缓冲器“满”信号,当其有效时表示A口的输入缓冲器已暂存一个有效数据。,PC3-INTRA:A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU从A口取数,INTE:中

13、断允许信号。,INTE,微机系统与接口,30,8255A工作在方式1(输入)时序图,微机系统与接口,31,8255A工作在方式1(输入)当A口已接受外设数据后,有两种方式通知CPU取数:其一用条件查询方式,通过查询缓冲器是否“满”,即IBFA是否为高电平来取数。其二用中断方式。,微机系统与接口,32,在条件传送中,一般要有所谓的“握手”信号来协调数据的传送。“握手”信号至少要有两位信号线,其中一位是由接口电路发给外设,功能是向外设提供接口电路的信息。另一位是由外设发给接口,功能是向接口提供外设的信息。8255A的选通输入方式中STBA和IBFA是一对“握手”信号。,微机系统与接口,33,状态字

14、:8255A的选通输入方式中STBA和IBFA信号也可通过查询其状态字来获取:通过读C口可获得状态字,A组状态位占C口的高5位,B组的状态字占低3位。从C口读取的状态字与C口外部引脚完全无关。,微机系统与接口,34,例2:8255A的A口和B口分别工作在方式1和方式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。,微机系统与接口,35,例题2电路图,微机系统与接口,36,系统的工作过程:1、用户通过改变K0K7,产生新的键信息;2、按下开关K,产生选通信号,数据进入A口的缓冲器,此步骤实际上告诉CP

15、U,8255的A口来了一个新数据;3、IBFA有效使LED点亮。这里含有两个信息,一个是8255A 通知CPU其A口来了一个新数据,另一个是告诉用户CPU尚未 取走这个这个数据,用户不得再送其他数据;4、CPU取走这个数据,LED熄灭;5、转步骤1。,微机系统与接口,37,设8255的I/O地址分布为88H8EH,相应的程序段如下:mov al,10111001b;设置A口为方式1的输入,loop1:in al,8ch;取C口的状态线test al,00100000b;测试IBFA信息jz loop1;等待用户设定新的键值mov cx,0ffffh;延时,LED灯亮(相对于步骤3)loop2:

16、loop loop2in al,80h;取数。LED灯灭(相对于步骤4)out 82h,al;更新B口的显示jmp loop1;重复,微机系统与接口,38,3、8255A工作在方式1选通输输出方式,外设回答信号。由外设发出。当其有效时,表示外设已接收数据。,A口的输出缓冲器“满”信号,当其有效时表示A口的输出缓冲器已暂存一个有效数据。,A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU送数给A口,中断允许信号。,微机系统与接口,39,8255A工作在方式1(输出)时序图,微机系统与接口,40,当A口已接受外设数据后,有两种方式通知CPU取数:其一用条件查询方式,通过查

17、询缓冲器是否“满”,即IBFA是否为高电平来取数。其二用中断方式。,微机系统与接口,41,在这种方式下,OBFA和ACKA是一对“握手”信号。OBFA是8255A产生,当其有效时,告诉外设A口已有一个新数据。ACKA是外设产生,当其有效时,通知A口外设已把数据取走。,微机系统与接口,42,例3:8255A的A口工作在方式1的输出,接有8个发光二极管,现要求把内存中的10个数,通过A口发送给发光二极管以二进制的形式供用户抄录。,微机系统与接口,43,例题3电路图,微机系统与接口,44,这个系统的工作过程如下:1、CPU把内存中的一个数据写入A口;2、LED灯亮,告诉用户LED显示的是新数据;3、

18、用户抄录数据;4、用户按下开关K,发ACK信号,告诉CPU数据已取走;转第一步。,微机系统与接口,45,mov cx,10;送10个数mov bx,offset xx;数组指针送bxloop1:mov al,bx;取数out 88h,al;送数到A口loop2:in al,8ch;取C口状态线anl al,80h;测试IBOAjnz loop2;用户尚未抄录数据,检测;等待,;此时;LED灯亮(对应步骤2)call delay;用户已抄录数据,LED灯灭(对;应步 骤4)inc bx;准备送下一个数 loop loop1;循环10次,微机系统与接口,46,4、8255A工作在方式2双向,外设回

19、答信号。由外设发出。当其有效时,表示外设已接收数据。,A口的输出缓冲器“满”信号,当其有效时表示A口的输出缓冲器已暂存一个有效数据。,A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU访问A口,中断允许信号。,中断允许信号。,A口的输入缓冲器“满”信号,当其有效时表示A口的输入缓冲器已暂存一个有效数据,A口的选通信号,当其有效时,外设把数据打入A口的输入缓冲器,微机系统与接口,47,如果设定某个8255A的A口和B口分别工作在方式2和方式1下,则这个8255A的C口的I/O功能将不在存在。当然如果B口是工作在方式0下,则C口还有3根线可作I/O线用。,微机系统与接口,

20、48,六、8255应用举例,1、与打印机接口 例4:在某一8086系统中接有一个打印机,8255A作为输出接口,工作在方式0。试编一程序将缓冲区BUFF内的400H个字节的ACK码送打印机打印。,微机系统与接口,49,打印机具体工作过程如下:1、数据线D7D0出现有效数据;2、STB有效,通知打印机,接口给打印机一个数据,数据从数据线进入打印机;3、BUSY有效,告诉接口,打印机正在打印数据。打印完毕,BUSY变为无效,表示打印结束。,微机系统与接口,50,程序段:print_data proc;打印子程序,入口在dl中print1:in al,c_port;无条件读C口数据test al,0

21、0010000b;测试busy线jnz print1;busy有效,循环测试mov al,dl out a_port,al;打印数据进入A口 mov al,00000000b;发选通信号 out ctrl_port,almov al,00000001b out ctrl_port,alret;返回主程序print_datA endp,微机系统与接口,51,2、人机交互接口LED 动态显示 例5、常用的显示称为动态显示,它采用扫描显示技术,可以使硬件开销降低很多。对于一个8位数据显示,它就需要两个输出端口就可以了。其电路如图所示。在两个输出端口中,一个称为段信号通道,它用来输出要显示数据的段码;

22、另一个称为位信号通道,用来决定当前要显示数据的位置。,微机系统与接口,52,动态显示电路图,微机系统与接口,53,显示系统的具体工作步骤如下:a、设要显示的初始位码i0;b、送第i位的段信号;c、送第i位的位信号;d、延时;e、i1if、如果i小于8,转bg、8位数据显示结束。,微机系统与接口,54,程序段:a_port equ 80h;定义8255A的四个端口b_port equ 82hc_port equ 84hctrl_port equ 86hdatasegment;定义数据段tab1db 3FH,06H,5BH,4FH,;定义段码表dispbuffdb 2,0,0,2,0,8,2,2;定义显示缓冲区dataends,微机系统与接口,55,3、人机交互接口键盘扫描 例6、图所示为矩阵式键盘电路,其特点是由按键组成一个矩阵,矩阵的行线和列线分别作为两个传输方向相反的I/O接口信号线,比如行线作为输入接口信号线,列线作为输出接口信号线,或反之。,微机系统与接口,56,键盘扫描电路图,微机系统与接口,57,在翻转法中,行列线交换输入、输出,两步就可获取键位置信息。可见这种方法要比扫描法效率高。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号