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

📄 adc_config.c

📁 菜鸟,详细NRF24E1运用,程序,电路
💻 C
字号:

#include "reg24le1.h"		   //头文件包含定义寄存器地址
#include "conf.h"			   //下面那些函数的包含头文件

/**AD功能配置函数***/
/*函数名称:adc_config();传递的参数无,用于初始化AD转换**/

void adc_config()
{
 ADCCON2=0X00;                 //设置成单步转换并使能,速度为2ksps
 ADCCON3|=0XE0;				   //精度12bit,数据右对齐
 ADCDATH&=0XF0;				   //转换结果寄存器清0
 ADCDATL&=0X00;
 P0DIR|=0X07;				   //设置转换的输入通道为0,1,2
 P0&=0XF8;				       //端口初始化为低
 }

/***串口初始化函数***/
/***函数名称: uart_init();传递的参数无,用于串口的初始化*/

void uart_init()
{
    CLKCTRL = 0x28;			   // 使用 XCOSC16M  	
	CLKLFCTRL = 0x01; 

	P0DIR &= 0xF7;				// P03 (TxD) 
  	P0DIR |= 0x10;     			// P04 (RxD) 
	P0|=0x18;	 
		
	S0CON = 0x50;  
   	PCON |= 0x80; 				// 倍增
  	WDCON |= 0x80;   			// 选用内部波特率发生器
	
	S0RELH = 0x03; 	
  	S0RELL = 0xF3;              // 设置波特率为38400	 
}

/*通过串口发送一个字符到串口终端*/

void send(char ch)				//通过串口发送一个字符
{
S0BUF=ch;
while(!TI0);					//等待发送完成
TI0=0;
}

/*读取AD转换结果的功能函数,pip_num保存通道号,返回AD转换的结果*/
/*通过定义的静态变量来循环读取0.1.2三个通道*/
unsigned int readadc(unsigned char* pip_num)
{
 unsigned int res=0;
 static unsigned char num=0;
 ADCCON1=BIT7+(num<<2)+BIT0;    //设置转换的通道,设置参考,以及启动
 while(!(ADCCON1&BIT6));		//等待启动
 while((ADCCON1&BIT6));			//等待完成转换
 res=ADCDATL+(ADCDATH&0X0F)*256;//读取结果
 *pip_num=num;					//保存当前通道号
 num++;
 num=num%3;						//计算下一个需要转换的通道
 return res;
}

/*软件延时函数,通过设置内部循环的次数来决定延时的时间*/
void delay(unsigned int dx)		//软件延时函数
{
unsigned int di;
  for(;dx>0;dx--)
    for(di=120;di>0;di--)
	    {
		;
		}

}

⌨️ 快捷键说明

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