外中斷計數2位數碼管顯示
P3.2引腳 T0 計數
P3.6引腳 低電平 顯示十位
P3.7引腳 低電平 顯示個位
0000 020006 LJMP 0006H ;16位長轉移
0003 0200D0 LJMP 00D0H ;16位長轉移 中斷
▲ 0000H 16位長轉移
0006 787F MOV R0, #7FH ;00H - 7FH 清0
0008 E4 CLR A ;A 清0
▲ 000AH 轉移
0009 F6 MOV @R0, A ;A 送間接RAM
000A D8FD DJNZ R0, 0009H ;寄存器減1 不為0 轉移
000C 758112 MOV 81H, #12H ;堆棧指針
000F 02004D LJMP 004DH ;16位長轉移
▲ 0054H 轉移
0012 0200E3 LJMP 00E3H ;16位長轉移
▲ 006BH 轉移
0015 E4 CLR A ;A 清0
0016 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
0017 A3 INC DPTR ;數據指針加1
0018 F8 MOV R0, A ;A 送寄存器
▲ 0023H 轉移
0019 E4 CLR A ;A 清0
001A 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
001B A3 INC DPTR ;數據指針加1
001C 4003 JC 0021H ;若A=0 則轉移
001E F6 MOV @R0, A ;A 送間接RAM
001F 8001 SJMP 0022H ;短轉移
▲ 001CH 轉移
0021 F2 MOVX @R0, A ;A 送外部數據(8位地址)
▲ 001FH 短轉移
0022 08 INC R0 ;寄存器加1
0023 DFF4 DJNZ R7, 0019H ;寄存器減1 不為0 轉移
0025 8029 SJMP 0050H ;短轉移
▲ 006DH 轉移 ▲ 0041H 轉移
0027 E4 CLR A ;A 清0
0028 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
0029 A3 INC DPTR ;數據指針加1
002A F8 MOV R0, A ;A 送寄存器
002B 5407 ANL A, #07H ;立即數“與”到A
002D 240C ADD A, #0CH ;立即數加到A
002F C8 XCH A, R0 ;寄存器與A交換
0030 C3 CLR C ;進位位清0
0031 33 RLC A ;A 帶進位左移一位
0032 C4 SWAP A ;A 高低四位交換位置
0033 540F ANL A, #0FH ;立即數“與”到A
0035 4420 ORL A, #20H ;立即數“或”到A
0037 C8 XCH A, R0 ;寄存器與A交換
0038 83 MOVC A, @A+PC ;A+PC尋址程序存貯字節送A
0039 4004 JC 003FH ;若A=0 則轉移
003B F4 CPL A ;A 求反碼
003C 56 ANL A, @R0 ;間接RAM “與”到A
003D 8001 SJMP 0040H ;短轉移
003F 46 ORL A, @R0 ;間接RAM“或”到A
▲ 003DH 短轉移
0040 F6 MOV @R0, A ;A 送間接RAM
0041 DFE4 DJNZ R7, 0027H ;寄存器減1 不為0 轉移
0043 800B SJMP 0050H ;短轉移
0045 01 02 04 08 10 20 40 80
▲ 000FH 16位長轉移
004D 9000F3 MOV DPTR,#00F3H ;16位常數送數據指針
▲ 0090H 短轉移 ▲ 0043H 短轉移 ▲ 0025H 短轉移
0050 E4 CLR A ;A 清0
0051 7E01 MOV R6, #01H ;立即數送寄存器
0053 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
0054 60BC JZ 0012H ;若A=0 則轉移
0056 A3 INC DPTR ;數據指針加1
0057 FF MOV R7, A ;A 送寄存器
0058 543F ANL A, #3FH ;立即數“與”到A
005A 30E509 JNB 0E5H, 0066H ;若直接位=0 則轉移
005D 541F ANL A, #1FH ;立即數“與”到A
005F FE MOV R6, A ;A 送寄存器
0060 E4 CLR A ;A 清0
0061 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
0062 A3 INC DPTR ;數據指針加1
0063 6001 JZ 0066H ;若A=0 則轉移
0065 0E INC R6 ;寄存器加1
▲ 005AH 轉移 ▲ 0063H 轉移
0066 CF XCH A, R7 ;寄存器與A交換
0067 54C0 ANL A, #0C0H ;立即數“與”到A
0069 25E0 ADD A, 0E0H ;直接字節加到A
006B 60A8 JZ 0015H ;若A=0 則轉移
006D 40B8 JC 0027H ;若A=0 則轉移
006F E4 CLR A ;A 清0
0070 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
0071 A3 INC DPTR ;數據指針加1
0072 FA MOV R2, A ;A 送寄存器
0073 E4 CLR A ;A 清0
0074 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
0075 A3 INC DPTR ;數據指針加1
0076 F8 MOV R0, A ;A 送寄存器
▲ 008CH 轉移 ▲ 008EH 轉移
0077 E4 CLR A ;A 清0
0078 93 MOVC A, @A+DPTR ;A+DPTR尋址程序存貯字節送A
0079 A3 INC DPTR ;數據指針加1
007A C8 XCH A, R0 ;寄存器與A交換
007B C582 XCH A, 82H ;DPL與A交換
007D C8 XCH A, R0 ;寄存器與A交換
007E CA XCH A, R2 ;寄存器與A交換
007F C583 XCH A, 83H ;DPH與A交換
0081 CA XCH A, R2 ;寄存器與A交換
0082 F0 MOVX @DPTR, A ;A 送外部數據(16位地址)
0083 A3 INC DPTR ;數據指針加1
0084 C8 XCH A, R0 ;寄存器與A交換
0085 C582 XCH A, 82H ;DPL與A交換
0087 C8 XCH A, R0 ;寄存器與A交換
0088 CA XCH A, R2 ;寄存器與A交換
0089 C583 XCH A, 83H ;DPH與A交換
008B CA XCH A, R2 ;寄存器與A交換
008C DFE9 DJNZ R7, 0077H ;寄存器減1 不為0 轉移
008E DEE7 DJNZ R6, 0077H ;寄存器減1 不為0 轉移
0090 80BE SJMP 0050H ;短轉移
▲ 00EEH 調用
0092 AE07 MOV R6, 07H ;直接字節送寄存器
0094 75A0BF MOV 0A0H, #0BFH ;立即數送直接字節
0097 EE MOV A, R6 ;寄存器送A
0098 75F00A MOV 0F0H, #0AH ;立即數送直接字節
009B 84 DIV AB ;A 被B除
009C 2408 ADD A, #08H ;立即數加到A
009E 1200BC LCALL 00BCH ;子程序調用
00A1 75A07F MOV 0A0H, #7FH ;立即數送直接字節
00A4 EE MOV A, R6 ;寄存器送A
00A5 75F00A MOV 0F0H, #0AH ;立即數送直接字節
00A8 84 DIV AB ;A 被B除
00A9 7408 MOV A, #08H ;立即數送A
00AB 25F0 ADD A, 0F0H ;直接字節加到A
00AD 1200BC LCALL 00BCH ;子程序調用
00B0 75A0FF MOV 0A0H, #0FFH ;立即數送直接字節
00B3 7580FF MOV 80H, #0FFH ;立即數送直接字節
00B6 1200C3 LCALL 00C3H ;子程序調用
00B9 0200C9 LJMP 00C9H ;16位長轉移
▲ 009EH 調用 ▲ 00ADH 調用
00BC F8 MOV R0, A ;A 送寄存器
00BD E6 MOV A, @R0 ;間接RAM送A
00BE F580 MOV 80H, A ;A 送直接字節 P0口
00C0 1200C9 LCALL 00C9H ;子程序調用
▲ 00B6H 調用
00C3 1200C9 LCALL 00C9H ;子程序調用
00C6 1200C9 LCALL 00C9H ;子程序調用
▲ 00B9H 長轉移 ▲ 00C0H 調用 ▲ 00C3H 調用 ▲ 00C6H 調用
00C9 E4 CLR A ;A 清0
00CA FF MOV R7, A ;A 送寄存器
▲ 00CCH 轉移
00CB 0F INC R7 ;寄存器加1
00CC BFC8FC CJNE R7, #0C8H, 00CBH ;立即數與寄存器比較不等轉移
00CF 22 RET ;子程序調用返回
▲ 0003H 16位長轉移 中斷
00D0 C0E0 PUSH 0E0H ;直接字節進棧,SP加1
00D2 C0D0 PUSH 0D0H ;直接字節進棧,SP加1
00D4 0512 INC 12H ;直接字節加1
00D6 E512 MOV A, 12H ;直接字節送A
00D8 B46403 CJNE A, #64H, 00DEH ;立即數與A比較,不等轉移
00DB 751200 MOV 12H, #00H ;立即數送直接字節
▲ 00D8H 轉移
00DE D0D0 POP 0D0H ;直接字節出棧,SP減1
00E0 D0E0 POP 0E0H ;直接字節出棧,SP減1
00E2 32 RETI ;中斷程序調用返回
▲ 0012H 長轉移
00E3 D2AF SETB 0AFH ;直接位置1
00E5 D2A8 SETB 0A8H ;直接位置1
00E7 D288 SETB 88H ;直接位置1
00E9 E4 CLR A ;A 清0
00EA F512 MOV 12H, A ;A 送直接字節
▲ 00F1H 短轉移
00EC AF12 MOV R7, 12H ;直接字節送寄存器
00EE 120092 LCALL 0092H ;子程序調用
00F1 80F9 SJMP 00ECH ;短轉移
00F3 0A 08 C0 F9 A4 B0 99 92 82 F8 80 90 00
51hei.png (6.01 KB, 下載次數: 48)
下載附件
2022-3-12 00:50 上傳
C語言代碼下載:
外中斷計數2位數碼管顯示.rar
(8.14 KB, 下載次數: 5)
2022-3-11 13:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|