📄 lamp.asm
字号:
;///////////////////////////////////////////
;本程序源代码由单片机培训网提供.
;单片机培训网,让更多人学习单片机更容易.
;第一网址----www.mcuedu.com
;第二网址----http://51_train.nease.net
;创办人------刘永忠
;热线电话----(0755)27529998
;email-------aa815@163.com
;本程序使用查表方式实现流水灯功能
;///////////////////////////////////////////
org 0000h
ajmp main
org 0030h
main:
mov dptr,#tab ;将表头地址送入DPTR
mov 30h,#00h ;将30H清零
mov a,30h ;把30H中的数送入ACC中
loop:
movc a,@a+dptr ;查ROM中的表格并将所得结果送入ACC中
mov p0,a ;将查表所得结果送入P0口
inc 30h ;将30H单元加一
mov a,30h ;将30H单元的的值送入ACC中
movc a,@a+dptr ;查表并将所得的结果送入ACC中
mov p2,a ;将ACC中的值送入P2口
mov r4,#100 ;给软件计时器赋值
tt3: ;以下是延时程序延时时间为:10ms*100=1S
lcall delay10ms ;调用10MS延时程序
djnz r4,tt3 ;R4不等于零返回到TT3处循环
inc 30h ;将30H向上加一
mov a,30h ;将30H中的值送入ACC
cjne a,#32,loop ;ACC中的数若与32不相等则返回LOOP处循环
ajmp main ;相等则返回到主程序处继续循环
delay10ms: ; 10ms 延时程序
mov r6,#100
tt2:
mov r5,#50
djnz r5,$
djnz r6,tt2
ret
tab: dw 0fffeh,0fffdh,0fffbh,0fff7h
dw 0ffefh,0ffdfh,0ffbfh,0ff7fh
dw 07fffh,0bfffh,0dfffh,0efffh
dw 0f7ffh,0fbffh,0fdffh,0feffh
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -