我这里有一个用HOLTEK单片机汇编写的,利用查表程序完成,你可以参考一下.
include HT48R10A-1.inc;
;-------------------------------------
data .section 'data' ;资料段
COUNT1 db ? ;延时变数1
count2 db ? ;延时变数2
count3 db ? ;延时变数3
flash db ? ;LED闪烁控制暂存器
rglight db ? ;LED控制暂存器
;---------------------------------------
code .section at 0 'code' ;程序段
org 0H ;程式初始入口地址
jmp start ;
start : ; 程序开始
mov a, 0h
mov pac, a ;设PA为输出口
mov pa,a ;PA清零
;*********************************
loop: ;LED灯循环
mov a, 0 ;
mov tblp, a ;表格指标初始化
tabrdl rglight ;读取最后一页表格内容放入LED控制寄存器
mov a,rglight ;
mov pa, a ;把LED寄存器的内容输出到PA
call delay1 ;调用延时子程序DELAY1
inc tblp ;递增表格内容
mov a, 6 ;
mov flash, a ;设LED闪烁控制寄存器的内容为6次
; ;;;;;;;;;;;;;
flashlamp: ;LED闪烁循环?
tabrdl rglight ;读取最后一页表格内容放入LED控制寄存?
mov a,rglight ;
mov pa,a ;将LED寄存器的内容输出到PA
call delays ;
inc tblp ;递增表格指标
sdz flash ;检LED闪烁是否结束
jmp flashlamp ;闪烁没有结束,跳至LED闪烁循环
tabrdl rglight ;读取最后一页表格内容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;将LED寄存器的内容输出到PA
call delaym ;呼叫延时子程序
inc tblp ;递增表格指标
;----------------
tabrdl rglight ;读取最后一页表格内容,放入LED控制寄存器
mov a, rglight
mov pa, a ;将LED寄存器的内容输出到PA
call delay1 ;呼叫延时子程序
inc tblp ;递增表格指标
mov a, 6 ;设LED闪烁次数
mov flash,a ;将闪烁次数放入LED闪烁控制寄存器
flash2: ;LED闪烁循环次数
tabrdl rglight ;读取最后一页表格内容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;将LED寄存器的内容输出到PA
call delays ;调用延时子程序
inc tblp ;递增表格指标
sdz flash ;检查LED闪烁是否结束
jmp flash2 ;闪烁没有结束,中央电视台跳至LED闪烁循环2
tabrdl rglight ;读取最后一页表格内容,放入LED控制寄存器
mov a,rglight ;?
mov pa,a ;将LED寄存器的内容输出到PA
call delaym ;呼叫延时子程序DELAYM
jmp loop ;?
;======================== ;?
delay1 proc ; 延时子程序DELAY1
mov a,0fh ;?
mov count1,a ;?
mov count2,a ;?
mov count3,a ;?
d1: ;?
sdz count2
jmp d1 ;?
sdz count2
jmp d1
sdz count1
jmp d1
ret
delay1 endp
;;;;;;;;;;;;;;;;;;;;;;;;;;
delaym proc ;延时子程序DELAYM
mov a, 07h
mov count1 ,a
mov a, 0ffh
mov count2, a
mov count3,a
d2: sdz count3
jmp d2
sdz count2
jmp d2
sdz count1
jmp d2
ret
delaym endp
;------------------------
delays proc ;延时子程序DELAYS
mov a, 0ffh
mov count1, a
mov count2, a
d3: sdz count2
jmp d3
sdz count1
jmp d3
delays endp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 300h ;led表格
dc 0ebh, 0fbh, 0ebh, 0fbh, 0ebh, 0fbh, 0ebh, 0dbh
dc 0beh, 0bfh, 0beh, 0bfh, 0beh, 0bfh, 0beh, 0bdh
; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
end
我有