《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx

上传人:b****2 文档编号:3538624 上传时间:2023-05-01 格式:DOCX 页数:18 大小:164.42KB
下载 相关 举报
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第1页
第1页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第2页
第2页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第3页
第3页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第4页
第4页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第5页
第5页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第6页
第6页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第7页
第7页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第8页
第8页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第9页
第9页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第10页
第10页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第11页
第11页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第12页
第12页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第13页
第13页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第14页
第14页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第15页
第15页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第16页
第16页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第17页
第17页 / 共18页
《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx

《《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx(18页珍藏版)》请在冰点文库上搜索。

《现代微机原理与接口技术》部分习题答案Word文档下载推荐.docx

串口、并口、键盘、鼠标等功能集成到SIOLPC48B27X芯片中。

第2章

6.请简述I/O保护的实现原理。

首先要明确一点,在DOS环境(实地址模式)下,I/O是没有保护的,只有在保护模式下才有I/O的保护功能。

I/O保护有两种机构:

I/O特权级IOPL(I/OPrivilegeLevel)和I/O允许位映像(I/OPermissionBitMap)。

EFLAG标志寄存器中IOPL字段定义使用I/O相关指令的权限;

任务状态段TSS(TaskStateSegment)的I/O允许位映像用来修正IOPL对I/O敏感指令的影响,允许较低特权级的程序或任务访问某些I/O端口。

在保护方式下,当处理器遇到一条I/O指令(IN,INS,OUT和OUTS)时,它首先检查CPL<

IOPL是否成立,其中CPL是当前任务的特权级。

若成立,则可以处理I/O操作;

若不成立,则处理器检查I/O允许映像。

在虚拟8086方式下,处理器只查看这个映像而不考虑IOPL。

I/O允许位映像是一个位向量,每一位都表示一个端口地址,每个字节都可以表示8个端口。

若任何一个被测试的位置位,则处理器发出一般保护异常信号;

若所有被测试位都是0,则I/O操作可以继续进行。

7.设计一个外设端口译码器,使CPU能寻址四个地址范围:

①0280~0287H,②0288~028FH,③0290~0297H,④0298~029FH。

本题可以用一个2-4译码器,考虑到大家对74LS138比较熟悉,所以我们用74LS138这个3-8译码器来做这到题。

分析,从四段地址的低位来看,显然地址的低3位作为地址低位,不参与到译码电路中,而四段地址范围为1010000XXX~1010001XXX~1010010XXX~1010011XXX,显然我们可以将A4A3作为74LS138的B、A输入,这样得到的电路是:

8.已知PC机系统中某接口板的板地址译码电路如图2.8所示。

现希望该板的地址范围为0240~0247H,请确定DIP开关各位的状态(打开或闭合)。

图2.8习题8

应该关闭的开关有Q0、Q1、Q2、Q4、Q5

9.以查询输出方式编程,从内存中首地址为BUFFER的缓冲区向CRT终端输出128个字节,CRT终端数据口地址为0008H,状态口地址为0020H,D7为状态位,0表示输出缓存空闲。

……

MOVSI,OFFSETBUFFER

MOVCX,128

WAIT:

INAL,20H

TESTAL,80H

JNZWAIT;

输出缓冲不空

MOVAL,[SI]

OUT08H,AL

DECCX

JNZWAIT

第6章

3.如果8254-2某计数器的计数初值为400H,信号频率为10MHz,求时间片(微秒)。

所谓时间片是指输出脉冲的周期,由题可知,fOUT=fCLK÷

计数初值=10M/1K=10K。

时间片(周期)=1/fOUT=97.656微秒。

4.用8254作为某数据采集系统的定时器,每隔10ms用中断方式采集一次数据,已知输入时钟频率为10kHz,8259端口地址为20~21H,中断类型号为13H,8254端口地址为40~43H,请为8259和8254编制初始化程序。

分析:

8254的中断请求的中断类型号为13H,则显然在8259的ICW2的值为10H(中断类型号的高5位),而中断引脚显然用的是IR3。

8254的输入时钟频率为10kHz,需要输出10ms周期(频率100)的方波,作为中断请求信号,可以考虑用方式3,初始值为10K/100=100。

;

对8259初始化:

MOVAL,00010011B;

边沿触发,单片使用,要ICW4

OUT20H,AL;

ICW1

JMPSHORT$+2

MOVAL,10H;

中断类型号高位

OUT21H,AL;

ICW2

MOVAL,00000001B;

非总线缓冲方式,全嵌套,正常的中断结束

ICW4

对8254的初始化

MOVAL,00010110B;

计数器0方式3,低8位二进制计数

OUT43H,AL

MOVAL,100;

计数初始值

OUT40H,AL

7.某系统中8254芯片的通道0~通道2和控制字端口号分别为FFF0H~FFF3H,定义通道0工作在方式2,CLK0=5MHz,要求输出OUT0=1kHz方波;

定义通道l工作在方式4,用OUT0作计数脉冲,计数值为1000,计数器计到0向CPU发中断请求,CPU响应这一中断后继续写入计数值1000,重新开始计数,保持每1秒钟向CPU发出一次中断请求。

请画出硬件连接图,并编写初始化程序。

8254初始化程序如下:

MOVAL,00110100B

MOVDX,FFF3H

OUTDX,AL

MOVAL,01111000B

MOVAX,5000

MOVDX,FFF0H

MOVAL,AH

INCDX

MOVAX,1000

电路图如下:

9.试编写一程序,使PC/AT系统板上的发声电路发出200Hz至900Hz频率连续变化的报警声。

PC/AT机是使用8254的计数器2输入工作时钟频率1.1931816MHz,工作在方式3,产生一定频率的方波来驱动喇叭发声的(当然,8255PB口D1位要置1,这个我们假设都是打开的),题目要求的发声频率从200Hz到900Hz,按照书上185上的公式:

初始值=输入时钟频率/输出频率,初始值范围为5966~1326,可以编程,初始值给5966,然后每隔一定延迟(如20ms)将初始值减1,直到1326为止。

MOVAL,10110110B

MOVAX,5966

P1:

PUSHAX

OUT42H,AL

MOVAL,AH

CALLWAIT20ms;

延迟20秒

POPAX

DECAX

CMPAX,1325

JNZP1

10.在8086系统中,用8254构成一个定时、计数与脉冲发生器系统。

利用通道0完成对外部事件计数功能,计满100次向CPU发中断请求;

利用通道1产生频率为1kHz的方波;

利用通道2产生1秒标准时钟。

8254的计数频率为2.5MHz,8254的端口地址为41H~47H,试完成硬件连接和初始化编程。

8254从CLK0输入时钟频率为2.5MHz,通道0计数100次后输出的中断频率是250KHz,因为是做中断源,所以通道0最好工作在方式3,另外OUT0输出的这个脉冲还要作为通道1的输入时钟,从CLK1中输入,利用通道1计数250次(方式3)获得从OUT1输出的1KHz的方波,该输出同时作为通道2的时钟输入,通道2工作在方式3下,对CLK2中输入的1KHz时钟计数1000次(既进行1000分频),输出1秒的标准时钟(频率1Hz)。

74LS138

8254

再来看8254的译码问题,题目中端口地址为41H~47H,显然通道0、1、2和控制字的地址分别为41H、43H、45H和47H,也就是说A0这根地址线始终为1,根据这些分析,我们得到如下电路。

初始化8254程序:

MOVAL,00010110B

OUT47H,AL

MOVAL,01010110B

MOV47H,AL

MOVAL,100

OUT41H,AL

MOVAL,250

OUT45H,AL

第7章

6.试使用8255实现对74LS138的检测。

本题是要用8255芯片来检测一个74LS138芯片的输入输出是否满足真值表。

可以采用8255的PA口的PA0PA1PA2作为74LS138的ABC三个输入,将74LS138的Y0~Y78个输出接到8255的PB口,PB口作为输入口来获取这些信息,C口作为按位输出口输出到74LS138的控制信号(使能信号)。

然后按下图的真值表来进行验证。

假设8255A的端口地址为60H~63H。

检测程序如下:

MOVAL,10000010B;

A口为输出,B口为输入,

OUT63H,AL;

C口上下半全输出,全为方式0

MOVAL,0

OUT60H,AL

MOVAL,00000000B;

将PC0(G1)清0,不使能138

OUT62H,AL

INAL,61H

CMPAL,FFH

JZTEST1

JMPERROR

TEST1:

MOVAL,00000011B;

将PC1(G2A)置1,不使能138

JZTEST2

TEST2:

MOVAL,00000101B;

将PC2(G2B)置1,不使能138

JZTEST3

TEST3:

MOVAL,00000001B;

使能138

MOVCX,7;

从CBA为111检测到CBA为000,

MOVBX,FF7FH;

所以第一个输出0的是Y7。

也就是PB7应该为0

TEST4:

MOVAL,CL

OUT60H,AL

JMP$+2

INAL,61H

CMPAL,BL

JZTEST5;

如果相等则这一个CBA组合通过验证,继续检验

JMPERROR;

否则转出错

TEST5:

CMPCX,0

JZSUCCESS;

如已检查到CBA输入组合为000,检验成功结束。

SARBX,1;

检测138输出的0右移一位。

DECCX;

将138的CBA组合减1

JMPTEST4

ERROR:

……

SUCCESS:

7.一8255芯片的A口和B口分别与8个LED灯和8个开关连接好,通过开关控制LED等的开和闭。

8255的端口地址为40,42,44和46H。

画出译码电路图,编写初始化程序和控制程序。

初始化程序如下:

MOVAL,10000010B

OUT46H,AL

控制程序如下:

(开关闭合LED亮,否则LED灭

INAL,42H

NOTAL;

按位取反

电路连接图如下:

8255

8.试把例7.5改成中断方式,并加软件去抖动。

给出硬件连接图和有关程序段。

键盘扫描程序放到中断处理程序中即可。

程序略

9.试用两个8255A设计一个并行接口电路,把两个CPU为80486的ISA总线系统(主—从)连接在一起,实现主机和从机的单向通信。

假设用中断驱动式实现传送同步,试画出硬件连接图,并编写主机和从机的工作程序。

请大家参见总复习的例5进行相应的修改。

10.有个1s的脉冲信号源送8253的计数器1利用软件方式扩大定时1秒,每秒钟从8255的PA口读入一组开关数并送PB口的LED管显示,设8253,8255的端口地址分别为40H~43H和60H~63H,且只用10条地址线(A0~A9)用于端口译码。

请完成:

①硬件连接。

②编写对8253计数器1初始化程序段(仅50ms)

③编写对8255的初始化程序以及1秒到后从PA口读入一个字节开关数并送PB口显示的程序段。

题目中要求用软件方式将1s(1MHz)的脉冲用软件方法扩大定时到1秒,题目第二问又明确8253的计数器1输出脉冲周期是50ms(20Hz),显然,向系统提出的中断频率是每秒20次,在中断处理程序中,用软件的方法使用变量计数到20次后读PA口开关状态,并同时向PB口输出。

1)

注意在上图中的译码电路将A0~A910根线全部使用,使得各个芯片的地址范围被严格限制。

2)8253的初始化程序:

MOVAL,01110110B;

计数器1方式3,二进制

OUT43H,AL

MOVAX,50000

OUT41H,AL

MOVAL,AH

3)8255初始化

MOVAL,10011000B;

A口方式0输入,B口方式0输出

OUT63H,AL

中断处理程序如下:

……

TIMESDB0

SERVICEPROC

PUSHA

MOVAL,TIMES

INCAL

MOVTIMES,AL

CMPAL,20

JNZEXIT;

没有计数到20次,说明1秒没到,退出中断处理程序

INAL,60H

NOTAL

OUT61H,AL

EXIT:

POPA

IRET

SERVICEENDP

11.用8086,8255,8259和8254构造系统实现对指示灯控制。

8255的PA0,PA1,PA2接三位DIP开关,通过DIP开关的闭合状态决定接在PB口上的八个指示灯之一闪烁。

如PA2,PA1,PA0为000时,PB0上所接指示灯闪烁,其余灯熄灭。

要求闪烁频率为每秒10次。

设8259地址为20H和21H,8255地址为60H~63H,8254地址为40H~43H,时钟频率为50kHz,8259A中断向量号为70H和71H。

试设计硬件连接电路,填写中断向量表,编写全部初始化程序,完成控制程序编写。

1)指示灯闪烁可以有两种方法,一种是利用8254出来的方波信号和PB口出来的指示灯信号通过组合电路来实现灯的闪烁(硬件控制法,如同PC机的扬声器控制那样),另一种方法是利用中断,用中断处理程序来控制闪烁(软件控制法)。

本题提供有两个中断向量(类型)号,说明希望大家使用两个中断,一个自然是PA上的开关动作的时候产生中断(如同小键盘那样),而另一个中断显然是出题者希望大家用软件控制法去闪烁指示灯。

2)如果闪烁频率每秒10次,显然中断频率就要是每秒20次(一半时间熄灯一半时间亮灯)。

该中断又可以有两种方法产生,一种是从8254的OUT脚出来后直接接到8259A的IRQ脚,还有一种是让8255的PB口工作在方式1,让8254的OUT引脚每隔50ms发一个负脉冲给PC2(

)则PC0会自动在ACK的上升沿发出中断。

3)下面我们还要讨论的是8259A究竟用IRQ几,从题目可知中断向量号是70H和71H,我们知道,中断向量(类型号)的高5为由ICW2提供,低3位就是IRQi中的i,所以,显然是使用IRQ0和IRQ1。

4)DOS下(实地址模式)中断向量表的填写也有两种方法,第一种是使用DOS功能调用,如教材中166页的例子。

第二种方法是从0000:

0000开始,按照中断向量(类型)号×

4算出偏移,然后从低到高连续4个字节分别放中断处理程序的入口地址的偏移量(2字节)和段地址(2字节)。

如假设中断向量号为3的中断的入口地址是1234H:

5678H,则3H*4H=0CH,所以0000:

000C~0000:

000F的4个字节的内容分别是:

78H、56H、34H、12H(注意,PC机中存储采用低字节放在低地址,高字节放在高地址,见教材P14),本题我们采用DOS功能调用。

1)电路图如下(由于译码部分和前几题一样,故译码部分省略,8086部分也省略),其中PB工作在方式1。

8253的初始化程序:

MOVAL,01110100B;

计数器1方式2,二进制

MOVAX,2500

OUT41H,AL

8255初始化

MOVAL,10011100B;

A口方式0输入,B口方式1输出

将PC2置位,使能PB口方式1的中断

8259初始化

MOVAL,70H;

填写中断向量表

MOVAX,CODE;

写入新的70H中断向量

MOVDS,AX

MOVDX,OFFSETINT70

MOVAX,2570H

INT21H

写入新的71H中断向量

MOVDX,OFFSETINT71

MOVAX,2571H

中断处理程序(控制程序)

FLAGDB0;

0表示不显示,1表示显示

LEDDB0;

记录PB口的输出

TBDB1H,2H,4H,8H,10H,20H,40H,80H;

这是一张PA输入

对照PB输出状态的一个对照表

INT70PROC;

70H中断主要是完成闪烁

PUSHA;

保护现场

MOVAL,FLAG

CMPAL,0

JZDISP;

如AL为0,则直接将全0输出到PB口,灯熄灭

MOVAL,LED;

否则将LED中的输出记录从PB口输出,使灯亮

DISP:

OUT61H,AL;

PB口输出

XORAL,FFH;

FLAG状态取反

MOVFLAG,AL

POPA;

恢复现场

INT70ENDP

INT71PROC;

71H中断主要是读取A口状态并设置LED变量的值

INAL,60H;

读8255A口

MOVAH,0

MOVSI,AX;

设置访问TB表的索引

MOVAL,TB[SI];

取出和开关状态对应的PB口输出值

MOVLED,AL;

存到LED变量中。

INT71ENDP

***********************************

注意,本习题答案中,多处用到PROTEL绘制电路图,这里对于数据总线的绘制比较详细,大家在实际答题的时候可以一般简化,比如将8根线合成一根线来话,然后标明是8根线就行。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2