[转载]单片机习题和试题库之六  读程序(附参考答案)

1.写出下列指令执行的结果

(1).

MOV A,#20H

MOV R0,#20H

MOV @R0,A

ANL   A,   #0FH

ORL   A,   #80H

XRL   A,   @R0

A=__________ ;     R0=             ;        (20H)=__________

(2).

MOV       DPTR, #2314H

MOV       R0, DPH

MOV       14H, #22H

MOV       R1, DPL

MOV       23H, #56H

MOV       A, @R0

XCH               A, DPH

执行以上指令后A=____________ DPTR=__________

(3).

MOV       A,#50H

MOV       B,#77H

PUSH       ACC

PUSH       B

POP         ACC

POP         B

执行完本段指令后(A)=_________ (B)=_______

2.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?

MOVA, 59H

MOVR0, A

MOVA, #00H

MOV@R0, A

MOVA, #25H

MOV51H, A

MOV52H, #70H

3.已知(A)=83H,(R0)=17H,(17H)=34H。请写出执行完下列程序段后A的内容。

ANLA,#17H

ORL17H, A

XRLA, @R0

CPLA

4. 试分析下列程序段,当程序执行后,位地址00H,01H中的内容为何值?P1口的8条I/0线为何状态?

CLRC

MOVA,#66H

JCLOOP1

CPLC

SETB01H

LOOP1:ORLC,ACC.0

JBACC.2,LOOP2

CLR00H

LOOP2:MOVP1,A

5.若A=11H,R0=33H,B=55H,(11H)=22H,(22H)=66H,(33H)=44H,在注释区写出分别执行下列指令后果的结果。

 (1)MOV    R1,A          ;

 (2)MOV    R3,#11H       ;

 (3)MOV    @R0,#22H      ;

 (4)MOV    A, @R0        ;

 (5)MOV    B,33H         ;

 (6)MOV    40H,R0        ;

6.若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,Cy=1,求分别执行下列指令后Y和Cy中的数据。

 (1)ADDC   A,@R0         ;

 (2)SUBB    A,56H        ;

 (3)DEC     @R0           ;

 (4)INC      56H          ;

7.若A=B7H,R0=5EH,(23H)=A1H,Cy=0,将分别执行下列指令的结果写在注释区。

(1)ANL     A,R0           ;

(2)ORL     A,#23H         ;

(3)XRL     23H,A          ;

(4)RLC     A                ;

8.分别用一条指令实现下列功能。

(1)若进位位不为0,则转PROM1程序段执行。

(2)使PC=2000H。

(3)若A中的数据不等于100,则程序转至PROM3。

(4)若A中数据等于0,则程序转至PROM4。

(5)将R5中数据减1,若R5中数据不等于0,则程序转至PROM5。

(6)子程序返回。

9.已知外RAM(2040H)=50H,ROM(2090H)=96H,内RAM(20H)=85H,试求下列程序依次运行后有关单元中的内容。

MOV     DPTP,#2040H          ;

MOVX   A,@DPTR               ;

MOVC   A,@A+DPTR             ;

ADD     A,20H                ;

DA      A                     ;

SWAP    A                     ;

10.试求下列程序依次运行后有关单元中的内容。

MOV    20H,#A7H           ;

MOV    C,07H               ;

ORL     C,/H               ;

CPL     00H                 ;

SETB    03H                 ;

MOV    A,20H               ;

RLC     A                   ;

MOV    20H,A               ;

11.已知:(60H)=23H,(61H)=61H,以下程序段执行后(62H)=      

CLR        C

MOV      A,#9AH

SUBB      A,60H

ADD       A,61H

DA         A

MOV      62H,A

12.已知:(A)=02H,(SP)=40H,(41H)=FFH,(42H)=FFH,以下程序段执行后(A)=      .(SP)=       .(41H)=       .(42H)=        .

(PC)=         

POP        DPH

POP        DPL

MOV      DPTR,#3000H

RR          A

MOV      B,A

MOVC    A,@A+DPTR

PUSH      ACC

MOV      A,B

INC        A

MOVC    A,@A+DPTR

PUSH      ACC

RET

ORG       3000H

DB          10H,80H,30H,50H,30H, 50H

13.以下程序段执行后(A)=         ,(30H)=         

MOV      30H,#0A4H

MOV      A,#0D0H

MOV      R0,#30H

MOV      R2,#5EH

ANL       A,R2

ORL       A,@R0

SWAP     A

CPL        A

XRL       A,#0FEH

ORL       30H,A

14.已知(59H)=50H,以下程序段执行后(A)=        ,(50H)=         

(51H)=         ,(R0)=       

MOV   A,59H

MOV   R0,A

MOV   A,#00

MOV   @R0,A

MOV   A,#25H

MOV   51H,A

MOV   52H,#70H

15.完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。

  (1)将R0的内容传送到R1;

  (2)内部RAM单元60H的内容传送到寄存器R2;

  (3)外部RAM单元1000H的内容传送到内部RAM单元60H;

  (4)外部RAM单元1000H的内容传送到寄存器R2;

  (5)外部RAM单元1000H的内容传送到外部RAM单元2000H。

16.若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段后上述各单元内容的变化。

   MOV  A,@R1

   MOV  @R1,40H

   MOV  40H,A

   MOV   R1,#7FH

17.若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY.AC.和OV的值。

  (1)MOV  A,@R0

  (2)ANL  40H,#0FH

  (3)ADD  A,R4

  (4)SWAP  A

  (5)DEC  @R1

  (6)XCHD   A,@R1

18.若(50H)=40H,试写出执行以下程序段后累加器A.寄存器R0及内部RAM的40H.41H.42H单元中的内容各为多少?

    MOV  A,50H

    MOV  R0,A

    MOV  A,#00H

    MOV  @R0,A

    MOV  A,3BH

    MOV  41H,A

    MOV  42H,41H

MOV  A,#10H          (A)=           

MOV  B,A             (B)=            

MOV  A,B              (A)=            

ADD   A,B             (A)=             

MOV  20H,A            (20H)=            

INC   A                 (A)=            

MOV  21H,A            (21H)=            

INC   A                 (A)=           

MOV  22H,A             (22H)=            

19.MOV    DPTR,#2000H      (DPTR)=            

   MOV    A,#80H            (A)=           

   MOVX   @DPTR,A          (2000H)=           

   INC      DPTR              (DPTR)=           

   MOV     A,#90H            (A)=           

   MOVX   @DPTR,A           (2001H)=            

   MOV    DPTR,#2000H        (DPTR)=           

   MOVX   A,@DPTR           (A)=            

   MOV     B,A                (B)=          

   INC      DPTR               (DPTR)=         

   MOVX    A,@DPTR           (A)=            

20.改正下列指令

MOV   @R3,A                         

MOV   DPTR,A                        

INC    @R3                I            

DEC    DPTR                       

ADDC   #30H,A                     

21.若(10H)=0FFH,(11H)=00H,(12H)=0FFH,(13H)=00H,写出每一步指令运行结果

MOV   A,10H       (A)=                  

ANL    A,#01H      (A)=                

MOV   A,11H       (A)=               

ORL    A,#01H       (A)=                  

MOV   A,12H        (A)=                 

XRL    A,#01H       (A)=                  

MOV    A,13H       (A)=                  

XRL    A,#0AA       (A)=                  

(10H)=       , (11H)=         , (12H)=         , (13H)=         

22.MOV   30H,#60H

   MOV   R0,#60H

   MOV   A,30H

   MOV   B,A

   MOV   @R0,B

   (A)=                   ,(R0)=                   ,(B)=                   

23.MOV   SP,#60H

   MOV   A,#01H         (A)=                  

   MOV   B,#02H         (B)=                  

   PUSH   A           (SP)=                  

   PUSH   B           (SP)=                  

   POP     A

   POP     B           (60H)=                

24.改正下列指令

MOV   A,DPTR                

MOV   DPTR,10H             

MOV   DPTR,40H                

MOVX  40H,#30H           

ADD   20H,#10H    

25.设内部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,问执行下列指令后,各有关存储单元(即R0,R1,A,B,P1,30H,40H及5AH单元)的内容如何?(8分)

   MOV    R0,#30H              ;R0=30H

   MOV    A,@R0               ;A=5AH

   MOV    R1,A                 ;R1=5AH

   MOV    B,R1                 ;B=5AH

   MOV    @R1,P1              ;(5AH)=7FH

   MOV    A,P1                 ;A=7FH

   MOV    40H,#20H             ;(40H)=20H

   MOV    30H,40H              ;(30H)=20H

26.位地址为M.N.Y,程序如下:

 MOV C,M   ;(M) ➞C

  ANL   C,       ;(M)

    MOV  Y,C      ;(Y)=(M)

  MOV  C,M      ;(M) ➞C

         ANL   C,N      ;(M)

ORL   CY       ;

MOV  Y,C     

求程序功能表达式:

27.阅读下列程序并回答问题

CLR       C

MOV      A,#9AH

   SUBB      A,60H

   ADD       A,61H,

   DA         A

   MOV       62H,A

请问该程序执行何种操作?

28.已知初值:(60H)=23H,(61H)=61H,请问运行程序后:(62H)=(         )?

(1).程序如下

 2506H          M5:   MOV      SP,#58H;

  2509H        MOV      10H,0FH;

  250CH                MOV       11H,#0BH;

  250FH                ACALL      XHD;

  2511H                MOV        20H,11H

  2514H        M5A:   SJMP        M5A

                XHD:   PUSH       10H

                        PUSH       11H

                        POP         10H

                        POP         11H

                           RET

问:(1)执行POP10H后堆栈内容?

(2)执行M5A:SJMP M5A后,(SP)=? (20H)=? 

29.解读下列程序,然后填写有关寄存器内容

(1)           MOV     R1,#48H

                    MOV     48H,#51H

                    CJNE     @R1,#51H,00H

                    JNC      NEXT1

                    MOV     A,#0FFH

                    SJMP     NEXT2

         NEXT:     MOV     A,#0AAH

         NEXT2:    SJMP     NEXT2

         累加器    A=(   )

(2)                 MOV      A,#0FBH

                   MOV      PSW,#10H

                   ADD      A,#7FH

若PSW=00,当执行完上述程序段后,将PSW各位状态填入下表:

PSW

CY

AC

F0

RS1

RS0

OV

F1

 

30.(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(4BH)=20H

   MOV   A,@R0          ;7FH➞A

   MOV   @R0,40,40H      ;20H➞4BH

   MOV   40H,A           ;7FH➞40H

   MOV   R0,#35H

问执行和程序后,R0.A和4BH.40H单元内容的变化如何?

31.设(R0)=7EH,DPTR=10FEH,片内RAM 7FH和7FH两单元的内容分别是FFH和38H,请写出下列程序段的每条指令的执行结果。

        INC   @R0

        INC   R0

        INC   @R0

        INC   DPTR

        INC   DPTR

        INC   DPTR

32.设R0=20H,R1=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,

(26H)=6 FH,(27H)=76H,下列程序执行程序后,结果如何?

                    CLR       C

                    MOV      R2,#3

LOOP:  MOV      A,@R0

      ADDC     A,@R1

      MOV      @R0,A

      INC        R0

      INC        R1

      DJNZ       R2,LOOP

      JNC        NEXT1

      MOV       @R0,#01H

      SJMP       $

NEXT:  DEC        R0

        SJMP       $

(20H)=(     ).(21H)=     .(22H)=      .(23H)=       . CY=    

A=     .R0=      .R1=      

33.设片内RAM中(59H)=50H,执行下列程序段

        MOV   A,59H

        MOV   R0,A

        MOV   @R0,A

        MOV   A,#25H

        MOV   51H,A

        MOV   52H,#70H

A=       ,(50H)=      ,(51H)=      ,(52H)=        

34.   说明下列各条指令画线部分寻址方式,并用图说明指令实现的操作。

(1)  ADD  A,30H

(2)   MOVX  A,@DPTR

(3)   MOVC  A,@A+PC

(4)   ORL 60H#23H

(5)   MOV @R1,A

35.   若A=80H,R0=17H,(17H)=34H,执行下列程序后,A=?

ANL  A,#17H

ORL  17H,A

XRL  A,@R0

CPL  A

36.   说明下列程序执行过程中,SP的内容以及堆栈中内容的改变过程。

MOV  SP,#20H

MOV  A,#20H

MOV  B,#30H

PUSH  ACC

PUSH  B

POP  ACC

POP  B

37.   读程序,说明该程序完成的功能.

(1).      JMP:         MOV   DPTR, #TBJ

                  MOV    A, R2

                  ADD    A, R2

                  JNC     NADD

                  INC     DPH

NADD:   JMP    @A+DPTR

TBJ:     AJMP   PRG0

          AJMP   PRG1

         ……………….

         AJMP   PRGn

(2).     ADD:     MOV   R3, #0

                MOV   R4, #0

                MOV   R0, #50H

        LOOP:    MOV   A, R4

                ADD   A, @R0

                MOV   R4, A

                INC    R0

                CLR    A

                ADDC  A, R3

                MOV   R3, A

                DJNZ   R2, LOOP

                RET

36.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?

MOVA, 59H

MOVR0, A

MOVA, #00H

MOV@R0, A

MOVA, #25H

MOV51H, A

MOV52H, #70H

37.已知(A)=83H,(R0)=17H,(17H)=34H。请写出执行完下列程序段后A的内容。

ANLA,#17H

ORL17H, A

XRLA, @R0

CPLA

38.使用位操作指令实现下列逻辑操作,要求不得改变未涉及位的内容。

(1)使ACC.0置1;

(2)清除累加器高4位;

(3)清除ACC.3,ACC.4, ACC.5, ACC.6。

39.试分析下列程序段,当程序执行后,位地址00H,01H中的内容为何值?P1口的8条I/0线为何状态?

CLRC

MOVA,#66H

JCLOOP1

CPLC

SETB01H

LOOP1:ORLC,ACC.0

JBACC.2,LOOP2

CLR00H

LOOP2:MOVP1,

40.指出下列指令各是什么寻址方式?

MOV  A,  diret

MOV  A,  #data

MOV  A,  R0

MOV  A,  @R1

 

参考答案:

1.  (1) A=A0H  R0=20H  (20H)=20H
    (2) A=23H  DPTR=5614H
    (3) (A)=77H   (B)=50H

2. A=50H   R0=50H  A=00H  (50H)=00H  A=25H  (51H)=25H  (52H)=70H

3. A=C8H

4. (00H)=1  (01H)=1  P1: 01100111

5. (1) R1=11H
   (2) R3=11H
   (3) (33H)=22H
   (4) A=44H
   (5) B=44H
   (6) (40H)=33H

6. (1) Y=55H   Cy=1
   (2) Y=CCH   Cy=1
   (3) Y=DBH   Cy=1
   (4) Y=57H   Cy=1

7. (1) A=16H
   (2) A=B7H
   (3) (23H)=16H
   (4) A=6EH  Cy=1 

9.    DPTR=2040H
      A=50H
      A=96H
      A=1BH
      A=81H
      A=18H

10.   (20H)=A7H
      C=0
      C=1H
      20H的0位取反
      20H的3位置1
      A=AEH
      A=5DH
      (20H)=5DH

11. (62H)=38H

12. (A)=05H  (SP)=40H  (41H)=30H  (42H)=50H  (PC)=4241H

13. (A)=4EH  (30H)=7EH

14. (A)=25H  (50H)=00H  (51H)=25H  (52H)=70H

15. (1) MOV A,R0
        MOV R1,A
    (2) MOV R2,60H
    (3) MOV DPTR,#1000H
        MOV A,@DPTR
        MOV 60H,A
    (4) MOV DPTR,#1000H
        MOV A,@DPTR
        MOV R2,A
    (5) MOV DPTR,#1000H
        MOVX A,@DPTR
        MOV DPTR,#2000H
        MOVX @DPTR,A

16. (R1)=7FH  (A)=60H  (30H)=08H  (40H)=60H

17. (1) (A)=2CH
    (2) (40H)=0H
    (3) (A)=22H  Cy=1  Ac=1  OV=0
    (4) (A)=8EH
    (5) (20H)=0EH
    (6) (A)=EFH  (20H)=08H

18. (A)=3BH  (R0)=40H  (40H)=00H  (41H)=3BH  (42H)=3BH
   
    (A)=10H  (B)=10H  (A)=10H  (A)=20H  (20H)=20H  (A)=21H  (21H)=21H  (A)=22H  (22H)=22H

19.  (DPTR)=2000H  (A)=80H  (2000H)=80H  (DPTR)=2001H  (A)=90H  (2001H)=90H
     (DPTR)=2000H  (A)=80H  (B)=80H  (DPTR)=2001H (A)=90H

20.  MOV R0,A
     MOV @DPTR,A
     INC @R0
     DEC @DPTR
     ADDC A,#30H

21.  (A)=0FFH
     (A)=01H
     (A)=00H
     (A)=01H
     (A)=0FFH
     (A)=0FEH
     (A)=00H
     (A)=0AH
     (10H)=0FFH  (11H)=00H  (12H)=0FFH  (13H)=00H

22.  (A)=60H  (R0)=60H  (B)=60H

23.  (A)=01H  (B)=02H  (SP)=61H  (SP)=62H  (60H)=01H

24.  MOVX A,@DPTR
     MOVX @DPTR,10H
     MOVX @DPTR,40H
     MOV 40H,#30H
     ADD A,#10H

25.  R0=30H  R1=5AH  A=7FH  B=5AH  P1=7FH  (30H)=20H  (40H)=20H  (5AH)=7FH

26.  Y=MN+M

27.  十进制加法


30.  R0=35H  A=7FH  (4BH)=20H  (40H)=7FH

31.  (7EH)=00H  (R0)=7FH  (7FH)=39H  DPTR=10FFH  DPTR=1100H  DPTR=1101H


33.  A=25H  (50H)=50H  (51H)=25H  (52H)=70H

34.  (1)直接寻址
     (2)寄存器间接寻址
     (3)寄存器间接寻址
     (4)立即寻址
     (5)寄存器间接寻址

     
35. A=CBH
36.     A=30H  B=20H
37.     (1) 实现程序的多分枝转移
        (2) 累加


36.    A=25H  R0=50H  (50H)=00H  (51H)=25H  (52H)=70H
37.    A=CBH
38.    (1) SETB E0H
       (2) ANL A,#0FH
       (3) ANL A,#87H
39.    (00H)=1  (01H)=1  P1: 01100111

40.    直接寻址  立即寻址  寄存器寻址  寄存器间接寻址

(注:本答案仅供参考,不对指出请指正)

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于AT89C51单片机的智能窗帘控制系统设计,可以实现对窗帘的自动控制和手动控制。系统主要由AT89C51单片机、电机驱动模块、光敏电阻、温度传感器、红外遥控模块等组成。 系统可以通过光敏电阻感应室内光线强度,自动控制窗帘的开合。同时,也可以通过温度传感器感应室内温度,根据设定的温度范围自动控制窗帘的开合。 此外,系统还可以通过红外遥控模块实现手动控制窗帘的开合。用户可以通过遥控器控制窗帘的开合,实现更加便捷的操作。 总之,基于AT89C51单片机的智能窗帘控制系统设计,可以实现智能化、自动化和便捷化的窗帘控制,为用户带来更加舒适和便捷的生活体验。 ### 回答2: 智能窗帘控制系统是一种将物理窗帘自动化的应用系统,通过控制器对窗帘的开启、关闭、卷帘、停止等操作进行控制,从而实现智能化的使用。基于at89c51单片机的智能窗帘控制系统设计是一种基于物联网技术的系统,涉及到单片机电路设计、嵌入式程序设计、传感器选型、通信协议等多个方面的知识。 智能窗帘控制系统的核心是at89c51单片机。该单片机具有很的可编程性和通用性,可以方便地实现各种功能模块的组合。在系统中,单片机作为中央处理单元,负责接收传感器数据,处理信号,生成窗帘控制信号,对窗帘进行控制。 基于at89c51单片机的智能窗帘控制系统设计中,还需要选择合适的传感器。在智能窗帘系统中,常用的传感器包括红外线传感器、光敏电阻、温度传感器等。通过这些传感器可以实现窗帘的自动控制,比如光敏电阻可以检测光线强度,从而自动调节窗帘的开启程度。 系统中的通信协议也需要考虑。目前,在物联网应用中,常用的通信方式有WiFi、蓝牙、NFC等。通过这些通信协议,可以实现系统的远程遥控和数据传输。 同时,在智能窗帘控制系统设计中,程序设计也是非常重要的一环。根据具体需求,需要编写程序实现窗帘的自动控制。在程序设计中,需要考虑到超时保护、复机制、编程调试等多个方面的问题。 总之,基于at89c51单片机的智能窗帘控制系统设计是一个综合性较强的系统,需要考虑到多个方面的知识和技术,并进行细致严谨的设计和实现。 ### 回答3: 随着人们对于生活品质要求的提以及科技的发展,智能家居成为了社会可持续发展的重要组成部分。智能窗帘的普及应运而生,窗帘的开合以及卷起等更多个性化操作等都可以通过智能窗帘来完成。基于at89c51单片机的智能窗帘控制系统设计,可以实现对窗帘的自动开合,从而增加了生活的便利性并优化了居住空间的舒适度。 系统主要由三部分组成:传感器检测模块、单片机控制模块和动力模块。其中,传感器检测模块可以用光电传感器、人体红外传感器和温湿度传感器等检测环境的变化和人的动作;单片机控制模块包括微处理器、时钟芯片和驱动电路等部分,主要完成下发指令、控制窗帘的开合等功能;动力模块则包括马达、电路板和电源等,主要完成窗帘的开合以及可靠的驱动电路。 整个智能窗帘控制系统的实现主要分为以下几个步骤:首先,利用传感器检测环境参数,包括人的动作、温度、湿度和阳光强度等,接着使用单片机控制模块实现控制窗帘的开合指令的下发及执行,最后,把指令交给动力模块驱动电路实现控制,这样就可以完成智能化的窗帘控制。 此外,在系统的最后,我们还可以增加无线遥控装置来远程控制窗帘的开合。总的来说,基于at89c51单片机的智能窗帘控制系统的设计为我们的智能家居系统增添了更多的智能化和自动化的元素,从而让我们的生活更加便捷、舒适。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值