[信息与通信]第8章 可编程接口芯片及其应用.ppt
《[信息与通信]第8章 可编程接口芯片及其应用.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第8章 可编程接口芯片及其应用.ppt(100页珍藏版)》请在三一办公上搜索。
1、第八章可编程接口芯片及其应用,8.1 可编程接口芯片概述接口电路中的单元(1)输入输出数据锁存器和缓冲器,用以解决CPU与外设之间速度不匹配的矛盾,以及起隔离和缓冲的作用;(2)控制命令和状态寄存器,以存放CPU对外设的控制命令,以及外设的状态信息;(3)地址译码器,用来选择接口电路中的不同端口(寄存器);(4)读写控制逻辑;(5)中断控制逻辑。,接口中的一些公用引脚作用及其连接方法 1.片选概念 CS 或CE 2.读/写概念 DB线,M/IO线,RD线,WR线,CE/CS线 3.可编程接口的概念 目前所用的接口芯片大部分是多通道、多功能的。所谓多通道就是指一个接口芯片一面与CPU连接,另一面
2、可接几个外设.所谓多功能是指一个接口芯片能实现多种接口功能,实现不同的电路工作状态。,4.“联络”的概念 STB:选通信号;RDY:就绪信号(Ready)1)以输入接口为例:RDY=“H”表示接口芯片中输入 寄存器已 空,可接受外设信息以实现外设与接口的输入操作。STB=“L”表示接口选通,是外设向接口发出的,过程:1)外设把数据送上接口芯片端口后,用STB信号有效打人接口芯片输入寄存器;2)在STB的后沿,把RDY信号拉 为“L”,表明输入寄存器已有数据。RDY=“L”正是接口与外设的通信标志,外设 接收RDY=”L”后,暂不送数据;3)CPU发出读数指令,读人该数据,并使RDY置“H”。然
3、后,又开始新一轮的输入操作在输入接口中,RDY信号有时用IBF(输入缓冲器满)表示。,如是输出接口,则:RDY=“H”,表示接口寄存器已有数据,通知外设来取数;STB=“L”,表示端口数据已为外设接收,且已处理,CPU可送新数据到接口 寄存器,STB的后沿使RDY变为“L”。在输出接口中,RDY信号有时用OBF(输出 缓冲器满)表示,STB信号有时用ACK(响应)表示。,接口芯片的引脚,8.2 可编程并行接口芯片8255A,8.2.1 8255A的结构和引脚功能,1数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。2三个8位端口PA、PB和PC PA、PB和PC端口
4、都可由程序设定为各种不同的工作方式。端口A(PA口)有一个8位数据输入锁存器和一个8位数据输出锁存缓冲器;端口B(PB口)有一个8位数据输入缓冲器和一个8位数据输入输出、锁存缓冲器;端口C(PC口)有一个8位数据输入缓冲器和一个8位数据输出锁存缓冲器。通常PA口与PB口用作输入输出的数据端口,PC口用作控制或状态信息的端口。,一、8255A的内部结构,3A组和B组的控制电路 这两组控制电路根据CPU发出的方式选择控制字来控制8255A的工作方式,每个控制组都接收来自读写控制逻辑的“命令”,接收来自内部数据总线的“控制字”,并向与其相连的端口发出适当的控制信号。A组控制部件用来控制PA口和PC口
5、的高4位(PC,PC4);B组控制部件用来控制PB口和PC口的低4位(PC,PCo)。4读写控制逻辑 用来管理数据信息、控制字和状态字的传送,它接收来自CPU地址总线的 A1、A0和控制总线的有关信号(RD、WR、RESET等),向8255A的A、B两组控制部件发送命令。,二、8255A的引脚功能,。CS 选片信号,低电平有效,由它启动CPU与8255A之间的通信(Communication)。RD 读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。WR 写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。RESET复位信号,高电平有效,它清除控制寄存器并置所有
6、端口(A、B、C)为输入方式。A1,A0:片内寄存器选择信号(输入)A1A0=00:选中PA口;A1A0=01:选中PB口;A1A0=10:选中PC口;A1A0=11:选中控制端口;D7D0:与CPU侧连接的数据线(双向)PA7PA0:A口外设数据线(双向)PB7PB0:B口外设数据线(双向)PC7PC0:C口外设数据线(双向),表 81 8255A端口功能选择,8.2.2 8255A的工作方式,一、方式0基本输入输出 方式0下,每一个口都作为基本的输入输出口,C口的高4位和低4位以及A口、B口都可以独立地设置为输入口或输出口。8255A在方式0工作时,CPU可以采用无条件读写方式与8255A
7、交换数据;如果把C口的两个部分用作控制和状态口,与外设的控制和状态端相连,CPU也可以通过对C口的读写,实现A口与B口的查询方式工作;方式0中,不允许采用中断方式工作。,二、方式1选通输入输出(应答式输入输出)方式1下将三个端口分成A、B两组,A、B两个口仍作为数据输入输出口,而C口分成两部分,分别作为A口和B口的联络信号。方式1的输入,(1)STB:输入的选通信号 低电平有效。由外设提供,为低电平时,就把输 入的数据信号(PA7-PA0或PB7-PB0)送入A端口(或B端口)的数据锁存器。(2)IBF:输入缓冲器满信号,高电平有效。由8255A输出,有效时,用以通 知外部设备输入的数据已写入
8、缓冲器。(3)INTR:中断请求信号,高电平有效。当外部设备要向CPU传送数据或请求服务时,8255A就用INTR端的高电平向CPU提出中断请求。当STB、IBF和 INTE都为高电平时,表明数据锁存器内已写入了数据使INTR成为高电平输 出。(4)INTE:中断允许信号。A端口用PC4位的置位复位控制,B端口用PC2位的置位复位控制。只有当PC4或Pc2置1时,才允许对应的端口送出中断请求。,方式1的输入过程如下(A口):1)当外设准备好数据,在送出数据的同时,送出一个选通信号STB。8255A的A口数据锁存器在STB下降沿控制下将数据锁存。2)8255A向外设送出高电平的IBF,表示锁存数
9、据已完成,暂时不要再送数据。如果PC41(1NTE1),这时就会使INTR变成高电平输出,向CPU发出中断请求。3)CPU响应中断,执行IN指令时,RD信号的下降沿清除中断请求,而RD结束时的上升沿则使IBF复位到零。外设在检测到IBF为零后,可以开始输入下一个字节。2方式1的输出 联络信号信号的作用如下:(1)OBF:输出缓冲器满信号;低电平有效。由8255A输出,当其有效时,表示CPU已经将数据输出到指定的端口,通知外设可以将数据取走。(2)ACK:响应信号,低电平有效。由外设送来,有效时表示8255A数据已经为外设所接收。,(3)INTR:中断请求信号高电平有效。当外设接收了由CPU送给
10、8255A的数据后,8255A就用INTR端向CPU发出中断请求,请求CPU再输出后面的数据。INTR是当ACK,OBF和INTE都为高电平时,才能被置成高电平。(4)INTE:中断允许信号。A口的INTE由PC6置复位,B口的INTE由PC2置复位。PC4、PC5位可以由控制字的D3,设置为输入或输出数据用。方式1的输出过程如下(A口):1)微处理器发WR信号,将数据送入端口的输出缓冲器,WR上升沿一方面清除INTR信号,另一方面使OBF有效,通知外设可以取数;2)外设取数后,发ACK信号,一方面使OBF无效(表示数已取走),另一方面使INTR有效,开始另一个新的输出过程。三、方式2双向选通
11、输入输出 通过8位数据线与外设进行双向通信的方式,既能发送,又能接收数据。工作时可以用中断方式,也可以用查询方式与CPU联系。,8.2.3 8255A 的初始化,一、方式控制字,二、C口按位置/复位,8.2.4 8255A的应用举例,例1:在一系统中,要求8255工作在方式0,A口为输入,B口、C口为输出。Mov al,90h Out 63h,al;送控制字到控制字寄存器。Call delay1 In al,60h;从A口输入数据 Call delay2 mov al,data1 Out 61h,al;从B口输出数据 Call delay3 mov al,data2 Out 62h,al;从C
12、口输出数据,例2:假定在一个系统中,要求8255工作在方式1,端口A为输出,端口B为输入,PC4PC5 为输入,禁止端口B中断。,Mov al,0afh;控制字Mov dx,xxxxxx11b;控制寄存器地址 Out dx,al;送入控制字寄存器Mov al,09h;A口的INTE(PC4)置1Out dx,al;送入控制字寄存器Mov al,04h;B口的INTE(PC2)置0Out dx,al;送入控制字寄存器,例3:假定在一个系统中,端口A工作在方式2,端口B工作在方式0且为输入,端口C的三位 PC0PC2 位输入。,Mov al,11xxx011b;控制字Mov dx,xxxxxx11
13、b;控制寄存器地址 Out dx,al;送入控制字寄存器,例4:若采用查询式实现8255A与打印机接口,用PB口传送内存DATA单元开始的100个字节数据,PC7用作STB信号、PC3作为BUSY信号,如图所示。试完成控制程序设计。,LEA DI,DATA MOV CX,100 MOV AL,81H;方式控制字 OUT 83H,AL NEXT:MOV AL,0FH;PC7=1 OUT 83H,ALTESBY:IN AL,82H TEST AL,08H JNZ TESBY MOV AL,DI OUT 81H,AL INC DI MOV AL,0EH;PC7发 选通打印机 OUT 83H,AL I
14、NC AL OUT 83H,AL LOOP NEXT RET,说明:当CPU通过接口要求打印机打印数据时,先查看BUSY信号,当BUSY=L时,才向打印机输出数据,在把数据送上DATA线后,先发STB选通打印机,打印机接到STB 后,发BUSY=H,接收数据,当数据接收号并存入内部打印缓冲区后,送出ACK信号,表示打印机已准备好接收新数据,并撤销BUSY(0),例5:利用工作方式1的8255A的PA口作D/A转换器的输出接口,利用下降沿启动D/A转换,转换结束的回答信号为“0”脉冲。8255A的端口地址为3E0H3E3H.1)试设计D/A转换器的接口电路2)采用条件传送方式,将存储器BUFFE
15、R缓冲区中的5000B的波形数送D/A转换器转换,编写程序段。MOV DX,3E3H INC DX MOV AL,10100000B;工作方式 MOV AL,00001100B;OUT DX,AL;已输出5000个波形数,PC60,关中断 MOV AL,00001101B;PC6=1 开中断 OUT DX,AL OUT DX,AL LEA SI,BUFFER MOV CX,5000LOP1:MOV DX,3E0H MOV AL,SI OUT DX,AL;输出数 INC SI MOV DX,3E2HLOP2:IN AL,DX;检查PC3 AND AL,08H JZ LOP2 LOOP LOP1,
16、例6:试用8255A工作方式1,以中断方式作为打印机接口。电路如下图。要求1)8255A的B口工作于方式1;2)设中断向量为2000:3000H在2CH、2DH、2EH、2FH中;3)端口地址设为E0H、E2H、E4H、E6H;4)编程完成控制过程。,START:MOV AL,10000100B OUT 0E6H,AL;工作方式控制字 MOV AL,00001011B OUT 0E6H,AL;PC5=1使选通无效 XOR AX,AX;设置0BH号中断的中断向量表 MOV DS,AX MOV AX,3000H MOV WORD PTR 002CH,AX MOV AX,2000H MOV WORD
17、 PTR 002EH,AX MOV DI,OFFSET BUFF;设置字符缓冲区指针 MOV AL,00000101B OUT 0E6H,AL;PC2=1,置INTE=1 STI,未用,ROUTINTR:MOV AL,DI;DI为打印机字符缓冲区指针,字符送A口 OUT 0E2H,AL MOV AL,00001010B;PC5=0,产生选通信号,即负脉冲 OUT 0E6H,AL INC AL;PC5=0,使选通无效 OUT 0E6H,AL IRET,一、键盘接口有两类键盘:编码键盘和非编码键盘键盘输入信息的过程可归纳为三步:(1)检查是否有按键按下;(2)查出按下的是哪一个按键;(3)将该键所
18、代表的信息翻译成计算机能够识别的代码,如ASC或其它预先约定的编码。如果第二、三步用硬件完成,则称为编码键盘如果第二、三步用软件完成,则称为非编码键盘,图8-13 非编码键盘接口,使用行扫描寻找按下键的编码(键号)的程序如下:,PORTAEQU0FFF8H;定义端口A的口地址PORTBEQU0FFFAH;定义端口B的口地址PORTCEQU0FFFCH;定义端口C的口地址PORTCNEQU0FFFEH;定义控制字端口的口地址MOVDX,PORTCN;置8255A端口A、B工作方式在方式0MOVAL,1000 0010B;控制字,端口A为输出,端口B为输入OUTDX,ALWAIK:MOVDX,PO
19、RTA;等待键闭合MOVAL,0;行码送全“0”OUTDX,ALMOVDX,PORTBINAL,DX;读列码CMPAL,0FFH;列码与0FFH比较,JZWAIK;如果没有键按下,返回MOVBL,0;扫描键盘矩阵,送键号初值MOVBH,1111 1110B;置初始扫描模式-行码送FEHMOVCX,8FNDROW:MOVAL,BH;送行码MOVDX,PORTAOUTDX,ALROLBH,1;修改行码MOVDX,PORTB;读列码INAL,DXCMPAL,0FFH;比较是否有键按下JNZFNDCOL;有则转FNDCOL,查列号ADDBL,8;无键按下,指向下一行LOOPFNDROW;8行扫描未完,
20、转回FNDROWJMPDONE;8行完成后,无键按下,转DONE,FNDCOL:RORAL,1;查哪一列有按键按下JNCRIGHT;查到按下的按键键号,转RIGHTINCBL;键号加1,查下一列JMPFNDCOL;无条件转回RIGHT:;按下键的编号在BL中:DONE:;无按键按下,结束,二、七段LED显示接口,七段(或八段)LED数码管简介,abcdefgDP,abcdefgDP,阴极,阳极,图8-14 七段(或八段)LED数码管,图8-15 8位LED显示器接口电路,设计要求:在8个数码管上动态扫描显示8位十六进制数(0-F)每显示一位后延时20ms周而复始地显示一个双字的十六进制数码,:
21、;数据段定义开始SSEGCODE:DB0C0H(0);定义16进制数字符的7段码DB0F9H(1)DB0A4H(2)DB0B0H(3)DB99H(4)DB92H(5)DB82H(6)DB0F8H(7)DB80H(8)DB98H(9)DB88H(A)DB83H(B)DB0C6H(C)DB0A1H(D)DB86H(E)DB8EH(F),FOURBYTE:EQU THIS BYTEDBLWORD:DD 2143H,6587H;定义双字常数量:MOVAL,1000 0000B(80H);A、B口方式0,输出MOVDX,0FFFFH;8255A控制字端口地址OUTDX,AL;置方式字:CLD;方向标志置
22、0(0DF)控制串操作递增AGAIN:MOVCX,4;置计数初值4MOVSI,OFFSET FOURBYTE;求偏移量MOVAH,11111110B;送常数FEH AHLOOPDISP:LODSB;P110,DS:SIAL,SI自动加1MOVDI,AX;暂存AX的值(AH 位选,AL7段码)ANDAL,0FH;屏蔽高4位,取低4位编码MOVBX,OFFSET SSEGCODE;求段码表首地址,XLAT SSEGCODE;查段码表MOVDX,0FFFAH;送端口B地址OUTDX,AL;输出显示数码值MOVAL,AH;送AHALMOVDX,0FFF8H;送端口A地址OUTDX,AL;输出数码的位选
23、码PUSHCX;CX压栈MOVCX,NDELAY;延时2ms,NDELAY-延时常数IDLE:NOPNOPLOOP IDLE:MOVAL,0FFH;送常数(AH)=FFHALOUTDX,AL;禁止显示MOVAX,DI;恢复(AH 位选,AL7段码),MOVCL,4SHRAL,CL;逻辑右移4位,取高4位编码MOVBX,OFFSET SSEGCODE;求段码表首地址XLAT SSEGCODE;查段码表MOVDX,0FFFAH;送端口B地址OUTDX,ALROLAH,1;循环左移1位,电亮下一个数码管MOVAL,AH;送AHALMOVDX,0FFF8H;送端口A地址OUTDX,AL;输出数码的位选
24、码MOVCX,NDELAY;延时2msIDLE2:NOPNOPLOOP IDEL2ROLAH,1;循环左移1位,电亮下一个数码管,MOVAL,0FFHOUTDX,AL;禁止显示POP;出栈LOOP LOOPDISP;8位未显示完,转LOOPDISPJMPAGAIN;8位显示完,转回AGAIN:,三、打印接口,1.并行接口标准(Centronics)P311 表8-4所示2.打印机的工作过程及接口电路 电路如P313 图8-17所示3.8255A的应用编程(1)8255A的初始化程序段(2)打印机中断服务程序,四、LED/开关接口,图8-18 8086CPU、8255A同开关7段LED的接口,8
25、255A,1,1,1,+5v,+5v,PA0,PA1,PA7,PB3,PB2,PB1,PB0,a,b,DP,8255A初始化PA口输出、PB口输入工作于方式0,从PB口读入信息,屏蔽高4位,取开关状态,查7段显示码表,从PA口输出7段显示码,延时,程序流程(工作原理),A1,A2,A0,A1,解题分析,(1)8255A的负载能力较小,所以输出口PA经驱动器同7段LED显示器连接;(2)8255A设置为方式0工作,PA口输出,PB口输入;(3)由于8255A的A0A1与CPU的A1A2相连接,A0可以为“1”或“0”,因此,每个端口有两个地址,如:PA口地址为0FF8H或0FF9H;(4)按题意
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息与通信第8章 可编程接口芯片及其应用 信息 通信 可编程 接口 芯片 及其 应用
链接地址:https://www.31ppt.com/p-5615540.html