l 單鍵控制多燈延時(shí)閃爍—延時(shí)子程序
ORG 0000H ; 程序開始
MAIN:
GUAN : 按P0.0口的狀態(tài)為0獲得的跳轉(zhuǎn)執(zhí)行指令—子程序
CPL C ;反轉(zhuǎn)P0.0口的狀態(tài)0為1
AJMP MAIN ; 延時(shí)結(jié)束后,短轉(zhuǎn)移跳轉(zhuǎn)到MAIN,重新開始 ,改變了的P0.0口的狀態(tài)便起作用了
ORG 0200H ; 從200H開始存放
DELAY: ; 延時(shí)子程序 — 這是一個(gè)非常有用、而且常見的一個(gè)子程序
F3:
F2:
F1:
END
程序說明:
每個(gè)口用字節(jié)賦值指令一次性的開關(guān)各個(gè)Pi口的外接器件。特別注意延時(shí)指令,在單片機(jī)的應(yīng)用中,經(jīng)常會(huì)使用延時(shí)特性。參見如下所述。
注意延時(shí)的本質(zhì)實(shí)際上是單片機(jī)在空運(yùn)轉(zhuǎn),因此可以使用一個(gè)跳轉(zhuǎn)或多個(gè)跳轉(zhuǎn)的空運(yùn)轉(zhuǎn),以便控制更長的延時(shí)。寄存器是與運(yùn)算器直接打交道的存儲(chǔ)單元。
基本的延時(shí)子程序?yàn)?/div>
MOV R5,#04H
DJNZ R5, F1
DELAY:
F1:
RET
l LED循環(huán)問題(跑馬燈、流水燈)
一種方式位輸出加延時(shí)子程序,二種方式字節(jié)輸出加延時(shí)子程序,三種方式字節(jié)數(shù)據(jù)表加延時(shí)子程序。
a) 單個(gè)按鍵與多個(gè)LED燈—數(shù)碼管(位操作—輸入與字節(jié)操作—輸出)—數(shù)表
l 單輸入與多輸出的電子線路—靜態(tài)特性
在單個(gè)LED燈的基礎(chǔ)上,添加多個(gè)LED燈或者用LED組燈來替代單個(gè)添加。從單個(gè)LED到LED組的硬件添加,再通過指令變化,可以感受到、可以發(fā)現(xiàn)數(shù)碼管的應(yīng)用方法,也可以體會(huì)到引用數(shù)組—數(shù)據(jù)表的好處。
l
多輸出電子線路的控制指令—動(dòng)態(tài)特性
多輸出電子線路的控制指令—動(dòng)態(tài)特性
通過硬件的變化,指令集—程序也在隨著變化。可以發(fā)現(xiàn),添加延時(shí)指令,可實(shí)現(xiàn)LED閃爍;也就是用多燈。通過用位賦值指令并延時(shí)單個(gè)LED的開關(guān)時(shí)間,實(shí)現(xiàn)流水燈現(xiàn)象。也可以對每個(gè)口用位指令賦值,順序開關(guān);可以用字節(jié)指令送數(shù)據(jù),LOOP循環(huán)實(shí)現(xiàn)跑馬燈。還可以用數(shù)據(jù)組格式—數(shù)表格式,通過掃描實(shí)現(xiàn),等等。