壓力測量c語言的簡單介紹

本文目錄一覽:

用C語言程序設計測量血壓

在電腦的瀏覽器上面搜索用C語言程序設計測量血壓,點擊與之對應的一項,進入二級頁面就可以下載了,需要迅雷下載的話就提前安裝迅雷就可以下載了

請哪位高手幫我設計一個溫度壓力的單片機及其驅動電路總成

我曾經做過一個測量壓力傳感器0-5V,並轉換成對應的0-30MPar的壓力顯示。而且已經做成實物。你可以參考下面的。是我自己設計的。

一、 概述:

此電路主要是利用0—5伏的壓力傳感器檢測氣體的壓力並送顯,採用四位數碼管,顯示其壓力值,傳感器的0—5伏對應加氣機加氣壓力的0—30Mpa,送到漢顯的顯示值就是加氣機氣體的壓力值,壓力值精確小數點後一位,在實際加氣中,按照國家規程規定,其加氣壓力不得高於20Mpa,所以,此電中用在實際中,可直觀顯示其加氣壓力,最低壓力顯示00.0 Mpa,最高顯示29.9Mpa。

此玩法電路結構簡單,數碼顯示可精確到小數點後一位。

軟件部分採用C語言編寫

二、電路結構如下:

三、芯片簡介:

1、ADC0809(模數轉換)

(1)ADC0809引腳圖

(2)主要特徵

1)8路8位A/D轉換器,即分辨率8位。

2)具有轉換起停控制端。

3)轉換時間為100μs

4)單個+5V電源供電

5)模擬輸入電壓範圍0~+5V,不需零點和滿刻度校準。

6)工作溫度範圍為-40~+85攝氏度

7)低功耗,約15mW。

(3)內部結構

ADC0809是CMOS單片型逐次逼近式A/D轉換器,內部結構如圖13.22所示,它由8路模擬開關、地址鎖存與譯碼器、比較器、8位開關樹型D/A轉換器、逐次逼近

(4)外部特性(引腳功能)

ADC0809芯片有28條引腳,採用雙列直插式封裝,如上圖所示。

下面說明各引腳功能。

IN0~IN7:8路模擬量輸入端。

2-1~2-8:8位數字量輸出端。

ADDA、ADDB、ADDC:3位地址輸入線,用於選通8路模擬輸入中的一路

ALE:地址鎖存允許信號,輸入,高電平有效。

START: A/D轉換啟動信號,輸入,高電平有效。

EOC: A/D轉換結束信號,輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。

OE:數據輸出允許信號,輸入,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。

CLK:時鐘脈衝輸入端。要求時鐘頻率不高於640KHZ。

REF(+)、REF(-):基準電壓。

Vcc:電源,單一+5V。

GND:地。

ADC0809的工作過程是:首先輸入3位地址,並使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器複位。下降沿啟動 A/D轉換,之後EOC輸出信號變低,指示轉換正在進行。直到A/D轉換完成,EOC變為高電平,指示A/D轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態門打開,轉換結果的數字量輸出到數據總線上。

ad0809是根據逐位逼近的方法產生數據的。。

我們以參考電壓為0-5V為例。0809八位255的轉換精度每一位的電壓值為(5-0)/255≈0.0196V

設輸入電壓為X則:

X-27*0.0196=0則AD7=1否則AD7=0。

X-26*0.0196=0則AD6=1否則AD6=0。

………………..

………………….

…………………

X-20*0.0196=0則AD0=1否則AD0=0。

若參考電壓越小,精度就會越高,但測量範圍就變得窄了,比如:0-1V為參考電壓, 則每一位的電壓值就是:(1-0)/255≈0.0039V精度是提高了,但測量範圍小了。所以,在實際設計中,應根據實際做出合理的設計,在提高測量範圍的同時,也要提高精度。

2、74LS74(兩分頻,為ADC0809提供工作頻率)

(1)引腳圖

(2)邏輯圖

四、 硬件件電路設計

(1)硬件電路圖

(2)連接要點

ADC0809的CLK時鐘輸入信號線的頻率直接由單片機的ALE口輸出,因ADC內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ。在正常工作時,AT89C51的ALE端輸出為地址鎖存允許信號,當單片機上電正常工作後,ALE引腳不斷輸出正脈衝信號。當單片機訪問外部存儲器時,ALE輸出信號的負跳沿用於單片機發出的低8位地址經外部鎖存器的鎖存控制信號。即使不訪問外部鎖存器,ALE端仍有正脈衝信號輸出,此頻率為時鐘振蕩頻率fosc的1/6。

因此單片機的時鐘振蕩頻率採用6MHZ,經ALE輸出為1MHZ,在經外圍74LS74兩分頻後得到500KHZ,把此信號連接到ADC的clock端,提供ADC工作時所需的頻率。

(3)工作原理:

如上圖所示,RV1的可變電阻用是外圍0—5的輸入信號(壓力傳感器的輸入信號),此信號進入ADC的INT0通道進行模數轉換(如圖ADDA、ADDB、ADDC通道選擇全部接地,只對通道0進行轉換),轉換的值通過D0-D7送給單片機,在內部進行轉換計算後驅動三位數碼管顯示(共陽),數碼管的位選段採用三個PNP型三極管驅動(9012)驅動,系統工作電源,經外圍的12直流電壓,經7805穩壓輸出+5V的電壓,提供給各IC供電。

五、軟件程序

軟件程序採用C語言編寫,總的不是很複雜,本人已實際通過測試,並自做了PCB板,實際運行可靠,實際硬件焊接時,需在ADC的0通道輸入端加接兩個電容(10uf/50v,104),對輸入信號進行尖鋒濾波與抗干擾,以保證進入ADC的信號採集信號的穩定性。

程序如下:

//程序功能:壓力傳感器測量

//程序設計:黃庭劍

//編寫時間:2009年7月25日

//完成時間:2009年8月1日

//CPU說明:採用AT89C51,晶振:6MHZ,

//程序說明:通過壓力傳感器採集的壓力值(0—5V),對應於加氣機氣體壓力的0—30Mpa,通過數碼管顯示輸出。輸出範圍:00.0Mpa—

29.9Mpa

#include reg51.h

#define  uchar  unsigned char

#define  uint  unsigned  int

sfr p0=0x80;

sfr p1=0x90;

sfr p2=0xa0;

sfr p3=0xb0;

sbit  st=p2^7;

sbit  oe=p2^5;

sbit  eoc=p2^6;

sbit   p0_7=p0^7;

sbit   p3_0=p3^0;

sbit   p3_1=p3^1;

sbit   p3_2=p3^2;

sbit   ge=p2^0;

sbit   shi=p2^1;

sbit   bai=p2^2;   //定義

uint a_data1,a_data2,a_data3,temp;

uchar getdata;

uchar  codetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段選

void delaynms(uint x);//nms延時程序

void  zh_display();//先轉換後顯示程序

void  adcst_0809();//adc啟動程序

void main()

{

while(1)

{

adcst_0809();//調adc啟動程序

zh_display();//調顯示程序

}

}

//adc啟動程序

void adcst_0809()

{ uchar  i;

for(i=0;i1;i++)

{ p3_0=0;

p3_1=0;

p3_2=0;

oe=0;

st=0;

st=1;

st=0;

delaynms(1);

while(!eoc);

oe=1;

getdata=p1;

oe=0;

}

}

void  delaynms(uint x)

{ uchar  i;

while(x–0)

{ for(i=0;i115;i++)

{;}

}

}

//數據處理並送顯程序

void  zh_display()

{  uchar  a;

temp=getdata*151;

temp=temp/128;

a_data1=temp/100;

a_data2=temp%100/10; //數據處理

a_data3=temp%10;

for(a=0;a10;a++)

{

bai=0;

shi=1;

ge=1;

p0=codetab[a_data1]; //點亮百位

delaynms(1);

p0=0x00;

bai=1;

shi=0;

ge=1;

p0=codetab[a_data2];//點亮十位

p0_7=0;//點亮第二位的小數點

delaynms(1);

p0=0x00;

bai=1;

shi=1;

ge=0;

p0=codetab[a_data3];//點亮個位

delaynms(1);

}

}

c語言如何實現系統壓力測試

循環按照格式讀入每組數據即可。對於輸入多組數據測試的情況,需要約定結束的類型,常用的有兩種:1 當讀入數據為一組特定值時,結束測試。比如每組2個整型數據,以空格分隔,當輸入的兩個數均為-1時,結束測試。代碼可以寫作:int a,b;while(1){scanf(“%d%d”,a,b);if(a == -1 b == -1) break;//退出測試的條件。//測試代碼。}2 當讀到EOF時,結束測試。同樣讀入兩個整型數據,以空格分隔,當讀到EOF時結束測試。代碼可以寫作:int a,b;while(scanf(“%d%d”,a,b) != EOF)//當出現EOF時,結束測試。{//測試代碼。}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297179.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:15
下一篇 2024-12-28 12:15

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28

發表回復

登錄後才能評論