1、微处理器内部一般由哪些基本部件组成?简述它们的主要功能。 主要有EU部件和BIU部件组成(1分),EU部件包括ALU主要完成算术逻辑运算,FLAGS寄存器主要完成程序状态提供跳转依据,通用寄存器组主要完成指令及操作数的暂存;BIU部件主要协助EU部件完成执行指令,包括地址累加器产生20位物理地址,指令预取队列完成对指令的预先处理实现流水线操作。(3分)
2、一个中断类型号为01CH的中断处理程序存放在0100H:2800H开始的内存中,试求中断向量存储的地址。
00070H-00073H的4个连续单元中
3、在接口驱动编程时,子过程与中断有什么异同? 区别和联系见下表(答对两个得2分)
中断 事件触发 自动保存FR、CS、IP
子程序调用 执行指令 自动保存CS、IP
4、逐次逼近型A/D转换器的基本转换原理是什么?试以三位ADC为例说明其转换过程。
(略)
5、简要说明在接口设计中汇编语言和C语言的编程思想有什么区别?
在接口编程方面,汇编语言主要需要考虑寄存器的分配使用情况,然后集中考虑与算法相关的数据结构(2分);C语言则与自然语言非常相似,主要考虑实现功能的函数的编写(2分)。
图是8255A并行打印机接口电路图,通过接口CPU采用查询方式将存放在BUF缓冲区的256个字符送去打印。设已知8255A的口地址为54H ~57H。 完成以下程序段。
8255A
CPU PA0-7PC7 PC2 地 打印机插座 DATA1~/STB BUSY 地
START: MOV
DX , ______
;(1)8255A命令口 ;(2)工作方式字
;(3)使STB =1 MOV AL ,_______ OUT
DX , AL
MOV AL ,________
OUT DX , AL MOV MOV
L:
MOV
SI , OFFSET BUF CX ,________ DX ,_______
;打印字符的内存首址 ;(4)打印字符个数 ;(5)PC口地址 ;查BUSY=0?
IN AL , DX
AND AL , 04H JNZ MOV MOV OUT MOV
L DX ,_______ AL ,_______ DX , AL
;忙,等待;不忙,则向A口送数 ;(6)PA口地址 ;(7)从内存取数 ;送数到A口 ;(8)8255A命令口 ;(9)使 STB =0
DX ,_______
MOV AL , _______ OUT NOP
MOV AL ,_______
DX , AL
;(10)使 STB =1
OUT DX , AL INC _______ DEC _______
;(11)内存地址加1 ;(12)字符数减1 ;未完,继续。 ;已完,退出
JNZ L MOV AX , 4C00H
END
INT 21H
START
2 89H 8 57H 3 0FH 9 0EH 4 FFH 10 0FH 5 56H 11 SI 6 54H 12 CX 1 57H 7 [SI]
六、综合题(18分)
利用8255A设计一个工件统计与显示系统。当某工件通过通过生产线测点时,工件计数加1,假设工件计数道100时,输出警报信号(使PC1上产生一个负脉冲)。已知测试点采用红外光电管,当有工件通过时,光电管被挡住而不透光,通过以后或无工件时有光透过,光电管输出接8255某引脚(自行选择)。假设8255A端口地址为300H~303H,完成系统硬件和软件的 设计。 提示:由题目可知A口地址为300H
B口地址为301H C口地址为302H 控制字端口为303H
设计图如下: A 口 AKO 8255A PC 4 ?
设计说明:
out 声光 电路 STB 报警电路
1.8255A口置为方式1输入,不用B口,C口上半片(PC4~PC7)输入,下半片输出(PC0~PC3)。
2.声光电路out 端接8255A的PA6。out端在没有工件通过,即透光时是输出低电平。
3.声光电路的STB端接8255A的PC4,在设备与8255A接通时输出低电平。 4.PC1输出接报警电路,报警时输出低电平。
(1)请画出程序流程图
程序流程图(6分): 8255A初始 化
N 与外设是否 接通? Y
查询PA6的 N 输入是否为
1?
计数是否满 计数值加 1 100 ? N Y PC1 输出低电 Y
平
报警,程序返
(2)写出关键程序段 程序片断(10分):
;8255A端口数据的保护 in al,300h mov ah,al in al,302h mov bl,al in al,303h mov bh,al
init51: mov al,11011001b ;方式设定
mov dx,303h out dx,al
8255A初始化
与外设是否接通
恢复原来8255A数据
mov al,00001001b ;PC4置1 mov dx,302h out dx,al
mov al,00000011b ;PC1置1 mov dx,302h out dx,al sub cx,cx
POLL_C:in al,302h
and al,00010000b jz POLL_A jmp POLL_C
POLL_A:in al, 300h
and al,01000000b; jnz COUNT jmp POLL_A
COUNT:cmp cx,100d
jz ALARM inc cx,
jmp POLL_A
ALARM:mov al,00000010b
out 302h,al
EXIT: mov al,ah
out 300h,al mov al,bl out 302h,al mov al,bh out 303h,al
1、
中断和异常有什么区别?
中断和异常:中断和异常是微处理器与外部设备进行信息交换的一种方式。所谓中断,是指CPU在执行正常程序过程中,当出现某些异常情况或者某种外部设备请求时,处理器暂时停止正在执行的程序,转而去执行某一个特定的程序,并在执行后返回原来被中止的程序处理继续向下执行的过程。在Intel高性能的微处理器中,把因外部事件而改变程序执行过程的流程,而去处理外部事件的过程称为中断,又成为硬件中断和外部中断。把因内部意外条件而改变程序执行流程以报告出错情况和非正常状态的过程称为异常中断,简称(异常)。ITNn也归到异常之中。
2、 中断系统应该应具备哪些功能?
保护现场,开中断,执行中断服务程序,关中断,恢复现场,中断返回
3、 为什么CPU在响应外部可屏蔽中断时中断需要连续发两次INTA脉
冲?
中断响应周期,在其间CPU向外部中断控制器发送两个脉冲信号INTA,每个脉冲占用一个总线周期。第一个响应脉冲通知中断控制器,CPU已经响应外部的中断请求,这时中断控制器准备提供外部的类型号,在第二个响应脉冲到来时,CPU取走放在数据总线中的中断类型号。
4、 对8259A初始化有什么要求和规定?
要对其进行适当的软件编程,先写初始化程序,后写操作命令字。 初始化编程:
a. 设定中断请求信号的有效形式
b.设定8259A是单片还是多片级联方式 c. 设置中断类型号 d.设定优先排队规则 e. 设定中断结束时的操作原则 初始化命令操作字:
a. 芯片初始化命令字ICW1 b.中断类型初始化命令字ICW2 c. 主/从片初始化命令字ICW3 d.控制初始化命令字ICW4
四、综合题(本题共30分,每小题5分) 已知电路如下图所示:
回答问题:
1. 根据电路接法,此电路允许输入的模拟电压范围以及A/D转换后得到数字量范围分别是多少?
2. 画出本电路启动IN0通道A/D转换的时序图。 3. 编写与产生启动IN0通道A/D转换信号有关的程序。 4. 电路中ADC0809的EOC端有什么作用?
5. 若采用查询EOC引脚的方法输入A/D转换后得到的数字量,画出相应的接线图。端口地址445H。
6. 编写采用查询法输入数字量的有关程序。
五、思考题
1、 简要说明在接口设计中汇编语言和C语言的编程思想有什么区别? 2、 在上机过程中试分析你印象最深刻的一次实验所获得的编程经验。
1. 试比较指令中断与子程序调用有什么异同。
中断 事件触发 自动保存FR、CS、IP
子程序调用 执行指令 自动保存CS、IP
2. 试用流程图表示设置8259A工作方式的步骤。
五、综合题(本题共30分,每小题5分) 已知电路如下图所示:
回答问题:
1.根据电路接法,此电路允许输入的模拟电压范围以及A/D转换后得到数字量范围分别是多少?
输入电压范围为0-10V,转换后得到的数字量为0-FFH. 2.画出本电路启动IN0通道A/D转换的时序图。
PC0给出START和ALE信号:
3.编写与产生启动IN0通道A/D转换信号有关的程序。
启动A/D转换的有关程序:
MOV DX,443H MOV AL, 00H OUT DX, AL MOV AL,01H OUT DX, AL
4.电路中ADC0809的EOC端有什么作用?
启动A/D转换后,若转换结束,则EOC端输出一个高电平方波表示可以读出数字量。
5.若采用查询EOC引脚的方法输入A/D转换后得到的数字量,画出相应的接线图。端口地址445H。
6.编写采用查询法输入数字量的有关程序。
采用查询法输入数字量有关程序: MOV DX,445H
NEXT: IN AL,DX TEST AL,1 JZ NEXT MOV DX, 444H IN AL, DX 四、简答题
1、8086/88CPU由哪两部分组成,分别完成什么功能?
主要有EU部件和BIU部件组成 ,EU部件包括ALU主要完成算术逻辑运算,
FLAGS寄存器主要完成程序状态提供跳转依据,通用寄存器组主要完成指令及操作数的暂存;BIU部件主要协助EU部件完成执行指令,包括地址累加器产生20位物理地址,指令预取队列完成对指令的预先处理实现流水线操作。
2、什么是端口?
外设接口中可以由cpu进行读或写的寄存器被称为端口。 每一个端口都有自己的端口地址。端口可以分为数据口、状态口和控制口,分别存放数据信息、状态信息和控制信息。
3、什么是引脚的分时复用?
8086/8088采用引脚分时复用技术,即一条引脚在不同的时间代表不同的信号,以解决引脚不够用的问题。 例如:AD15~AD0是地址/数据复用引脚,BHE /S7 是高字节允许/状态复用引脚。
4、中断方式和程序方式相比较有何优点?
提高了效率。 查询时,如外设一直未READY,CPU将重复检测,效率低;中断方式则在外设有传送要求的时候才进行处理。
5、解释8255工作于有联络线的方式1、2时,OBF、ACK的含义与作用。 8255工作于方式1、2时,OBF的含义是:输出缓冲器满。 表示CPU已经把数据输出给指定的端口,外设可以把数据输出。 ACK的含义是:它是一个外设的响应信号, 表示CPU输出给8255的数据已经由外设接受。 四、简答题
1、8086/88CPU由哪两部分组成,分别完成什么功能?
主要有EU部件和BIU部件组成 ,EU部件包括ALU主要完成算术逻辑运算,FLAGS寄存器主要完成程序状态提供跳转依据,通用寄存器组主要完成指令及操作数的暂存;BIU部件主要协助EU部件完成执行指令,包括地址累加器产生20位物理地址,指令预取队列完成对指令的预先处理实现流水线操作。
2、什么是端口?
外设接口中可以由cpu进行读或写的寄存器被称为端口。 每一个端口都有自己的端口地址。端口可以分为数据口、状态口和控制口,分别存放数据信息、状态信息和控制信息。
3、什么是引脚的分时复用?
8086/8088采用引脚分时复用技术,即一条引脚在不同的时间代表不同的信号,以解决引脚不够用的问题。 例如:AD15~AD0是地址/数据复用引脚,BHE /S7 是高字节允许/状态复用引脚。
4、中断方式和程序方式相比较有何优点?
提高了效率。 查询时,如外设一直未READY,CPU将重复检测,效率低;中
断方式则在外设有传送要求的时候才进行处理。
5、解释8255工作于有联络线的方式1、2时,OBF、ACK的含义与作用。 8255工作于方式1、2时,OBF的含义是:输出缓冲器满。 表示CPU已经把数据输出给指定的端口,外设可以把数据输出。 ACK的含义是:它是一个外设的响应信号, 表示CPU输出给8255的数据已经由外设接受。
五、程序填空题
设8251A的控制和状态端口地址为52H,数据输入/输出口地址为50H(输出端口未用),输入50个字符,将字符放在BUFFER所指的内存缓冲区中。请阅读程序并在空白处填写完成这段的程序。
MOV AL,__0FAH ____ OUT _52H _____,AL ;设置模式因子,异步方式,波特新因子为16,用7个数据位,2个停止位,偶校验
MOV AL,___35H ___ OUT 52H,AL ;设置控制字,使发送器和接收器启动,并清除出错指示位
MOV DI,0;变址寄存器初始化 MOV CX,50;共50个字符 BEGIN:IN AL,52H
TEST AL,__02H ____ 读取状态字,测试RXRDY位,是否为1,如为0
表示未收到字符,故继续读取状态并测试
JZ BEGIN
IN AL,50;读取字符 MOV DX,OFFSET BUFFER
MOV ___[DX+DI]___,AL ;将字符送入缓冲区
INC DI;修改缓冲区指针 IN AL,52H;读取状态字 TEST AL,___38H ___ JNE ERROR ;测试有无帧格式错误,奇/偶校验错误和超越错误,
如有则转出错处理程序。
LOOP __ BEGIN ____;如没有错再接收下一个字符。 JMP EXIT;如输入满50个字符,结束
ERROR:CALL ERR-OUT;调用出错处理程序 EXIT:?
六、综合题
利用8255A设计一个工件统计与显示系统。当某工件通过通过生产线测点时,工件计数加1,假设工件计数道100时,输出警报信号(使PC1上产生一个负脉冲)。已知测试点采用红外光电管,当有工件通过时,光电管被挡住而不透光,通过以后或无工件时有光透过,光电管输出接8255某引脚(自行选择)。假设8255A端口地址为300H~303H,完成系统硬件和软件的 设计。 提示:由题目可知A口地址为300H
B口地址为301H C口地址为302H 控制字端口为303H
设计图如下: A 口 AKO 8255A PC 4 ?
设计说明:
out 声光 电路 STB 报警电路
1.8255A口置为方式1输入,不用B口,C口上半片(PC4~PC7)输入,下半片输出(PC0~PC3)。
2.声光电路out 端接8255A的PA6。out端在没有工件通过,即透光时是输出低电平。
3.声光电路的STB端接8255A的PC4,在设备与8255A接通时输出低电平。 4.PC1输出接报警电路,报警时输出低电平。 (1)请画出程序流程图
程序流程图(6分): 8255A初始 化
N 与外设是否 接通? Y
查询PA6的 N 输入是否为
1?
计数是否满 计数值加 1 100 ? N Y PC1 输出低电 Y
平
报警,程序返(2)写出关键程序段
程序片断(10分):
;8255A端口数据的保护 in al,300h mov ah,al in al,302h mov bl,al in al,303h mov bh,al
init51: mov al,11011001b ;方式设定
mov dx,303h out dx,al
mov al,00001001b ;PC4置1 mov dx,302h out dx,al
mov al,00000011b ;PC1置1 mov dx,302h out dx,al sub cx,cx
POLL_C:in al,302h
and al,00010000b
8255A初始化
与外设是否接通
jz POLL_A jmp POLL_C
POLL_A:in al, 300h
and al,01000000b; jnz COUNT jmp POLL_A
COUNT:cmp cx,100d
jz ALARM 恢复原来8255A数据
inc cx,
jmp POLL_A
ALARM:mov al,00000010b
out 302h,al
EXIT: mov al,ah
out 300h,al mov al,bl out 302h,al mov al,bh out 303h,al ret
1、8086/88CPU中实现了并行流水处理技术吗?说明原因。
实现了。因为CPU由两个独立的部件,总线接口部件BUI和执行部件EU构成。EU不与系统总线相连于外界,只负责指令的执行。而BIU负责取指令和数据。所以使得数据交换、取指令和执行指令可以同时进行。因为实现了并行流水技术。
2、说明CPU标志位FLAG中,IF位和CPU引脚NMI,INTR的关系。 IF=1,8086开中断,允许接受外部从INTR引脚发来的可屏蔽中断请求;若IF=0,则表示8086关中断,不能接受INTR引脚发来的中断请求。IF的状态不影响非屏蔽中断NMI请求,也不影响CPU响应内部中断请求。
3、8259中,优先权自动循环是什么意思?
它是专门处理同级中断申请情况的。即在一个具有多中断源的系统中,如果采用自动循环方式工作,其中断的优先级队列将随时发生变化。当一个外设申请中断,得到CPU响应之后,其中断的优先级就自动降为最低。
4、8255的工作方式2完成什么功能?使用哪些联络线?
8255的工作方式2完成CPU与I/O的数据交换,只有A口才能工作在方式2,并且是双向的,即可输入也可输出。使用5根联络线,C口作为联络线,有STBA、IBFA、OBFA、INTRA、ACKA。当CPU读取数据时,由STBA作为输入选通信号,将外设送来的数据锁入输入缓冲区。外设送完之后将IBFA有效并发出中断请求INTRA告诉CPU可以来取走数据,同时阻止外设继续输数据。当CPU将数据送到外设时,通过OBFA有效来告诉外设输出缓冲区满,可以来取走数据。外设取走数据后,发出ACKA表示输出缓冲区现已空,并向CPU发出新的中断请求,CPU又可来放入数据了。
5、简要说明在接口设计中汇编语言和C语言的编程思想有什么区别? 在接口编程方面,汇编语言主要需要考虑寄存器的分配使用情况,然后集中考虑与算法相关的数据结构 ;C语言则与自然语言非常相似,主要考虑实现功能的函数的编写 。
五、程序填空题
9.5 采用8255A作为两台计算机并行通信的接口电路,如下图所示已经给出查询式输入/输出方式工作的接口电路,阅读代码并填空完成查询式输入/输出方式的程序。
初始条件如下:甲机的8255A是方式1发送,端口PA为输出,发送数据,而PC7和PC6
引脚分别固定作联络线OBF和ACK。乙机的8255A是方式0接收数据,故把端口PA定义为输入,另外,选用引脚PC7和PC3作为联络线。接口电路如图:
方式08255A乙(接收)CPUPA7~PA0PC7PC3ACK方式0OBF8255APA7~PA0PC7PC6甲(发送)CPU
查询式输入/输出方式的程序如下:
;甲机发送的程序段
MOV DX,303H ; 8255AMOV AL,( l010000B )OUT DX,AL
MOV AL,( 0DH ) ;OUT DX,AL
MOV SI,OFFSET BUFS ; OUT CX,3FFH ; MOV DX,300H ; MOV AL,( [SI] ) ; OUT DX,AL
INC SI ; DEC ( CX ) ; LOP:MOV DX,302H ; 8255AIN AL,DX ; AND AL,( 08H ) ; JZ LOP ; MOV DX,300H ; 8255AMOV AL,[SI] ; OUT DX,AL ; INC SI ; DEC CX ; JNZ ( LOP ) ; MOV AH,4CH ; INT 21H ;BUFS DB ? ;
;乙机接收的程序段
MOV DX,303H ; 8255AMOV AL,( l0011000B )OUT DX,AL MOV AL,( 00000111B )OUT DX,AL
MOV DI,OFFSET BUFR ; MOV CX,3FFH ; L1: MOV DX,302H ; 8255AIN AL,DX ; AND AL,( 80H ) ; JNZ L1 ; MOV DX,300H ; 8255AIN AL,DX ; MOV ( 00000110B ),AL ; 命令端口
初始化工作方式字 置发送允许INTEA=1 设置发送数据区的指针 发送字节数
向端口A写第1个数,产生第1个OBF信号 送给乙机,以便获取乙机的ACK信号 内存地址加1
传送字节数减1 状态端口(端口C)
查发送中断请求INTRSA=1 是否PC3=l
若无中断请求则等待;若有向端口A写数 端口PA地址 从内存取数
通过端口A向乙机发送第2个数据 内存地址加1 字节数减1
字节未完,继续 己完,退出 返回DOS
定义1024个数据 命令端口
初始化工作方式字 置ACK=1(PC3=1) 设置接收数据区的指针 接收字节数 端口PC
查甲机的OBF=0?(乙机的PC7=0) 查甲机是否有数据发来
若无数据发来,则等待;若有数据,则从端口A读数端口PA地址 从端口A读入数据
存入内存
; ; ; MOV DX,303H ; 产生ACK信号,并发回给甲机 MOV DX,( [DI] ) ; PC3置“0” OUT DX,AL
INC DI ; 内存地址加1 DEC CX ; 字节数减1
JNZ ( L1 ) ; 字节未完,则继续 MOV AX,4C00H ; 己完,退出 INT 21H ; 返回DOS
BUFR DB l024 DUP(?) ; 接收数据缓冲区
六、综合题
8255的编程。
设8255的端口地址为200H~203H。
(1)要求PA口方式1,输入;PB口方式0输出;PC7~PC6为输入;PC1~PC0为输出。试写出8255的初始化程序 (1) MOV DX, 203H MOV AL, 10111000B OUT DX, AL
(2)程序要求当PC7=0时置位PC1,而当PC6=1时复位PC0,试编制相应的程序。
MOV DX, 202H IN AL, DX MOV AH, AL TEST AL, 80H
JNZ NEXT1 MOV DX, 203H
MOV AL, 00000011B ;对PC1置位
OUT DX, AL NEXT1:MOV AL, AH
TEST AL, 40H JZ NEXT2
MOV AL, 00000000B ; 对PC0复位 MOV DX, 203H OUT DX, AL NEXT2:??? 四、简答题
1、8259满足哪三种条件时进入初始化过程? (1)、CS=0; (2)、A0=0; (3)、D4=1;
2、什么是地址信号的全译码? CPU的全部地址总线都参与地址译码。
3、请说明8255的A口或B口工作于方式1输入时,STB、IBF、INTR、RD 等信号之间的逻辑关系,并简略画出时序示意图。(10分) 先发
选通输入信号,由它把数据输入到8255A。
(2)当数据已锁存到8255A的锁存器后,IBF变成高电平,表示“输入缓冲器
满,禁止输入新数据”。
(3)在中断允许(INTE=1)的情况下IBF的高电平产生中断请求,使INTR变
成高电平,通知CPU现接口中已有数据,请求CPU读取。CPU接受中断请求后,转到相应的中断子程序,将锁存器中的数据取走,且将INTR信号复原。
若CPU采用查询方式,则通过查询状态字中的INTR位或IBF位是否置位来判断有无数据可读。 (4)CPU执行读操作时,
使INTR复位,撤销中断请求,为下一次中断请
求作好准备。同时还清除IBF使其变低,表示接口的输入缓冲器变空,允许外设输入新数据。如此反复,直至完成全部数据的输入。
8255A方式1输入工作时序图:
IBF INTR tRIT STB tsTB tsT tRIB RD 来自外设 的输入数
五、程序填空题
设8253芯片的计数器0、计数器1和控制口地址分别为04B0H、04B2H、04B6H。定义计数器0工作在方式2,CLK0为5MHz,要求输出OUT0为1KHz方波;定义计数器1用OUT0作计数脉冲,计数值为1000,计数器减到0时向CPU发出中断请求,CPU响应这一中断请求后继续写入计数值1000,开始重新计数,保持每一秒钟向CPU发出一次中断请求。试编写出对8253的初始化程序,硬件连接图已经给出。
;计数器0初始化
MOV AL,(34H ) MOV DX,(04B6H ) OUT DX,AL
;计数器0赋初值
MOV MOV OUT MOV OUT
AX,( 5000 ) DX,( 04B0H ) DX,AL AL,AH DX,AL
;计数器1初始化
MOV AL,( 72H ) MOV DX,04B6H OUT DX,AL
;计数器1赋初值
MOV MOV OUT MOV OUT
AX,( 1000 ) DX,04B2H DX,AL AL,AH DX,AL
连接图如下所示:
三八译码器A7A6A5S1D1S2S3D8A2A1D7-D0CSA1A0CLK0OUT0CLK1OUT15MHzINTRD7-D0GATE0GATE1+5V 硬件连接图
六、综合题
利用8255A设计一个工件统计与显示系统。当某工件通过通过生产线测点时,工件计数加1,假设工件计数道100时,输出警报信号(使PC1上产生一个负脉冲)。已知测试点采用红外光电管,当有工件通过时,光电管被挡住而不透光,通过以后或无工件时有光透过,光电管输出接8255某引脚(自行选择)。假设
8255A端口地址为300H~303H,完成系统硬件和软件的 设计。 提示:由题目可知A口地址为300H
B口地址为301H C口地址为302H 控制字端口为303H
设计图如下: A 口 AKO 8255A PC 4 ?
设计说明:
out 声光 电路 STB 报警电路
1.8255A口置为方式1输入,不用B口,C口上半片(PC4~PC7)输入,下半片输出(PC0~PC3)。
2.声光电路out 端接8255A的PA6。out端在没有工件通过,即透光时是输出低电平。
3.声光电路的STB端接8255A的PC4,在设备与8255A接通时输出低电平。 4.PC1输出接报警电路,报警时输出低电平。 (1)请画出程序流程图
程序流程图(6分): 8255A初始 化
N 与外设是否 接通? Y
查询PA6的 N 输入是否为
1?
计数是否满 计数值加 1 100 ? N Y PC1 输出低电 Y
平
(2)写出关键程序段 程序片断(12分):
;8255A端口数据的保护 in al,300h mov ah,al in al,302h mov bl,al in al,303h mov bh,al
init51: mov al,11011001b ;方式设定
mov dx,303h out dx,al
mov al,00001001b ;PC4置1 mov dx,302h out dx,al
mov al,00000011b ;PC1置1 mov dx,302h out dx,al sub cx,cx
POLL_C:in al,302h
and al,00010000b jz POLL_A jmp POLL_C
POLL_A:in al, 300h
and al,01000000b; jnz COUNT jmp POLL_A
COUNT:cmp cx,100d 报警,程序返8255A初始化
与外设是否接通
恢复原来8255A数据
jz ALARM inc cx,
jmp POLL_A
ALARM:mov al,00000010b
out 302h,al
EXIT: mov al,ah
out 300h,al mov al,bl out 302h,al mov al,bh out 303h,al ret
三、简答题 1、
叙述8259中断控制器中,中断结束命令EOI的功能。并且说明其分类以及相应的使用场合。
按照对中断结束(复位中断响应寄存器ISR中相应位)的不同处理,8259A 有两种工作方式,即自动结束方式(AEOI)和非自动结束方式。而非自动结束方式又可进一步分为一般的中断结束方式和特殊的中断结束方式。
(1).中断自动结束方式:这种方式仅适用于只有单片8259A的场合,在这种方式下,系统一旦响应中断,那么CPU在发第二个INTA脉冲时,就会使中断响应寄存器ISR中相应位复位,这样一来,虽然系统在进行中断处理,但对于8259A来讲,ISR没有相应的指示,就象中断处理结束,返回主程序之后一样。CPU可以再次响应任何级别的中断请求。 (2).一般的中断结束方式:一般的中断结束方式适用用在全嵌套的情况下,当CPU用输出指令向8259A发一般中断中断结束命令OCW2时,8259A才会使中断响应寄存器ISR中优先级别最高的位复位。
(3).特殊的中断结束方式:在特殊全嵌套模式下,系统无法确定哪一级中断
为最后相应和处理的中断,也就是说,CPU无法确定当前所处理的是哪级中断,这时就要采用特殊的中断结束方式。特殊的中断结束方式是指在CPU结束中断处理之后,向8259A发送一个特殊的EOI中断结束命令,这个特殊的中断结束EOI命令,明确指出了中断响应寄存器ISR中需要复位的位。
2、 在CPU与外设的数据传送中,直接传送方式是否使用联络线,为什
么?
直接传送方式的适用前提是假定外设交换信息时,如果输入或输出都能保证外设总是处于“准备好”状态,则可以直接利用输入/输出指令进行信息的输入/输出操作。所以在这种方式下的硬、软件设计都比较简单,不需要使用联络线。
四、综合题
1、若在系统中有一故障源,但该故障有瞬时故障和永久故障两种可能性,所以,当故障发生时,发出中断求信号,CPU响应后转入中断服务程序,在中断服务程序中,首先判断是瞬时故障还是永久故障(用延时0.5秒,然后检查故障是否还存在的方法判断),若为瞬时故障不做任何处理直接返回,是永久故障置FAIUNT字节单元为全1处理。
已知子程序DELAY可延时0.5秒,故障源寄存器(8位),最高位作故障记录位,当该位为1表明有故障发生,其它位未用,故障源端口地址为20H。 INTPROM PROC
PUSH AX PUSH BX PUSH CX PUSH DX PUSH DS CALL DELAY IN AL,20H TEST AL,80H JZ EXIT MOV FAIUNT,0FFH EXIT: POP AX
POP BX POP CX POP DX POP DS IRET INTPROM
五、思考题
1、 简要说明在接口设计中汇编语言和C语言的编程思想有什么区别? 2、 在上机过程中试分析你印象最深刻的一次实验所获得的编程经验。 三、简答题
1、试分析,在数据通信中,比特率与波特率分别代表的含义? 比特率指数据通信中信号频率每秒钟变化的次数;
波特率指数据通信过程中每秒种传送的位数(bit/s),故 1波特=1位/秒。
2、试分析:8251A能不能同时实现发送数据和接受数据的功能?
8251A是可编程控制的串行接口芯片,对其方式字、命令字及状态字初始化后,规定其通信方工(同步/异步)及数据格式等,命令字来控制发/收,状态字控制何时可以收/发。其实现的是半双工通信方式,不能同时实现发送和接受数据的功能。
3、简述8255A的基本组成及各部分的功能。
8255A主要由4部分组成:三个数据端口、两组控制电路、读写控制逻辑电路和数据总线缓冲器组成。三个数据端口主要完成数据的传输;控制电路A组和B组,接收CPU输出的方式控制命令字和读写控制逻辑电路的读/写命令来决定A组和B组的工作方式和读/写操作。读写控制逻辑电路:完成三个数据端口和一个控制端口的译码,管理数据信息、控带]字和状态字的传送,接收来自CPU地址总线的A1, AO和有关控制信号,向8255A的A, B组控制部件发送命令。数据总线缓冲器传送输入/输出的数据,传送CPU发出的控制字以及外设的状态信息。
4、8253有哪些工作方式?各有何特点?
工作方式0(计数结束中断方式);工作方式1(硬件GATE可重触发的可编程单稳态方式);工作方式2(频率发生器方式);工作方式3(方波发生器方式);工作方式4(软件触发选通);工作方式5(硬件触发选通)。
四、综合题(
设8253与8086相连,8253的时钟频率为2MHz,其口地址为340H~343H,通道0工作于定时方式,要求每l10ms向8086发出一中断请求信号,通道1要求输出频率为500Hz的方波,编写初始化程序。
8253的端口地址为340H~343H, fclK=2MHz, Tclk= O.5us
8253计数器0: Tout0=10ms 计数器1:fCLK1=0.5KHZ Tout1=2ms no=Touto/TCLKO=10ms/0.5us=20000 n1=Tout1/Tclko = 2ms/0.5us=4000
MOV AL,OO110100B (34H);通道0初始化
M0V DX,343H
OUT DX, AL MOV AX,2000D MOV DX,340H
OUT DX,AL MOV AL, AH OUT DX,AL
MOV AL,01100111 (67H);通道1初始化
MOV DX,343H OUT DX,AL MOV AL,20H MOV DX,341H OUT DX, AL
五、思考题
3、 简要说明在接口设计中汇编语言和C语言的编程思想有什么区别? 4、 在上机过程中试分析你印象最深刻的一次实验所获得的编程经验。
某8086系统接有16K字节EPROM和16K字节RAM,给出了的系统总线以及各芯片。引脚信号:
系统总线:数据总线Do~D15、地址总线A0~Al9、控制M/IO、RD、WR: 译码器74LS138:输入A, B, C, G2A、G2B、Gl,输出Yo-Y7; 2764芯片:Do~D7,A0~A12、CS、OE;
6264芯片:Do~D7, Ao~A12, CS、OE、WE。 请完成下列各题。
1.请说明2764和6264芯片各是什么类型的存储器芯片。 2764是ROM类型的存储器芯片。
6264是RAM类型的存储器芯片。
2. 2764和6264芯片的容量是多少?在本系统中各种芯片各需要多少片? 2764芯片存储容量是8KH,在本系统中需要两片。
6264芯片存储容量是8KH,在本系统中需要两片。
3.按照所给出的总线信号和芯片引脚画出存储器系统的接线图,要求存储器译码方式按照部分译码方式设计。
画出存储器系统的接线图如图C.1所示(A19没有参加译码)
4.根据接线图,给出各存储器的地址范围和地址重叠范围。 本题答案不惟一。分析如下:
两片EPROM芯片的地址空间分配情况如下:
当A19=0时,基本地址空间为00000H~03FFFH 当A,9 = 1时,重叠地址空间为80000H~83FFFH 两片RAM芯片的地址空间分配情况如下:
当A19=0基本地址空间范围04000H~07FFFH
当A19=1重叠空间地址范围84000H~ 87FFFH
三、系统中有2片8259级联使用,其中从片接在主片的IR3引脚上,主片被初
始化成特殊完全嵌套方式,从片被初始化成完全嵌套方式。初始化时,主8259所送的中断类型号为38H,从8259所送的中断类型号为78H.
1.请分别写出主片中断源IRS和从片中断源IR2的中断服务程序入口地址所在的单元的物理地址。主片中断源IR5的中断服务程序入口地址所在的单元的物理地址是000F4H。从片中断源IR2的中断服务程序入口地址所在的单元的物理地址是00lEBHo (IR5的中断类型号为3DH,IR2的中断类型号为7AH.)
2.如果CPU正在为从片的IR2服务,主片的IR5又向CPU提出请求,请问能否实现中断嵌套?
此时不能实现中断嵌套。(因为从片接在主片的IR3引脚上,主片的IR3的中断优先级别高于主片的IR5,所以不能:)
3. 如果CPU正在为主片的IR5服务,从片的IR2又向CPU提出请求,请问能否实现中断嵌套?
此时能实现中断嵌套。(因为从片接在主片的IR3引脚上,主片的IR,的中断优先级别高于主片的IR5,所以能。)
4. 如果CPU正在为从片的IR2服务,从片的IR1又向CPU提出请求,请问能否实现中断嵌套?
此时能实现中断嵌套。
5. 如果CPU响应从8259的IR2请求,在中断响应周期主从两片8259是如何动作的?
主片收到第1个负脉冲后,将本片中断服务寄存器ISR的D3位置\ (ISR3二1),中断请求寄存器IRR的D3位清零(IRR3二0)。检测ICW3判定中断请求来自从片,所以往3根级联总线(CS2} CS,. CSo)上输出从片的级联地址O11B。所有从片都能从级联总线上收到级联地址,但是只有从片的ICW3的低3位与级联地址相同的从片才能选通,选通的从片收到第1个负脉冲后,将本片中断服务寄存器ISR的环位置“1\ 四、某系统8255口地址分配为口A 8000H,口B 8002H,口C 8004H;口A与口B都工作在方式0输入;口C工作在方式0输出。下面的程序段从A口、B口输入数据,C口输出数据,阅读程序后再回答问题。 IO_SBR PROC MOV DX, 8000H IN AL, DX MOV BL, AL MOV DX 8002H IN AL, DX MOV BH, AL MOV AX, BX AND AX, 0C0C0H AND AL, AH MOV CL, AL MOV AX, BX AND AX, 3030H OR AL, AH OR CL, AL MOV AX, BX AND AX, 0C0CH XOR AL AH OR CL, AL MOV AX, BX AND AX, 0303H AND AL, AH XOR AL, 03H OR CL, AL MOV DX, 8004H MOV AL, CL OUT DX, AL RET IO_SBR ENDP 1.请说明这片8255芯片是连接在8086 CPU数据总线的高8位还是低8位?为什么? 这片8255芯片是连接在8086 CPU数据总线的低8位上。因为4个端口地址为偶地址。 2.若送入A口的数据是OAAH,送入B口的数据是55H,则C口的输出数据应是什么? C口的输出数据应是3FH. 3.请写出C口所输出的各位数据(PCo~PC7})与A口和B口输入的各位数据(PAo~PA7},PB0~PB7的逻辑关系式。 C口所输出的各位数据(PC0~PC7})与A口和B口输入的各位数据(PA0~PA7}, PB0~PB5)的逻辑关系式是: 五、(各小题为5分,共10分)已知8253通道0、通道1和通道2都被初始化成工作方式3, CLK0外接2MHz时钟,其输出OUTo与通道1的CLK}相连,OUT,与通道2的CLKZ相连,若要通道2得OUTZ发出频率为O.1Hz的方波。 1.则每个通道的计数初值应为多少? 通道0的计数初值no = 10000 通道1的计数初值no = 20000 通道2的计数初值no= 10 2.此时OUTo和OUT,的波形频率各是多少? 通道0的输出波形频率Fo}o = 2000Hz 通道1的输出波形频率Fout=1 Hz 注:本题答案不惟一 二、为8086系统扩展16K字节EPROM和16K字节RAM,下面给出了系统信号以及EPROM, RAM芯片的引脚,解答下列问题。 系统信号:D0~D7、D8~D15、A0~A17、A19、M/IO、RD、WR、BHE。 74LS138:输入信号:A、B、C、G2A、G2B、G1;输出信号:Y0~Y7。 EPROM芯片引脚:D0~D7、A0~A12、CS、OE。 RAM芯片引脚:D0~D7、A0~A12、CD、OE、WR。 1.根据所给的信号画出存储器与CPU的连接接线图,未给出的信号不要连接,所连接的存储器的地址空间安排在80000H以上。 1. 存储器与CPU的连接接线图如图C.2所示。 2.存储器译码方式是全译码方式还是部分译码方式。 存储器译码方式是部分译码方式(因为A19没有参与译码) 3.若是部分译码方式,则给出每个芯片的地址重叠空间范围。 两片ROM芯片重叠空间范围是0C0000H~0C3 FFFH。其中的偶地址是(1)片的重叠地址范围;奇地址是(2)片的重叠地址范围。 两片RAM芯片重叠空间范围是0C4000H~0C7FFFH。其中的偶地址是(3)片的重叠地址范围;奇地址是(4)片的重叠地址范围。 注:本题答案不惟一。 本题分析如下。 两片ROM芯片的地址空间分配情况如下: 当A18 = 1时,重叠地址空间为0C0000H~0C3FFFH 两片RAM芯片的地址空间分配情况如下: 当Al18= 1时,重叠地址空间为0C4000H~0C7FFFH 三、两片8259级联使用,主片工作在特殊的完全嵌套方式,其IR5作从片的中断请求输入,从片工作在完全嵌套方式。两片皆工作在非自动中断结束方式。解答下列问题。 1.初始化时,主片和从片的ICW3应分别送入什么值? 主片的ICW3应送入20H ( 0010 0000B )。从片的ICW3应送入05H. 2.若主片的IR3和从片的I风的中断服务程序入口地址分别位于0000H : 01CCH和0000H: 0198H开始的单元,则主片和从片ICW2(中断类型码寄存器)的内容应分别是什么? 主片的ICW2(中断类型码寄存器)的内容应0111 0X X XB. 从片的ICW2(中断类型码寄存器)的内容应Oll00X X XB 3.写出两片所连接的15个中断源的优先级别顺序。 从高到低优先级别顺序是 主片:1R0, IR1, IR2, IR3, IR4(从片:1Ro...IR7)、IR6, IR7. 4.若主片的IRR(中断请求寄存器)= 08H,则意味着什么?主片的ISR(中断服务寄存器)=08H,则意味着什么? 意味着接在主片IR3上的中断源提出中断请求(需要服务)。 意味着接在主片IR3上的中断服务还未结束。 5.若从片的ISR = 08H,则主片的ISR的哪一位必定为,\ 主片的ISR的Ds位必定为“1\因为主片的IR5作从片的中断请求输入)。 四、已知8255 A口和B口都工作在基本输入输出方式,A口输入,其地址为P8255A; B口输出,其地址为P8255B,阅读下列程序,试说出PBo, PB1与A口输入数据的逻辑关系。 数据段中表格的定义如下: TAB: DB 0,1,0,0,0,1,0 DB 0,0,1,0,0,1,1 DB 1,1 程序如下: IN AL,P8255A MOV CH,AL LEA BX,TAB AND AL,0FH XLAT XCHG AL,CH MOV CL,4 SHR AL,CL XLAT SHL AL,1 OR AL,CH OUT P8255B,AL …… 答: PB0=PA0.PA1+PA2.PA3 PB1=PA4.PA5+PA6.PA7 本题分析如下: 1.建立真值表(5分) 真值表 PA3 PA2 PA1 PA0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 TAB 00000000 00000001 00000000 00000000 00000000 00000001 00000000 00000000 00000000 00000001 00000000 00000000 PB0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 1 00000001 00000001 00000001 00000001 1 1 1 1 2.由真值表写出逻辑函数式(5分) PB0(PA3, PA2, PA1,PA0) =PA3·PA2.PA1·PA0+PA3.PA2·PA1·PA0+PA3·PA2·PA1·PA0 +PA3·PA2·PA1·PA0 +PA3·PA2PA1·PA0 +PA3·PA2·PA1·PA0+PA3·PA2·PA1·PA0 3,用代数法或卡诺图法简化逻辑函数式得: (5分) PBo(PA3, PA2, PA1,PAo)=PA3·PA2+PA1·PAo 同理可得PB1与PA7, PA6, PA5, PA4的逻辑关系。 五、 8253的3个通道都工作在方式2,通道0输入为2MHz的时钟,其输出连接到通道1的输入,通道1的输出连接到通道2的输入。己知通道0的计数初值为2000,若要通道2输出周期为100s、脉冲宽度为1s的周期性脉冲信号,则通道1和通道2的计数初值各为多少?画出通道0和通道1的输出波形,并在图形上标出周期和脉冲宽度。 通道1计数初值=1000,通道2计数初值= 100 . 通道0的输出波形如图C.3所示。 通道1的输出波形如下: