1 / 36

可编外围接口芯片 8255A 及其应用

可编外围接口芯片 8255A 及其应用. 8255A 的工作原理. 可编程并行 I/O 应具有的功能:. 1 、具有缓冲、锁存功能的数据端口;. 2 、每个端口都具有与 CPU 交换必须的状态和控制信息,也具有与外设交换必须的状态和控制信息(的握手信号);. 3 、具有中断方式实现 I/O 的有关电路;. 4 、片选和连接控制电路;. 5 、可通过 CPU 对芯片的编程,选择数据端口、数据传送方向,选择查询或中断通信方式。. 与外设连接的数据端口. 与 CPU 连接的接口电路. PA7~PA0. A 口. A 组控制. DB. 总线

bjorn
Download Presentation

可编外围接口芯片 8255A 及其应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 可编外围接口芯片8255A及其应用 8255A的工作原理 可编程并行I/O应具有的功能: 1、具有缓冲、锁存功能的数据端口; 2、每个端口都具有与CPU交换必须的状态和控制信息,也具有与外设交换必须的状态和控制信息(的握手信号); 3、具有中断方式实现I/O的有关电路; 4、片选和连接控制电路; 5、可通过CPU对芯片的编程,选择数据端口、数据传送方向,选择查询或中断通信方式。

  2. 与外设连接的数据端口 与CPU连接的接口电路 PA7~PA0 A口 A组控制 DB 总线 缓冲器 PC7~PC4 上C口 内部总线 PC3~PC0 RD 下C口 WR 读/写 A0 控制逻辑 A1 B口 PB7~PB0 B组控制 RESET CS 一、结构和工作原理 内部控制逻辑电路

  3. PA7~PA0 A口 内部总线 上C口 PC7~PC4 下C口 PC3~PC0 B口 PB7~PB0 1、 数据端口 三个8bit的数据端口PA、PB、PC PA:可用于输入、输出或双向 PB:可用于输入、输出, 但不能用于双向 PC:可用于输入、输出。 可分为二个4bit端口作为PA、PB口状态、控制信号的通路

  4. A组控制 A口 内部总线 上C口 B组控制 下C口 B口 2、 控制逻辑 控制寄存器:存放来自CPU对8255的控制命令字。以决定PA、PB、PC端口的工作方式。 A组控制电路的控制对象: PA口、PC口上半部(PC7~PC4) B组控制电路的控制对象: PB口、PC口下半部(PC3~PC0)

  5. 数据 总线 缓冲器 内部总线 DB RD 读写 控制 逻辑 WR A0 至控制寄存器 A1 RESET 至数据端口 CS 3、数据总线缓冲器 8bit三态数据缓冲器: 连通CPU的DB与8255的内部总线是CPU执行IN、OUT指令的数据通道。

  6. 数据 总线 缓冲器 内部总线 DB RD CPU从8255读入数据或状态 WR CPU向8255写出数据或命令 RESET 总清,使PA、PB、PC初始化为输入状态 RD 读写 控制 逻辑 WR A0 至控制寄存器 A1 RESET 至数据端口 CS A15~A2 A1 A0 端口 0 0 PA CS、A1、A0 选择8255内部的4个寄存器 系统接口地址译码确定CS 0 1 PB 1 0 PC 1 1 控制口 4、 读/写控制逻辑 与CPU的AB、CB连接,实现CPU对8255的控制。

  7. 8255(1) 8255(2) 200H~203H A0A1 A0A1CS A0A1CS PA PB PC PA PB PC 200H 译码 D7~D0 D7~D0 A15~A2 RDWR RDWR 208H M/IO RESET RESET D7~D0 208H~20BH 8088 CPU RD WR RESET 4、8255与CPU的连接

  8. 二、8255A的控制字 1、工作方式控制字

  9. 2、位控(置位/复位)方式的数据输出 端口C有一种特殊的控制方式,可以将端口C的某一位置1或清0,而不影响端口C其他位的状态

  10. 在满足握手条件时,8255向CPU申请中断,在中断服务程序中执行IN或 OUT指令对指定端口读入或写出。 指定端口有PA、PB;握手信号专用通道是PC,不再作为数据端口。 三、8255A的工作方式 1、方式 0 基本输入输出方式 适用于不需要握手信号的简单I/O场合。 指定端口有PA、PB、PC 2、方式 1-选通输入输出方式 输入或输出都通过选通握手信号实现。

  11. 选通输入方式 CPU 8255 外设 选通输出方式 PA 数据线 CPU 8255 外设 INTRA PC3 PA 数据线 PC4 STBA INTRA PC3 PC5 IBFA PC6 ACKA PB 数据线 PC7 OBFA INTRB PC0 PB 数据线 PC1 IBFB INTRB PC0 PC2 STBB PC1 OBFB PC2 ACKB 方式1 选通输入输出方式

  12. STB-选通输入,低电平有效,外设数据输入送输入缓冲器;STB-选通输入,低电平有效,外设数据输入送输入缓冲器; 方式1输入 (A口) 8 PA7~PA0 INTEA PC4 STBA PC5 IBFA INTR-中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当 IBF =1、STB =1且 INTE =1时,INTR =1。 & PC3 INTRA RD PC6PC7 I/O线 选通输入信号说明 IBF-输入缓冲器满信号,高电平有效。由8255A输出的状态信号,表示输入锁存器已满,向外设指明不能再送入数据。 INTE -中断允许信号。是控制8255A能否向CPU发中断请求信号,它没有外部引脚,INTEA、INTEB是由用户对PC4、PC2按位置位实现的。

  13. 方式1输入时序图

  14. OBF-输出缓冲器满信号,输出,低电平有效。表示CPU已输出数据到指定端口。OBF-输出缓冲器满信号,输出,低电平有效。表示CPU已输出数据到指定端口。 ACK-外设的回答信号,低电平有效,由外设送给8255A。表示CPU送到指定端口的数据已被外设接受。 方式1输出 (A口) 8 PA7~PA0 INTEA PC6 ACKA PC7 OBFA & PC3 INTRA INTR-中断请求信号,高电平有效。 WR PC4PC5 I/O线 选通输出信号说明 INTE-中断允许信号。 INTEA、INTEB是由用户对PC6、 PC2按位置位实现的

  15. 方式1输出时序图

  16. INTRA PC3 PA7 1 8 ~ PA0 & OBFA PC7 ACKA PC6 INTE1 & WR STBA INTE2 PC4 IBFA PC5 RD PC2~PC0 3 3、方式2-双向总线方式 (仅适用于A口) PA7~PA0作为双向数据总线,PC3 ~PC7用作A口的联络控制信号。PC2~PC0可用作B口的应答信号线,或作I/O线。

  17. +5V RD RD D7~D0 D7~D0 PA7 K7 … PA0 RESET WR WR RESET 74LS138 K0 A7 G1 8255A 8086 M/IO A6 G2A A5 PB7 G2B A4 Y4 LED7 C A3 … B CS A0 A PB0 A2 A1 LED0 A1 A0 PA口:11110000 0FOH PB口: 11110010 0F2H PC口:11110100 0F4H 控制口:11110110 0F6H 8255A的应用举例 例:检测开关状态(断开/闭合)并在LED显示(亮/暗)

  18. +5V R PA7 K 8255 K状态 PA7 断开 1 闭合 0 开关状态的检测 上拉电阻

  19. PB7 LED 8255 PB7 LED状态 1 亮 0 暗 发光二极管的控制 限流电阻

  20. A口:基本输入,方式0 B口:基本输出,方式0 A 组 B 组 D7 D6 D5 D4 D3 D2 D1 D0 1 1=输入0=输出 下C口 I/O 特征位 D7=1 A组方式: 00=方式0 01=方式1 1x=方式2 1=输入0=输出 B口I/O 0=方式0 1=方式1 B组方式 1=输入0=输出 A口I/O 1=输入0=输出 上C口I/O 1 0 0 1 0 0 0 0

  21. MOV DX ,0F6H MOV AL ,90H OUT DX,AL ;向控制口写方式控制字 TEST:MOV DX,0F0H IN AL,DX ;从PA口读入8个开关状态 MOV DX,0F2H OUT DX,AL ;开关状态送PB口,由LED显示 CALL DELAY ;延时 JMP TEST ;不断循环

  22. +Vcc 10K 10K C D E F 8 9 A B 4 5 6 7 0 1 2 3 二、键盘接口 矩阵键盘接口的特点: 1、键盘由触点按键(开关)组成的矩阵形式。在行与列的交叉点位置安装按键。当按键闭合,相应的行和列连接。

  23. 1 闭合 断开 闭合 2、按键具有弹性,在闭合和断开的过程中有抖动。需要采取消抖措施。 抖动 抖动 采取延时10ms,再检测的消抖措施

  24. 例:用8255A芯片端口A做行线端口,端口B做列线端口,构成扫描键盘例:用8255A芯片端口A做行线端口,端口B做列线端口,构成扫描键盘

  25. 两种键盘扫描方法 正向扫描法: A口输出00H,B口读入键盘列线值。如果无键按下,则B口读入低4位值为0FH,否则,就有键按下。如果有键按下, A口输出FEH,如果B口读入有0,则第一行有键按下;如果没有, A口输出FDH,再查下去 反转扫描法:A口输出,B口输入。A口输出00H,B口读入键盘列线值。如果无键按下,则B口读入低4位值为0FH,否则,就有键按下。如果有键按下,将8255A的A口设置为输入,B口为输出。把B口读入的列值从B口输出,同时从A口读入行值。用读入的行、列值查表,可以确定是哪一个键被按下

  26. 反转扫描法程序 KEYSCAN PROC NEAR BEGIN: MOV DX,XXH ;置8255A控制口地址 MOV AL,82H ;A方式0输出,B方式0输入 OUT DX,AL ;输出8255A方式控制字 LOOP1: MOV DX,XXH ;A口地址送DX MOV AL,00H OUT DX,AL ;A口输出00H扫描键盘 MOV DX,XXH ;B口地址送DX中 IN AL,DX ;读入键盘列值 AND AL,0FH ;保留低4位 CMP AL,0FH JE LOOP1 ;无键按下,重新扫描 CALL DELAY ;有键按下,延时去抖动

  27. IN AL,DX ;再次读B口,检查有无键按下 AND AL,0FH ;保留低4位 CMP AL,0FH JE LOOP1 ;无键按下,重新扫描 MOV KEY,AL ;有键按下,列值保存在KEY单元 MOV DX,XXH ;置8255A控制口地址 MOV AL,90H ;B口方式0输出,A口方式0输入 OUT DX,AL ;输出8255A方式控制字 MOV DX,XXH ;B口地址送DX中 MOV AL,KEY ;从KEY单元取出列值 OUT DX,AL ;向B口输出列值,反向扫描 MOV DX,208H ;A口地址送DX IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位

  28. CMP AL,1FH JE BEGIN ;无键按下,重新扫描 CALL KEYVALUE ;查表获得按键编码 MOV DX,XXH ;B口地址送DX中 MOV AL, 0 OUT DX,AL ;向B口输出列值,反向扫描 MOV DX,XXH ;A口地址送DX W2:IN AL,DX ;从A口读入行值 AND AL,1FH ;保留低5位 CMP AL,1FH JNE W2 ;未释放,等待 RET KEYSCAN ENDP

  29. a DP DP g g f f f b e e d d g c c DP b b 阳极 阴极 a a e c +VCC d 共阳极LED 共阴极LED 三、七段LED显示器及接口电路

  30. DP g f PA7 e PA6 DB7~DB0 反相驱动器 d PA5 阴极 c PA4 8255A b PA3 a PA2 PA1 PA0 共阴极LED 共阴极LED显示器接口电路

  31. a D6 D5 D4 D3 D2 D1 D0 f b g f e d c b a 0 1 0 0 0 0 0 0 40H g 1 1 1 1 1 0 0 1 79H 20 1 0 0 1 0 0 24H DP 30 1 1 0 0 0 0 30H e c 40 0 1 1 0 0 1 19H … … … … … … … … d E0 0 0 0 1 1 0 06H F0 0 0 1 1 1 0 0EH 显 示 代 码

  32. DISPY: MOV BX,OFFSET TABLE MOV AL,COUNT XLAT MOV DX, POR OUT DX, AL 查表显示数字的程序 TABLE DB 40H,79H,24H,30H,19H,12H,02H,78H DB 40H,79H,24H,30H,19H,12H,02H,78H

  33. D7~D0 驱动 PA7 D7~D0 RD WR A0 A1 CS RD WR A0 A1 ~ PA0 8088 +5V K3 CPU PC3 A2 A3 Y0 Y1 Y2 O O O A B C G2A G2B G1 K2 PC2 K1 PC1   K0 PC0 & A9 8255A LS138 +5V M /IO 例:8255A作为开关K0~K3及七段LED显示器接口。要求开关设置的二进制信息,由PC0~PC3输入,经程序转换为对应的七段LED显示器的字形代码后,由PA口输出显示。

  34. 8255A各端口地址确定: A2 A3 Y0 Y1 Y2 A B C G2A G2B G1 由图可知: A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 A4 A5 1 1 1 0 0 0 1 0  ~ 各端口地址为:388H~38BH & A9 LS138 8255A方式选择控制字: 按题意设置端口A方式0输出,下C口输入. M/IO 控制字为:1000×0×1 = 81H (或83H等) CS LED显示器的字形代码表存放在TABLE单元开始的内存中. TABLE DB 40H,79H,24H,30H,19H,12H,02H,78H DB 40H,79H,24H,30H,19H,12H,02H,78H

  35. MOV DX, 38BH ;设置8255A工作方式 MOV AL, 81H OUT DX, AL MOV DX, 38AH ;指向端口C,读开关状态 IN AL, DX AND AL, 0FH LEA BX, TABLE ;显示代码表首地址送BX XLAT ;查表,取出相应的字形码送AL MOV DX, 388H ;指向端口A OUT DX, AL ;输出字形码显示 HLT

  36. 第九章作业 • 9,10

More Related