版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生畢業(yè)設(shè)計(jì)</b></p><p> 基于52單片機(jī)的車(chē)用超聲波測(cè)距系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p> Based on 52 single-chip ultrasonic distance measurement system for Car reversing</p><p> 學(xué)生姓名</p>
2、<p> 所在專(zhuān)業(yè)電氣工程及其自動(dòng)化</p><p> 所在班級(jí)</p><p> 申請(qǐng)學(xué)位工學(xué)學(xué)士</p><p> 指導(dǎo)教師職稱(chēng)副教授</p><p> 副指導(dǎo)教師職稱(chēng)</p><p> 答辯時(shí)間2012年 6 月 2 日</p><p><b> 目
3、錄</b></p><p><b> 設(shè)計(jì)總說(shuō)明I</b></p><p> introductionII</p><p> 1設(shè)計(jì)的研究背景及意義1</p><p> 1.1國(guó)內(nèi)應(yīng)用于汽車(chē)測(cè)距地方法對(duì)比1</p><p> 2整體方案設(shè)計(jì)及器件的選擇1<
4、;/p><p> 2.1超聲波測(cè)距的原理1</p><p> 2.2HC-SR04超聲波測(cè)距模塊的原理及參數(shù)2</p><p> 2.3數(shù)據(jù)處理的核心:AT89S52芯片3</p><p> 2.4DS18B20芯片介紹5</p><p> 2.5語(yǔ)音報(bào)警模塊板載ISD1820芯片6</
5、p><p> 3超聲波電路測(cè)距系統(tǒng)的硬件設(shè)計(jì)7</p><p> 3.1整體電路設(shè)計(jì)7</p><p> 3.2超聲波模塊電路7</p><p> 3.3超聲波顯示電路設(shè)計(jì)9</p><p> 3.4超聲波溫度補(bǔ)償?shù)碾娐吩O(shè)計(jì)10</p><p> 3.5報(bào)警電路設(shè)計(jì)
6、語(yǔ)音報(bào)警模塊板載ISD1820芯片10</p><p> 4超聲波測(cè)距的軟件系統(tǒng)設(shè)計(jì)11</p><p> 4.1軟件設(shè)計(jì)分析11</p><p> 4.2軟件設(shè)計(jì)思路11</p><p> 4.2.1主程序11</p><p> 4.2.2溫度補(bǔ)償流程圖13</p>&l
7、t;p> 5調(diào)試及誤差分析13</p><p> 5.1軟件調(diào)試13</p><p> 5.1.1超聲波發(fā)射啟動(dòng):14</p><p> 5.1.2超聲波模塊工作14</p><p> 5.1.3測(cè)距計(jì)算15</p><p> 5.1.4距離溢出處理及報(bào)警15</p>
8、<p> 5.2 測(cè)試分析16</p><p> 5.3誤差分析17</p><p><b> 鳴 謝18</b></p><p><b> 參考文獻(xiàn)19</b></p><p><b> 設(shè)計(jì)總說(shuō)明</b></p><p&
9、gt; 隨著汽車(chē)產(chǎn)業(yè)的快速發(fā)展和人們生活水平的不斷提高,我國(guó)的汽車(chē)數(shù)量正逐年增加。同時(shí)汽車(chē)駕駛?cè)藛T中非職業(yè)汽車(chē)駕駛?cè)藛T的比例也逐年增加。在公路、街道、停車(chē)場(chǎng)、車(chē)庫(kù)等擁擠、狹窄的地方倒車(chē)時(shí),駕駛員既要前瞻,又要后顧,稍微不小心就會(huì)發(fā)生事故。據(jù)相關(guān)調(diào)查統(tǒng)計(jì),15%的汽車(chē)碰撞事故是因倒車(chē)時(shí)汽車(chē)的后視能力不良造成的。因此,增加汽車(chē)的后視能力,研制汽車(chē)后部探測(cè)障礙物的倒車(chē)報(bào)警裝置便成為近些年來(lái)的研究熱點(diǎn)。安全避免障礙物的前提是快速、準(zhǔn)確地測(cè)量障
10、礙物與汽車(chē)之間的距離。國(guó)內(nèi)外的學(xué)者開(kāi)始逐步重視倒車(chē)報(bào)警器在實(shí)際方面的應(yīng)用,在低成本的基礎(chǔ)上力求高精度,這對(duì)于降低生產(chǎn)成本、促進(jìn)技術(shù)發(fā)展和普及倒車(chē)?yán)走_(dá)具有很重要的意義[1]。</p><p> 本設(shè)計(jì)采用AT89S52芯片為核心,三個(gè)HC-SR04超聲波測(cè)距模塊為采樣對(duì)象,lcd1602為顯示模塊。三個(gè)超聲波模塊分別位于汽車(chē)的后方的左中右,實(shí)時(shí)把汽車(chē)后部距離障礙物的距離顯示給駕駛員,當(dāng)某個(gè)距離少于10cm時(shí),IS
11、D1820語(yǔ)音報(bào)警模塊播報(bào)錄音對(duì)駕駛員提出預(yù)警。</p><p> 經(jīng)試驗(yàn)證明,這套系統(tǒng)軟硬件設(shè)計(jì)合理,抗干擾能力強(qiáng),實(shí)時(shí)性能好,可以有效地解決汽車(chē)倒車(chē)碰撞,能讓汽車(chē)??康母诱R,駕駛員更加輕松、安全地倒車(chē)。</p><p> 關(guān)鍵詞:(52單片機(jī);汽車(chē)倒車(chē);超聲波模塊)</p><p> introduction</p><p>
12、 With the rapid development of industry and the improvement in people's living standards,more and more people have their cars in our country. The proportion of non-occupational car drivers also increased year by year
13、. Reversing in the crowded, narrow roads, streets, parking lots, garages and other places make the drive pay too much attention and it is easily cause traffic accidents. According to surveys, 5% traffic accidents are du
14、e to the drivers can not see what is behind the car. So improving</p><p> My design is using AT89S52 chip at the core, Three HC-SR04 ultrasonic ranging module as a sample object, cd1602 as the demonstration
15、 module. Three ultrasonic modules which are located in the left rear of the car to the right. Tell the distance to the drivers at anytime. When one of the distances is less than 10cm, ISD1820 voice alarm module broadcast
16、s recorded on driver's early warning.</p><p> The test proved that this system is reasonable and it has strong anti-interference ability, it is a effective solution to the auto reversing collision. Driv
17、ers can be more easily and safely reverse while having this system.</p><p> Keywords: 52 single-chip;Car reversing; Ultrasonic modules</p><p> 基于52單片機(jī)的車(chē)用超聲波測(cè)距系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p> 電氣工程
18、及其自動(dòng)化,</p><p><b> 指導(dǎo)教師:</b></p><p><b> 畢業(yè)設(shè)計(jì)說(shuō)明書(shū)</b></p><p> 設(shè)計(jì)的研究背景及意義</p><p> 超聲波是指頻率高于20Khz的聲波,屬于機(jī)械波的范疇,遵循一般機(jī)械波在彈性介質(zhì)中的傳播規(guī)律,如在介質(zhì)中的分界面處發(fā)生的反射和
19、折射現(xiàn)象,在進(jìn)入介質(zhì)后被介質(zhì)吸收而發(fā)生的衰減等,正是因?yàn)橛羞@些性質(zhì),使得超聲波可以用于距離的測(cè)量,隨著經(jīng)濟(jì)的發(fā)展,科技水平的不斷提高,電子測(cè)量技術(shù)應(yīng)用越來(lái)越廣泛,超聲波測(cè)量精度高,成本低,性能穩(wěn)定則備受青睞,所以超聲波測(cè)距技術(shù)被廣泛應(yīng)用于人們的生活和工作中[1]。</p><p> 超聲波測(cè)距是一種非接觸檢測(cè)技術(shù),不受光線、被測(cè)對(duì)象顏色的影響,比其他儀器更加衛(wèi)生,具有不污染、高可靠、壽命長(zhǎng)等特點(diǎn),被廣泛應(yīng)用于紙
20、業(yè)、礦業(yè)等行業(yè)中,可在不同環(huán)境中進(jìn)行距離測(cè)量的準(zhǔn)確度的在線標(biāo)定,可直接用于水、酒精、等液位控制,能達(dá)到工業(yè)實(shí)用的指標(biāo)要求。因?yàn)槌暡y(cè)距具有以上的這些特點(diǎn),使得其在汽車(chē)防碰撞方面有廣泛的應(yīng)用[1]。</p><p> 國(guó)內(nèi)應(yīng)用于汽車(chē)測(cè)距地方法對(duì)比</p><p> 目前,運(yùn)用于汽車(chē)的測(cè)距的主要有以下四種方式:超聲波測(cè)距、毫米波雷達(dá)測(cè)距、攝像系統(tǒng)測(cè)距、激光測(cè)距。雷達(dá)測(cè)距能夠探測(cè)多目標(biāo),精
21、度高,受天氣影響較少,已達(dá)到實(shí)用水平。作為車(chē)載雷達(dá),卻存在著電磁波的干擾問(wèn)題,必須防止因雷達(dá)間以及其他通訊設(shè)施的電磁波干擾而發(fā)生的誤動(dòng)作。目前,車(chē)載雷達(dá)測(cè)距主要作為防撞雷達(dá),防止在高速公路上發(fā)生的追尾碰撞。 攝像系統(tǒng)測(cè)距模仿人體視覺(jué)原理,測(cè)量精度高。但目前價(jià)格較高,同時(shí)由于受軟件和硬件的制約,成像速度較慢。 激光測(cè)距儀雖然具有測(cè)量時(shí)間短,量程大、精度高等優(yōu)點(diǎn),但同樣被高昂的價(jià)格制約著他的發(fā)展。 超聲波測(cè)距原理簡(jiǎn)單,制作方便,成本較低,
22、雖然受環(huán)境因素不能用于遠(yuǎn)距離和高精度測(cè)量,但由于其理想的測(cè)量距離為4-5米,用于汽車(chē)的倒車(chē)防碰撞剛好合適[1]。</p><p> 整體方案設(shè)計(jì)及器件的選擇</p><p><b> 超聲波測(cè)距的原理</b></p><p> 諧振頻率高于20Khz的聲波稱(chēng)為超聲波。超聲波為直線傳播方式,頻率越高,反射能力越強(qiáng),而繞射能力越弱。利用超聲波
23、這種特性,常常利用檢測(cè)其發(fā)射時(shí)間進(jìn)行測(cè)量。其工作原理是:超聲波模塊向介質(zhì)發(fā)射超聲波,聲波遇到目標(biāo)后必然有反射回波作用在模塊上。若已知介質(zhì)中勝訴為c,回波到達(dá)時(shí)刻與發(fā)射波的時(shí)間差為t,就可以算出發(fā)射點(diǎn)與反射點(diǎn)的距離為s: s=c*t/2. [2]</p><p> 式中的C為超聲波在空氣中的傳播速度340m/s,其與溫度有關(guān)。如果環(huán)境溫度變化顯著,必須考慮進(jìn)行溫度補(bǔ)償??諝庵新曀倥c溫度的關(guān)系可以表示為:<
24、;/p><p> c=331.4+0.607t [2] </p><p> HC-SR04超聲波測(cè)距模塊的原理及參數(shù)</p><p> 圖 2-1 HR-SR04超聲波集成模塊正面外觀圖</p><p> 圖2-2 HR-SR04超聲波集成模塊背面外觀圖</p><p> H
25、C-SR04超聲波測(cè)距模塊可提供2cm-400cm的非接觸式距離感應(yīng)測(cè)距功能,模塊包括超聲波發(fā)射器、接收器與控制電路。</p><p><b> 基本工作原理:</b></p><p> ?。?)、采用IO口TRIG觸發(fā)測(cè)距,至少給出10US的高電平信號(hào);</p><p> ?。?)、模塊自動(dòng)發(fā)送8個(gè)40Khz方波,自動(dòng)檢測(cè)是都有信號(hào)返回;&
26、lt;/p><p> (3)、有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平的持續(xù)時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340m/s))/2;</p><p> HC-SR04超聲波電氣參數(shù)</p><p> 數(shù)據(jù)處理的核心:AT89S52芯片</p><p> 圖2-3 AT89S52 單片機(jī)引腳圖及實(shí)
27、物圖</p><p> AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用[3]。</p
28、><p> P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏 輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0不具有內(nèi)部上拉電阻。 在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn) 時(shí),需要外部上拉電阻。 </p><p> P1
29、口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。</p><p> P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)PLCC封裝4 個(gè) TTL 邏輯電平。對(duì)P2 端口寫(xiě)“
30、1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR) 時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和
31、一些控制信號(hào)。 </p><p> P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)
32、[4]。</p><p><b> 第二功能:</b></p><p> P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口)</p><p> P3.2 INTO(外中斷0) P3.3 INT1(外中斷1)</p><p> P3.4 T0(定時(shí)/計(jì)數(shù)器0)
33、 P3.5 T1(定時(shí)計(jì)數(shù)器1)</p><p> P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p> ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)
34、外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效[5]。 </p><p> PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選
35、通信號(hào),當(dāng)AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。 </p><p> EA/VPP:外部訪問(wèn)允許,欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行
36、內(nèi)部程序存儲(chǔ)器的指令。FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。 </p><p> XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 </p><p> XTAL2:振蕩器反相放大器的輸出端[6]。</p><p> DS18B20芯片介紹</p><p>
37、 由于考慮到汽車(chē)倒車(chē)環(huán)境的復(fù)雜性,對(duì)聲速進(jìn)行溫度補(bǔ)償將大大提高數(shù)據(jù)的準(zhǔn)確性。</p><p> DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應(yīng)用于多種場(chǎng)合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號(hào)多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應(yīng)用場(chǎng)合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測(cè)溫,高爐水循環(huán)測(cè)溫,鍋爐測(cè)溫,機(jī)房測(cè)溫,農(nóng)業(yè)大棚測(cè)溫,潔凈室測(cè)溫,彈藥庫(kù)測(cè)溫等各種非極
38、限溫度場(chǎng)合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測(cè)溫和控制領(lǐng)域[11]。</p><p> 圖 2-4 DS18B20的引腳圖及實(shí)物圖</p><p> 特點(diǎn):獨(dú)特的一線接口,只需要一條口線通信 多點(diǎn)能力,簡(jiǎn)化了分布式溫度傳感應(yīng)用 無(wú)需外部元件 可用數(shù)據(jù)總線供電,電壓范圍為3.0 V至5.5 V 無(wú)需備用電源 測(cè)量溫度范圍為-55 ° C至+1
39、25 ℃ 。華氏相當(dāng)于是-67 ° F到257華氏度 -10 ° C至+85 ° C范圍內(nèi)精度為±0.5 ° C </p><p> 溫度傳感器可編程的分辨率為9~12位 溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒 用戶可定義的非易失性溫度報(bào)警設(shè)置 應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng),消費(fèi)電子產(chǎn)品溫度計(jì),或任何熱敏感系統(tǒng) </p><p>
40、 描述該DS18B20的數(shù)字溫度計(jì)提供9至12位(可編程設(shè)備溫度讀數(shù)。信息被發(fā)送到/從DS18B20 通過(guò)1線接口,所以中央微處理器與DS18B20只有一個(gè)一條口線連接。為讀寫(xiě)以及溫度轉(zhuǎn)換可以從數(shù)據(jù)線本身獲得能量,不需要外接電源。 因?yàn)槊恳粋€(gè)DS18B20的包含一個(gè)獨(dú)特的序號(hào),多個(gè)ds18b20s可以同時(shí)存在于一條總線。這使得溫度傳感器放置在許多不同的地方。它的用途很多,包括空調(diào)環(huán)境控制,感測(cè)建筑物內(nèi)溫設(shè)備或機(jī)器,并進(jìn)行過(guò)程監(jiān)測(cè)和控制[
41、18]。</p><p> 語(yǔ)音報(bào)警模塊板載ISD1820芯片</p><p> 板載ISD1820語(yǔ)音模塊具有接線簡(jiǎn)單,容易控制等特點(diǎn),只需在PLAYE引腳上連上單片機(jī)的某個(gè)IO口,當(dāng)給出一個(gè)有效電平時(shí),語(yǔ)音模塊即可播放預(yù)先錄制的聲音。</p><p> 1、板載咪頭,可以直接錄音</p><p> 2、可以進(jìn)行10秒左右的語(yǔ)音錄放
42、</p><p> 3、高質(zhì)量自然的語(yǔ)音還原,可用作喊話器模塊</p><p> 4、帶循環(huán)播放,點(diǎn)動(dòng)播放,單遍播放功能</p><p> 5、芯片主要的引腳已經(jīng)引出,可以通過(guò)單片機(jī)控制操作</p><p> 6、工作電壓:3~5V</p><p> 圖2-4 板載ISD1820芯片模塊的正面實(shí)物圖<
43、/p><p> 整體電路的控制核心為單片機(jī)AT89S52,三個(gè)超聲波發(fā)射和接收模塊HC-SR04對(duì)汽車(chē)的左、中、右數(shù)據(jù)進(jìn)行采集并發(fā)送到芯片處理。DS18B20則對(duì)實(shí)時(shí)溫度采集保證聲速誤差盡量減少。所測(cè)得的數(shù)據(jù)全部顯示在LED1602上面,當(dāng)某個(gè)數(shù)據(jù)顯示的距離少于10cm時(shí),ISD1820語(yǔ)音報(bào)警模塊播報(bào)錄音對(duì)駕駛員提出預(yù)警。</p><p> 超聲波電路測(cè)距系統(tǒng)的硬件設(shè)計(jì)</p>
44、;<p><b> 整體電路設(shè)計(jì)</b></p><p> 圖3-1 整體電路設(shè)計(jì)系統(tǒng)框圖</p><p> 三個(gè)HC-SR04超聲波模塊發(fā)出40kHz的信號(hào),遇到障礙物后返回并發(fā)給單片機(jī)一個(gè)有效電平,單片機(jī)內(nèi)部定時(shí)器記錄期間的時(shí)間T,結(jié)合被DS18B20修正了的聲速計(jì)算出距離并顯示在LED1602,一同顯示的還有實(shí)時(shí)的溫度。當(dāng)某個(gè)測(cè)
45、量距離少于10cm時(shí),ISD1820語(yǔ)音報(bào)警芯片播報(bào)預(yù)先錄制的聲音對(duì)駕駛員提出預(yù)警。</p><p><b> 超聲波模塊電路</b></p><p> 圖3-2 超聲波模塊發(fā)射電路</p><p> 圖3-3 超聲波模塊接收電路</p><p> 圖3-4 超聲波時(shí)序圖 </p><
46、;p> 以上時(shí)序圖表明只要提供一個(gè)10us以上的脈沖觸發(fā)信號(hào),該模塊內(nèi)部將發(fā)出8個(gè)40kHz周期電平并檢測(cè)回波。一旦檢測(cè)到有回波信號(hào)則輸出回響信號(hào)。回響信號(hào)的脈沖寬度與所測(cè)距離成正比。由此通過(guò)發(fā)射信號(hào)到回收的回響信號(hào)時(shí)間間隔可以計(jì)算得到距離。</p><p> 超聲波顯示電路設(shè)計(jì) </p><p> 圖 3-5 LCD1602 模塊正面圖</p><p
47、> 圖3-6 LCD1602模塊的電路引腳接線</p><p> 由于本設(shè)計(jì)連接三個(gè)超聲波模塊,一個(gè)溫度檢測(cè)芯片,要顯示的內(nèi)容較多,綜合考慮采用LED1602顯示。1602液晶也叫1602字符型液晶它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用。1
48、602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等。</p><p> 1602采用標(biāo)準(zhǔn)的16腳接口,其中: </p><p> 第1腳:VSS為電源地 </p><p> 第2腳:VDD接5V電源正極 </p><p> 第3腳:V
49、0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì) 產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度)。 </p><p> 第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。 </p><p> 第5腳:RW為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。 </p><p&g
50、t; 第6腳:E(或EN)端為使能(enable)端。 </p><p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。 </p><p> 第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。</p><p> 超聲波溫度補(bǔ)償?shù)碾娐吩O(shè)計(jì)</p><p> DS18B20是美國(guó)DALLAS半導(dǎo)體公司推出的一種改進(jìn)型智能溫度
51、傳感器。與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測(cè)溫度并且可以根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9-12位數(shù)字式讀數(shù)方式??梢栽?3.75ms和750ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根接線的讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本線也可以向所掛接的DS18B20供電,無(wú)需額外電源。因而使用DS18B20可以使系統(tǒng)結(jié)構(gòu)更加簡(jiǎn)單,可靠性更高。由于聲速受氣溫的影響比較大,所以通過(guò)IO口
52、控制該芯片來(lái)對(duì)超聲波測(cè)距中的聲速進(jìn)行校正,盡量減少測(cè)距中的誤差。</p><p> 圖3-7 DS18B20的引腳接線</p><p> 報(bào)警電路設(shè)計(jì)語(yǔ)音報(bào)警模塊板載ISD1820芯片</p><p> 圖3-8 ISD1820語(yǔ)音報(bào)警模塊的引腳接線</p><p> 當(dāng)測(cè)量的距離少于系統(tǒng)設(shè)定的值(本系統(tǒng)預(yù)設(shè)值為10cm),給BE
53、EP引腳一個(gè)高低電平(專(zhuān)門(mén)用于出發(fā)ISD1820),語(yǔ)音芯片收到信號(hào),開(kāi)始播報(bào)預(yù)先錄制的音樂(lè)。</p><p> 語(yǔ)音報(bào)警模塊板載ISD1820芯片內(nèi)部電路</p><p> 圖3-9 ISD1820語(yǔ)音報(bào)警模塊的內(nèi)部結(jié)構(gòu)</p><p> 超聲波測(cè)距的軟件系統(tǒng)設(shè)計(jì)</p><p><b> 軟件設(shè)計(jì)分析</b>
54、</p><p> 完成了系統(tǒng)的硬件設(shè)計(jì)之后,接下來(lái)就是系統(tǒng)的軟件設(shè)計(jì),此設(shè)計(jì)所需要完成的主要是針對(duì)系統(tǒng)功能的實(shí)現(xiàn)及數(shù)據(jù)的處理和應(yīng)用。由以上所述系統(tǒng)硬件設(shè)計(jì)和各個(gè)電路功能,系統(tǒng)軟件需要實(shí)現(xiàn)以下功能:</p><p> 信號(hào)控制。在系統(tǒng)硬件中,已經(jīng)完成了hc-sr04與單片機(jī)的連接。在系統(tǒng)軟件設(shè)計(jì)中只需要完成循環(huán)控制觸發(fā)或接收各個(gè)超聲波模塊的信號(hào)。</p><p>
55、; 數(shù)據(jù)的存儲(chǔ)。測(cè)量系統(tǒng)中需要得到發(fā)射信號(hào)和接收回波的時(shí)間差,需要讀出計(jì)數(shù)器的值,然后存儲(chǔ)在RAM中,在發(fā)射下一個(gè)信號(hào)前,需要對(duì)定時(shí)器以及存儲(chǔ)參數(shù)清零。</p><p> 數(shù)據(jù)處理以及顯示。RAM中的計(jì)數(shù)值通過(guò)程序得到真實(shí)值*CM,再通過(guò)LCD顯示出來(lái),必要時(shí)啟動(dòng)語(yǔ)音芯片。</p><p><b> 軟件設(shè)計(jì)思路 </b></p><p&
56、gt;<b> 主程序</b></p><p> 主程序的流程圖如下圖所示。主程序首先對(duì)系統(tǒng)各個(gè)連接的硬件進(jìn)行初始化,包括設(shè)置T0的工作方式,開(kāi)中斷,1602的初始化等。然后控制給超聲波模塊觸發(fā)管腳一個(gè)TRIG一個(gè)持續(xù)10us的有效信號(hào),超聲波模塊開(kāi)始發(fā)射8個(gè)40Hkz的周期電平信號(hào),一旦檢測(cè)到有回波信號(hào)則輸出回響信號(hào)?;仨懶盘?hào)的脈沖寬度與所測(cè)距離成正比?;仨懶盘?hào)剛變高電平時(shí),開(kāi)啟定時(shí)器
57、,等到電平拉低,關(guān)閉定時(shí)器并記錄時(shí)間T。程序進(jìn)入計(jì)算子程序,中間首先執(zhí)行記速程序,利用DS18B20修正當(dāng)時(shí)速度。通過(guò)一系列判斷(超過(guò)4m發(fā)生溢出,低于設(shè)定的10cm,啟動(dòng)語(yǔ)音報(bào)警)顯示在lcd1602上面。 </p><p> 圖4-1 系統(tǒng)程序流程圖</p><p><b> 溫度補(bǔ)償流程圖</b></p><p> 圖4-2
58、 溫度補(bǔ)償流程圖</p><p> 考慮到溫度對(duì)聲速的影響,程序在一開(kāi)始就進(jìn)行溫度采集,在關(guān)閉定時(shí)器后,修正聲速后再進(jìn)行數(shù)據(jù)處理。</p><p><b> 調(diào)試及誤差分析 </b></p><p><b> 5.1軟件調(diào)試</b></p><p> 由于本設(shè)計(jì)采用的是模塊連接,連接前首先保
59、證GND都已連接,有萬(wàn)用表可以測(cè)試一下它們是否已經(jīng)有效連接。連接前,可以先測(cè)試各個(gè)模塊是否能夠工作,其功能能否達(dá)到要求。硬件測(cè)試好后,便可以將程序便已下載到單片機(jī)中試運(yùn)行。根據(jù)實(shí)際情況可以修改超聲波發(fā)生子程序每次發(fā)送的脈沖寬度和兩次測(cè)量的時(shí)間間隔,以適應(yīng)不同距離的測(cè)量需要。根據(jù)所設(shè)計(jì)的電路參數(shù)和程序,測(cè)距儀能測(cè)量的范圍為0.04-----4m,測(cè)距儀最大的誤差不應(yīng)超過(guò)1cm。系統(tǒng)調(diào)試完后應(yīng)對(duì)測(cè)量誤差和重復(fù)一致性進(jìn)行多次實(shí)驗(yàn)分析,不斷優(yōu)化
60、系統(tǒng)使其達(dá)到實(shí)際使用效果要求。本設(shè)計(jì)使用KEIL3編譯。</p><p> 圖5-1 Keil3的程序編譯界面 </p><p> 設(shè)計(jì)采用調(diào)用多個(gè)頭文件的方法,這樣層次和思路比較清晰,其中的包括LED1602.h是以前就編譯后的,這讓調(diào)用起來(lái)比較節(jié)省時(shí)間,修改也很方便。</p><p><b> 超聲波發(fā)射啟動(dòng):&
61、lt;/b></p><p> void StartModule1() //啟動(dòng)模塊1</p><p><b> {</b></p><p> unsigned char nop ;</p><p> TX1=1; //啟動(dòng)一次模塊&
62、lt;/p><p> for(nop=0;nop<21;nop++)</p><p><b> {</b></p><p><b> _nop_(); </b></p><p><b> } </b></p><p><b>
63、TX1=0;</b></p><p><b> }</b></p><p> 根據(jù)模塊工作的時(shí)序圖,要求啟動(dòng)模塊的前提是給TRIG引腳提供至少10us的高電平。程序利用循環(huán)執(zhí)行空語(yǔ)句,達(dá)到21us延時(shí)以上,從而啟動(dòng)超聲波模塊工作。</p><p><b> 超聲波模塊工作 </b></p>
64、<p> while(!RX);//當(dāng)RX為零時(shí)等待</p><p> TR0=1; //開(kāi)啟計(jì)數(shù)</p><p> while(RX);//當(dāng)RX為1計(jì)數(shù)并等待</p><p> TR0=0;//關(guān)閉計(jì)數(shù)</p><p> 當(dāng)模塊收到回響信號(hào)時(shí),ECHO管腳輸出一個(gè)高電平,脈沖的寬度與距離
65、成比例。</p><p><b> 測(cè)距計(jì)算</b></p><p> Time =TH0*256+TL0;</p><p><b> TH0=0;</b></p><p><b> TL0=0;</b></p><p> Speed =(33
66、1.4+0.607* wenduzhi )/200;</p><p> S=(time*speed)/100; //算出來(lái)是CM</p><p> 定時(shí)器把計(jì)算好的值傳給Time然后清零,通過(guò)DS18B20修正聲速。由于定時(shí)器返回值單位為us,所以把聲速連續(xù)除以10000,使其單位為cm/us,符合設(shè)計(jì)以厘米為單位,在于Time相乘,得到以cm為單位的距離。</p>
67、<p><b> 距離溢出處理及報(bào)警</b></p><p> 當(dāng)返回的距離超出大于400cm或者定時(shí)器的值發(fā)生溢出,使中斷標(biāo)志位flag置1,定時(shí)器清零,1602顯示“-.--M”</p><p> 當(dāng)返回值少于10cm時(shí),啟動(dòng)語(yǔ)音報(bào)警模塊。</p><p> 距離正常或者少于10cm都會(huì)顯示出來(lái)。</p>
68、<p> void Conut2(void) //m</p><p><b> { </b></p><p><b> speed();</b></p><p> if((S>=400)||flag==1) //超出測(cè)量范圍顯示“-”</p><p><b&
69、gt; { </b></p><p><b> flag=0;</b></p><p> DisplayOneChar(2, 1, ASCII[11]);</p><p> DisplayOneChar(3, 1, ASCII[10]);//顯示點(diǎn)</p><p> DisplayOneChar
70、(4, 1, ASCII[11]);</p><p> DisplayOneChar(5, 1, ASCII[11]);</p><p> DisplayOneChar(6, 1, ASCII[12]);//顯示M</p><p><b> }</b></p><p><b> else</b&
71、gt;</p><p><b> {</b></p><p> disbuff[0]=S%1000/100;//定義距離數(shù)組</p><p> disbuff[1]=S%1000%100/10;</p><p> disbuff[2]=S%1000%10 %10;</p><p>
72、DisplayOneChar(2, 1, ASCII[disbuff[0]]);</p><p> DisplayOneChar(3, 1, ASCII[10]);//顯示點(diǎn)</p><p> DisplayOneChar(4, 1, ASCII[disbuff[1]]);</p><p> DisplayOneChar(5, 1, ASCII[disbuf
73、f[2]]);</p><p> DisplayOneChar(6, 1, ASCII[12]);//顯示M</p><p> S1=disbuff[0]*10+disbuff[1]+0.1* disbuff[2];</p><p> if(S1<10)</p><p><b> {</b></p
74、><p><b> speak1();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 5.2 測(cè)試分析</b
75、></p><p> 基于上面設(shè)計(jì)的硬件電路和軟件,連接好電路后,裝在HEX文件,對(duì)系統(tǒng)進(jìn)行測(cè)試。由于本設(shè)計(jì)針對(duì)的是車(chē)用倒車(chē)裝置,所以測(cè)量距離集中于4-40cm。實(shí)際測(cè)試距離如表所示</p><p><b> 左超聲波模塊:</b></p><p><b> 左超聲波模塊:</b></p><
76、;p><b> 左超聲波模塊:</b></p><p> 圖5-2 車(chē)用超聲波實(shí)物演示圖</p><p> 由于超聲波模塊沒(méi)有把他們固定在電路板上,所以在放置測(cè)距上面由于角度上的問(wèn)題,造成同一型號(hào)的模塊測(cè)出的距離有所不同,但就總體上而言,對(duì)倒車(chē)造成的影響可以忽略。</p><p><b> 5.3誤差分析</b&
77、gt;</p><p> 經(jīng)過(guò)調(diào)試分析,發(fā)現(xiàn)非常適用4-40cm的測(cè)量距離。距離長(zhǎng)于60cm時(shí),誤差開(kāi)始變大。經(jīng)過(guò)分析,超聲波測(cè)距在實(shí)際應(yīng)用中也有局限性,一是超聲波在空氣中衰減極大,測(cè)量距離的不同,造成回波信號(hào)的起伏,使回波到達(dá)時(shí)間的測(cè)量產(chǎn)生了較大的誤差;二是環(huán)境因素,諸如風(fēng)速等。以上的因素都限制了超聲波測(cè)距在一些對(duì)測(cè)距精度要求較高、適合長(zhǎng)距離測(cè)距的場(chǎng)合的應(yīng)用。本系統(tǒng)的適合倒車(chē)的范圍內(nèi)誤差基本可以忽略,所以綜合
78、各種因素,非常適合裝載在汽車(chē)上使用。 </p><p><b> 鳴 謝</b></p><p> 首先,我要感謝我的導(dǎo)師在畢業(yè)設(shè)計(jì)中對(duì)我給予的悉心指導(dǎo)和嚴(yán)格的要求,同時(shí)也感謝本校的一些老師在畢業(yè)設(shè)計(jì)期間給予我的幫助。在我畢業(yè)論文寫(xiě)作期間,各位老師給我提供的各種專(zhuān)業(yè)知識(shí)上的指導(dǎo)和日常生活上的關(guān)懷,沒(méi)有您們這樣的幫助,我的設(shè)計(jì)不會(huì)這么順利的完成,借此機(jī)會(huì),向您們表
79、示由衷的感激。同時(shí)還要謝謝宿舍各位舍友在試驗(yàn)期間給我提供的幫助。在畢業(yè)設(shè)計(jì)的短短3個(gè)月里,你們給我提供的寶貴意見(jiàn),給了我不少工作上的支持,在此也真誠(chéng)地感謝你們。最后我要深深地感謝我的家人,真是他們含辛茹苦地把我養(yǎng)育成人,在生活和學(xué)習(xí)上給予我無(wú)盡的愛(ài)、理解和支持,這才使我時(shí)刻充滿信心和勇氣,克服成長(zhǎng)路上的種種困難,順利完成學(xué)業(yè)。還有許許多多給予我學(xué)業(yè)上的鼓勵(lì)和幫助的朋友,在此無(wú)法一一列舉,在此也一并便是感謝。</p><
80、;p><b> 參考文獻(xiàn)</b></p><p> [1] 胡萍.超聲波測(cè)距儀的研制.計(jì)算機(jī)與現(xiàn)代化,2003.10 </p><p> [2] 時(shí)德剛,劉嘩.超聲波測(cè)距的研究.計(jì)算機(jī)測(cè)量與控制,2002.10 </p><p> [3] 華兵.MCS-51單片機(jī)原理應(yīng)用.武漢:武漢華中科技大學(xué)出版社,2002 .5 </
81、p><p> [4] 李華.MCU-51系列單片機(jī)實(shí)用接口技術(shù).北京航空航天大學(xué)出版社1993.6 </p><p> [5] 陳光東.單片機(jī)微型計(jì)算機(jī)原理與接口技術(shù).華中理工大學(xué)出版社,1999.4 </p><p> [6] 徐淑華,姚萬(wàn)生.單片機(jī)微型機(jī)原理及應(yīng)用.哈爾濱工業(yè)大學(xué)出版社,1999. 6. </p><p> [7] 蘇
82、長(zhǎng)贊.紅外線與超聲波遙控.北京:人民郵電出版社,1993.7 </p><p> [8] 張謙琳.超聲波檢測(cè)原理和方法.北京:中國(guó)科技大學(xué)出版社,1993.10 </p><p> [9] 樊昌元,丁義元. 高精度測(cè)距雷達(dá)研究.電子測(cè)量與儀器學(xué)報(bào),2000.10 </p><p> [10] 蘇偉,鞏壁建.超聲波測(cè)距誤差分析.傳感器技術(shù),2004. </
83、p><p> [11] 永學(xué)等.1-Wire總線數(shù)字溫度傳感器DS18B20及應(yīng)用.電子產(chǎn)品世界,2003.12 </p><p> [12] 勝全.D18B20數(shù)字溫度計(jì)在微機(jī)溫度采集系統(tǒng)中的序編制.1998. 3 </p><p> [13] 恒清,張靖.加強(qiáng)單片機(jī)系統(tǒng)抗干擾能力的方法.通化師范學(xué)院學(xué)報(bào),2004 .10 </p><p&g
84、t; [14] 晗曉,袁慧梅.單片機(jī)系統(tǒng)的印制板設(shè)計(jì)與抗干擾技術(shù).電子工藝技術(shù),2004 .6 </p><p> [15] 占操,梁厚琴,曹燕.單片機(jī)系統(tǒng)中的軟件抗干擾技術(shù).電子技術(shù),2003.3 </p><p> [16] 華兵.MCS-51單片機(jī)原理應(yīng)用.武漢:武漢華中科技大學(xué)出版社,2002 .5 </p><p> [17] 繼興,劉霞.單片機(jī)系
85、統(tǒng)軟件抗干擾措施分析.電子測(cè)量技術(shù)出版社,2003 </p><p> [18] 田華等.可編程單總線數(shù)字式溫度傳感器DS18B2的原理與應(yīng)用.2004.7</p><p> [19] Guiyun Tian .Foumdation and Application pf Microcontroller.</p><p> 高等教育出版社 2003.4 <
86、;/p><p> [20] Vizimuller, P AT89C51 DATA SHEEP Philips Semiconductors 1999.dec</p><p><b> 附 錄</b></p><p><b> 程序:</b></p><p> *===============
87、==============================================*/</p><p> #include <AT89x51.H>//主體程序</p><p> #include <intrins.h></p><p> #include <1602.h></p><p>
88、; #include <ds18b20.h></p><p> #include <count.h></p><p> #include <display.h></p><p> void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DDat
89、a);</p><p> void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); </p><p> void Decode(unsigned char ScanCode);/****************************************
90、****************/</p><p> void zd0() interrupt 1 //T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距范圍</p><p><b> {</b></p><p> flag=1; //中斷溢出標(biāo)志</p><p><b> }</b>&l
91、t;/p><p> /*********************************************************/</p><p> void main(void)</p><p><b> {</b></p><p> unsigned char delay;</p><
92、;p> int ds18b20_temp;</p><p> Delay400Ms(); //啟動(dòng)等待,等LCM講入工作狀態(tài)</p><p> LCMInit(); //LCM初始化</p><p> Delay5Ms(); //延時(shí)片刻(可不要)</p><p> designer_display_initial() ;&
93、lt;/p><p> for (delay=0; delay<5; delay++) </p><p><b> {</b></p><p> Delay400Ms(); //延時(shí)</p><p><b> }</b></p><p> DisplayLis
94、tChar(0, 1, Cls);</p><p> DisplayListChar(0, 0, Cls);</p><p> display_tempture();</p><p><b> while(1)</b></p><p><b> {</b></p><
95、p> TMOD=0x01; //設(shè)T0為方式1,GATE=1; </p><p><b> TH0=0;</b></p><p> TL0=0; </p><p> ET0=1; //允許T0中斷</p><p> EA=1;
96、 //開(kāi)啟總中斷</p><p> direction_display_initial() ;</p><p><b> while(1)</b></p><p><b> {</b></p><p> display_tempture();</p><p&g
97、t; StartModule0();</p><p> while(!RX);//當(dāng)RX為零時(shí)等待</p><p> TR0=1; //開(kāi)啟計(jì)數(shù)</p><p> while(RX);//當(dāng)RX為1計(jì)數(shù)并等待</p><p> TR0=0;//關(guān)閉計(jì)數(shù) </p><p>
98、Conut();//計(jì)算</p><p> delayms(80);//80MS </p><p> StartModule1();</p><p> while(!RX1);//當(dāng)RX為零時(shí)等待</p><p> TR0=1; //開(kāi)啟計(jì)數(shù)</p><p> while(RX
99、1);//當(dāng)RX為1計(jì)數(shù)并等待</p><p> TR0=0;//關(guān)閉計(jì)數(shù) </p><p> Conut1();//計(jì)算</p><p> delayms(80);//80MS </p><p> StartModule2();</p><p> while(!RX2);
100、//當(dāng)RX為零時(shí)等待</p><p> TR0=1; //開(kāi)啟計(jì)數(shù)</p><p> while(RX2);//當(dāng)RX為1計(jì)數(shù)并等待</p><p> TR0=0;//關(guān)閉計(jì)數(shù) </p><p> Conut2();//計(jì)算</p><p> delayms(80);/
101、/80MS </p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p> /******* 1602的子程序
102、 *****/</p><p> #define Busy 0x80 //用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)</p><p> #define RX P0_0</p><p> #define TX P0_3</p><p> #define RX1 P0_1</p><p>
103、; #define TX1 P0_4</p><p> #define RX2 P0_2</p><p> #define TX2 P3_0</p><p> #define LCM_RW P0_6 //定義LCD引腳</p><p> #define LCM_RS P0_5</p><p>
104、 #define LCM_E P0_7</p><p> #define LCM_Data P2</p><p> #define Key_Data P3_2 //定義Keyboard引腳</p><p> #define Key_CLK P3_3 </p><p> void LCMInit(void);</p>
105、;<p> void Delay5Ms(void);</p><p> void Delay400Ms(void);</p><p> unsigned char ReadDataLCM(void);</p><p> unsigned char ReadStatusLCM(void);</p><p> void W
106、riteDataLCM(unsigned char WDLCM);</p><p> void WriteCommandLCM(unsigned char WCLCM,BuysC);</p><p><b> //寫(xiě)數(shù)據(jù)</b></p><p> void WriteDataLCM(unsigned char WDLCM) </p&
107、gt;<p><b> {</b></p><p> ReadStatusLCM(); //檢測(cè)忙</p><p> LCM_Data = WDLCM;</p><p> LCM_RS = 1;</p><p> LCM_RW = 0;</p><p> LCM_E =
108、0; //若晶振速度太高可以在這后加小的延時(shí)</p><p> LCM_E = 0; //延時(shí)</p><p> LCM_E = 1;</p><p><b> }</b></p><p><b> //寫(xiě)指令</b></p><p> void WriteComm
109、andLCM(unsigned char WCLCM,BuysC) //BuysC為0時(shí)忽略忙檢測(cè)</p><p><b> {</b></p><p> if (BuysC) ReadStatusLCM(); //根據(jù)需要檢測(cè)忙</p><p> LCM_Data = WCLCM;</p><p> LCM_R
110、S = 0;</p><p> LCM_RW = 0;</p><p> LCM_E = 0;</p><p> LCM_E = 0;</p><p> LCM_E = 1;</p><p><b> }</b></p><p><b> //讀數(shù)
111、據(jù)</b></p><p> unsigned char ReadDataLCM(void)</p><p><b> {</b></p><p> LCM_RS = 1; </p><p> LCM_RW = 1;</p><p> LCM_E = 0;</p>
112、<p> LCM_E = 0;</p><p> LCM_E = 1;</p><p> return(LCM_Data);</p><p><b> }</b></p><p><b> //讀狀態(tài)</b></p><p> unsigned ch
113、ar ReadStatusLCM(void)</p><p><b> {</b></p><p> LCM_Data = 0xFF; </p><p> LCM_RS = 0;</p><p> LCM_RW = 1;</p><p> LCM_E = 0;</p>&l
114、t;p> LCM_E = 0;</p><p> LCM_E = 1;</p><p> while (LCM_Data & Busy); //檢測(cè)忙信號(hào)</p><p> return(LCM_Data);</p><p><b> }</b></p><p> voi
115、d LCMInit(void) //LCM初始化</p><p><b> {</b></p><p> LCM_Data = 0;</p><p> WriteCommandLCM(0x38,0); //三次顯示模式設(shè)置,不檢測(cè)忙信號(hào)</p><p> Delay5Ms(); </p><p
116、> WriteCommandLCM(0x38,0);</p><p> Delay5Ms(); </p><p> WriteCommandLCM(0x38,0);</p><p> Delay5Ms(); </p><p> WriteCommandLCM(0x38,1); //顯示模式設(shè)置,開(kāi)始要求每次檢測(cè)忙信號(hào)</
117、p><p> WriteCommandLCM(0x08,1); //關(guān)閉顯示</p><p> WriteCommandLCM(0x01,1); //顯示清屏</p><p> WriteCommandLCM(0x06,1); // 顯示光標(biāo)移動(dòng)設(shè)置</p><p> WriteCommandLCM(0x0F,1); // 顯示開(kāi)及光標(biāo)設(shè)
118、置</p><p><b> }</b></p><p> //按指定位置顯示一個(gè)字符</p><p> void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)</p><p><b> {</b>
119、</p><p><b> Y &= 0x1;</b></p><p> X &= 0xF; //限制X不能大于15,Y不能大于1</p><p> if (Y) X |= 0x40; //當(dāng)要顯示第二行時(shí)地址碼+0x40;</p><p> X |= 0x80; //算出指令碼</p>
120、;<p> WriteCommandLCM(X, 1); //發(fā)命令字</p><p> WriteDataLCM(DData); //發(fā)數(shù)據(jù)</p><p><b> }</b></p><p> //按指定位置顯示一串字符</p><p> void DisplayListChar(unsig
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 車(chē)載超聲波測(cè)距畢業(yè)論文--基于52單片機(jī)的車(chē)用超聲波測(cè)距系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于單片機(jī)的超聲波測(cè)距系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的超聲波測(cè)距系統(tǒng)實(shí)現(xiàn)畢業(yè)論文
- 51單片機(jī)超聲波測(cè)距畢業(yè)論文
- 基于單片機(jī)的超聲波測(cè)距系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的超聲波測(cè)距系統(tǒng)-畢業(yè)論文
- 基于51單片機(jī)超聲波測(cè)距畢業(yè)論文
- 52單片機(jī)超聲波測(cè)距系統(tǒng)開(kāi)題報(bào)告
- 基于51單片機(jī)超聲波測(cè)距畢業(yè)論文
- 51單片機(jī)超聲波測(cè)距設(shè)計(jì)--畢業(yè)論文
- 基于at89s52單片機(jī)超聲波測(cè)距系統(tǒng)畢業(yè)論文
- 基于單片機(jī)的超聲波測(cè)距論文
- 基于單片機(jī)的超聲波測(cè)距系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的超聲波測(cè)距設(shè)計(jì)
- 基于51單片機(jī)的超聲波測(cè)距系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 單片機(jī)超聲波測(cè)距畢業(yè)設(shè)計(jì)
- 畢業(yè)論文——基于51單片機(jī)的超聲波測(cè)距系統(tǒng)設(shè)計(jì)
- 基于52單片機(jī)的超聲波測(cè)距系統(tǒng)-課程設(shè)計(jì)
- 基于單片機(jī)的超聲波測(cè)距系統(tǒng)【畢業(yè)設(shè)計(jì)】
- 基于單片機(jī)的超聲波測(cè)距系統(tǒng)【畢業(yè)設(shè)計(jì)】
評(píng)論
0/150
提交評(píng)論