您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《单片机原理及应用》部分习题答案
1《单片机原理及应用》习题参考答案主编:田亚娟编写组:单片机原理及应用精品课程组单位:广东松山职业技术学院电气工程系日期:2008年12月2第1章绪论1-1.(1)9AH,154;6.375,6.6H(2)1100.011B,0C.6H;0111111.111B,7F.EH(3)10110111B,183;1111101111.1000B;1007.51-2.(1)[+1101110]原=[+1101110]反=[+1101110]补=01101110(2)[-1111111]原=11111111[-1111111]反=10000000[-1111111]补=10000001(3)[+1010111]原=[+1010111]反=[+1010111]补=01010111(4)[-1000000]原=11000000[-1000000]反=10111111[-1000000]补=110000001-3.(1)(01000111)BCD(2)(01101000)BCD(3)(0001100110000110.0111)BCD(4)(0001100101101001)BCD1-4~1-7略。第2章MCS-51单片机的结构和原理2-1~2-2、2-4~2-5、2-7、2-9~2-13、略。2-3.答:程序状态标志寄存器PSW是一个8位可编程并可按位寻址的专用寄存器,用来存放当前指令执行结果的有关状态信息,位于特殊功能寄存器区,地址是0D0H。其各位定义如下:D7D6D5D4D3D2D1D0CYACF0RS1RS0OV—PCY(PSW.7):进位标志。累加器A的最高位有进位或借位时,硬件自动使该位置位(即CY=1),否则该位清零。AC(PSW.6):辅助进位标志。当进行加法或减法操作时,若累加器的D3位向D4位有进位或借位时,则硬件自动将其置位,否则该位清零。F0(PSW.5):用户通用状态标志。用户可对该位置位或清零,也可用软件测试该位的状态以控制程序的流向。RS1(PSW.4)和RS0(PSW.3):工作寄存器组选择控制位,用户通过指令对RS1和RS0的状态设置,可以选择相应的工作寄存器组。OV(PSW.2):溢出标志。当有符号数加法或减法运算结果超出(-128~+127)范围时,说明计算结果已经溢出,此时该位将由硬件自动置位(即OV=1),否则清零。PSW.1:保留位。也可作为用户自行定义的状态标志位,其用法与PSW.5相同。P(PSW.0):奇偶标志位。每个指令周期由硬件按累加器A中值为“1”的个数的奇偶性自动置位或清零。若A中有奇数个“1”,则P置位,否则清零。2-6.答:不能。因为在这种情况下,系统要进行扩展ROM。P0口和P2口作为专用3端口使用。P0口分时作为低8位地址的输出口和数据输入输出口。P2口作为高8位地址输出口。2-8.答:00H~7FH为8051的片内RAM的空间。①00H~1FH是通用寄存器区,共32个单元分成0,1,2,3四个区,每个区的8个单元都用R0~R7来表示。②20H~2FH共16个单元是位寻址区,每个单元的每一位都有它自己的位地址。③30H~7FH是堆栈和数据缓冲区。可用来对运算结果等中间数据暂时保存和有关的数据堆栈。我们把内部RAM中字节地址00H~7FH与位地址00~7F完全重合的现象,称为地址重叠现象,MCS-51指令系统提供了不同的访问指令和寻址方式来解决这种地址重叠现象。CPU在对位寻址单元进行位操作时,设置有专用的位操作指令。第3章MCS-51单片机的指令系统3-1~3-5略3-6.E530MOVA,30H(A)←(30H)7442MOVA,#42H(A)←853874MOV74H,38H(74H)←(38H)7850MOVR0,#50H(R0)←50H26ADDA,@R0(A)←(A)+((R0))D212SETB12H(12H)←01H3-7.MOVA,30H;直接寻址方式,将内部RAM的30H单元的内容传送;给累加器AMOVA,#30H;立即寻址方式,将立即数30H传送给累加器AMOV31H,R0;寄存器寻址方式,将寄存器R0的内容传送到31H单元MOV31H,@R0;寄存器间接寻址,将寄存器R0所指的地址单元的内容;传送到31H3-8.(1)R0的内容送R1。MOVA,R0MOVR1,A(2)外部RAM40H单元的内容送内部RAM40H单元。MOVR0,#40HMOVXA,@R0MOV40H,A(3)外部RAM7E00H单元内容送内部RAMR0。MOVDPTR,#7E00HMOVA,@DPTRMOVR0,A(4)外部ROM7E00H单元内容送内部RAM20H单元。4MOVDPTR,#7E00HMOVA,#00HMOVCA,@A+DPTRMOV20H,A(5)外部ROM7E00H单元内容送外部RAM20H单元。MOVDPTR,#7E00HMOVA,#00HMOVCA,@A+DPTRMOVR0,#20HMOVX@R0,A(6)外部RAM2000H单元内容送外部RAM1000H单元。MOVDPTR,#2000HMOVXA,@DPTRMOVDPTR,#1000HMOVX@DPTR,A3-9.(R0)=42H,(42H)=08H,(A)=80H,(50H)=80H3-10.MOVA,#192ADDA,#88HMOV30H,AMOVA,#00HADDCA,#00HMOV31H,A3-11.A=57HCy=1;A=3BHCy=03-12.(20H)=00H(A)=00HCy=1;取消DA后:(20H)=9AH(A)=9AHCy=03-13.rel=0F75H-0F46H=2FH3-14.与操作结果为:00H或操作结果为:FFH异或操作结果:FFH3-15.C=1P1=BBHP3=3CH第4章MCS-51单片机的程序设计4-1.ORG0000HCLRCMOVA,50HMOVB,#105MULABMOV53H,BADDA,51HMOV52H,AMOVA,53HADDCA,#0MOV53H,AEND4-2.ORG0000HMOVR7,#30MOVR6,#0MOVR5,#0MOVR4,#51HMOVR3,#71HMOVR0,#20HMAIN:MOVA,@R0JBACC.7,MAIN1INCR6MOVR1,R4MOV@R1,AAJMPLOOPMAIN1:INCR5MOVR1,R3MOV@R1,ALOOP:DJNZR7,MAINMOV50H,R6MOV70H,R5END4-3.ORG0000HCLRCMOVR7,#4MOVR6,#3MOVR0,#DATA+4MOVR1,#DATAMOVA,@R0JNBACC.7,END06LP:MOVA,@R1CPLAMOV@R1,AINCR1DJNZR7,LPMOVA,@R0SETBACC.7MOV@R0,AMOVR1,#DATAMOVA,@R1ADDA,#1MOV@R1,ALP1:INCR1MOVA,@R1ADDCA,#0MOV@R1,ADJNZR6,LP1END0:SJMP$END4-4.ORG0000HMAIN:MOVDPTR,#4000HMOVR7,#50CLRALOOP:MOVX@DPTR,AINCDPTRDJNZR7,LOOPEND4-5.ORG0000HCLRCMOVR0,#DATA0MOVA,@R0JZMAIN0JNBACC.7,MAIN1SUBBA,#5SJMPMAIN0MAIN1:ADDA,#57MAIN0:MOVDATA2,AEND4-6.ORG0000HMAIN:MOVR0,#55HMOVA,60HCLRCSUBBA,#30HJCMAIN1MOVA,60HSUBBA,#3AHJNCMAIN1MOVR0,#00HMAIN1:MOV62H,R0END4-7.ORG0000HSTADADATA20HSLANGDATA1FHCMCRQ:MOVR0,#STADAMOVB,#00HCRLP1:MOVXA,@40CJNEA,#0DH,CRNEXTMOVSLANG,BSJMP$CRNEXT:INCBINCR0SJMPCRLP1END4-8.ORG0000HMAIN:MOVR0,#20HLOOP:CJNE@40,#20H,NKGINCR0SJMPLOOPNKG:MOV95H,R0END4-9.ORG0000HDATAEQU30H8MAIN:MOVA,DATAADDA,DATAMOVR2,AADDA,#06HMOVCA,@A+PCXCHA,R2ADDA,#03HMOVCA,@A+PCMOVR3,ARETTAB:DW01,01,02,06,24,120,720,5040END4-10.ORG0000HMAIN:MOVR0,#40HMOVA,@R0ANLA,#0FHMOVB,AINCR0MOVA,@R0ANLA,#0FHSWAPAORLA,BINCR0MOV@R0,AEND4-11.ORG1000HDATA1EQU40HDATA2EQU2000HMAIN:MOVR1,#14HMOVR0,#DATA1MOVDPTR,#DATA2NEXT:MOVA,@DPTRXCHA,@R0MOVX@DPTR,AINCR0INCDPTR9DJNZR1,NEXTSJMP$END4-12.ORG1000HDATA1EQU40HDATA2EQU2000HMAIN:MOVR1,#32HMOVR0,#DATA1MOVDPTR,#DATA2NEXT:MOVA,@R0MOVXA,@DPTRINCR0INCDPTRDJNZR1,NEXTSJMP$END4-13.平方表的一个数据占2个字节ORG0000HMAIN:ADDA,APUSSACCMOVCA,@A+DPTRMOVR7,APOPAINCA,MOVCA,@A+DPTRMOVR6,ASJMP$TAB:DB00,00,00,01,00,04,00,09,00,16H,······DB······04H,00END4-14~4-15略。第5章中断系统及定时/计数器题5-1~5-8答案略5-9.出租车计价器计程方法是车轮每运转一圈产生一个负脉冲,从外部中断(P3.2)引脚输入,行驶里程为轮胎周长×运转圈数,设轮胎周长为2m,试实时计算出租车行10驶里程(单位米),数据存32H、31H、30H。编程如下:ORG0000HLJMPSTATORG0003HLJMPINTORG0100HSTAT:MOVSP,#60HSETBIT0MOVIP,#01HMOVIE,#81HMOV30H,#0MOV31H,#0MOV32H,#0LJMPMAIN;转主程序,MAIN主程序可以处理循环显示等任务。ORG0200H;中断服务子程序首地址INT:PUSHAccPUSHPSWMOVA,30HADDA,#2MOV30H,ACLRAADDCA,31HMOV31H,ACLRAADDCA,32HMOV32H,APUSHPSWPUSHAccRETI5-10.电路图如右图所示。程序如下:ORG0000HLJMPMAINORG0003HLJMPEXTER80512.3P0.1P7.1P+5VD0D7LED显示单元11ORG1000HMAIN:SETBIT0SETBEX0SETBEALOOP:AJMPLOOPORG1050H;中断程序入口EXTER:MOVR2,#0FFHMOVA,#01HFLASH:RRAMOVR7,#0FFH;定时LOOP1:MOVR6,#0FFHLOOP2:NOPNOPDJNZR6,LOOP2DJNZR7,LOOP1MOVP1,ADJNZR2,FLASHRETIEND5-11.思路:根据要求,四个故障相当四个中断源,可利用中断查询方法,将四个中断源归结为一个中断请求,同时四个故障信号引到P1口的四个输入端,然后在中断程序中查询P1口,确定是哪一个故障申请的中断。电路如下图所示。一旦发生故障,单片机必须响应中断,因此,该中断必须设置成最高级中断。在中断程序中可以显示故障信息。扩展4个外中断源电路如下图所示。主程序和中断服务程序如下:ORG0000AJMPZCX
本文标题:《单片机原理及应用》部分习题答案
链接地址:https://www.777doc.com/doc-4707033 .html