新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ATMEGA128單片機(jī)壓力的測(cè)量

基于ATMEGA128單片機(jī)壓力的測(cè)量

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
本文以MPX4250做為壓力傳感器,通過(guò)測(cè)量輸出端電壓來(lái)計(jì)算實(shí)際的壓力,使用ATMEGA128單片機(jī)作為系統(tǒng)的CPU,來(lái)讀取電壓,并進(jìn)行轉(zhuǎn)換。由于做實(shí)物不僅要耗費(fèi)金錢(qián),還要耗費(fèi)大量的時(shí)間用來(lái)做板子,焊接元器件。本系統(tǒng)采用了Proteus仿真,只需要畫(huà)畫(huà)電路圖就可以做出類(lèi)似實(shí)物的效果。通過(guò)測(cè)試,只要選取合適的參數(shù),基本上能正確的讀出壓力值,至于參數(shù)選取不合適,誤差不會(huì)太大,對(duì)于廣大初學(xué)單片機(jī),或是對(duì)壓力傳感器比較模糊的初學(xué)者來(lái)說(shuō)具有很大的學(xué)習(xí)價(jià)值。

仿真圖:

程序源代碼:

本文引用地址:http://m.butianyuan.cn/article/201611/319579.htm

#include

#include

#define F_CUP 7372800UL

#define uchar unsigned char

#define uint unsigned int

const uint segcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};

uint dis_seg[]={0xF3,0,0,0};

//數(shù)碼管顯示函數(shù)

void display(void)

{

uint i=0;

for(i=0;i<4;i++)

{

PORTE=~_BV(i);

PORTB=dis_seg[i];

_delay_us(50);

}

}

int main(void)

{

int AD_Result,Pressure_Value;

DDRB=0xff;PORTB=0xff;

DDRE=0xff;PORTE=0xff;

DDRF=0x00;PORTF=0xff;

//AD相關(guān)設(shè)置

ADCSRA=0xE6;

_delay_ms(2);

ADMUX=0x07;//通道選擇

while(1)

{

AD_Result=ADCL+(ADCH<<8);

Pressure_Value=((AD_Result*5.0/1023.0-0.11)/5.0+0.04)/0.004;

dis_seg[1]=segcode[Pressure_Value/100];

dis_seg[2]=segcode[Pressure_Value0/10];

dis_seg[3]=segcode[Pressure_Value];

if(dis_seg[1]==0x3F)

{

dis_seg[1]=0x00;

if(dis_seg[2]==0x3F)

dis_seg[2]=0x00;

}

display();

}

return 0; }

說(shuō)明:軟件用的是GCC,壓力芯片資料可以在網(wǎng)上找到。



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉