输入输出
8086采用I/O端口独立编址
in AL/AX,imm8/DX
out imm8/DX,AL/AX
大于0FFH的端口只能存在DX
读外设(查询)
status:in al,dx
test al,80H;//测标志位
jz status
mov dx,100h
in al,dx
写外设(查询)
status:mov dx,102H
in al,dx
test al,80H
jnz status;//D7=1,忙,继续查
mov dx,100h
mov al,char
out dx,al
74LS273:锁存。输出锁存寄存器。
74LS244:缓冲。输入缓冲,输出锁存。
A0A_0A0=0,RD‾=1\overline{RD}=1RD=1,读IRR、ISR、查询自
A0A_0A0=1,RD‾=0\overline{RD}=0RD=0,读IMR
输入时序

输出时序

选通信号Ready将置1,状态口连在D7D_7D7上,选通信号置Ready
中断与8259
传送指令装入中断向量。
mov ax,0
mov es,ax
mov bx,N*4;//N为中断类型号
mov ax,offset intproc
mov es:[bx],ax
mov ax,seg intporc
mov es:[bx+2],ax
sti
内部中断:除法错误、溢出、指令单步、断点。
外部中断:NMI、INTR(高电平有效)。NMI类型号为2,边沿触发。
关中断情况:系统复位、中断被响应、CLI。
一条指令的结束是相应NMI的必要条件
普通屏蔽:IMR的DiD_iDi为1,对应IRiIR_iIRi屏蔽。
特殊屏蔽:IRiIR_iIRi被屏蔽时,ISRiISR_iISRi为0
中断结束:ISRISRISR某位为0
EOI:非自动中断结束,全嵌套清楚优先级最高位。
特殊:配合循环优先权,发EOI清楚ISR对应位。
缓冲:多片级联。非缓冲:单片。
IRR中断请求寄存器,1表示对应位有请求,响应后复位。
IMR中断屏蔽寄存器,0表示允许中断
ISR中断服务寄存器,1表示在被服务
PR优先级判别。
优先级固定方式:从高到低为IR0IR_0IR0,IR1IR_1IR1,…IR7IR_7IR7,完全嵌套
自动循环:初始IR0,...,IR7IR_0,...,IR_7IR0,...,IR7,IRiIR_iIRi被服务后,IRiIR_iIRi最低,IRi+1mod 8IR_{i+1\mod 8}IRi+1mod8最高
特殊循环:可设置初始最低优先级
普通全嵌套:禁止同级/低级优先权中断
特殊全嵌套:禁止低级中断,在主片。
SP‾/EN‾\overline{SP}/\overline{EN}SP/EN级联方式:主片SP‾=1\overline {SP}=1SP=1,从片SP‾=0\overline{SP}=0SP=0
IR0...IR7IR_0...IR_7IR0...IR7中断请求。
CAS0...CAS7CAS_0...CAS_7CAS0...CAS7级联引脚双相
CAS2...CAS0CAS_2...CAS_0CAS2...CAS0:主片输出、从片输入、级联信号
例如
A0=0,WR‾=0A_0=0,\overline{WR}=0A0=0,WR=0,写ICW1,OCW2,OCW3ICW_1,OCW_2,OCW_3ICW1</

本文介绍了8086微处理器的输入输出接口技术,包括I/O端口独立编址、读写外设的方法、锁存器与缓冲器的功能、8259中断控制器的使用方法及配置流程、8255并行接口的工作模式及其控制字详解、8254定时计数器的工作方式与应用实例等内容。
最低0.47元/天 解锁文章
3043

被折叠的 条评论
为什么被折叠?



