《微机原理及接口技术-第10章-外围接口》由会员分享,可在线阅读,更多相关《微机原理及接口技术-第10章-外围接口(56页珍藏版)》请在金锄头文库上搜索。
1、第十章 可编程外围接口芯片8255A及 其应用8255A:可编程并行I/O芯片,40引脚INTEL 系列微处理器配套接口电路广泛应用于 :开关电路 ,键盘七段LED显示器,打印机软盘接口电路CRT控制电路及A/D,D/A接口电路10-1 8255A的工作原理一、结构,功能P340 图10-1 8255A的引脚图P341 图10-2 8255A的内部结构内部数据总线A组 端口AA组 端口C 高四位B组 端口C 低四位B组 端口BPA7PA0PC7PC4PC3PC0PB7PB0A组控 制逻辑B组控 制逻辑数据 总线 缓冲器读/写 逻辑 控制D7-D0RD WRA1A0 RESETCS8255A的内
2、部结构1、数据端口A,B, CA口:内含 一个8位输出锁存器/缓冲器和一 个8位输入锁存器 故I/O数据均能锁存A组:PA7PA0与PC7PC4组成B口:内含一个8位数据输入/输出锁存器/缓冲 器和一个8位输入缓冲器B组: PB7PB0与PC3PC0组成C口: 内含 一个8位输出锁存器/缓冲器(输出数据能锁存)和一个8位输入缓冲器(不能锁存) 当C口分为两个4位端口时,每个端口有一个 4位输 出锁存 器。2. 控制逻辑:其功能:接收CPU送来的命令字,确定A/B组工作方式; set or reset each bit of Port CC口(PC7PC0):可作普通I/O使用C口也可作两个4位
3、I/O口,还可以输出A口和B口的控制信号 及状态。3. 数据总线缓冲器双向三态8位缓冲器直接接到CPU的D7D0,其功能:接收数据和控制字 发送外设到CPU的数据及状态等4. 读/写控制逻辑管理内/外部的数据、控制字、状态字的传 递过程RESER 复位信号:高有效RESET=1时: 8255A内的控制R清0 A、B、C均为输入方式CS 片选信号:由CPU地址总线经译码产生 CS=0 时:RD=0CPU 读8255A数据,状态WR=0CPU向8255A写数据,控制字 RD读信号:CPU读8255A数据、状态 WR写信号:CPU向8255A写入数据、控制字8255A内部端口地址的确定A1A0 =0
4、0 选中A口A1A0 =01 选中B口A1A0 =10 选中C口A1A0 =11 选中控制端口 二、8255A的控制字两类控制字 :方式选择控制字 定义端口工作方式置位复位控制字C口任一位置位/复位 在控制字中 D7 =1 方式选择字D7 =0 置位复位控制字方式选择控制字:方式基本方式Basic IO方式选通方式 Strobe IO方式双向总线方式 Bidirectional Bus口:可工作于方式,任何一种口:只能工作于方式,(不能为方式2)口:分成双位,可基本,还可输 出,口控制信号,输入,的 状态。方式控制字的格式:D7D6 D5D4 D3 D2 D1 D0C口低4位I/O1=输入0=
5、输出B口I/O1=输入0=输出B口方式0=方式01=方式1C口高4位I/O1=输入0=输出A口I/O1=输入0=输出A口方式00=方式0 01=方式1 1X=方式2D7=1 标志位置位复位控制字:口的数位常用来产生控制信号(如应答式数据传送中断请求信号)或其他应答信号如:在i位产生电平控制信号只需简单编程即可编程前应写入置位复位字置位复位控制字:D7D6 D5D4 D3 D2 D1 D0任意值D7=0,标志位位选择1 置位 0 复位000 选中PC0 001 选中PC1111 选中PC7图10-4 置位/复位控制字格式例:设端口地址: 要求从上输出一正脉冲 编程: , , , ,三、工作方式和
6、口状态字工作在方式和方式时, 口为,口联络信号. 方式在方式0下:(basic),口为位口。口作个位端口,任一位可作输入 或 输出,口也可作为位口。注意:方式时: 输出数据可锁存输入数据不锁存例:设控制口为,要求设 置,口为方式,输入数据, 4为输入,为输出编程: , ,方式:(strobe 方式)口,口为位口,数 据均能锁存,但必须在选通信号下才能完成 操作(口产生或接收选通信号)。选通方式的几种情况 选通输入方式:口为方式,输入口4STB: 选通信号,外设提供 5IBF : 输入缓冲器满,供CPU查询1011/01D7 D6 D5 D4 D3 D2 D1 D0CONTROL WORDPC6
7、,7 1=INPUT 0=OUTPUTPA7PA0PC4PC5PC6,7INTEABI/OINTRAIBFASTBA2MODE 1(PORT A)RDPC3图10-6 选通输入方式外设数据准备好后有效数据 输入缓冲器已满( 查询用)读数据置 位允许外设向提供数据。 INTEnable 中断请求信号:只有当 均为高时才能发出 (即:数据进入缓冲器不再接收外设数据, 中断允许的情况下发)口为方式 输入口,工作过程类似于 口的情况区别在于:方式字:D7 D6 D5 D4 D3 D2 D1 D0111I/O1:PC3输入0:PC3输出 选通输出方式: 口方式输出(、作一般I/O)PC7OBF输出缓冲器
8、满。PC6ACR外设回答信号。PC3INTR方式字 1011/00D7 D6 D5 D4 D3 D2 D1 D0CONTROL WORDPC4,5 1=INPUT 0=OUTPUTPA7PA0PC7PC6PC4,5INTEAINTRAACKAOBFA2MODE 1(PORT A)WRPC3BB口为方式输出PC1OBF输出缓冲器满。PC2ACR外设回答信号。PC0INTR (3)选通I/O组合方式:1011/01D7 D6 D5 D4 D3 D2 D1 D0CONTROL WORDPC6,7 1=INPUT 0=OUTPUT1 0RDWRPA7-PA0 PC4PC5PC3 PC6,7PB7-PB
9、0 PC1PC2PC088STBAIBFAINTRAI/OOBFBACKBINTRB2WRRDPA7-PA0 PC7PC6PC3 PC4,5PB7-PB0 PC2PC1PC088 STBAIBFAINTRAI/OSTBBIBFBINTRB21011/00D7 D6 D5 D4 D3 D2 D1 D0CONTROL WORDPC4,5 1=INPUT 0=OUTPUT1 1方式1组合端口状态和控制字(a)A口输入B口输出(b)A口输出B口输入3、BB方式2:仅限A口,A口分时输出/输入111/0D7 D6 D5 D4 D3 D2 D1 D0CONTROL WORDPC2-0 1=INPUT 0=
10、OUTPUTPA7PA0PC7PC6PC2-0INTE1ACKAOBFA3WRPC4B1/01/0PORTB 1=INPUT 0=OUTPUTGROUP B MODE 0=MODE0 1=MODE1ADPC3PC5INTRASTBAIBFAI/O+INTE2与与4、C口状态字8255A工作于方式0c口各位可I/O使用当在方式1、方式2时,c口内容为联络信 号CPU读入c口状态字:1)方式1时c口状态字输入状态字:输出状态字:I/OD7 D6 D5 D4 D3 D2 D1 D0IBFBIBFAINTEAI/OINTRAINTEBINTRBI/OD7 D6 D5 D4 D3 D2 D1 D0OBF
11、BOBFAINTEAI/OINTRAINTEBINTRB2)方式2时c口状态字:(仅限A口)D7 D6 D5 D4 D3 D2 D1 D0OBFAINTE1IBFAINTRAINTE2State B group style 1 I/O B group style 010-2 8255A应用举例一、基本I/O应用:用8255A的A口检测8个开关状态(A口输入)Ki合PAi0 Ki断PAi1B口输出8个开关的状态(B口输出)Ki合PBi0LED灭Ki断PBi1LED亮D7-D0RDWR RESETM/IOA7A6A5A4A3A0A2A18086D7-D0 RD WR RESET8255AG1 G2
12、A G2BC B A74LS138Y4A1A0CSPA7PA6PA0PB7PB6PB0+5VK7K6K0LED7LED6LED0读开关状态连线图根据连接图确定端口地址:因为CS=y4 所以A4A3A2=100A7A6A5(必为)111 8255A的4个端口地址:A7 A6 A5 A4 A3 A2 A1 A01 1 1 1 0 0 0 0 F0H(A口)1 1 1 1 0 0 1 0 F2H(B口) 1 1 1 1 0 1 0 0 F4H(C口) 1 1 1 1 0 1 1 0 F6H(控制口 )确定控制字(方式选择字):编程: MOV DX , OF6H ; 控制口DXMOV AL , 90H
13、 ;方式选择字ALOUT DX , AL ; 写入方式字 TEST_IT:MOV DX , OF0H ; 指向A口IN AL , DX ; 从A口读入开关状 态MOV DX , OF2H ; 指向B口D7D6D5D4D3D2D1D010010000OUT DX , AL ; B口输出,指示开关状 态JMP TEST_IT ; 循环检测二、键盘接口A口:输出行扫描低电平PA0 PA1 PA2 PA3B口:PB7PB4 输入行码PB3PB0 输入列码扫描码的获得:0键:当PA30PB700键按下PB30所以,0键的键值编码为77H.PB7654321PB001110111=77HF键:当PA00PB40F键按下PB