×
单片机 > 单片机程序设计 > 详情

实验三 查表、多分支(80C51单片机汇编语言编程)

发布时间:2020-09-02 发布时间:
|
设一表格,表中数为:00H、11H、22H……FFH,将片内00H单元中的低4位放到片外0000H中(0000H中的高4位为0),高4位放到片外0001H中(0001H中的高4位为0),根据0000H中的数取出表中相应的值存到片内30H中;根据0001H中的数跳到相应的处理程序中,在处理程序中,把相应的位地址置1。
ORG 0000H
START:MOV DPTR,#0000H;
      MOV A,#00H
      MOVX @DPTR,A
      INC DPTR
      MOVX @DPTR,A
      MOV DPTR,#00H;将片内00H中的值拆分放入片外相应位置
      MOV R1,#00H
      MOV A,@R1
      ANL A,#0FH
      MOVX @DPTR,A
 
      MOV A,@R1
      ANL A,#0F0H
      RR A
      RR A
      RR A
      RR A
      INC DPTR
      MOVX @DPTR,A
 
      MOV DPTR,#0000H;相应值赋给30H
      MOVX A,@DPTR
      MOV DPTR,#TABLE;指向表格的首地址
      MOVC A,@A+DPTR
      MOV 30H,A
 
      MOV DPTR,#0001H;散转
      MOV 20H,#00H;置位前先将20H清零
      MOVX A,@DPTR
      MOV R1,A;LJMP;A变为3倍
      RL A
      ADD A,R1
      MOV DPTR,#TAB
      JMP @A+DPTR
 
 TAB: LJMP PM0
      LJMP PM1
      LJMP PM2
      LJMP PM3
      LJMP PM4
      LJMP PM5
      LJMP PM6
      LJMP PM7
      LJMP PM8
      LJMP PM9
      LJMP PMA
      LJMP PMB
      LJMP PMC
      LJMP PMD
      LJMP PME
      LJMP PMF
      PM0:SETB 00H
          JMP AA
      PM1:SETB 01H
          JMP AA
      PM2:SETB 02H
          JMP AA
      PM3:SETB 03H
          JMP AA
      PM4:SETB 04H
          JMP AA
      PM5:SETB 05H
          JMP AA
      PM6:SETB 06H
          JMP AA
      PM7:SETB 07H
          JMP AA
      PM8:SETB 08H
          JMP AA
      PM9:SETB 09H
          JMP AA
      PMA:SETB 0AH
          JMP AA
      PMB:SETB 0BH
          JMP AA
      PMC:SETB 0CH
          JMP AA
      PMD:SETB 0DH
          JMP AA
      PME:SETB 0EH
          JMP AA
      PMF:SETB 0FH
          JMP AA
      TABLE:DB 00H,11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH
   AA:SJMP $
      END
关键字:查表  多分支  80C51  单片机  汇编语言

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32单片机的复用端口初始化的步骤及方法