單片機學(xué)習(xí)之七:基本I/O口試驗三-左右跑馬燈
一、 試驗現(xiàn)象:
本文引用地址:http://butianyuan.cn/article/201609/297204.htm二極管從左至右,然后從右至左作跑馬燈變換,燈光變換的間隔時間是1s。
二、 試驗?zāi)康?/p>
掌握帶進位左、右環(huán)移指令rlc,rrc的應(yīng)用
進一步熟悉延時程序的應(yīng)用
三、 試驗任務(wù)分析:
按照上一個試驗的思路,該程序的編寫思路如下:先作左跑馬燈,然后再作右跑馬燈,然后讓程序不斷循環(huán)即可。在這個試驗里,我們給大家介紹另外兩個左、右移指令,先看程序吧。
四、 試驗程序如下:
org 0000h
clr p1.5
start: mov a,#0ffh ;(1)
clr c ;(2)
mov r2,#08h ;(3)
loop1: rlc a ;(4)
mov p0,a
call del1s ;調(diào)用1s延時子程序
djnz r2,loop1 ;如果左移8次,則開始右移,否則,繼續(xù)左移
mov r2,#06h ;(6)
loop2: rrc a ;(7)
mov p0,a
call del1s
djnz r2,loop2 ;
ljmp start
;以下是延時1s的子程序
del1s: mov r7,#100
del1: mov r6,#20h
del2: mov r5,#0ffh
del3: djnz r5,del3
djnz r6,del2
djnz r7,del1
ret
end
五、注釋
1、 先看看(4)語句,它的意思是累加器A通過C進行左環(huán)移,圖示如下:
可見,我們?nèi)绻胱専魪淖笾糜野l(fā)光,就需要給a賦值0ffh,cy清零,然后左環(huán)移8次即可。這就是(1)、(2)語句的含義。
Cy我們以前沒有接觸過,它又是什么呢?
還記得試驗二中,我們提到程序狀態(tài)字psw吧,它的各位圖示如下:可見cy是psw的最高位,是進位標(biāo)志,表示運算結(jié)果是否有進位(或者借位)。如果操作結(jié)果在最高位有進位(加法時),或者有借位(減法時),該位為“1”,否則為“0”。
2、 根據(jù)上面的分析,可知(3)語句就是左移的次數(shù)
3、 (6)(7)語句的含義自己分析吧。
六、課后作業(yè):
試著用別的方法,完成同樣的功能。
評論