?? 11傳統延時跑馬燈.asm
字號:
org 00h ;指定程序放置的地址,說明,放在程序寄存器的任意地址運行效果都是相同的,但是,用戶必須合理分配,一般從00h開始放置
clr p1.0 ;點亮一個燈,以便觀查移位效果
main: mov a,p1 ;讀入p1口的數據,利用累加器移位(如果你在程序運行時,人為的強制改變了p1口的高低電平,累加器也會幫你移位)
rl a ;將數據向左移位,下面是向右移位,(如果同時移了就表示沒有移)
;rr a ;前面有分號,表示本行相當于注解,不用執行
mov p1,a ;將累加器的數據放到p1口
call ys1 ;調用延時子程序
jmp main ;進入下一循環
ys1: mov r5,#10 ;延時子程序,為了保證延時準確,必須計算讓程序能停留在這個子程序的周期數;因些必須預置數
mov r6,#100
mov r7,#100
ys2: djnz r7,ys2 ;減1不為零跳到ys2,即跳到本行,也就停在本行100次,
mov r7,#100 ;再次預置數
ys3: djnz r6,ys2 ;減1不為零跳到ys2,也就是讓程序100次停到ys2那里100次
mov r6,#100 ;再次預置數
ys4: djnz r5,ys2 ;讓程序仍然跳到ys2,重復以上10次,這樣總共讓程序在這里執行大約10萬個周期,起到延時的作用
ret ;子程序運行結束,返回原調用的位置
end ;程序結束,以后可以放置任何內容
說明:由于單片機運行的速度很快,必須延時,人眼才能看清楚LED點亮和熄滅的過程,但是,在實際應用中,象這樣應用延時程序的意義不在,
因為這占用了寶貴的CPU運行時間,在很多時間,CPU不是很有空.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -