各位大師們 你們好,我將用定時器編寫一個5分鐘的定時程序,主循環中如果檢測到一個 IO口為低電平的時候將申請中斷 由單片機的另一個IO口輸出5分鐘的高電平狀態
主循環如何編寫?如果是檢測到IO口為低電平時就要啟動定時器,如何編程?謝謝高手們指點
MAIN: SETB _WDI;喂狗 NOP NOP MOV C,K1_IN;讀IO口狀態 JNC OPENRELAY;若=0證明是低電平 LJMP MAIN
OPENRELAY: SETB RELAY;打開繼電器 SETB TF1;?????該處如何申請中斷去延時這5分鐘??? LJMP MAIN
TIMER1: SETB _WDI MOV TH1,#03CH ;賦初值 MOV TL1,#0B0H DJNZ R3,EXT1 ;1s到了?沒有轉去EXT1 MOV R3,#20 ;1s到了,重新賦值 DEC R4 ;1S到了R4減1
CJNE R4,#0,EXT1 ;60s到了嗎,沒有到則轉去EXT1 MOV R4,#60 ;60S到了重新賦值 DEC R5 ;60S到了R5減1
CJNE R5,#0,EXT1 ;300s到了嗎,沒有到則轉去EXT1 MOV R5,#5 ;300s到了,重新賦值 closedrelay: CLR RELAY SETB C EXT1: RETI ;中斷返回 |