宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 单片机中文指南
90
PCA_init: ;PCA 初始化程序
MOV CMOD, #00000010B ;02H,PCA 计数器在空闲模式下继续工作, CIDL = 0
;PCA 计数器计数脉冲来源为系统时钟源 fosc/2, CPS1, CPS0 = (0,1)
;禁止 PCA 计数器(CH, CL)计数溢出(CH, CL=0000H)中断, ECF = 0
MOV CCON, #00H ;清除 PCA 计数器(CH, CL)计数溢出中断标志, CF = 0
;停止 PCA 计数器(CH, CL)计数, CR = 0
;清除 模块 1 中断标志, CCF1 = 0
;清除 模块 0 中断标志, CCF0 = 0
MOV CH, #00H ;清 0 PCA 计数器高 8 位
MOV CL, #00H ;清 0 PCA 计数器低 8 位
;-------------------------
;设置模块 1 为高速脉冲输出模式, 脉冲在 P3.5(第 9 脚)输出
MOV CCAPM1, #01001101B ;4DH, 设置 PCA 模块 1 为高速脉冲输出模式,允许触发中断
;CCAPMn: 7 6 5 4 3 2 1 0
; - ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn
; 0 1 0 0 1 1 0 1
MOV CCAP1L, #CCAPnL_Value ;给模块 1 置初值, 此句不可少
MOV CCAP1H, #0 ;给模块 1 置初值, 此句不可少
;其它中断服务可能会使模块 1 高速脉冲输出的某个周期突然变得很大,因此必须将
;PCA 中断的优先级设置为唯一的最高级, 其它中断的优先级都要比它低。
MOV IPH, #01000000B ;PCA 中断的优先级设置为唯一的最高级
MOV IP, #01000000B
SETB EPCA_LVD ;开 PCA 中断
SETB EA ;开总中断
SETB CR ;将 PCA 计数器打开
RET
;------------------------------------------------------------
END
;------------------------------------------------------------