?? wpca1pwm16.#1
字號:
;參考程序A:WPCA1pwm16.ASM程序實現PCA模塊1的16位PWM輸出,輸出腳CEX1配置在P0.1腳。輸出方波占空比為1/2
$include (c8051f020.inc) // SFR declarations
ORG 0
AJMP main
ORG 4BH
AJMP PCA_ISR
ORG 0100H
main: MOV WDTCN,#0deH ;關看門
MOV WDTCN,#0adH
LCALL PORT_Init ;初始化IO口
LCALL PCA_Init ;PCA初始化成16位脈寬調置方式
SETB EA ;開總中斷
AJMP $
PORT_Init:;初始化I/O口
MOV XBR0,#20H ;CEX0-->P0.0,CEX0-->P0.1,CEX0-->P0.2,CEX0-->P0.3
MOV XBR2,#40H ;使能交叉開關和弱上拉
RET
PCA_Init:;初始化PCA
MOV EIE1,#08H ;允許PCA0中斷
MOV OSCICN ,#017H ;使用內部振蕩器,頻率為16MHZ
MOV PCA0MD ,#09; PCA方式選擇:使用系統時鐘,允許 CCF1申請中斷
MOV PCA0L,#00H ;設置定時器/計數器初值:0000H
MOV PCA0H,#00H
MOV PCA0CPM1,#0cbH ;PCA模塊1為16位PWM方式,當CCF1=1時,允許中斷申請
MOV PCA0CPL1,#00H ;設置捕捉/比較寄存器初值:8000h
MOV PCA0CPH1,#80H
MOV PCA0CN,#42H ;允許PCA模塊1定時器/計數器, CCF1置1時產生中斷.
RET
PCA_ISR:;PCA中斷子程序
CLR CF ;清溢出中斷標志
CLR CCF1 ;清匹配中斷標志
RET
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -