background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
95
;--------------------
;请注意 T0 溢出率变低后定时器脉冲的 LED 闪烁速度变慢,  而 PWM  的 LED  亮度未改变
    MOV   TH0, #Timer0_Reload_2 ;T0 溢出率低
    MOV   TL0, #Timer0_Reload_2
   
 ACALL delay
;############################################
    SJMP  MAIN_Loop             ;无限循环。
;------------------------------------------------------------------------------
RL_A:
    CLR   C
    RRC   A
    RET
;------------------------------------------------------------------------------
Timer0_Initiate:
;初始化 T0,  其溢出脉冲作 PCA  计数器(CH,CL)的时钟源
    MOV   TMOD, #02H             ;设置定时器 0 为自动重装工作模式
    MOV   TH0, #Timer0_Reload_1
    MOV   TL0, #Timer0_Reload_1
    SETB  TR0                    ;启动定时器 0
    RET
;------------------------------------------------------------------------------
PCA_Initiate:
;   MOV   CMOD, #10000000B  ;PCA 在空闲模式下停止 PCA 计数器工作
;                           ;PCA 时钟源为 fosc/12
;                           ;禁止 PCA 计数器溢出(CH,CL 由 FFFFH 变为 0000H 时)中断
    MOV   CMOD, #10000100B ;PCA 在空闲模式下停止 PCA 计数器工作
                           ;PCA 时钟源为 定时器 0 (T0) 的溢出率
                           ;禁止 PCA 计数器溢出(CH,CL 由 FFFFH 变为 0000H 时)中断
    MOV   CCON, #00H       ;CF = 0,清 0 PCA 计数器溢出中断请求标志位
                           ;CR = 0, 不允许 PCA 计数器计数
                           ;清 0 PCA 各模块中断请求标志位,如 CCF1,CCF0
    MOV   CL, #00H         ;清 0 PCA 计数器
    MOV   CH, #00H
;-------------------------
;设置模块 0 为 8  位 PWM 输出模式, PWM 无需中断支持。脉冲在 P3.7(第 11 脚)输出
    MOV   CCAPM0, #42H          ;*** 示例程序核心语句, 设置模块 0 为 8 位 PWM 输出模式
    MOV   PCA_PWM0, #00H        ;*** 示例程序核心语句, 清 0 PWM 模式下的第 9 位
;   MOV   PCA_PWM0, #03H        ;释放本行注释, PWM 输出就一直是 0, 无脉冲。
    MOV   CCAP0H, #PWM_PULSE_WIDTH ;*** 示例程序核心语句