pca_pwm.c
来自「C8051实现PWM波形驱动程序」· C语言 代码 · 共 66 行
C
66 行
#include<c8051f120.h>
#include<absacc.h>
#define uchar unsigned char
#define C_ADD XBYTE[0x7100]
#define D_ADD XBYTE[0x7000]
/*------------------------------------------------------------------------------------------
**函数名:ADBusInit
**功能:外部地址数据总线初始化函数
**参数:无
返回:void
----------------------------------------------------------------------------------------*/
void ADBusInit(){
uchar old_SFRPAGE;
old_SFRPAGE=SFRPAGE;
SFRPAGE=EMI0_PAGE;//SFRPAGE为0
EMI0CF=0x24;//00100100B,外部存储器配置 端口P4---P7,复用方式,不带块选择的分片方式
EMI0TC=0x6d; //外部存储器时须控制 地址建立和保持时间占用一个SYSCLK周期 /WR和/RD占用12个SYSCLK周期
SFRPAGE=old_SFRPAGE;
}
/*------------------------------------------------------------------------------------------
**函数名:PortInit
**功能:端口初始化函数
**参数:无
返回:void
----------------------------------------------------------------------------------------*/
void PortInit(){
uchar old_SFRPAGE;
old_SFRPAGE=SFRPAGE;
ADBusInit();
WDTCN=0xde;
WDTCN=0xad;
SFRPGCN=0x01;//允许自动切换
SFRPAGE= CONFIG_PAGE;
P1MDOUT=0x08;
P4MDOUT=0xff;
P5MDOUT=0xff;
P6MDOUT=0xff;//推挽输出
P7MDOUT=0xff;
XBR0=0x08;
XBR2 = 0x42;
OSCICN = 0x82;
SFRPAGE=old_SFRPAGE;
}
void PCA_Init(){
uchar old_SFRPAGE;
old_SFRPAGE=SFRPAGE;
SFRPAGE= PCA0_PAGE;
PCA0CPM0=0x42;
PCA0MD=0x00;
PCA0CPL0=50;
PCA0CPH0=50;
CR=1;
SFRPAGE=old_SFRPAGE;
}
void main(){
uchar y=0;
PortInit();
PCA_Init();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?