課程設(shè)計(論文)數(shù)據(jù)采集與數(shù)顯的智能系統(tǒng)設(shè)計_第1頁
課程設(shè)計(論文)數(shù)據(jù)采集與數(shù)顯的智能系統(tǒng)設(shè)計_第2頁
課程設(shè)計(論文)數(shù)據(jù)采集與數(shù)顯的智能系統(tǒng)設(shè)計_第3頁
課程設(shè)計(論文)數(shù)據(jù)采集與數(shù)顯的智能系統(tǒng)設(shè)計_第4頁
課程設(shè)計(論文)數(shù)據(jù)采集與數(shù)顯的智能系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目錄1. 引言12. 方案論證與比較22.1 超聲波測距的原理22.1.1 超聲波的基本理論22.1.2 超聲波測距系統(tǒng)原理22.2 超聲波發(fā)射電路42.3 超聲波接收電路52.4 溫度采集電路83. 硬件系統(tǒng)的設(shè)計93.1 系統(tǒng)整體框圖93.2 系統(tǒng)整體電路103.2.1 單片機電路113.2.2 復(fù)位電路113.2.3 時鐘電路123.2.4 按鍵電路123.2.5 蜂鳴器電路123.3 超聲波發(fā)送電路133.4 超聲波接收電路133.5 溫度采集ds18b20電路153.5.1 ds18b20簡介153.5.2 ds18b20使用163.6 lcd顯示電路163.6.1 1602液晶模塊

2、簡介163.6.2 1602液晶模塊初始化及設(shè)置184. 軟件系統(tǒng)的設(shè)計184.1 系統(tǒng)主程序模塊設(shè)計184.1.1 程序原理184.1.2 軟件流程圖194.1.3 程序代碼204.2 系統(tǒng)其他程序模塊設(shè)計224.2.1 超聲波發(fā)送程序224.2.2 超聲波的接收和處理234.2.3 距離計算程序244.2.4 ds18b20溫度采集程序244.2.5 數(shù)據(jù)轉(zhuǎn)換程序284.2.6 lcd顯示程序295. 系統(tǒng)仿真326. 心得體會33參考文獻34數(shù)據(jù)采集與數(shù)顯的智能系統(tǒng)設(shè)計 摘要:基于傳統(tǒng)的方法在很多特殊場合:如帶腐蝕的液體,強電磁干擾,有毒等惡劣條件下,測量距離存在不可克服的缺陷,設(shè)計超聲

3、波測距能很好的解決此類的問題。本論文先介紹單片機超聲波測距系統(tǒng)的原理,重點設(shè)計測量距離的超聲波的發(fā)生電路與接收電路系統(tǒng)和基于ds18b20溫度采集電路系統(tǒng),再將采集結(jié)果顯示在lcd顯示屏上,最后對系統(tǒng)進行誤差分析。 關(guān)鍵詞:單片機;超聲波測距;ds18b20溫度;lcd顯示;軟件設(shè)計;誤差分析1. 引言在現(xiàn)代化的工業(yè)生產(chǎn)及日常生活中人們經(jīng)常需要用到一些數(shù)據(jù),如:距離、溫度、濕度等等。傳統(tǒng)的數(shù)據(jù)采集工具雖然也能得到這些數(shù)據(jù)但存在誤差比較大,導致工作質(zhì)量不高。采用單片機來采集數(shù)據(jù)系統(tǒng)能夠解決誤差大問題,提高采集數(shù)據(jù)的精確度,提高工作質(zhì)量。而且基于傳統(tǒng)的方法在很多特殊場合:如帶腐蝕的液體,強電磁干擾

4、,有毒等惡劣條件下,人不能直接進行數(shù)據(jù)采集,導致采集數(shù)據(jù)存在不可克服的缺陷。利用mcs-51單片機數(shù)據(jù)采集系統(tǒng)能夠代替人在這些危險的環(huán)境下進行數(shù)據(jù)的采集工作。數(shù)據(jù)采集器的市場需求量大,以數(shù)據(jù)采集器為核心構(gòu)成的小系統(tǒng)應(yīng)用廣泛,因此開發(fā)高性能的數(shù)據(jù)采集器具有良好的市場前景。隨著計算機技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集系統(tǒng)在多個領(lǐng)域有著廣泛的應(yīng)用。如攝像頭,麥克風,電子溫度計,數(shù)顯電子稱,電子血壓表都是我們?nèi)粘I钪薪?jīng)常用到的數(shù)據(jù)采集工具。數(shù)據(jù)采集是工、農(nóng)業(yè)控制系統(tǒng)中至關(guān)重要的一環(huán),在醫(yī)藥、化工、食品、等領(lǐng)域的生產(chǎn)過程中,往往需要隨時檢測各生產(chǎn)環(huán)節(jié)的溫度、濕度、流量及壓力等參數(shù)。將其在某一時間段內(nèi)檢測得

5、到的數(shù)據(jù)經(jīng)過轉(zhuǎn)換提取出來,以便進行比較,做出決策,調(diào)整控制方案,提高產(chǎn)品的合格率,產(chǎn)生良好的經(jīng)濟效益。數(shù)據(jù)采集系統(tǒng)具有廣闊的市場前景,在工業(yè)生產(chǎn)和日常生活中已越來越必不可小。數(shù)據(jù)采集與數(shù)顯系統(tǒng)在社會生活中應(yīng)用廣泛。在各個領(lǐng)域中都有它的身影。它們具有測量精確、操作簡單、工作穩(wěn)定可靠等特點。它們代替了傳統(tǒng)的數(shù)據(jù)采集工具,成為人們工作生活中的主要工具。2. 方案論證與比較數(shù)據(jù)采集與數(shù)顯系統(tǒng)是以單片機為核心,輔助一定的外用設(shè)備就能夠用于采集到許多數(shù)據(jù),但本文重點介紹距離和溫度的數(shù)據(jù)的采集。主要使用超聲波測距的方法來采集距離數(shù)據(jù),在硬件上增加了溫度傳感器測溫電路,采取聲速預(yù)置和媒質(zhì)溫度測量相結(jié)合的辦法對

6、聲速進行修正,降低了溫度變化對測距精度的影響,有利于提高超聲波測距系統(tǒng)的測量精度。重點設(shè)計測量距離的超聲波的發(fā)生電路與接收電路系統(tǒng)和溫度采集電路系統(tǒng),再將采集結(jié)果顯示在lcd顯示屏上,最后對系統(tǒng)進行誤差分析。2.1 超聲波測距的原理2.1.1 超聲波的基本理論超聲波是一門以物理、電子、機械、以及材料科學為基礎(chǔ)的、各行各業(yè)都要使用的通用技術(shù)之一。該技術(shù)在國民經(jīng)濟中,對提高產(chǎn)品質(zhì)量,保障生產(chǎn)安全和設(shè)備安全運作,降低生產(chǎn)成本,提高生產(chǎn)效率特別具有潛在能力。因此,我國對超聲波的研究特別活躍。超聲技術(shù)是通過超聲波的產(chǎn)生、傳播以及接收的物理過程完成的。超聲波具有聚束、定向及反射、投射等特性。按超聲波振動輻

7、射大小不同大致可以分為:用超聲波使物體或物性變化的功率應(yīng)用,稱之為功率超聲;用超聲波獲取信息,稱為檢測超聲1。超聲波是聽覺閾值之外的振動,其頻率范圍在1041012hz,其中通常的頻率大約在1043106之間。超聲波在超聲場(被超聲波充滿的范圍)傳播時,如果超聲波的波長與超聲場相比,超聲場很大,超聲波就像處在一種無限的介質(zhì)中,超聲波自由地向外擴散;反之,如果超聲波的波長與相鄰介質(zhì)的尺寸相近,則超聲波受到界面限制不能自由的向外擴散。2.1.2 超聲波測距系統(tǒng)原理在超聲探測電路中,發(fā)射端得到輸出脈沖為一系列方波,其寬度為發(fā)射超聲的時間間隔,被測物距離越大,脈沖寬度越大,輸出脈沖個數(shù)與被測距離成正比

8、2。超聲測距大致有以下方法:(1)取輸出脈沖的平均值電壓,該電壓 (其幅值基本固定 )與距離成正比,測量電壓即可測得距離;(2)測量輸出脈沖的寬度,即發(fā)射超聲波與接收超聲波的時間間隔 t,故被測距離為 s=12vt。本測量電路采用第二種方案。由于超聲波的聲速與溫度有關(guān),如果溫度變化不大,則可認為聲速基本不變 。如果測距精度要求很高,則應(yīng)通過溫度補償?shù)姆椒右孕U?。超聲波測距適用于高精度的中長距離測量。因為超聲波在標準空氣中的傳播速度為331.45米/秒,由單片機負責計時,單片機使用12.0m晶振,所以此系統(tǒng)的測量精度理論上可以達到毫米級。超聲波測距的算法設(shè)計: 超聲波在空氣中傳播速度為每秒鐘3

9、40米(15時)。x2是聲波返回的時刻,x1是聲波發(fā)聲的時刻,x2-x1得出的是一個時間差的絕對值,假定x2-x1=0.03s,則有340m0.03s=10.2m。由于在這10.2m的時間里,超聲波發(fā)出到遇到返射物返回的距離如下: 圖 2-1 測距原理2.2 超聲波發(fā)射電路(1) 分立元件構(gòu)成的發(fā)射電路圖 2-2 分立元件構(gòu)成的超聲波發(fā)射電路圖2-2是由兩只普通低頻小功率三極管c9013構(gòu)成的振蕩、驅(qū)動電路,三極管q1、q2構(gòu)成兩級放大器,但是由于超聲波發(fā)射頭的正反饋作用,這個原本是放大器的電路變成了振蕩器。超聲波發(fā)射器的壓電晶片可等效于一個串聯(lián)lc諧振電路,具有選頻作用,因此該振蕩器只能振蕩

10、在超聲波發(fā)射頭的固有諧振頻率f0。第二個圖中用電感l(wèi)替代r3這樣可以增大激勵電壓,使其具有較大的功率輸出3。(2) 由集成電路構(gòu)成的發(fā)射電路圖2-3 555構(gòu)成的超聲波發(fā)射電路圖2-3為由555集成芯片構(gòu)成的振蕩、調(diào)制、激勵電路。該電路應(yīng)使用雙極型555(內(nèi)部電路由普通三極管構(gòu)成),不宜使用單極型7555(內(nèi)部電路由cmos電路構(gòu)成,外部引腳與555相同),其原因是7555帶負載能力小。由555集成芯片構(gòu)成多諧振蕩器,該電路的震蕩周期為t=0.695(r19+2r22)c11,通過調(diào)節(jié)r22的阻值可以改變發(fā)射頻率4。(3) 由非門構(gòu)成的超聲波發(fā)射電路圖2-4 由非門構(gòu)成的超聲波發(fā)射電路圖2-4

11、是由非門構(gòu)成的一個振蕩器發(fā)送電路,用非門構(gòu)成的電路簡單,調(diào)試容易。很容易通過軟件控制。圖中把兩個非門的輸出接到一起的目的是為了提高其吸入電流,電路驅(qū)動能力提高。(4)超聲波發(fā)射電路選擇結(jié)論 以上為常用的發(fā)射電路,分立元件構(gòu)成的發(fā)射電路容易受到外界的干擾,體積、功耗也比較大。而集成電路構(gòu)成的發(fā)射電路具有調(diào)試簡單,可靠性好,抗干擾能力強,體積小,功耗低的優(yōu)點,所以首先考慮采用集成電路來組成收發(fā)電路。 在由集成電路構(gòu)成的收發(fā)電路中,發(fā)射電路我們選用由非門構(gòu)成,主要是考慮到系統(tǒng)的調(diào)試簡單、成本低、可靠性好。2.3 超聲波接收電路(1) 由分立元件構(gòu)成的接收電路圖 2-5 為由三極管t1, t2和若干電

12、阻電容組成的兩級阻容耦合交流放大電路。第一級中rl為集電極負載電阻;r2為偏流電阻,同時引入了交直流并聯(lián)電壓負反饋,可以較有效的穩(wěn)定靜態(tài)工作點,改善非線性失真以及增益的穩(wěn)定性;r4 是發(fā)射極負反饋電阻,引入直、交流串聯(lián)電流負反饋,具有穩(wěn)定工作點、增益、改善失真、提高輸入阻抗等作用。 圖 2-5 分立元件構(gòu)成的超聲波接收電路(2) 由運算放大器構(gòu)成的接收電路 圖2-6是由運放構(gòu)成的超聲波放大電路,該電路的形式在其他應(yīng)用中經(jīng)常遇到,特點如下: 1)一般用運放組成的放大電路都要求對稱的正負電源供電,這里以單電源供電,輸出端的靜態(tài)電位必須設(shè)置在1/2的電源電壓,這由同相輸入端的點的電位來確定,r15和

13、r17分壓取得1/2的電源電壓加到運放的同相輸入端,使其電位1/2電源電壓。 2)采用同相端輸入方式其輸入阻抗高,超聲波接收傳感器的輸出信號接到放大器的同相端,有利于超聲波傳感器充分發(fā)揮接收靈敏度和自生的選頻作用。 3)反相端對地不提供直流通路,因此通過隔直電容c8提供直流通路。 圖 2-6 運放構(gòu)成的超聲波接收電路(3) lm1812收發(fā)集成電路構(gòu)成 lm1812是一種專用于超聲波接收和發(fā)送的集成電路,它即可做發(fā)送電路,又可以做接收電路使用。如下圖2-7所示: 圖 2-7 由lm1812構(gòu)成的接收電路(4) cx20106構(gòu)成的接收電路圖 2-8 cx20106構(gòu)成的接收電路圖2-8是cx2

14、0106構(gòu)成的接收電路,內(nèi)部電路由前置放大器、自動偏置電平控制電路、限幅放大器、帶通濾波器、峰值檢波器和整形輸出電路組成。接收的回波信號先經(jīng)過前置放大器和限幅放大器,將信號調(diào)整到合適的幅值;再經(jīng)過帶通濾波器濾波得到有用信號,濾除干擾信號;最后由峰值檢波器和整形電路輸出到鎖相環(huán)路,實現(xiàn)準確的計時5。1腳是接收信號輸入端。2腳是調(diào)節(jié)接收信號靈敏度,電阻越小,靈敏度越高。電容越大,靈敏度越高。電容一般取1f,電阻50300 的,在干擾較大的場合增加電阻阻值可將靈敏度調(diào)低,干擾小的場合減小阻值將靈敏度調(diào)高。5腳主要用來調(diào)節(jié)中心頻率,這里取200 k,7腳接上拉電阻,這里取1 k左右。u4為超聲波接收頭

15、,當收到超聲波時產(chǎn)生一個下降沿,接到單片機的外部中斷int0上。當超聲波接收頭接收到40khz 方波信號時,將會將此信號通過cx20106a 驅(qū)動放大送入單片機的外部中斷0 口。單片機在得到外部中斷0 的中斷請求后,會轉(zhuǎn)入外部中斷0 的中斷服務(wù)程序進行處理。(5)超聲波接收電路選擇結(jié)論以上為常用的接收電路。集成電路cx20106a是一款紅外線檢波接收的專用芯片,常用于電視機紅外遙控接收器。考慮到紅外遙控常用的載波頻率38khz與測距的超聲波頻率40khz較為接近,可以利用它制作超聲波檢測接收電路。實驗證明,用cx20106a接收超聲波(無信號時輸出高電平)具有很高的靈敏度和抗干擾能力。適當?shù)母?/p>

16、改電容c4的大小,可以改變接收電路的靈敏度和抗干擾能力。2.4 溫度采集電路 本系統(tǒng)中的溫度采集電路具有采集溫度并且對測距進行補償?shù)淖饔?,選用ds18b20溫度傳感器作為溫度檢測元件能使該系統(tǒng)采集的數(shù)據(jù)更加準確。 溫度傳感器ds18b20溫度范圍為-55125,最大分辨率在0.0625。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在 93.75 ms和 750 ms內(nèi)完成9位和12位的數(shù)字量,并且從ds18b20讀出的信息或?qū)懭雂s18b20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所

17、掛接的ds18b20供電,而無需額外電源。因而使用ds18b20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。他在測溫精度、轉(zhuǎn)換時間、傳輸距離、分辨率等方面較ds1820有了很大的改進,給用戶帶來了更方便的使用和更令人滿意的效果。其主要特點如下:(1)獨特的單線接口僅需要一個端口引腳進行通信;(2)多個ds18b20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;(3)無須外部器件;(4)可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;(5)零待機功耗;(6)溫度以或位數(shù)字;(7)用戶可定義報警設(shè)置;(8)報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;(9)電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不

18、能正常工作;3. 硬件系統(tǒng)的設(shè)計3.1 系統(tǒng)整體框圖數(shù)據(jù)采集與數(shù)顯系統(tǒng)是以單片機為核心,輔助一定的外用設(shè)備就能夠用于采集到許多數(shù)據(jù),如:攝像頭、麥克風、電子溫度計、數(shù)顯電子稱、電子血壓表都是我們?nèi)粘I钪薪?jīng)常用到以單片機為核心的數(shù)據(jù)采集與數(shù)顯系統(tǒng)。但本文重點介紹距離和溫度的數(shù)據(jù)的采集,并將結(jié)果顯示在lcd上。本系統(tǒng)主要由以at89s52為核心、超聲波的發(fā)生電路和接收電路、ds18b20溫度采集電路、顯示電路等組成。首先,由溫度采集電路采集溫度在顯示電路上顯示出來,并且將采集到的溫度數(shù)送入單片機計算當前溫度下的聲速確定后,然后通過超聲波的發(fā)生電路和接收電路測得超聲波往返的時間來測出距離并顯示。a

19、t89s52單片機控制器超聲波發(fā)射電路超聲波接收電路lcd顯示電路溫度檢測電路圖 3-1 數(shù)據(jù)采集與數(shù)顯系統(tǒng)整體框圖3.2 系統(tǒng)整體電路 圖 3-2 系統(tǒng)原理電路圖 圖3-2是系統(tǒng)原理電路圖。本次我們采用了atmel 公司的at89s52,該單片機主要特點如下:(1) at89s52系列單片機以8051為內(nèi)核,兼容mcs-51系列單片機。(2) at89s52系列單片機內(nèi)、內(nèi)部含有flash存儲器,在系統(tǒng)開發(fā)可以反復(fù)擦寫。(3) at89s52采用靜態(tài)時鐘方式,可以節(jié)省電能。(4) at89s52支持isp(在線編程),不需要把單片機從電路板取下來就可以擦寫程序。(5) at89s52晶振頻率

20、高達24m,運行速度更快。3.2.1 單片機電路 引腳功能:p0口用來送顯示信號給lcd的數(shù)據(jù)為,p20p22送命令到lcd控制lcd的顯示方式。p3.7為ds18b20溫度數(shù)據(jù)采集端。p1.0接測量按鍵6。 圖3-3 單片機主電路3.2.2 復(fù)位電路單片機在reset端加一個大于20ms正脈沖即可實現(xiàn)復(fù)位,上電復(fù)位和按鈕組合的復(fù)位電路如下:1)上電復(fù)位在系統(tǒng)上電的瞬間,rst與電源電壓同電位,隨著電容的電壓逐漸上升,rst電位下降,于是在rst形成一個正脈沖。只要該脈沖足夠?qū)捑涂梢詫崿F(xiàn)復(fù)位,即ms。一般取r1,c22uf7。 圖3-4復(fù)位電路2)手動復(fù)位 當人按下按鈕s1時,使電容c1通過r

21、1迅速放電,待s1彈起后,c再次充電,實現(xiàn)手動復(fù)位。r1一般取200。3.2.3 時鐘電路當使用單片機的內(nèi)部時鐘電路時,單片機的xatl1和xatl2用來接石英晶體和微調(diào)電容,如圖所示,晶體一般可以選擇3m24m,電容選擇30pf左右。我們選擇晶振為12mhz,電容33pf。 圖3-5 時鐘電路3.2.4 按鍵電路 我們通過p1.0來啟動測量,程序中通過查詢p1.0的電平來檢測是否按鍵被按下,電路原理如下:當按下按鍵時p1.0為低電平,單片機通過 查詢到低電平開始測量距離,當松開按鍵,p1.0即為高電平。在軟件中通過軟件延時來消除按鍵的機械抖動。 圖 3-6 按鍵電路3.2.5 蜂鳴器電路 本

22、次設(shè)計通過一只蜂鳴器來提示用戶按鍵按下了,現(xiàn)在單片機開始了測距。蜂鳴器時一塊壓電晶片,在其兩端加上35v的直流電壓,就能產(chǎn)生3khz的蜂鳴聲。電路如圖3-7通過單片機軟件產(chǎn)生3khz的信號從p3.7口送到三極管9.13的基極,控制著電壓加到蜂鳴器上,驅(qū)動蜂鳴器發(fā)出聲音。 圖3-7 蜂鳴器電路3.3 超聲波發(fā)送電路超聲波發(fā)生器包括超聲波產(chǎn)生電路和超聲波發(fā)射控制電路兩個部分,超聲波探頭(“也稱為超聲波換能器”)的型號選用csb40t(其中心頻率為40khz)。可以采用軟件產(chǎn)生40khz的超聲波信號,通過輸出引腳輸入至驅(qū)動器,經(jīng)過驅(qū)動器驅(qū)動后推動探頭產(chǎn)生超聲波。這種方法的特點是充分利用軟件,靈活性好

23、,但是需要設(shè)計一個驅(qū)動電流為100ma以上的驅(qū)動電路8。第二種方法是利用超聲波專用發(fā)生電路或通用發(fā)生電路產(chǎn)生超聲波信號,并直接驅(qū)動超聲波換能器產(chǎn)生超聲波。這種方法的特點是無需驅(qū)動電路,但缺乏靈活性。本次我們采用第一種方法產(chǎn)生超聲波,非門可以選用74ls04,具體電路如圖: 圖 3-8 超聲波發(fā)送電路從圖中可知,當輸入的信號為高電平時,上面經(jīng)過兩級反向csb40t的1引腳為高電平,下面經(jīng)過一級反向后為低電平;當輸入信號為低電平時,正好相反,實現(xiàn)了振蕩的信號驅(qū)動csb40t,只要控制信號接近40khz,就能產(chǎn)生超聲波。3.4 超聲波接收電路 超聲波接收包括接收探頭,信號放大以及波形變換電路三部分,

24、超聲波接收探頭必須與發(fā)送探頭相同的型號,否則可能導致接收效果甚至不能接收。由于超聲波接收探頭的信號非常弱,所以必須用放大器放大,放大后的正弦波不能被微處理器處理,所以必須經(jīng)過波形變換。本次設(shè)計為了降低調(diào)試難度,減少成本,提供系統(tǒng)可靠性,所以我們采用了一種用在彩色電視機上面的一種紅外接收檢波芯片cx20106,由于紅外遙控的中心頻率在38khz,和超聲波的40khz很接近,所以可以用來做接收電路。cx20106是日本索尼公司的產(chǎn)品,采用單列8引腳的直插式封裝,內(nèi)部包含自動偏置控制電路、前置放大電路、帶通濾波、峰值檢波、積分比較器、斯密特整形輸出電路,配合少量外接元件就可以對38khz左右的信號的

25、接收與處理,該芯片內(nèi)部如下圖所示:圖3-9 cx20106內(nèi)部結(jié)構(gòu)cx20106構(gòu)成本次設(shè)計接收電路如下圖:圖 3-10 超聲波接收電路使用cx20106a集成電路對接收探頭受到的信號進行放大、濾波。其總放大增益80db。以下是cx20106a的引腳注釋9。1腳:超聲信號輸入端,該腳的輸入阻抗約為40k。2腳:該腳與地之間連接rc串聯(lián)網(wǎng)絡(luò),它們是負反饋串聯(lián)網(wǎng)絡(luò)的一個組成部分,改變它們的數(shù)值能改變前置放大器的增益和頻率特性。增大電阻r4或減小c4,將使負反饋量增大,放大倍數(shù)下降,反之則放大倍數(shù)增大。但c4的改變會影響到頻率特性,一般在實際使用中不必改動,推薦選用參數(shù)為r4=4.7,c4=1f。3

26、腳:該腳與地之間連接檢波電容,電容量大為平均值檢波,瞬間相應(yīng)靈敏度低;若容量小,則為峰值檢波,瞬間相應(yīng)靈敏度高,但檢波輸出的脈沖寬度變動大,易造成誤動作,推薦參數(shù)為 3.3 f。4腳:接地端。5腳:該腳與電源間接入一個電阻,用以設(shè)置帶通濾波器的中心頻率f0,阻值越大,中心頻率越低。例如,取r=200k時,f042khz,若取r=220k,則中心頻率f038khz。6腳: 該腳與地之間接一個積分電容,標準值為330pf,如果該電容取得太大,會使探測距離變短。7腳:遙控命令輸出端,它是集電極開路輸出方式,因此該引腳必須接上一個上拉電阻到電源端,推薦阻值為22 k,沒有接受信號是該端輸出為高電平,有

27、信號時則產(chǎn)生下降。8腳:電源正極,4.55v。3.5 溫度采集ds18b20電路本次我們考慮溫度補償所以需要對溫度進行采集,以使我們的設(shè)計更加精確,溫度的采集通常使用ds18b20一線式數(shù)字溫度傳感器,電路非常簡潔,具體電路圖如下圖3-11所示。圖3-11 溫度采集ds18b20電路3.5.1 ds18b20簡介 ds18b20是美國dalls公司推出的ds1820的替代產(chǎn)品,具有9、10、11、12位的轉(zhuǎn)換精度,未編程時默認的精度是12位,測量精度一般為0.5c,軟件處理后可以達到0.1c,溫度輸出以16位符號擴展的二進制數(shù)形式提供,低位在先,以0.0625c/lsb形式表達。其中高五位為擴

28、展符號位。轉(zhuǎn)換周期與轉(zhuǎn)換精度有關(guān),9位轉(zhuǎn)換精度時,最大轉(zhuǎn)換時間為93.7 ms,12位轉(zhuǎn)換精度時,最大轉(zhuǎn)換時間為750ms。ds18b20引腳判斷方法是:字面朝人,從左到右依次是1(gnd)、2(輸入/輸出)、3(vcc)10。3.5.2 ds18b20使用 ds18b20可以直接讀出被測溫度值,而且采用了線制與單片機相連,減少了外部的硬件電路。當ds18b20處于寫存儲器操作和溫度a/d變換操作時,總線上必須有強的上拉,上拉開啟時間最大為10s。采用寄生電源供電方式是vcc和gnd端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三態(tài)的。主機控制ds18b20完成溫度轉(zhuǎn)換必須經(jīng)過3個步驟:

29、初始化、rom操作指令、存儲器操作指令。假設(shè)單片機系統(tǒng)所用的晶振頻率為12mhz,根據(jù)ds18b20的初始化時序、寫時序和讀時序,分別編寫3個子程序:init為初始化子程序,write為寫(命令或數(shù)據(jù))子程序,read為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫均由最低位開始,實際在實驗中不用這種方式,只要在數(shù)據(jù)線上加一個上拉電阻4.7 k(圖3-11中的r13為上拉電阻,阻值選5k左右),另外2個腳分別接電源和地11。3.6 lcd顯示電路3.6.1 1602液晶模塊簡介 本設(shè)計采用lcd液晶顯示屏顯示。其具有體積小、功耗低、界面美觀大方等優(yōu)點,這里使用yb1602液晶屏,1602顯示模塊用點陣圖形顯示字

30、符,顯示模式分為2行16個字符。它具有16個引腳,其正面左起為第一腳,如下圖所示:圖3-12 lcd顯示電路 第1腳gnd:接地。第2腳vcc:+5v電源。第3腳vo:對比度調(diào)整端。使用時接一個10k 的 電阻調(diào)節(jié)。第4腳rs:寄存器選擇信號線。第5腳rw:讀寫信號線。第6腳e:使能端,當e由高電平跳變低電平時 執(zhí)行命令。 第714腳:8位數(shù)據(jù)線d0d7。 第15腳bla:背光電源正極輸入端。第16腳blk:背光電源負極輸入端。 1602液晶模塊內(nèi)部的字符發(fā)生存儲器(cgrom)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符

31、都有一個固定的代碼, 比如大寫的英文字母“a”的代碼是 01000001b(41h),顯示時模塊把地址41h中的點陣字符圖形顯示出來,我們就能看到字母“a”。 因為1602識別的是ascii碼,試驗可以用ascii碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如a。1602通過d0d7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。操作控制表操作讀狀態(tài)寫指令讀數(shù)據(jù)寫數(shù)據(jù)輸入rs=0,rw=1,e=1rs=0,rw=0,d07=指令碼,e=h脈沖rs=1,rw=1,e=1rs=1,rw=0,d07=數(shù)據(jù),e=h脈沖表3-1 lcd1602操作指令3.6.2 1602液晶模塊初始化及設(shè)置1)顯示模式設(shè)置:

32、0011 0000 0x38設(shè)置162顯示,57點陣,8位數(shù)據(jù)接口; 2)顯示開關(guān)及光標設(shè)置: 0000 1dcb d顯示(1有效)、c光標顯示(1有效)、b光標閃爍(1有效)0000 01ns n=1(讀或?qū)懸粋€字符后地址指針加1 &光標加1),n=0(讀或?qū)懸粋€字符后地址指針減1 &光標減1),s=1 且 n=1 (當寫一個字符后,整屏顯示左移)s=0 當寫一個字符后,整屏顯示不移動 3)數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80h,所以數(shù)據(jù)地址為80h+地址碼(0-27h,40-67h) 4)其他設(shè)置:01h(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02h(顯示回車,數(shù)據(jù)指針 =0)。4. 軟件系統(tǒng)

33、的設(shè)計4.1 系統(tǒng)主程序模塊設(shè)計4.1.1 程序原理 本設(shè)計主程序的思想如下: (1)溫度為兩位顯示,距離為四位顯示單位為mm; (2)溫度每隔900ms采樣一次,ds18b20在12位精度下轉(zhuǎn)換周期為750ms ,故900ms滿足該速度要求;超聲波每隔60ms發(fā)送一次。 (3)按鍵s為測量啟動鍵; (4)系統(tǒng)采用at89s52的內(nèi)時鐘:12mhz; (5)超聲波發(fā)送一定時間后才開始啟動檢測,避免直達信號造成誤判。所以系統(tǒng)最小測量約為112mm; (6)沒有使用看門狗功能;4.1.2 軟件流程圖通過lcd顯示計算出距離值延時0.5s關(guān)閉計數(shù)器換算當前溫度下的聲速讀取溫度值計算超聲波傳播時間發(fā)4

34、0khz方波3個周期,開啟計數(shù)器發(fā)射信號進入中斷初始化開始 圖 4-1 主程序流程圖4.1.3 程序代碼void main(void) uchar i,j; for(i=0;i255;i+) for(j=0;j255;j+); /延時,等待系統(tǒng)外圍復(fù)位完成 sys_init(); /初始化 display(); /顯示 sta_flag=0; /標準復(fù)位 waitforstarting: /檢測按鍵 while(start); for(i=0;i20;i+) delay1ms(); if(start) goto waitforstarting; buzzer=0; /蜂鳴器鳴音一次提示按鍵按下

35、 i=100000; while(i-); buzzer=1; i=100000; while(i-); tr0=1; /啟動定時器0 et0=1; testtemp(); /啟動溫度轉(zhuǎn)換 while(1) if(sta_flag) /60ms到了,超聲波已經(jīng)發(fā)送 while(0=csbin); /等待超聲波返回 tr1=0; jsh=th1; /停止計數(shù) jsl=tl1; if(15=count) /1s到,檢測溫度 temp=wd(); count=0; testtemp(); /重新啟動轉(zhuǎn)換 display(); /刷新顯示 computer(); /計算距離 hextobcd(); /

36、轉(zhuǎn)化成bcd碼 sta_flag=0; /標志清零 void sys_init(void) uchar i; for(i=0;i29;i+) /顯示清零 numi=0; tmod=0x11; th0=0x15; tl0=0xa0; p0=0; cnt=0; /超聲波發(fā)送關(guān)閉 csbin=1; ea=1; /開放總中斷 init_lcd(); 4.2 系統(tǒng)其他程序模塊設(shè)計4.2.1 超聲波發(fā)送程序 (1) 程序原理超聲波的每過 60ms發(fā)送一次,通過定時器t0中斷中發(fā)送超聲波,超聲波發(fā)送后延時一段時間后返回。由于超聲波的發(fā)射探頭t發(fā)出的超聲波一部分會直接傳送到超聲波的接收探頭r中,從而產(chǎn)生錯誤的

37、判斷;為了避免這一錯誤的產(chǎn)生,在開始發(fā)出信號時,必須關(guān)閉外部中斷int0;當發(fā)射完畢時,開啟外部中斷 int0 ,同時還要先清掉外部中斷的請求標志ie0 ,這又是因為在關(guān)閉了外部中斷的情況下,中斷信號還是會產(chǎn)生的,請求標志仍然存在,只有清除了該標志位,才能避免系統(tǒng)對該中斷請求的響應(yīng)12。(2) 軟件流程圖定時器初始 發(fā)射超聲波開計時器停止發(fā)射返回 圖 4-2 超聲波發(fā)送程序流程圖 (3) 程序代碼void timer0(void)interrupt 1 using 0 th0=0x15; tl0=0xa0; th1=0; tl1=0; sta_flag=1; /標志置為1 count+; /計

38、次單元加1 _nop_(); /開始發(fā)送超聲波40khz _nop_(); _nop_(); cnt=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); cnt=0; _nop_(); _nop_(); _nop_(); _nop_(); tr1=1; /啟動定時器1計數(shù) delay15(50); /延時避開直達信號4.2.2 超聲波的接收和處理 超聲波由超聲波接收頭接收,經(jīng)過cx20106檢波放大變換后送到單片機的p2.6腳

39、,程序中通過指令: while(0=csbin);來查詢,接收到超聲波信號后往下面執(zhí)行,進行計算處理,距離計算中,實行了溫度補償和夾角補償。本設(shè)計中需注意當距離過遠或者沒有返回信號時候,定時器t1的溢出必須處理13。4.2.3 距離計算程序 距離計算中,實行了溫度補償和夾角補償。程序代碼如下 void computer(void) /距離計算函數(shù) float c,d,s; uint t; if(temp 0; i-) dq = 0; dq = dat&0x01; /寫入命令 delay(5); dq = 1; dat=1; /移位為寫入下一位準備/*字讀函數(shù)*/uchar readonecha

40、r(void)/讀一個字節(jié)uchar i = 0;uchar dat = 0; for (i = 8; i 0; i-) dq = 0; / 給脈沖信號 dat = 1; dq = 1; / 給脈沖信號 if(dq) dat |= 0x80; /拼裝處理 delay(15); return (dat);*讀取溫度函數(shù)*/ uint wd(void) unsigned int a = 0, b = 0, t = 0; init_18b20(); /初始化ds18b20 writeonechar(0xcc); /跳過讀序號列號的操作 writeonechar(0xbe); /讀取溫度寄存器 a =

41、 readonechar(); /讀取一個字節(jié) b = readonechar(); t = b; t = 8; t = t | a; /字節(jié)合并 return (t); /返回結(jié)果給調(diào)用 4.2.5 數(shù)據(jù)轉(zhuǎn)換程序經(jīng)過求的數(shù)據(jù)原碼無法直接用于顯示,必須轉(zhuǎn)換為lcd所接受的bcd碼的形式,而且在溫度補償和距離計算中沒有考慮小數(shù)點的存在,而實際顯示必須考慮小數(shù)和有效位數(shù),這樣就必須對數(shù)據(jù)進行取舍。*數(shù)據(jù)轉(zhuǎn)換函數(shù)* void hextobcd(void) /轉(zhuǎn)化成2進制 float tp; unsigned long int tmp; fuhao=0; if(temp0x8000) tp=temp*

42、0.0625; else /溫度小于0,求補碼得到原碼 bm(); tp=temp*0.0625; fuhao=1; tp*=10; tmp=tp; num12=tmp/100; /數(shù)據(jù)轉(zhuǎn)換后放到顯示數(shù)組 if(fuhao) num12=num12|0x80; /最高位加上負號 num13=tmp/10-(tmp/100)*10; tmp=distance; num25=tmp/1000; tmp%=1000; num26=tmp/100; tmp%=100; num27=tmp/10; tmp%=10; num28=tmp/1; 4.2.6 lcd顯示程序 (1) 程序原理 lcd液晶顯示程

43、序分為液晶初始化、讀忙、寫指令和寫數(shù)據(jù)操作,液晶顯示器是一塊慢器件,所以在執(zhí)行每條指令之前必須確定模塊忙標志為低電平(不忙),否側(cè)此指令無效。 (2) 軟件流程圖 圖 4-4 lcd顯示程序流程圖(3) 程序代碼 *lcd的初始化*void init_lcd(void) delay(); /稍微延時,等待lcd進入工作狀態(tài)write_comm(0x01);/清顯示write_comm(0x02);/光標歸位 write_comm(0x38);/8位2行5*8 write_comm(0x06);/文字不動,光標右移 write_comm(0x0c);/顯示開/關(guān),光標開閃爍開write_comm

44、(0x18);/左移*判讀lcd是否為忙狀態(tài)*void read_busy(void)/讀忙信號判斷dolcd_data = 0xff;rs = 0;rw = 1;e = 0;delay();e = 1; while(busy);*寫入指令函數(shù)*void write_comm(uchar lcdcomm) lcd_data = lcdcomm;rs = 0;rw = 0;e = 0;read_busy(); e = 1;*寫入數(shù)據(jù)函數(shù)*void write_data(uchar lcddata)lcd_data = lcddata;rs = 1;rw = 0;e = 0;read_busy();e = 1;*lcd顯示函數(shù)*void display(void) uchar a,b,d; /init_lcd(); write_comm(0x01);/清顯示 write_comm(0x80);/寫首地址 for(a=0;a11)&(a14) d=numcodenuma; /待顯示的結(jié)果 if(14=a) d=0xdf; write_data(d); /寫入要顯示的數(shù)據(jù) write_comm(0xc0); /換

溫馨提示

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

評論

0/150

提交評論