《微机原理及接口技术》典型习题参考答案.doc

上传人:scccc 文档编号:14380988 上传时间:2022-02-04 格式:DOC 页数:14 大小:312.50KB
返回 下载 相关 举报
《微机原理及接口技术》典型习题参考答案.doc_第1页
第1页 / 共14页
《微机原理及接口技术》典型习题参考答案.doc_第2页
第2页 / 共14页
《微机原理及接口技术》典型习题参考答案.doc_第3页
第3页 / 共14页
《微机原理及接口技术》典型习题参考答案.doc_第4页
第4页 / 共14页
《微机原理及接口技术》典型习题参考答案.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《微机原理及接口技术》典型习题参考答案.doc》由会员分享,可在线阅读,更多相关《《微机原理及接口技术》典型习题参考答案.doc(14页珍藏版)》请在三一文库上搜索。

1、微机原理及接口技术典型习题参考答案第2章2.14, 2.27, 2.40, 2.46, 2.49,2.52第5章5.10, 5.14, 5.17, 第6章 6.2, 6.10, 6.12, 6.14第7章 7.9, 7.11第10章 10.4, 10.5 第2章2.9(1) 读操作占一次总线周期(4个时钟+1个时钟的等待周期)共5个时钟周期每个时钟周期=1/4MHz=0.25us,所以共需要0.25us*5=1.25us(2) 复位至少需要4个时钟周期,4*0.25us=1us复位后内部除CS=FFFFH外,其它寄存器清0。第一条指令的地址 FFFF0H2.10 T1:地址锁存T2:地址撤销,

2、准备数据 T3:数据稳定到总线上T4:读写总线上的数据2.14(1) 数据段首地址DS*16=01500H,堆栈段首地址=SS*16=02500H,所以数据段中存放信 息不能与堆栈段重合,故数据段末地址=0250H-1=024FFH 即数据段范围:01500H024FFH,4K字节(2)堆栈段末地址=SS*16+SP=02500H+1200H=03700H大小为1200H字节=4608字节,可存放16位的字4608/2=2304个(3)代码段由于下限没有其它限制,故最大64KB首地址=06400H,末地址=06400H+64KB-1=06400H+FFFFH=163FFH所以代码段地址范围:0

3、6400H163FFH(4)11F4H。现在SP=0300H,则原来SP+12=0300H+0CH=030CH2.40处理器主要参数80888086802868038680486PentiumPentium ProPentium IIPentium IIIPentium 4通过寄存器位数16161632323232323232段寄存器位数16161616161616161616外部数据线条数8161632326464646464外部地址线条数20202432323236363636存储器空间1MB1MB16MB4GB4GB4GB64GB64GB64GB64GB寻址范围0FFFFFH0-FFFF

4、FH0-FFFFFFH0FFFFFFFFH0FFFFFFFFH0FFFFFFFFH0FFFFFFFFFH0FFFFFFFFFH0FFFFFFFFFH0FFFFFFFFFH有符号数表示范围-215215-1-215215-1-215215-1-231231-1-231231-1-231231-1-231231-1-231231-1-231231-1-231231-1注:数的表示范围仅与内部通用寄存器的位数(字长)有关,与外部数据线条数无关。2.46(1)G=0:段界以字节为单位地址范围:089C0000H089C003FH大小为3FH+1=40H=64,可容纳64/2=32个汉字(2)G=1:段

5、界以4K字节为单位LIMIT = Limit4K + 0FFFH= 0003FH4K +0FFFH = 40H4K - 1段大小 = LIMIT + 1 = 40H4K = 40000H段的末地址 = 089C0000H + 40000H 1 = 089FFFFFH注:书上P.64例题的结果为0048FFFFH。2.48(1)DS*16+EAX=20000H+00003000H=00023000H(2)DS*16+ESI=1A000H+00002000H=0001C000H(3)SS*16+ESP=C0000H+0000A000H=000CA000H(4)DS*16+EDI=12390H+00

6、00A000H=0001C390H2.49(1)访问权=11110010B=F2H,段基地址=03000000H,段界=末地址-首地址=1FFFH10000H, 所以G=1,D=1,AVL=1,段界=大小/4K=1800H=1800H段描述符=01D0F20000001800H2.51(1)DS=0000000000001011B选中(TI=0)GDT表GDTR=001000001FFFH,GDT首地址=00100000H,段描述符界=1FFFH,可容纳8KB,因此可放8KB/8=1K个描述符。(2)段描述符首地址=00100000H+1*8=00100008H,段描述符=0240F21000

7、0003FFH段首地址=02100000H,段界=03FFH,所以末地址=021003FFH段的地址范围:02100000H021003FFH(3)物理地址=段基地址+偏移地址=02100000H+00000002H=02100002H(4)EAX中的内容为02100002开始的4个字节,故EAX=32303031H(5)可从段描述符的应该说访问权字节及选择子分析:RPL=11,访问权=F2H=11110010B,该段是用户访问的存在物理存储器中的未被访问过的向上增长的可写数据段。2.52(1)CR0=60000010H,PG=0,PE=0为实地址方式,所以:物理地址=10030H+1230H

8、=11260H,EAX=75392A00H(2)CR0=60000011H,PG=0,PE=1分段的保护方式,所以:段描述符首地址=0+1000H=00001000H,段描述符=0040F20100001FFFH段基地址=00010000H,物理地址=00010000H+1230H=00011230HEAX=32303034H段大小=段界+1=1FFFH+1=2000H,可容纳8KB数据,访问权=F2=11110010H,该段是存在物理存储器中的未被访问过的向上增长的可写数据段。(3)CR0=E0000011H,PG=1,PE=1分段且分页的保护方式,但线性地址已经给出:线性地址=000000

9、04H,页目录索引=0页索引=0CR3=00001000H,页目录描述符首地址=00010000H,页描述符=00001FFFH所以页表基地址=00001000H,页描述符首地址=00010000H,页描述符=00001FFFH所以页基地址=00001000H,物理地址=00010000H+4H=00010004H第5章5.4 SRAM引脚考虑(1)数据线条数(2)地址线条数(3)读信号和写控制信号、片选信号条数(4)电源,地线8K*8表明,地址线条数= log28K= log2213=13条,数据线8条,读写信号线1条,片选项1条,电源和地2条,共计25条,但为了成对,因此至少26条引脚。5

10、.10 8K*8=213*8,ROM首地址=末地址-大小+1=5800H-8K+1=5800H-1FFFH=3801H16KB=214*8,末地址=RAM首地址+大小-1=5801H-3FFFH=9800H5.12 由图知,地址线m=16,数据线=8条,容量=2m*n=216*8=64KB(实际为27512)5.14 需要8K*8/(2K*4)=8片,2片一组进行位扩展,然后对4组进行字扩展,即采用字位全扩展方法。地址范围:(I):Y0=0:A13A12=00,A11A1从全0到全1变化,但A0=0,所以范围:0000H0FFEH(全为偶地址),共2KB(II):Y0=0:A13A12=00,

11、A11A1从全0到全1变化,但A0=1,所以范围:0001H0FFFH(全为奇地址),共2KB(III):Y1=0:A13A12=01,A11A1从全0到全1变化,但A0=0,所以范围:1000H1FFEH(全为偶地址),共2KB(IV):Y1=0:A13A12=01,A11A1从全0到全1变化,但A0=0,所以范围:1001H1FFFH(全为奇地址),共2KB5.17 题图改动:M/IO加一非门后再接G2B。(1)地址:1#(Y0=0)A19A18A17A16A15=1000 0,A14A0全0到全1变化所以以范围:80000H87FFFH2#(Y1=0)A19A18A17A16A15=10

12、00 1,A14A0全0到全1变化所以以范围:88000H8FFFFH3#(Y2=0)A19A18A17A16A15=1001 0,A14A0全0到全1变化所以以范围:90000H97FFFH4#(Y3=0)A19A18A17A16A15=1001 1,A14A0全0到全1变化所以以范围:98000H9FFFFH5#(Y4=0)A19A18A17A16A15=1001 1,A14A0全0到全1变化所以以范围:98000H9FFFFH6#(Y5=0)A19A18A17A16A15=1010 1,A14A0全0到全1变化所以以范围:A8000HAFFFFH7#(Y6=0)A19A18A17A16A

13、15=1011 0,A14A0全0到全1变化所以以范围:B0000HB7FFFH(2)MOV AX,9800H;4#首地址98000H,取段地址9800H偏移地址0MOV DS,AXMOV SI,0MOV CX,1024*2;2KBMOV AX,0B000H;7#首地址0B0000H,取段地址B000H,偏移地址0MOV ES,AXMOV DI,0CLD;DF=0REP MOVSB;串操作或MOV AX,9800H;4#首地址98000H,取段地址9800H偏移地址0MOV DS,AXMOV SI,0MOV CX,1024*2;2KBMOV AX,0B000H;7#首地址0B0000H,取段地

14、址B000H,偏移地址0MOV ES,AXMOV DI,0LP1:MOV AL,SIMOV DI,ALINC SIINC DILOOP LP1第6章6.2(a)A9A8A7A6A5A4A3A2A1A0=000111 1111=7FH(b)A9A8A7A6A5A4A3A2A1A0=100101 0XXX所以地址:250H257H6.6 MOV AL,80H;设置波特率MOV DX,373H;A1A0=11的地址(线路控制寄存器)OUT DX,ALMOV AL,30;1843200/(38400*16)除数MOV DX,370HOUT DX,AL;写除数低字节MOV AL,0INC DXOUT D

15、X,AL;写除数高字节MOV AL,00010010BMOV DX,3F3HOUT DX,AL6.7 MOV AL,80HMOV DX,3FBHOUT DX,ALMOV AL,10H;波特率7200的除数值=10HMOV DX,3F8HOUT DX,ALINC DXMOV AL,0OUT DX,ALMOV AL, 00000011BMOV DX,3FBHOUT DX,ALSEND:MOV DI,OFFSET TRANSMOV CX,WORD PTR TLENGTH+4MOV SI,OFFSET TRANS-2MOV BYTE PTRDI-2,55HMOV BYTE PTRDI-1,0AAHMO

16、V AX,DIADD AX,WORDPTR TLENGTHMOV DI,AXMOV BYTE PTRDI+1,0AAHMOV BYTE PTRDI+2,55HSWAIT:MOV DX,3FBHIN AL,DX;取线路状态TEST AL,00100000B;THRE发送保持寄存器空=1JZ SWAIT;不空等待MOV AL,SI;取数据MOV DX,3F8HOUT DX,AL;发送INC SILOOP SWAITMOV DI,OFFSET RECIVMOV CX,WORD PTR RLENGTHMOV BL,0;计接收数据个数RECEIVE:MOV DX,3FBHIN AL,DX;取线路状态参数

17、,判断接收有数据否TEST AL,80H ;超时退出JNZ EXITPTEST AL,01H ;接收数据继续JZ RECEIVE ;串口无数据等待MOV DX,3F8HIN AL,DXINC BL;接收一个数据,计数器加1LOOP RWAITEXITP:MOV AL,CLCMP AL,BLJNZ ERR_DEL MOV ERROR,0FFHJMP RET1ERR_DEL:MOV ERROR,0RET1:NOP.EXIT6.9 (1) MOV AL,10011010BOUT 63,AL(2) MOV AL,11000100BOUT 63,AL(3) MOV AL,10100100BOUT 63,

18、AL6.10(1) MOV AL,10011000BMOV DX,0FEFFH;控制口OUT DX,AL(2) MOV DX,0FEFEH;C口WAITL:IN AL,DX;ReadyMOV DX,0FEFCH;A口IN AL,DXTEST AL,00100000B;PC5JZ WAITL;未准备好等待MOV DX,0FEFCH;A口IN AL,DX;读输入设备数据MOV ES:DI,AL;写入指定内存单元(3)MOV DX,0FEFEH;C口WAITP:IN AL,DXTEST AL,01000000B;PC6(BUSY)JNZ WAITPMOV AL,DSSIMOV DX,0FEFDH;B

19、口OUT DX,AL; 数据输出(4)START:MOV DX,0FEFEHIN AL,DXTEST AL,80H;判断PC7JNZ BEEPMOV DX,0FEFFHMOV AL,0;PC0=0置复位命令字OUT DX,AL;取消报警JMP STARTBEEP:MOV DX,0FEFFHMOV AL,1;PC0=1OUT DX,AL;报警MOV SI,OFFSET STRINGSMOV CX,18;18个字符WAITB:MOV DX,0FEFFHIN AL,DXTEST AL,01000000B;BUSY=1?JNZ WAITBMOV AL,SIMOV DX,OFEFDH;B口OUT DX,

20、ALINC SILOOP WAITBSTRINGS DB Grasp the burglar! 6.11 MOV AL,1000100BOUT 0F3H,AL;方式选择控制字MOV SI,OFFSET PDATAMOV CX,PNUMMOV AL,00000010B;PC1=0置复位命令字OUT DX,ALREPEAT:MOV AL,SI;取数据MOV BL,AL;暂存BLAND AL,0F0H;取高4位PUSH CXMOV CL,4SHR AL,CLADD AL,30H;转换成ASCII码POP CXCALL SUBPMOV AL,BL;取回原来的数据AND AL,0FH;取低4位ADD A

21、L,30H;转换成ASCII码CALL SUBPINC SI;指向下一个单元LOOP REPEAT.EXIT;打印一个字符的子程序SUBPPROC NEARMOV DX,0F1H;B口地址OUT DX, AL;待打印字符(ASCII码)送B口(打印机端口)INC DXWAITP:IN AL,DX;判BUSY=PC5TEST AL,00100000B;BUSY=PC5JNZ WAITPMOV DX,0F3HMOV AL,00000011BOUT DX,AL;PC1=1命令(/STB=1)NOPDEC ALOUT DX,AL;PC1=0命令(/STB=0)RETSUBPENDP6.12 .MODE

22、L SMALL.CODE.STARTUPMOV AL,00110110B;CTC0命令字:方波信号发生器方式MOV DX,9F0FH;8254控制口地址OUT DX,ALMOV DX,9F0CH;CTC0通道地址MOV AX,2000;计数常数=2MHz*1000us=2000OUT DX,AL;实际收入低8位初值MOV AL,AH;取高8位OUT DX,AL;写高8位初值MOV AL01010100B;CTC1命令字:速率发生器方式MOV DX,9F0FH;8254控制口地址OUT DX,ALMOV DX,9F0DH;CTC1通道地址MOV AL,2;计数常数=2(最快)OUT DX,AL;

23、写初值MOV AL10110010B;CTC2命令字:负脉冲信号发生器方式MOV DX,9F0FH;8254控制口地址OUT DX,ALMOV DX,9F0EH;CTC2通道地址MOV AL,0;计数常数=0000(最大值)OUT DX,AL;写初值OUT DX,AL.EXITEND6.14(1) 由地址:280H283H知:(地址不重叠,即全译码,I/O端口16条地址线全部要参与译码)A15A14A13A12A11A10A9A8A7A6A5A4A3A2=0000 0010 1000 00xx B电路如下:(2) OUT0产生2ms定时中断信号(方波)MOV AL,00110110B;ctc0

24、控制字MOV DX,0283HOUT DX,ALMOV AX,20000;初值=5MHz*(2ms*2)=5000*4=20000;注意:2ms仅为负脉冲宽度,因此一个周期=4msMOV DX,280H;CTC0通道OUT DX,AL;写低字节初值MOV AL,AHOUT DX,AL;写高字节初值(3) 将OUT0连接到CLK1,CTC1初值=1S/4ms=1000/4=250MOV AL,01010110B;ctc1控制字MOV DX,0283HOUT DX,ALMOV AX,250;初值=1S/4ms=250MOV DX,281H;CTC1通道OUT DX,AL;写初值第7章7.9(1)

25、;主片初始化MOV AL,00010001B;ICW1OUT 20H,ALMOV AL,08H;中断类型号(ICW2)OUT 21H,ALMOV AL,00000100B;ICW3OUT 20H,ALMOV AL,00010001B;ICW4OUT 21H,AL;从片初始化MOV AL,00010001B;ICW1OUT 0A0H,ALMOV AL,70H;中断类型号(ICW2)OUT 0A1H,ALMOV AL,00000010B;ICW3OUT 0A0H,ALMOV AL,00000001B;ICW4OUT 0A1H,AL(2)MOV AL,01101000B;主片OCW1OUT 21H,

26、ALMOV AL,00100000B;从片OCW1OUT 0A1H,AL(3)MOV SI,1000MOV DI,2000MOV AL,0AHOUT 20H,AL;读主片IRR命令IN AL,20H;读IRR进AL中;MOV BL,AL;主片IRR暂存BLMOV DS:SI,AL;主片IRR存入内存INC SIMOV AL,0BHOUT 20H,AL;读主片ISR命令IN AL,20H;读主片ISR进AL中MOV DS:SI,AL;主片ISR存入内存INC SIIN AL,21H;读主片IMRMOV DS:SI,AL;主片IMR存入内存MOV AL,0AHOUT 0A0H,AL;读从片IRR命

27、令IN AL,0A0H;读从IRR进AL中;MOV BL,AL;从片IRR暂存BHMOV ES:DI,AL;从片IRR存入内存INC DIMOV AL,0BHOUT 0A0H,AL;读从片ISR命令IN AL,0A0H;读从片ISR进AL中MOV ES:DI,AL;从片ISR存入内存INC DIIN AL,0A1H;读从片IMRMOV ES:DI,AL;从片IMR存入内存;结束MOV AL,BL;取主片IRRMOV CX,8MOV DL,0;计1的个数LP10:SHR AL,1ADDC DL,0LOOP LP10CMP DL,2;=2?JAE LP11JMP LRETLP11:MOV AL,B

28、H;取从片IRRMOV CX,8MOV DL,0;计1的个数LP20:SHR AL,1ADDC DL,0LOOP LP20CMP DL,1;=2?JZEIOPJMP LRETEIOP:MOV AL,20H;EOI命令OUT 20H,AL;OCW3OUT 0A0H,ALMOV AL,BLNOT AL;对主片IRR取反OUT 21H,AL;屏蔽主片未申请的中断MOV AL,BHNOT AL;对从片IRR取反OUT 0A1H,AL;屏蔽从片未申请的中断LRET:NOP.EXIT(4) INSTR:PUSH AXPUSH DXMOV DX,3C0HIN AX,DXMOV WORD PTR DATABU

29、F,AXCMP AX,2005HJA STOPCMP AX,0JZ WRITEAASTOP:MOV AL,55HMOV DX,3C1HOUT DX,ALJMP RET0WRITEAA:MOV BYTE PTR DATABUF+5,0AAHRET0:MOV AL,20H;EOI命令OUT 20H,ALOUT 0A0H,ALPOP DXPOP AXIRET(5)INSTALL:CLIMOV DX,OFFSET INSTRMOV AX,2577H;中断类型号77H(对应从片的IR7)INT 21HIN AL,0A1H;读IMRAND AL,01111111B;打开从片IR7中断OUT 0A1H,AL

30、STIMOV DX,OFFSET INSTALLINT 27H7.10(1)电路改动(a)系统地址线A1接8259的A0,其它地址不变(b)U3的1脚原来接A1的改接A0GAL编程:U4不变GAL16V8;U3Address Coding for InterruptVER 2005By MaWHA0A2A3A4A5A6A7A8A9GNDA10I1I2I3I4NCNCCS2CS1VCC/CS1=/A0*/A2*/A3*/A4*A5*/A6*/A7*/A8*/A9*/A10*I1/CS2=/A0*/A2*/A3*/A4*A5*/A6*A7*/A8*/A9*/A10*I1DESCRIPTION(2)

31、MOV AL,50HMOV DX,302H;主片A0=1的地址OUT DX,ALMOV AL,98HMOV DX,306H;从片A0=1的地址OUT DX,AL(3) 循环优先方式MOV AL,10000000BMOV DX,300H;主片A0=0的地址OUT DX,ALMOV DX,304H;从片A0=0的地址OUT DX,AL(4) 特殊循环优先MOV AL,11000101B;IR5最先优先MOV DX,300H;主片A0=0的地址OUT DX,ALMOV DX,304H;从片A0=0的地址OUT DX,AL7.11 CR0=60000001H知PG=0,PE=1保护方式中断描述符首地址

32、=IDT表首地址+中断类型号*8=65000000H+11H*8=65000088H所以中断描述符=0042EE0081132012H其中描述的偏移地址=00422012H, 段选择子=8113H因此段描述符首地址=GDT首地址+索引*8=00100000H+8110H=00108110H段描述符=0144F20070001FFFH,其描述符的段基地址=01007000H,因此中断服务程序入口地址=段基地址+偏移地址=01007000H+00422012H=01429012H第10章10.4.1V对应的数字量:由15/256*D得,D1V256/5=51.2=51=33H同理4V对应的数字量D

33、4V=256/5*4=204.8=205=CDHDLV EQU 51DHV EQU 205MOV DX,3A9HMOV AL,DLVREPLP1:OUT DX,ALCMP AL,DHVJB INCDVREPLP2DEC ALOUT DX,ALCMP AL,DLVJA REPLP2INCDV: INC ALJMP REPLP110.5入口:8255口地址320H323H出口:转换后的12位数字量在BX中ADCSPROCNEARMOVDX,323H;8255控制寄存器端口MOVAL,10010011B;8255A,B方式0输入.PC上半口输出,下半口输入MOVDX,AL;8255控制字写入控制寄存

34、器MOVAL,00001010BOUTDX,AL;PC5=0,使为低电平MOVAL,00001100BOUTDX,AL;PC6=0,使为低电平MOVAL,00001111BOUTDX,AL;PC7=1,使CE为高电平,启动A/D转换MOVAL,00001011BOUTDX,AL;PC5=1,使为高电平DECDX;指向端口CTWAIT:INAL,DXTESTAL,01;PC0=STSJNZTWAIT;STS=1等待INCDX;指向控制口MOVAL,00001100;OUTDX,AL;使=0MOVAL, 00001111;使CE=1允许读OUTDX,ALMOVDX,321H;指向B口INAL,DX;取高4位数据(PB3PB0)ANDAL,0FH ;屏蔽无效位MOVBH,AL;A/D转换值高4位暂存BH中DECDX;指向A口INAL,DXMOVBL,AL;读低8位数据暂存BL中MOVDX,323H;指向控制口MOVAL,00001110B;使CE=0无效OUTDX,ALMOVAL,00001101B;使=1无效OUTDX,AL;结束读取操作RETADCSENDP14

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1