- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
; ICW4控制字:全嵌套、非缓冲、非自动 结束中断,8086系统
从片B的初始化程序:
MOV AL,19H OUT 40H,AL
;ICW1控制字:同主片
MOV AL, 80H
;ICW2控制字: 中断类型号为 80H~87H
OUT 42H,AL
MOV AL,04H ;ICW3控制字:本从片的标识码 (INT接到主片的IR4)
MOV DX,306H
MOV AL,37H (或 36H) ;通道0,16位初值,方式3,BCD进制计数
OUT DX,AL
;写入通道0控制字
MOV DX,300H
MOV AL,33H (或 35H)
OUT DX,AL
;写入初值1333 (或0535H) 的低8位入通道0
MOV AL,13H (或 05H)
①画出该系统中3片8259 A级连部分电路简要的电 气原理图;
②编写出全部初始化程序
答:①该系统的电气原理图
如下图所示。
来自CPU 的 INTA
去CPU 的 INTR
INTA
8259A CAS0 从片B CAS1 SP / EN CAS2
IR0 … IR7 INT …
INTA
8259A CAS0 从片A CAS1 SP / EN CAS2 IR0 … IR7 INT …
OUT DX,AL
;写入初值1333 (或 0535H) 的高8位入通道0
MOV DX,306H
MOV AL,54H (或 55H) ;通道2,8位初值,方式2,二进制计数
OUT DX,AL
;写入通道2控制字
MOV DX,302H
MOV AL,05H
OUT DX,AL
;写入通道2初值05H
MOV DX,306H
• IN AL,PORT: 端口地址和输入的数据均为8位,即: (PORT)→AL
• IN AL,DX: 端口地址为16位,输入的数据为8位,即:(DX)→AL
• IN AX,PORT: 端口地址为8位,输入的数据为16位,即: (PORT)→AL,(PORT+1)→AH
• IN AX,DX: 端口地址和输入的数据均为16位,即: (DX)→AL,(DX+1)→AH
从片A的初始化程序:
MOV AL,19H ;ICW1控制字:同主片 OUT 30H, AL
MOV AL,78H OUT 32H, AL MOV AL,02H OUT 32H, AL MOV AL,01H
OUT 32H, AL
;ICW2控制字:中断类型号为
78H~7FH
;ICW3控制字: 本从片的标识码 (INT接主片的IR2)
30H、32H (从片A)
40H、42H (从片B)
产生:
20H、22H、 30H、32H、 40H、42H 片选信号 的译码电 路如右图 所示。
(二)
A4 A5 A6 A7 A0 M/ I0
A
Y2
B
C 74LS138 Y3
G1
G2 A
Y4
G2 B
20H~2EH (主片)
30H~3EH (从片A)
INTA INT
CAS0 8259A
CAS1 主片
CAS2
SP / EN Vcc
IR2 IR4 IR7 IR0
…
…
②各片的初始化程序如下:
主片的初始化程序:
MOV AL, 19H
OUT 20H, AL MOV AL, 70H OUT 22H,AL MOV AL, 14H OUT 22H, AL MOV AL,11H
• ICW1的D4位必须为1; • OCW2的D4D3位必须为00; • OCW3的D4D3位必须为01。
⑵ 占用奇地址的有ICW2、ICW3、ICW4和 OCW1,它们之间的互相区分则采用写 入顺序来进行,其中:
• ICW2、ICW3、ICW4在8259A初始化编 程过程中,必须严格按顺序依次写入;
OUT 42H, AL
MOV AL,01H OUT 42H, AL
; ICW4控制字: 同从片A
产生:
A4
20H、22H、
A5
30H、32H、
40H、42H
A6
片选信号
的译码电
A7
路如右图 所示。
A3
A2
≥1
(一)
M/ I0
≥1
A0
A
Y2
B
C 74LS138 Y3
G1
G2 A
Y4
G2 B
20H、22H (主片)
Leabharlann Baidu
答:由题目要求,
该译码器使用
CPU的十根地址 总线A9~A0,其 中A9~A3与一起 用于对74LS138
A3
A
Y0
A4
B
Y1
A5
C 74LS138 Y2
的输入,A2~A0
A6
G1
用于各接口芯片 A9 的片内I/O端口的 A8
&
G2 A
寻址,设计的电 A7
路如图5.1所示。
M/ I 0
G2 B
Y7
MOV AL,95H(或 94H)
;通道2,8位初值,方式2,
;BCD(或 二)进制计数
OUT DX,AL
;写入通道1控制字
MOV DX,304H
MOV AL,30H (或 1EH)
OUT DX,AL;
OUT 22H, AL
; ICW1=0001,1001B, 电平触发,多片级连 使用, 要 ICW4 ;写入偶地址 ;ICW2控制字: 中断类型号为70H~77H ;写入奇地址 ; ICW3:IR4、IR2上接有从片
; ;
I非C自W4动=0中00断10结00束1B方, 式特,殊8全08嵌6系套统方式,
分析:按要求可知: (1)计数器0用作方波发生器(方式3),其分频系数为:
N0=2×106÷(1.5×103) ≈1333 = 0535H (2)计数器1用作分频器(方式2),其分频系数为:
N1=1500÷300 = 5 (3)计数器2用作分频器(方式2),其分频系数为:
N2=1500÷50 =30=1EH
…
;设置数据段基址为2000H
;计数器初值为100 ;状态端口地址 ;读入状态 ;设备准备好? ;否,转回继续查询状态 ;数据端口 ;输入数据 ;存入缓冲区 ;指向下一单元 ;循环控制共输入100个字节
5.6 设计一个采用74LS138的I/O端口的地 址译码器,要求能寻址的端口地址范 围分别是: ①340H~347H;②348H~34FH; ③350H~357H;④378H~37FH。
计数、十六位计数器,计数器的初始值为5080 。
6.5 设8253的4个端口地址分别为300H、302H、304H和306H,由 CLK0输入计数脉冲频率为2MHz。要求通道0输出1.5kHz的方波,通道1、 通道2均用通道0的输出作计数脉冲,通道1输出频率为300Hz的序列负脉 冲,通道2每秒钟向CPU发50次中断请求。试编写初始化程序,并画出 8253相关引脚的连线图。
40H~4EH (从片B)
6.4 设8253计数器0~2和控制字寄存器的端口地 址依次为F8H~FBH,说明如下程序的作用。
MOV AL,33H OUT 0FBH,AL MOV AL,80H OUT 0F8H,AL MOV AL,50H OUT 0F8H,AL
•程序的作用是: 对8253芯片的计数器0初始化为:工作方式1、BCD码
③在DMA方式中,外设要求传输数据时,接口电 路会向DMA控制器发出DMA请求信号,导致 DMA传输数据。
5.5 某输入设备的接口电路中,其数据端口
地址为3F8H,状态端口地址为3FEH,当 其D7位为1时,表示输入数据已准备好。
试编写查询方式数据传送的程序段,要 求从该设备读入100个字节,并存入到自 2000H:2000H开始的内存单元之中。
• 而OCW1则是在初始化完成后,在 8259A的工作过程中写入。
5.16 某8086系统中有三片8259A安排为非缓冲、级 连使用,两从片A、B分别接入主片的IR2、IR4; 三片8259A的端口地址分别为20H、22H;30H、 32H;40H、42H;主片及从片A、从片B的IR5 上各接有一个外部中断源,其中断类型号分别 为75H、7DH和85H;所有中断都采用电平触发 方式、全嵌套、非自动EOI方式。试完成:
解: MOV AX, 2000H MOV DS, AX MOV BX, 2000H MOV CX, 64H
NEXT: MOV DX, 3FEH WAIT: IN AL, DX
TEST AL,80H
JZ WAIT MOV DX,3F8H IN AL,DX MOV [BX], AL
INC BX
LOOP NEXT
5.4 在查询方式、中断方式以及 DMA方式中,有一个共性的问题是:
系统如何知道接口部件已准备好, 可以进行I/O数据传送?
试简述之。
答:①在查询方式中,通过程序来检测接口电路中 状态寄存器的“准备好”(Ready)位,以确定 当前可否进行数据传输;
②在中断方式下,当外设已准备好时,接口电路会 向CPU发一个中断请求,CPU响应后,便通过运 行中断服务程序来实现数据输入/输出;
340H~347H 348H~34FH 350H~357H
378H~37FH
5.12 8259A只占用2个I/O端口地址 (奇、偶地址),对其编程时将 如何区别7个可编程的寄存器: ICW1~ICW4、OCW1~OCW3?
答:⑴ 7个可编程的寄存器中占用偶地址的有 ICW1、OCW2、OCW3,它们之间的互相区分 则采用写入的控制字中不同的特征位的方式 来进行。其中:
第 五 、六 章
习题解答
5.1 8086CPU对其I/O端口的寻址采用
哪种方式?它的输入指令:
IN AL,PORT;IN AL,DX; IN AX,PORT;IN AX,DX的作用 有何区别?
5.1 答:8086CPU对I/O端口的寻址采用的是I/O端口单独寻址 方式,它安排有专门的输入/输出指令即IN、OUT指令。4条 输入指令的区别是: