1 / 44

微机原理

在此幻灯片插入公司的徽标 从“插入”菜单 选择图片 找到徽标文件 单击“确定” 重新设置徽标大小 单击徽标内任意位置。徽标外部出现的方框是“调整控点” 使用这些重新设置对象大小 如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。. 微机原理. 制作者: 张幸. 第九章 可编程接口芯片8255 A. 第一节 8255 A 的工作原理 第二节 8255 A 的应用举例. 第一节 8255 A 的工作原理. 一、功能 1.8255 有3个8位并行口. A 口:方式0,方式1,方式2 B 口:方式0,方式1

vadin
Download Presentation

微机原理

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. 在此幻灯片插入公司的徽标 • 从“插入”菜单 • 选择图片 • 找到徽标文件 • 单击“确定” • 重新设置徽标大小 • 单击徽标内任意位置。徽标外部出现的方框是“调整控点” • 使用这些重新设置对象大小 • 如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。 微机原理 制作者: 张幸

  2. 第九章 可编程接口芯片8255A 第一节 8255A的工作原理 第二节 8255A的应用举例

  3. 第一节 8255A的工作原理 一、功能 1.8255有3个8位并行口 A口:方式0,方式1,方式2 B口:方式0,方式1 C口:方式0 2. 方式0:基本I/O 方式1:选通I/O 方式2:双向I/O

  4. AB CB DB D7~D0 8255 PA PB PC 4 4 8 8 I/O I/O I/O I/O PA7 ~PA0 PB7 ~PB0 PC3 ~PC0 PC7 ~PC4 PB PA PC 8 I/O 8 I/O PB7 ~PB0 PA7 ~PA0 控制或 I/O 控制或 I/O RD WR A0 A1 CS PB PA PC 8 I/O 8 I/O PB7 ~PB0 PA7 ~PA0 I/O 控制 方式0:基本I/O 方式1:选通I/O 方式2:双向I/O

  5. 二、结构和引脚 A组 端口A PA7~PA0 A组 控制逻辑 数据总线缓冲器 A组 端口C 高4位 PC7~PC4 D0~D7 RD WR A0 A1 B组 端口C 低4位 读/写 控制 电路 B组 控制逻辑 PC3~PC0 RESET PB7~PB0 B组 端口B CS

  6. 1.数据端口A、B和C 端口A包含一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。 端口B包含一个8位的数据输入/输出锁存器/缓冲器,一个8位的数据输入缓冲器。 端口C包含一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器,无输入缓冲功能。

  7. A组控制 A口 内部总线 上C口 B组控制 下C口 B口 2.A组和B组控制逻辑 A组控制逻辑控制A口,C口上半部分(PC7~PC4) B组控制逻辑控制B口,C口下半部分(PC3~PC0)

  8. 3.数据总线缓冲器 用于8255和CPU传送数据信息 信息: CPU送给8255的控制字或输出数据 外设送给CPU的状态或输入数据

  9. 4.读/写控制逻辑 接受CPU送来的地址信号和控制信号 信号: RESET复位信号 高电平有效,8255复位状态为清控 制寄存器内容,使所有口呈输入状态 CS片选信号 低电平有效,表示该芯片被选中 RD读信号 低电平有效,表示CPU可从8255读数据或状态 WR写信号 低电平有效,表示CPU向8255写数据或控制字 A1A0端口选择信号 用于选择8255的3个数据口或控制字寄 存器

  10. 8255A端口选择表

  11. 三、8255的控制字 1. 方式选择控制字 2. 置位/复位控制字

  12. 1=输入0=输出 1=输入0=输出 1=输入0=输出 1=输入0=输出 特征位 D7=1 下C口 I/O A口方式: 00=方式0 01=方式1 1x=方式2 B口I/O B口方式 0=方式0 1=方式1 上C口I/O A口I/O 1.方式选择控制字

  13. 1 0 0 1 0 1 0 1 例:在一个8086/8088系统中,有一片8255A芯片,其各个端口的地址分别为0F8H~0FBH,现要求各个端口的工作方式为: 端口A 方式0 输入 端口B 方式1 输出 端口C(上半部) PC7 ~PC4 输出 端口C(下半部) PC3 输入 要求:进行初始化编程 分析:根据8255A工作模式可确定方式控制字 95H 初始化编程: MOV AL,95H OUT 0FBH,AL

  14. 2.置位/复位控制字 端口C常用作控制或应答信号,通过对8255A的控制口写入置位/复位控制字,可使C口的任一个引脚的输出单独置1或置0。 1 置位 0 复位 000 选中PC0 001 选中PC1  111 选中PC7 位选择 无关位 特征位 D7 = 0 例:要使端口C的bit3置位的控制字为:00000111B; MOV AL,00000111B OUT 0FBH,AL 而使端口C的bit3复位的控制字为:00000110B ; MOV AL,00000110B OUT 0FBH,AL

  15. 四、8255的工作方式和C口状态字 1. 方式0 基本输入输出方式(不需要应答) A口,B口,C口都可工作在方式0,既可输入也 可输出,数据输出有锁存,输入不能锁存。适用 于不需要握手信号的简单I/O场合。

  16. 2.方式1 选通输入输出 A口,B口可工作在方式1,既可输入也可输出。 当A口,B口工作在选通方式,C口相应口工作在联络信号。 选通方式为握手方式,适用于查询方式和中断方式。 方式1的输入输出选通信号不同

  17. STB选通信号 低电平有效 表示外部设备把数据送入8255 的A口或B口 8 PA7~PA0 D7D6D5D4D3D2D1D0 1 0 1 1 1/0 X X X INTEA PC4 PC5 STBA IBFA INTRA PC3 PC6,7 I/O 8 PB7~PB0 D7D6D5D4D3D2D1D0 1 X X X X 1 1 X INTEB PC2 PC1 STBB IBFB INTRB PC0 • 选通输入方式 IBF输入缓冲器满 高电平有效 表示数据已送到8255口,指示8255 不能再接受数据 INTE 中断允许信号 控制8255能否向CPU发中断请求 信号 A口(PC4) B口(PC2) INTR中断请求信号 高电平有效 当STB、IBF、INTE三者为高电 平时,INTR置成高电平,向CPU 提出中断申请

  18. OBF输出缓冲满信号 低电平有效 表示CPU将数据写入8255的A口或 B口 8 PA7~PA0 D7D6D5D4D3D2D1D0 1 0 1 0 1/0 X X X PC7 PC6 OBFA ACKA INTEA ACK外设回答信号 低电平有效 表示CPU送到8255口的被外设 INTRA PC3 PC4,5 I/O 8 PB7~PB0 D7D6D5D4D3D2D1D0 1 X X X X 1 0 X PC1 PC2 OBFB ACKB INTR中断请求信号 高电平有效 当ACK、OBF、INTE三者为高电 平时,INTR置成高电平,向CPU 提出中断申请 INTEB INTRB PC0 • 选通输出方式 INTE 中断允许信号 控制8255能否向CPU发中断请求 信号 A口(PC6) B口(PC2)

  19. INTRA PC3 ≥1 PA0~7 & OBF PC7 PC6 ACK INTE & STBA PC4 PC5 INTE IBFA WR PC0~2 I/O RD 3.方式2 双向方式 仅A口具有方式2,即同时 可输入输出,当A口工作在 方式2时,C口相应口作联 络信号 方式2在功能上为方式1输入 和输出的结合,且在输入和 输出时分别可以中断。

  20. D7 D6 D5 D4 D3 D2 D1 D0 输入 I/O I/O IBFA INTEA INTRA INTEB IBFB INTRB D7 D6 D5 D4 D3 D2 D1 D0 输出 INTEA OBFA OBFA I/O I/O INTRA INTEB OBFB INTRB D7 D6 D5 D4 D3 D2 D1 D0 INTE1 IBFA INTE2 INTRA * * * 4.C口状态字 8255A工作在方式0时,C口各位作输入输出用。当工作在方式1和方式2时,C口产生与外设的联络信号。此时。读取C口的内容可检查或测试外设的状态。C口的状态字如下: (1)方式1 (2)方式2

  21. PA7 D7~D0 RD WR RESET D7~D0 RD WR RESET M/IO K7 … PA0 74LS138 A7 K0 G1 G2A G2B C B A A6 LED A5 PB7 PB6 PB0 CS Y4 A4A3A0 … A1A0 A2A1 CPU8086 8255 第二节 8255A的应用举例 一、基本输入输出应用举例 PA口:11110000 0FOH PB口: 11110010 0F2H 控制口:11110110 0F6H PC口:11110100 0F4H

  22. 限流电阻 +5V R PB7 PA7 LED K 上拉 电阻 8255 K状态 PA7 8255 PB7 LED状态 断开 1 1 亮 闭合 0 0 暗 发光二极管的控制 开关状态的检测

  23. MOV DX,0F6H MOV AL,10010000B OUT DX,AL TEST-IT: MOV DX,0F0H IN AL,DX MOV DX,0F2H OUT DX,AL JMP TEST-IT

  24. +Vcc 10K 10K C D E K7 F … 8 9 A B 4 5 6 7 K0 0 1 2 3 独立式键盘 行列式键盘 在行与列的交叉点位置安装按键。当按键闭合,相应的行和列连接。 二、键盘接口 常用的键盘有机械式、薄膜式、电容式、霍尔效应式 键盘分独立式和行列式

  25. 下面以机械式触点按键组成的非编码键盘为例,对键盘接口功能和原理进行介绍。下面以机械式触点按键组成的非编码键盘为例,对键盘接口功能和原理进行介绍。 键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。

  26. 1 U0 无抖动 闭合 断开 闭合 • 抖动:机械式按键在压键时在触点可靠地接通前多次通断 抖动 抖动 防抖动:有硬件、有软件 软件防抖动通过软件延时(10ms) 硬件防抖动使用RS触发器

  27. 串键:多键同时按下或一键没按下又有新键按下串键:多键同时按下或一键没按下又有新键按下 解决方法: 双键锁定 、N键巡回 ①双键锁定:当检测到有两个或两个以上的键被按下时,只把最后释放的键当作有效键,并产生相应键码。 ②N键轮回:当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。

  28. 按键识别:行扫描法、线反转法 ①行扫描法:由程序对键盘进行逐行扫描,通过 检测到的列输出状态来确定闭合键。为此,需要 设置输入口、输出口各一个。 ②线反转法:该方法的基本思想是通过行列颠倒 两次扫描来识别闭合键。为此,需要提供两个可 编程的双向输入/输出端口。 • 键码产生

  29. 例如,假定有一个4×4的矩阵键盘通过并行接口例如,假定有一个4×4的矩阵键盘通过并行接口 芯片8255A与微机相连。8255A的A口定义为输出 口,与键盘行线相连;B口定义为输入口,与键 盘列线相连。 设8255A口地址为40H,B口地址为41H,控制寄存 器地址为43H。

  30. +5V 8255 E D C F PA3PA2PA1PA0 8 9 A B 4 5 6 7 1 2 3 0 CPU PB0PB1PB2PB3 行扫描法 行扫描键盘接口 键值=首列键号+列号

  31. 键盘扫描一般步骤: • 判断是否有键按下(行全部清0,读列值是否有0) • 若有键按下,消除抖动,确认有键按下? • 对压下键进行编码(扫描、查表) • 进行键处理 • 键释放,返回第二步

  32. MOV AL,82H ROL AL OUT 43H,AL MOV AH,AL BEGIN:MOV AL,0 IN AL,41H OUT 40H,AL AND AL,CL WAIT: IN AL,41H CMP AL,CL AND AL,0FH JNZ L2 CMP AL,0FH ADD CH,BH JZ WAIT MOV AL,AH MOV CX,7FFH DEC BL LO: LOOP LO JNZ L1 ST: MOV BL,04H JMP BEGIN MOV BH,04H L2: INC CH MOV AL,0FEH RCR AL MOV CL,0FH JC L2 MOV CH,0FFH MOV AL,CH L1: OUT 40H,AL JMP LEYTABLE

  33. 线反转键盘接口 +5V 8255 E D C F PA3 PA2 PA1 PA0 8 9 A B 4 5 6 7 1 2 3 0 PB4 PB5 PB6 PB7 PB0 PB1 PB2 PB3 线反转法 键0的编码=11101110 键1的编码=11101101

  34. 三、显示器及接口电路 常用的显示器有LED显示器、液晶显示器、CRT显示器 LED显示器有7段、米字型

  35. 译码/驱动器74LS247 译码/驱动器74LS249 abcdefg abcdefg 段码输入 段码输入 ABCD ABCD 共阴显示 共阳显示 +5v +5v 1.各个LED可按共阳极或共阴极连接,它们应分 别用不同的段码,经不同的驱动电路来驱动。 其段驱动电路的输出为低电平时,该段的LED导通并点亮,段驱动电路应能吸收额定的段导通电流 其段驱动电路的输出为高电平时,该段的LED导通并点亮,段驱动电路应能供给额定的段导通电流。

  36. 2.七段LED显示接口 • 动态:各个显示器对应的段码接同一I/O口,灯位控制端由不同I/O口控制。 • 静态:各个显示器的段码由不同的I/O控制,灯位控制端接成固定电平。

  37. abcdefg ABCD 段码输出 七段显示器 I/O口 8 2 灯位控制 动态接口的设计

  38. DB0——DB7 DB0——DB7 PA0PA1PA2PA3 PA4 PA5PA6 PA7 A B C D A B C D A B C D A B C D a b c d e f g a b c d e f g a b c d e f g a b c d e f g 5V 静态接口的设计 PB0PB1PB2PB3 PB4 PB5PB6 PB7

  39. 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 3.段码的转换: • 专用接口芯片 • 软件译码

  40. 软件译码 把0~9的十进制数转换成七段码 TABLE DB 40H,79H,24H,30H,19H DB 12H,02H,78H,00H,18H MOV AL,5 MOV BX,OFFSET TABLE XLAT TABLE

  41. 四、并行打印机接口 1.打印机接口信号 *数据信号接受CPU送来的数据信息 DATA1~DATA8 *控制信号 由CPU送出,控制打印机的动作 STB *状态信号 由打印机送给CPU,说明打印机的状态 ACK 应答信号 用于中断方式 BUSY忙信号 用于查询方式

  42. 2.打印机传送字符时序 BUSY ACK DATA DATA STB

  43. 打印机插座 3.打印机接口电路 IR2去8259 PA0 PA1 PA2 PA3 ERROR PE SLCT BUSY INTR PC0 PC2 ACK ACK STB PC4 PC5 8255 INIT PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 DATA1 DATA2 DATA3DATA4 DATA5 DATA6 DATA7 DATA8

  44. 以查询方式打印“THIS IS THE TEST!” MOV DX,PORT-CTL MOV AL,10010000B OUT DX,AL MOV CX,MESS-LEN MOV BX,OFFSET MESS-1 XX1: MOV DX,PORT-A XX: IN AL,DX TEST AL,00001000B JNZ XX MOV AL,[BX] MOV DX,PORT-B OUT DX,AL MOV DX,PORT-CTL MOV AL,00001000B OUT DX,AL MOV AL,00001001B OUT DX,AL INC BX LOOP XX1

More Related