background image
宏晶科技:www.MCU-Memory.com   Mobile:13922805190(姚永平)   Tel:0755-82948409    Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商   www.MCU-Memory.com   STC12C5410AD 系列 1T 8051 单片机中文指南
84
;STC12C5410AD  系列单片机 PCA  功能
PWM  示例程序,使用 18.432MHz 晶振。
;------------------------------------------------------------
#include <..\STC12_PCA_SFR.ASM>    ;定义 PCA 特殊功能寄存器
;------------------------------------------------------------
;定义常量
;pulse_width_MAX = pulse_width_MIN 时,  输出脉冲宽度不变。
pulse_width_MAX   EQU   0F0H        ;PWM 脉宽最大值, 占空比 = 93.75%
pulse_width_MIN   EQU   10H         ;PWM 脉宽最小值, 占空比 = 6.25%
step              EQU   38H         ;PWM 脉宽变化步长
;------------------------------------------------------------
;定义变量
pulse_width     EQU  30H
;------------------------------------------------------------
    ORG 0000H
    AJMP  main
;------------------------------------------------------------
    ORG 0050H
main:
    MOV   SP, #0E0H
    ACALL PCA_init
main_loop:
    ACALL PWM
    SJMP  main_loop
;------------------------------------------------------------
PCA_init:
    MOV   CMOD, #80H;           ;PCA 在空闲模式下停止 PCA 计数器工作
                                ;PCA 时钟模式为 fosc/12
                                ;禁止 PCA 计数器溢出中断
    MOV   CCON, #00H            ;禁止 PCA 计数器工作, 清除中断标志、计数器溢出标志
    MOV   CL, #00H              ;清 0 计数器
    MOV   CH, #00H
;-------------------------
;设置模块 0 为 8  位 PWM  输出模式, PWM  无需中断支持。脉冲在 P3.7(第 11 脚)输出
    MOV   CCAPM0, #42H          ;*** 示例程序核心语句, ---->0100,0010
    MOV   PCA_PWM0, #00H        ;*** 示例程序核心语句
;   MOV   PCA_PWM0, #03H        ;释放本行注释, PWM 输出就一直是 0, 无脉冲。
;-------------------------
;设置模块 1 为 8  位 PWM  输出模式, PWM  无需中断支持。脉冲在 P3.5(第 9 脚)输出
    MOV   CCAPM1, #42H          ;*** 示例程序核心语句, ---->0100,0010
    MOV   PCA_PWM1, #00H        ;*** 示例程序核心语句
  STC12C5410AD 系列单片机 PCA 功能 PWM 输出程序