導航:首頁 > 操作系統 > 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轉換相關的資料

熱點內容
程序員用得到數字區嗎 瀏覽:174
python求商 瀏覽:478
ipad能用c語言編譯器嗎 瀏覽:565
軟泥解壓球最新版 瀏覽:999
4萬程序員辭職創業 瀏覽:760
thinkingphp 瀏覽:597
安卓相冊移動文件夾 瀏覽:7
耳朵清潔解壓聲控99的人都睡得著 瀏覽:206
叉車出租網站源碼 瀏覽:874
共享單車的app是什麼 瀏覽:409
不帶gui的伺服器什麼意思 瀏覽:374
金剛經及PDF 瀏覽:102
php中冒號 瀏覽:359
php5432 瀏覽:353
命令在哪使用 瀏覽:172
php獲取網頁元素 瀏覽:709
為什麼需要硬體驅動編譯 瀏覽:886
pm編程怎樣看導柱孔對不對稱 瀏覽:139
農業大學選課找不到伺服器怎麼辦 瀏覽:661
路由配置網關命令 瀏覽:935