立即注册 登录
返回首页

uid:59980的个人空间

日志

跑马灯程序02取表法

已有 898 次阅读2014-3-25 00:24 |个人分类:发光LED类| 跑马灯, 程序2

ORG 00H

START:

      MOV      DPTR, #TABLE                  ;  将表TABLE的地址存入DPTR
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  装表;;;;;;;;;;;;;;;;;;;;;;;

LOOP:
      CLR      A                             ;  清除ACC累加器,清零
      MOVC     A,  @A+DPTR                   ;  基址加变址寻址,取出表数据
      CJNE     A,  #01H,LOOP_1               ;  如果取出01H表明取完,否则跳到LOOP_1
      JMP      START                         ;  跳回START
      ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  取表判断;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

LOOP_1:
       MOV      P0,  A                       ;  将A输出到P0口,低电平
       MOV      R3,#20                       ;  延时0.2秒
       CALL     DELAY                        ;  调用延时子程序
       INC      DPTR                         ;  数据指针加1,取数据表下一个数据
       JMP      LOOP                         ;  间接跳转到LOOP
       ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  显示;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DELAY:                                        ;   延时子程序
       MOV      R4,  #20
D1:    
       MOV      R5,  #248
       DJNZ     R5,  $
       DJNZ     R4,  D1
       DJNZ     R3,  DELAY
       RET                                     ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  以下是该程序数据表;;;;;;;;;;;;;;;;;;;;

TABLE:
        DB      0FEH,  0FDH,  0FBH,  0F7H              ;  左移
        DB      0EFH,  0DFH,  0BFH,  07FH             
        DB      07FH,  0BFH,  0DFH,  0EFH              ;  右移
        DB      0F7H,  0FBH,  0FDH,  0FEH
        DB      01H                                    ;  结束码
        END   

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
         程序利用MOV  DPTR, #TABLE使数据指针寄存器DPTR指到表的开头;利用MOV  A,@A+DPTR指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC到数据表内取出相应数据,并从I/O口送出显示。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部