- 註冊時間
- 2006-8-16
- 最後登錄
- 2025-7-19
- 主題
- 查看
- 積分
- 312
- 閱讀權限
- 60
- 文章
- 206
- 相冊
- 0
- 日誌
- 0
 
狀態︰
離線
|
ORG 00H
START:
MOV P3,#FFH
MOV P2,#FFH
JNB P3.1,LED1
JNB P3.2,LED2
JNB P3.3,LED3
JNB P3.4,LED4
JMP START
LED1:
MOV P2,#00H
ACALL DELAY1
MOV P2,#FFH
ACALL DELAY
JNB P3.1,LED1
JMP START
DELAY1:
MOV R6,#20
S1:
MOV R7,#25
DJNZ R7,$
DJNZ R6,S1
RET
LED2:
MOV P2,#00H
ACALL DELAY2
MOV P2,#FFH
ACALL DELAY
JNB P3.2,LED2
JMP START
DELAY2:
MOV R6,#20
S2:
MOV R7,#5
DJNZ R7,$
DJNZ R6,S2
RET
LED3:
MOV P2,#00H
ACALL DELAY3
MOV P2,#FFH
ACALL DELAY
JNB P3.3,LED3
JMP START
DELAY3:
MOV R6,#10
S3:
MOV R7,#4
DJNZ R7,$
DJNZ R6,S3
RET
LED4:
MOV P2,#00H
ACALL DELAY4
MOV P2,#FFH
ACALL DELAY
JNB P3.4,LED4
JMP START
DELAY4:
MOV R6,#10
S4:
MOV R7,#1
DJNZ R7,$
DJNZ R6,S4
RET
DELAY:
MOV R6,#20
S:
MOV R7,#25
DJNZ R7,$
DJNZ R6,S
RET
END
以上是我之前寫的,確定可以用,用的是比較笨的方法,一目瞭然。
用P3.1~P3.4做控制,也就是有四段不同佔空比,頻率會變動,主要是因為高電位持續時間不變,只變動低電位時間所致。
如果要更改頻率和佔空比,直接修改各個延遲副程式中的R6或R5的值就可
|
|