⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcu_init.c

📁 ad9851应用
💻 C
字号:
/***********************************************************************************************/
// 									初始化模块
//		模块功能:时钟初始化、端口初始化、串口(UART)初始化、AD-DA初始化、定时器(T3)初始化
//		          PCA初始化
/***********************************************************************************************/
#include<MCU_Init.h>
#include<C8051F000.h>
//--------------------------------------------------------------------------------------------------/
//									时钟初始化
//--------------------------------------------------------------------------------------------------/
void SYSCLK_Init()																//时钟初始化
{
	OSCICN=OSCICN|0x03;															//启用内部晶振16MHZ
}
//--------------------------------------------------------------------------------------------------/
//									端口初始化
//--------------------------------------------------------------------------------------------------/
void PORT_Init()																//端口初始化
{
	XBR0=0x00;
	XBR1=0x00;
	XBR2=0x40;
	PRT0CF=0xFF;																//PO推挽输出
	PRT1CF=0xFF;																//PO推挽输出
	PRT3CF=0xff;																//P3设置为推挽输出
	P0=0x0F;																	//用于键盘判断
	P1=0x0ff;
}
//--------------------------------------------------------------------------------------------------/
//									串口初始化
//--------------------------------------------------------------------------------------------------/
void Uart_Init()																//串口初始化
{
	TMOD=0x20;																	//定时器T1方式2,作波特率发生器(若用T2:TCON.5、TCON.4须置1)
	TH1=0xe8;
	TL1=0xe8;
	PCON=0x00;
	TR1=1;
	SCON=0x50;																	//UART方式1(方式2、方式3适于多机通讯(SM2))
}
//--------------------------------------------------------------------------------------------------/
//									ADC初始化
//--------------------------------------------------------------------------------------------------/
void ADC0_Init()	  															//ADC初始化
{
	ADC0CN=0x00;																//ADC0禁止、ADCBUSY写1、数据右对齐
	REF0CN=0x03;																//AD基准选择:内部基准源
	AMX0CF=0x00;																//ADC输入方式选择:单端输入
	AMX0SL=0x00;																//选择通道0作为电压AD输入 AMX0SL=0x01;
	ADC0CF=0x80;																//分频系数(为16〕与增益(为1)设置
	EIE2&=0xFD;																	//禁止ADC中断
}
//--------------------------------------------------------------------------------------------------/
//									定时器3初始化
//--------------------------------------------------------------------------------------------------/
void Timer3_Init(unsigned int counts)
{
	TMR3CN=0x02;								//停止定时器3,清除TF3,系统时钟为时基
	TMR3RL=~counts+1;							//赋初值 
	TMR3=TMR3RL;
	EIE2&=!0x01;								//关T3中断
	TMR3CN|=0x04;								//启动T3
}

//--------------------------------------------------------------------------------------------------/
//									DAC初始化
//--------------------------------------------------------------------------------------------------/
void DAC_Init()																	//DAC初始化
{
	DAC0CN=0x81;																//DAC允许, 右对齐方式
}

//--------------------------------------------------------------------------------------------------/
//									PCA初始化
//--------------------------------------------------------------------------------------------------
void PCA_Init()
{
	
	PCA0MD=0x03;								//CPU等待时PCA0正常工作;系统时钟的1/4为计数脉冲源溢出中断允许 
	PCA0CPM0=0x02;								//模块0:8位脉宽调制方式、脉宽调制允许、电平切换匹配中断禁止
	PCA0CPM1=0x61;								//模块1:正边沿捕捉方式、匹配中断允许
	EIE1|=0x08;									//允许PCA0中断
	PCA0CPH0=0xd0;							
	CR=0;										//关PCA0
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -