原创 查表程序设计

2007-8-26 10:09 3866 9 9 分类: MCU/ 嵌入式

查表在程序中应用十分广泛,以设计一流水灯为例


介绍设计方法


一。在ROM(程序存储器)将数据建表


TAB1:  DB 0FEH,0FDH,0FBH,0F7H            ; 设定数据


              DB 0EFH,0DFH,0BFH,07FH             
              DB 0FEH,0FDH,0FDH,0FDH            
              DB 0EFH,0DFH,0BFH,07FH            
              DB 01H   


                                       
  二。取表中数据           
  


                     MOV DPTR, #TAB1            ; 指向设定数据表位址
                     CLR A                                     ; 使偏移量为0
                     MOVC A,@A+DPTR          ; 取出设定数据


三。应用范例


                  ORG 00H
START:   MOV DPTR, #TAB1           ; 指向设定数据表位址
LOOP:     CLR A                                    ; 使偏移量为0
               MOVC A,@A+DPTR             ; 取出设定数据
               CJNE A,#01,LOOP1              ; 01为结束字符
               JMP START                            ; 结束返回
LOOP1: MOV P0,A                              ; 没结束则取出数据送到P0


               MOV R3,#250                         ; 改变R3(1-255),改变延时间的长短
               CALL T_100M                        ; 转延时子程序
               INC DPTR                                ; 取下一位数据
               JMP LOOP                             ; 循环



            ; ****延时子程序****
T_100M:


              MOV R4,#200
          D1: MOV R5,#249
              DJNZ R5,$
              DJNZ R4,D1
              DJNZ R3,T_100M
              RET


 


TAB1:  DB 0FEH,0FDH,0FBH,0F7H            ; 设定数据


              DB 0EFH,0DFH,0BFH,07FH             
              DB 0FEH,0FDH,0FDH,0FDH            
              DB 0EFH,0DFH,0BFH,07FH            
              DB 01H 

end


     

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条