|
Press控制板之實作報告
|
| 指撥開關計數器 |
程式名稱 : counter.zip (下載) ;動作方式 ;<1> START ON/OFF 起動計數 ;<1> 讀入第一位數指撥開關數值,放在 R0 ;<2> COUNTIN 開始計數比較數指撥開關數值 == <3> ;<3> RELAY1 閃爍指撥開關數值次數 ;<4> 回到<1>重復 CHIP 80152 PP0 EQU 080H PP2 EQU 0A0H DELTIM EQU 30H DELTIM_REG EQU 31H WATCHDOG REG PP2.7 RELAY1 REG P3.4 ; P3.4 RELAY1 RELAY2 REG P3.5 ; P3.5 RELAY1 START REG PP0.0 ; P0.0 START ON/OFF 起動計數 COUNTIN REG PP0.1 ; P0.1 計數輸入 ON/OFF 加一 ;============================================================================ ORG 0H ;============================================================================ AGAIN: CPL WATCHDOG MOV P1,#11110000B MOV P0,#11111111B CALL DEL ;============================================================================ MOV P1,#11110000B WORK: CPL WATCHDOG ;起動計數 JNB START,WORK CALL DEL1 JNB START,WORK WORK10: CPL WATCHDOG JB START,WORK10 CLR RELAY2 SETB RELAY1 CALL READ_DL ;讀入第一位數指撥開關數值,放在 R0 MOV R1,R0 WORK20: ;比較計數值 CPL WATCHDOG CALL COUNT DJNZ R1,WORK20 SETB RELAY2 MOV R1,R0 WORK30: ;RELAY1 閃爍指撥開關數值次數 CPL WATCHDOG CALL FLASH DJNZ COUNREG,WORK30 JMP WORK ;============================================================================ FLASH: CPL WATCHDOG CLR RELAY1 CALL DEL SETB RELAY1 CALL DEL RET ;============================================================================ ;計數一次 COUNT: CPL WATCHDOG JNB COUNTIN,COUNT CALL DEL1 JNB COUNTIN,COUNT COUNT10: CPL WATCHDOG JB COUNTIN,COUNT10 CALL DEL1 JB COUNTIN,COUNT10 RET ;============================================================================ DEL1: MOV R3,#020H DEL1A: MOV R4,#0FFH DEL1B: CPL WATCHDOG DJNZ R4,DEL1B DJNZ R3,DEL1A RET ;============================================================================ DEL: MOV R3,#0FFH DELA: MOV R4,#0FFH DELB: CPL WATCHDOG DJNZ R4,DELB DJNZ R3,DELA RET ;============================================================================ DEL_RD: MOV R4,#20 DEL_RD2: DJNZ R4,DEL_RD2 RET ;============================================================================ ;讀入第一位數指撥開關數值,放在 R0 ;P1 = 11110001B READ_DL: MOV P1,#11110001B CALL DEL_RD MOV A,P1 CPL A SWAP A ANL A,#00001111B MOV R0,A RET |
|
<<商標聲明>>
本網站於瀏覽者顯示器所出現之商標,皆為所屬公司之註冊商標,絕無侵犯之意。 建議使用I.E 4.0以上版本瀏覽器解析度1024*768觀看 |