基于單片機的壓力測試儀設計_第1頁
基于單片機的壓力測試儀設計_第2頁
基于單片機的壓力測試儀設計_第3頁
基于單片機的壓力測試儀設計_第4頁
基于單片機的壓力測試儀設計_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 成成 績績 評評 定定 表表 學生姓名 班級學號 專 業測控課程設計題目基于單片機的壓 力測試儀設計 評 語 組長簽字: 成績 日期 課程設計任務書課程設計任務書 學 院信息科學與工程專 業測控技術與儀器 學生姓名 班級學號 課程設計題目基于單片機的壓力測試儀設計 實踐教學要求與任務實踐教學要求與任務: : 電子測量技術是測控技術與儀器專業的專業基礎課。本設計是對該課程綜合 應用能力的檢驗,在鼓勵學生熟悉基本原理的前提下,注重與實際應用相聯系,提出 自己的方案,完善設計。 1、熟悉被測對象的測量技術工作原理; 2、提出可行設計方案; 3、根據方案設計硬件電路,應用 protel 繪制電路原理

2、圖; 4、軟件編程并調試; 5、硬件焊接與調試; 6、完成課程設計報告。 工作計劃與進度安排工作計劃與進度安排: : 第 18 周(6 月 23 日-6 月 27 日):布置設計任務,查資料,完成總體設計框架。 第 19 周(6 月 30 日-7 月 4 日):完善設計內容,焊接調試,驗收答辯。 指導教師: 專業負責人: 學院教學副院長: 摘要摘要 在工業生產控制過程中,壓力是一個很重要的參數。比如利用測量大氣壓 力來間接測量海拔高度,在工業生產中測量壓力參數來判斷反應的過程,在氣 象預測中,也需要測量大氣壓力來判斷陰雨天氣等等。所有這些都需要掌握測 量壓力,所以壓力表的設計擁有廣闊的市場前景

3、。本課題就是基于此原因設計 的一個簡單壓力計。 本課程設計用 mpx4115 傳感器來檢測壓力參數,adc0808 進行模數轉換后, 利用 at89c52 進行數據處理后,由鍵盤設置測量量程,用發光二級管顯示當前 測量量程送液晶顯示壓力值。 本系統可根據需要進行功能擴展。由于 adc0808 支持 8 路信號采集,可以 對 8 個壓力點參數進行檢測。可以手動設置采集哪一路,或者循環采集。還可 以進行壓力上下限報警。 在設計系統的時候,立足于界面友好性、性價比,可以在簡單壓力檢測的 時候使用。 關鍵詞:壓力測試;關鍵詞:壓力測試; 單片機;單片機; adc ;傳感器;傳感器 目目 錄錄 1.設計

4、要求.5 2.設計方案與設計原理.6 2.1 系統總體設計.6 2.2 功能介紹.6 3.元器件的識別與檢測.7 3.1 at89c52 簡介.7 3.2 adc0808 簡介.7 4.制作與調試.9 4.1 系統軟件設計.9 4.2 系統程序整體流程圖.9 4.3 t0 中斷服務程序流程圖.10 4.4 外部中斷 int0 流程圖.10 4.5 系統總體框圖.11 4.6 系統總體仿真電路.12 4.7 軟硬件仿真調試及性能分析.13 4.8 程序代碼.13 5.設計心得.19 6 參考文獻.20 1.設計要求設計要求 本課程設計用 mpx4115 傳感器來檢測壓力參數, adc0808 進

5、行模數轉 換后,利用 at89c52 進行數據處理后 ,由鍵盤設置測量量程,用發光二級管 顯示當量量程送液晶顯示壓力值。 數字壓力傳感器是工業實踐中最為常用的一種傳感器,其廣泛應用于各種 工業自控環境,涉及水利水電、鐵路交通、智能建筑、生產自控、航空航天、 軍工、石化、油井、電力、船舶、機床、管道等眾多行業,下面就簡單介紹 一些常用傳感器原理及其應用。 本課程設計的數字壓力傳感器以單片機為主要部件,利用全橋測量原理,通過 對電路輸出電壓和標準壓強的線性關系,建立具體的數學模型,將電壓量綱 (v)改為壓強綱(pa)即成為一臺原始電子稱。 其中測量電路中最主要的元器件就是電阻應變式傳感器。電阻應變

6、式傳感 器是傳感器中應用最多的一種,本設計采用全橋測量電路,使系統產生的誤差 更小,輸出的數據更精確。而三運放大電路的作用就是把傳感器輸出的微弱的 模擬信號進行一定倍數的放大,以滿足 a/d 轉換器對輸入信號電平的要求。 adc0809 的 a/d 轉換作用是把模擬信號轉變成數字信號,進行模數轉換,然后 把數字信號輸送到顯示電路中去,最后由顯示電路顯示出測量結果。并且能實 現數字傳感器之間的通訊,達到數據共享的目的。從而更好的滿足當今社會的 要求。 2.設計方案與設計原理設計方案與設計原理 2.1 系統總體設計系統總體設計 壓力計以at89c52 為核心,進行數據的處理和顯示,并進行顯示量程的

7、切換。 壓力測量采用mpx4115,利用adc0808 實現a/d 轉換,由鍵盤設置量程轉換,并 且用發光二極管顯示當前的量程。 2.2 功能介紹功能介紹 壓力計的測量量程在10kpa100kpa,精度在0.5 級。利用16x1 字符型lcd 顯示和提示操作。利用按鍵進行量程轉換。具體為xxxx kpa 和xxxx kpa 。 壓力測量使用摩托羅拉公司的mpx4115 傳感器,采集電路以此為核心,為了 克服干擾,在mpx4115 輸出電路中增加了rc 濾波電路。 mpx4115 壓力傳感器檢測的范圍是10kpa-100kpa,輸出電壓信號0.2v-4.8v。 adc0808 的參考電壓vref

8、+=5v,vref-=0v。則0v-5v)對應(0-255),(0.2v- 4.8v) 對應(10-246)。 本課程設計是基于 at89c52 的壓力測量裝置。有壓力傳感器測量當前施加在傳 感器上的壓力,并通過 adc0808 芯片將電壓信號轉換為數字信號傳遞給單片 機,通過單片機將當前的壓力值傳遞給 lcd 并且正確顯示。 本系統可根據需要進行功能擴展。由于adc0808 支持8 路信號采集,可以對 8 個壓力點參數進行檢測??梢允謩釉O置采集哪一路,或者循環采集。還可以 進 行壓力上下限報警。 在設計系統的時候,立足于界面友好性、性價比,可以在簡單壓力檢測的時 候使用。 3.元器件的識別與

9、檢測元器件的識別與檢測 3.1 at89c52 簡介簡介 at89c52 是51 系列單片機的一個型號,它 是 atmel 公司生產的。 at89c52 為40 腳雙列直插封裝的8 位通用 微 處理器,采用工業標準的c51 內核,在內部 功能及 管腳排布上與通用的8xc52 相同,其主要用于會聚調整時的功能控制。功能包 括對會聚主ic 內部寄存器、數據ram 及外部接口等功能部件的初始化,會聚調 整控制,會聚測試圖控制,紅外遙控信號ir 的接收解碼及與主板cpu 通信等。 主要管腳有: xtal1(19 腳)和xtal2(18 腳)為振蕩器輸入 輸出端口,外接12mhz 晶振。rst/vpd(

10、9 腳)為復位輸入端口,外接電阻電容 組成的復位電路。vcc(40 腳)和vss(20 腳)為供電端口,分別接+5v 電源 的 正負端。p0p3 為可編程通用i/o 腳,其功能用途由軟件定義。 3.2 adc0808 簡介簡介 adc0808是采樣分辨率為8位的、以逐次逼近原理進行模/數轉換的器件。其 內部有一個8通道多路開關,它可以根據地址碼鎖存譯碼后的信號,只選通8路 模 擬輸入信號中的一個進行a/d 轉換。adc0808是adc0809的簡化版本,功能基本 相同。一般在硬件仿真時采用adc0808進行a/d 轉換,實際使用時采用adc0809 進行a/d 轉換。 adc0808芯片有28

11、條引腳,采用雙列直插式封裝,如 右圖所示。 各引腳功能如下: 15和2628(in0in7):8路模擬量輸入端。 8、14、15和1721:8位數字量輸出端。 22(ale):地址鎖存允許信號,輸入,高電平有效。 6(start): ad 轉換啟動脈沖輸入端,輸入一個正脈沖(至少100ns 寬) 使其啟動(脈沖上升沿使0809復位,下降沿啟動a/d 轉換)。 7(eoc): ad 轉換結束信號,輸出,當ad 轉換結束時,此端輸出一個高 電平(轉換期間一直為低電平)。 9(oe):數據輸出允許信號,輸入,高電平有效。當ad 轉換結束時,此 端輸入一個高電平,才能打開輸出三態門,輸出數字量。 10

12、(clk):時鐘脈沖輸入端。要求時鐘頻率不高于640khz。 12(vref(+)和16(vref(-):參考電壓輸入端。 11(vcc):主電源輸入端。 13(gnd):地。 4.制作與調試制作與調試 4.1 系統軟件設計系統軟件設計 系統主程序在初始化后只進行按鍵掃描,利用定時器t0 定時5s 啟動ad 轉化,即采樣周期是5s。當ad 轉換 完成后進入外部中斷int0 服務程序, 進行 數據的處理,刷新顯示的壓力值;當 采用兩位量程時,若檢測到壓力值大 于等于 100,提示超過量程“over!”,需 要轉換量程。 4.2 系統程序整體流程圖系統程序整體流程圖 系統的整體程序流程圖如下所示:

13、 主程序在完成開機logo 顯示、壓力值初始化顯示、to 及int0 中斷初始化 后進入死循環,在循環中進行按鍵掃描,切換量程。等待t0 中斷啟動ad 轉換; 轉換完成后進入外部中斷 int0 進行數據的處理、分析、顯示。 按鍵子程序流程圖 按鍵子程序進入后首先對顯示模式進行修改,即在兩位整數和三位整數顯示 之間進行切換。若是兩位整數模式則先判斷是否超過量程(壓力值是三位數整 數),超過量程則顯示“over!”提示轉換量程。若是三位整數模式則直接刷 新數據后顯示。 4.3 t0 中斷服務程序流程圖中斷服務程序流程圖 t0 定時器定時50ms,即每50ms 進入t0 中斷,在中斷中增加time5

14、s_count 計時器,每次進入t0 中斷后time5s_count 加1,當加到100 后表示5s 到,清 零同時啟動 ad 轉換。 4.4 外部中斷外部中斷 int0 流程圖流程圖 外部中斷 int0 服務程序流程圖如下所示: 當adc0808 完成ad 轉換后,eoc 變高,經反相器后接單片機int0 口,下降 沿啟動int0 中斷。在中斷中首先讀取轉換后的數字量,再進行標度換算成壓力 值,完成數據的刷新。 4.5 系統總體框圖系統總體框圖 以at89c52 為核心,外圍電路有信號采集mpx4115,ad 轉換電路adc0808、 按鍵和顯示液晶模塊??傮w框圖如下: 壓力測量電路 壓力測

15、量使用摩托羅拉公司的 mpx4115 傳感器,采集電路以此為核心,為了 克服干擾,在 mpx4115 輸出電路中增加了 rc 濾波電路。如下圖所示: 4.6 系統總體仿真電路系統總體仿真電路 壓力計檢測系統在 protues 仿真的硬件電路如下所示: mpx4115 的輸出的電壓信號 0.2v-0.5v 送至 adc0808 的 0 通道,ad 轉化 后的 8 位數字信號送給單片機 p1 口,經單片機分析處理數據后經 p0 口送液晶顯 示。 按鍵控制量程的轉換,00.00-10.00kpa 和 10.0-100.0kpa 兩個量程,顯然 整數是兩位時的現實精度高。紅色 led 亮表示此時的量程

16、為 00.00-10.0kpa,黃 色 led 亮表示此時的量程為 10.0-100.0kpa。 顯示界面利用 16x1 的字符型液晶 lm020l 進行顯示,相比 led 顯示能顯示 更 多的內容,人機界面更友好,而且節省單片機硬件資源。 4.7 軟硬件仿真調試及性能分析軟硬件仿真調試及性能分析 1.數字量到壓力值的標度變換 mpx4115 壓力傳感器檢測的范圍是10kpa-100kpa,輸出電壓信號0.2v-4.8v。 adc0808 的參考電壓vref+=5v,vref-=0v。則(0v-5v)對應(0-255), (0.2v-4.8v)對應(10-246)。 2.系統最小分辨率 即當壓

17、力值變換了 0.424kpa 系統便 能檢測到。 4.8 程序代碼程序代碼 #include #include #define uchar unsigned char #define uint unsigned int #define dataport p0 /數據端口 sbit busy=p07; sbit adc_cs=p20; sbit lcd_rs=p21; sbit lcd_rw=p22; sbit lcd_e=p23; sbit led1=p24;/兩位數,xx.xx,默認兩位數 sbit led2=p25;/三位數,xxx.x sbit key=p26; /量程轉換 sbit a

18、dc_oe=p27; bit key_count;/量程表示,0 兩位,1 三位 uchar time5s_count; uchar press_bai; uchar press_shi; uchar press_ge; uchar press_dot1;/十分位 uchar press_dot2;/百分位 uchar k;/量程轉換的放大倍數,兩位10,三位100 uint temp; float press; uchar code str0_0=welcome! good!;/開機logo(15) uchar code str0_1=press: kpa!;/正常顯示檢測(14) ucha

19、r code str1=over!;/超過了滿量程 void delay(uchar x) uchar y,z; for(y=x;y0;y-) for(z=110;z0;z-); /*=注意:后8 個字符的地址是從80+40 開始的=*/ /檢測lcd 忙函數 void check_busy() do dataport=0xff; lcd_rs=0; lcd_rw=1; lcd_e=0; lcd_e=0;/相當于_nop_() lcd_e=1; while(busy=1); /lcd 寫命令 void write_com(uchar com) dataport=com; lcd_rs=0;/命

20、令 lcd_rw=0;/寫 lcd_e=0; check_busy();/判斷lcd 是否忙碌 lcd_e=1; delay(1); /lcd_e=0; /lcd 寫數據 void write_data(uchar date) dataport=date; lcd_rs=1;/數據 lcd_rw=0;/寫 lcd_e=0; check_busy(); lcd_e=1; delay(1); /寫顯示一個字符函數 void write_number(uchar dat,uchar add)/形參:顯示數據,顯示地址 write_com(0x80+add);/顯示數據的地址 write_data(0

21、x30+dat); /送數字ascii 碼 void disp_init() uchar i; adc_oe=0; write_com(0x01);/清屏并光標復位 write_com(0x30);/設置8 位、2 行、5*7 點陣 /write_com(0x0f);/顯示開,允許閃爍 write_com(0x0c);/光標不顯示,不閃爍 write_com(0x14);/文字不動,光標自動右移 write_com(0x80);/顯示起始地址 for(i=0;i15;i+)/開機logo write_data(str0_0i);/顯示welcome! good! for(i=0;i100;i+

22、)/開機logo 延時時間 delay(100); write_com(0x01);/清屏并光標復位 write_com(0x80);/顯示的起始地址 for(i=0;i=100)/超過了滿量程,顯示over! write_com(0x80+6);/顯示的起始地址 for(i=0;i=100)/超過了滿量程,顯示over! write_com(0x80+6);/顯示的起始地址 for(i=0;i5;i+) write_data(str1i);/“over!” else temp=(uint)(press*k);/放大100 倍,便于求小數 press_shi=(uchar)(temp/1000

23、); /取壓力值百位 press_ge=(uchar)(temp%1000)/100); /取壓力值十位 press_dot1=(uchar)(temp%1000)%100)/10); /取壓力值十分位 press_dot2=(uchar)(temp%1000)%100)%10); /取壓力值百分位 /刷新顯示的壓力數據 write_number(press_shi,6);/壓力值 write_number(press_ge,7); write_number(press_dot1,9); write_number(press_dot2,10); else/key_count=0,三位顯示 te

24、mp=(uint)(press*k);/放大10 倍,便于求小數 press_bai=(uchar)(temp/1000); /取壓力值百位 press_shi=(uchar)(temp%1000)/100); /取壓力值十位 press_ge=(uchar)(temp%1000)%100)/10); /取壓力值個位 press_dot1=(uchar)(temp%1000)%100)%10);/取壓力值十分位 /刷新顯示的壓力數據 write_number(press_bai,6);/壓力值 write_number(press_shi,7); write_number(press_ge,8

25、); write_number(press_dot1,10); 5.設計心得設計心得 這次課程設計經歷了一周的時間,其中遇到了許多的麻煩和困難,但是都 一一解決 了,通過發現問題、分析問題、解決問題,我又學到了許多新的知識,而且這 些知識都是在書本中的抽象理論中很難明白的,必須在工程實際應用才能夠有 切身的體會。 在確定課題后,設計有要求量程切換,這是在以前書本中都不曾提過的應 用,我們根據現實生活中,和在實驗室接觸的儀表中,將量程切換定義為:小 量程(xxxx)現實到小數點百分位,大量程(xxx.x) ,雖然整數可以顯示到 百位,但是只能夠顯示到小數點十分位,這樣就沒有小量程顯示準確了。在按 鍵子程序中要達到量程轉換的目的,定義一個位變量,key_count,每次按鍵后, key_count 先取反,再判斷 key_count 的值,若是 0 表示的是兩位整數顯示模 式,1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論