导航:首页 > 操作系统 > msp430单片机ad转换

msp430单片机ad转换

发布时间:2022-10-01 08:36:59

‘壹’ msp430 AD转换最大可转换电压是多少

AD转换电压最大电压就是参考电压.参考电压可以直接取ACC(可在寄存器中设置,430ACC最大可以3.6V),选择外部参考电压最大理论上也可以到VCC,但最好稍小点.如果用内部参考电压可选1.5V和2.5V两档.

‘贰’ msp430的AD转换

是对应的电压数据。传感器出来的已经是电压了,就是AD前端的模拟信号。你要查一下你用的AD芯片datasheet手册看一下输入AD芯片的模拟信号经过AD后换算成的数字信号是多少,如果是8位AD应该是8位2进制数噢。数码管的话去查一下数码管如何点亮的程序即可。

‘叁’ 求msp430的A/D转换C语言程序,即输入模拟电压后单片机能准确判断数字电压

此为单通道单次转换
#include<msp430x14x.h>
#define uchar unsigned char
#define uint unsigned int

void main(void)
{
uint i;
WDTCTL = WDTPW + WDTHOLD;
P6SEL |= 0x01; //使能AD通道A0
ADC12CTL0 |= ADC12ON + SHT0_2; //+ REFON + REF2_5V;
ADC12CTL1 = SHP;
ADC12MCTL0 = SREF_2; //Vr+ = Vref+
for(i = 0; i < 0x3600; i++) //为参考源启动提供延迟17ms以上
{}
ADC12CTL0 |= ENC; //使能转换
while(1)
{
ADC12CTL0 |= ADC12SC; //开启转换
while((ADC12IFG & ADC12BUSY) == 0);
_NOP();
}
}

‘肆’ MSP430 AD转换 原理

第一 你可以将A2设为ADC模式,就可以输入模拟信号。
第二 你用两节干电池供电,通常需要有DCDC稳压电路,也就是DCDC+LDO电源结构为单片机供电,这样就不会存在你担心的问题了。

‘伍’ msp430的AD转换程序中断问题“__bis_SR_register(LPM0_bits + GIE); __no_operation(); ”

__bis_SR_register(LPM0_bits + GIE); //置位SR寄存器,LPM0_bits是低功耗模式中的一种,CPU休息,具体可以查手册;GIE是打开全局中断使能

__no_operation(); //进行一个时钟周期的无操作,一般调试可以把断点打在这

这个主要是用在低功耗上,cpu不需要工作时就打到休眠,打开中断使能,等待中断产生进入中断重新工作,这样减少芯片耗电量,一般装电池的要仔细研究这个。直接电源供电的可以无视这几句,不用写

‘陆’ 求详细解释关于MSP430 AD转换 采样,每一句大概都是什么意思,小弟感激不尽

这是msp430 ad采样的中断服务程序,

其实并不难,你只要多看几个程序就会发现 这是有套路的…………

AD 转换 采样率 200HZ
/////////////////////////////////////////////
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR (void) //中断声明
{
float ADdata; // 浮点格式 数据

results[0] = ADC12MEM0; // 将A0通道的数据放入result[0] 中,
results[1] = ADC12MEM1; // 将A1通道的数据放入result[1] 中,

if (BaseParam.stats==0) //不知道变量的声明,不知道具体含义,但大概就是表示某种状态
{

//有毒气体浓度测量
ADdata = results[0] & 0x0fff;
//这个ad精度是12位的,所以与操作后,得到resluts[0]中 断后12bit数据
ADdata /= 100; //根据addata 获得lcd显示的4位数据,并显示,这个与ad 采样没有关系了
lcdData[4]=0;//'blank'
lcdData[3]=ADdata/10;
ADdata = ADdata-lcdData[3];
lcdData[2] = ADdata;
ADdata = ADdata-lcdData[2];
lcdData[1]=ADdata*10;
ADdata = ADdata-lcdData[1]*0.1;
lcdData[0]=ADdata*100;
//更新显示
lcdDatashow();

‘柒’ msp430 AD转换的原理

将A进行量化,然后再编码成D

‘捌’ 如何提高msp430单片机内部ad转换精度,思路是什么

单片机的内置AD转换位数是固定的,也就是精度基本是固定的,要想提高只能从整个系统考虑,如:
1. 提高AD前端运放电路的转换精度,尽量选用精度高的电阻和电容
2. 单片机的基准电压选高点,有助于提高抗干扰性能
3. 电源也很重要,尽量提高电源质量,如纹波等。

‘玖’ 关于msp430的AD多通道转换问题

每次都要开ADC12CTL0 |= ENC + ADC12SC; SHT0_8; 改为SHT0_12;移位求平均不精确,你可以用double型去/32 或者先*100再>>=5

‘拾’ 十万火急【msp430单片机的AD转换程序】!!!!!

这个是F247的程序。

#include "msp430x24x.h"
#define Latch_addr_H P5OUT|=0x10
#define Latch_addr_L P5OUT&=0xef
#define Latch_data_H P5OUT|=0x20
#define Latch_data_L P5OUT&=0xdf
#define uchar unsigned char
void delay(unsigned int i);
void LED_Disp(uchar pos,uchar value);
void init();
void transport();
void ADC12setup(void);
const uchar tab[11]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xfe};
uchar shuma[4]={6,7,8,9};
unsigned int shuju;

//主函数
main( void )
{
uchar m;
P5DIR |= 0x30; //定义为输出端口
P4DIR |= 0xff;
P2DIR |=0xff;
P2OUT=0xff;
init();

transport();
delay(2000);
ADC12CTL0 |= ADC12SC; //sampling open,AD转换完成后(ADC12BUSY=0),ADC12SC自动复位;
while((ADC12IFG & BIT0) == 0); //等转换结束
shuju = ADC12MEM0; //读转换数据值,同时清ADC12IFG0标志

while(1)
{
//ADC12CTL0 |= ADC12SC; //sampling open,AD转换完成后(ADC12BUSY=0),ADC12SC自动复位;
//while((ADC12IFG & BIT0) == 0); //等转换结束
//shuju = ADC12MEM0;

transport();

LED_Disp(m,shuma[m]);
delay(5);
m++;
if(m>3)
m=0;
if(m==3)
{
LED_Disp(m,10);
delay(5);
}

}
}

//初始化+采集
void init()
{
WDTCTL = WDTPW + WDTHOLD; // 停止WDT
P1DIR=0x01;P1OUT=0x0f; //LED设置
ADC12setup();
_EINT(); // 全局中断使能

}
//ADC12初始化
void ADC12setup(void)
{
//ADC12设置**************************
P6SEL |= 0x01; //使用A/D通道 A0
ADC12CTL0 = ADC12ON ; //开ADC12内核,设SHT0=2 (N=4)
ADC12CTL1 = SHP ; //SAMPCON信号选为采样定时器输出
//ADC12内部参考电压设置
ADC12CTL0 |= REF2_5V; //选用内部参考电压为2.5V
ADC12CTL0 |= REFON; //内部参考电压打开
ADC12MCTL0 |= SREF_0; //R+=3.3V R-=VSS
//转换允许
ADC12CTL0 |= ENC ; //转换允许(上升沿)
shuju=0x00;
}

//转换
void transport()
{

unsigned int q;
q=(shuju*5)/4;
shuma[0]=q%10;
shuma[1]=(q%100)/10;
shuma[2]=(q%1000)/100;
shuma[3]=q/1000;
}
//显示函数
void LED_Disp(uchar pos,uchar value)
{

P5OUT=0x00;
P4OUT=0x10<<(pos);
Latch_addr_H;
Latch_addr_L;

if( value<=10)
{
P4OUT=tab[value];
Latch_data_H;
Latch_data_L;
}
}
//延时
void delay(unsigned int i)
{ int m,n;
for(m=0;m<i;m++)
for(n=0;n<120;n++);
}
/*adc中断服务程序
#pragma vector=ADC_VECTOR//ADC 中断服务程序
__interrupt void ADC12ISR (void)
{
static unsigned int index = 0; // 中断服务程序中的静态变量

A0results[index] = ADC12MEM0; //移动A0 结果往数组,此操作的同时清除ADC12FIG.0
A1results[index] = ADC12MEM1; //移动A1 结果往数组,此操作的同时清除ADC12FIG.1
A2results[index] = ADC12MEM2; //移动A2 结果往数组,此操作的同时清除ADC12FIG.2
A3results[index] = ADC12MEM3; //移动A3 结果往数组,此操作的同时清除ADC12FIG.3
index = (index+1)%Num_of_Results; // 增加结果的索引,取index 变量的模(余数)
}
*/

阅读全文

与msp430单片机ad转换相关的资料

热点内容
什么都能看的电影网站 浏览:65
罪孽泰国版电影在线观看完整版 浏览:193
小说黄色下载 浏览:579
骑手数算法 浏览:969
安卓的前端是用什么语言 浏览:950
主角叫江南的玄幻小说 浏览:493
加密人员是干什么的 浏览:572
如何开通手机imap服务器 浏览:507
博途v151软件编译好后如何仿真 浏览:429
365还有哪几种算法 浏览:737
加密数字货币和法定货币的区别 浏览:641
加密的视频如何录屏 浏览:28
java代码在eclipse哪个文件夹 浏览:222
旧的安卓线叫什么 浏览:859
台湾红羊公司出品的电影 浏览:102
红颜玫瑰花双女主免费阅读 浏览:238
小说傻柱原着txt 浏览:967
周香允演的女上市是哪部电影 浏览:423
单片机异步通信数据格式 浏览:13
argon2d算法的币 浏览:50