当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北京大学:《微机原理 Microcomputer Principle 微机与接口技术》课程实验指导(微机与接口技术实验)单元实验6 并行接口扩展

资源类别:文库,文档格式:PDF,文档页数:9,文件大小:148.51KB,团购合买
点击下载完整版文档(PDF)

实验六并行IO接口的扩展 、实验目的 1.了解并行IO接口的扩展方法 2.掌握可编程接口芯片8255A的工作原理、编程方式和使用方法, 二、实验器材 微机一台,TPC-H通用微机接口实验箱一个。 三、实验原理 1.并行10口的扩展方法 微机系统在实际应用中常常需要扩展JO端口。 扩展并行ⅣO口主要有三种方法 (1)通过通用的IO扩展芯片实现。如 Intel公司的8255A、8155;zlog公司 的PIO等。 (2)通过TIL、CMOS锁存器、缓冲器芯片实现。如74LS377、74LS273 74LS244、74LS245等 (3)通过串行通信口扩展并行IO口 本实验中采用8255A扩展IO端口 2.采用8255A扩展/0端口 8255A是一种被广泛应用的可编程并行IO接口芯片 2.18255A的引脚和内部结构 CPU接口 内部逻辑 外设接口 A组 A组端 IO PAI-PAo 口A(8) 数据总 线缓冲 DB A组端 口C上 IO PCT-PCA 半部(4) B组端 B组 口C下 IO PC3-PCo 读/写 半部(4) 控制 控制 逻辑 人B组端 I0 PBr-PBo 1口B(8)N 图6.18255A内部结构框图

41 实验六 并行I/O接口的扩展 一、 实验目的 1.了解并行 I/O 接口的扩展方法; 2.掌握可编程接口芯片 8255A 的工作原理、编程方式和使用方法。 二、 实验器材 微机一台,TPC—H通用微机接口实验箱一个。 三、 实验原理 1. 并行I/O口的扩展方法 微机系统在实际应用中常常需要扩展I/O端口。 扩展并行I/O口主要有三种方法: (1)通过通用的 I/O 扩展芯片实现。如 Intel 公司的 8255A、8155;Zilog 公司 的 PIO 等。 (2)通过TTL、CMOS锁存器、缓冲器芯片实现。如 74LS377、74LS273、 74LS244、74LS245 等。 (3)通过串行通信口扩展并行I/O口。 本实验中采用 8255A 扩展 I/O 端口。 2. 采用 8255A 扩展 I/O 端口 8255A 是一种被广泛应用的可编程并行 I/O 接口芯片。 2.1 8255A 的引脚和内部结构 A 组 控 制 B 组 控 制 A 组 端 口 A(8) B 组 端 口 B(8) CPU 接口 内部逻辑 外设接口 A 组 端 口 C 上 半部(4) B 组 端 口 C 下 半部(4) 数据总 线缓冲 器 读/写 控制 逻辑 DB RD WR A0 A1 RESET CS IO PA7-PA0 IO PC7-PC4 IO PC3-PC0 IO PB7-PB0 图 6.1 8255A 内部结构框图

39日PA5 表6.1地址选择信号 PAId 38日PA6 寄存器 RD 0 0端口A数据寄存器 CS RESET 1端口B数据寄存器 0端口C数据寄存器 32口D2 控制寄存器 PC7口10 1口D PC5口 表6.28255A端口操作表 PC4口13 CS RD WR A1 AO 操作 PC2口16 读B口 24口PB6 PB0口18 23日PB5 读C口 22日PB4 写A口 PB2口20 21口PB3 B口 图6.28255A引脚图 写控制口 ×|数据总线为三态 数据总线为三态 2.28255A的编程控制字 8255A具有三种基本工作方式,即方式0、方式1、方式2。各端口的工作方式及输 入输出方向都由方式控制字设定(即编程)。8255A的编程是通过向其控制口送控制字 来实现的,8255A的控制字有方式控制字和C口置位/复位控制字两种 (1)方式控制字 D7 D6D5D4 D0 方式标志位=1 B组 A组 端口C(下半部 方式选择 1=输入 0=输出 01 方方方 式0 式1 端口B 式 输入 端口A 0=输出 1=输入 0=输出 方式选择 0=方式0 端口C(上半部 方式 1=输入 0=输出 (a)方式控制字

42 2.2 8255A 的编程控制字 8255A具有三种基本工作方式,即方式 0、方式 1、方式 2。各端口的工作方式及输 入输出方向都由方式控制字设定(即编程)。8255A的编程是通过向其控制口送控制字 来实现的,8255A的控制字有方式控制字和C口置位/复位控制字两种。 (1) 方式控制字 表 6.2 8255A 端口操作表 CS RD WR A1 A0 操作 0 0 1 0 0 读A口 0 0 1 0 1 读B口 0 0 1 1 0 读C口 0 1 0 0 0 写A口 0 1 0 0 1 写B口 0 1 0 1 0 写C口 0 1011 写控制口 0 11 ╳ ╳ 数据总线为三态 0 0111 非法操作 1 ╳╳╳╳ 数据总线为三态 图 6.2 8255A引脚图 D7 D6 D5 D4 D3 D2 D1 D0 方式标志位=1 A 组 方式选择 00=方式 0 01=方式 1 1×=方式 2 端口 A 1=输入 0=输出 端口 C(上半部) 1=输入 0=输出 B 组 方式选择 0=方式 0 1=方式 1 端口 C(下半部) 1=输入 0=输出 端口 B 1=输入 0=输出 (a) 方式控制字 表 6.1 地址选择信号 A0 A1 寄存器 0 0 端口A数据寄存器 0 1 端口B数据寄存器 1 0 端口C数据寄存器 1 1 控制寄存器

D7D6D5D4D3D2DIDO 置位/复位 1=置位0=复位 ×× 位选择位 01234567 01010101 无关 +00110011 00001111 置位/复位标志位=0 (b)C口置位/复位控制字 图6.38255A的控制字格式 方式控制字的格式如图6.3(a)所示。D7位为标志位,必须为1。C口可分为上半 部(PC7~PC4)和下半部(PC3~PC0),上半部属于A组,下半部属于B组。 例如8255A的A口为方式0输入,B口为方式0输出,C口上半部为方式0输出,下半 部为方式0输入,设8255A的控制口地址为28BH,则用以下指令来编程: MoV DX. 28BH MOV AL,10010001B 控制字送入累加器 OUT DX. AL ;控制字送入8255A (2)C口置位/复位控制字 C口置位/复位控制字格式如图6.3(b)所示,通过此控制字可以对C口的任意一位 置“1”或清“0″。C口置位/复位控制字也是送入8255A的控制寄存器,而不是C 口,一次只能对C口的一位操作。 例如,将C口的PC4置1用以下指令: MOV DX. 28BH MOV AL,00001001B C口置位/复位控制字送入A OUT DX. AL 控制字送入8255A 2.38255A的工作方式 (1)方式0 方式0是一种基本I/0方式。在这种工作方式下,三个端口都可由程序设定为输入 或输出,这种方式不使用联络信号,其基本功能为 ①两个8位端口(A、B)和两个4位端口(C ②任一个端口可以作为输入或输出 ③输出锁存,输入不锁存, ④在方式0时,各端口都可以作为数据端口,CPU用简单的输入或输出指令来进行 读或写 同时,方式0也可以作为查询方式输入/输出的接口,此时端口A和B可以作为数据 而端口C的某些位可以用来传送控制或状态信号 (2)方式1 方式1是一种选通/0方式。在这种方式下,端口A和B可作为数据端口,但C口的某

43 × × × 无关 (b)C口置位/复位控制字 图 6.3 8255A的控制字格式 方式控制字的格式如图 6.3(a)所示。D7 位为标志位,必须为 1。C口可分为上半 部(PC7~PC4)和下半部(PC3~PC0),上半部属于A组,下半部属于B组。 例如 8255A的A口为方式 0 输入,B口为方式 0 输出,C口上半部为方式 0 输出,下半 部为方式 0 输入,设 8255A的控制口地址为 28BH,则用以下指令来编程: MOV DX, 28BH MOV AL, 10010001B ;控制字送入累加器 OUT DX, AL ;控制字送入 8255A (2) C口置位/复位控制字 C口置位/复位控制字格式如图 6.3(b)所示,通过此控制字可以对C口的任意一位 置“1”或清“0”。C口置位/复位控制字也是送入 8255A的控制寄存器,而不是 C 口,一次只能对C口的一位操作。 例如,将C口的PC4 置 1 用以下指令: MOV DX, 28BH MOV AL, 00001001B ;C口置位/复位控制字送入A OUT DX, AL ;控制字送入 8255A 2.3 8255A 的工作方式 (1) 方式 0 方式 0 是一种基本I/O方式。在这种工作方式下,三个端口都可由程序设定为输入 或输出,这种方式不使用联络信号,其基本功能为: ①两个 8 位端口(A、B)和两个 4 位端口(C)。 ②任一个端口可以作为输入或输出。 ③输出锁存,输入不锁存。 ④在方式 0 时,各端口都可以作为数据端口,CPU用简单的输入或输出指令来进行 读或写。 同时,方式 0 也可以作为查询方式输入/输出的接口,此时端口A和B可以作为数据 口,而端口C的某些位可以用来传送控制或状态信号。 (2) 方式 1 方式 1 是一种选通I/O方式。在这种方式下,端口A和B可作为数据端口,但C口的某 置位/复位 1=置位 0=复位 0 1 2 3 4 5 6 7 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 位选择位 置位/复位标志位=0 D7 D6 D5 D4 D3 D2 D1 D0

些位要用来传送控制或状态信号,C口的其它位仍可工作于方式0。方式1的基本功能 为: ①用作一个或两个选通端口 ②每个选通端口包含有:8位数据瑞口,3条控制线,提供中断逻辑 ③任一端口可输入或输出。 ④若只有一个端口工作于方式1,余下的13位可以工作于方式0 ⑤若两个端口工作于方式1,C口余下2位可以工作于方式0 下面分方式1输入和方式1输出分别介绍。 (i)方式1输入 当A口或B口工作于方式1输入时,端口分配如图6.4所示。PA或PB作为输入数据 口,C口的某些位作为它们的联络信号,各信号的意义为: ①STB( Strobe)选通输入信号,低电平有效,这是由输入设备提供的选通信号, 当其有效时,把输入设备送来的数据送入输入锁存器。 ②IBF( Input Buffer Full)输入缓冲器满信号,高电平有效,它是8255A送至外 设的信号。当其有效时表示数据已输入至输入寄存器,它是由STB信号下降沿将其置位 (高电平)的。当CPU从8255A中取走数据时,RD信号上升沿使IBF复位。 方式1(端口A) 方式1(端口B) PA7--PAO PB7--PB0 NTEl PC4 BA PC2 PC5 PCI PC3 INTR PCO INTRB PC6-PC7 I/0 图6.4方式1输入组态 ③INTR( Interrupt request)中断请求信号,高电平信号,它是8255A的一个输出 信号,用于向CPU产生中断请求,要求CPU服务,当STB、IBF和INTE(中断允许)都 为高电平时,INTR置位,而由RD信号的下降沿清除。 ④INTE( Interrupt Enable)中断允许信号,用户可以通过对PC4的置位/复位来控 制 INTE通过对PC2的置位/复位来控制INTE,INTE=1时表示允许中断 (ii)方式1输出 在A口或B口用于方式1输出时。端口分配如图6.5所示。信号的时序关系可以参考 图6.6。各信号的意义为: ①ωBF( Output Buffer Full)输出缓冲器满信号,低电平有效,8255A输出至外 设的信号。其有效时,表示CP已把数据输出到8255A的端口,外设可以从8255A的端口 获得此数据输出。它由CPU的HR上升沿置为有效,由外设的ACK上升沿使其恢复为高 电平

44 些位要用来传送控制或状态信号,C口的其它位仍可工作于方式 0。方式 1 的基本功能 为: ①用作一个或两个选通端口。 ②每个选通端口包含有:8 位数据瑞口,3 条控制线,提供中断逻辑。 ③任一端口可输入或输出。 ④若只有一个端口工作于方式 1,余下的 13 位可以工作于方式 0。 ⑤若两个端口工作于方式 1,C口余下 2 位可以工作于方式 0。 下面分方式 1 输入和方式 1 输出分别介绍。 (i)方式 1 输入 当A口或B口工作于方式 1 输入时,端口分配如图 6.4 所示。PA或PB作为输入数据 口,C口的某些位作为它们的联络信号,各信号的意义为: ①STB(Strobe)选通输入信号,低电平有效,这是由输入设备提供的选通信号, 当其有效时,把输入设备送来的数据送入输入锁存器。 ②IBF(Input Buffer Full)输入缓冲器满信号,高电平有效,它是 8255A送至外 设的信号。当其有效时表示数据已输入至输入寄存器,它是由STB信号下降沿将其置位 (高电平〕的。当CPU从 8255A中取走数据时, RD 信号上升沿使IBF复位。 STBA STBB INTRA INTRB 2 I/O 图 6.4 方式 1 输入组态 ③INTR(Interrupt Request)中断请求信号,高电平信号,它是 8255A的一个输出 信号,用于向 CPU产生中断请求,要求CPU服务,当 STB 、IBF和 INTE(中断允许)都 为高电平时,INTR置位,而由RD信号的下降沿清除。 ④INTE(Interrupt Enable)中断允许信号,用户可以通过对PC4 的置位/复位来控 制INTEA。通过对PC2 的置位/复位来控制INTEB,INTE=1 时表示允许中断。 (ii)方式 1 输出 在A口或B口用于方式 1 输出时。端口分配如图 6.5 所示。信号的时序关系可以参考 图 6.6。各信号的意义为: ①OBF (Output Buffer Full)输出缓冲器满信号,低电平有效,8255A输出至外 设的信号。其有效时,表示CPU已把数据输出到 8255A的端口,外设可以从 8255A的端口 获得此数据输出。它由CPU的WR上升沿置为有效,由外设的 ACK 上升沿使其恢复为高 电平。 方式 1(端口 A) 方式 1(端口 B) INTE A PB7~PB0 PC2 PC1 PC0 INTE B IBFA IBFB PA7~PA0 PC6~PC7 PC4 PC5 PC3

②ACK( Acknowledge)外设响应信号,低电平有效。ACK低电平时,表示外设已 从8255A的端口获得数据输出,向8255要下一个数据 方式1(端口A) 方式1(端口B) PA7--PAO PB7--PB PC7 OBE PCI PC6 ACK PC2 B. ACKB PC3 NTRA PCO PC4-PC5 O 图6.5方式1输出组态 ③INTR中断请求信号,高电平有效。当ACK、OBF和INTE都为高电平时,INTR置 位,而CPU的WR信号使其复位(低电平)。 ④INTE中断允许信号,PC6的置位/复位控制 INTEA, PC2的置位/复位控制 INTeR STB ①max300 外设响应准备新的数据 IBF ②max300 ⑤max300 INTR 、中断后响应时间⊙m40 RD 04min180 外设 数据 图6.68255方式1输入时序图(单位ns)

45 ② ACK (Acknowledge)外设响应信号,低电平有效。 ACK 低电平时,表示外设已 从 8255A的端口获得数据输出,向 8255A要下一个数据。 ③INTR中断请求信号,高电平有效。当 ACK 、OBF 和INTE都为高电平时,INTR置 位,而CPU的WR信号使其复位(低电平)。 ④INTE中断允许信号,PC6 的置位/复位控制INTEA,PC2 的置位/复位控制INTEB。 STB IBF INTR RD 外设 数据 图 6.6 8255 方式 1 输入时序图(单位 ns) PA7~PA0 PC4~PC5 PC7 PC6 PC3 INTE A 方式 1(端口 A) INTRA 2 OBFA I/O PB7~PB0 PC1 PC2 PC0 INTE B 方式 1(端口 B) INTRB ACKB 图 6.5 方式 1 输出组态 ACKA OBFB 2max300 3min180 5max300 1max300 1 2 4 5 3 中断后响应时间 外设响应准备新的数据 4max400

WR ④max400 ②J②max650 ②max650 ④max400 OBF 外设响应取走数 断后响应时闸 外设响应取走数据 ACK rhax350i4QiOrhax850 6max350 INTR ③maxX350 imin300 ③max350↓4 输出 数据 图66(续)8255方式1输出时序图(单位ns) (3)方式2 方式2是一种双向I/0方式,只有端口A具有这种工作方式,其基本功能为 ①一个8位双向数据端口(A)和一个5位控制端口(C)。 ②输入和输出锁存。 ③5位控制端口用作端口A的状态和控制信息。 方式2的端口分配如图6.7所示,各信号的意义为 ①INTR中断请求,输入和输出都可向CPU发出中断请求 ②INTE1输出中断允许位,PC6的置位/复位控制。 PC3 PA7--PAO OBF PC6 ACK InTEg STBA PC5 +BFA PC2--PCO K 图67方式2的组态 ③ⅠNTE2输入中断允许位,PC4的置位/复位控制 其他信号意义与方式1相同 端口A工作于方式2时,端口B可以工作于方式0或者方式1,若工作于方式1,则C 口的8根线全部作为联络信号使用

46 WR OBF ACK INTR 输出 数据 图 6.6(续) 8255 方式 1 输出时序图(单位 ns) (3) 方式 2 方式 2 是一种双向I/O方式,只有端口 A具有这种工作方式,其基本功能为: ①一个 8 位双向数据端口(A)和一个 5 位控制端口(C)。 ②输入和输出锁存。 ③5 位控制端口用作端口A的状态和控制信息。 方式 2 的端口分配如图 6.7 所示,各信号的意义为: ①INTR中断请求,输入和输出都可向CPU发出中断请求。 ②INTE1输出中断允许位,PC6 的置位/复位控制。 ③INTE2输入中断允许位,PC4 的置位/复位控制。 其他信号意义与方式 1 相同 端口A工作于方式 2 时,端口B可以工作于方式 0 或者方式 1,若工作于方式 1,则C 口的 8 根线全部作为联络信号使用。 2max650 5max350 4max400 2 4 5 3max350 3 1 1max850 2 2max650 3 3max350 5 5max350 4 4max400 外设响应取走数据 中断后响应时间 min300 外设响应取走数据 PC3 PC7 PC6 PC4 PC5 PA7~PA0 PC2~PC0 + INTE1 INTE2 图 6.7 方式 2 的组态 8 3 INTRA OBFA ACKA A STB A IBF I/O

四、实验内容 (说明:本实验中8255A的片选接到288H~28FH端子上,各口地址分别为,A口地址 I0基地址+8,B口地址I0基地址+9,C口地址I0基地址←0AH,控制口地址I0基地址 OBH,示例代码中用288H~28班H代替) 1.8255A工作于方式0,A口输出,接七段数码管;C口输入,接开关K0-K3,用七段数码 管循环显示从C口低4位输入的数据。程序运行中如有键按下就返回D0S。 参考程序如下 DATA SEGMENT LED DB 3FH. 06H. 5BH, 4FH. 66H. 6DH. 7DH. 07H DB 7FH. 67H. 77H. 7CH. 39H. 5EH. 79H. 71H DATA ENDS CODE SEGMENT ASSUME CS: CODE. DS: DATA START: MOV AX. DATA MOV DS. AX 初始化DS MOV DX. 28BH 设置8255A工作方式 MOV AL, 89H OUT DX. AL INOUT: MOV DX. 28AH IN AL. DX C口输入 AND AL. OFH MOV BX. OFFSET LED 换码AL←DS:[BX+AL] MOV DX. 288H OUT DX. AL A口输出字形码 MOV AH JZ INOUT 无按键转移 MOV AH. 4CH 有按键则返回D0S INT 21H CODE ENDS END START

47 四、 实验内容 (说明:本实验中 8255A 的片选接到 288H~28FH 端子上,各口地址分别为,A 口地址 IO 基地址+8,B 口地址 IO 基地址+9,C 口地址 IO 基地址+0AH,控制口地址 IO 基地址 +0BH,示例代码中用 288H~28BH 代替) 1. 8255A 工作于方式 0,A 口输出,接七段数码管;C 口输入,接开关 K0-K3,用七段数码 管循环显示从 C 口低 4 位输入的数据。程序运行中如有键按下就返回 DOS。 参考程序如下: DATA SEGMENT LED DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 67H, 77H, 7CH, 39H, 5EH, 79H, 71H DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX ;初始化 DS MOV DX, 28BH ;设置 8255A 工作方式 MOV AL, 89H OUT DX, AL INOUT: MOV DX, 28AH IN AL, DX ;C 口输入 AND AL, 0FH MOV BX, OFFSET LED XLAT ;换码 AL←DS:[BX+AL] MOV DX, 288H OUT DX, AL ;A 口输出字形码 MOV AH, 1 INT 16H JZ INOUT ;无按键转移 MOV AH, 4CH ;有按键则返回 DOS INT 21H CODE ENDS END START

主程序流程图如下 开始 段寄存器 初始化 设置8255 C口输入 换码 口输出 有按键? 返回DOS 结束 2.8255A工作于方式0,A口输出,C口输入。从C口的高4位和低4位分别输入一个 8421BCD码表示的十进制数,求和后仍以8421BCD码十进制数形式在LED上显示。键 盘上有键按下就返回DS。 3.8255A工作于方式0,A口输入,接开关K0-K7:C口输出接LEDL0-L7。用LED以 二进制数显示出K0-K7中置高电平的个数,程序运行中如有键按下就返回D0S 4.8255A工作于方式0,A口输出数码管位码,C口输出段码。在S0数码管上连续显示字 符0~F后再在S1数码管上显示字符0~F,每个字符停留1秒,循环显示。有按键返 回到D0S 提示:调用如下子程序或BI0S的等待功能,适当调整参数可延时1秒 )延时子程序 N SI 0200H

48 主程序流程图如下 2. 8255A 工作于方式 0,A 口输出,C 口输入。从 C 口的高 4 位和低 4 位分别输入一个 8421BCD 码表示的十进制数,求和后仍以 8421BCD 码十进制数形式在 LED 上显示。键 盘上有键按下就返回 DOS。 3. 8255A 工作于方式 0, A 口输入,接开关 K0-K7;C 口输出接 LED L0---L7。用 LED 以 二进制数显示出 K0-K7 中置高电平的个数,程序运行中如有键按下就返回 DOS。 4. 8255A 工作于方式 0,A 口输出数码管位码,C 口输出段码。在 S0 数码管上连续显示字 符 0~F 后再在 S1 数码管上显示字符 0~F,每个字符停留 1 秒,循环显示。有按键返 回到 DOS。 提示: 调用如下子程序或 BIOS 的等待功能,适当调整参数可延时 1 秒 1) 延时子程序: DELAY PROC NEAR MOV SI, 0200H 段寄存器 初始化 C 口输入 有按键? N Y 结束 返回 DOS 开始 设置 8255 换码 A 口输出

MOV CX. 0 LOOP YY DEC SI JNE XX RET DELAY ENDP 2)BI0S的等待功能调用: MOV AH. 86H MOV CX. 5 MOV DX 0 INT 15H 5.利用数码管实现两位数的秒表。 五、实验报告附加要求 1.画出实验内容3和4的程序简要流程图,注释实验内容3和4的主要程序段

49 XX: MOV CX, 0 YY: LOOP YY DEC SI JNE XX RET DELAY ENDP 2) BIOS 的等待功能调用: MOV AH,86H MOV CX, 5 MOV DX, 0 INT 15H 5. 利用数码管实现两位数的秒表。 五、 实验报告附加要求 1. 画出实验内容 3 和 4 的程序简要流程图,注释实验内容 3 和 4 的主要程序段

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有