第1章 設計的背景和思路
1.1、本次設計的背景
最近,臺風的來臨大家都有所耳聞,氣體流速的檢測與我們大家的生活息息相關。除此之外,氣體流速也與工業生產密不可分。氣體流速的檢測和控制關系著產品的性能,是裝置能否安全運行的一個重要指標,氣體流速對一些大型反應裝置起著控制作用,可以通過檢測氣體流速來實現對反應的控制。可見氣體流速的檢測對人們的重要性,本設計就是對氣體流速的測量。氣體流速測試系統以傳感器、單片機STC12C5A16AD與LCD1602液晶組成的氣體流速測試系統。
我認為設計一個氣體流速測量系統,不論是從學習還是實踐的角度,對一名機電專業的學生都會有很好的學習效果。
1.2、本次設計的思路及功能
因為氣體流速測量在生產及生活中有著重要的意義,我們小組就想制作一個通過氣壓傳感器來反映氣體流速的裝置,通過LCD液晶屏顯示實時數據并且可以通過串口將數據傳輸給上位機,通過串口助手顯示出來。思路是使用氣壓傳感器,用注射器向其注射氣體,傳感器產生電壓變化,經過單片機AD轉換,數據運用LCD顯示出來,還有就是通過USB串口傳輸到電腦串口助手。
基本的設計思路是這樣的:首先,因為我們的主題是關于測量的,所以我們選擇了自帶AD轉換功能的STC12C5A16AD單片機,然后再搜尋傳感器和串口通訊部分元件。后來找到了XGZP6847型氣體壓力傳感器模塊,這款元件的優勢在于電壓信號在模塊內部已經進行了放大,所以輸出信號不需要進行放大。而串口通訊則是選擇了PL-2303HX模塊。另外我們選擇了較為常見的LCD1602液晶實現液晶顯示功能。從而總體的完成了整個設計。
我們小組設計的系統采用STC12C5A16AD單片機(自帶8路十位精度的AD轉換),有氣壓傳感器獲取電壓信號,然后將電壓信號傳送給帶有AD轉換的STC12C5A16AD單片機。由于空氣流速與氣壓有相應的正比例函數關系,可以根據得到的數值求出相應比例的空氣流速。然后將數據輸送給液晶屏顯示和串口。
2.2、各功能模塊的詳細介紹
2.2.1、單片機模塊
1、單片機介紹
STC12C5A16AD單片機是新一代8051單片機。相比于普通的51單片機,它增加了許多功能。例如AD轉換功能,PWM功能等等。因為我們這次設計的是一個用于測量數據的系統,所以使用這款單片機就不需要再擴展AD轉換芯片,可以減少外圍電路。

圖2-2 單片機引腳圖
單片機的最小應用系統是指用最少的元件組成的單片機可以工作的系統。最小系統一般包括:單片機、晶振電路和復位電路。

圖2-3 單片機最小系統圖
晶振電路: 單片機系統里都有晶振,在單片機系統里晶振作用非常大,他結合單片機內部電路,產生單片機所需的時鐘頻率,單片機晶振提供的時鐘頻率越高,單片機的運行速度就越快。
復位電路:在單片機系統在運行中,當受到環境干擾出現程序跑飛時,按下復位按鈕,使內部的程序自動從頭開始執行。
我們小組選用這款單片機的理由是因為這款單片機廣泛運用于測量,它自帶AD轉化的功能,可以減少外圍電路,簡化系統。
4、單片機引腳連接
表2-1單片機引腳連接
連接元件 | 單片機引腳編號 | 元件引腳代號 | 單片機引腳編號 | 元件引腳代號 |
傳感器XGZP6847 | 1(P1.0/T2) | 2OUT |
|
|
LCD1602 | 39(P0.0/AD0) | 8(D0) | 38(P0.1/AD1) | 9(D1) |
37(P0.2/AD2) | 10(2) | 36(P0.3/AD3) | 11(D3) | |
35(P0.4/AD4) | 12(D4) | 34(P0.5/AD5) | 13(D5) | |
33(P0.6/AD6) | 14(D6) | 32(P0.7/AD7) | 15(D7) | |
串口PL2303 | 10(P3.0/RxD) | TX | 11(P3.1/TxD) | RX |
2.2.2、傳感器模塊
1、氣壓傳感器原理
XGZP6847型氣體壓力傳感器為壓阻式壓力傳感器,其利用單晶硅的壓阻效應構成。采用單晶硅片為彈性元件,利用集成電路工藝,在特定方向擴散一組等值電阻,并將電阻連成橋路,單晶硅片置于傳感器腔內。當壓力發生變化時,單晶硅產生應變,使直接擴散在上面的應變電阻產生與被測壓力成正比的變化,再由橋式電路獲得相應的電壓輸出信號。
2、傳感器模塊接線

圖2-4 傳感器模塊原理圖
本次設計采用的是XGZP6847型氣體壓力傳感器模塊,此模塊外圍所接的電路十分簡單,因為電壓信號在模塊內部已經進行了放大,所以輸出信號不需要進行放大,XGZP6847型氣體壓力變送器模塊共有六個引腳,其中的1、2、3腳都不需要外接其他電子元件,4腳接+5V電源電壓,5腳是信號輸出引腳,6腳接地即可。在串接一個10K的電阻R5防止擊穿電容C4。
3、設計思路及理由
根據現代惠斯通原理制成的壓阻式壓力傳感器,有體積小、耗能低、重量輕、響應快、便于實現顯示數字化等特點,而且可以測量壓力,稍加改變,還可以測量差壓、高度、速度、加速度等參數。因為本系統選擇了XGZP6847型氣體壓力傳感器模塊。
2.2.3、顯示模塊
1、LCD顯示屏簡介及選用理由
我們小組用來顯示的液晶屏是LCD1602顯示屏。因為該液晶顯示器具有顯示質量高、功耗低、抗干擾能力強、體積小、重量輕等優點。 
圖2-5 LCD顯示電路原理圖
1、PL2303HX模塊
PL2303是Prolific公司生產的一種高度集成的RS232-USB接口轉換器,可提供一個RS232全雙工異步串行通信裝置與USB功能接口便利聯接的解決方案。
RS232雙向轉換器,一方面從主機接收USB數據并將其轉換為RS232信息流格式發送給外設;另一方面從RS232外設接收數據轉換為USB數據格式傳送回主機。這些工作全部由器件自動完成,開發者無需考慮固件設計。PL-2303HX無論在工作中或等待模式中消耗的電量都非常少,可留給連接的設備許多的電能。與RS-232串行端口的訊號標準一樣靈活,允許PL-2303HX直接連接1.8V~3.3V的設備。

圖2-6 PL2303HX芯片引腳圖

圖2-7 模塊內部結構框圖
它有如下優點:1.完全符合USB規范2.0(全速兼容)。2.片內擁有USB1.1收發器,5V轉3.3V的穩壓器,12MHz的晶體振蕩器。3.支持RS232這樣的串行接口;支持自動握手各種模式。
2、串口模塊原理圖

圖2-8 串口模塊原理圖
2.2.5、電源模塊
1、電源開關原理
通過自鎖開關,控制整個系統通斷電。

圖2-9電源開關原理圖
2、自鎖開關
這個開關的兩排引腳中,每一排的中間一只是公共端,兩邊是分別是獨立的,也就是說,如果你把中間的一只接到負載端,那么兩邊就是來自電源的進線,當你把中間一只引腳接負載端以后,如果你把兩邊的引腳的其中一只接電源,當你按下開關時,負載工作,那么另外一只就是開關不按下時負載接通電源,也就是說,在這兩排引腳中,除了中間一只引腳是公共端以外,另外兩只引腳中一只是按下開關后接通電源,而另一只則是按下開關后斷開電源,簡而言之就是,兩排引腳,中間一只是公共端,而另外兩只,一只是按下關,另一只是按下開;有兩排就是一排對應電源正極,另一排對應電源負極,只要把中間電源兩級的公共端接好以后,另外的兩只引腳在接線時都接在同一側就可以了,不然的話,接好了還是沒有用,接錯了,就會出現如果按下后電源正極接通,那么電源負極就斷開了,或者不按下時,電源正極接通,負極又斷開了。注意,開關有兩排引腳,每一排有三只引腳,三只引腳中,中間一只是公共端,每一排對應電源的每一極。
第3章 軟件流程及描述
實現系統功能可以采用多種方法,由于要控制單片機的AD轉換、LCD的顯示和串口的通信,因此,整個程序可以分為主程序、LCD程序、AD轉換程序,由于購買的LCD液晶屏以及單片機帶有LCD和AD轉換的程序,為了方便,我們對其稍做更改并將其設為子程序。其中,LCD程序主要是用來控制液晶屏的顯示格式以及數值的;AD轉換程序用來對所得到的電壓數值進行相應關系的轉化;主程序則是控制子程序的應用以及利用接口向上位機發送實時的數據。

圖3-1 軟件流程
3.1主程序設計主程序中需要完成的功能主要有對系統初始值的設置、AD轉換、數據發送、LCD顯示等。系統上電后,需要對定時器的狀態進行設置,包括定時器的工作方式以及數據傳輸的開始中斷,因此我們首先需要進行定時器的選擇以及工作方式設定。使用定時器1的操作模式2:8位自動重載,然后根據波特率為9600裝入初值,TH1=TL1=0xfd。接著我們要設置串行通信工作模式,SM0=0,SM1=1,打開串行接收允許位,開總中斷與串行中斷。單片機通過串口向上位機發送char型數組,當串行通信發送完成后,出現信號TI=1。
由于傳感器實際原因,我們無法測量出正確的空氣流速值來進行校正,因此我們決定使用相應的比例關系來計算得出。首先,我們確定一個利用單片機顯示的速度最大值為150mm/s。由于AD轉換是十位數制,最大值為2的10次方即1024,將其乘以0.147便可以得到。其次,當系統完成后我們為板子供電,燒入程序。保持單片機顯示的速度為55mm/s勻速擠完1ml的氣體,測量需要33.19s的時間,而傳感器與針筒接口出截面積為1mm^2,即是速度為33mm/s。因此,利用比例關系求出正確的流速還應該再乘以一個0.6的修正系數。在程序中表現就是getADCresult。再令其乘以0.147使得量程為150,再乘以0.6修正。
關于液晶顯示部分,可以先在程序開頭部分設定idate數據類型,設定LCD上將要顯示的部分“Sudu:150”,然后再根據AD得到的結果顯示出來。
主程序中還可以設置延時函數,使用for循環來進行延時,先設定延時1毫秒的延時函數,再根據此來循環n次,延時n秒。
3.2 A/D轉換程序設計我們使用的單片機內部自帶AD轉換器,是一個十位轉換,分成高八位和低兩位。編寫程序時,我們首先需要選擇相應的通道,打開8路通道,還需要能夠清除前一次的數據。當然,十位的寄存器也需要進行相應的移位與或運算。
單片機的P2.5、P2.6、P2.7分別接LCD1602的rs、rw、en用以控制其讀寫功能,P0口負責傳輸需要顯示的數據,LCD1602可以顯示當前空氣的流速。我們編寫程序需要設定顯示方式,8位數據端口,2行顯示。還有就是需要設定LCD液晶屏的光標顯示與否,清屏指令等等。當然液晶屏的字符輸入位置也需要進行設定,我們還需要用到庫函數里的string函數。
第4章 調試過程及結果
4.1、實驗調試
首先打開燒錄軟件,選擇單片機型號,并打開程序文件,然后點擊下載/編程。之前遇到了困難,一直無法成功錄入,后來經過查詢,需要重啟單片機,就可以成功的燒錄。

我們設計了電源開關控制電源線,另外串口也可以提供電源。


以下是我們實際調試時的截圖:
下圖是通電后的顯示,因為沒有提供風力,速度顯示為零。

當我們按壓注射器模擬風力時,顯示屏上的數據就會發生變化,顯示出當前的氣體流速。


然后打開軟件的串口助手窗口,選擇文本模式,選擇正確的串口和波特率,打開串口,就可以接收到所測得氣體流速值了。

圖4-7氣體流速串口操作及顯示
通過以上操作,呈現了我們單片機系統的主要功能。


源代碼.rar
(3.88 KB, 下載次數: 182)
原理圖.rar
(15.87 KB, 下載次數: 112)
視頻.rar
(19.71 MB, 下載次數: 81)
課設報告.doc
(841 KB, 下載次數: 96)
PCB.rar
(544.45 KB, 下載次數: 71)
瘋了的單片機 發表于 2020-4-11 15:31
想問一下xgzp6847輸出口連接一個電阻和電容能不能達到濾波作用?
sher 發表于 2020-4-28 11:34
可以用袖帶測血壓嗎
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |