新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機匯編語言(一)

51單片機匯編語言(一)

作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
6.1功能說明:控制單片機P1端口輸出,使P1.0位所接的LED點亮,其他7只燈熄滅。

程序:JS01.ASM

本文引用地址:http://butianyuan.cn/article/201611/321009.htm

01: MOV A , #11111110B ; 存入欲顯示燈的位置數(shù)據(jù)

02:MOV P1, A ; 點亮第一只燈

03: JMP $ ; 保持當(dāng)前的輸出狀態(tài)

04: END ; 程序結(jié)束

6.2功能說明:單片機P1端口接8只LED,點亮第1、3、4、6、7、8只燈。

程序:JS02.ASM

01:START: MOV A , #00010010B ; 存入欲顯示燈的位置數(shù)據(jù)

02: MOV P1, A ; 點亮燈

03: JMP START ; 重新設(shè)定顯示值

04: END ; 程序結(jié)束

6.3功能說明:單片機P1端口接8只LED,每次點亮一只,向左移動點亮,重復(fù)循環(huán)。

該程序缺少延時環(huán)節(jié),適合模擬仿真觀察。

程序:JS03.ASM

01: START: MOV R0, #8 ;設(shè)左移8次

02: MOV A, #11111110B ;存入開始點亮燈位置

03: LOOP: MOV P1, A ;傳送到P1并輸出

04: RL A ;左移一位

05: DJNZ R0, LOOP ;判斷移動次數(shù)

06: JMP START ;重新設(shè)定顯示值

07: END ;程序結(jié)束

6.4功能說明:單片機P1端口接8只LED,每次點亮一只,向右移動點亮,重復(fù)循環(huán)。

程序:JS04.ASM

01: START: MOV R0, #8 ;設(shè)右移8次

02: MOV A, #01111111B ;存入開始點亮燈位置

03: LOOP: MOV P1, A ;傳送到P1并輸出

04: ACALL DELAY ;調(diào)延時子程序

05: RR A ;右移一位

06: DJNZ R0, LOOP ;判斷移動次數(shù)

07: JMP START ;重新設(shè)定顯示值

08: DELAY: MOV R5,#50 ;

09: DLY1: MOV R6,#100

10: DLY2: MOV R7,#100 ;

11: DJNZ R7,$ ;

12: DJNZ R6,DLY2 ;

13: DJNZ R5,DLY1 ;

14: RET ;子程序返回

15: END ;程序結(jié)束

6.5功能說明:單片機P1端口接8只LED,每次點亮一只,先把右邊的第一只點亮,0.5秒后點亮右數(shù)的第二只燈,第一只熄滅,再過0.5秒點亮右數(shù)的第三只燈,第二只熄滅,…亮燈按此順序由右向左移動。當(dāng)亮燈移到左側(cè)后,開始與上述反方向移動,即亮燈由左向右移動,重復(fù)循環(huán)。

程序:JS05.ASM

01: START: MOV R0, #8 ;設(shè)左移8次

02: MOV A,#0FEH ;存入開始亮燈位置

03: LOOP: MOV P1, A ;傳送到P1并輸出

04: ACALL DELAY ;調(diào)延時子程序

05: RL A ;左移一位

06: DJNZ R0, LOOP ;判斷移動次數(shù)

07: MOV R1, #8 ;設(shè)右移8次

08; LOOP1: RR A ;右移一位

09: MOV P1, A ;傳送到P1并輸出

10: ACALL DELAY ;調(diào)延時子程序

11: DJNZ R1,LOOP1 ;判斷移動次數(shù)

12: JMP START ;重新設(shè)定顯示值

13: DELAY: MOV R5,#25 ;延時0.5秒子程序

14: DLY1: MOV R6,#100 ;

15: DLY2: MOV R7,#100

16: DJNZ R7,$ ;

17: DJNZ R6,DLY2

18: DJNZ R5,DLY1 ;

19: RET ;子程序返回

20: END ;

6.6功能說明:單片機P1端口接8只LED,每次點亮兩只,先從右邊向左邊移動點亮;再從左邊向右邊移動點亮,然后閃爍兩次,重復(fù)循環(huán)。

程序:JS06.ASM

01: START: MOV R0, #7 ;設(shè)左移7次

02: MOV A,#0FCH ;存入開始亮燈位置

03: LOOP: MOV P1, A ;傳送到P1并輸出

04: ACALL DELAY ;調(diào)延時子程序

05: RL A ;左移一位

06: DJNZ R0, LOOP ;判斷移動次數(shù)

07: MOV R1, #7 ;設(shè)右移7次

08: LOOP1: RR A ;右移一位

09: MOV P1, A ;傳送到P1并輸出

10: ACALL DELAY ;調(diào)延時子程序

11: DJNZ R1, LOOP1 ;判斷移動次數(shù)

12: MOV R2, #3 ;設(shè)置閃爍次數(shù)

13: MOV A, #00H ;設(shè)初始值

14: LOOP2: MOV P1, A ;P1端口燈亮

15: ACALL DELAY ;調(diào)用延時子程序

16: CPL A ;A取反值

17: DJNZ R2, LOOP2 ;判斷閃爍次數(shù)

18: JMP START ;重新設(shè)定顯示值

19: DELAY: MOV R5, #25

20: DLY1: MOV R6, #100

21: DLY2: MOV R7, #100

22: DJNZ R7, $

23: DJNZ R6, DLY2

24: DJNZ R5, DLY1

25: RET ;子程序返回

26: END ;程序結(jié)束



關(guān)鍵詞: 51單片機匯編語

評論


技術(shù)專區(qū)

關(guān)閉