查表在程序中应用十分广泛,以设计一流水灯为例
介绍设计方法
一。在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
文章评论(0条评论)
登录后参与讨论