找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19742|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)+XGZP6847風(fēng)速測量儀設(shè)計(jì)與制作 含源程序,PCB與視頻文檔

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
今日臺風(fēng)消息時(shí)有聽聞,我們小組便想設(shè)計(jì)一個(gè)氣體流速測量計(jì)。本次設(shè)計(jì)主要是利用STC單片機(jī)實(shí)現(xiàn)對氣壓傳感器發(fā)送的電壓進(jìn)行AD轉(zhuǎn)換,并將相應(yīng)的數(shù)值顯示到液晶屏上以及通過串口發(fā)送給上位機(jī)。我采用了自帶AD轉(zhuǎn)換的STC單片機(jī)以及1602LCD液晶屏進(jìn)行流速顯示,同時(shí)可以運(yùn)用USB接口將實(shí)時(shí)數(shù)值傳輸給上位機(jī)。相關(guān)內(nèi)會在接下來的報(bào)告中陳述。

圖2-1 系統(tǒng)整體設(shè)計(jì)框圖

視頻演示:

目錄
摘  要
第1章 設(shè)計(jì)的背景和思路 1
  1.1、本次設(shè)計(jì)的背景1
   1.2、本次設(shè)計(jì)的思路及功能1
第2章 設(shè)計(jì)方案和硬件電路 2
  2.1、整體功能模塊圖2
   2.2、各功能模塊的詳細(xì)介紹2
2.2.1、單片機(jī)模塊 2
2.2.2、驅(qū)動(dòng)及調(diào)速模塊 4
2.2.3、顯示模塊5
2.2.4、串口模塊7
2.2.5、電源模塊9
第3章 軟件流程及描述 11
  3.1、主程序設(shè)計(jì)11
   3.2、AD轉(zhuǎn)換程序設(shè)計(jì)12
   3.3、LCD應(yīng)用程序設(shè)計(jì)12
第4章 調(diào)試過程及結(jié)果 13
     4.1、實(shí)驗(yàn)調(diào)試13
課程設(shè)計(jì)總結(jié)16
參考文獻(xiàn)17
附錄一18
附錄二19
附錄三20

第1章 設(shè)計(jì)的背景和思路

1.1、本次設(shè)計(jì)的背景

最近,臺風(fēng)的來臨大家都有所耳聞,氣體流速的檢測與我們大家的生活息息相關(guān)。除此之外,氣體流速也與工業(yè)生產(chǎn)密不可分。氣體流速的檢測和控制關(guān)系著產(chǎn)品的性能,是裝置能否安全運(yùn)行的一個(gè)重要指標(biāo),氣體流速對一些大型反應(yīng)裝置起著控制作用,可以通過檢測氣體流速來實(shí)現(xiàn)對反應(yīng)的控制?梢姎怏w流速的檢測對人們的重要性,本設(shè)計(jì)就是對氣體流速的測量。氣體流速測試系統(tǒng)以傳感器、單片機(jī)STC12C5A16AD與LCD1602液晶組成的氣體流速測試系統(tǒng)。

我認(rèn)為設(shè)計(jì)一個(gè)氣體流速測量系統(tǒng),不論是從學(xué)習(xí)還是實(shí)踐的角度,對一名機(jī)電專業(yè)的學(xué)生都會有很好的學(xué)習(xí)效果。

1.2、本次設(shè)計(jì)的思路及功能

因?yàn)闅怏w流速測量在生產(chǎn)及生活中有著重要的意義,我們小組就想制作一個(gè)通過氣壓傳感器來反映氣體流速的裝置,通過LCD液晶屏顯示實(shí)時(shí)數(shù)據(jù)并且可以通過串口將數(shù)據(jù)傳輸給上位機(jī),通過串口助手顯示出來。思路是使用氣壓傳感器,用注射器向其注射氣體,傳感器產(chǎn)生電壓變化,經(jīng)過單片機(jī)AD轉(zhuǎn)換,數(shù)據(jù)運(yùn)用LCD顯示出來,還有就是通過USB串口傳輸?shù)诫娔X串口助手。

基本的設(shè)計(jì)思路是這樣的:首先,因?yàn)槲覀兊闹黝}是關(guān)于測量的,所以我們選擇了自帶AD轉(zhuǎn)換功能的STC12C5A16AD單片機(jī),然后再搜尋傳感器和串口通訊部分元件。后來找到了XGZP6847型氣體壓力傳感器模塊,這款元件的優(yōu)勢在于電壓信號在模塊內(nèi)部已經(jīng)進(jìn)行了放大,所以輸出信號不需要進(jìn)行放大。而串口通訊則是選擇了PL-2303HX模塊。另外我們選擇了較為常見的LCD1602液晶實(shí)現(xiàn)液晶顯示功能。從而總體的完成了整個(gè)設(shè)計(jì)。

第2章 設(shè)計(jì)方案和硬件電路
2.1、整體功能模塊圖

我們小組設(shè)計(jì)的系統(tǒng)采用STC12C5A16AD單片機(jī)(自帶8路十位精度的AD轉(zhuǎn)換),有氣壓傳感器獲取電壓信號,然后將電壓信號傳送給帶有AD轉(zhuǎn)換的STC12C5A16AD單片機(jī)。由于空氣流速與氣壓有相應(yīng)的正比例函數(shù)關(guān)系,可以根據(jù)得到的數(shù)值求出相應(yīng)比例的空氣流速。然后將數(shù)據(jù)輸送給液晶屏顯示和串口。                     


2.2、各功能模塊的詳細(xì)介紹

2.2.1、單片機(jī)模塊

1、單片機(jī)介紹

STC12C5A16AD單片機(jī)是新一代8051單片機(jī)。相比于普通的51單片機(jī),它增加了許多功能。例如AD轉(zhuǎn)換功能,PWM功能等等。因?yàn)槲覀冞@次設(shè)計(jì)的是一個(gè)用于測量數(shù)據(jù)的系統(tǒng),所以使用這款單片機(jī)就不需要再擴(kuò)展AD轉(zhuǎn)換芯片,可以減少外圍電路。

2-2  單片機(jī)引腳圖

  • 單片機(jī)最小系統(tǒng)

單片機(jī)的最小應(yīng)用系統(tǒng)是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。最小系統(tǒng)一般包括:單片機(jī)、晶振電路和復(fù)位電路。

圖2-3 單片機(jī)最小系統(tǒng)圖

晶振電路: 單片機(jī)系統(tǒng)里都有晶振,在單片機(jī)系統(tǒng)里晶振作用非常大,他結(jié)合單片機(jī)內(nèi)部電路,產(chǎn)生單片機(jī)所需的時(shí)鐘頻率,單片機(jī)晶振提供的時(shí)鐘頻率越高,單片機(jī)的運(yùn)行速度就越快。

復(fù)位電路:在單片機(jī)系統(tǒng)在運(yùn)行中,當(dāng)受到環(huán)境干擾出現(xiàn)程序跑飛時(shí),按下復(fù)位按鈕,使內(nèi)部的程序自動(dòng)從頭開始執(zhí)行。

  • 設(shè)計(jì)思路及理由

我們小組選用這款單片機(jī)的理由是因?yàn)檫@款單片機(jī)廣泛運(yùn)用于測量,它自帶AD轉(zhuǎn)化的功能,可以減少外圍電路,簡化系統(tǒng)。

   4、單片機(jī)引腳連接

表2-1單片機(jī)引腳連接

連接元件

單片機(jī)引腳編號

元件引腳代號

單片機(jī)引腳編號

元件引腳代號

傳感器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型氣體壓力傳感器為壓阻式壓力傳感器,其利用單晶硅的壓阻效應(yīng)構(gòu)成。采用單晶硅片為彈性元件,利用集成電路工藝,在特定方向擴(kuò)散一組等值電阻,并將電阻連成橋路,單晶硅片置于傳感器腔內(nèi)。當(dāng)壓力發(fā)生變化時(shí),單晶硅產(chǎn)生應(yīng)變,使直接擴(kuò)散在上面的應(yīng)變電阻產(chǎn)生與被測壓力成正比的變化,再由橋式電路獲得相應(yīng)的電壓輸出信號。

2、傳感器模塊接線

圖2-4 傳感器模塊原理圖

    本次設(shè)計(jì)采用的是XGZP6847型氣體壓力傳感器模塊,此模塊外圍所接的電路十分簡單,因?yàn)殡妷盒盘栐谀K內(nèi)部已經(jīng)進(jìn)行了放大,所以輸出信號不需要進(jìn)行放大,XGZP6847型氣體壓力變送器模塊共有六個(gè)引腳,其中的1、2、3腳都不需要外接其他電子元件,4腳接+5V電源電壓,5腳是信號輸出引腳,6腳接地即可。在串接一個(gè)10K的電阻R5防止擊穿電容C4。

3、設(shè)計(jì)思路及理由

根據(jù)現(xiàn)代惠斯通原理制成的壓阻式壓力傳感器,有體積小、耗能低、重量輕、響應(yīng)快、便于實(shí)現(xiàn)顯示數(shù)字化等特點(diǎn),而且可以測量壓力,稍加改變,還可以測量差壓、高度、速度、加速度等參數(shù)。因?yàn)楸鞠到y(tǒng)選擇了XGZP6847型氣體壓力傳感器模塊。

2.2.3、顯示模塊

1、LCD顯示屏簡介及選用理由

我們小組用來顯示的液晶屏是LCD1602顯示屏。因?yàn)樵撘壕э@示器具有顯示質(zhì)量高、功耗低、抗干擾能力強(qiáng)、體積小、重量輕等優(yōu)點(diǎn)。                    

圖2-5 LCD顯示電路原理圖


1、PL2303HX模塊

PL2303是Prolific公司生產(chǎn)的一種高度集成的RS232-USB接口轉(zhuǎn)換器,可提供一個(gè)RS232全雙工異步串行通信裝置與USB功能接口便利聯(lián)接的解決方案。

RS232雙向轉(zhuǎn)換器,一方面從主機(jī)接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設(shè);另一方面從RS232外設(shè)接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回主機(jī)。這些工作全部由器件自動(dòng)完成,開發(fā)者無需考慮固件設(shè)計(jì)。PL-2303HX無論在工作中或等待模式中消耗的電量都非常少,可留給連接的設(shè)備許多的電能。與RS-232串行端口的訊號標(biāo)準(zhǔn)一樣靈活,允許PL-2303HX直接連接1.8V~3.3V的設(shè)備。

圖2-6 PL2303HX芯片引腳圖

圖2-7 模塊內(nèi)部結(jié)構(gòu)框圖

它有如下優(yōu)點(diǎn):1.完全符合USB規(guī)范2.0(全速兼容)。2.片內(nèi)擁有USB1.1收發(fā)器,5V轉(zhuǎn)3.3V的穩(wěn)壓器,12MHz的晶體振蕩器。3.支持RS232這樣的串行接口;支持自動(dòng)握手各種模式。

2、串口模塊原理圖

圖2-8 串口模塊原理圖

2.2.5、電源模塊

1、電源開關(guān)原理

通過自鎖開關(guān),控制整個(gè)系統(tǒng)通斷電。

圖2-9電源開關(guān)原理圖

2、自鎖開關(guān)

這個(gè)開關(guān)的兩排引腳中,每一排的中間一只是公共端,兩邊是分別是獨(dú)立的,也就是說,如果你把中間的一只接到負(fù)載端,那么兩邊就是來自電源的進(jìn)線,當(dāng)你把中間一只引腳接負(fù)載端以后,如果你把兩邊的引腳的其中一只接電源,當(dāng)你按下開關(guān)時(shí),負(fù)載工作,那么另外一只就是開關(guān)不按下時(shí)負(fù)載接通電源,也就是說,在這兩排引腳中,除了中間一只引腳是公共端以外,另外兩只引腳中一只是按下開關(guān)后接通電源,而另一只則是按下開關(guān)后斷開電源,簡而言之就是,兩排引腳,中間一只是公共端,而另外兩只,一只是按下關(guān),另一只是按下開;有兩排就是一排對應(yīng)電源正極,另一排對應(yīng)電源負(fù)極,只要把中間電源兩級的公共端接好以后,另外的兩只引腳在接線時(shí)都接在同一側(cè)就可以了,不然的話,接好了還是沒有用,接錯(cuò)了,就會出現(xiàn)如果按下后電源正極接通,那么電源負(fù)極就斷開了,或者不按下時(shí),電源正極接通,負(fù)極又?jǐn)嚅_了。注意,開關(guān)有兩排引腳,每一排有三只引腳,三只引腳中,中間一只是公共端,每一排對應(yīng)電源的每一極。  

第3章 軟件流程及描述

實(shí)現(xiàn)系統(tǒng)功能可以采用多種方法,由于要控制單片機(jī)的AD轉(zhuǎn)換、LCD的顯示和串口的通信,因此,整個(gè)程序可以分為主程序、LCD程序、AD轉(zhuǎn)換程序,由于購買的LCD液晶屏以及單片機(jī)帶有LCD和AD轉(zhuǎn)換的程序,為了方便,我們對其稍做更改并將其設(shè)為子程序。其中,LCD程序主要是用來控制液晶屏的顯示格式以及數(shù)值的;AD轉(zhuǎn)換程序用來對所得到的電壓數(shù)值進(jìn)行相應(yīng)關(guān)系的轉(zhuǎn)化;主程序則是控制子程序的應(yīng)用以及利用接口向上位機(jī)發(fā)送實(shí)時(shí)的數(shù)據(jù)。

圖3-1 軟件流程

3.1主程序設(shè)計(jì)

主程序中需要完成的功能主要有對系統(tǒng)初始值的設(shè)置、AD轉(zhuǎn)換、數(shù)據(jù)發(fā)送、LCD顯示等。系統(tǒng)上電后,需要對定時(shí)器的狀態(tài)進(jìn)行設(shè)置,包括定時(shí)器的工作方式以及數(shù)據(jù)傳輸?shù)拈_始中斷,因此我們首先需要進(jìn)行定時(shí)器的選擇以及工作方式設(shè)定。使用定時(shí)器1的操作模式2:8位自動(dòng)重載,然后根據(jù)波特率為9600裝入初值,TH1=TL1=0xfd。接著我們要設(shè)置串行通信工作模式,SM0=0,SM1=1,打開串行接收允許位,開總中斷與串行中斷。單片機(jī)通過串口向上位機(jī)發(fā)送char型數(shù)組,當(dāng)串行通信發(fā)送完成后,出現(xiàn)信號TI=1。

由于傳感器實(shí)際原因,我們無法測量出正確的空氣流速值來進(jìn)行校正,因此我們決定使用相應(yīng)的比例關(guān)系來計(jì)算得出。首先,我們確定一個(gè)利用單片機(jī)顯示的速度最大值為150mm/s。由于AD轉(zhuǎn)換是十位數(shù)制,最大值為2的10次方即1024,將其乘以0.147便可以得到。其次,當(dāng)系統(tǒng)完成后我們?yōu)榘遄庸╇,燒入程序。保持單片機(jī)顯示的速度為55mm/s勻速擠完1ml的氣體,測量需要33.19s的時(shí)間,而傳感器與針筒接口出截面積為1mm^2,即是速度為33mm/s。因此,利用比例關(guān)系求出正確的流速還應(yīng)該再乘以一個(gè)0.6的修正系數(shù)。在程序中表現(xiàn)就是getADCresult。再令其乘以0.147使得量程為150,再乘以0.6修正。

關(guān)于液晶顯示部分,可以先在程序開頭部分設(shè)定idate數(shù)據(jù)類型,設(shè)定LCD上將要顯示的部分“Sudu:150”,然后再根據(jù)AD得到的結(jié)果顯示出來。

主程序中還可以設(shè)置延時(shí)函數(shù),使用for循環(huán)來進(jìn)行延時(shí),先設(shè)定延時(shí)1毫秒的延時(shí)函數(shù),再根據(jù)此來循環(huán)n次,延時(shí)n秒。

3.2 A/D轉(zhuǎn)換程序設(shè)計(jì)

我們使用的單片機(jī)內(nèi)部自帶AD轉(zhuǎn)換器,是一個(gè)十位轉(zhuǎn)換,分成高八位和低兩位。編寫程序時(shí),我們首先需要選擇相應(yīng)的通道,打開8路通道,還需要能夠清除前一次的數(shù)據(jù)。當(dāng)然,十位的寄存器也需要進(jìn)行相應(yīng)的移位與或運(yùn)算。

3.3 LCD應(yīng)用程序

單片機(jī)的P2.5、P2.6、P2.7分別接LCD1602的rs、rw、en用以控制其讀寫功能,P0口負(fù)責(zé)傳輸需要顯示的數(shù)據(jù),LCD1602可以顯示當(dāng)前空氣的流速。我們編寫程序需要設(shè)定顯示方式,8位數(shù)據(jù)端口,2行顯示。還有就是需要設(shè)定LCD液晶屏的光標(biāo)顯示與否,清屏指令等等。當(dāng)然液晶屏的字符輸入位置也需要進(jìn)行設(shè)定,我們還需要用到庫函數(shù)里的string函數(shù)。

第4章 調(diào)試過程及結(jié)果

4.1、實(shí)驗(yàn)調(diào)試

首先打開燒錄軟件,選擇單片機(jī)型號,并打開程序文件,然后點(diǎn)擊下載/編程。之前遇到了困難,一直無法成功錄入,后來經(jīng)過查詢,需要重啟單片機(jī),就可以成功的燒錄。

圖4-1 程序燒錄

我們設(shè)計(jì)了電源開關(guān)控制電源線,另外串口也可以提供電源。

圖4-2電源插頭及串口
圖4-3開關(guān)斷開后顯示

以下是我們實(shí)際調(diào)試時(shí)的截圖:

下圖是通電后的顯示,因?yàn)闆]有提供風(fēng)力,速度顯示為零。

圖4-4 初始顯示

當(dāng)我們按壓注射器模擬風(fēng)力時(shí),顯示屏上的數(shù)據(jù)就會發(fā)生變化,顯示出當(dāng)前的氣體流速。

圖4-5氣體流速液晶顯示(1)

圖4-6氣體流速液晶顯示(2

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

圖4-7氣體流速串口操作及顯示

通過以上操作,呈現(xiàn)了我們單片機(jī)系統(tǒng)的主要功能。


課程設(shè)計(jì)總結(jié)
課程設(shè)計(jì)是培養(yǎng)學(xué)生實(shí)際應(yīng)用能力的重要課程,我們需要綜合運(yùn)用所學(xué)知識,解決實(shí)際問題;仡檭蓚(gè)星期的單片機(jī)設(shè)計(jì),我們小組學(xué)到了很多單片機(jī)的相關(guān)知識,不僅鞏固了以前所學(xué)的知識,繪制原理圖,還學(xué)習(xí)了畫pcb圖的知識。            通過這次課設(shè)使我懂得了理論與實(shí)際相結(jié)合非常的重要,首先我們按照自己的想法在淘寶上買元件,買來的許多都是貼片,后來經(jīng)過詢問,又去淘寶上購買了一些模塊,模塊在使用上有兩個(gè)特點(diǎn),一是它已經(jīng)完善了功能,我們不需要在進(jìn)行改造,二是我們要查找資料去了解這個(gè)模塊的工作原理。在設(shè)計(jì)單片機(jī)的過程中,我們小組也遇到了很多問題,通過查閱資料和與同學(xué)進(jìn)行交流,也順利解決了這些問題。第一,不夠細(xì)心比如由于粗心大意將不同元器件的端口連接錯(cuò)誤或者忘記連接,第二,是在學(xué)習(xí)態(tài)度上,這次課程設(shè)計(jì)是對我們的學(xué)習(xí)態(tài)度的一次檢驗(yàn),絕對要嚴(yán)謹(jǐn)。第三,在做人上,我認(rèn)識到,無論做什么事情,只要你足夠堅(jiān)強(qiáng),有足夠的毅力和決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。
另外在設(shè)計(jì)單片機(jī)的時(shí)候,加深了對單片機(jī)IO口的輸入輸出的理解,在上個(gè)學(xué)期學(xué)單片機(jī)的時(shí)候,我對于單片機(jī)的認(rèn)知大多還處于理論知識上,而這一次的單片機(jī)課設(shè),讓我更好的把理論知識應(yīng)用到了實(shí)際當(dāng)中,而且這次的設(shè)計(jì)還培養(yǎng)了我的創(chuàng)新精神。這次單片機(jī)課程設(shè)計(jì),既是對課程理論內(nèi)容的一次復(fù)習(xí)和鞏固,讓我豐富了更多與該專業(yè)相關(guān)的其他知識,比如軟件應(yīng)用等。在設(shè)計(jì)原理圖時(shí),要有了一個(gè)清晰的思路和一個(gè)完整的軟件流程圖之后才著手設(shè)計(jì)。在設(shè)計(jì)程序時(shí),我們不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;養(yǎng)成注釋程序的好習(xí)慣是非常必要的,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路。
在設(shè)計(jì)過程中遇到問題是很正常的,但我們應(yīng)該講每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。但是從中學(xué)到的知識會讓我們受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實(shí)踐能力提高都會受益于我在今后的學(xué)習(xí)、工作和生活中。

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


附錄二
PCB圖

單片機(jī)程序源碼(含注釋):
  1. #include <at89x51.H>
  2. #include <intrins.h>
  3. #include <string.H>
  4. #include "1602.h"
  5. #include "ADC.h"   

  6. uchar idata xianshi1[]={"Sudu:     150   "};        // 顯示的第一行內(nèi)容
  7. uchar idata xianshi2[]={"                "}; // 顯示的第二行內(nèi)容

  8. uchar sec=0,min=0,hour=0,deda;
  9. uint yali;
  10. bit send;

  11. sbit BZ=P3^7;

  12. #define FOSC_110592M
  13. //#define FOSC_12M
  14.    
  15. //注意,無論接收到信號還是發(fā)送完信號,都會進(jìn)中斷服務(wù)程序的
  16. /*初始化程序(必須使用,否則無法收發(fā)),次程序?qū)褂枚〞r(shí)器1*/
  17. void SerialInti()//初始化程序(必須使用,否則無法收發(fā))
  18. {
  19.         TMOD=0x21;//定時(shí)器1操作模式2:8位自動(dòng)重載定時(shí)器

  20. #ifdef FOSC_12M                   //在這里根據(jù)晶振大小設(shè)置不同的數(shù)值初始化串口
  21.         TH1=0xf3;//裝入初值,波特率2400
  22.         TL1=0xf3;      
  23. #else        
  24.         TH1=0xfd;//裝入初值,波特率9600
  25.         TL1=0xfd;
  26. #endif //end of SOC_12M
  27.       
  28.         TR1=1;//打開定時(shí)器
  29.         SM0=0;//設(shè)置串行通訊工作模式,(10為一部發(fā)送,波特率可變,由定時(shí)器1的溢出率控制)
  30.         SM1=1;//(同上)在此模式下,定時(shí)器溢出一次就發(fā)送一個(gè)位的數(shù)據(jù)
  31.         REN=0;//串行接收允許位(要先設(shè)置sm0sm1再開串行允許)
  32.         EA=1;//開總中斷
  33.         ES=0;//開串行口中斷      
  34. }

  35.         void delay_1ms(void)                 //1ms延時(shí)函數(shù)
  36. {
  37.    unsigned int i;
  38.    for (i=0;i<840;i++);
  39. }  
  40. void delay_nms(unsigned int n)       //N ms延時(shí)函數(shù)
  41.   {
  42.    unsigned int i=0;
  43.    for (i=0;i<n;i++)
  44.    delay_1ms();
  45.   }

  46. void Uart1Send(uchar c)
  47. {
  48.         SBUF=c;
  49.         while(!TI);//等待發(fā)送完成信號(TI=1)出現(xiàn)
  50.         TI=0;      
  51. }
  52. //串行口連續(xù)發(fā)送char型數(shù)組,遇到終止號/0將停止
  53. void Uart1Sends(uchar *str)
  54. {
  55.         while(*str!='\0')
  56.         {
  57.                 SBUF=*str;
  58.                 while(!TI);//等待發(fā)送完成信號(TI=1)出現(xiàn)
  59.                 TI=0;
  60.                 str++;
  61.         }
  62. }


  63. void timetoseg()// 轉(zhuǎn)換顯示
  64. {
  65.         xianshi1[10] =yali/100%10+0x30;
  66.   xianshi1[11] =yali/10%10+0x30;
  67.   xianshi1[12] =yali%10+0x30;

  68. }

  69. main()
  70. {

  71. InitADC();
  72. LCD_Initial();
  73. SerialInti();      
  74.         GotoXY(0,0);


  75. while(1)
  76. {
  77.            yali=GetADCResult(0);
  78.                  yali*= 0.147*0.6;//滿量程顯示150
  79.                  timetoseg();//
  80.                  GotoXY(0,0);
  81.                  Print(xianshi1);
  82.                  GotoXY(0,1);
  83.                  Print(xianshi2);


  84.       
  85.         Uart1Send(yali/100+0x30);                                //數(shù)據(jù)內(nèi)容
  86.         Uart1Send(yali/10%10+0x30);
  87.         Uart1Send(yali%10+0x30);
  88.         Uart1Send(0x0d);//
  89.         Uart1Send(0x0a);//
  90.         delay_nms(500);

  91. }                                                                                                                                                                                       
  92. }
復(fù)制代碼

全部資料51hei下載地址:
源代碼.rar (3.88 KB, 下載次數(shù): 182)
原理圖.rar (15.87 KB, 下載次數(shù): 112)
視頻.rar (19.71 MB, 下載次數(shù): 81)
課設(shè)報(bào)告.doc (841 KB, 下載次數(shù): 96)
PCB.rar (544.45 KB, 下載次數(shù): 71)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:430492 發(fā)表于 2020-3-7 10:52 | 只看該作者
XGZP6847樣例比輕少,感謝樓主分享,好象有XGZP6867,數(shù)字氣壓傳感器,可能省事兒不少。
回復(fù)

使用道具 舉報(bào)

板凳
ID:673678 發(fā)表于 2020-4-11 15:31 | 只看該作者
想問一下xgzp6847輸出口連接一個(gè)電阻和電容能不能達(dá)到濾波作用?
回復(fù)

使用道具 舉報(bào)

地板
ID:668185 發(fā)表于 2020-4-28 11:34 | 只看該作者
可以用袖帶測血壓嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:815353 發(fā)表于 2020-8-21 04:39 來自手機(jī) | 只看該作者
瘋了的單片機(jī) 發(fā)表于 2020-4-11 15:31
想問一下xgzp6847輸出口連接一個(gè)電阻和電容能不能達(dá)到濾波作用?

可以達(dá)到的。
回復(fù)

使用道具 舉報(bào)

6#
ID:815353 發(fā)表于 2020-8-31 16:29 來自手機(jī) | 只看該作者
這個(gè)程序有全的嗎?謝謝
回復(fù)

使用道具 舉報(bào)

7#
ID:815353 發(fā)表于 2020-9-24 10:58 來自手機(jī) | 只看該作者
sher 發(fā)表于 2020-4-28 11:34
可以用袖帶測血壓嗎

可以的
回復(fù)

使用道具 舉報(bào)

8#
ID:908943 發(fā)表于 2021-4-21 12:21 | 只看該作者
老哥,有XGZP6847的源碼嗎
回復(fù)

使用道具 舉報(bào)

9#
ID:908943 發(fā)表于 2021-5-16 10:47 | 只看該作者
求具體計(jì)算過程!
回復(fù)

使用道具 舉報(bào)

10#
ID:480607 發(fā)表于 2022-12-22 11:30 | 只看該作者
有XGZP6847的源碼嗎?
回復(fù)

使用道具 舉報(bào)

11#
ID:18797 發(fā)表于 2023-3-17 08:29 | 只看該作者
可惜啊,幣不足,,,東西很不錯(cuò)
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表