单片机原理及应用部分习题答案

  • 格式:doc
  • 大小:650.00 KB
  • 文档页数:38

《单片机原理及应用》习题参考答案主编:田亚娟编写组:单片机原理及应用精品课程组单位:广东松山职业技术学院电气工程系日期:2008年12月第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)(0100 0111)BCD(2)(0110 1000)BCD (3)(0001 1001 1000 0110. 0111)BCD (4)(0001 1001 0110 1001)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。

其各位定义如下:D7 D6 D5 D4 D3 D2 D1 D0CY(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口作为专用端口使用。

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. E5 30 MOV A,30H (A)←(30H)74 42 MOV A,#42H (A)←85 38 74 MOV 74H,38H (74H)←(38H)78 50 MOV R0,#50H (R0)←50H26 ADD A,@R0 (A)←(A)+((R0))D2 12 SETB 12H (12H)←01H3-7. MOV A,30H ;直接寻址方式,将内部RAM的30H单元的内容传送;给累加器AMOV A,#30H ;立即寻址方式,将立即数30H传送给累加器AMOV 31H,R0 ;寄存器寻址方式,将寄存器R0的内容传送到31H单元MOV 31H,@R0 ;寄存器间接寻址,将寄存器R0所指的地址单元的内容;传送到31H3-8.(1)R0的内容送R1。

MOV A, R0MOV R1,A(2)外部RAM 40H单元的内容送内部RAM 40H单元。

MOV R0,#40HMOVX A,@R0MOV 40H,A(3)外部RAM 7E00H单元内容送内部RAM R0。

MOV DPTR,#7E00HMOV A,@DPTRMOV R0,A(4)外部ROM 7E00H单元内容送内部RAM 20H单元。

MOV DPTR,#7E00HMOV A,#00HMOVC A,@A+DPTRMOV 20H,A(5)外部ROM 7E00H单元内容送外部RAM 20H单元。

MOV DPTR,#7E00HMOV A,#00HMOVC A,@A+DPTRMOV R0,#20HMOVX @R0,A(6)外部RAM 2000H单元内容送外部RAM 1000H单元。

MOV DPTR,#2000HMOVX A,@DPTRMOV DPTR,#1000HMOVX @DPTR,A3-9. (R0)=42H,(42H)=08H,(A)=80H,(50H)=80H 3-10. MOV A,#192ADD A,#88HMOV 30H,AMOV A,#00HADDC A,#00HMOV 31H,A3-11. A=57H Cy=1;A=3BH Cy=03-12.(20H)=00H (A)=00H Cy=1;取消DA后:(20H)=9AH (A)=9AH Cy=03-13. rel=0F75H-0F46H=2FH3-14.与操作结果为:00H或操作结果为:FFH异或操作结果:FFH3-15. C=1 P1=BBH P3=3CH第4章MCS-51单片机的程序设计 0000HCLR CMOV A,50HMOV B,#10MUL ABMOV 53H,BADD A,51HMOV 52H,AMOV A,53HADDC A,#0MOV 53H,AEND4-2. ORG 0000HMOV R7,#30MOV R6,#0MOV R5,#0MOV R4,#51HMOV R3,#71HMOV R0,#20H MAIN:MOV A,@R0JB ACC.7,MAIN1INC R6MOV R1,R4MOV @R1,AAJMP LOOPMAIN1:INC R5MOV R1,R3MOV @R1,A LOOP:DJNZ R7,MAINMOV 50H,R6MOV 70H,R5END 0000HCLR CMOV R7,#4MOV R6,#3MOV R0,#DATA+4MOV R1,#DATAMOV A,@R0JNB ACC.7,END0 LP: MOV A,@R1CPLAMOV @R1,AINC R1DJNZ R7,LPMOV A,@R0SETB ACC.7MOV @R0,AMOV R1,#DATAMOV A,@R1ADD A,#1MOV @R1,ALP1:INC R1MOV A,@R1ADDC A,#0MOV @R1,ADJNZ R6,LP1 END0:SJMP $END4-4. ORG 0000H MAIN:MOV DPTR,#4000H MOV R7,#50CLR ALOOP:MOVX @DPTR,AINC DPTRDJNZ R7,LOOPEND4-5. ORG 0000HCLR CMOV R0,#DATA0MOV A,@R0JZ MAIN0JNB ACC.7,MAIN1SUBB A,#5SJMP MAIN0MAIN1:ADD A,#5MAIN0: MOV DATA2,A END4-6. ORG 0000H MAIN:MOV R0,#55HMOV A,60HCLR CSUBB A,#30HJC MAIN1MOV A,60HSUBB A,#3AHJNC MAIN1MOV R0,#00HMAIN1:MOV 62H,R0END4-7. ORG 0000HSTADA DATA 20HSLANG DATA 1FH CMCRQ:MOV R0,#STADAMOV B,#00HCRLP1:MOVX A,@40CJNE A,#0DH,CRNEXTMOV SLANG,BSJMP $CRNEXT:INC BINC R0SJMP CRLP1END4-8. ORG 0000HMAIN:MOV R0,#20H LOOP:CJNE @40,#20H,NKG INC R0SJMP LOOPNKG: MOV 95H,R0END4-9. ORG 0000HDATA EQU 30H MAIN:MOV A,DATAADD A,DATAMOV R2,AADD A,#06HMOVC A,@A+PCXCH A,R2ADD A,#03HMOVC A,@A+PCMOV R3,ARETTAB: DW 01,01,02,06,24,120,720,5040 END 0000HMAIN:MOV R0,#40HMOV A,@R0ANL A,#0FHMOV B,AINC R0MOV A,@R0ANL A,#0FHSWAP AORL A,BINC R0MOV @R0,AEND4-11. ORG 1000HDATA1 EQU 40HDATA2 EQU 2000HMAIN:MOV R1,#14HMOV R0,#DATA1MOV DPTR,#DATA2 NEXT:MOV A,@DPTRXCH A,@R0MOVX@ DPTR,AINC R0INC DPTRDJNZ R1,NEXTSJMP $END 1000HDATA1 EQU 40H DATA2 EQU 2000H MAIN:MOV R1,#32HMOV R0,#DATA1MOV DPTR,#DATA2 NEXT:MOV A,@R0MOVXA,@DPTRINC R0INCDPTRDJNZ R1,NEXTSJMP $END4-13.平方表的一个数据占2个字节ORG 0000HMAIN:ADD A,APUSS ACCMOVCA,@A+DPTRMOV R7,APOP AINCA,MOVCA,@A+DPTRMOV R6,ASJMP $TAB:DB 00,00,00,01,00,04,00,09,00,16H,······DB ······ 04H,00 END4-14~4-15略。