📄 pcapwm8.c
字号:
/***************************************************************
功能:实现用PCA在P0.0输出8位PWM信号,可用示波器观察占空比变化
作者:ZDP
时间:2005-11-30
版本:V1.0
***************************************************************/
#include <c8051f020.h> /*SFR定义*/
#include <INTRINS.H>
//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------
void PORT_Init (void);
void PCA_Init (void);
void PCA_ISR (void);
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
void main (void)
{ unsigned char a =0;
unsigned long b;
bit PWM_PAC;
/*关看门狗*/
WDTCN = 0xde;
WDTCN = 0xad;
PORT_Init (); /*初始化I/O口*/
PCA_Init (); /*PCA初始化成8位脉宽调置方式*/
while (1)
{
if(PWM_PAC==0) //占空比由0 >>0xfe
{
PCA0CPH0=a;
a++;
if(a==0xfe){PWM_PAC=1;}
}
else //占空比由0xfe >>0
{
PCA0CPH0=a;
a--;
if(a==0){PWM_PAC=0;}
}
for(b=0;b>0xffffffff;b++)//延时
{
_nop_();
}
}
}
//配置I/O端口
void PORT_Init (void)
{
XBR0 = 0x08; /*CEX0-->P0.0*/
XBR2 = 0x40; /*使能交叉开关和弱闪拉*/
P0MDOUT |= 0x01; /*使能P0.0脚推挽输出*/
}
//配置PCA的CEX0输出8位PWM信号
void PCA_Init (void)
{
PCA0CN = 0x40;
PCA0CPM0 = 0x42;
PCA0CPL0 = 0x00;
PCA0CPH0 = 0x00;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -