📄 c8051f020pca.c
字号:
#include<c8051f020.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay_us(uchar i) //延时【(us+1)*6+2】/12个微秒
{
while(i--);
}
void delay_ms(uchar ms) //约延时1.002*ms个毫秒
{
uchar i;
while(ms--)
for(i=0;i<89;i++) //for循环约延时1002微秒
delay_us(19); //延时约10.166667微妙
}
void Init_C8051F020()
{
uchar n;
WDTCN=0XDE; //禁用看门狗
WDTCN=0XAD;
XBR0=0X28; //将CEX0配置到P0.0,CEX1配置到P0.1,CEX2配置到P0.2,依次到CEX4
XBR1=0X00;
XBR2=0XC0;
P0MDOUT=0X00;
P1MDIN =0XFF;
P1MDOUT=0X00;
P2MDOUT=0X00;
P2MDOUT=0X00;
OSCICN=0X04;
/* OSCXCN=0X67;
for(n=0;n<255;n++) //等待晶振稳定
while((OSCXCN&0X80)==0);
OSCICN=0X08; //选择外部振荡器 */
}
void Config_PCA()
{
PCA0MD=0X80;
PCA0CPM0=0X10; //模块0工作在负延捕捉方式
PCA0CPM1=0X48; //模块1工作在软件定时器方式
PCA0CPM2=0X4C; //模块2工作在高速输出方式
PCA0CPM3=0X46; //模块3工作在频率输出方式
PCA0CPM4=0XC2; //模块4工作在16位PWM方式
PCA0CPL4=0X00;
PCA0CPH4=0X80;
}
void main(void)
{
Init_C8051F020();
Config_PCA();
CR=1;
while(1)
{
delay_ms(10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -