基於51微控制器的數字氣壓計

2021-09-16 14:09:11 字數 1879 閱讀 1567

1.概述

本設計是基於mpx4115的數字氣壓計,硬體處理電路為大氣壓感測器模擬訊號的採集、轉換、處理和顯示,並根據相應的軟體需求設計控制程式。

2.硬體設計

(1)硬體總體框圖

氣壓計的硬體主要由四部分組成,分別為微控制器最小系統、氣壓訊號採集電路、adc轉換電路和數碼管電路。

(2)氣壓訊號採集轉換電路

a.氣壓訊號採集

資料採集模組由壓力感測器mpx4115構成,其型別是矽壓力感測器。這個感測器結合了高階的微電機技術,薄膜鍍金屬。還能為高水準模擬輸出訊號提供乙個均衡壓力。在0℃-85℃的溫度下誤差不超過1.5%,溫度補償是-40℃-125℃。

b.ad轉換

adc0832 為8位解析度a/d轉換晶元,其最高分辨可達256級,可以適應一般的模擬量轉換要求。其作用是將氣壓訊號採集的模擬訊號轉換為8位數碼訊號,並將結果傳給微控制器處理。

正常情況下adc0832 與微控制器的介面應為4條資料線,分別是cs、clk、do、di。但由於do端與di端在通訊時並未同時有效並與微控制器的介面是雙向的,所以電路設計時可以將do和di 併聯在一根資料線上使用。當adc0832未工作時其cs輸入端應為高電平,此時晶元禁用,clk 和do/di 的電平可任意。當要進行a/d轉換時,須先將cs使能端置於低電平並且保持低電平直到轉換完全結束。此時晶元開始轉換工作,同時由處理器向晶元時鐘輸入端clk 輸入時鐘脈衝,do/di端則使用di端輸入通道功能選擇的資料訊號。在第1 個時鐘脈衝的下沉之前di端必須是高電平,表示啟始訊號。

(3)硬體原理圖

3.軟體設計

(1)adc0832驅動程式

//adc0832的引腳

sbit adcs =p3^1; //adc0832 chip seclect

sbit addi =p3^2; //adc0832 k in

sbit addo =p3^2; //adc0832 k out

sbit adclk =p3^0; //adc0832 clock signal080307208

/*讀adc0832函式*/

//採集並返回

unsigned int adc0832(unsigned char channel) //ad轉換,返回結果

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

adcs=1;//拉低cs端

adclk=0;//拉低clk端

addo=1;//拉高資料端,回到初始狀態

dat<<=8;

dat|=ndat;

return(dat); //return ad k

}

(2)數碼管顯示程式

unsigned char dispbitcode[8]=;  //位掃瞄

unsigned char dispcode[11]=; //共陽數碼管欄位碼

unsigned char dispbuf[4];

void display(void) //數碼管顯示函式

}

(3)主程式

/*主程式*/

void main(void)

}}

基於51微控制器的數字秒錶實現

基於51微控制器的八位數字秒錶 開發語言 c51 所選晶元 at89s51 開發者 jnu.bluecoffee 開發日期 2009年6月18日 include reg51.h include intrins.h define dig none 0xff define dig 1 0x7f defi...

基於51微控制器的LCD1602實現分秒計時總結

1 了解51最小系統所需元器件 晶振 復位 電源 2 對使用到的元器件建庫封裝。3 新建工程,建立原理圖,合理擺放元器件,完成元器件的連線,儘量減少導線的交叉,不要短接,不要漏接。好的原理圖在pcb製圖中幫助很多,走線問題上會少很多麻煩。可以在原理圖上將所有引腳都連起來選擇合適的走線。4 建立pcb...

51微控制器的簡易頻率計

一 單通道頻率計 include include int count 0,n 0,f 0 count 累計中斷次數 n 脈衝數,f 頻率 main void record interrupt 0 用外中斷0讀取訊號,並作記錄 void output interrupt 1 用定時器0中斷 二 雙通道...