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

📄 12ad7841.c

📁 ADC7841 为12位4通道串行AD转换
💻 C
字号:

#include "SPCE061A.h"

unsigned int shuma[]={unsigned int shuma[]={0x003F,0x0006,0x005B,0x004F,0x0066,0x006D,0x007D,0x0007,0x007F,0x006F,0x006f};


//入口参数 选择AD的通道

unsigned int ADS7841(unsigned char Channel)
{
	unsigned int dclk,dout,busy;
	unsigned int ADCResult=0; 
	unsigned char DataInput=0; 
	unsigned char i,ADS7841_CHANNEL; 
	
//	*P_IOA_Data &=0xfffb; //cs=L
	
	
	switch(Channel)
	{
		case 0:	ADS7841_CHANNEL=0x10;break;
		case 1:	ADS7841_CHANNEL=0x50;break; 
		case 2:	ADS7841_CHANNEL=0x20;break; 
		case 3:	ADS7841_CHANNEL=0x60;break; 
		default:ADS7841_CHANNEL=0x10;break;
	}
	
	//	DataInput=ADS7841_S|ADS7841_CHANNEL|ADS7841_MODE|ADS7841_SGL_DIF|ADS7841_POWER_DOWN;
	DataInput=0x88|ADS7841_CHANNEL;
	
	*P_IOA_Data &=0xfff7;   //cs=L
	*P_IOA_Data &=0xfffb;   //din=L
	*P_IOA_Data &=0xffef;   //dclk=L
	for(i=0;i<8;i++)	   //模拟SPI串行接口 发送数据 	
	{
		DataInput &=0x80;
		DataInput=DataInput<<1; 
		*P_IOA_Data &=0xffef;   //dclk=L
		__asm("nop");
		__asm("nop");
		*P_IOA_Data |=0x0010;   //dclk=H 						
	}
	
	*P_IOA_Data &=0xfff7;   //dclk=L
	
	while(*P_IOA_Data&0x0010)   //判断是否转换完成
	{
		__asm("nop");
		__asm("nop");
		*P_IOA_Data |=0x0010;   //dclk=H 
		__asm("nop");
		*P_IOA_Data &=0xffef;   //dclk=L
		delay(1);
	}
	delay(2);
	for(i=0;i<12;i++)
	{
		*P_IOA_Data |=0x0010;   //dclk=H
		dout=*P_IOA_Data&0001;  //
		ADCResult=(ADCResult<<1)|dout;
		*P_IOA_Data &=0xffef;   //dclk=L
		delay(1);
	}
	
	for(i=0;i<4;i++)
	{
		*P_IOA_Data |=0x0010;   //dclk=H
		delay(1);
		*P_IOA_Data &=0xffef;   //dclk=L
		delay(1);			
	}
	
	*P_IOA_Data &=0xfff7;   //cs=L
	return ADCResult;
	
}

void delay(unsigned int num)
{
	//unsigned int i;
	while(num--)
	*P_Watchdog_Clear=0x0001;	
}


/*void data_deal(unsigned int data_12)
{
	unsigned int data_16,tho,hum,ten,gewei;
	data_16=data_12&0x0fff;
	data_16=data16*100/4200;
	tho=data/1000;
	hum=data%1000/100;
	ten=data/100%10;
	gewei=data%10;
    
}
*/

//显示
void Led_Show(unsigned int data)
{
	unsigned int i;
	
	switch(key)
	{
		case 0:
			*P_IOA_Data=shuma[0];
			delay();
			break;
			
		case 1:
			*P_IOA_Data=shuma[1];
			delay();
			break;
		case 2:
			*P_IOA_Data=shuma[2];
			break;
		case 3:
			*P_IOA_Data=shuma[3];
			break;
		case 4:
			*P_IOA_Data=shuma[4];
			break;
		case 5:
			*P_IOA_Data=shuma[5];
			break;
		case 6:
			*P_IOA_Data=shuma[6];
			break;
		case 7:
			*P_IOA_Data=shuma[7];
			break;
		case 8:
			*P_IOA_Data=shuma[8];
			break;
		case 9:
			*P_IOA_Data=shuma[9];
			break;
		default : break;
			
	}
		
}

⌨️ 快捷键说明

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