background image
宏晶科技: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
;------------------------------------------------------------