6.1功能說明:控制單片機(jī)P1端口輸出,使P1.0位所接的LED點(diǎn)亮,其他7只燈熄滅。程序:JS01.ASM
本文引用地址:http://m.butianyuan.cn/article/201611/321009.htm01: MOV A , #11111110B ; 存入欲顯示燈的位置數(shù)據(jù)
02:MOV P1, A ; 點(diǎn)亮第一只燈
03: JMP $ ; 保持當(dāng)前的輸出狀態(tài)
04: END ; 程序結(jié)束
6.2功能說明:單片機(jī)P1端口接8只LED,點(diǎn)亮第1、3、4、6、7、8只燈。
程序:JS02.ASM
01:START: MOV A , #00010010B ; 存入欲顯示燈的位置數(shù)據(jù)
02: MOV P1, A ; 點(diǎn)亮燈
03: JMP START ; 重新設(shè)定顯示值
04: END ; 程序結(jié)束
6.3功能說明:單片機(jī)P1端口接8只LED,每次點(diǎn)亮一只,向左移動(dòng)點(diǎn)亮,重復(fù)循環(huán)。
該程序缺少延時(shí)環(huán)節(jié),適合模擬仿真觀察。
程序:JS03.ASM
01: START: MOV R0, #8 ;設(shè)左移8次
02: MOV A, #11111110B ;存入開始點(diǎn)亮燈位置
03: LOOP: MOV P1, A ;傳送到P1并輸出
04: RL A ;左移一位
05: DJNZ R0, LOOP ;判斷移動(dòng)次數(shù)
06: JMP START ;重新設(shè)定顯示值
07: END ;程序結(jié)束
6.4功能說明:單片機(jī)P1端口接8只LED,每次點(diǎn)亮一只,向右移動(dòng)點(diǎn)亮,重復(fù)循環(huán)。
程序:JS04.ASM
01: START: MOV R0, #8 ;設(shè)右移8次
02: MOV A, #01111111B ;存入開始點(diǎn)亮燈位置
03: LOOP: MOV P1, A ;傳送到P1并輸出
04: ACALL DELAY ;調(diào)延時(shí)子程序
05: RR A ;右移一位
06: DJNZ R0, LOOP ;判斷移動(dòng)次數(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功能說明:單片機(jī)P1端口接8只LED,每次點(diǎn)亮一只,先把右邊的第一只點(diǎn)亮,0.5秒后點(diǎn)亮右數(shù)的第二只燈,第一只熄滅,再過0.5秒點(diǎn)亮右數(shù)的第三只燈,第二只熄滅,…亮燈按此順序由右向左移動(dòng)。當(dāng)亮燈移到左側(cè)后,開始與上述反方向移動(dòng),即亮燈由左向右移動(dòng),重復(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)延時(shí)子程序
05: RL A ;左移一位
06: DJNZ R0, LOOP ;判斷移動(dòng)次數(shù)
07: MOV R1, #8 ;設(shè)右移8次
08; LOOP1: RR A ;右移一位
09: MOV P1, A ;傳送到P1并輸出
10: ACALL DELAY ;調(diào)延時(shí)子程序
11: DJNZ R1,LOOP1 ;判斷移動(dòng)次數(shù)
12: JMP START ;重新設(shè)定顯示值
13: DELAY: MOV R5,#25 ;延時(shí)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功能說明:單片機(jī)P1端口接8只LED,每次點(diǎn)亮兩只,先從右邊向左邊移動(dòng)點(diǎn)亮;再從左邊向右邊移動(dòng)點(diǎn)亮,然后閃爍兩次,重復(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)延時(shí)子程序
05: RL A ;左移一位
06: DJNZ R0, LOOP ;判斷移動(dòng)次數(shù)
07: MOV R1, #7 ;設(shè)右移7次
08: LOOP1: RR A ;右移一位
09: MOV P1, A ;傳送到P1并輸出
10: ACALL DELAY ;調(diào)延時(shí)子程序
11: DJNZ R1, LOOP1 ;判斷移動(dòng)次數(shù)
12: MOV R2, #3 ;設(shè)置閃爍次數(shù)
13: MOV A, #00H ;設(shè)初始值
14: LOOP2: MOV P1, A ;P1端口燈亮
15: ACALL DELAY ;調(diào)用延時(shí)子程序
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é)束
評(píng)論