4只LED為共陽極連線,即微控制器輸出端為低電平時即可點亮LED。;用最直接的方式實現流水燈ORG 0000H START:MOV P1,#01111111B ;最下面的LED點亮 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 MOV P1,#10111111B ;最下面第二個的LED點亮 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 MOV P1,#11011111B ;最下面第三個的LED點亮 (以下省略) LCALL DELAY LCALL DELAY ;延時60秒 MOV P1,#11101111B LCALL DELAY LCALL DELAY ;延時60秒 MOV P1,#11110111B LCALL DELAY LCALL DELAY ;延時60秒 MOV P1,#11111011B LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 LCALL DELAY ;完成第一次迴圈點亮,延時約0.25秒 AJMP START ;反覆迴圈;延時子程式,12M晶振延時約250毫秒DELAY: ;大約值:2us*256*256*2=260ms,也可以認為為250msPUSH PSW ;現場保護指令(有時可以不加)MOV R4,#240 L3: MOV R2 ,#00HL1: MOV R3 ,#00HL2: DJNZ R3 ,L2 ;最內層迴圈:(256次)2個週期指令(R3減一,如果比1大,則轉向L2) DJNZ R2 ,L1 ; 中層迴圈:256次 DJNZ R4 ,L3 ;外層迴圈:240次 POP PSW RET END
4只LED為共陽極連線,即微控制器輸出端為低電平時即可點亮LED。;用最直接的方式實現流水燈ORG 0000H START:MOV P1,#01111111B ;最下面的LED點亮 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 MOV P1,#10111111B ;最下面第二個的LED點亮 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 MOV P1,#11011111B ;最下面第三個的LED點亮 (以下省略) LCALL DELAY LCALL DELAY ;延時60秒 MOV P1,#11101111B LCALL DELAY LCALL DELAY ;延時60秒 MOV P1,#11110111B LCALL DELAY LCALL DELAY ;延時60秒 MOV P1,#11111011B LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 LCALL DELAY ;延時60秒 LCALL DELAY ;完成第一次迴圈點亮,延時約0.25秒 AJMP START ;反覆迴圈;延時子程式,12M晶振延時約250毫秒DELAY: ;大約值:2us*256*256*2=260ms,也可以認為為250msPUSH PSW ;現場保護指令(有時可以不加)MOV R4,#240 L3: MOV R2 ,#00HL1: MOV R3 ,#00HL2: DJNZ R3 ,L2 ;最內層迴圈:(256次)2個週期指令(R3減一,如果比1大,則轉向L2) DJNZ R2 ,L1 ; 中層迴圈:256次 DJNZ R4 ,L3 ;外層迴圈:240次 POP PSW RET END