地址 機器碼 指令 注釋
0000 02003B LJMP 003B ;跳轉(zhuǎn)至003BH
003B 758000 MOV P0,#00H ;初始化
003E 75900F MOV P1,#0FH ;
0041 75A000 MOV P2,#00H ;
0044 75B000 MOV P3,#00H ;
0047 1203CC LCALL 03CC ;調(diào)“嘀嗒”聲子程序
004A 758007 MOV P0,#07H ;點亮VD1至VD3作默認指示
004D 20910F JB P1.1,005F ;判斷SB2狀態(tài)
0050 1203F7 LCALL 03F7 ;延時去抖動
0053 209109 JB P1.1,005F ;
0056 1203CC LCALL 03CC ;確認并應(yīng)答
0059 3091FA JNB P1.1,0056 ;等待SB2釋放
005C 020100 LCALL 0100 ;默認進入第一種選擇,2燈流動
005F 2090EB JNB P1.0,004D ;判斷SB1狀態(tài)
0062 1203E7 LJLP 03F7 ;去抖動
0065 2090E5 JB P1.0,004D ;
0068 1203CC LCALL 00CC ;確認并應(yīng)答
006B 3091FA JNB P1.1,0068 ;等待SB1釋放
006E 758003 MOV P0,#03H ;點亮VD1和VD2作第二種選擇指示
0071 20910F JB P1.1,0083 ;判斷SB2狀態(tài)
0074 1203F7 LCALL 00F7 ;去抖動
0077 209109 JB P1.1,0083 ;
007A 1203CC LCALL 03CC ;確認并應(yīng)答
007D 3091FA JNB P1.1,007A ;等待SB2釋放
0080 020200 LJMP 0200 ;進入第二種選擇,4燈流動
0083 2090EB JB P1.0,0071 ;判斷SB1狀態(tài)
0086 1203F7 LCALL 03F7 ;去抖動
0089 2090E5 JB P1.0,0071 ;
008C 1203CC LCALL 03CC ;確認并應(yīng)答
008F 3091FA JNB P1.1,008C ;等待SB1釋放
0092 758001 FOV P0,#01H ;點亮VD1作第一種選擇指示
0095 02004D LJMP 004D ;返回判斷SB2狀態(tài)
0100 758003 MOV P0,#03H ;點亮VD1、VD2
0103 1203EF LCALL 03EF ;延時0.1S
0106 75800C MOV P0,#0CH ;熄滅VD1、VD2,點亮VD3、VD4
0109 1203EF LCALL 03EF ;延時0.1S
010C 758030 MOV P0,#30H ;點亮VD5、VD6
010F 1203EF LCALL 03EF ;延時0.1S
0112 7580C0 MOV P0,#C0H ;點亮VD7、VD8
0115 1203EF LCALL 03EF ;延時0.1S
0118 758000 MOV P0,#00H ;熄滅VD7、VD8
011B 75A0C0 MOV P2,#C0H ;點亮VD9、VD10繼續(xù)流動
011E 1203EF LCALL 03EF ;
0121 75A030 MOV P2,#30H ;
0124 1203EF LCALL 03EF ;
0127 75A00C MOV P2,#0CH ;
012A 1203EF LCALL 03EF ;
012D 75A003 MOV P2,#03H ;
0130 1203EF LCALL 03EF ;
0133 75A000 MOV P2,#00H ;
0136 75B0C0 MOV P3,#C0H ;點亮VD17、VD18繼續(xù)流動
0139 1203EF LCALL 03EF ;
013C 75B030 MOV P3,#30H ;
013F 1203EF LCALL 03EF ;
0142 75B00C MOV P3,#0CH ;
0145 1203EF LCALL 03EF ;
0148 75B003 MOV P3,#03H ;
014B 1203EF LCALL 03EF ;
014E 75B000 MOV P3,#00H ;
0151 7590CF MOV P1,#CFH ;點亮VD25、VD26繼續(xù)流動
0154 1203EF LCALL 03EF ;
0157 75903F MOV P1,#3FH ;
015A 1203EF LCALL 03EF ;
015D 75900F MOV P1,#0FH ;
0160 020100 LJMP 0100 ;返回點亮VD1、VD2循環(huán)流動
0200 75800F MOV P0,#0FH ;點亮VD1至VD4
0203 1203CC LCALL 03CC ;調(diào)“嘀嗒”聲延時0.2S
0206 7580F0 MOV P0,#F0H ;繼續(xù)4燈流動
0209 1203CC LCALL 03CC ;
020C 758000 MOV P0,#00H ;
020F 75A0F0 MOV P2,#F0H ;
0212 1203CC LCALL 03CC ;
0215 75A00F MOV P2,#0FH ;
0218 1203CC LCALL 03CC ;
021B 75A000 MOV P2,#00H ;
021E 75B0F0 MOV P3,#F0H ;
0221 1203CC LCALL 03CC ;
0224 75B00F MOV P3,#0FH ;
0227 1203CC LCALL 03CC ;
022A 75B000 MOV P3,#00H ;
022C 7590FF MOV P1,#FFH ;
0230 1203CC LCALL 03CC ;
0233 75900F MOV P1,#0FH ;
0236 020200 LJMP 0200 ;返回點亮VD1至VD4,循環(huán)4燈流動
03CC 7B64 MOV R3,#64H ;設(shè)置脈沖周期數(shù)100
03CE D292 SETB P1.2 ;使P1.2呈高電位
03DD 1203F7 LCALL 03F7 ;延時0.5ms
03D3 C292 CLR P1.2 ;使P1.2呈低電位
03D5 1203F7 LCALL 03F7 ;延時0.5ms
03D8 DBF4 DJNZ R3,03CE ;循環(huán)變換P1.2的高低電位
03DA 7B32 MOV R3,#32H ;設(shè)置脈沖周期數(shù)50
03DC D292 SETB P1.2 ;使P1.2呈高電位
03DE 1203F7 LCALL 03F7 ;延時0.5ms
03E1 1203F7 LCALL 03F7 ;延時0.5ms
03E4 C292 CLR P1.2 ;使P1.2呈低電位
03E6 1203F7 LCALL 03F7 ;延時0.5ms
03E9 1203F7 LCALL 03F7 ;延時0.5ms
03EC DBEE DJNZ R3,03DC ;延回循環(huán)改變P1.2的電位
03EE 22 RET ;子程序返回
03EF 7BC8 MOV R3,#C8H ;置延時常數(shù)200
03F1 1203F7 LCALL 03F7 ;延時0.5ms
03F4 DBFB DJNZ P3,03F1 ;循環(huán)調(diào)用調(diào)時程序
03F6 22 RET ;子程序返回
03F7 7A32 MOV R2,#32H ;置延時常數(shù)
03F9 00 NOP ;空操作
03FA 00 NOP ;
03FB 00 NOP ;
03FC 00 NOP ;
03FD DAFA DJNZ R2,03F9 ;循環(huán)空操作
03FF 22 RET ;子程序返回 |