IO地址译码
第2章IO端口地址译码技术培训教材

译码方法
**端口奇偶地址(SBHE)
低位地址部分:连到接口电路以区分内部和端口地址
高位地址部分:组合控制信号产生接口的选择信号cs
地址线 控制信号线
译码 电路
接口选择线 内部端口选择线
计算机科学学院
固定式译码
所谓固定是指接口中用到的端口地址不能更改
接口中只有一个端口时可采用门电路构成。 接口中有多个端口时一般采用译码器电路构成,常见的译码 器有74LS138、74LS154等。
外设占用了内存单元,使内存容量减小。
计算机科学学院
独立编址
I/O端口地址空间与存储器地址空间相互独立。
计算机科学学院
独立编址(续)
这种方式的优点是: (1)MEM地址空间不受I/O端口地址空间影响; (2)端口数量不多,占用地址线少,地址译码简单,速度较快; (3)访问端口和MEM和指令有明显区别,便于理解和检查。
源RAM地址用ES:DI(EDI)/DS:SI(ESI)指定。 EFLAG寄存器中DF位来决定地址加和减。 结果:通过前缀REP在I/O端口和连续的存储器空间 之间传送数据。
计算机科学学院
I/O端口的地址分配
I/O接口硬件分类
系统板上I/O芯片和I/O扩展槽接口卡。
I/O端口地址分配
PC系列I/O地址线有16根,对应64K空间; I/O端口译码只使用了A0-A9,共1024个端口; 地址范围为0000H~03FFH。
第二章 I/O端口地址译码技术
❖ I/O端口及其编址方式 ❖ I/O端口地址分配 ❖ I/O端口地址译码 ❖ GAL器件在I/O端口地址译码中的应用
计算机科学学院
I/O端口
端口:接口电路中能被CPU直接访问的寄存器的地址。
I-O端口地址译码技术

I/O端口地址译码技术
统一编址的主要优点:一是对任何存储器操作指令都可用 于操作I/O接口,而不必使用专用的I/O指令,系统中存储器操 作指令是丰富多彩的,可以大大增强系统的I/O功能,使访问外 设端口的操作方便、灵活、不仅可对端口进行数据传送,还可 对端口内容进行移位和算术逻辑运算等;二是可以使外设数目 或I/O寄存器数目只受总存储容量的限制,从而大大增加系统的 吞吐率,这在某些大型控制或数据通信系统等特殊场合是很有 用的;三是使微机系统的读/
主要缺点:一是端口地址占用了存储器地址,使可用的内 存空间相对减少;二是由于地址位数长,访问内存的指令一般 较长,执行速度较慢;三是为了识别一个I/O端口,必须对全部 地址线译码,这样不仅增加了地址译码电路的复杂性,而且使
统一编址方式在单片机中得到广泛应用,而在通用型的计 算机系统中已经不再使用。
I/O端口地址译码技术
I/O端口地址译码技术
同时,由于使用专门的I/O指令访问端口,并且I/O端口地 址和存储器地址是分开的,故I/O端口地址和存储器地址可以 重叠,而不会相互混淆。并且由于存储器与I/O端口的控制结
这种方式的缺点是专用I/O指令类型少,远不如存储器访 问指令丰富,使程序设计的灵活性较差;且使用I/O指令一般 只能在累加器和I/O端口间交换信息,处理能力不如存储器映 像方式强;尤其是要求处理器能提供存储器读/写及I/O端口读/ 写两组控制信号,这不仅增加了控制逻辑的复杂性,而且对于 引脚线本来就紧张的CPU芯片来说不能不说是一个负担。
OUT PORT,AL
其中,PORT是一个8位的字节地址。
I/O端口地址译码技术
例如:
IN AL,60H;60H为系统板8255A的PA
OUT 61H,AL;61H为系统板8255A的PB
IO地址译码

实验一I/O地址译码一.实验内容:1.实验电路如图所示。
74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
2.接线:Y4/IO地址接CLK/D触发器Y5/IO地址接CD/D触发器D/D触发器接SD/D角发器接+5VQ/D触发器接逻辑笔二.实验目的:掌握I/O地址译码电路的工作原理三.实验仪器:TPC-ZK实验系统中的IO地址、D触发器、逻辑笔模块USB核心板HQFC集成开发环境四.实验总体思路:实验电路中D触发器CLK端输入脉冲时,上升沿使Q端输出高电平L7发光,CD端加低电平L7灭。
例如:执行下面两条指令 MOV DX,2A0H OUT DX,AL(或IN AL,DX) Y4输出一个负脉冲,执行下面两条指令 MOV DX,2A8H OUT DX,AL(或IN AL,DX) Y5输出一个负脉冲。
编写实验程序:CODES SEGMENTASSUME CS:CODESSTART PROC NEARMOV DX,2A0HOUT DX,ALCALL DELAYMOV DX,2A8HOUT DX,ALCALL DELAYJE STARTDELAY PROC NEARMOV BX,200LL:MOV CX,0L:LOOP LDEC BXJNE LLRETDELAY ENDP五.实验步骤:1、将实验板安好,连接至电脑。
2、开启电源,运行HQPC,查找接口3、点击USB接口存在,进入USB微机接口开发环境4、输入程序,编译源程序5、无误后调试、运行程序六.实验结果:程序正确运行后,灯L7闪烁发光(亮、灭、亮、灭……)七.实验心得:(包含所遇到的问题及解决方法)备注:所有文字一律采用小四,宋体。
第3章-IO地址译码

主要优点: (1) I/O端口地址不占用存储器空间; (2) I/O指令短,执行速度快;
FFFFH
(3) I/O操作和存储器操作层次清晰,程序的可读性强。
缺点:
I/O指令种类有限, I/O空间不易扩展
2、统一编址(存储器映象方式)
地址 0000H ... 0100H 00FFH ...
I/O空间 (256个) 整 个 地 址 空 间
四、DMA传送方式
工作原理 由外设与计算机内存直接进行数据交换,而不是通 过CPU; 在DMA传送期间,DMA控制器接管了总线控制权,而 CPU处在停机方式,即处于等待状态; 在DMA传送完成后,CPU再恢复对总线的控制权,进 入工作状态。 CPU 特点 数据的传送不经过CPU。 RAM 外设 要求 DMA 需要DMA控制器及相关逻辑支持。 控制器 应用 适用于高速度大量数据传送时。
2、C语言I/O语句
C语言有强大的I/O操作功能,利用c语言可方便地设计操作 界面,同时也可以对外设进行直接控制. 端口输出 outportb(port,value) //从port端口输出字节型数据 value outportw (port,value) //从port端口输出字型数据value
了解I/O端口地址分配 对接口设计者非常重要。 一、64K I/O地址映像图 I/O地址线:16位 I/O端口地址空间:64K 分为两部分。 ① 留给微机系统和ISA总线 地址固定 ② 留给PCI总线,主板功能和用户应用 地址动态分配
① 0000H~03FFH
② 0400H~FFFFH
3.3
I/O端口地址分配
第3章基本的I/O接口 ---来自I/O地址译码内容提要
第二章IO端口地址译码技术

12:28
2
一、 I/O端口及I/O操作(续)
3.命令、接口与I/O端口关系
一个接口中有多个I/O端口; 一个I/O端口可接受多种命令,对应多个寄存 器。
4、I/O操作
通常所说的I/O操作是指对I/O端口的操作,而 不是对I/O设备的操作,即CPU所访问的是与I/O 设备相关的端口,而不是I/O设备本身。
&
A0
AEN IOR
IOW12:28
1
1 Y (读)
1 Y (写)
27
分析门电路译码电路
A9
A8
&
A7
A6
1
A5 A4
A3
A2
1
A1 AEN
协处12理:28 器
00F0-00FFH
17
扩展槽I/O接口卡端口地址(0100H-03FFH):
I/O接口名称
地址范围
游戏控制卡
0200-020FH
并行口控制卡1
0370-037FH
并行口控制卡2
0270-027FH
串行口控制卡1
03F8-03FFH
串行口控制卡2
02F8-02FFH
原型插件板(用户可用)
第二章 I/O端口地址译码技术
外部设备选择功能是接口电路应具备的基本功 能之一,因此,作为进行设备端口选择的I/O 端口地址译码电路是每个接口电路中不可缺少 的部分。
本章主要讨论: I/O端口基本概念 I/O端口基本原理、基本方法 I/O端口译码电路的设计
12:28
1
§2.1 I/O端口及其编址方式
I/O端口地址和存储器地址可以重叠而不会相 互混淆。
12:28
7
2.I/O独立编址的特点(续) 缺点:
第二章 IO端口地址译码技术习 题

0 0 0 1 0 &
74LS138 3-8译码器
PC总线
端口译码电路
3.设计一个译码电路,要求产生 2A8H~2AFH共8个端口地址的选通信 号
4.设计端口地址为218H的译码电路
5.分析上图74LS138各输出端的译码地址
A3 A4 A5 +5V A6 A7 A8 A9 AEN IOR IOW
8.有一个2732EPROM(4KX8)芯片的译码 电路如下图所示,试求: 1)计算2732芯片的存储容量; 2) 给出2732芯片的地址范围; 3) 是否存在地址重叠区?
思考1: Y2~ Y7 译出的端口地址 各是多少? Y Y Y Y Y Y Y Y
7 6 5 4 3 2 1 0
1 0 1 0 1 0 1 0 A0 1 1 0 0 1 1 0 0 A1 1 1 1 1 0 0 0 0 A2 0 PC AEN 1 A3 1 总 A4 0 A5 0 线 A6 0 A7 0 A8 1 A9 0 IOR 0 &
218 A HHale Waihona Puke 0 0 0 1 0 &
B C G1 G2A
&
G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
74LS138 3-8译码器
端口译码电路
PC总线
6.某接口电路如下,需设计其译码电路。
/IOR A2~A9 译码 电路 /IOW 300H~303H /CS A0~A1 8255
AEN
7.求74LS138的地址范围?
第二章 I/O端口地址译码技术 习 题
1.已知并行接口芯片8255A有4个端口,片
选信号 CS 为低电平有效。试设计一个 译码电路,使该芯片的4个端口地址为 2F0H~2F3H。
IO端口地址译码PPT课件

同步通信卡1
3A0H~3AFH
同步通信卡2
380H~38FH
单显MDA
3B0H~3BFH
彩显CGA
3D0H~3DFH
彩显EGA/VGA
3C0H~3CFH
硬驱控制卡
1F0H~1FFH
软驱控制卡
3F0H~3F7H
PC网卡
360H~36FH
.
本章7首页
5.2.3 I/O端口地址译码
1. I/O地址译码电路工作原理及作用
.
本章12首页
本章要点
端口的概念 端口的地址编址方式及其特点 I/O端口地址选用的原则 掌握I/O端口地址译码电路的工作原理 I/O端口地址译码电路的设计与分析
.
本章13首页
片间选择:高位地址+控制信号
译码电路
片选信号
高位地址、 低位地址的划分
片内端口选择:低位地址直接与接口芯片地址线相连
.
本章8首页
5.2.3 I/O端口地址译码(续)
3. I/O端口地址译码电路设计
A9
地址范围:n根地址线未参与译码,译出地址含2n个 1)固定式端口地址译码 门电路译码法——单个地址或地址范围
微机原理与接口
(第5章)
信息工程学院 电子信息工程教研室
.
1
5.2 I/O端口地址译码技术
主要内容
5.2.1 I/O端口及其编址方式 5.2.2 I/O端口地址分配 5.2.3 I/O端口地址译码
.
2
5.2.1 I/O端口及其编址方式
1. I/O端口和I/O操作
1)I/O端口
端口(port):是接口电路中能被CPU直接访问的寄存器。
C
Y0
第一章第二部分 端口地址及译码技术

3
2.独立编址 这种方式是接口中的端口单独编址而不占用 存储空间,大型计算机通常采用这种方式。有些 微机,如IBM-PC系列也采用这种方式。 这种方式的优点: ①专门的I/O指令对端口操作,可读性好, 指令短,执行速度快。 ②端口单独编址,不会与存储器地址相互混 淆。
4
三、独立编址方式的端口访问 通过I/O指令访问I/O端口 在汇编语言中有I/O指令。用于I/O端口与累加 器(AX、AL)之间的数据传送。 在I/O指令中有单字节地址或双字节地址寻址 方式。用单字节作为端口地址,则最多可访问 256(0~0FFH)个端口。若用双字节地址作为端口地 址,则最多可寻址216=64K个端口。 系统主板上的I/O端口,采用单字节地址。在 I/O扩展槽上的接口控制卡上,采用双字节地址。 I/O指令格式为; 输入 IN AX/AL,PORT/DX 输出 OUT PORT/DX,AX/AL 这里,PORT是一个8位的字节地址。
24
1.地址信号的分析与选择: ①PC机提供的用于I/O端口寻址的地址信号是: A9A8A7A6A5A4A3A2A1A0,共10位。 系统板上A9A8=00
②片内需寻址32个口,共需要低位地址线5根,选 A4A3A2A1A0 ③选A7A6A5作为译码器译码输入信号。
25
2.控制信号的选择
用AEN信号来禁止译码电路在DMA方式下工作。 非DMA操作时AEN=0, DMA操作时AEN=1。
②用A4A3A2信号作为译码输入信号并采用3-8译码器 就能获得8个不同的片选信号,实现在扩展板上对8个 接口芯片的片选。
③地址线A9A8A7A6A5可作为改变地址范围所需的信 号。 31
2. 地址范围可选的处理实现分析:
本例中要求的地址范围可选的含义是:该接口电 路设计成功后,既能用于地址范围300H~31FH,也 能用于其它地址范围,如:200H~21FH。 具体做法是: 把高4位A9A8A7A6接入比较器的A输入端,B输 入端通过开关DIP接入四个预定的输入信号,若二者 相等就会产生FA=B=1信号。并把它作为译码器的G1信 号来控制3-8译码器工作。 本例把DIP接入的信号定为:B3B2B1B0=1100, 这就保证只有在A9A8A7A6=1100时译码器才能工作 。假如需要的地址范围是200H~21FH,那么,就只 要把DIP的接入信号拨定为B3B2B1B0=1000即可。
2.第二章 IO端口地址译码技术

Y2
Y3 Y4
G2B G2A G1
Y5
Y6 Y7
IOW
逻辑门电路进行I/O地址译码
A9 A8 A7 A6 A5 A2 A4 A3 AEN A1 A0
74LS03
3E7H
1. 固定式端口地址译码
接口中用到的地址不能更改,分为单端口地址 译码和多个端口地址译码两种情况 例1. 使用74LS30/20/32和74LS04设计2F8的只读 译码电路 表2.3 译码电路输入地址线的值
A9 1
Y7
端口31 31F
A4~A0
A0 A1 A2 A3 A4
MOV DX,301H ( 31FH ) IN AL,DX D0~D7 IOR
300~31FH
端口0 300 端口1 301
IOW AEN CPU A9 A8
A7 1 1 0
A6 A5
0 0
端 口 译 码 电 路
端口1 302 Y0 CS
方法1:使用基本的逻辑门
304H ~ 307H
A0 A1 A2 CPU A3 A4 A5 A6 A7 A8 A9
D0-D7
A6 A7 A8 A9
1
A2 A3 A4
__ Y0 __ Y1
端口0 端口1 端口2 端口3
….
__ Y6 __
G1
Y7
31C~31FH
(扩展槽上接口卡的地址译码电路)
以Y0为例:
通过跳线控制其逻辑电平组合决定具体选中哪一个扩展卡
A9 1 1 1 1
A8 A7 A6 1 0 0 1 0 0 1 0 0 1 0 0
A5 0 0 0 0
介绍74LS245
8位双向缓冲器 • 控制端连接在一起, 低电平有效 • 可以双向导通 • 输出与输入同相
微机接口技术-第3章IO端口地址译码技术

内存 内存接口
系统总线:地址总线XA19-0,数据总线XD7-0,控制总线/XIOR ……
智能仪器接口 通信接口 过程控制接口 输入接口
输出接口
外存接口
数字化存储示 波器,数字化
万用表
终端 调制解调器 TTY 电传机
A/D转换器 开关量输入 D/A转换器 开关量输出
键盘 数字化仪 点阵打印 CRT 显示
么?
思考:在PC机上设计接口,你设计的接口IO地址必须不能与其他设备 接口IO地址冲突,你能想到用什么办法解决这个问题?
方案一:先查PC机硬件说明书,看那些IO 地址已经被占用。
缺点是麻烦,且非PC机器厂家生产的设备 (如扩展接口卡)地址,必须通过查该卡
说明书才能了解它占用的IO地址。
不可能!!你怎么知道你的卡被客户装在 哪台机器上?客户计算机上装了哪些其它 厂家的卡,你怎么能预先知道呢?客户买
Y X 9X A 8 X A 7 X A 6 X A 5 X A 4 X A 3X A 2 A X 1 X A 0 X AX I O A XA9 XA8 XA7 XA6 XA5 XA4 XA3 XA2
/+Y
例2。 使用74LS138设计一个系统板上IO端口地址译码电路,并且让每个接口芯片内部 可以有32个端口,非DMA期间可以访问接口芯片。
分析:输入 XA9-5,XAEN。因为低5位地址用来选中芯片内部端口,不作为外部译码器 的输入。一片138只能译码3位地址,这里用138对XA7-XA5译码。
输出 8个芯片选中信号/Y0-/Y7。 逻辑关系:XAEN=0,XA9XA8=00时,使译码器工作。 XA7-XA5=000时,输出/Y0=0, 其余全无效为1。 XA7-XA5=001时,输出/Y1=0, 其余全无效为1 XA7-XA5=010时,输出/Y2=0, 其余全无效为1 ……
第02章IO端口地址译码技术

第2章 I/O端口地址译码技术
② 优点:是CPU访问外设的操作比较灵活、方便,有利于提高端口 数据处理速度。
③ 缺点:是外设端口占用了有效的存储器空间, 造成存储器有效 容量减小。另外,访内存指令一般都比专门I/O指令需要 更多的字节,因而执行时间较长。
(2)外设端口单独编址 ① 在这种编址方式下,外设的地址不占用存储器空间, 所有的外 设端口地址单独构成一个输入/输出空间,例如与存储器交换数 据用MOV传递指令,而与外设交换数据则用专用的输入指令IN和 输出指令OUT。这种单独编址会使得外设端口的地址与存储器单 元的地址有可能重叠,是访问存储器还是访问外设, 用不同的 指令加以区别。因此这种编址方式又称为覆盖编址方式。
4、输入/输出指令(IN/OUT)与读/写控制信号(IOR/IOW)的关系 它们是为完成 I/O操作这一共同任务的软件和硬件相互依
存,缺一不可的两个方面。 IOR和IOW是CPU对外设进行读/ 写的硬件上的控制信号, 低电平有效。 但是, 这两个控制信 号本身不能激活自己,使之变为有效, 去控制读/写操作。 而 必须由软件编程,在程序中执行IN/OUT指令,才能激活IOR/ IOW,使之变为有效,实施对外设的读/写操作。
同步通信卡1 同步通信卡2
单显MDA 彩显CGA 彩显EGA/VGA
3A0H~3AFH 380H~38FH
3B0H~3BFH 3D0H~3DFH 3C0H~3CFH
硬驱控制卡 1F0H~1FFH 软驱控制卡 3F0H~3FFH
PC网卡
360H~36FH
8
第2章 I/O端口地址译码技术
3、I/O端口地址选用原则 (1)系统占用的不能使用。 (2)厂商保留的不能使用。 (3)用户只用使用300H~31FH一段区间,为了避免与其他用户 开发的插板发生地址冲突,最好使用地址开关。
第二章 IO端口地址译码技术

举例:
30h发送命令寄存器CPU31h 传送
数据寄存器
32h
读取
状态寄存器
CPU与I/O端口
二、端口地址编址方式
1.统一编址 端口地址和存储器地址统一编址,即存储器 映射方式。
优点:指令类型多、功能齐全; 端口有较大的编址空间。
缺点:端口占用地址空间,使存储器容量减少; 指令长度及执行时间较长。
二、I/O端口地址分配
1. PC微机I/O地址线有16根,对应的I/O端口编址可达 64K字节。
2. 端口地址译码是采用非完全译码方式,即只考虑了 低10位地址线A0~A9,而没 有考虑高6位地址线 A10~A15。
3. I/0端口地址范围是0000H~03FFH,总共只有1024个 端口。
三、I/O端口地址选用的原则
000~01FH
DMA控制器2
0C0~0DFH
DMA页面寄存器
080~09FH
中断控制器1
020~03FH
中断控制器2
0A0~0BFH
定时器
040~05FH
并行接口芯片(键盘接口) 060~06FH
RT/CMOS RAM
070~07FH
协处理器
0F0~0FFH
表2.2 扩展槽上接口控制卡的端口地址
凡是被系统配置占用了的地址一律不能使用; 对计算机厂家申明保留的地址,不要使用; 用户可使用300H--31FH地址,且最好使用地址开关。
2.3 I/O端口地址译码
一、I/O地址译码电路原理及作用
I/O地址译码电路的作用是把输入的地址和控制 信号进行逻辑组合,从而产生对接口芯片的选择 信号,低电平有效。
双字节地址指令格式:
MOV DX, × × × ×H
10-IO地址译码技术

(Port) Acc=AL,AX或EAX
间接输出(变量)
输入字节串 输入字串 输入双字串
OUT DX, Acc
INSB INSW INSD
(ES:DI) (ES:DI) (ES:DI)
(Acc)
((DX)) ((DX)) ((DX))
((DX))
E(DI) E(DI) E(DI) E(DI) ±1 E(DI) ±2 E(DI) ±4
9
表 系统板上接口芯片的端口地址 I/O芯片名称 DMA控制器1 DMA控制器2 DMA页面寄存器 中断控制器1 中断控制器2 定时器 并行接口芯片(键盘接口) RT/CMOS RAM 协处理器
10.1
I/O端口及其编址方式
端口地址 200~20FH 370~37FH 270~27FH 3F8~3FFH 2F0~2FFH 300~31FH 3A0~3AFH 380~38FH 3B0~3BFFH 3D0~3DFH 3C0~3CFH 1F0~1FFH 3F0~23F7H 360~36FH
2) 扩展槽上的I / O接口控制卡。 由若干个集成电路按一定的逻辑功能组成的接口部件 例:图形卡、声卡、网卡 端口地址:后768个端口(100~3FFH) 16位地址
8
10.1
I/O端口及其编址方式
端口地址 000~01FH 0C0~0DFH 080~09FH 020~03FH 0A0~0BFH 040~05FH 060~06FH 070~07FH 0F0~0FFH
表 扩展槽上接口控制卡的端口地址
I/O接口名称 游戏控制卡 并行口控制卡1 并行口控制卡2 串行口控制卡1 串行口控制卡2 原型插件板(用户可用) 同步通信卡1 同步通信卡2 单显MDA 彩显CGA 彩显EGA/VGA 硬驱控制卡 软驱控制卡 PC网卡
第2章 IO端口地址译码技术

(3) 扩展槽上的I/O接口控制卡端口地址分配
I/O接口名称 硬驱控制卡 游戏控制卡 扩展器/接收器 并行口控制卡1 并行口控制卡2 PC/XT 0320 ~ 032FH 0200 ~ 020FH 0210 ~ 021FH 0370 ~ 037FH PC/AT 01F0 ~ 01FFH 0200 ~ 020FH - 0370 ~ 037FH
第二章 I/O端口地址译码技术
徐承彬
第二章 I/O端口地址译码技术
1
I/O端口编址 I/O端口地址分配 I/O端口地址译码
2
3
2
2.1 I/O端口编址
基本概念
接口内部包含一个或多个CPU可进行读写的寄存器,这些
寄存器称为I/O端口。数据端口、状态端口和控制端口。
CPU对外设的各种操作,最终都归结为对接口中各端口的
缺点
▲专用的I/O指令增加了指令系统的复杂性,且指令类型少,功
能弱,程序设计灵活性差。
▲CPU需提供I/O读写与存储器读写2套控制信号,增加了控制
逻辑的复杂性。
7
(3) 独立编址下的I/O指令
指令类型
▲IN:从I/O端口读入数据到微处理器的累加器中。
▲OUT:将微处理器累加器中的数据写入到I/O端口。
读
Y
写
Y
28
【例2-3】某接口芯片内部有4个端口,地址范围为2F0H~ 2F3H。请使用门电路为其设计一个端口地址译码电路。 分析:
▲ 地址范围为2F0H ~ 2F3H,故CPU访问该接口芯片时,地址线 xx = 00, 01, 10, 11, 上的信号为: 对应4个端口
地址线
值
0 0 A 9 A8 A7 A6 A5 A4 A 3 A2 A1 A0
微机实验报告

实验一I/O地址译码与交通灯控制实验一、实验目的1、掌握并行接口8253的基本原理2、掌握8253的编程方法二、实验内容如图所示,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通变化规律燃灭。
三、编程分析1、8255地址分析:控制寄存器地址: 0C40BHA口地址: 04C408HC口地址: 04C40AH2、十字路口交通灯的变化规律要求(1)南北路口的绿灯、东西路口的红灯同时亮三秒;(2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;(3)南北路口的红灯、东西路口的绿灯同时亮三秒;(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;(5)转(1)重复。
3、C口置数分析由于发光二极管是共阴极相连,所以若要其发亮应给高电平;黄灯闪烁是让其不断交替亮灭来实现;同时分析可知只要有绿灯亮,灯就会持续亮三秒,黄灯亮就会闪烁三次。
4、程序设计流程图四、汇编语言程序STACK1 SEGMENT STACKDB 100 DUP(0)STACK ENDSCODE SEGMENTASSUME CS:CODE, SS:STACK1 DY PROC NEARPUSH CXMOV AX, 0FFFFH ;延时程序MOV CX, 02FFFHL0:DEC AXJNZ L0LOOP L0POP CXPOP AXRETDY ENDPSTART: MOV DX, 0C40BHMOV AL, BOUT DX, ALMOV DX, 0C40AHMOV BL, 6H ;设置延迟3秒L1:MOV AL, 00100100B ;南北绿灯亮,东西红灯亮OUT DX, ALCALL DY ;调用延迟子程序DEC BLJNZ L1MOV BL, 4H ;设置第二次闪烁3次L2:MOV DX, 0C40AHMOV AL, 01000100B ; 南北黄灯亮,东西红灯亮OUT DX, ALCALL DYMOV AL, 00000100B ;南北黄灯灭,东西红灯亮,实现要求闪的功能 OUT DX,ALCALL DYJNZ L2MOV BL,6H ;第三次设置亮灭时间为3秒L3:MOV AL,B ; 南北黄灯亮,东西红灯亮OUT DX,ALCALL DYDEC BLJNZ L3MOV BL,4HL4:MOV AL,B ;南北红灯亮,东西黄灯亮OUT DX,ALCALL DYMOV AL,B ;南北红灯亮,东西黄灯灭,实现闪的功能OUT DX,ALCALL DYDEC BLJNZ L4MOV DL,0FFH ;判断是否有键按下,结束程序 MOV AH,06HINT 21HJZ START ;没有键按下,进入下一次循环 MOV AH,4CHINT 21HCODE ENDSEND START五、实验现象:红黄绿灯变化规律如下:南北路口的绿灯、东西路口的红灯同时亮3秒左右;南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮;南北路口的红灯、东西路口的绿灯同时亮3秒左右;南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次;依次重复。
第6章并行接口_IO端口地址译码

D7 数据
~
D0
缓冲器
RD WR
片选 CS 译码
A1 A0
读写 控制
片内 译码
8255A
端口A
端口C
端口B
PA7 ~
PA0
外
PC7 ~
PC0
PB7 ~
设
PB0
控制端口
+5V GND
8255A内部编程结构
➢三个端口可通过编程分别指定为输入或输出口。 ➢C口即可用作独立的输入/输出口,
也可用作A、B口的控制信号输出 或状态信号输入。
74 LS2 1(与 非 )
74 LS3 2(或 ) Y
I/O端口地址译码技术—固定式译码
如果接口电路中需要使用多个端口地址,采用专用 的译码器进行译码比较方便。常用的译码器:
3-8译码器74LS138; 4-16译码器74LS154; 双2-4译码器74LS139
I/O端口地址译码技术——固定式译码
8255A的工作方式0的输出时序
方式0的应用:
用于连接简单外设。 适用于:
无条件输入输出方式。 查询输入输出方式:
A、B口作为8位数据的输入或输出口, C口的高/低4位分别定义为A、B口的控制位和状 态位,作为A(B)的应答信号。 应答信号不固定,可自由定义
2 8255A的工作方式1
➢A、B口作为8位数据的输入或输出口, ➢C口为A(B)自动提供固定的应答信号。
例1:已知并行接口芯片8255A有4个端口,片选信号 /CS 为低电平有效。试设计一个译码电路,使该芯片 的4个端口地址为2F0H~2F3H。
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 1 0 1 1 1 1 0 0 0 0 2F0H
第二章IO端口地址译码技术

A7A6A5 000~111
0H
0~7H
控制
片选
长江大学地物学院
A4A3A2A1A0 00000~11111 0~1FH 片内端口寻址
74LS138的真值表:
输入
输出
G1 G2A G2B 100 100 100 100 100 100 100 100 0xx x1x xx1
CBA 000 001 010 011 100 101 110 111 xxx xxx xxx
如图2.6所示:
长江大学地物学院
长江大学地物学院
本章思考题
• 在图2.1(b)中的原读/写地址为2E2H,若要 求I/O端口读/写地址改为374H,则输入线 要作哪些改动?
• 在独立编址方式下,CPU采用什么指令访 问端口?
长江大学地物学院
问题与讨论
长江大学地物学院
长江大学地物学院
三.独立编址方式的端口访问
1. I/O指令中端口地址的宽度 系统板上的接口芯片的端口采用单地址字节
最多可寻址28 =256个端口 采用双地址字节时:最多可寻址216 =64K个端
口,I/O扩展槽的接口控制卡上采用双地址 字节编址 2.I/O端口访问 即CPU对端口的读写
长江大学地物学院
端口访问举例:
输入(CPU把端口数据读入主存) MOV DX,300H IN AL,DX MOV [DI], AL 输出(CPU把主存数据写入端口) MOV DX,301H MOV AL,[SI] OUT DX,AL
长江大学地物学院
2.2 I/O端口地址分配
系统板上接口芯片的端口地址
I/O芯片名称
设计结果
长江大学地物学院
PC系统板上的各个端口的地址范围:
IO端口地址译码技术

4.3 I/o端地址译码
CPU为了对端口进行读写操作,就需要确定与自己交 为了对端口进行读写操作, 为了对端口进行读写操作 换信息的端口, 换信息的端口,那么是通过什么媒介把来自地址总线 上的地址代码翻译成为所需要访问的端口的, 上的地址代码翻译成为所需要访问的端口的,这是地 址译码问题,这介“ 就是I/O地址译码电路。 地址译码电路。 址译码问题,这介“媒介 ”就是 地址译码电路 一、I/O地址译码电路工作原理及作用 地址译码电路工作原理及作用
4.1 I/o端口及其编址方式
三、独立编址方式的端口访问 I/O指令有: 指令有: 指令有 1. IN 输入 2. OUT 输出 IN 输入指令 长格式为: 字节操作) 长格式为: IN AL,PORT (字节操作) IN AX,PORT (字操作) 字操作) 执行的操作为: 字节操作) 执行的操作为:(AL)<—(PORT) (字节操作) (AX)<—(PORT+1,PORT) (字操作) 字操作) , 注意长格式适用于端口地址范围为( 注意长格式适用于端口地址范围为(00H~0FFH)时 )
I/O端口地址译码技术 端口地址译码技术
教学重点
I/o端口及其编址方式 I/o端口及其编址方式 I/o端口地址译码 端口地址译码
4.1 I/o端口及其编址方式
端口和I/o操作 一、I/o端口和 端口和 操作 1、 I/o端口 、 端口 端口( 是接口电路中能被cpu直接访问的寄存器的 端口(port)是接口电路中能被 是接口电路中能被 直接访问的寄存器的 地址。 地址 。 Cpu通过这些地址即端口向接口电路中的寄存 通过这些地址即端口向接口电路中的寄存 器发送命令,读取状态和传送数据, 器发送命令,读取状态和传送数据,一个接口中可以 有几个端口,如命令端口、状态端口、数据端口。 有几个端口,如命令端口、状态端口、数据端口。对 端口的操作有三种类型: 只能读不能写 只能写不 端口的操作有三种类型:a.只能读不能写 b.只能写不 能读 c.可读可写 可读可写
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
物理与电子科学系实验报告
课程名称 微机原理与接口技术 实验班级 B13电子班 实验名称 I/O 地址译码
学生姓名 学生学号 一、实验目的
掌握I/O 地址译码电路的工作原理。
二、实验内容
实验电路如图1-1所示,图中线路两端有节点的信号线需要用户用实验导线连接起来,其中74LS74为D 触发器,可直接使用实验台上部系统板上的D 触发器。
74LS138为地址译码器。
译码输出端Y0-Y7在实验台中间系统板上引出,每个输出端包含8个地址,即:
Y0:280H ~287H ; Y4:2A0H ~2A7H; Y1:288H ~28FH; Y 5:2A8H ~2AFH; Y2:290H ~297H; Y 6:2B0H ~2B7H; Y3:298H ~29FH; Y 7:2B8H ~2BFH;
G16
G2A 45
G2B Y4Y5Y6Y7
111097A 1B 23C
Y0Y1Y2Y315141312
Y4Y5Y6Y7
Y0Y1Y2
Y3CLK
1Q 6
D 2PRE
4
Q 5CLK 3+5V
GND
VCC
A3
A4A5
8
L0
SN7474
SN74LS138
U14A
U18U17SN74LS30
U16D
SN74LS00
U16C
SN74LS00
U16B
SN74LS00
U16A
SN74LS00
11
8
6
3
12345678
1213
9
10
4
512
A6A7
A8A9
AEN IOR IOW
图1-1 I/O 地址译码电路图 例如:执行下面两条程序 MOV DX, 2AOH OUT DX, AL
Y4输出一个负脉冲,执行下面两条指令 MOV DX,2A8H
OUT DX,AL Y5输出一个负脉冲。
计算出的地址=查找出的PCI 卡的基址+偏移量
三、源程序
ioport equ 0ef00h-0280h ;强制定义inport表示0ef00h-0280h outport1 equ ioport+2a0h ;同上(执行结果编译时产生)
outport2 equ ioport+2a8h ;同上
code segment ;定义code段
assume cs:code ;让code段成为代码段,
start: ;代码段开始,根据end表示入口地址
mov dx,outport1 ;将outport1给dx(outport1的值就是上面equ强制定out dx,al ;将al的值输出到dx指向的端口,必须用dx做端口) call delay ;调延时子程序
mov dx,outport2 ;同上
out dx,al ;同上
call delay ;调延时子程序
mov ah,1 ;ah=1
int 16h ;16h软中断(功能调用)
je start ;循环,测试z标志位=0则跳否则不跳
mov ah,4ch ;ah=4ch
int 21h ;功能号调用
delay proc near ;延时子程序
mov bx,2000 ;这段子程序不需要解释,无太大作用,实现靠指令执行lll: mov cx,0
ll: loop ll
dec bx
jne lll
ret
delay endp
code ends ;code段结束
end start ;代码结束start为程序入口点
四、实验结果分析
通过本次实验上机,我了解和掌握了I/O地址译码电路的工作原理,熟练了汇编代码的编写、连接电路、通过代码控制电路,更了解到上机是检验学生理论知识和动手能力的很好的方式。