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

下載本文檔

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

文檔簡介

1、<p>  基于51單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)</p><p><b>  中國·珠海</b></p><p><b>  二○XX年X月</b></p><p> 學(xué) 院:專 業(yè):姓 名:指導(dǎo)老師:信息學(xué)院</p><p> 測控技術(shù)與儀器</p>

2、<p> 學(xué) 號:職 稱:</p><p>  基于51單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  本次系統(tǒng)的設(shè)計(jì)主要包括兩部分,即硬件電路和軟件程序。硬件電路主要包括單片機(jī)電路、發(fā)射電路、接收電路、顯示電路和電源電路等。本次設(shè)計(jì)采用以AT89C51單片機(jī)為核心的低成本

3、、高精度、微型化數(shù)字顯示超聲波測距儀的硬件電路。整個(gè)電路采用模塊化設(shè)計(jì),由信號發(fā)射和接收、供電、顯示等模塊組成。發(fā)射探頭的信號經(jīng)放大和檢波后發(fā)射出去,單片機(jī)的計(jì)時(shí)器開始計(jì)時(shí),超聲波被發(fā)射后按原路返回,信號被接受電路接受,然后被單片機(jī)接收,計(jì)數(shù)器停止工作并得到時(shí)間。軟件程序主要由主程序、預(yù)置子程序、發(fā)射子程序、接收子程序、顯示子程序等模塊組成。它控制單片機(jī)進(jìn)行數(shù)據(jù)發(fā)送與接收,實(shí)現(xiàn)數(shù)據(jù)正確顯示在數(shù)碼管上。另外程序控制單片機(jī)消除各探頭對發(fā)射和

4、接收超聲波的影響。相關(guān)部分附有硬件電路圖、程序流程圖。</p><p>  實(shí)際的環(huán)境對超聲波有很大的影響,如外部電磁干擾電源干擾信道干擾等等,空氣的溫度對超聲波的速度影響也很大,此外供電電源也會(huì)使測量差生很大的誤差。由于知識面有限,作品還有許多可以改進(jìn)的地方,希望在日后的學(xué)習(xí)中能將作品完善的更好。</p><p>  關(guān)鍵詞:AT89C51;超聲波;測距</p><p

5、>  51 MCU-based Ultrasonic Ranging System Design</p><p><b>  Abstract</b></p><p>  The system's design includes two parts, namely the hardware circuit and software program.The

6、 hardware circuit includes a microcontroller circuit, the transmitting circuit, the receiving circuit, display circuit and the power supply circuit. The design uses AT89C51 microcontroller as the core of low-cost, high-p

7、recision, miniaturization of digital hardware circuit of the ultrasonic range finder. The entire circuit is modular in design, by the signal transmitter and receiver, power supply, display</p><p>  Actual en

8、vironment has a great influence on the ultrasonic waves, such as an external electromagnetic interference power interfering channel interference, etc., the temperature of the air is also a great influence on the speed of

9、 the ultrasonic addition, the power supply to the measured differential raw large errors. Due to the limited knowledge, works there are many areas for improvement, can work better in the future study.</p><p>

10、;  Keywords: AT89C51;Ultrasonic;Ranging</p><p><b>  目 錄</b></p><p><b>  1.緒論1</b></p><p>  1.1課題背景及重要意義1</p><p>  1.2 研究內(nèi)容1</p><p

11、>  1.3主要任務(wù)及目標(biāo):2</p><p>  2.整體設(shè)計(jì)思路2</p><p>  2.1硬件整體設(shè)計(jì)2</p><p>  2.2軟件整體設(shè)計(jì)思路4</p><p><b>  3.硬件設(shè)計(jì)5</b></p><p>  3.1對超聲波的認(rèn)識5</p>&

12、lt;p>  3.2器材的選擇6</p><p>  3.3.單片機(jī)最小系統(tǒng)9</p><p>  3.4超聲波發(fā)射電路9</p><p>  3.5超聲波接收電路設(shè)計(jì)10</p><p>  3.6顯示電路設(shè)計(jì)12</p><p><b>  4.軟件設(shè)計(jì)13</b></

13、p><p>  4.1主程序設(shè)計(jì)13</p><p>  4.2中斷處理程序16</p><p>  4.3計(jì)算及顯示模塊設(shè)計(jì)18</p><p>  4.4作品展示:20</p><p><b>  5.設(shè)計(jì)總結(jié)21</b></p><p>  參 考 文 獻(xiàn)22

14、</p><p><b>  謝辭23</b></p><p>  系統(tǒng)整體電路圖24</p><p><b>  程序代碼25</b></p><p><b>  1.緒論</b></p><p>  1.1課題背景及重要意義</p>

15、<p>  近年來,隨著電子測量技術(shù)的發(fā)展,運(yùn)用超聲波作出精確測量已成可能。超聲波擁有許多優(yōu)點(diǎn):超聲波測量精確高,成本低,性能穩(wěn)定則備受青睞。超聲波是指頻率在20kHz以上的聲波,它屬于機(jī)械波的范疇。超聲波也遵循一般機(jī)械波在彈性介質(zhì)中的傳播規(guī)律,如在介質(zhì)的分界面處發(fā)生反射和折射現(xiàn)象,在進(jìn)入介質(zhì)后被介質(zhì)吸收而發(fā)生衰減等。正是因?yàn)榫哂羞@些性質(zhì),使得超聲波可以用于距離的測量中。隨著科技水平的不斷提高,超聲波測距技術(shù)被廣泛應(yīng)用于人

16、們?nèi)粘9ぷ骱蜕钪?。一般的超聲波測距儀可用于固定物位或液位的測量,適用于建筑物內(nèi)部、液位高度的測量等。</p><p>  由于超聲測距是一種非接觸檢測技術(shù),不受光線、被測對象顏色等的影響,較其它儀器更衛(wèi)生,更耐潮濕、粉塵、高溫、腐蝕氣體等惡劣環(huán)境,具有少維護(hù)、不污染、高可靠、長壽命等特點(diǎn)。因此可廣泛應(yīng)用于紙業(yè)、礦業(yè)、電廠、化工業(yè)、水處理廠、污水處理廠、農(nóng)業(yè)用水、環(huán)保檢測、食品(酒業(yè)、飲料業(yè)、添加劑、食用油、奶

17、制品)、防汛、水文、明渠、空間定位、公路限高等行業(yè)中??稍诓煌h(huán)境中進(jìn)行距離準(zhǔn)確度在線標(biāo)定,可直接用于水、酒、糖、飲料等液位控制,可進(jìn)行差值設(shè)定,直接顯示各種液位罐的液位、料位高度。因此,超聲在空氣中測距在特殊環(huán)境下有較廣泛的應(yīng)用。利用超聲波檢測往往比較迅速、方便、計(jì)算簡單、易于實(shí)現(xiàn)實(shí)時(shí)控制,并且在測量精度方面能達(dá)到工業(yè)實(shí)用的指標(biāo)要求,因此為了使移動(dòng)機(jī)器人能夠自動(dòng)躲避障礙物行走,就必須裝備測距系統(tǒng),以使其及時(shí)獲取距障礙物的位置信息(距離

18、和方向)。因此超聲波測距在移動(dòng)機(jī)器人的研究上得到了廣泛的應(yīng)用。同時(shí)由于超聲波測距系統(tǒng)具有以上的這些優(yōu)點(diǎn),因此在汽車倒車?yán)走_(dá)的研制方面也得到了廣泛的應(yīng)用。</p><p><b>  1.2 研究內(nèi)容</b></p><p>  設(shè)計(jì)一個(gè)超聲波測距系統(tǒng),以單片機(jī)為控制核心,實(shí)現(xiàn)測距功能。</p><p>  1.初步掌握模擬、數(shù)字電路分析和設(shè)計(jì)的

19、基本方法。包括: </p><p> ?。?)根據(jù)設(shè)計(jì)任務(wù)和指標(biāo),初選電路; </p><p> ?。?)通過調(diào)查研究、設(shè)計(jì)計(jì)算,確定電路方案; </p><p>  2. 培養(yǎng)一定自學(xué)能力和獨(dú)立分析問題、解決問題能力。包括: </p><p>  (1)學(xué)會(huì)自己分析、找出解決問題的方法; </p><p>  對設(shè)計(jì)

20、中遇到的問題,能獨(dú)立思考,查閱資料,尋找答案。</p><p>  1.3主要任務(wù)及目標(biāo):</p><p>  1.設(shè)計(jì)一個(gè)單片機(jī)最小系統(tǒng),有l(wèi)cd顯示和按鍵;</p><p>  2.設(shè)計(jì)一個(gè)超聲波測距模塊;</p><p>  3.系統(tǒng)要求具有一定的可擴(kuò)展性;</p><p>  4.畢業(yè)論文嚴(yán)格按學(xué)校的要求撰寫;

21、</p><p><b>  2.整體設(shè)計(jì)思路</b></p><p><b>  2.1硬件整體設(shè)計(jì)</b></p><p>  在開始做畢業(yè)設(shè)計(jì)之前,我需要對要所要完成的作品有一個(gè)大概的掌控,特別是對超聲波測距的原理和超聲波測距系統(tǒng)的組成部分能有一個(gè)清晰的認(rèn)識。</p><p>  超聲波測距的

22、原理:超生波測距的原理其實(shí)很簡單,也就是大自然中蝙蝠捕食的原理,首先需要超生波發(fā)射裝置,發(fā)出超聲波,此時(shí)時(shí)間記作T1,當(dāng)超聲波收到障礙物的阻擋時(shí),就會(huì)被反彈回來,然后就被超聲波接受裝置所捕捉到,這時(shí)時(shí)間記作T2,假設(shè)此時(shí)的聲速為V,則超聲波測距裝置與障礙物之間的距離S為:S=V*(T2-T1)/2。 (式2.1)</p><p>  超聲波的原理圖如圖2.1所示:<

23、;/p><p><b>  t 障礙物</b></p><p><b>  s</b></p><p><b>  超聲波發(fā)射</b></p><p><b>  超聲波接收</b></p><p>  圖2.1 超聲波的測距原理

24、</p><p>  在我動(dòng)手之前不是說能夠一氣呵成的完成作品,如果那樣做的話,萬一哪一部分出了問題,那么我將很難檢查的出來,所以效率很低。</p><p>  因此決定分模塊來完成我的作品,首先用仿真軟件進(jìn)行仿真,確定好布線器材等,就可以先從硬件開始著手了,超聲波測距系統(tǒng)的組成部分:1. 單片機(jī)最小系統(tǒng) 2.超聲波發(fā)射部分 3.超聲波接受部分 4.顯示部分;我只要一個(gè)一個(gè)模塊

25、的實(shí)現(xiàn),這樣效率就能提高很多。</p><p>  完成好硬件的功能,接下來就需要實(shí)現(xiàn)軟件的功能了,本次設(shè)計(jì)的程序需要完成的功能有:</p><p>  (1)超聲波的發(fā)射和接收控制</p><p> ?。?)對回波信號的檢測</p><p> ?。?)測距時(shí)間到距離的換算</p><p><b> ?。?)

26、距離的顯示</b></p><p>  從整體看超聲波測距的原理很簡單,但是我們要想獲得一個(gè)高精度的測距結(jié)果,還需要考慮和多方面的東西,比如說:測距的溫度會(huì)對結(jié)果有很大的影響。而且在器材選用方面,對測距結(jié)果也會(huì)帶來很大的誤差。因此,在完成作品的過程中,還需要對硬件和軟件有一個(gè)更加細(xì)致的考慮。</p><p>  整體電路的控制核心為單片機(jī)AT89C51。超聲波發(fā)射和接收電路中都

27、對相應(yīng)信號進(jìn)行整形及放大,以保證測量結(jié)果盡可能精確。超聲波探頭接OUT口實(shí)現(xiàn)超聲波的發(fā)射和接收。整體結(jié)構(gòu)圖包括超聲波發(fā)射電路,超聲波接收電路,單片機(jī)電路,顯示電路等幾部分模塊組成。由于超聲波在發(fā)射和接收的過程中會(huì)有能量的損失,因此在超聲波發(fā)射與接收電路還要加入放大電路。在發(fā)射后把信號放大,接收前也要把還再次放大,進(jìn)行多級放大才能達(dá)到發(fā)射和接收的效果。</p><p>  整體電路結(jié)構(gòu)圖如圖2.1.1所示:<

28、/p><p>  圖2.1.1 超聲波測距原理圖</p><p>  數(shù)字顯示仿真如圖2.1.2所示:</p><p>  圖2.1.2 數(shù)字顯示仿真</p><p>  2.2軟件整體設(shè)計(jì)思路</p><p>  參照硬件的設(shè)計(jì)思路,軟件我也將采取模塊化的設(shè)計(jì)思路來進(jìn)行,這樣對提高效率有很大的幫助。本設(shè)計(jì)采用的是模塊化的

29、思路來進(jìn)行設(shè)計(jì)和編寫程序,程序主要由系統(tǒng)主程序和中斷程序構(gòu)成。主程序完成單片機(jī)的初始化,超聲波的發(fā)射和接收、計(jì)算超聲波發(fā)射點(diǎn)與障礙物之間的距離、數(shù)碼管顯示等。</p><p><b>  3.硬件設(shè)計(jì)</b></p><p>  3.1對超聲波的認(rèn)識</p><p><b>  超聲波簡介:</b></p>

30、<p>  超聲波技術(shù)是一門以物理、電子、機(jī)械、以及材料科學(xué)為基礎(chǔ)的、各行各業(yè)都可使用的通用技術(shù)之一。超聲波技術(shù)是通過超聲波的產(chǎn)生、傳播以及接收的物理過程完成的。該技術(shù)在國民經(jīng)濟(jì)中,對提高產(chǎn)品質(zhì)量,保障生產(chǎn)安全和設(shè)備安全運(yùn)作,降低生產(chǎn)成本,提高生產(chǎn)效率特別具有潛在能力。因此,我國對超聲波的研究特別活躍。</p><p><b>  超聲波的三種形式:</b></p>

31、<p>  超聲波在介質(zhì)中可以產(chǎn)生三種形式的振蕩波:橫波,質(zhì)點(diǎn)振動(dòng)方向垂直于傳播方向的波;縱波,質(zhì)點(diǎn)振動(dòng)方向與傳播方向一致的波;表面波,質(zhì)點(diǎn)振動(dòng)介于縱波和橫波之間,沿表面?zhèn)鞑サ牟?。橫波只能在固體中傳播,縱波能在固體液體中和氣體中傳播,表面波隨深度的增加其衰減很快。為了測量各種狀態(tài)下的物理量多采用縱波形式的超聲波。</p><p><b>  超聲波的物理性質(zhì):</b></p&

32、gt;<p>  (1) 超聲波的反射和折射</p><p>  當(dāng)超聲波傳播到兩種特性阻抗不同介質(zhì)的平面分界面上時(shí),一部分超聲波被反射;另一部分透射過界面,在相鄰介質(zhì)內(nèi)部繼續(xù)傳播。這樣的兩種情況稱之為超聲波的反射和折射。</p><p><b>  (2)超聲波的衰減</b></p><p>  超聲波在一種介質(zhì)中傳播,其聲壓和

33、聲強(qiáng)按指數(shù)函數(shù)規(guī)律衰減。</p><p><b>  (3)超聲波的干涉</b></p><p>  如果在一種介質(zhì)中傳播幾個(gè)聲波,于是產(chǎn)生波的干涉現(xiàn)象。由于超聲波的干涉,在輻射器的周圍形成一個(gè)包括最大最小的揚(yáng)聲場。</p><p><b>  3.2器材的選擇</b></p><p><b&

34、gt;  超聲波傳感器介紹:</b></p><p>  據(jù)我查閱資料了解到超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機(jī)械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型和電動(dòng)型等;機(jī)械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。他們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。壓電式超聲波發(fā)生器實(shí)際上是利用壓電晶體的諧振來工作的。它有

35、兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號,其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng),便產(chǎn)生超聲波。反之,如果兩極間未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號,這時(shí)它就成為超聲波接收器了。超聲波傳感器結(jié)構(gòu)如下:</p><p>  .圖3.2 超聲波傳感器外部結(jié)構(gòu)</p><p>  圖3.2.1超聲波傳感器內(nèi)部結(jié)

36、構(gòu)</p><p>  由于市場上的超聲波種類很多,通過我查閱資料,分析了超聲波傳感器的升壓能級和靈敏度的關(guān)系后,發(fā)現(xiàn)在超聲波測量系統(tǒng)中,當(dāng)頻率取得太低,則外界的雜音干擾較多,超聲波接收的雜波就多,靈敏度就不高;當(dāng)頻率取得太高,在傳播的過程中能量損失比較大,雖然分辨力比較高,但是測量距離變短。通過我的綜合分析,找到了比較好的頻率段40KHz。</p><p>  如下圖3.2.2超聲波傳感

37、器的升壓能級圖和圖3.2.3超聲波傳感器的靈敏度圖。</p><p>  圖3.2.2 超聲波傳感器的升壓能級</p><p>  圖3.2.3 超聲波傳感器的靈敏度</p><p>  因此本次設(shè)計(jì)選用的探頭是4OKHz的收發(fā)分體式超聲傳感器,由一支發(fā)射傳感器UCM-T40KI和一支接收傳感器UCM-R4OKI組成,其特性參數(shù)如表3.2.2所示。</p>

38、;<p><b>  傳感器特性參數(shù)表</b></p><p>  表3.2.2傳感器特性參數(shù)表</p><p>  通過自己查閱相關(guān)資料,了解到要想提高結(jié)果的精度就要考慮的更加全面,因此,我又詳細(xì)的分析了一下超聲波測距的原理。超聲波測距的方法有多種:如往返時(shí)間檢測法、相位檢測法、聲波幅值檢測法。本設(shè)計(jì)采用往返時(shí)間檢測法測距。其原理是超聲波傳感器發(fā)射一定

39、頻率的超聲波,在空氣中傳播,到達(dá)測量目標(biāo)或障礙物后反射回來,并在超聲波接收器中進(jìn)行頻率的比較和篩選,并放大有效信號記錄發(fā)射和接收的時(shí)間差,并通過S=V*(T2-T1)/2的計(jì)算公式測試傳輸出距離。</p><p>  當(dāng)進(jìn)行距離的測量時(shí),由安裝在同一水平線上的超聲波發(fā)射器和接收器完成超聲波的發(fā)射與接收,并且同時(shí)啟動(dòng)定時(shí)器進(jìn)行計(jì)數(shù)。首先由超聲波發(fā)射探頭向前方發(fā)射一定頻率的超聲波并同時(shí)啟動(dòng)定時(shí)器計(jì)時(shí),超聲波在空氣中傳

40、播的途中一旦遇到障礙物后就會(huì)被反射回來,當(dāng)然超聲波在傳播的過程中會(huì)有能量的損失,因此在超聲波的接收部位就會(huì)有超聲波放大裝置,將有效的超聲波信號進(jìn)行放大,當(dāng)接收探頭收到反射波后就會(huì)給負(fù)脈沖到單片機(jī)使其立刻停止計(jì)時(shí)。這樣,定時(shí)器就能夠準(zhǔn)確的記錄下了超聲波發(fā)射點(diǎn)至障礙物之間往返傳播所用的時(shí)間t(s)。考慮到測量的距離在誤差允許的范圍內(nèi),我們將超聲波在常溫下空氣中的傳播速度大約為340 m/s,所以障礙物到發(fā)射探頭之間的距離為:</p&g

41、t;<p>  S=340×t/2=170×t (式3.2)</p><p>  因?yàn)閱纹瑱C(jī)內(nèi)部定時(shí)器的計(jì)時(shí)實(shí)際上就是對機(jī)器周期T的計(jì)數(shù),而本設(shè)計(jì)中時(shí)鐘頻率fosc取12 MHz,設(shè)計(jì)數(shù)值N,則: </p><p>  T=12/fosc=1μs (式3.2.1)&l

42、t;/p><p>  t=N×T=N×0.000001(s) (式3.2.2)</p><p>  S=170×N×T=170×N/1000000(m) (式3.2.3)</p><p>  在程序中按式S=170×N×T=170×N/10000

43、00計(jì)算距離。</p><p>  3.3.單片機(jī)最小系統(tǒng)</p><p>  單片機(jī)最小系統(tǒng)是其他拓展系統(tǒng)的最基本的基礎(chǔ),單片機(jī)最小系統(tǒng)是指一個(gè)真正可用的單片機(jī)最小配置系統(tǒng)即單片機(jī)能工作的系統(tǒng)。對于AT89C51單片機(jī),由于片內(nèi)已經(jīng)自帶有了程序存儲(chǔ)器,所以只要單片機(jī)外接時(shí)鐘電路和復(fù)位電路就可以組成了單片機(jī)的最小系統(tǒng)了。單片機(jī)的最小系統(tǒng)如圖3.3所示。</p><p&g

44、t;  圖3.3 單片機(jī)最小系統(tǒng)原理圖</p><p>  3.4超聲波發(fā)射電路</p><p>  通過我的綜合分析,用單片機(jī)P0.1發(fā)射一組方波脈沖信號,其輸出波形穩(wěn)定可靠,但輸出電流和輸出功率很低,不能夠推動(dòng)發(fā)射傳感器發(fā)出足夠強(qiáng)度的超聲信號,所以超聲波發(fā)射電路是由超聲波探頭和超聲波放大器組成。超聲波探頭將電信號轉(zhuǎn)換為機(jī)械波發(fā)射出去,而單片機(jī)所產(chǎn)生的40 kHz的方波脈沖需要進(jìn)行放大才

45、能將超聲波探頭驅(qū)動(dòng)將超聲波發(fā)射出去,所以發(fā)射驅(qū)動(dòng)實(shí)際上就是一個(gè)信號的放大電路,本設(shè)計(jì)選用74LS04芯片進(jìn)行信號放大,超聲波發(fā)射電路如圖3.4所示</p><p>  圖3.4 超聲波發(fā)射電路</p><p>  工作時(shí),由單片機(jī)產(chǎn)生40 kHz的脈沖從P0.1口向超聲波的發(fā)射電路部分發(fā)出信號,再經(jīng)74LS04放大電路放大后,驅(qū)動(dòng)超聲波探頭將超聲波發(fā)射出去。</p><

46、p>  3.5超聲波接收電路設(shè)計(jì)</p><p>  我們都知道,超聲波在傳播過程中,能量會(huì)衰減的很厲害,此時(shí),超聲波接受裝置就會(huì)受到很大的阻礙。因此,我們還需設(shè)計(jì)一個(gè)超聲波放大電路,讓超聲波接收裝置在接受微弱的超聲波信號時(shí),能將其放大,讓超聲波接受裝置能夠識別。超聲波接收電路主要是由集成電路CX20106A芯片電路構(gòu)成的,CX20106A芯片電路可以對超聲波信號進(jìn)行放大、限幅、帶通濾波、峰值檢波、整形、比

47、較等功能,比較完之后超聲波接收電路會(huì)輸出一個(gè)低電平到單片機(jī)去請求中斷,當(dāng)即單片機(jī)停止計(jì)時(shí),并開始去進(jìn)行數(shù)據(jù)的處理。</p><p>  CX20106A是一塊功能很強(qiáng)大的芯片,該芯片的前置放大器具有自動(dòng)增益控制的功能,當(dāng)測量的距離比較近時(shí),放大器不會(huì)過載;而當(dāng)測量距離比較遠(yuǎn)時(shí),超聲波信號微弱,前置放大器就有較大的放大增益效果。CX20106A芯片的5腳在外接電阻對它的帶通濾波器的頻率進(jìn)行調(diào)節(jié),而且不用再外接其他的

48、電感,能夠很好地避免外加磁場對芯片電路的干擾,而且它的可靠性也是比較高的。CX20106A芯片電路本身就具有很高的抗干擾的能力,而且靈敏度也比較高,所以,能滿足本設(shè)計(jì)的要求。超聲波接收電路如圖3.5所 </p><p>  圖3.5 超聲波接收電路</p><p>  由于在制作過程中,知識面過于狹窄,因此,選擇了集成模塊的超聲波發(fā)射和接受裝置:HR-SR04超聲波集成模塊</

49、p><p><b>  1、產(chǎn)品特點(diǎn):</b></p><p>  HC-SR04 超聲波測距模塊可提供 2cm-400cm 的非接觸式距離感測功能, 測距精度可達(dá)高到 3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。 基本工作原理:</p><p>  (1)采用 IO 口 TRIG 觸發(fā)測距,給至少 10us 的高電平信號; (2)模塊自動(dòng)發(fā)送

50、 8 個(gè) 40khz 的方波,自動(dòng)檢測是否有信號返回; (3)有信號返回,通過 IO 口 ECHO 輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲</p><p>  波從發(fā)射到返回的時(shí)間。測試距離=(高電平時(shí)間*聲速(340M/S))/2;</p><p><b>  2、實(shí)物圖:</b></p><p>  圖3.5.1 超聲波測距模塊<

51、;/p><p>  如上圖3.5.1所示接線VCC 供5V電源,GND為地線,TRIG 觸發(fā)控制信號輸入,ECHO回響信號輸出等四支線。</p><p><b>  3、電氣參數(shù):</b></p><p>  表 3.5.2 HC-SR04電器參數(shù)</p><p><b>  3.6顯示電路設(shè)計(jì)</b>

52、</p><p>  由于我設(shè)計(jì)的超聲波測距系統(tǒng),最遠(yuǎn)只能測量4m的距離,因此選用4位LED顯示。</p><p>  根據(jù)數(shù)碼管的一些選擇,最終篩選出了最優(yōu)的設(shè)計(jì)方案:在顯示電路的設(shè)計(jì)上,利用單片機(jī)的P0~P2口來控制數(shù)碼管顯示,這種接法雖然比較浪費(fèi)管腳資源,但是對單片機(jī)的理論知識要求相對比較低,而且超聲波發(fā)射和接收電路并不需要很多的管腳來支持,所以我選擇這種方案。數(shù)碼管的選擇上,為了使

53、數(shù)碼管亮度大,我選擇了共陽極的數(shù)碼管,數(shù)碼管管腳接到低電平發(fā)亮。顯示及其驅(qū)動(dòng)電路的原理圖如圖3.6所示。</p><p>  圖3.6 顯示電路原理圖</p><p><b>  4.軟件設(shè)計(jì)</b></p><p><b>  4.1主程序設(shè)計(jì)</b></p><p>  主程序?qū)φ麄€(gè)單片機(jī)系統(tǒng)進(jìn)

54、行初始化后,先將超聲波的回波接收標(biāo)志位置位并且使單片機(jī)P1.0端口輸出一個(gè)低電平用來啟動(dòng)超聲波發(fā)射電路,同時(shí)將定時(shí)器T0啟動(dòng),然后調(diào)用距離計(jì)算的子程序,再根據(jù)定時(shí)器T0記錄的時(shí)間計(jì)算出所需要測量的距離,然后再調(diào)用顯示子程序,再將測出的距離以十進(jìn)制的形式送到數(shù)碼管顯示。最后主程序通過對回波信號的接收,完成后續(xù)的工作,假如標(biāo)志位清零則說明接收到了回波信號,那么主程序就返回到初始端重新將回波接收標(biāo)志位置位并且在單片機(jī)的P0.1端口上發(fā)送低電平

55、到超聲波發(fā)射電路,就這樣,連續(xù)不斷地運(yùn)行,循環(huán)不斷地工作用來實(shí)現(xiàn)測距。 </p><p>  超聲波接收電路在接收到超聲波回波后,通過CX20106A電路進(jìn)行檢波整形比較,并向單片機(jī)發(fā)出有效信號,單片機(jī)通過外部中斷的改變記錄回波信號的到達(dá)時(shí)間,中斷發(fā)生之后就是表示已經(jīng)接收到了回波信號,這個(gè)時(shí)候停止計(jì)時(shí),并且讀取計(jì)數(shù)器中的數(shù)值,這個(gè)數(shù)值就是需要進(jìn)行測量的時(shí)間差的數(shù)據(jù)。</p><p>  程

56、序中對測距距離的計(jì)算方法是按S=17×N/100000=0.00017×N(m)進(jìn)行計(jì)算的,其中,N為計(jì)數(shù)器的值,聲速的值取為340 m/s。</p><p>  系統(tǒng)主程序流程圖如圖4.1所示:</p><p>  圖4.1 系統(tǒng)主程序流程圖</p><p><b>  系統(tǒng)主程序如下:</b></p>&l

57、t;p>  void main(void)</p><p><b>  {</b></p><p>  uchar i,j;</p><p>  for(i=0;i<255;i++)</p><p>  for(j=0;j<255;j++); //延時(shí),等待系統(tǒng)外圍復(fù)位完成 </

58、p><p>  sys_init(); //初始化</p><p>  display(); //顯示</p><p>  sta_flag=0; //標(biāo)準(zhǔn)復(fù)位 </p><p>  waitforstarting: </

59、p><p>  while(START);</p><p>  for(i=0;i<20;i++)</p><p>  delay1ms();</p><p><b>  if(START)</b></p><p>  goto waitforstarting;</p><p

60、>  BUZZER=0; </p><p><b>  i=100000;</b></p><p>  while(i--);</p><p><b>  BUZZER=1;</b></p><p><b>  i=100000;</b></

61、p><p>  while(i--);</p><p>  TR0=1; //啟動(dòng)定時(shí)器0</p><p><b>  ET0=1;</b></p><p>  testtemp(); </p><p>  while(1)

62、 </p><p><b>  { </b></p><p>  if(sta_flag) //60MS到了,超聲波已經(jīng)發(fā)送 </p><p><b>  { </b></p><p>  while(0==CSBIN); //等待超聲波返

63、回</p><p><b>  TR1=0;</b></p><p>  jsh=TH1; //停止計(jì)數(shù)</p><p><b>  jsl=TL1;</b></p><p>  if(15==count) </p><p><

64、b>  {</b></p><p>  temp=wd(); </p><p><b>  count=0;</b></p><p>  testtemp(); //重新啟動(dòng)轉(zhuǎn)換</p><p>  display(); //刷新顯示</p>

65、<p><b>  }</b></p><p>  computer(); //計(jì)算距離</p><p>  hextobcd(); //轉(zhuǎn)化成BCD碼</p><p>  sta_flag=0; //標(biāo)志清零</p><p><b>  } &

66、lt;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void sys_init(void)</p><p><b>  { </b></p><p><b>  uchar i

67、;</b></p><p>  for(i=0;i<29;i++) //顯示清零</p><p>  { num[i]=0;}</p><p>  TMOD=0x11;</p><p><b>  TH0=0x15;</b></p><p><b>  T

68、L0=0xA0;</b></p><p><b>  P0=0;</b></p><p>  CNT=0; //超聲波發(fā)送關(guān)閉</p><p><b>  CSBIN=1;</b></p><p>  EA=1; //開放

69、總中斷</p><p>  Init_LCD();</p><p><b>  4.2中斷處理程序</b></p><p>  負(fù)責(zé)計(jì)算距離是INT0的中斷程序。根據(jù)前面的對超聲接收電路的分析,在超聲波集成模塊接收到超聲波回波信號后,超聲波接收電路就會(huì)產(chǎn)生一個(gè)低電平送至單片機(jī)的P0.0引腳,使系統(tǒng)中斷,則系統(tǒng)轉(zhuǎn)入中斷處理程序。進(jìn)入中斷處理后,定

70、時(shí)器T0和外部中斷0就立即被關(guān)閉,同時(shí)讀取時(shí)間值,調(diào)用計(jì)算距離函數(shù),并給回波接收標(biāo)志位清零即成功接收到回波信號。</p><p><b>  中斷程序如下:</b></p><p>  void zd0() interrupt 1 //T0中斷用來計(jì)數(shù)器溢出,超過測距范圍</p><p><b>  {</b>&l

71、t;/p><p>  flag=1; //中斷溢出標(biāo)志</p><p><b>  }</b></p><p>  void zd3() interrupt 3 //T1中斷用來掃描數(shù)碼管和計(jì)800 ms啟動(dòng)模塊</p><p><b>  {</b></p><p

72、><b>  TH1=0xf8;</b></p><p><b>  TL1=0x30;</b></p><p>  Display();</p><p><b>  DIDI();</b></p><p><b>  timer++;</b><

73、;/p><p>  if(timer>=400)</p><p><b>  {</b></p><p><b>  timer=0;</b></p><p>  TX=1; //800 ms啟動(dòng)一次模塊 </p><p><b>

74、;  _nop_();</b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </

75、b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p>

76、<p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b&

77、gt;  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_();</b></p><p><b>  _nop_(); <

78、;/b></p><p><b>  _nop_(); </b></p><p><b>  _nop_(); </b></p><p><b>  _nop_();</b></p><p><b>  TX=0;</b></p>&l

79、t;p><b>  } </b></p><p><b>  }</b></p><p>  void main(void)</p><p><b>  { </b></p><p>  TMOD=0x11;//設(shè)T0為方式1,GATE=1;</p>

80、<p><b>  TH0=0;</b></p><p>  TL0=0; </p><p>  TH1=0xf8; //2 ms定時(shí)</p><p><b>  TL1=0x30;</b></p><p>  ET0=1; //允許T0中斷

81、</p><p>  ET1=1; //允許T1中斷</p><p>  TR1=1; //開啟定時(shí)器</p><p>  EA=1; //開啟總中斷</p><p><b>  while(1)</b></p><p><b>  {</b>&

82、lt;/p><p>  while(!RX); //當(dāng)RX為零時(shí)等待</p><p>  TR0=1; //開啟計(jì)數(shù)</p><p>  while(RX); //當(dāng)RX為1計(jì)數(shù)并等待</p><p>  TR0=0; //關(guān)閉計(jì)數(shù)</p><p>  Count(); //計(jì)算

83、</p><p><b>  } </b></p><p><b>  }</b></p><p>  4.3計(jì)算及顯示模塊設(shè)計(jì)</p><p>  由于計(jì)算公式為S=17×N/100000=0.00017×N(m),可以從中看出如果想要得到具體的距離的值,就只需

84、要得到從超聲波發(fā)送開始到接收到超聲波這個(gè)過程中定時(shí)器0的計(jì)數(shù)的次數(shù)。</p><p>  本設(shè)計(jì)中,采用了4位共陽極連接的數(shù)碼管顯示來顯示與障礙物之間的距離,同時(shí)數(shù)碼管與P1口連接進(jìn)行動(dòng)態(tài)的段掃描。由于這個(gè)距離值是不斷變化的,所以,這個(gè)數(shù)碼管的顯示的過程是在外部中斷0發(fā)生后才進(jìn)行的。 </p><p>  所以當(dāng)主程序給超聲波發(fā)生器發(fā)送了信號后,此時(shí)中斷和定時(shí)器0就已經(jīng)被打開,并開始計(jì)時(shí)了

85、。當(dāng)超聲波接收電路接收了到回波信號的同時(shí)時(shí),電路便會(huì)產(chǎn)生一個(gè)低電平到單片機(jī)的P0.0端口,在單片機(jī)檢測到該信號后,定時(shí)器計(jì)時(shí)就將停止,同時(shí)定時(shí)器的計(jì)數(shù)的次數(shù)將被提取出來,這樣就可以得到以m為單位的測量的距離值。</p><p><b>  C程序如下:</b></p><p>  Void Count (void)</p><p><b&

86、gt;  {</b></p><p>  time=TH0*256+TL0;</p><p><b>  TH0=0;</b></p><p><b>  TL0=0;</b></p><p>  //time=23529;</p><p>  S=(time*0

87、.0017); //算出來是m</p><p>  if((S>=7000)||flag==1) //超出測量范圍顯示“-”</p><p><b>  { </b></p><p><b>  flag=0;</b></p><p>  flag_beep=0;</p

88、><p>  disbuff[0]=10; //“-”</p><p>  disbuff[1]=10; //“-”</p><p>  disbuff[2]=10; //“-”</p><p>  disbuff[3]=10; //“-”</p><p><b>  BEEP=1;<

89、;/b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  disbuff[0]=S/1000;</p><p>  disbuff[1]=S/100%

90、10;</p><p>  disbuff[2]=S/10%10;</p><p>  disbuff[3]=S%10;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4.4作品展示:</b>

91、</p><p><b>  5.設(shè)計(jì)總結(jié)</b></p><p>  通過這次畢業(yè)設(shè)計(jì)對我來說收獲甚多。剛開始的時(shí)候毫無頭緒,在反復(fù)的查閱相關(guān)資料的情況下,慢慢的終于有了大概的思路,但是由于超聲波測距的課題涉及知識面很廣,對于設(shè)計(jì)菜鳥來說的我,實(shí)在是力不從心。但是在三個(gè)月的刻苦學(xué)習(xí)和與老師的幫助下,很快設(shè)計(jì)有了眉目,我的作品也慢慢步入正軌。三個(gè)月的辛苦是值得的,一個(gè)

92、畢業(yè)設(shè)計(jì)把我整個(gè)大學(xué)期間的知識都用上了,還讓我學(xué)到了很多我沒接觸過的內(nèi)容,讓我受益匪淺,同時(shí)也鍛煉了我的動(dòng)手能力,讓我對超聲波有了更進(jìn)一步的認(rèn)識。</p><p>  本次畢業(yè)設(shè)計(jì),雖然已經(jīng)完成了作品的制作,但是還有很多不完美的地方。經(jīng)過反復(fù)試驗(yàn),作品還存在較大的誤差,通過分析可能是以下原因產(chǎn)生的:</p><p>  (1)環(huán)境的溫度所引起的誤差</p><p>

93、  環(huán)境溫度的影響是本設(shè)計(jì)在不同的溫度條件下測量數(shù)據(jù)存在誤差的主要原因,根據(jù)有關(guān)資料,在當(dāng)溫差較大時(shí),前后兩次測距的誤差肯定前后相差也比較大。而本設(shè)計(jì)中并沒有溫度補(bǔ)償模塊,由于知識面有限,只能完成超聲波測距的基本功能,希望隨著日后知識面的寬廣,能將作品完成的更加完美。 </p><p> ?。?)不同障礙物表面材料的不同介質(zhì)引起的誤差</p><p>  因?yàn)楸砻娲植诘恼系K物介質(zhì)要比光滑介

94、質(zhì)的測量結(jié)果要差,如果障礙物的發(fā)射面比較粗糙會(huì)引起發(fā)射信號散射開那么回波信號就會(huì)減弱,這樣就會(huì)導(dǎo)致測量結(jié)果的誤差增大。</p><p>  (3)超聲波模塊的感應(yīng)角的影響</p><p>  兩個(gè)超聲波探頭即發(fā)射探頭和接收探頭和障礙物之間存在一個(gè)幾何角度,反射波入射到探頭存在一定的角度,當(dāng)這個(gè)角度過大時(shí),這就會(huì)造成測量較大的誤差,或者說根本接收不到回波信號。特別是在障礙物的距離較小的時(shí)候這

95、個(gè)誤差就成為了距離測量的主要誤差的原因,但是這種誤差是可以盡量減小的,利用發(fā)射能力強(qiáng)、散射小的探頭,或者多用幾個(gè)探頭。 </p><p> ?。?)余波信號的影響</p><p>  在測量時(shí)有一部分的聲波是從發(fā)射探頭直接轉(zhuǎn)收到接收探頭的,這部分聲波即是余波信號,這種余波對測量的干擾是挺大的。但是這種干擾能夠通過別的方法進(jìn)行處理,比如軟件算法的方法去消除直達(dá)波的干擾。當(dāng)芯片收到信號波時(shí)自動(dòng)

96、判定收到的超聲波信號是發(fā)射的聲波衍射而返回來的信號時(shí)就會(huì)自動(dòng)忽略掉,繼續(xù)去等待檢測在這個(gè)工作周期內(nèi)是否有有效反射波反射回來,如果有就進(jìn)行處理,沒有就進(jìn)行新的一次測量。</p><p><b>  參 考 文 獻(xiàn)</b></p><p>  [1] 劉洪恩. 汽車倒車防撞超聲波雷達(dá)的設(shè)計(jì)[J]. 儀表技術(shù),2004,15(04):55~60.</p>&l

97、t;p>  [2] 劉典文等. 基于單片機(jī)STC89C51設(shè)計(jì)的超聲波測距儀[J]. 中國新技術(shù)信產(chǎn)品,2010,8:16~17.</p><p>  [3] 梁小流,陳炳森,梁建和. 基于89S52汽車防撞雷達(dá)系統(tǒng)設(shè)計(jì)[J]. 機(jī)電工程技術(shù),2011,10(4):49~51.</p><p>  [4]胡萍. 超聲波測距儀的研制[J]. 計(jì)算機(jī)與現(xiàn)代化,2003,7(10):21~

98、23.</p><p>  [5]時(shí)德剛,劉嘩. 超聲波測距的研究[J]. 計(jì)算機(jī)測量與控制,2002,9(10):31~33.</p><p>  [6]蘇偉,鞏壁建. 超聲波測距誤差分析[J]. 傳感器技術(shù),2004,3(4):17~20.</p><p>  [7]Tom R. Watt. Cooling our tomorrows economically[

99、J]. ASHRAE Journal,2004,17(4):287~292</p><p>  [8]翟桂榮. 紅外解調(diào)器CX20106A原理與檢修[J]. 家庭電子,1997(7):33~55.</p><p><b>  謝辭</b></p><p>  時(shí)光匆匆,轉(zhuǎn)眼間大學(xué)四年就快要過去了,回首四年,我們擁有太多的東西,同時(shí)也失去太多。不

100、過無論怎樣,我覺得我變得更加成熟了,對于明天我擁有了更加多的底氣。</p><p>  一路走來,若是沒有你們的幫助,可能現(xiàn)在我將不是現(xiàn)在的我。千言萬語都無法表達(dá)我對那些幫助我的人的感謝之情。真是因?yàn)槟銈兊拇嬖?,我將?huì)有更多的動(dòng)力,讓我在大學(xué)四年的時(shí)光里能夠拋灑我的青春,讓我從一個(gè)懵懂的小孩變成一個(gè)成熟的大人。在生活上,這是我們班的同學(xué)的幫助讓我走出一段有一段難熬的時(shí)光,也是你們的一個(gè)“加油”讓我一次又一次鼓起勇

101、氣向未來挑戰(zhàn),如果沒有你們我的世界將會(huì)變得一片灰暗,謝謝你們陪伴了我四年的時(shí)光,我相信我們的友誼一定會(huì)地久天長;在學(xué)習(xí)上,我要感謝那些幫助過我的老師們,正是你們耐心的講解,才讓我取得今天的成績,當(dāng)然在這次的畢業(yè)設(shè)計(jì)中,也是你們一次又一次的提醒和指導(dǎo)才讓我能順利的完成畢業(yè)設(shè)計(jì)。</p><p>  我覺得我是一個(gè)幸運(yùn)的人,能在生活中遇見到你們。再和你們相處的時(shí)光里,我能出你們每個(gè)人的身上學(xué)到我自己身上所沒有的東西,

102、真是你們身上的閃光點(diǎn)讓我發(fā)現(xiàn)自己的不足,也真是這樣才不斷的激勵(lì)我勇敢的前進(jìn),你們就是我的榜樣,雖然現(xiàn)在的我還有許多不足的地方,但是我還想和你們做一輩子的朋友,能和你們在一起生活我感到很幸福。</p><p>  當(dāng)然最后我還要感謝我可愛的母校,希望你能培養(yǎng)出更多的人才,讓我們的國家變得更加強(qiáng)大。</p><p><b>  系統(tǒng)整體電路圖</b></p>

103、<p><b>  系統(tǒng)整體電路圖</b></p><p><b>  程序代碼</b></p><p>  //超聲波測距系統(tǒng) 12M晶振</p><p>  //#include "REG2051.H"</p><p>  #include <REGx51

104、.H></p><p>  #include <intrins.h></p><p>  //#include "math.h"</p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p>&l

105、t;p>  #define LED_Data P0 //定義LED顯示數(shù)據(jù)為P1口</p><p>  #define OFF P3</p><p>  sbit led_1H=P2^7;//定義數(shù)碼管百位 片選</p><p>  sbit led_2H=P2^6;//定義數(shù)碼管十位 片選</p><p>  sbit

106、 led_3H=P2^5;//定義數(shù)碼管個(gè)位 片選</p><p>  sbit DQ=P3^4;//18b20定義端口</p><p>  sbit bell=P2^2;</p><p>  sbit Sout=P3^7;//定義超聲波輸出引腳</p><p>  sbit k1=P1^0;//定義按鍵</

107、p><p>  sbit k2=P1^1;</p><p>  sbit k3=P1^2;</p><p>  bit r=0;//18b20存在標(biāo)志位 0為不存在,1為存在</p><p>  bit flag=0;//定義外部中斷1標(biāo)志位</p><p>  bit TO=0;//定義T1中斷1

108、標(biāo)志位</p><p>  bit tu=0;//定義溫度正、負(fù)標(biāo)示位0為正1為負(fù)</p><p>  bit show_temperature=0;</p><p>  uchar T_C;</p><p><b>  uint i;</b></p><p>  uint di

109、s;//定義實(shí)形距離變量</p><p>  float speed=346.50; </p><p>  uchar temp[3]={0xF7,0xF7,0xF7};//*- - -*/ 定義顯示暫存區(qū)</p><p><b>  //顯示段代碼表</b></p><p>  uchar code

110、LED0[]={ 0x28,0xEE,0x32,0xA2,0xE4,0xA1,0x21,0xEA,0x20,0xA0,0xF7,};//0~9 -</p><p>  //第一位數(shù)碼管顯示段碼</p><p>  uchar code LED1[]={0x08,0xCE,0x12,0x82,0xC4,0x81,0x01,0xCA,0x00,0x80,}; //0.~9.帶小數(shù)點(diǎn)</p

111、><p><b>  //</b></p><p>  void time_11uS(uint x);//延時(shí)11US</p><p>  void LED_T_C(uint x);</p><p>  uint Read_Temperature(void);</p><p>  

112、void write(char wr);//寫1820</p><p>  uint read(void);//讀1820</p><p>  uchar reset(void);//復(fù)位1820</p><p>  //--------------------------------------------測距部分涵數(shù)聲明</p&

113、gt;<p>  void led_display(void);//LED顯示函數(shù)</p><p>  void time(uint x);//延時(shí)1mS</p><p>  void Send_40K(void);//輸出20個(gè)40k方波函數(shù)</p><p>  void LED_temp(uint x);//顯示轉(zhuǎn)

114、換</p><p>  void TT1(void);//裝入初值</p><p>  uint C_speed(void); //根據(jù)溫度查表取聲速值</p><p>  float Dis_count();//距離計(jì)算函數(shù)</p><p>  //--------------------

115、------------------------</p><p>  //--------------------------------------------</p><p><b>  //延時(shí)11us</b></p><p>  void time_11uS(uint x)</p><p><b>  

116、{</b></p><p>  for(;x>0;x--);</p><p><b>  }</b></p><p>  //--------------------------------------------</p><p>  uchar reset(void)//復(fù)位1820</

117、p><p><b>  {</b></p><p><b>  r=0;</b></p><p><b>  DQ = 1;</b></p><p>  _nop_();_nop_();</p><p>  DQ = 0; //置低電平<

118、/p><p>  time_11uS(50); // 等待500us</p><p>  DQ = 1; // 置高電平</p><p>  time_11uS(6); // 等待66US</p><p>  while(DQ==0){r=1;}// 讀響應(yīng)</p><p><b>  _n

119、op_();</b></p><p>  return(r); // 返回響應(yīng)值 1=存在, 0 不存在</p><p><b>  }</b></p><p>  //--------------------------------------------</p><p>  void

120、write(char wr)//向總線上寫一個(gè)字節(jié)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  for (i=8; i>0; i--) // 寫8位, 一位一位地寫</p><p><b>  {</b

121、></p><p>  DQ = 0; // 設(shè)為低電平,寫開始</p><p>  _nop_();_nop_();_nop_();_nop_();</p><p>  DQ = wr&0x01; //最低位移出</p><p>  time_11uS(6); // 延時(shí)66US確保數(shù)據(jù)送出</p

122、><p>  DQ = 1; //停止</p><p>  wr=wr/2; //算法,相當(dāng)于右移1位</p><p><b>  }</b></p><p>  time_11uS(1);</p><p>  } </p><p>  //--

123、------------------------------------------</p><p>  uint read(void)//從總線上讀取2個(gè)字節(jié)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  uint v =

124、0;</p><p>  for (i=16;i>0;i--)</p><p><b>  {</b></p><p>  DQ = 0; // 開始信號</p><p>  _nop_();_nop_();</p><p><b>  v>>=1;<

溫馨提示

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

最新文檔

評論

0/150

提交評論