cc2530 AD转换外部P0口模拟输入0V电压问题

来源:本站
导读:目前正在解读《cc2530 AD转换外部P0口模拟输入0V电压问题》的相关信息,《cc2530 AD转换外部P0口模拟输入0V电压问题》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《cc2530 AD转换外部P0口模拟输入0V电压问题》的详细说明。
简介:cc2530的AD在转换0v电压时,也就是把AD输入通道接地,会出现转换出的数据变为负数而不是0的问题,在其他电压就不会出现这种问题,不知道是不是我选的参考电压有问题

cc2530的AD在转换0v电压时,也就是把AD输入通道接地,会出现转换出的数据变为负数而不是0的问题,在其他电压就不会出现这种问题,不知道是不是我选的参考电压有问题。问题的解决方法是对转换出的二进制代码进行判断如果出现负数现将其转换成原码的形式。下面是程序

#include

#define uint unsigned int

#define uchar unsigned char

void delay(uint z)

{

uint t1,y;

for(t1=z;t1>0;t1--)

for(y=200;y>0;y--);

}

void init_CLK32()

{

CLKCONCMD&=0XBF;

while(CLKCONSTA&0X40);

CLKCONCMD&=0XF8;

}

void init_uart0()

{

PERCFG &=0xFE;//1111 1110 串口0选择备用位置1

P0SEL|=0x0C;//0000 1100IO口设置为片上外设模式

U0CSR|=0xC0;//1100 0000串口0的一般配置

U0UCR =0;

U0GCR|=8;//0000 1000波特率配置为9600

U0BAUD=59;

}

void UartTX_Send_String(uchar *Data,uchar len)

{

int j;

for(j=0;j<len;j++)

{

U0DBUF = *Data++;

while(UTX0IF == 0);

UTX0IF = 0;

}

}

void init_AD()

{

ADCCON3=0X37;//0011 0100 内部产考电压,14分辨率, p0_0模拟输入

P0SEL|=0X80; //1000 0000

P0DIR&=0X7F; //0111 1111

APCFG|=0X80;//0010 0001

ADCCFG|=0X80;

}

float get_AD()

{

uint value;

uchar adc_h;

uchar adc_l;

ADCCON3=0XB7;//0011 0111 内部产考电压,14分辨率, p0_0模拟输入

P0SEL|=0X80; //1000 0000

P0DIR&=0X7F; //1101 1111

APCFG|=0X80;//0010 0001

ADCCFG|=0X80;

ADCCON1|=0X30;

ADCCON1|=0X40;//AD启动方式

while(!(ADCCON1&0X80));

adc_h=ADCH;

adc_l=ADCL;

if(adc_h&0X80)

{

adc_h =~(adc_h-1);

adc_l =~(adc_l);

}

value = adc_h;

value = value<<6;

value|=adc_l>>2;

return (float)(value/(float)8191)*3.3;

}

void main()

{

uchar tempdata[6];

float x=0;

init_CLK32();

init_uart0();

init_AD();

while(1)

{

x=get_AD();

tempdata[0]=(uchar)(x)%10+48;

tempdata[1]='.';

tempdata[2]=(uchar)(x*10)%10+48;

tempdata[3]=(uchar)(x*100)%10+48;

tempdata[4]='v';

tempdata[5]='n';

UartTX_Send_String(tempdata,6);

delay(2000);

}

}

提醒:《cc2530 AD转换外部P0口模拟输入0V电压问题》最后刷新时间 2024-03-14 01:05:43,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《cc2530 AD转换外部P0口模拟输入0V电压问题》该内容的真实性请自行鉴别。