#define ALLOCATE_EXTERN
#include "HC89F1603.h"
/***************************************************************************************
* @实现效果 P22,P11输出频率为1.955KHz,占空比为33.3%的方波
***************************************************************************************/
void main()
{
/************************************系统初始化****************************************/
WDTCCR = 0x00; //关闭看门狗
//本例程为方便测试关闭看门狗,实际使用中,建议客户打开看门狗,详见WDT复位例程
CLKSWR = 0x51; //选择内部高频RC为系统时钟,内部高频RC 2分频,Fosc=16MHz
CLKDIV = 0x01; //Fosc 1分频得到Fcpu,Fcpu=16MHz
/*************************************PWM初始化****************************************/
P2M1 = P2M1&0xF0|0x08; //P22设置为推挽输出
P1M0 = P1M0&0xF0|0x08; //P10设置为推挽输出
PWM0_MAP = 0x22; //PWM0通道映射P22口
PWM01_MAP = 0x10; //PWM01通道映射P10口
//独立模式下,PWM0和PWM01共用一个周期寄存器
//PWM0的占空比调节使用 PWM0组的占空比寄存器
//PWM01的占空比调节使用 PWM0组的死区寄存器
//周期计算 = 0x03ff / (Fosc / PWM分频系数) (Fosc见系统时钟配置的部分)
// = 0x03ff / (16000000 / 8)
// = 1023 /2000000
// = 511.5us 约1.955kHz
PWM0PH = 0x03; //周期高4位设置为0x03
PWM0PL = 0xFF; //周期低8位设置为0xFF
//占空比计算= 0x0155 / (Fosc / PWM分频系数) (Fosc见系统时钟配置的部分)
// = 0x0155 / (16000000 / 8)
// = 341 / 2000000
// = 170.5us 占空比为 170.5/511.5 = 33.3%
PWM0DH = 0x01; //PWM0高4位占空比0x01
PWM0DL = 0x55; //PWM0低8位占空比0x55
PWM0DTH = 0x01; //PWM01高4位占空比0x01
PWM0DTL = 0x55; //PWM01低8位占空比0x55
PWM0C = 0x01; //PWM0高有效,PWM01高有效,时钟8分频
PWM0EN = 0x0F; //使能PWM0,工作于独立模式
while(1);
}
里面0X03FF怎么来的,规格书也没有看到,还有0X01和0X55这个怎么来的,规格书不详细,dmeo也不是很明白 ,芯片型号HC89F1603 |