2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩62頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  學(xué)科分類號(hào) 0805 </p><p>  本 科 畢 業(yè) 設(shè) 計(jì)</p><p>  題目(中文): 體重及超聲波遠(yuǎn)距測(cè)高儀-----體重檢測(cè) </p><p> ?。ㄓ⑽模篧eight and ultrasonic distance altimeter </p><p>  

2、-----weight detection </p><p>  姓 名 </p><p>  學(xué) 號(hào) </p><p>  院 (系)

3、 工程與設(shè)計(jì)學(xué)院 </p><p>  專業(yè)、年級(jí) </p><p>  指導(dǎo)教師 陳兆仁 </p><p><b>  二〇一四年 五

4、月 </b></p><p><b>  本科畢業(yè)設(shè)計(jì)任務(wù)書</b></p><p>  湖 南 師 范 大 學(xué)</p><p>  工程與設(shè)計(jì) 學(xué)院指導(dǎo)教師指導(dǎo)畢業(yè)設(shè)計(jì)情況登記表</p><p>  湖南師范大學(xué)本科畢業(yè)設(shè)計(jì)評(píng)審表</p><p>  說(shuō)明:評(píng)定成績(jī)分為優(yōu)秀、良好、中

5、等、及格、不及格五個(gè)等級(jí),總成績(jī)90—100分記為優(yōu)秀,80—89分記為良好,70—79分記為中等,60—69分記為及格,60分以下記為不及格。若譯文成績(jī)?yōu)榱?,則不計(jì)總成績(jī),評(píng)定等級(jí)記為不及格。</p><p>  湖南師范大學(xué)本科畢業(yè)設(shè)計(jì)答辯記錄表</p><p><b>  目 錄</b></p><p><b>  摘 要

6、1</b></p><p>  Abstract2</p><p><b>  1 引言3</b></p><p>  1.1 選題背景及目的3</p><p>  1.2 總體方案設(shè)計(jì)與論證4</p><p>  1.2.1 設(shè)計(jì)任務(wù)4</p><p&

7、gt;  1.2.2 設(shè)計(jì)內(nèi)容4</p><p>  1.2.3 方案論證與選擇4</p><p>  2 硬件電路設(shè)計(jì)6</p><p>  2.1 主控電路6</p><p>  2.2 超聲波測(cè)高模塊電路7</p><p>  2.2.1 超聲波傳感器及其測(cè)高原理7</p><p&

8、gt;  2.2.2 超聲波傳感器電氣參數(shù)及其時(shí)序圖8</p><p>  2.3 壓力傳感器稱重模塊10</p><p>  2.3.1 壓力傳感器10</p><p>  2.3.2 稱重AD轉(zhuǎn)換芯片11</p><p>  2.3.3 稱重部分AD轉(zhuǎn)換基本原理13</p><p>  2.3.4 稱重傳

9、感器重量標(biāo)定15</p><p>  2.4 LCD1602液晶顯示模塊16</p><p>  2.4.1 LCD1602介紹16</p><p>  2.4.2 LCD1602主要技術(shù)參數(shù)及其時(shí)序圖17</p><p>  3 系統(tǒng)軟件設(shè)計(jì)20</p><p>  3.1 單片機(jī)初始化程序設(shè)計(jì)20<

10、;/p><p>  3.2 超聲波測(cè)高模塊程序設(shè)計(jì)20</p><p>  3.3 測(cè)體重程序設(shè)計(jì)22</p><p>  3.4 液晶顯示模塊程序設(shè)計(jì)22</p><p><b>  結(jié) 論24</b></p><p><b>  參考文獻(xiàn)25</b></

11、p><p><b>  附 錄26</b></p><p><b>  致 謝51</b></p><p>  體重及超聲波遠(yuǎn)距離測(cè)高儀-----體重檢測(cè)</p><p>  專業(yè):電子信息工程 年級(jí):2010級(jí) 姓名:陳練</p><p><b

12、>  摘 要</b></p><p>  在如今體檢過程中,身高和體重是必要的測(cè)量部分。傳統(tǒng)的測(cè)量方法是通過壓降式的測(cè)高和秤盤稱重讀數(shù),與傳統(tǒng)測(cè)量方法相比,本設(shè)計(jì)采用超聲波非接觸式的測(cè)高,并由液晶直接顯示即時(shí)的身高和體重?cái)?shù)據(jù)。這就使得該設(shè)計(jì)具有實(shí)時(shí)性,能很快捷的得出身高體重值,給體檢過程帶來(lái)很大方便。</p><p>  本設(shè)計(jì)是基于單片機(jī)STC89C52的測(cè)量系統(tǒng),包括

13、測(cè)高和稱重兩個(gè)模塊。其中測(cè)量身高量程為2m,稱重量程為200kg,能實(shí)現(xiàn)絕大多數(shù)測(cè)量要求。測(cè)高部分采用超聲波測(cè)距原理測(cè)量,稱重部分用稱重傳感器連接專用稱重AD-HX711測(cè)量重量,由液晶1602顯示數(shù)字?jǐn)?shù)據(jù),實(shí)現(xiàn)了智能化測(cè)量,使本設(shè)計(jì)具有實(shí)用價(jià)值。</p><p>  關(guān)鍵詞:STC89C52 超聲波測(cè)高 HX711 液晶1602</p><p><b>  Abstrac

14、t</b></p><p>  In the examination process, measurement part is necessary for height and weight. The traditional measurement method is the pressure drop through the way of height, weighting scale readin

15、g way, compared with the traditional measurement method, the design uses the non-contact height ultrasonic, displaying real-time height-weight data by the liquid crystal. It makes the design has the advantages of real-ti

16、me, can quickly get height and weight values, which brings great convenience for the examinati</p><p>  The design of measurement system is based on STC89C52 microcontroller, including the height and weight

17、of two modules. The measurement of the height range for 2m, weighing range for 200kg, to achieve the most measurement requirements. Measurement of ultrasonic ranging principle using altimetry, weighing sensor connected w

18、eighing AD-HX711 measurement by weight, LCD-1602 display digital data, and realize intelligent measurement, the design has practical value.</p><p>  Keywords: STC89C52 ultrasonic altimeter HX711

19、 LCD-1602</p><p><b>  1 引言</b></p><p>  1.1 選題背景及目的</p><p>  隨著社會(huì)的發(fā)展,人們生活水平不斷提升,與身體狀況相關(guān)的方面越來(lái)越得到人們的關(guān)注。而身高與體重的變化則是身體狀況最為直接的表現(xiàn),因此身高體重便成為必要的測(cè)量?jī)?nèi)容。身高體重測(cè)量?jī)x現(xiàn)以不止用于醫(yī)療、體檢部門,而是可以廣泛應(yīng)

20、用于大眾的儀器,因此身高體重測(cè)量?jī)x的研究和設(shè)計(jì)有非常廣闊的前景。本設(shè)計(jì)的身高體重一體化測(cè)量?jī)x可以同時(shí)測(cè)量身高和體重?cái)?shù)據(jù),并實(shí)時(shí)的在屏幕上顯示,大大提高了使用效率。本設(shè)計(jì)的儀器系統(tǒng)功耗低,運(yùn)行情況良好而可靠,能利用最少的資源進(jìn)行高精度的測(cè)量,信息性能可靠,操作便利,可以方便的獲取結(jié)果,在實(shí)際的使用中獲得了理想的效果,有重要的研究意義。</p><p>  身高的測(cè)量使用非接觸式的超聲波來(lái)完成。超聲波指向性強(qiáng),能量消

21、耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因此超聲波經(jīng)常用于障礙物的距離測(cè)量。由于超聲波可做到無(wú)接觸檢測(cè)距離,這一特性用在人體或其它物體高度的測(cè)量上會(huì)變得非常方便。而且超聲波傳感器具有結(jié)構(gòu)簡(jiǎn)單、體積小、信號(hào)處理可靠等特點(diǎn)。因此本設(shè)計(jì)也是利用超聲波來(lái)測(cè)量高度。</p><p>  體重的測(cè)量采用應(yīng)變式壓力傳感器做成電子稱來(lái)測(cè)量重量。和傳統(tǒng)秤相比較,電子秤利用新型傳感器、高精度AD轉(zhuǎn)換器件、單片機(jī)設(shè)計(jì)實(shí)現(xiàn),具有精度高、功能強(qiáng)等

22、特點(diǎn),因此電子稱逐漸取代傳統(tǒng)型的機(jī)械杠桿測(cè)量秤,成為測(cè)量領(lǐng)域的主流產(chǎn)品[1]。本課題設(shè)計(jì)的電子秤具有基本稱重、顯示功能。該電子秤的測(cè)量范圍為0-200Kg,測(cè)量精度達(dá)到1kg,有高精度,低成本,易攜帶的特點(diǎn)。</p><p>  1.2 總體方案設(shè)計(jì)與論證</p><p>  1.2.1 設(shè)計(jì)任務(wù)</p><p> ?。?)題目:數(shù)字身高體重測(cè)量?jī)x</p>

23、;<p><b> ?。?)測(cè)量要求:</b></p><p>  超聲波測(cè)高精度±1cm,測(cè)量范圍2cm-4m</p><p>  稱重精度1kg,測(cè)量范圍1kg-200kg</p><p>  要求測(cè)量準(zhǔn)確,能同時(shí)在顯示屏上顯示出來(lái)。</p><p>  1.2.2 設(shè)計(jì)內(nèi)容</p>

24、;<p>  外圍設(shè)備:(1)51單片機(jī)最小系統(tǒng)開發(fā)板</p><p> ?。?)STC89C52主芯片</p><p>  (3)超聲波測(cè)距模塊</p><p> ?。?)壓力傳感器稱重模塊</p><p><b>  (5)AD轉(zhuǎn)換模塊</b></p><p> ?。?)1602

25、液晶顯示模塊</p><p>  1.2.3 方案論證與選擇</p><p>  方案一:采用FPGA控制,超聲波測(cè)距,電容式傳感器稱重,數(shù)碼管顯示數(shù)值。</p><p>  方案二:采用51單片機(jī)控制,超聲波測(cè)距,應(yīng)變式傳感器稱重,1602液晶顯示數(shù)值。</p><p>  以上兩個(gè)方案主要是控制芯片,稱重傳感器和顯示設(shè)備的選擇問題?,F(xiàn)就各

26、個(gè)選擇做以下論證。</p><p>  FPGA功能強(qiáng)大,端口多,適于多從控制,但數(shù)據(jù)處理較復(fù)雜,且價(jià)格昂貴;51單片機(jī)設(shè)計(jì)簡(jiǎn)單,易于控制,價(jià)格便宜,且能完成要求的所有工作,因此選擇51單片機(jī)控制。</p><p>  電容式傳感器耗電量少,造價(jià)低,但準(zhǔn)確度只有1/200~1/500;電阻應(yīng)變式傳感器的稱量范圍為300g至數(shù)千kg,計(jì)量準(zhǔn)確度達(dá)1/1000~1/10000,結(jié)構(gòu)較簡(jiǎn)單,可靠

27、性較好,因此選擇電阻應(yīng)變式傳感器,且采用全橋式等臂電橋電路。</p><p>  采用數(shù)碼管現(xiàn)實(shí)的話,需要兩組數(shù)碼管分別顯示身高和體重?cái)?shù)值,消耗功率大,且占用較多的I/O口資源;采用1602液晶顯示,可以分兩行同時(shí)清晰直觀地顯示身高體重結(jié)果及必要的信息,因此選擇1602液晶顯示作為顯示屏。</p><p>  綜上所述,選擇方案二更為合理、經(jīng)濟(jì)。</p><p>&

28、lt;b>  2 硬件電路設(shè)計(jì)</b></p><p><b>  2.1 主控電路</b></p><p>  我們主控制電路采用STC89C52芯片,STC89C52RC單片機(jī)是宏晶科技推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇[2]。 </p

29、><p>  主要特性如下[3]:  </p><p>  1.工作電壓:5.5V~3.3V(5V單片機(jī))/3.8V~2.0V(3V單片機(jī)) </p><p>  2.增強(qiáng)型8051單片機(jī),6時(shí)鐘/機(jī)器周期和12時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051.</p><p>  3.工作頻率范圍:0~40

30、MHz,相當(dāng)于普通8051的0~80MHz,實(shí)際工作頻率可達(dá)48MHz </p><p>  4.片上集成512字節(jié)RAM </p><p>  5.用戶應(yīng)用程序空間為8K字節(jié) </p><p>  6.具有EEPROM功能</p><p>  7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專用編程器

31、,無(wú)需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片</p><p>  8.通用I/O口(32個(gè)),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,</p><p>  P0口是漏極開路輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O口用時(shí),需加上拉電阻。  </p><p>  9.共3個(gè)

32、16位定時(shí)器/計(jì)數(shù)器。即定時(shí)器T0、T1、T2 </p><p>  10.外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒</p><p>  11.具有看門狗功能 </p><p>  12.工作溫度范圍:-40~+85℃(工業(yè)級(jí))/0~75℃(商業(yè)級(jí))</p>&l

33、t;p>  13.通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART </p><p>  14. PDIP封裝</p><p>  其管腳定義如圖2.1所示。</p><p>  圖2.1 STC89C52 管腳圖 </p><p>  2.2 超聲波測(cè)高模塊電路</p><p>  2.

34、2.1 超聲波傳感器及其測(cè)高原理</p><p>  超聲波是通過不斷檢測(cè)超聲波發(fā)射后遇到障礙物所反射的回波,從而測(cè)出發(fā)射和接收回波的時(shí)間差t,然后求出距離S=Ct/2,式中的C為超聲波波速。利用超聲波測(cè)高前先用超聲波測(cè)出發(fā)射頭與地面的高度H1并存入單片機(jī),然后將被測(cè)物體移入測(cè)量區(qū)內(nèi)測(cè)得上表面距離H2,用單片機(jī)算出兩者之差就是被測(cè)物體的實(shí)際高度。超聲波測(cè)高系統(tǒng)原理如圖2.2所示。</p><p

35、>  圖2.2 超聲波測(cè)高原理圖</p><p>  我們使用的是模塊化的超聲波HC-SR04測(cè)距,HC-SR04超聲波測(cè)距模塊可提供2cm-400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路[4]。其基本工作原理如下: </p><p>  (1)采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào); </p

36、><p>  (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回; </p><p>  (3)有信號(hào)返回,通過IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲 波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2;</p><p>  2.2.2 超聲波傳感器電氣參數(shù)及其時(shí)序圖</p><p

37、>  超聲波測(cè)距模塊電氣參數(shù)如下表2.1所示:</p><p><b>  表2.1 電氣參數(shù)</b></p><p>  超聲波時(shí)序圖如圖2.3所示:</p><p>  圖2.3 超聲波時(shí)序圖</p><p>  以上時(shí)序圖表明我們只需要提供一個(gè)10uS以上的脈沖觸發(fā)信號(hào),該模塊內(nèi)部將發(fā)出8個(gè)40KHZ周期電平

38、并檢測(cè)回波。一旦檢測(cè)到有回波則輸出回響信號(hào)。回響信號(hào)的脈沖寬度與所測(cè)得距離成正比。由此通過發(fā)射信號(hào)到收到的回響信號(hào)時(shí)間間隔可以計(jì)算得到距離。</p><p>  在本設(shè)計(jì)中單片機(jī)的P3.3腳提供一個(gè)16us的高電平給TRIG口,通過模塊自動(dòng)測(cè)距接受ECHO的回響高電平信號(hào)給P3.2腳,因此用ECHO高電平持續(xù)時(shí)間t/58就是超聲波測(cè)得的距離S(cm)。</p><p>  HC-SR04模

39、塊實(shí)物圖如圖2.4所示:</p><p>  圖2.4 HC-SR04模塊</p><p>  2.3 壓力傳感器稱重模塊</p><p>  2.3.1 壓力傳感器</p><p>  稱重傳感器采用200kg的應(yīng)變</p><p>  式壓力稱重傳感器YZC-1B,其內(nèi)部</p><p> 

40、 為4個(gè)應(yīng)變片構(gòu)成的電橋形式。其</p><p>  測(cè)量原理如圖2.5所示。當(dāng)垂直正</p><p>  壓力P作用于梁上時(shí),梁產(chǎn)生形變, 圖2.5 傳感器受力工作原理</p><p>  電阻應(yīng)變片R1、R2受壓彎拉伸,阻值增加;R3、R4受壓縮,阻值減小。電橋失去平衡,產(chǎn)生不平衡電壓,不平衡電壓與作用在傳感器上的載菏P成正比,從而將非電量轉(zhuǎn)化成電量輸出

41、[5]。</p><p>  R1、R2、R3和R4組成惠更斯電橋,將2對(duì)電阻應(yīng)變片的阻值變化轉(zhuǎn)變成輸出電壓,其工作原理如圖2.6所示。</p><p>  圖2.6 測(cè)量電橋原理</p><p>  傳感器實(shí)物圖如下圖所示:</p><p>  圖2.7 稱重傳感器</p><p>  2.3.2 稱重AD轉(zhuǎn)換芯片&

42、lt;/p><p>  HX711是一款專為高精度稱重傳感器而設(shè)計(jì)的24位A/D轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時(shí)鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強(qiáng)等優(yōu)點(diǎn)、降低了電子秤的整機(jī)成本,提高了整機(jī)的性能和可靠性。該芯片與后端MCU芯片的接口和編程非常簡(jiǎn)單,所有控制信號(hào)由管腳驅(qū)動(dòng),無(wú)需對(duì)芯片內(nèi)部的寄存器編程。輸入選擇開關(guān)可任意選取通道A或通道B,與其

43、內(nèi)部的低噪聲可編程放大器相連。通道A的可編程增益為128或64,對(duì)應(yīng)的滿額度差分輸入信號(hào)幅值分別為±20mV或±40mV。通道B則為固定的64增益,用于系統(tǒng)參數(shù)檢測(cè)[6]。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D轉(zhuǎn)換器提供電源,系統(tǒng)板上無(wú)需另外的模擬電源。芯片內(nèi)的時(shí)鐘振蕩器不需要任何外接部件。上電自動(dòng)復(fù)位功能簡(jiǎn)化了開機(jī)的初始化過程。圖2.8為HX711芯片應(yīng)用于體重測(cè)量的一個(gè)參考電路圖。該方案使用內(nèi)部

44、時(shí)鐘振蕩器(XI=0),10Hz的輸出數(shù)據(jù)速率(RATE=0)。電源(2.7~5.5V)直接取用與MCU 芯片相同的供電電源。通道A與傳感器相連,通道B通過片外分壓電阻與電池相連,用于</p><p>  圖2.8 HX711外部管腳圖</p><p>  HX711主要電氣參數(shù)如表2.2所示。</p><p>  表2.1 HX711電氣參數(shù)表</p>

45、<p>  2.3.3 稱重部分AD轉(zhuǎn)換基本原理 </p><p>  如圖2.9所示HX711內(nèi)部方框圖,HX711可以在產(chǎn)生VAVDD和AGND電壓,即711模塊上的E+和E-電壓。該電壓通過VAVDD=VBG(R1+R2)/R2計(jì)算。VBG為模塊兒基準(zhǔn)電壓1.25vR1=20K,R2=8.2K,因此得出VAVDD=4.3V。在4.3V的供電電壓下200Kg的傳感器最大輸出電壓是4.3*2m

46、V/V=8.6mV,經(jīng)過128倍放大后,最大電壓為8.6mV*128=1100.8mV。經(jīng)過AD轉(zhuǎn)換后輸出的24bit數(shù)字值最大為:1100.8mV*2^24/4.3V≈2147483。</p><p>  假設(shè)重力為AKg,(A<200Kg),測(cè)量出來(lái)的AD值為y.200Kg傳感器輸出,發(fā)送給AD模塊的電壓為AKg*8.6mV/200Kg=0.043AmV,經(jīng)過128倍增益后為128*0.043A=5.5

47、04A mV,轉(zhuǎn)換為24bit數(shù)信號(hào)為5.504A mV*2^24/4.3V ≈ 21474.83A,所以y=21474.83A/100≈ 214.75A,得出A=y/214.75Kg。所以程序中AD轉(zhuǎn)換公式為:</p><p>  Weight=(unsigned int)(float)Weight/215</p><p>  圖2.9 HX711內(nèi)部方框圖</p><

48、;p>  現(xiàn)附錄HX711接口電路圖如下[7]:</p><p>  圖2.10 HX711接口電路圖</p><p>  2.3.4 稱重傳感器重量標(biāo)定</p><p>  為了檢驗(yàn)稱重傳感器測(cè)量值與實(shí)際重量之間的誤差,我對(duì)稱重傳感器進(jìn)行了重量的標(biāo)定。用不同重量的砝碼置于稱重傳感器上,觀察測(cè)量出來(lái)的數(shù)據(jù)并進(jìn)行記錄,制成圖2.11的曲線圖,以及表2.3所示實(shí)際

49、重量與測(cè)量顯示值得對(duì)比表格。</p><p>  圖2.11 重量標(biāo)定曲線圖</p><p><b>  表2.3 對(duì)比表</b></p><p>  由標(biāo)定的曲線圖可以看出,YZC-1B稱重傳感器在3kg以內(nèi)稱重值不穩(wěn)定,在3kg-150kg內(nèi)測(cè)量出的稱重值與實(shí)際值基本上相同。因?yàn)槿梭w正常體重都是位于這一段內(nèi),所以稱重傳感器能基本滿足適用要求

50、。</p><p>  2.4 LCD1602液晶顯示模塊</p><p>  2.4.1 LCD1602介紹</p><p>  1602液晶也叫1602字符型液晶,它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等點(diǎn)陣型液晶模塊它有若干個(gè)5*7或者5*11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔起到了字符間距和行間距的作

51、用。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶[10]。</p><p>  圖2.12 1602顯示電路</p><p>  2.4.2 LCD1602主要技術(shù)參數(shù)及其時(shí)序圖&l

52、t;/p><p>  顯示容量:16×2個(gè)字符</p><p>  芯片工作電壓:4.5—5.5V</p><p>  工作電流:2.0mA(5.0V)</p><p>  模塊最佳工作電壓:5.0V</p><p>  字符尺寸:2.95×4.35(W×H)mm</p><

53、;p>  其引腳功能見表2.4所示:</p><p>  表2.4 1602引腳接口說(shuō)明表</p><p>  第1腳:VSS為地電源。</p><p>  第2腳:VDD接5V正電源。</p><p>  第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K

54、的電位器調(diào)整對(duì)比度。</p><p>  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器,在單片機(jī)中連接P2.3腳。</p><p>  第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù),在單片機(jī)中連接P2

55、.4腳。</p><p>  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令,在單片機(jī)中連接P2.5腳。</p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線,在單片機(jī)中連接P0口。</p><p>  第15腳:背光源正極。</p><p>  第16腳:背光源負(fù)極。</p><p> 

56、 1602讀寫操作時(shí)序如圖2.13和2.14所示[8]:</p><p>  圖2.13 讀操作時(shí)序</p><p>  圖2.14 寫操作時(shí)序</p><p><b>  3 系統(tǒng)軟件設(shè)計(jì)</b></p><p>  3.1 單片機(jī)初始化程序設(shè)計(jì)</p><p>  本設(shè)計(jì)的軟件編譯環(huán)境為Kei

57、l uVision4,這種編譯環(huán)境支持C語(yǔ)言編程。編譯的模塊包括單片機(jī)初始化模塊,超聲波測(cè)高模塊,測(cè)體重模塊,液晶顯示模塊。</p><p>  初始化函數(shù)模塊主要包括定時(shí)器及中斷的初始化,加上液晶顯示的初始化程序。定時(shí)器使用單片機(jī)內(nèi)部定時(shí)器0,設(shè)置定時(shí)器0為方式1,初值低8位TL0=0x00,高8位TH0=0x00,啟動(dòng)定時(shí)器0和開啟定時(shí)器0中斷。液晶顯示初始化使用標(biāo)準(zhǔn)初始化過程,其初始化過程如下所示:<

58、/p><p>  延時(shí)15mS,寫指令38H(不檢測(cè)忙信號(hào)),延時(shí)5mS,寫指令38H(不檢測(cè)忙信號(hào)),延時(shí)5mS,寫指令38H(不檢測(cè)忙信號(hào)),(以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測(cè)忙信號(hào)),寫指令38H:顯示模式設(shè)置,寫指令08H:顯示關(guān)閉,寫指令01H:顯示清屏,寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置,寫指令0CH:顯示開及光標(biāo)設(shè)置。</p><p>  3.2 超聲波測(cè)高模塊程序設(shè)計(jì)<

59、;/p><p>  超聲波測(cè)高部分先初始化定時(shí)器和中斷,外設(shè)置一個(gè)中斷溢出標(biāo)志flag,根據(jù)flag標(biāo)志位和回響信號(hào)ECHO的狀態(tài)來(lái)開啟或關(guān)閉定時(shí)器中斷并計(jì)數(shù),由此算出距離值。超聲波測(cè)高部分程序流程圖如圖3.1所示。</p><p>  圖3.1 超聲波測(cè)高部分程序流程圖</p><p>  3.3 測(cè)體重程序設(shè)計(jì)</p><p>  壓力傳感器

60、稱體重模塊核心部分是AD轉(zhuǎn)換,在AD轉(zhuǎn)換編程中,當(dāng)數(shù)據(jù)輸出管腳ADDO為高電平時(shí),表明AD轉(zhuǎn)換器還未準(zhǔn)備好輸出數(shù)據(jù),此時(shí)串口時(shí)鐘輸入信號(hào)ADSK應(yīng)為低電平。當(dāng)ADDO從高電平變低電平后,ADSK輸入24個(gè)時(shí)鐘脈沖。第一個(gè)時(shí)鐘脈沖的上升沿將讀出輸入24位數(shù)據(jù)的最高位,直到第24個(gè)時(shí)鐘脈沖完成,24位輸出數(shù)據(jù)從最高位至最低位逐位輸出完成。測(cè)體重部分程序流程圖如圖3.2所示。</p><p>  圖3.2 測(cè)體重部分程

61、序流程圖</p><p>  3.4 液晶顯示模塊程序設(shè)計(jì)</p><p>  液晶顯示部分是整個(gè)實(shí)驗(yàn)可以讀取結(jié)果的必要部分,因此也是整個(gè)程序的中心部分。我們使用的LCD1602液晶顯示部分程序流程圖包括下圖3.3所示部分。</p><p>  圖3.3 液晶顯示模塊程序流程圖</p><p><b>  結(jié) 論</b&

62、gt;</p><p>  本次設(shè)計(jì)基本上達(dá)到了設(shè)計(jì)要求,使用非接觸式的超聲波測(cè)量距離,通過壓力傳感器稱重輸出電壓經(jīng)過AD轉(zhuǎn)換可以實(shí)現(xiàn)人體重量的測(cè)量,使用1602液晶可以完整顯示身高體重測(cè)量值。在后期完善中,把超聲波傳感器定位于2.5m高度,就可以測(cè)量出人體高度;稱重傳感器經(jīng)過重量標(biāo)定,就可以比較準(zhǔn)確的稱出重量。不過本設(shè)計(jì)依然存在不足之處,比如說(shuō)超聲波測(cè)距太靈敏,人體只要稍微動(dòng)一下就會(huì)引起測(cè)量高度的微小變化,無(wú)法

63、得出穩(wěn)定數(shù)值;稱重部分稱重精度要求達(dá)到0.5kg,實(shí)際上為了稱出來(lái)的數(shù)據(jù)精準(zhǔn),精度只有1kg。如果需要精度和準(zhǔn)確度都達(dá)到要求,選擇的硬件已經(jīng)可以滿足要求,只需要在程序部分再設(shè)計(jì)一下。希望在今后的學(xué)習(xí)中進(jìn)一步完善,使系統(tǒng)功能更加可靠。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 何力民. 單片機(jī)高級(jí)教程[M]. 北京:北京航空大學(xué)出版社,2

64、008:18-19.</p><p>  [2] 張文灼,MCS-51單片機(jī)程序設(shè)計(jì)[M]. 北京:機(jī)械工業(yè)出版社,2006:76-77.</p><p>  [3] 李林功,吳飛青,王兵等.單片機(jī)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2007:12.</p><p>  [4] 趙廣濤,基于超聲波傳感器的測(cè)距系統(tǒng)設(shè)計(jì)[D]. 微計(jì)算機(jī)信息,2006.</p

65、><p>  [5] 陳杰,黃鴻. 傳感器檢測(cè)與技術(shù)[M]. 北京:高等教育出版社,2002:108.</p><p>  [6] 浦方華,田作華. 一種基于HX711的高精度電子稱重儀[A]. 上海交通大學(xué),電子信息與電氣工程學(xué)院. 上海,2002:40.</p><p>  [7] 趙承利. Protel DXP電路設(shè)計(jì)(基礎(chǔ)、案例篇)[M]. 北京:中國(guó)鐵道出版社

66、,2009:100.</p><p>  [8] Yam RCM,Tse PW,Li L,Tu P.Intelligent predictive decision support system for condition-based maintenance[J].International Journal of Advanced Manufacturing Technology,2001,17(5).</p

67、><p><b>  附 錄</b></p><p><b>  附錄A 設(shè)計(jì)實(shí)物圖</b></p><p><b>  附錄B 設(shè)計(jì)總程序</b></p><p>  #include<reg52.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存

68、器的定義</p><p>  #include<intrins.h></p><p>  #include<stdlib.h></p><p>  #include<stdio.h></p><p>  #define uchar unsigned char</p><p>  #d

69、efine uint unsigned int</p><p>  #define ulong unsigned long</p><p>  sbit RS = P2^3; //控制端口 </p><p>  sbit RW = P2^4;</p><p>  sbit EN = P2^5;</p><p>

70、  sbit TRIG=P3^3;</p><p>  sbit ECHO=P3^2;</p><p>  sbit ADDO = P3^5;</p><p>  sbit ADSK = P3^4;</p><p>  #define DataPort P0 //數(shù)據(jù)端口</p><p>  #define RS_CL

71、R RS=0 </p><p>  #define RS_SET RS=1</p><p>  #define RW_CLR RW=0 </p><p>  #define RW_SET RW=1 </p><p>  #define EN_CLR EN=0</p><p>  #define EN_SET EN=1&

72、lt;/p><p><b>  bit flag;</b></p><p>  unsigned int Timeout;</p><p>  unsigned char frq;</p><p><b>  //函數(shù)定義聲明</b></p><p>  void show_te

73、mp();</p><p>  void delay()</p><p><b>  {</b></p><p>  unsigned int i;</p><p>  for(i=0;i<10;i++);</p><p><b>  }</b></p>

74、<p>  /*------------------------------------------------</p><p>  uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值</p><p>  unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是</p><p>  0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯

75、編,大致延時(shí)</p><p>  長(zhǎng)度如下 T=tx2+5 uS </p><p>  ------------------------------------------------*/</p><p>  void DelayUs2x(unsigned char t)</p><p><b>  { </b>&l

76、t;/p><p>  while(--t);</p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p>  mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值</p><

77、;p>  unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是</p><p>  0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編</p><p>  ------------------------------------------------*/</p><p>  void DelayMs(unsigned char t)</p&g

78、t;<p><b>  {</b></p><p>  while(t--)</p><p><b>  {</b></p><p><b>  //大致延時(shí)1mS</b></p><p>  DelayUs2x(245);</p><p>

79、;  DelayUs2x(245);</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>  判忙函數(shù)</b&

80、gt;</p><p>  ------------------------------------------------*/</p><p>  bit LCD_Check_Busy(void) </p><p><b>  { </b></p><p>  DataPort= 0xFF; </p>&

81、lt;p><b>  RS_CLR; </b></p><p><b>  RW_SET; </b></p><p><b>  EN_CLR; </b></p><p><b>  _nop_(); </b></p><p><b>  

82、EN_SET;</b></p><p>  return (bit)(DataPort & 0x80);</p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p><b>

83、  寫入命令函數(shù)</b></p><p>  ------------------------------------------------*/</p><p>  void LCD_Write_Com(unsigned char com) </p><p><b>  { </b></p><p>  

84、while(LCD_Check_Busy()); //忙則等待</p><p><b>  RS_CLR; </b></p><p><b>  RW_CLR; </b></p><p><b>  EN_SET; </b></p><p>  DataPort= com; &

85、lt;/p><p><b>  _nop_(); </b></p><p><b>  EN_CLR;</b></p><p><b>  }</b></p><p>  /*------------------------------------------------</

86、p><p><b>  寫入數(shù)據(jù)函數(shù)</b></p><p>  ------------------------------------------------*/</p><p>  void LCD_Write_Data(unsigned char Data) </p><p><b>  { </b&

87、gt;</p><p>  while(LCD_Check_Busy()); //忙則等待</p><p><b>  RS_SET; </b></p><p><b>  RW_CLR; </b></p><p><b>  EN_SET; </b></p>&

88、lt;p>  DataPort= Data; </p><p><b>  _nop_();</b></p><p><b>  EN_CLR;</b></p><p><b>  }</b></p><p>  /*---------------------------

89、---------------------</p><p><b>  清屏函數(shù)</b></p><p>  ------------------------------------------------*/</p><p>  void LCD_Clear(void) </p><p><b>  { &l

90、t;/b></p><p>  LCD_Write_Com(0x01); </p><p>  DelayMs(5);</p><p><b>  }</b></p><p>  /*------------------------------------------------</p><p&

91、gt;<b>  寫入字符串函數(shù)</b></p><p>  ------------------------------------------------*/</p><p>  void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) </p><p>

92、<b>  { </b></p><p>  if (y == 0) </p><p><b>  { </b></p><p>  LCD_Write_Com(0x80 + x); //表示第一行</p><p><b>  }</b></p&g

93、t;<p><b>  else </b></p><p><b>  { </b></p><p>  LCD_Write_Com(0xC0 + x); //表示第二行</p><p><b>  } </b></p><p>

94、  while (*s) </p><p><b>  { </b></p><p>  LCD_Write_Data( *s); </p><p>  s ++; </p><p><b>  }</b></p><p><b>  }&l

95、t;/b></p><p>  /*------------------------------------------------</p><p><b>  寫入字符函數(shù)</b></p><p>  ------------------------------------------------*/</p><p&

96、gt;  void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) </p><p><b>  { </b></p><p>  if (y == 0) </p><p><b>  { </b></p>

97、<p>  LCD_Write_Com(0x80 + x); </p><p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b></p><p>  LCD_Write_Com(0

98、xC0 + x); </p><p><b>  } </b></p><p>  LCD_Write_Data( Data); </p><p><b>  }</b></p><p>  /*----------------------------------------

99、--------</p><p><b>  初始化函數(shù)</b></p><p>  ------------------------------------------------*/</p><p>  void LCD_Init(void) </p><p><b>  {</b></p

100、><p>  LCD_Write_Com(0x38); /*顯示模式設(shè)置*/ </p><p>  DelayMs(15); </p><p>  LCD_Write_Com(0x38); </p><p>  DelayMs(5); </p><p>  LCD_Write_Com(0x38); </p>

101、;<p>  DelayMs(5); </p><p>  LCD_Write_Com(0x38); </p><p>  LCD_Write_Com(0x08); /*顯示關(guān)閉*/ </p><p>  LCD_Write_Com(0x01); /*顯示清屏*/ </p><p>  LCD_Write_Com(

102、0x06); /*顯示光標(biāo)移動(dòng)設(shè)置*/ </p><p>  DelayMs(5); </p><p>  LCD_Write_Com(0x0C); /*顯示開及光標(biāo)設(shè)置*/</p><p><b>  }</b></p><p>  void Timer0(void) interrupt 1 </p&

103、gt;<p>  { </p><p><b>  flag=1;</b></p><p><b>  } </b></p><p>  /*******************************</p><p><b>

104、  HIGHT</b></p><p>  ********************************/</p><p>  void HIGHT(void)</p><p><b>  {</b></p><p>  long S; </p><p>  unsigne

105、d int i;</p><p><b>  TRIG=1;</b></p><p><b>  i=2;</b></p><p>  while(i>0)</p><p><b>  i--;</b></p><p><b>  TRI

106、G=0;</b></p><p><b>  TR0=0;</b></p><p><b>  TL0=0;</b></p><p><b>  TH0=0;</b></p><p>  Timeout=0;</p><p>  while(

107、(ECHO==0)&&((Timeout++)<50000));</p><p><b>  flag=0;</b></p><p><b>  TR0=1;</b></p><p>  Timeout=0; </p><p>  while((ECHO==1)&am

108、p;&((Timeout++)<50000));</p><p><b>  TR0=0;</b></p><p>  S=((TH0*256+TL0)*1)/58;</p><p>  if(flag==1||S>400)</p><p><b>  {</b></p&g

109、t;<p>  LCD_Write_Char(0,0,'H');</p><p>  /*LCD_Write_Char(1,0,'i');</p><p>  LCD_Write_Char(2,0,'g');</p><p>  LCD_Write_Char(3,0,'h');*/<

110、;/p><p>  LCD_Write_Char(1,0,':');</p><p>  LCD_Write_Char(2,0,'-'); //在第1行的第1列顯示百位</p><p>  LCD_Write_Char(3,0,'-'); //在第1行的第2列顯示十位</p><p>  

111、LCD_Write_Char(4,0,'-'); //在第1行的第3列顯示個(gè)位</p><p>  LCD_Write_Char(5,0,'c'); //在第1行的第2列顯示十位</p><p>  LCD_Write_Char(6,0,'m');</p><p><b>  }</b>

112、;</p><p><b>  else</b></p><p><b>  {</b></p><p>  //**給1602顯示寄存器賦值(0-255)**</p><p>  //***1602液晶顯示0-255***</p><p>  LCD_Write_Char(

113、0,0,'H');</p><p>  /*LCD_Write_Char(1,0,'i');</p><p>  LCD_Write_Char(2,0,'g');</p><p>  LCD_Write_Char(3,0,'h');*/</p><p>  LCD_Write_

114、Char(1,0,':');</p><p>  LCD_Write_Char(2,0,S/100+'0'); //在第1行的第1列顯示百位</p><p>  LCD_Write_Char(3,0,(S%100)/10+'0'); //在第1行的第2列顯示十位</p><p>  LCD_Write_Cha

115、r(4,0,S%10+'0'); //在第1行的第3列顯示個(gè)位</p><p>  LCD_Write_Char(5,0,'c');</p><p>  LCD_Write_Char(6,0,'m');</p><p><b>  }</b></p><p>&

116、lt;b>  i=9000;</b></p><p>  while(i>0) i--;</p><p><b>  } </b></p><p>  /*************************************</p><p><b>  WEIGHT</b&g

117、t;</p><p>  **************************************/</p><p>  unsigned long get_ADValue(void)</p><p><b>  {</b></p><p><b>  uchar i;</b></p&g

118、t;<p>  unsigned long value=0;</p><p>  ADDO=1;//51 CPU I/O input enable</p><p>  ADSK=0;//enable AD</p><p>  while (ADDO);</p><p>  _nop_();//delay T1>0.1us&

119、lt;/p><p>  for (i=0;i<24;i++)</p><p><b>  {</b></p><p><b>  ADSK=1;</b></p><p>  _nop_();//delay T3>0.2us</p><p><b>  if

120、(ADDO)</b></p><p><b>  value++;</b></p><p>  value=value<<1;</p><p><b>  ADSK=0;</b></p><p>  _nop_();//delay T4>0.2us</p>

121、;<p><b>  }</b></p><p><b>  ADSK=1;</b></p><p>  _nop_();//delay T3>0.2us</p><p><b>  ADSK=0;</b></p><p>  _nop_();//dela

122、y T4>0.2us</p><p>  value=value&0x007FFFFF;</p><p>  return (value);</p><p><b>  }</b></p><p>  /*------------------------------------------------

123、</p><p><b>  主函數(shù)</b></p><p>  ------------------------------------------------*/ </p><p>  void main(void) </p><p><b>  {</b></p><p&g

124、t;  unsigned long num;</p><p>  float num_f;</p><p>  LCD_Init(); </p><p>  LCD_Clear();//清屏</p><p>  TMOD&=0xF0; //將TMOD的低4位定時(shí)器0控制部分清零</p><p&

125、gt;  TMOD|=0x01; //設(shè)置定時(shí)器0為方式1</p><p>  TL0=0x47; //設(shè)置定時(shí)器0初值低8位</p><p>  TH0=0xFF; //設(shè)置定時(shí)器0初值高8位</p><p>  TR0=0; //啟動(dòng)定時(shí)器0</p&g

126、t;<p>  ET0=1; //Timer0中斷</p><p><b>  EA=1;</b></p><p>  while (1) </p><p><b>  {</b></p><p><b>  HIGHT();</b>

127、;</p><p>  num=get_ADValue();</p><p>  num_f=num/100;</p><p>  num=(num_f/380);</p><p>  if(num>200)</p><p><b>  {num=0;</b></p><

溫馨提示

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

評(píng)論

0/150

提交評(píng)論