计算机接口技术综合题,题目如下,请各位大虾江湖救急救急!!! 255
1.有一段对8253初始化程序:MOVAL,64HOUT53H,ALMOVAL,01HOUT51H,AL它使用的是8253哪一个计数器?其端口地址是多少?属哪种工作方式?...
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2.用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
6.某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
9. 8086CPU内部中断有何特点?
10.如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
5. 请说明程序查询方式与中断方式各自的特点。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
8. 试比较指令中断与子程序调用有什么异同。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断? 展开
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2.用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
6.某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
9. 8086CPU内部中断有何特点?
10.如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
5. 请说明程序查询方式与中断方式各自的特点。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
8. 试比较指令中断与子程序调用有什么异同。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断? 展开
37个回答
展开全部
《计算机接口技术》综合题
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
展开全部
《计算机接口技术》综合题
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
一定要采纳啊!!!!!!!!!
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
一定要采纳啊!!!!!!!!!
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
《计算机接口技术》综合题
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
求采纳,打了那么多的字!
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
求采纳,打了那么多的字!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然答案不全 但也是小弟的一片心意 望见谅
《计算机接口技术》综合题
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
《计算机接口技术》综合题
第6章分析、设计题
1. 有一段对8253初始化程序:
MOV AL, 64H
OUT 53H, AL
MOV AL, 01H
OUT 51H, AL
它使用的是8253哪一个计数器 ?其端口地址是多少? 属哪种工作方式?其OUT端输出什么波形?波形的周期为多少? (设输入时钟频率为 100 KHz)
2. 用8253计数器0设计一个输出频率为20KHZ的方波脉冲发生器,如果计数器的输入时钟频率为4MHZ,8253的选通地址为240H-243H,采用BCD计数。(1)要求算出计数初值,(2)编写初始化程序。
3.已知8253的CLK=1MHz, =40H~43H,要求用8253连续产生10秒的定时信号,设计延时线路,编写控制程序。
4. 8253通道2输出方波,波形周期0.625ms已知CLK2频率为2MHz,8253端口地址60H~63H
(1)通道2工作于何种工作方式,写出工作方式名称。
(2)写出初始化程序段,采用二进制计数。10110110
答:
(1) 方式3,方波发生器
(2) MOV AL, 10110110B
OUT 63H,AT
MOV AX,1000
OUT 60H,AL
MOV AL,AH
OUT 60H,AL
2. 8253四个端口分别为控制口CN,通道0口CNT0,通道1口CNT1,通道2口CNT2。现要求通道1功能为:将频率为625KHZ的外部时钟分频为高低电平都是1ms的方波,试完成其程序(采用BCD码计数)
答:8253 方式控制字格式为:
D7D6计数器选择: 00-通道0,01-通道1,10-通道2;
D5D4读写控制: 00-锁存,01-读写低8 位,10-读写高8 位,11-先低8 位后高8 位;
D3D2D1工作方式选择: 000-方式0,001-方式1,010-方式2,011-方式3,
100-方式4,101-方式5;
D0计数方式选择: 0-二进制,1-BCD。
设8253 口地址为60H~63H。
MOV AL,77H
OUT 63H,AL
MOV AL,50H
OUT 61H,AL
MOV AL,12H
OUT 61H,AL
6. 某罐头包装流水线系统电路结构原理如下图所示。一个包装箱能装24罐,要求每通过24罐,流水线要暂停5秒,等待封箱打包完毕,然后重启流水线,继续装箱。8253的端口地址为20H~23H。图中虚线框是流水线工作台示意图,罐头从光源和光敏电阻(R)之间通过时,在晶体管(T)发射极上会产生罐头的脉冲信号,此脉冲信号作为计数脉冲,接到CLK0,对罐头进行计数。
通道0作为计数器工作于方式2,当计数满24罐,OUT0变低,触发通道1的定时操作。通道1作为定时器工作于方式1,OUT1的下跳沿流水线暂停,通道0也停止计数。5秒钟后,OUT1上升沿使流水线重新启动,继续工作,通道0又开始计数。请编写8253控制程序。
答:
MOV DX, 323H;通道0初始化
MOV AL,14H
OUT DX,AL
MOV DX, 320H;写通道0计数初始值
MOV AT,18H
OUT DX,AL
MOV DX,323H;通道1初始化
MOV AT,72H
OUT DX,AL
MOV AX,1F4H;写通道1定时系数
MOV DX,321H
OUT DX,AL
MOV AL,AH;写地址高8位
OUT DX,AL
第7章简答题
1.写出8086CPU各内中断源的名称及产生的条件。
答:溢出中断,执行INTO指令且OF=1;除法中断,执行DIV/IDIV指令后商大于规定范围; INTn,软中断指令INT3,单字节(断点)中断TF=1的单步中断(或陷阱)
9. 8086CPU内部中断有何特点?
答:8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。
10. 如果8259A中断控制器下列寄存器内容都为10H,请指出各寄存器内容的意义:
①中断请求寄存器 (IRR)=10H
②中断屏蔽寄存器(IMR)=10H
③中断服务寄存器(ISR)=10H
答:(1)中断请求寄存器(IRR)=10H;说明IR4有中断请求
(2)中断屏蔽寄存器(IMR)=10H;说明屏蔽了IR4的中断请求
(3)中断服务寄存器(ISR)=10H;说明IR4的中断请求正在被服务
4.比较中断方式与DMA方式的主要异同,并指出它们各自应用在什么性质的场合。
答:相同点:这两种方式下,主机和I/O设备都是并行工作。 不同点:中断方式在CPU响应了I/O设备的中断请求后,要暂停现行程序的执行,转为I/O设备服务。DMA 方式直接依靠硬件实现主存与I/O设备之间的数据直传,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,CPU效率比中断方式。
5. 请说明程序查询方式与中断方式各自的特点。
答:程序查询方式,数据在CPU和外围设备之间的传送完全靠计算机程序控制,优点是硬件结构比较简单,缺点是CPU效率低,中断方式是外围设备用来“主动”通知CPU,准备输入输出的一种方法,节省了CPU时间,但硬件结构相对复杂一些。
6.简要说明中断控制器8259中IRR、IMR、ISR三个寄存器的作用。
答:IRR是中断请求控制器。它保存从IR0-IR7来的中断请求信号。某一位有1就表示相应引脚上有中断请求信号。中断响应后,该IR输入线上的请求信号应该撤销。
ISR是中断服务寄存器。它用于保存正在服务的中断源。在中断响应时,判优电路把发出中断请求的中断源中优先级最高的中断源所对应的位设置为1,表示该中断源正在处理中。ISR某一位置1课阻止与它同级和更低优先级的请求被响应,但允许更高优先级的请求被响应。
IMR是中断屏蔽寄存器。它用于存放中断控制字,其中为1的位表示对应的中断请求输入将被屏蔽
7.8086/8088在什么时候及什么条件下可以响应一个外部INTR中断请求,中断向量表在存储器的什么位置?向量表的内容是什么?8086如何将控制转向中断服务程序?
答:(1)8086/8088在当前指令执行完且IF=1的情况下可以响应一个外部INTR中断请求。
(2)中断向量表在存储器的0段0000—03FFH区域,向量表存放中断处理程序的入口地址。
(3)8086/8088响应INTR中断请求时,首先在连续的两个总线周期中发出INTA#负脉冲,在第二个INTA#信号期间,中断源经数据总线向8086/8088送出一字节中断向量“类型码”。8086/8088收到“类型码”后将其乘4形 成中断向量表的入口,从此地址开始的4个单元中读出中断服务程序的入口地址(IP、CS),8086/8088从此地址取指令执行,将控制转向中断服务程序。
8. 试比较指令中断与子程序调用有什么异同。
答:调用指令是用于调用程序中常用到的功能子程序,是在程序设计中就设计好的。根据所调用过程入口地址的位置可将调用指令分为段内调用和段间调用。在执行调用指令后,CPU要保护断点。中断指令是因一些突发事件而是CPU暂时中止它正在运行的程序,转去执行一组专门的中断服务程序,并在执行完后返回原被中止处继续执行原程序,它是随机的。在相应中断后CPU不仅要保护断点,还要将标志寄存器FLAGS压入堆栈保存。
9. 8255A工作于方式2,采用中断传送,CPU如何区分输入中断还是输出中断?
答:CPU响应8255A的中断请求后,在中断服务程序的开始可以查询8255A的状态 字, 判断~OBF (PC7)和IBF (PC5)位的状态来区分是输入中断还是输出中断,并根据此转向相应的输入或输出操作。
第8章综合分析、设计题
1.典型的ADC0809系统连接如下图所示,=220H~227H。
⑴设某被测模拟量已连接至ADC0809的端,请写出锁存通道地址并启动A/D转换的程序片段。
⑵写出A/D转换结束后,读取转换结果的程序片段。220H~227H IN0~IN7
2.下图为函数波形发生器芯片连接图,采用8255A作为DAC与CPU之间的接口芯片,8255的A口作为数据输出口, B口的PB0-PB4五根线作为控制信号来控制DAC0832的缓冲过程及转换操作。8255A端口地址为300H--303H,要在示波器上看到连续的锯齿波波形。请编写程序完成相应的功能。
3. 下图中8255口地址为A0H~A3H,从IN2读入1个模拟量,现给出经ADC0809转换后的数字
量送入CPU的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
答: MOV AL,
OUT , AL ; 8255初始化
MOV AL,
OUT ,AL ;送通道号到B口
ADD AL,
OUT , AL ;启动ADC0809转换
SUB AL,
OUT A1H , AL
L: IN AL, ;查EOC
TEST AL, 08H
JZ L
IN AL, ;读取转换结果
HLT
4.下图是ADC0809通过8255与PC总线接口,采用中断方式依次从IN0~IN7转换8个模拟量,把转换后的数字量依次存入内存BUFFER 的变量区中。
⑴计算8255口地址。0809输出允许OE的口地址。
⑵现给出满足上述要求的控制程序,请在程序中空缺部分填上正确内容(初始化时无关项置0)。
(2)控制程序: MOV AL,____ 8AH____ 8255A初始化
OUT ___ 8BH_____,AL
MOV SI,____ OFFSET BUFER____
MOV CX,8
MOV BL,____ 00H____ ;从IN0开始转换,生成正脉冲启动 转换
LOP: MOV AL,BL
OUT 88H,AL
ADD AL,10000000B
OUT 88H,AL
SUB AL,10000000B
OUT 88H,AL
CALL DELAY1;调用延时65时钟周期的子程序
LOP1: IN AL,____ 8AH____;检测EOC
TEST AL,____ 80H____
_____ JZ LOP1______
IN AL,____ 89H____
MOV [SI],AL
INC SI INC ____ BL____
LOOP ___ LOP_____
5.(10分)ADC0809与PC总线的接口如下图所示,地址译码器输出 地址范围为
84H~87H,采用软件延时来等待转换结束,已知ADC0809转换时间100us,延时程序为
DELAY100。请编写控制程序启动转换并读取模拟量IN7的转换结果。
6.(10分)ADC0809与8255、PC总线的接口如下图所示,地址译码器输出地址范围为80H~83H,地址范围为84H~87H,采用查询方式等待转换结束,请编写控制程序启动转换模拟量IN0并读取转换结果。
7.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,请:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②编写控制程序从IN0开始启动转换,连续采样24个数据,然后采样下一通道,同样采样24个数据,直至IN7。采样数据存放在数据段2000H开始的数据区中。
8.(10分)ADC0809与8255、PC总线的接口如下图所示,采用查询方式等待转换结束,假设8255端口地址为80H~83H,ADC0809输出允许OE地址为84H~87H,编写控制程序完成IN0启动转换和数据输入。
9.(10分)ADC0809接口如下图所示,请回答以下问题:
①写出ADC0809启动转换程序段
②写出查询ADC0809转换是否结束程序段
③写出读出ADC0809转换结果程序段
④按图所示转换的是哪个模拟通道
10.(10分)ADC0809接口如下图所示,请回答以下问题:
①计算8255端口地址,ADC0809启动转换地址,IN0~ IN7通道地址。
②写出ADC0809启动转换IN7程序段
③写出查询ADC0809转换是否结束程序段
④写出使ADC0809的OE有效程序段
⑤写出读出ADC0809转换结果程序段
⑥按图所示若CLK88频率为4MHz,则ADC0809CLOCK周期为多少微妙?
第10章简答题
1. “行扫描法”和“行反转法”各分几步完成?每步的具体含义是什么?各有什么特点?
答:“行扫描法”分4步执行:
①判断是否有键按下
具体做法是:对行并行端口输出全“0”,然后,通过列并行输入端口读入列值,并进行比较判别:若列值为全“1”,则说明无键按下;若列值为非全“1”,则说明已有键按下,转下一步。
②延迟10~20ms,以消除按键的机械抖动
③识别是哪个键按下
具体做法是:从第0行开始,仅输出一行为“0”电平,其余为“1”电平,逐行扫描。每扫描一行,读入一次列值,若列值为全“1”,则说明此行无键按下,继续扫描下一行;若列值为非全“1”,则此行有键按下,记下此时的行、列值。
④依所得的行、列值查键号表可得键号(6),然后再由键号查键值表得出被按键得键值。
2. 设计并画出一个8×8小键盘及接口电路,用文字叙述方式说明键盘及接口的工作原理及行扫描法识别键按下的工作过程。(规定用一片8255A作接口电路,其它元器件自选。)
答:1.电路工作原理:
(1)8255A的口A设置为输出状态,PAO~PA7接行线ROW0一ROW7。
(2)8255A的口B设置为输入状态,PB0一PB7接列线CO~C7。 (
3)电阻R为列线提拉电阻,保证列线静态电位为高电平。
(4)行列线交点接一开关,开关按下时将交点上行线逻辑状态送到该交点的列线上。
2.行扫描法识别键按下
(1)扫描程序首先让8255A的口A输出扫描码(初值为lllllll0B):
(2)扫描程序渎人8255A的B口连接的列线状态,判断是否有为逻辑。的列线;
(3)若B口读入有为。的位,说明本行有键按下,经移位检测出为。的列线序号,与扫描 码为。位所对应的行线序号共同形成键号,转相应键处理程序;
(4)若B口读人没有为。的位,说明本行无键按下,修改扫描码(第二次为llllll01B);
(5)转向(1),进行下一次扫描,如此循环直至发现有键按下为止。
假设(DS)=2000H,(ES)=3000H,(SS)=4000H,(SP)=100H,(BX)=200H,(SI)=1, (D1)=2,(BP)=256,字变量ARRAY偏移地址为0050H,(20250H)=1234H,(40100H)=00AOH,(40102H)=2200H.填空回答下列问题。
(1)MOV Ax,[BP][DI] ;源操作数物理地址= 40102 H 指令执行后(AX)= 2200 H
(2)POP Ax ;源操作数物理地址=40100 H 指令执行后(AX)=00AO H
(3)PUSH Es:[BX] ;源操作数有效地址=200 H
(4)LEA DI,ARRAY;源字段的寻址方式是 直接寻址方式 指令执行后(DI)= 0050 H
(5)JMP [BX] ;指令执行后(IP)= 200 H
(6)ADD AL,BYTE PTR ARRAY[BX] ;源字段的寻址方式是 寄存器相对寻址方式 指令执行后(AL)= 34 H
第10章综合分析、设计题
1. 四位共阴极七段LED显示器的接口电路如下图所示。8255A的PA口提供段选码,PB口提供位选码。设8255A口地址: 40H~43H。请:
⑴写出“1234”的段选码(字型码)。
⑵编写从左到右扫描显示 “1234”程序片段(初始化时无关项置0)。
2.(10分)采用8253实现秒信号发生器的电路如下图所示,图中CLK0接基准时钟,OUT0接CLK1,OUT1产生秒定时信号。接口的初始化程序如下:
MOV DX, 控制口地址 ;计数通道0初始化,
MOV AL, 35H
OUT DX, AL
MOV AX, 5000H ;计数通道0写入计数初值
MOV DX, 通道0地址 ;
OUT DX, AL
MOV AL, AH
OUT DX, AL
MOV DX, 控制口地址 ;计数通道1初始化
MOV AL, 56H
OUT DX, AL
MOV AL, 200 ;计数通道1写入计数初值
MOV DX, 通道1地址 ;
OUT DX, AL
答:
3. (10分)
8086CPU通过8255A同开关及7段LED显示器接口电路如下图所示。请编写程序由7段LED显示器显示开关二进制状态值(用十六进制表示)。设端口地址为60H~63H,0~9,A~F的七段码分别为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H,88H,83H,0C6H,0A1H,86H,8EH
答:设8255A得端口地址为:
端口A:0FFF8H
端口B:0FFFAH
端口C:0FFFCH 控制口:0FFFEH
为增加8255A的负载能力,所以A口经驱动器同七段LED显示器相连。由图47可见,8255A的地址线A1、A0分别同地址锁存器输出的A2、A1相连,故每个端口可有二个端口地址,如A口为0FFF8H和0FFF9H,可认为未参加译码的地址线A0为0的地址,所以通常使用0FFF8H地址。
假设B口用输入,则8255A工作方式控制字为82H。
程序如下:
ORG 2000H ;从2000H开始存放数据
MOV AL, 82H ;只工作方式控制字
MOV DX,0FFFEH
OUT DX, AL
RDPOR TB: MOV DL, 0FAH ;读入B口信息
IN AL, DX
AND AL, 0FH ;屏蔽AL高四位,B口读入的信息 只低四位有效
MOV BX,OFFFSET SSEGCODE ;地址指针BX指向段选码表首地址
XLAT ; [BX+AL]→AL
MOV DL, 0F8H ;段选码→A口,由七段LED显示 器显示
OUT DX, AL
MOV AX, 56CH ;延时,使读入的信息保持显示一段 时间
DELAY: DEC AX
JNZ DELAY
JMP RDPORTB ;进入新一轮的操作
HLT
ORG 2500H ;从2500H开始为段选码表
如果要求LED显示器循环显示0-F十六个数字,每个数字显示10s,显示100遍。则控制程序为:
ORG 2000H
MOV AL,82H
MOV DX,0FFFEH
OUT DX,AL
MOV BX,100 ;循环100次
DISFLOP: LEA DI,SSEGCODE ;指向段选码表
MOV CX,16 ;显示字符个数 LOP MOV AL,[DI] ;取显示字符送A口
MOV DL,0F8H
OUT DX,AL
INC DI ;修改显示指针
CALL DELAY10s ;延时10s字程序
LOOP LOP ;每遍循环16次 DEC BX ;修改大循环指针
JNZ DISFLOP
HLT
ORG 2500H
SEEG
CODE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,
DB 98H,88H,83H,DB 0C6H,0A1H,86H,8EH
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询