單片機 流水燈 匯編語言,需要的下。
0.png (25.78 KB, 下載次數: 90)
下載附件
2016-6-7 14:07 上傳
仿真原理圖
0.png (87.44 KB, 下載次數: 96)
下載附件
2016-6-7 14:07 上傳
單片機匯編程序
- ORG 0000H
- SJMP MAIN
- ORG 0013H ; 外部中斷1矢量
- LJMP INT ;
- MAIN:
- SETB EA ; 開總中斷允許“開關”
- SETB EX1 ; 開分中斷允許“開關”
- SETB EX0 ;
- SETB PX1 ;
- SETB PX0 ;
- SETB IT1 ; 邊沿觸發
- SETB IT0 ; 邊沿觸發
- MOV R0, #0H; 將R0賦值0
- LOOP:
- NUM1:
- CJNE R0,#0,NUM2; 若R0不為0則跳轉
- MOV P2, #0F9H; 數碼管顯示1
- SJMP LOOP1; 跳轉到LOOP1
- NUM2:
- CJNE R0,#1,NUM3; 若R0不為1則跳轉
- MOV P2, #0A4H; 數碼管顯示2
- SJMP LOOP1 ; 跳轉到LOOP1
- NUM3:
- LOOP1:
- MOV A,#0FFH;
- mov p0,A ; 全滅
- ;mov p1,A ;
- MOV A,#0FEH; 順時針依次點亮
- XXX:
- MOV P1,#0FFH;
- YYY:
- MOV R1,#2;
- MOV P0,A;
- lcall delay
- RL A;
- CJNE A,#0FEH,YYY;
- AJMP LOOP;
- delay:
- CJNE R0,#0,DELAY_0; 若R0不為0則跳轉
- mov r5,#10; 若R0為0則R5賦值20
- SJMP BBB; 跳轉到BBB
- DELAY_0:
- CJNE R0,#1,DELAY_1; 若R0不為1則跳轉
- MOV R5,#20; 若R0為1,給R5賦值20
- SJMP BBB ; 跳轉到BBB
- DELAY_1:
- MOV R5,#30; R0為2,給R5賦值10
- BBB:
- d1: mov r6,#40
- d2: mov r7,#248
- djnz r7,$
- djnz r6,d2
- djnz r5,d1
- FINISH:
- ret
- INT:
- LCALL DELAY1S;
- RL A;
- CJNE R1,#1,FFF;
- CJNE A,#0FEH,QQQ;
- MOV P0,A;
- LCALL DELAY3S;
- SJMP JJJ;
- QQQ:
- MOV P1,A;
- LCALL DELAY3S;
- SJMP JJJ;
- FFF:
- CJNE A,#0FEH,PPP;
- MOV P1,A;
- LCALL DELAY3S;
- SJMP JJJ;
- PPP:
- MOV P0,A;
- LCALL DELAY3S;
- JJJ:
- INC R0;
- CJNE R0,#3,AAA;
- MOV R0,#0;
- AAA:
- CJNE R0,#0,NU2; 若R0不為0則跳轉
-
- AJMP LOOP2;
- NU2:
- CJNE R0,#1,NU3; 若R0不為1則跳轉
- AJMP LOOP2;
- NU3:
- CJNE R0,#2,LOOP2;
- LOOP2:
- MOV P1,#0FFH;
- MOV P0,#0FFH;
- RETI; 中斷返回
- DELAY3S:
- LCALL DELAY1S;
- LCALL DELAY1S;
- LCALL DELAY1S;
- RET;
- DELAY1S:
- MOV R2, #0AH ;
- CCC:
- CALL DELAY100MS ;
- DJNZ R2, CCC;
- RET
- DELAY100MS:
- MOV R4, #200;
- DELAY20US:
- MOV R3, #248
- DJNZ R3, $
- DJNZ R4, DELAY20US
- RET
- END
復制代碼
復件 LED.zip
(59.11 KB, 下載次數: 23)
2016-6-7 10:28 上傳
點擊文件名下載附件
可高速 下載積分: 黑幣 -5
|