回覆列表
-
1 # 使用者5340913747936
-
2 # 嬞菇涼
給你個參考程式吧。
ORG0000H
AJMPMAIN
MAIN:MOVA,#07FH
LOP:MOVP1,A
ACALLDELAY
RLA
AJMPLOP
DELAY:MOVR7,#200
DEL1:MOVR6,#100
DEL0:DJNZR6,DEL0
DJNZR7,DEL1
RET
END
說明:07fh可以換成FEH。標號可以改變,延遲delay斷可以改變,以達到延遲1秒的要求。最後的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