實現(xiàn)8個LED流水燈匯編語言程_第1頁
實現(xiàn)8個LED流水燈匯編語言程_第2頁
實現(xiàn)8個LED流水燈匯編語言程_第3頁
實現(xiàn)8個LED流水燈匯編語言程_第4頁
實現(xiàn)8個LED流水燈匯編語言程_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上START:MOV ACC,#0FEH ;ACC中先裝入LED1亮的數(shù)據(jù)(二進制的) MOV P1,ACC ;將ACC的數(shù)據(jù)送P1口 MOV R0,#7 ;將數(shù)據(jù)再移動7次就完成一個8位流水過程 LOOP: RLA ;將ACC中的數(shù)據(jù)左移一位MOV P1,A ;把ACC移動過的數(shù)據(jù)送p1口顯示ACALL DELAY ;調(diào)用延時子程序DJNZR0,LOOP ;沒有移動夠7次繼續(xù)移動 AJMPSTART ;移動完7次后跳到開始重來,以達到循環(huán)流動效果;- 延時子程序 -DELAY:MOV R0,#255 ;延時一段時間D1: MOV R1,#255DJNZR1,$DJNZ

2、R0,D1RET ;子程序返回END ;程序結(jié)束START:CLR P1.0 ;P1.0輸出低電平,使LED1點亮ACALL DELAY;調(diào)用延時子程序SETBP1.0 ;P1.0輸出高電平,使LED1熄滅CLR P1.1 ;P1.1輸出低電平,使LED2點亮ACALL DELAY;調(diào)用延時子程序SETBP1.1 ;P1.1輸出高電平,使LED2熄滅CLR P1.2 ;P1.2輸出低電平,使LED3點亮ACALL DELAY;調(diào)用延時子程序SETBP1.2 ;P1.2輸出高電平,使LED3熄滅CLR P1.3 ;P1.3輸出低電平,使LED4點亮ACALL DELAY;調(diào)用延時子程序SETBP

3、1.3 ;P1.3輸出高電平,使LED4熄滅CLR P1.4 ;P1.4輸出低電平,使LED5點亮ACALL DELAY;調(diào)用延時子程序SETBP1.4 ;P1.4輸出高電平,使LED5熄滅CLR P1.5 ;P1.5輸出低電平,使LED6點亮ACALL DELAY;調(diào)用延時子程序SETBP1.5 ;P1.5輸出高電平,使LED6熄滅CLR P1.6 ;P1.6輸出低電平,使LED7點亮ACALL DELAY;調(diào)用延時子程序SETBP1.6 ;P1.6輸出高電平,使LED7熄滅CLR P1.7 ;P1.7輸出低電平,使LED8點亮ACALL DELAY;調(diào)用延時子程序SETBP1.7 ;P1.

4、7輸出高電平,使LED8熄滅ACALL DELAY;調(diào)用延時子程序AJMPSTART;8個LED流了一遍后返回到標號START處再循環(huán);- 延時子程序 -DELAY:MOV R0,#255;延時一段時間D1: MOV R1,#255DJNZR1,$DJNZR0,D1RET ;子程序返回END;程序結(jié)束ORG 0000H ;上電復位,程序從0000H開始執(zhí)行START:MOV SP,#60H ;堆棧初始化為60HMOV DPTR,#LIU_TAB ;流水花樣表首地址送DPTRLOOP: CLR AMOVCA,A+DPTRCJNEA,#0FFH,SHOW;檢查流水結(jié)束標志AJMPSTART ;所有

5、花樣流完,則從頭開始重復流SHOW: MOV P1,A;將數(shù)據(jù)送到P1口ACALL DELAYINC DPTRAJMPLOOP;- 延時子程序 -DELAY:MOV R0,#255;延時一段時間D1: MOV R1,#255DJNZR1,$DJNZR0,D1RET ;子程序返回;- 下面是流水花樣數(shù)據(jù)表 -LIU_TAB: DB B ;二進制表示的流水花樣數(shù)據(jù)DB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH ;十六進制表示DB 0FEH,0F

6、DH,0FBH,0F7H,0EFH,0DFH,0BFH,7FHDB 7EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,7EHDB 7FH,3FH,1FH,0FH,07H,03H,01H,00HDB 0FFH ;流水花樣結(jié)束標志0FFHEND;程序結(jié)束延時子程序,12M晶振延時約250毫秒DELAY:MOV R4,#2L3: MOV R2 ,#250L1: MOV R3 ,#250L2: DJNZ R3 ,L2 DJNZ R2 ,L1DJNZ R4 ,L3 RETorg 00h;程序上電從00h開始ajmpmain;跳轉(zhuǎn)到主程序org0030h;主程序起始地址main:mov

7、a,#0feh;給A賦值成loop:movp1,a;將A送到P1口,發(fā)光二極管低電平點亮lcall delay;調(diào)用延時子程序rl a;累加器A循環(huán)左移一位ajmploop;重新送P1顯示delay:mov r3,#20;最外層循環(huán)二十次d1:mov r4,#80;次外層循環(huán)八十次d2:mov r5,#250;最內(nèi)層循環(huán)250次djnz r5,$;總共延時2us*250*80*20=0.8Sdjnz r4,d2djnz r3,d1retend如何精確計算延時子程序的執(zhí)行時間?匯編語言的一大優(yōu)勢就是能夠精確控制程序的執(zhí)行時間,這在編寫一些對時序要求嚴格的外圍器件驅(qū)動時由為重要!;延時子程序,12M晶振延時約253毫秒DELAY:MOV R4,#2執(zhí)行1個機器周期,耗時1微秒L3: MOV R2 ,#250執(zhí)行1個機器周期,耗時1微秒L1: MOV R3 ,#251執(zhí)行1個機器周期,耗時1微秒L2: DJNZ R3 ,L2執(zhí)行2個機器周期,反復執(zhí)行251次(2x251)502微秒

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論