接口作业解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
作业1(第二章)
1、8086系统中,设段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时指令的物理地址为多少,指向此地址的CS和IP值是唯一的吗
解:物理地址=12000H+FF00H=21F00H,不唯一。
2、T1状态下,8086的数据/地址线上是什么信息,用哪个信号将此信息锁存起来
解答:地址信息,ALE地址锁存信号。
4、若CS=A000H,求当前代码段在存储器中的物理地址范围是什么若数据段位于52000H到61FFFH的64K范围内,问DS=
解答:A0000H—AFFFFH; 5200H
5、若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么若再出栈6个字节,SP为什么值
解答: 35800H,入栈10 个字节,(SP)=7F6H,出栈6个字节后(SP)=7FCH
6、某程序数据段中存放了两个字,1EE5H和2A8CH,已知(DS)=7850H,数据存放的偏移地址为3121H及285AH。
试画图说明它们在存储器中的存放情况,若要读取这两个字,需要对存储器进行几次操作
解答: 7850:3121H -> E5H
7850:3122H -> 1EH 两次
7850:285AH -> 8CH
7850:285BH -> 2AH 一次
作业2:(第五章)
1、某一个微机系统中,有8块I/O接口芯片,每个芯片占有8个端口地址,若起始地址为9000H,8块芯片的地址连续分布,用74LS138作译码器,试画出端口译码电话,并说明每块芯片的端口地址范围。
作业3:(第七章)
1、已知:SP=0100H、SS=0500H、PSW=0240H,在存储单元中已有内容为(00024)=0060H、(00026H)=1000H,在(0800H:00A0H)中有中断指令INT 9。
试问,执行INT 9指令后,SS、SP、CS、IP、PSW的内容是什么栈顶的三个字是什么
解答: CPU响应外部中断的流程:
1.从数据总线上取中断类型号;9H
2.将PSW入栈;SP=00FEH
3.保护断点,即将CS、IP入栈SP=00FAH
4.对PSW中的IF、TF位清0,禁止外部中断和单步中断
5.找到中断向量,转入相应中断服务子程序中断向量:9H*4=24H
取(4n)中的内容IP,取(4n+2)中的内容CS
CS:IP在(00024H)中,CS:IP为1000H:0060H
6.中断结束后弹出IP、CS和PSW,返回主程序断点处
推入栈中的三个字分别为:PSW 0240H,CS 0800H,IP 00A2H (A2,00,00,08,40,02) CS:IP=1000H:60H,SP=FAH,PSW=0040H
2、中断向量指什么,放在哪里,对应8086的1CH的中断向量存放在哪里,如果1CH的中断处理程序从5110H:2030H开始,则中断向量应怎样存放
解答:中断服务程序的入口地址,00000H—003FFH,1CH*4=70H,0070开始30 20 10 51
3、假如外设A1、A2、A3、A
4、A5按优先级排列,外设A1优先级最高,按下列提问,说明中断处理的运行次序,(中断服务程序中有STI指令)
(1)外设A3,A4同时发中断请求;
(2)外设A3中断处理中,外设A1发中断请求;
(3)外设A1中断处理未完成前,发出EOI结束命令,外设A5发中断请求。
解答:
3、某系统中有3片8259A级联使用,1片为8259A主片,2片为8259A从片,从片接入8259A 主片的IR2和IR5端,并且当前8259A主片的IR3及两片8259A从片的IR4各接有一个外部中断源。
中断类型基号分别为80H、90H、A0H、中断入口段基址在2000H,偏移地址分别为1800H、2800H、3800H、主片8259A的端口地址为CCF8H、CCFAH。
一片8259A从片的端口地址为FEE8H、FEEAH,另一片为FEECH、FEEEH。
中断采用电平触发,完全嵌套工作方式,普通EOI结束。
(1)画出硬件连接图;(2)编写初始化程序。
•解答: 中断向量形成
(将3个中断入口地址写入中断向量表)
MOV AX,2000H
MOV DS,AX
MOV DX,1800H
MOV AL,83H
MOV AH,25H
INT 21H
MOV DX,2800H
MOV AL,94H
MOV AH,25H
INT 21H
MOV DX,3800H
MOV AL,A4H
MOV AH,25H
INT 21
•主片初始化
MOV AL,00011001B ;定义ICW1
MOV DX,0CCF8H
OUT DX,AL
MOV AL,80H ;定义ICW2
MOV DX,0CCFAH
OUT DX,AL
MOV AL,00100100B ;定义ICW3
OUT DX,AL
MOV AL,00010001 B ;定义ICW4
OUT DX,AL
MOV AL,B ;定义OCW1
OUT DX,AL
主片的中断结束命令:
MOV AL,20H ;定义OCW2
MOV DX,0CCF8H
OUT DX,AL
•从片1初始化
MOV AL,00011001B ;定义ICW1
MOV DX,0FEE8H
OUT DX,AL
MOV AL,90H ;定义ICW2
MOV DX,0FEEAH
OUT DX,AL
MOV AL,00000010B ;定义ICW3
OUT DX,AL
MOV AL,00000001B ;定义ICW4
OUT DX,AL
MOV AL,B ;定义OCW1
OUT DX,AL
从片1的中断结束命令:
MOV AL,20H
MOV DX,0FEE8H
OUT DX,AL
•从片2初始化
MOV AL,00011001B ;定义ICW1
MOV DX,0FEECH
OUT DX,AL
MOV AL,0A0H ;定义ICW2
MOV DX,0FEEEH
OUT DX,AL
MOV AL,00000101B ;定义ICW3
OUT DX,AL
MOV AL,00000001B ;定义ICW4
OUT DX,AL
MOV AL,B ;定义OCW1
OUT DX,AL
从片2的中断结束命令:
MOV AL,20H
MOV DX,0FEECH
OUT DX,AL
作业4:(第九章)
1、设8253的通道0~2和控制端口的地址分别为300H、302H、304H和306H,定义通道0
工作在方式3,CLK0=2MHz。
试编写初始化程序,并画出硬件连线图。
要求通道0输出的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,通道2每秒钟向CPU发50次中断请求。
解答:控制端口:306H
a)通道0
i.地址:300H;CLK0=2MHz;输出的方波
ii.工作在方式3;
iii.N0=2MHz/ = 1333
b)通道1
i.地址:302H;CLK1= OUT0;输出300Hz的序列负脉冲;
ii.工作在方式 2 ;
iii.N1=300Hz=5
c)通道2
i.地址:304H;CLK2= 系统时钟;每秒向CPU发50次中断请求;
ii.输出工作在方式3;
iii.N2= 2MHz/50 = 40000 = 9840H;
iv.或OUT0 接CLK2 ,则N2=300/50=6 或OUT1 接CLK2 ,则N2=50=30
初始化程序
计数器0:
MOV AL,37H
MOV DX,306H
OUT DX, AL
MOV DX, 300H
MOV AL,33H
OUT DX,AL
MOV AL,13H
OUT DX,AL
计数器1:
MOV AL,55H
MOV DX , 306H
OUT DX,AL
MOV AL,05H
MOV DX, 302H
OUT DX ,AL
计数器2:
MOV AL,0B6H (95H)
MOV DX , 306H
OUT DX ,AL
MOV DX , 304H
MOV AX,9840H (6 或30)
OUT DX ,AL
MOV AL,AH
OUT DX ,AL
2、某微机系统中,8253的端口首地址为40H ,时钟频率5MHz ,要求通道0输出方波,使计算机每秒钟产生次中断;通道1每隔15us 向8237A 提出一次DMA 请求;通道2输出频率为2000Hz 的方波,使编写8253的初始化程序,并画出有关的硬件连接图
解答:
• 控制端口:43H
• 通道0
• 地址:40H ;CLK0=5MHz ;输出的方波
• 工作在方式3;
• N0=5MHz/ = 274725 >>65536
因此必须采用级连的方案来解决这个问题
• 将频率5MHz 的时钟信号加在CLK0端并让通道0工作于方式2,若
选N0=274,则 • 再把OUT0连接到CLK1,并使通道1工作于方式3,为
使 ,应取时间常数
初始化程序
计数器0:
MOV AL ,35H
OUT 43H ,AL
MOV AL ,74H
OUT 40H ,AL
MOV AL ,02H
OUT 40H ,AL
计数器1:
MOV AL ,77H
OUT 43H ,AL
MOV AL ,03H
OUT 41H ,AL
MOV AL ,10H
OUT 41H ,AL
3、设某系统中8254芯片的基地址为F0H ,在对3个通道编程时,都设为先读写低8位,后读写高8位,试编程完成下列工作:
对通道0-2的计数值进行锁存并读出来
对通道2的状态值进行锁存并读出来
解答:通道0~2地址:0F0~0F2H ,控制端口:0F3H
0527418248OUT f MHz Hz
==118.2OUT f Hz
=1111824818.21003
CLK OUT N f f Hz Hz ===
对通道0~2的计数值进行锁存并读出来:
MOV AL,0DEH
OUT F3H,AL
MOV DX,0F0H
IN AL,DX
MOV DX,0F1H
IN AL,DX
MOV DX,0F2H
IN AL,DX
对通道2状态值锁存并读出:
MOV AL,0E8H
MOV DX,0F3H
IN AL,DX
作业5:(第六章)
1、若某一终端以2400波特的速率发送异步串行数据,发送1位需要多少时间假如一个字符包含7个数据位、1个奇偶校验位、1个停止位,发送1个字符需要多少时间
解答: (1) 1/2400 (2) 1/2400*10
2、若8251A以9600波特的速率发送数据,波特率因子为16,发送时钟TxC频率为多少
解答: =9600*16=153600BPS
3、若8251A的端口地址为FF0H,FF2H,要求8251A工作于异步工作方式,波特率因子为16,有7个数据位,1个奇校验位,1个停止位,试对8251A进行初始化编程。
解答: MOV DX,0FF2H
MOV AL,7AH
OUT DX,AL
MOV AL,03H
OUT DX,AL
4、某微机系统用串行方式接收外设送来的数据,再把数据送到CRT去显示,若波特率为1200,波特率因子为16,用8253产生收发时钟,系统时钟频率为5MHz,收发数据个数为COUNT,数据存放到数据段中以BUFFER为始址的内存单元中。
8253和8251A的基地址分别为300H 和304H。
(1)画出系统硬件连线图。
(2)编写8253和8251A的初始化程序。
(3)编写接收数据和发送数据的程序。
解答: MOV DX,303H
MOV AL,00110100B
OUT DX,AL
MOV DX,300H
MOV AX,260
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,305H
MOV AL,7AH
OUT DX,AL
MOV AL,15H
OUT DX,AL
MOV DX,305H
IN AL,DX
TEST AL,02H
JZ L1
TEST AL,38H
JNZ ERR
MOV DX,304H
IN AL,DX
MOV BL,AL
MOV DX,305H
作业6:(第六章)
1、设8255A的A口,B口,C口和控制字寄存器的端口地址分别80H,82H,84H和86H。
要求A口工作在方式0输出,B口工作在方式0输入,C口高4位输入,低4位输出,试编写8255A的初始化程序。
解答: MOV AL,8AH
OUT 86H,AL
2、8255A的端口地址同第5题,要求PC4输出高电平,PC5输出低电平,PC6输出一个正脉冲,试写出完成这些功能的指令序列。
解答: ;PC4输出高电平
MOV DX,86H
MOV AL,09H
OUT DX,AL
;PC5输出低电平
MOV AL,0AH
OUT DX,AL
;PC6输出一个正脉冲
MOV AL,0DH
OUT DX,AL
MOV AL,0CH
OUT DX,AL
3、8255A的口地址为80H~83H,8253的口地址为84H~87H。
1)若A口接8个开关K7~K0,B口接8个指示灯LED7~LED0,当开关合上时相应的指示灯点
亮,断开时灯灭,要求每隔秒检测一次开关状态,并在开关上显示出来,试画出硬件连线图,编写实现这种功能的程序。
(可采用软件延时秒)
2)若把接在端口A上的开关去掉,要求接在端口B上的指示灯轮流熄灭,每只灯熄灭1
秒钟,请编程实现这种功能。
解答: 1) 8253:
MOV AL,00110100BH
OUT 83H,AL
MOV AX,1000
OUT 80H,AL
MOV AL,AH
OUT 80H,AL。
I:IN AL,80H
OUT 81H,AL
IRET
2)
8253;
MOV AL,01110100BH
OUT 83H,AL
MOV AX,2000
OUT 81H,AL
MOV AL,AH
OUT 81H,AL
MOV DL,01H。
I:MOV AL,DL
OUT 81H,AL
ROL DL,1
IRET
作业7:(第十章)
1、运算放大器的特点
2、在T型电阻网络组成的D/A转换器中,设开关K0、K1、K2、K
3、K4分别对应1位二进
制数,当二进制数据为10110时,流入运算放大器的电流为多少画出这个T型网络。
3、试利用ADC0809、8253和8259A等芯片设计8通道A/D转换电路。
系统中用8253作定
时器,采用中断方式控制采样率为500hz,设8253的通道0输入时钟脉冲为2MHz,输出端OUT0接8259A的IR2,8253的口地址为300H-303H,8259A的口地址为304,305H,ADC0809的8个通道的口地址为308H-30FH,查询EOC信号和状态口地址为306H,ADC 的输入时钟为640kHz,A/D转换的结果依次存入数据段中以Buffer为始址的内存中。
要求:画出硬件连接图;编写8253、8259的初始化程序及采集8路模拟信号的中断服务程序。