打印

C8051F120产生多路pwm

[复制链接]
831|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcc2417|  楼主 | 2017-4-20 20:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

   PLL0CN |= 0x01;                     // PLL上电
   PLL0DIV = 0x01;                     // 参考时钟不分频
   PLL0FLT = 0x01;                     // 设置PLL滤波器
   PLL0MUL = 0x02;                     // 倍频系数等于2

   for (loop=0; loop < 256; loop++);   // 至少等待5us
   PLL0CN  |= 0x02;                    // PLL使能
   while(!(PLL0CN & 0x10));            // 等待PLL频率稳定
   CLKSEL  = 0x02;                     // 选择PLL振荡器

   SFRPAGE = SFRPAGE_save;             // 恢复SFR页
}

void PORT_Init (void)
{
   char SFRPAGE_save = SFRPAGE;        // 保存当前SFR页

   SFRPAGE = CONFIG_PAGE;              // 设置SFR页

   XBR0    = 0x08;                     // P0.0
   XBR1    = 0x00;
   XBR2    = 0x40;                     // 使能交叉开关

   P0MDOUT |= 0x01;                    // 设置CEX0(P0.0)为推挽方式

   SFRPAGE = SFRPAGE_save;             // 恢复SFR页
}

void PCA0_Init (void)
{
   char SFRPAGE_save = SFRPAGE;        // 保存当前SFR页

   SFRPAGE = PCA0_PAGE;                //把页码改到PCA寄存器所在的页码

   PCA0CN = 0x00;                      // 停止计数器,清除所有标志
   PCA0MD = 0x00;                      // 系统时钟12分频

   PCA0CPM0 = 0x46;                    // 频率输出模式

   PCA0CPH0 = (SYSCLK/12)/(2*CEX0_FREQUENCY);

   CR = 1;                             //启动PCA计数器

   SFRPAGE = SFRPAGE_save;             //恢复SFR页
}
如何修改生成多路PWM方波?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

21

帖子

0

粉丝