宏晶科技: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 ;*** 示例程序核心语句