《微机原理与接口技术期终试卷(B).docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术期终试卷(B).docx(12页珍藏版)》请在优知文库上搜索。
1、20092010学年第2学期物电学院学院期末考试卷微机原理与接口技术(B)MOVAX00(SUBAXAX(MOVAXBX(ADDAX,TABLEMOVAL,ARAYlSIMOVAX,BX+6得分评卷教师二、试编程将MOLT中的一个8位二进制数乘以20,乘积存放在ANS单元及其下一个单元中(不用乘法指令实现)。15分得分评卷教师定的内存地址范围,见图1。(8分)统中存74LS138Y1所决得分评卷教师四、假设要求8059的地址为EOlOH和EOllH,试画出其与8088总线的连接图。假设系统中只用一片8259,允许8个中断源边缘触发,不需要缓冲,一般全嵌套方式工作,中断向量规定为40H,试编写初
2、始化程序。20分得分评卷教师五、8253与总线的电路连接如下图,其外设接口地址DODOH-DODFH,假设加到8253上的时钟信号为2MHz。(30分)假设利用计数器31,2分别产生周期为100s的对称方波以及每IS和IoS产生一个负脉冲,试编写包括初始化在内的程序。假设希望利用8088程口控制GATE,从CPU使GATE有20s后在计数器0的OUT端产脉冲,试设计完成此要求的硬件六、如下图,在某系统中,采用序通过接效开始,生一个正和软件。8255不得分评卷教师断检测8个开关K7KO的通断状态,并随时在8个发光开关的端c程序。二极管LED7LEDO上显示出来。要求开关闭合时,相应的LED亮;断
3、开时,相应的LED灭。8255口地址为60H63H。设计相应的(15分)ocwlA0D7D6DsD4D3D2D1D08255控制字如下:图3 8255A工作方式控制宇格式XXX无关CII的位磔择D3D2D1选择OOOPCo001PC010PC2OlIPC3100PC.隹/身位0好位Ik位参考答案一、立即寻址指令、存放器寻址、存放器间接寻址、直接寻址、存放器相对寻址、存放器相对寻址*、利用连续加法实现。START:MOVAL,MOLTMOVBL,20MOVAH,0MOVDX,0GOON:ADDDX,AXDECBLJNZGOONMOVANS,DXHLT利用移位指令实现。START:MOVAL,MO
4、LTMOVAH,0MOVCL,2SHLAX,CL;4MOVBX,AXMOVCL,2SHLAX,CL;4ADDAX,BXMOVANS,AXHLT三、解:根据图1所示的译码电路,我们分析此译码器的特征如下:Al9Al8Al7Al6Al5Al4Al3Al2YOY4Y6Y7地址范围1X000000译码输入10000000080000H1000000118IFFFH110000000COOOOH110000011ClFFFH10001000088000H10001001189FFFH110010000C8000H110010011C9FFFH1000110008C000H1000110118DFFFH1
5、10011000CCOOOH110011011CDFFFH1000111008E000H1000111118FFFFH110011100CEOOOH110011111CFFFFH四、答:首先考虑将8259按要求连到总线上。地址译码器分析如下:I;A:、A*Hjk:AaA.I1100000000即当&4具备上述状态时,应能选中8259,其所应为低电平。满足此要求的连接图如图5.11所示。在上述连接图的根底上,编写该8259的初始化程序如下:INT59:MOVDX,OEOlOHMOVAL,00010011B;ICWlOUTDX,ALMOVDX,OEOllHMOVAL,40H;ICW2OUTDX,A
6、LMOVAL,OOOOOOlIB;ICW4OUTDX,AL五、从题目要求可以看到,外部计数时钟频率为2MHz。用此时钟,利用一个计数器,使它工作在方式3,那么从OUT输出端不难获得周期为100US的对称方波.其计数值取200就可以了。但是用2MHz的计数时钟,用一个计数器直接获得周期为IS和IOS的负脉冲是不可能的。这是因为一个计数器只有16位,其计数值最大也只有六万多。而要产生IS和IOS的周期,那么要求计数值达几百万甚至千万。因此,用一个计数器无法做到。但是,可以用2个或3个计数器串到一起来完成。例如,如图6.11所示,将计数器0设计成工作在方式3。计数值定为200。那么计数器0的OUTo
7、输出周期为100S的对称方波。假设将OUTo的输出接到计数器1的外部时钟输入端,让这周期为100s的对称方波作为它的时钟皿,那么让计数器1工作在方式2,计数值设定为100O0,那么每1S可以从计数器1的OUTl上输出一个负脉冲。要产生周期为10S的负脉冲,又不能用OUTo的周期为100S的对称脉冲了.因为计数值太大,无法实现。但是,可以用OUTl输出的IS为周期的脉冲作为计数器2的时钟输入,对其进行10次计数那么可到达目的.计数器的连接见图6.11。初始化程序如下:INT153:MOVDX,0D0D3HMOVAL,00110110BOUTDX,AL;计数器。方式字MOVAL,200MOVDX,
8、ODODOHOUTDX,ALMOVAL,0OUTDX,AL;计数器0计数值MOVDX,0D0D3HMOVAL,01110100BOUTDX,AL;计数器1方式字MOVDX,ODODlHMOVAX,10000OUTDX,ALMOVAL,AHOUTDX,AL;计数器1计数值MOVDX,0D0D3HMOVAL,10110100B;计数器2方式字OUTDX,ALMOVDX,0D0D2HMOVAL,10OUTDX,ALMOVAL,0OuTDx,AL;计数器2计数值HLT假设希望利用8088程序通过接口控制“4,从CPU使“人有效开始,20US后在计数器0的端产生一个正脉冲,试设计满足此要求的硬件和软件。
9、在这里首先要设计一个接口.其输出的状态用来控制而后,利用8253的工作方式5,在。血上能够输出一负脉冲,再利用反相器就可以获得正脉冲硬件设计好后,开始初始化8253。然后,通过接口输出一个UJ4正脉冲,04J4的上升沿启动计数开始.只要计数值选定为40,那么20US后便可以得到一个正脉冲。硬件连接图如下图下面根据图6.12编写有关程序计数器0的初始化程序如下.IN153:MOVDX,0D0D3HMOVAL,00111010BOUTDX,AL;写计数器0方式字MOVAX,40MOVDX,ODODOHOUTDX,AL:写计数器0计数值MOVAL,AHOUTDX,ALMOVDX,0D0D4HMOVA
10、L,00HOUTDX,AL;使锁存器Qo=0,即GATE=O为了实现题目的要求,由GATA启动,20US之后可产生一负脉冲。可用下面的指令来启动START:MOVDX,0D0D4HMOVAL,OlHOUTDX,AL;使GATE=IMOVAL,OOHOUTDX,AL;使GATE=O初始化时,使GATA=0,现在先使其为L再使它为0。必然产生一正脉冲,该脉冲的上升沿启动8253的计数器0开始计数。由于它工作在方式5,当计数结束时会产生一个负脉冲经反相门可获得一个正脉冲六、解:由电路原理可知,A口为方式0输入,B口为方式0输出,那么8255A的方式选择控制字为IOoIooo0B,即90H。且开关闭合,那么A口输入低电平;当B口输出低电平时,相应的LED点亮。程序段如下:MOVDX,63HMOVAL,90H;设置方式选择控制字OUTDX,ALTES:MOVDX,60H;读人口(开关状态)INAL,DXMOVDX,61H;送B口显示OUT61H,ALJMPTES;循环检测