欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)+XGZP6847風(fēng)速測(cè)量?jī)x設(shè)計(jì)與制作 含源程序,PCB與視頻文檔 [打印本頁]

作者: zxjzxjzxj    時(shí)間: 2019-1-16 10:38
標(biāo)題: 單片機(jī)+XGZP6847風(fēng)速測(cè)量?jī)x設(shè)計(jì)與制作 含源程序,PCB與視頻文檔
今日臺(tái)風(fēng)消息時(shí)有聽聞,我們小組便想設(shè)計(jì)一個(gè)氣體流速測(cè)量計(jì)。本次設(shè)計(jì)主要是利用STC單片機(jī)實(shí)現(xiàn)對(duì)氣壓傳感器發(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)會(huì)在接下來的報(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ì)的背景

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

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

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

因?yàn)闅怏w流速測(cè)量在生產(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)于測(cè)量的,所以我們選擇了自帶AD轉(zhuǎn)換功能的STC12C5A16AD單片機(jī),然后再搜尋傳感器和串口通訊部分元件。后來找到了XGZP6847型氣體壓力傳感器模塊,這款元件的優(yōu)勢(shì)在于電壓信號(hào)在模塊內(nèi)部已經(jīng)進(jìn)行了放大,所以輸出信號(hào)不需要進(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)換),有氣壓傳感器獲取電壓信號(hào),然后將電壓信號(hào)傳送給帶有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è)用于測(cè)量數(shù)據(jù)的系統(tǒng),所以使用這款單片機(jī)就不需要再擴(kuò)展AD轉(zhuǎn)換芯片,可以減少外圍電路。

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

單片機(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í)行。

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

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

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

連接元件

單片機(jī)引腳編號(hào)

元件引腳代號(hào)

單片機(jī)引腳編號(hào)

元件引腳代號(hào)

傳感器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)生與被測(cè)壓力成正比的變化,再由橋式電路獲得相應(yīng)的電壓輸出信號(hào)。

2、傳感器模塊接線

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

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

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

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

2.2.3、顯示模塊

1、LCD顯示屏簡(jiǎn)介及選用理由

我們小組用來顯示的液晶屏是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串行端口的訊號(hào)標(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)后斷開電源,簡(jiǎn)而言之就是,兩排引腳,中間一只是公共端,而另外兩只,一只是按下關(guān),另一只是按下開;有兩排就是一排對(duì)應(yīng)電源正極,另一排對(duì)應(yīng)電源負(fù)極,只要把中間電源兩級(jí)的公共端接好以后,另外的兩只引腳在接線時(shí)都接在同一側(cè)就可以了,不然的話,接好了還是沒有用,接錯(cuò)了,就會(huì)出現(xiàn)如果按下后電源正極接通,那么電源負(fù)極就斷開了,或者不按下時(shí),電源正極接通,負(fù)極又?jǐn)嚅_了。注意,開關(guān)有兩排引腳,每一排有三只引腳,三只引腳中,中間一只是公共端,每一排對(duì)應(yīng)電源的每一極。  

第3章 軟件流程及描述

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

圖3-1 軟件流程

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

主程序中需要完成的功能主要有對(duì)系統(tǒng)初始值的設(shè)置、AD轉(zhuǎn)換、數(shù)據(jù)發(fā)送、LCD顯示等。系統(tǒng)上電后,需要對(duì)定時(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)信號(hào)TI=1。

由于傳感器實(shí)際原因,我們無法測(cè)量出正確的空氣流速值來進(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)榘遄庸╇姡瑹氤绦颉13謫纹瑱C(jī)顯示的速度為55mm/s勻速擠完1ml的氣體,測(cè)量需要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ī)型號(hào),并打開程序文件,然后點(diǎn)擊下載/編程。之前遇到了困難,一直無法成功錄入,后來經(jīng)過查詢,需要重啟單片機(jī),就可以成功的燒錄。

圖4-1 程序燒錄

我們?cè)O(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ù)就會(huì)發(fā)生變化,顯示出當(dāng)前的氣體流速。

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

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

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

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

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


課程設(shè)計(jì)總結(jié)
課程設(shè)計(jì)是培養(yǎng)學(xué)生實(shí)際應(yīng)用能力的重要課程,我們需要綜合運(yùn)用所學(xué)知識(shí),解決實(shí)際問題。回顧兩個(gè)星期的單片機(jī)設(shè)計(jì),我們小組學(xué)到了很多單片機(jī)的相關(guān)知識(shí),不僅鞏固了以前所學(xué)的知識(shí),繪制原理圖,還學(xué)習(xí)了畫pcb圖的知識(shí)。            通過這次課設(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ì)是對(duì)我們的學(xué)習(xí)態(tài)度的一次檢驗(yàn),絕對(duì)要嚴(yán)謹(jǐn)。第三,在做人上,我認(rèn)識(shí)到,無論做什么事情,只要你足夠堅(jiān)強(qiáng),有足夠的毅力和決心,有足夠的挑戰(zhàn)困難的勇氣,就沒有什么辦不到的。
另外在設(shè)計(jì)單片機(jī)的時(shí)候,加深了對(duì)單片機(jī)IO口的輸入輸出的理解,在上個(gè)學(xué)期學(xué)單片機(jī)的時(shí)候,我對(duì)于單片機(jī)的認(rèn)知大多還處于理論知識(shí)上,而這一次的單片機(jī)課設(shè),讓我更好的把理論知識(shí)應(yīng)用到了實(shí)際當(dāng)中,而且這次的設(shè)計(jì)還培養(yǎng)了我的創(chuàng)新精神。這次單片機(jī)課程設(shè)計(jì),既是對(duì)課程理論內(nèi)容的一次復(fù)習(xí)和鞏固,讓我豐富了更多與該專業(yè)相關(guān)的其他知識(shí),比如軟件應(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é)到的知識(shí)會(huì)讓我們受益終身。發(fā)現(xiàn)、提出、分析、解決問題和實(shí)踐能力提高都會(huì)受益于我在今后的學(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. //注意,無論接收到信號(hào)還是發(fā)送完信號(hào),都會(huì)進(jìn)中斷服務(wù)程序的
  16. /*初始化程序(必須使用,否則無法收發(fā)),次程序?qū)?huì)使用定時(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ā)送完成信號(hào)(TI=1)出現(xiàn)
  50.         TI=0;      
  51. }
  52. //串行口連續(xù)發(fā)送char型數(shù)組,遇到終止號(hào)/0將停止
  53. void Uart1Sends(uchar *str)
  54. {
  55.         while(*str!='\0')
  56.         {
  57.                 SBUF=*str;
  58.                 while(!TI);//等待發(fā)送完成信號(hào)(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)


作者: cooleaf    時(shí)間: 2020-3-7 10:52
XGZP6847樣例比輕少,感謝樓主分享,好象有XGZP6867,數(shù)字氣壓傳感器,可能省事兒不少。
作者: 瘋了的單片機(jī)    時(shí)間: 2020-4-11 15:31
想問一下xgzp6847輸出口連接一個(gè)電阻和電容能不能達(dá)到濾波作用?
作者: sher    時(shí)間: 2020-4-28 11:34
可以用袖帶測(cè)血壓?jiǎn)?hr noshade size="2" width="100%" color="#808080"> 作者: 大物競(jìng)賽    時(shí)間: 2020-8-21 04:39
瘋了的單片機(jī) 發(fā)表于 2020-4-11 15:31
想問一下xgzp6847輸出口連接一個(gè)電阻和電容能不能達(dá)到濾波作用?

可以達(dá)到的。
作者: 大物競(jìng)賽    時(shí)間: 2020-8-31 16:29
這個(gè)程序有全的嗎?謝謝
作者: 大物競(jìng)賽    時(shí)間: 2020-9-24 10:58
sher 發(fā)表于 2020-4-28 11:34
可以用袖帶測(cè)血壓?jiǎn)?/font>

可以的
作者: Leslie-Hao    時(shí)間: 2021-4-21 12:21
老哥,有XGZP6847的源碼嗎
作者: Leslie-Hao    時(shí)間: 2021-5-16 10:47
求具體計(jì)算過程啊!
作者: lzy89c55    時(shí)間: 2022-12-22 11:30
有XGZP6847的源碼嗎?

作者: microhl    時(shí)間: 2023-3-17 08:29
好資料,51黑有你更精彩!!!,,東西很不錯(cuò)
作者: longyo    時(shí)間: 2025-5-24 15:26
下來看看




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1