📄 pcapwm16.c
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
//文件名: PCApwm16.c
//
//编写人: LC
//
//编写时间:2005/03/10
//
//目标器件: C8051F02x
//
//编译工具: Silicon Laboratories IDE
//
//程序说明: 此程序实现PCA的16位PWM输出,输出脚配置在P0.0脚。
#include <c8051f020.h> /*SFR定义*/
//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------
void PORT_Init (void);
void PCA_Init (void);
void PCA_ISR (void);
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main (void) {
/*关看门狗*/
WDTCN = 0xde;
WDTCN = 0xad;
PORT_Init (); /*初始化IO口*/
PCA_Init (); /*PCA初始化成16位脉宽调置方式*/
EA = 1; /*开总中断*/
while (1) {
}
}
void PORT_Init (void)
{
XBR0 = 0x08; /*CEX0-->P0.0*/
XBR2 = 0x40; /*使能交叉开关和弱闪拉*/
P1MDOUT |= 0x40; /*使能P1.6脚推挽输出*/
}
void PCA_Init (void)
{
EIE1 = 0x08;
//PCA0MD = 0x01; /*PCA定时器/计数器溢出中断禁止*/
PCA0L = 0x00;
PCA0H = 0x00;
PCA0CPM0 = 0xcb; /*16位PWM方式,当CCF0=1时,允许辅捉/比较标志的中断申请*/
PCA0CPL0 = 0x00; /*置初值*/
PCA0CPH0 = 0x80;
PCA0CN = 0x40; /*允许PCA定时器/计数器*/
}
/*PCA中断子程序*/
void PCA_ISR (void) interrupt 9
{
CF = 0; /*清溢出中断标志*/
CCF0 = 0; /*清匹配中断标志*/
//PCA0L = 0x00;
//PCA0H = 0x40;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -