📄 init.c
字号:
/*********************************************************************/
//系统时钟、端口、AD、DA、TIMER、PCA初始化
/*********************************************************************/
#include<C8051F000.h>
#include<define.h>
void SYSCLK_Init()
{
OSCICN=OSCICN|0x03; //启用内部晶振16MHZ
}
void PORT_Init()
{
XBR0=0x10; //连接CEX0、CEX1
XBR1=0x00;
XBR2=0x40;
PRT0CF=0xFF; //PO推挽输出
}
/*void ADC_Init()
{
ADC0CN=0x05; //ADC0禁止定时器3触发左对齐
REF0CN=0x07; //允许温度传感器工作
AMX0SL|=0x00; //选择通道0作为AD输入
ADC0CF=0x80; //分频系数(为16〕与增益(为2)设置
EIE2|=0x02; //允许ADC中断
}
void DAC0_Init()
{
DAC0CN=0x84; //DAC允许,左对齐方式
}
void Timer3_Init(unsigned int counts)
{
TMR3CN=0x02; //停止定时器3,清除TF3,系统时钟为时基
TMR3RL=~counts+1; //赋初值
TMR3=TMR3RL;
EIE2&=!0x01; //关T3中断
TMR3CN|=0x04; //启动T3
}*/
void PCA_Init()
{
PCA0MD=0x02; //CPU等待时PCA0正常工作;系统时钟的1/4为计数脉冲源溢出中断禁止
PCA0CPM0=0x02; //模块0:8位脉宽调制方式、脉宽调制允许、电平切换匹配中断禁止
PCA0CPM1=0x02; //模块1
// EIE1|=0x08; //允许PCA0中断
CR=0; //关PCA0
}
void space_rate(unsigned char space) //占空比设定
{
PCA0CPL0=space;
PCA0CPH0=space;
PCA0CPL1=space;
PCA0CPH1=space;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -