"); //-->
地址 机器码 指令 注释 0000 02003B LJMP 003B ;跳转至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 ;调“嘀嗒”声子程序 004A 758007 MOV P0,#07H ;点亮VD1至VD3作默认指示 004D 20910F JB P1.1,005F ;判断SB2状态 0050 1203F7 LCALL 03F7 ;延时去抖动 0053 209109 JB P1.1,005F ; 0056 1203CC LCALL 03CC ;确认并应答 0059 3091FA JNB P1.1,0056 ;等待SB2释放 005C 020100 LCALL 0100 ;默认进入第一种选择,2灯流动 005F 2090EB JNB P1.0,004D ;判断SB1状态 0062 1203E7 LJLP 03F7 ;去抖动 0065 2090E5 JB P1.0,004D ; 0068 1203CC LCALL 00CC ;确认并应答 006B 3091FA JNB P1.1,0068 ;等待SB1释放 006E 758003 MOV P0,#03H ;点亮VD1和VD2作第二种选择指示 0071 20910F JB P1.1,0083 ;判断SB2状态 0074 1203F7 LCALL 00F7 ;去抖动 0077 209109 JB P1.1,0083 ; 007A 1203CC LCALL 03CC ;确认并应答 007D 3091FA JNB P1.1,007A ;等待SB2释放 0080 020200 LJMP 0200 ;进入第二种选择,4灯流动 0083 2090EB JB P1.0,0071 ;判断SB1状态 0086 1203F7 LCALL 03F7 ;去抖动 0089 2090E5 JB P1.0,0071 ; 008C 1203CC LCALL 03CC ;确认并应答 008F 3091FA JNB P1.1,008C ;等待SB1释放 0092 758001 FOV P0,#01H ;点亮VD1作第一种选择指示 0095 02004D LJMP 004D ;返回判断SB2状态 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继续流动 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继续流动 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继续流动 0154 1203EF LCALL 03EF ; 0157 75903F MOV P1,#3FH ; 015A 1203EF LCALL 03EF ; 015D 75900F MOV P1,#0FH ; 0160 020100 LJMP 0100 ;返回点亮VD1、VD2循环流动 0200 75800F MOV P0,#0FH ;点亮VD1至VD4 0203 1203CC LCALL 03CC ;调“嘀嗒”声延时0.2S 0206 7580F0 MOV P0,#F0H ;继续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,循环4灯流动 03CC 7B64 MOV R3,#64H ;设置脉冲周期数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 ;循环变换P1.2的高低电位 03DA 7B32 MOV R3,#32H ;设置脉冲周期数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 ;延回循环改变P1.2的电位 03EE 22 RET ;子程序返回 03EF 7BC8 MOV R3,#C8H ;置延时常数200 03F1 1203F7 LCALL 03F7 ;延时0.5ms 03F4 DBFB DJNZ P3,03F1 ;循环调用调时程序 03F6 22 RET ;子程序返回 03F7 7A32 MOV R2,#32H ;置延时常数 03F9 00 NOP ;空操作 03FA 00 NOP ; 03FB 00 NOP ; 03FC 00 NOP ; 03FD DAFA DJNZ R2,03F9 ;循环空操作 03FF 22 RET ;子程序返回 |
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。