《现代微机原理与接口技术》部分习题答案.doc

上传人:w****2 文档编号:6539139 上传时间:2020-02-28 格式:DOC 页数:27 大小:5.84MB
返回 下载 相关 举报
《现代微机原理与接口技术》部分习题答案.doc_第1页
第1页 / 共27页
《现代微机原理与接口技术》部分习题答案.doc_第2页
第2页 / 共27页
《现代微机原理与接口技术》部分习题答案.doc_第3页
第3页 / 共27页
点击查看更多>>
资源描述
现代微机原理与接口技术部分习题答案第1章5. 在8088/8086中,逻辑地址FFFF0001, 00A237F和B800173F的物理地址分别是多少?答:物理地址段地址10H偏移地址所以FFFF:0001的物理地址是FFFFH10H0001HFFFF1H00A2:37F的物理地址是00A210H037FH=00D9FHB800:173F的物理地址是B80010H173F=B973FH6. 在8088/8086中,从物理地址388H开始顺序存放下列三个双字节的数据,651AH, D761H和007BH,请问物理地址388H, 389H, 38AH, 38BH, 38CH和38DH 6个单元中分别是什么数据?答:地址内容388H1AH389H65H38AH61H38BHD7H38CH7BH38DH00H13. PC/XT机中的各种系统支持芯片的功能在815EP为处理器支持核心的PC机中分别由什么部件完成?答:对照PC/XT的基本结构图和815EP芯片组,我们可以看到:数学协处理器已经集成到了奔腾级的CPU中,8237DMA控制器、8253定时/计数器、8259中断控制器等都被集成到了82801BA芯片中。串口、并口、键盘、鼠标等功能集成到SIO LPC48B27X芯片中。第2章6. 请简述I/O保护的实现原理。答:首先要明确一点,在DOS环境(实地址模式)下,I/O是没有保护的,只有在保护模式下才有I/O的保护功能。I/O保护有两种机构:I/O特权级IOPL(I/O Privilege Level)和I/O允许位映像(I/O Permission Bit Map)。EFLAG标志寄存器中IOPL字段定义使用I/O相关指令的权限;任务状态段TSS(Task State Segment)的I/O允许位映像用来修正IOPL对I/O敏感指令的影响,允许较低特权级的程序或任务访问某些I/O端口。在保护方式下,当处理器遇到一条I/O指令(IN, INS, OUT和OUTS)时,它首先检查CPLIOPL是否成立,其中CPL是当前任务的特权级。若成立,则可以处理I/O操作;若不成立,则处理器检查I/O允许映像。在虚拟8086方式下,处理器只查看这个映像而不考虑IOPL。I/O允许位映像是一个位向量,每一位都表示一个端口地址,每个字节都可以表示8个端口。若任何一个被测试的位置位,则处理器发出一般保护异常信号;若所有被测试位都是0,则I/O操作可以继续进行。7. 设计一个外设端口译码器,使CPU能寻址四个地址范围:02800287H,0288028FH,02900297H,0298029FH。答:本题可以用一个24译码器,考虑到大家对74LS138比较熟悉,所以我们用74LS138这个38译码器来做这到题。分析,从四段地址的低位来看,显然地址的低3位作为地址低位,不参与到译码电路中,而四段地址范围为1010000XXX1010001XXX1010010XXX1010011XXX,显然我们可以将A4A3作为74LS138的B、A输入,这样得到的电路是:8. 已知PC机系统中某接口板的板地址译码电路如图2.8所示。现希望该板的地址范围为02400247H,请确定DIP开关各位的状态(打开或闭合)。图2.8 习题8答:应该关闭的开关有Q0、Q1、Q2、Q4、Q59. 以查询输出方式编程,从内存中首地址为BUFFER的缓冲区向CRT终端输出128个字节,CRT终端数据口地址为0008H,状态口地址为0020H,D7为状态位,0表示输出缓存空闲。MOVSI, OFFSET BUFFERMOVCX, 128WAIT:INAL, 20HTEST AL, 80HJNZWAIT; 输出缓冲不空MOVAL, SIOUT08H, ALDECCXJNZWAIT第6章3. 如果8254-2某计数器的计数初值为400H,信号频率为10MHz,求时间片(微秒)。答:所谓时间片是指输出脉冲的周期,由题可知,fOUTfCLK计数初值10M/1K10K。时间片(周期)1/fOUT97.656微秒。4. 用8254作为某数据采集系统的定时器,每隔10ms用中断方式采集一次数据,已知输入时钟频率为10kHz,8259端口地址为2021H,中断类型号为13H,8254端口地址为4043H,请为8259和8254编制初始化程序。分析: 8254的中断请求的中断类型号为13H,则显然在8259的ICW2的值为10H(中断类型号的高5位),而中断引脚显然用的是IR3。8254的输入时钟频率为10kHz,需要输出10ms周期(频率100)的方波,作为中断请求信号,可以考虑用方式3,初始值为10K/100=100。答:;对8259初始化:MOVAL, 00010011B ; 边沿触发,单片使用,要ICW4OUT20H, AL; ICW1JMPSHORT $+2MOVAL, 10H;中断类型号高位OUT21H, AL; ICW2JMPSHORT $+2MOVAL, 00000001B; 非总线缓冲方式,全嵌套,正常的中断结束OUT21H, AL; ICW4JMPSHORT $+2;对8254的初始化MOVAL, 00010110B; 计数器0方式3,低8位二进制计数OUT43H, ALJMPSHORT $+2MOVAL, 100;计数初始值OUT40H, ALJMPSHORT $+27. 某系统中8254芯片的通道0通道2和控制字端口号分别为FFF0HFFF3H,定义通道0工作在方式2,CLK0=5MHz,要求输出OUT0=1kHz方波;定义通道l工作在方式4,用OUT0作计数脉冲,计数值为1000,计数器计到0向CPU发中断请求,CPU响应这一中断后继续写入计数值1000,重新开始计数,保持每1秒钟向CPU发出一次中断请求。请画出硬件连接图,并编写初始化程序。8254初始化程序如下:MOVAL, 00110100BMOVDX, FFF3HOUTDX, ALMOVAL, 01111000BOUTDX, ALMOVAX, 5000MOVDX, FFF0HOUTDX, ALMOVAL, AHOUTDX, ALINCDXMOVAX, 1000OUTDX, ALMOVAL, AHOUTDX, AL电路图如下:9. 试编写一程序,使PC/AT系统板上的发声电路发出200Hz至900Hz频率连续变化的报警声。分析: PC/AT机是使用8254的计数器2输入工作时钟频率1.1931816MHz,工作在方式3,产生一定频率的方波来驱动喇叭发声的(当然,8255PB口D1位要置1,这个我们假设都是打开的),题目要求的发声频率从200Hz到900Hz,按照书上185上的公式:初始值输入时钟频率/输出频率,初始值范围为59661326,可以编程,初始值给5966,然后每隔一定延迟(如20ms)将初始值减1,直到1326为止。答:MOVAL, 10110110BOUT43H, ALMOVAX, 5966P1:PUSHAXOUT42H, ALMOVAL, AHOUT42H, ALCALL WAIT20ms ; 延迟20秒POPAXDECAXCMPAX, 1325JNZP110. 在8086系统中,用8254构成一个定时、计数与脉冲发生器系统。利用通道0完成对外部事件计数功能,计满100次向CPU发中断请求;利用通道1产生频率为1kHz的方波;利用通道2产生1秒标准时钟。8254的计数频率为2.5MHz,8254的端口地址为41H47H,试完成硬件连接和初始化编程。分析: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)。74LS1388254再来看8254的译码问题,题目中端口地址为41H47H,显然通道0、1、2和控制字的地址分别为41H、43H、45H和47H,也就是说A0这根地址线始终为1,根据这些分析,我们得到如下电路。初始化8254程序:MOVAL, 00010110BOUT47H, ALMOVAL, 01010110BMOV47H, ALMOVAL, 10110110BMOV47H, ALMOVAL, 100OUT41H, ALMOVAL, 250OUT43H, ALMOVAX, 1000OUT45H, ALMOVAL, AHOUT45H, AL第7章6. 试使用8255实现对74LS138的检测。分析:本题是要用8255芯片来检测一个74LS138芯片的输入输出是否满足真值表。可以采用8255的PA口的PA0PA1PA2作为74LS138的ABC三个输入,将74LS138的Y0Y78个输出接到8255的PB口,PB口作为输入口来获取这些信息,C口作为按位输出口输出到74LS138的控制信号(使能信号)。然后按下图的真值表来进行验证。答:假设8255A的端口地址为60H63H。检测程序如下:MOVAL,10000010B; A口为输出,B口为输入,OUT63H,AL; C口上下半全输出,全为方式0MOVAL, 0OUT60H, ALMOVAL, 00000000B; 将PC0(G1)清0,不使能138OUT62H,ALINAL, 61HCMPAL, FFHJZTEST1JMPERRORTEST1:MOVAL, 00000011B; 将PC1 (G2A)置1,不使能138OUT62H,ALINAL, 61HCMPAL, FFHJZTEST2JMPERRORTEST2:MOVAL, 00000101B; 将PC2 (G2B)置1,不使能138OUT62H, ALINAL, 61HCMPAL, FFHJZTEST3JMPERRORTEST3:MOVAL, 00000001B;使能138OUT62H,ALMOVCX, 7; 从CBA为111检测到CBA为000,MOVBX,FF7FH; 所以第一个输出0的是Y7。也就是PB7应该为0TEST4:MOVAL,CLOUT60H, ALJMP$+2INAL, 61HCMPAL, BLJZTEST5; 如果相等则这一个CBA组合通过验证,继续检验JMPERROR; 否则转出错TEST5:CMPCX,0JZSUCCESS; 如已检查到CBA输入组合为000,检验成功结束。SARBX,1; 检测138输出的0右移一位。DECCX;将138的CBA组合减1JMPTEST4ERROR:SUCCESS:7. 一8255芯片的A口和B口分别与8个LED灯和8个开关连接好,通过开关控制LED等的开和闭。8255的端口地址为40, 42, 44和46H。画出译码电路图,编写初始化程序和控制程序。答:;初始化程序如下:MOVAL, 10000010BOUT46H, AL;控制程序如下:(开关闭合LED亮,否则LED灭INAL, 42HNOTAL;按位取反OUT40H, AL电路连接图如下:82558. 试把例7.5改成中断方式,并加软件去抖动。给出硬件连接图和有关程序段。答:键盘扫描程序放到中断处理程序中即可。程序略9. 试用两个8255A设计一个并行接口电路,把两个CPU为80486的ISA总线系统(主从)连接在一起,实现主机和从机的单向通信。假设用中断驱动式实现传送同步,试画出硬件连接图,并编写主机和从机的工作程序。答:请大家参见总复习的例5进行相应的修改。10. 有个1ms的脉冲信号源送8253的计数器1利用软件方式扩大定时1秒,每秒钟从8255的PA口读入一组开关数并送PB口的LED管显示,设8253,8255的端口地址分别为40H43H和60H63H,且只用10条地址线(A0A9)用于端口译码。请完成: 硬件连接。 编写对8253计数器1初始化程序段(仅50ms) 编写对8255的初始化程序以及1秒到后从PA口读入一个字节开关数并送PB口显示的程序段。分析:题目中要求用软件方式将1ms(1MHz)的脉冲用软件方法扩大定时到1秒,题目第二问又明确8253的计数器1输出脉冲周期是50ms(20Hz),显然,向系统提出的中断频率是每秒20次,在中断处理程序中,用软件的方法使用变量计数到20次后读PA口开关状态,并同时向PB口输出。答:82551) 电路图如下:注意在上图中的译码电路将A0A910根线全部使用,使得各个芯片的地址范围被严格限制。2)8253的初始化程序:MOVAL, 01110110B; 计数器1方式3,二进制OUT43H, ALMOVAX, 50000OUT41H, ALMOVAL, AHOUT41H, AL3)8255初始化MOVAL, 10011000B;A口方式0输入,B口方式0输出OUT63H, AL中断处理程序如下:TIMESDB0SERVICEPROCPUSHAMOVAL, TIMESINCALMOVTIMES, ALCMPAL, 20JNZEXIT; 没有计数到20次,说明1秒没到,退出中断处理程序INAL, 60HNOTALOUT61H, ALEXIT:POPAIRETSERVICEENDP11. 用8086, 8255, 8259和8254构造系统实现对指示灯控制。8255的PA0, PA1, PA2接三位DIP开关,通过DIP开关的闭合状态决定接在PB口上的八个指示灯之一闪烁。如PA2, PA1, PA0为000时,PB0上所接指示灯闪烁,其余灯熄灭。要求闪烁频率为每秒10次。设8259地址为20H和21H,8255地址为60H63H,8254地址为40H43H,时钟频率为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*4H0CH,所以0000:000C0000:000F的4个字节的内容分别是:78H、56H、34H、12H(注意,PC机中存储采用低字节放在低地址,高字节放在高地址,见教材P14),本题我们采用DOS功能调用。答:1) 电路图如下(由于译码部分和前几题一样,故译码部分省略,8086部分也省略),其中PB工作在方式1。初始化程序如下:8253的初始化程序:MOVAL, 01110100B; 计数器1方式2,二进制OUT43H, ALMOVAX, 2500OUT41H, ALMOVAL, AHOUT41H, AL;8255初始化MOVAL, 10011100B;A口方式0输入,B口方式1输出OUT63H, ALMOVAL, 00000101B; 将PC2置位,使能PB口方式1的中断;8259初始化MOVAL, 00010011B ; 边沿触发,单片使用,要ICW4OUT20H, AL; ICW1JMPSHORT $+2MOVAL, 70H;中断类型号高位OUT21H, AL; ICW2JMPSHORT $+2MOVAL, 00000001B; 非总线缓冲方式,全嵌套,正常的中断结束OUT21H, AL; ICW4JMPSHORT $+2;填写中断向量表MOVAX, CODE; 写入新的70H中断向量MOVDS,AXMOVDX,OFFSET INT70MOVAX,2570HINT21HMOVAX, CODE; 写入新的71H中断向量MOVDS,AXMOVDX,OFFSET INT71MOVAX,2571HINT21H; 中断处理程序(控制程序)FLAGDB0;0表示不显示,1表示显示LEDDB0;记录PB口的输出TBDB1H,2H,4H,8H,10H,20H,40H,80H;这是一张PA输入;对照PB输出状态的一个对照表INT70PROC; 70H中断主要是完成闪烁PUSHA; 保护现场MOVAL,FLAGCMPAL, 0JZDISP;如AL为0,则直接将全0输出到PB口,灯熄灭MOVAL, LED;否则将LED中的输出记录从PB口输出,使灯亮DISP:OUT61H, AL;PB口输出XORAL, FFH ;FLAG状态取反MOVFLAG, ALPOPA; 恢复现场IRETINT70ENDPINT71PROC; 71H中断主要是读取A口状态并设置LED变量的值PUSHA; 保护现场INAL,60H; 读8255A口MOVAH, 0MOVSI, AX;设置访问TB表的索引MOVAL, TBSI;取出和开关状态对应的PB口输出值MOVLED, AL;存到LED变量中。POPA; 恢复现场IRETINT71ENDP注意,本习题答案中,多处用到PROTEL绘制电路图,这里对于数据总线的绘制比较详细,大家在实际答题的时候可以一般简化,比如将8根线合成一根线来话,然后标明是8根线就行。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!