基于單片機的一種小型避障機器人的設計(終)_第1頁
基于單片機的一種小型避障機器人的設計(終)_第2頁
基于單片機的一種小型避障機器人的設計(終)_第3頁
基于單片機的一種小型避障機器人的設計(終)_第4頁
基于單片機的一種小型避障機器人的設計(終)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、大連海洋大學畢業(yè)設計(論文) 第一章 前 言 畢業(yè)論文(設計)基于單片機的一種小型避障機器人的設計學 生 姓 名: 關惠元 指導教師: 李向軍 專業(yè)名稱: 自動化 所在學院: 信息與工程學院 2015年5月31目 錄摘 要IAbstractII第一章 前 言11.1研究目的和意義11.2智能機器人的發(fā)展歷史、現(xiàn)狀以及發(fā)展趨勢11.3 本課題要解決的問題2第二章 總體設計方案32.1任務分析32.2總體方案的設計3第三章 硬件電路的設計43.1紅外傳感器電路設計43.3伺服電機123.4模數(shù)轉換芯片簡介133.5串口通信簡介163.6行走路線設計19第四章 系統(tǒng)軟件設計204.1 軟件簡介204

2、.2基本巡航動作224.3勻加速/減速運動234.4 避障程序23第五章 結 論26參考文獻27附錄A28附錄B30附錄C31摘 要隨著科技的進步,機器人的發(fā)展已是一種社會進步的必然趨勢,機器人技術的進展非常迅速,同時機器人在人類領域的應用越來越廣泛,人類已經不單單為了探索那些危險領域,如太空,深海等,在我們的生活中也變得越來越重要。本次設計基于單片機的簡單避障機器人,主要由單片機、電動機、紅外傳感器和電源等模塊組成,是通過紅外傳感器采集數(shù)據(jù),經過A/D轉換,在經由單片機處理來控制伺服電機的轉動,當機器人前行是紅外線發(fā)射器左右兩邊信號發(fā)射器發(fā)出信號,左右接收器接受信號,當左邊出現(xiàn)障礙時,紅外線

3、接收器得到信號輸出為0,機器人右轉,轉完后重復上面程序,當右邊遇到障礙時過程和左邊動作相同。其中單片機的程序是由VB上位機顯示程序結合C語言編程所完成的。關鍵詞:單片機 紅外傳感器 伺服電機 避障AbstractWith the progress of science and technology, the development of the robot is a kind of trend of social progress, robot technology progress very quickly, at the same time, more and more widely ap

4、plied in the field of robot in the human, the human has not only to explore the dangerous areas, such as space, deep sea and so on, also becomes more and more important in our life. Simple robot obstacle avoidance, this design is based on single chip microcomputer is mainly composed of single chip,

5、motor, infrared sensor and power supply modules, such as through infrared sensors to collect data, after A/D conversion, the processed by single chip microcomputer to control the servo motor rotation, when robots are infrared transmitters on both sides signal emitter signal, control receiver signal

6、reception, when problems to the left, infrared receiver signal output is 0, the robot turn right, turn after repeating the above procedure, when encounter problems when the process is the same as the action on the left on the right. The MCU program by VB PC display program with C language programmin

7、g.Keywords: SCM infrared sensors servo motor obstacle avoidance第一章 前 言1.1研究目的和意義隨著科學的進步和社會的發(fā)展,人們?yōu)榱颂剿饕恍┪粗念I域,如海洋深處,外太空這些人類不能到達的地方,機器人的應用越來越普及,就連我們的日常生活中機器人的應用也日趨變多,如搬運、加工、排障,甚至連炒菜都在用。機器人是多學科技 術集成的產物 , 它涉及機械設計與制造技術往往一個國家的機器人制造水平反映著這個國家工業(yè)與制造業(yè)的發(fā)展程度。所以,機器人的研究越來越重要。1.2智能機器人的發(fā)展歷史、現(xiàn)狀以及發(fā)展趨勢智能機器人主要由單片機、電動機、紅外

8、傳感器和電源等模塊組成。一般來說,要求在運行的過程中,機器人車能夠有效的避開前方的障礙物。它的根本原理就是,機器人在行進的過程中,通過紅外傳感器發(fā)射接收信號,并將信號送給單片機,單片機根據(jù)已經設定好的程序來命令伺服電機的轉動,改變機器人的運行方向來達到我們想要的避障的目的1。實用步行機器人首先在軍事上使用,幫助士兵收集信息,吸引敵人,避免傷害。這種機器人也將有助于公民救災和科學,探索地球危險地帶,在太空中,探索其他行星和衛(wèi)星。隨著成本下降,行走機器人就會出現(xiàn)我們的身邊,改善我們的生活質量,尤其是對我們那些都是老年人,體弱者,或者只是累了在家休息的。在十九世紀后期,機器人的設計與制造在全球風靡,

9、世界上一些著名的公司開始研制移動機器人,因而使得機器人的研究方向出現(xiàn)了很多種。90年代以來,因為傳感器技術的提高,信息處理技術的發(fā)展,機器人的適應能力越來越強?,F(xiàn)在的機器人種類多,應用廣。綜合國外專家的解釋,可普遍認為機器人一般有如下功能的機器2:(1)行為動作與任何動物的某些活動類似;(2)應用性廣,動作程序靈活多變;(3)具有學習,推理,判斷以及學習等一定簡單的智能。(4)有一定獨立性,在一個完整的系統(tǒng)里可以不需要人類的操作。隨著智能技術、pc技術、自動化的發(fā)展,機器人的發(fā)展必然越來越好。機器人近幾年有如下趨勢:(1)性價比逐步提高,性能不斷提高,而單價不斷下降。(2)由于PC技術的發(fā)展,

10、集成電路技術的不斷提高。機器人更便于操作,可靠性更強,維護性也大大地提高了。(3)傳感器的發(fā)展越來越成熟,現(xiàn)在已經不單單是簡單的定位,測速度等,越來越像人類來發(fā)展,如人體所具有的觸覺,聽覺等,都在用來建模與控制。 (4)虛擬技術在機器人中的作用已經不僅僅是模擬,演算,而是向過控方向發(fā)展3。1.3 本課題要解決的問題(1)機器人電路設計,讓組成機器人的各部分可以緊密的配合。(2)紅外傳感器的選擇和調試,要求信號強,受干擾程度小。(3)運用C語言以及VB對軟件系統(tǒng)的編程編程,做到簡單有效的避障。(4)考慮生活中種種環(huán)境因素,設計出一條路線,讓機器人能接觸到各種各樣的障礙。第二章 總體設計方案2.1

11、任務分析本設計的主要任務主要是在紅外線傳感器將數(shù)據(jù)采集來以后經過處理,通過單片的已經編好程序來控制機器人的前進,停止,左右轉動,來達到避障的效果。機器人要實現(xiàn)下面的4個基本智能任務: (1)具有紅外傳感器 (2)可以探測周邊環(huán)境 (3)在紅外傳感器信息上做出判斷 (4)控制機器人運動2.2總體方案的設計本次設計分為傳感器機構、控制機構、執(zhí)行機構、電源四個硬件。執(zhí)行機構是來完成行走效果,傳感器機構主要任務是信息采集,控制機構主要是信息處理,而電源是為前三個機構提供電力支持。本文研究的小型避障機器人是以單片機為核心,通過紅外傳感器接受信息,利用伺服電動機來控制機器人移動,從而達到避障效果的。傳感器

12、模塊 紅外裝置 電源模塊控制模塊執(zhí)行器模塊伺服電機圖1 系統(tǒng)結構框圖大連海洋大學畢業(yè)設計(論文) 第三章 硬件電路的設計第三章 硬件電路的設計3.1紅外傳感器電路設計3.1.1紅外發(fā)射二極管的選擇紅外發(fā)射二極管的按峰值波長(p)主要為:850nm、870nm、880nm、940nm、980nm,我們接觸較多的850nm和940nm 。本次所用的就是后者,940nm紅外發(fā)射二極管具高強光度,快反應度。在紅外遙控,紅外探測,紅外幕墻安保的系統(tǒng)中廣泛的應用4。表1 紅外發(fā)射二極管極限參數(shù)參數(shù)名稱符號額定值單位 正向電流IFM3060mA正向脈沖電流(1)IFPM0.31A 反向電壓VR5V耗散功率P

13、M90mW工作溫度范圍Top-25+80貯存溫度范圍Tst-40+100焊接溫度(2)Tst260注(1): f=1KHz,tp/T1% 注(2): t3s,離器件本體4mm以上 表2 紅外發(fā)射二極管的光電參數(shù)(TA=25)參數(shù)符號測試條件規(guī)范值單位正向電壓VFIF50mA1.5V 反向電流IRVR5V10 A法向輻射強度IEIF50mA2mW/sr峰值發(fā)射波長pIF50mA850940nm光譜半寬度 IF50mA50nm 輻射度角21/2IF50mA16deg圖2 相對光譜靈敏度與波長的關系紅外發(fā)射二極管發(fā)射管的輻射強度(Power)與輸入電流(If)成正比。輻射強度:Power(單位:W,

14、W/sr,W/cm2)的作用就是用來表示二極管的發(fā)出的信號強度的大小的5。發(fā)射距離與輻射強度(Power) 成正比。W/sr:是輻射強度的單位,為IR發(fā)射紅外線光之單位立體角(sr)所輻射出的光功率的大小。W/cm2:表示照度的單位,為sensor單位面積(cm2)所接收IR發(fā)射之輻射功率的大小。半功率角:2½ 指紅外線二極管其上下或左右兩邊所輻射出之紅外線強度為該組件最大輻射強度的50%時,其上下或左右兩邊所夾的角度稱為半功率角6。 圖3 30度半功率角輻射強度示意圖3.1.2紅外接收器的選擇本次設計選用HS38B,該器件特性:低功耗、高靈敏度、優(yōu)良的抗干擾能力。一般用于家用電器。

15、表3 紅外接收器電路原理 極限參數(shù):電源電壓(v)6.0工作溫度-2585功耗(mw)30儲存溫度-40125光電參數(shù):(T=25 Vcc=5V F0=38Khz)參數(shù)測試條件MinTypMax工作電壓4.55.51接收距離測試信號=300mA1015載波頻率38K接收角度距離衰減+/-45BMP寬度-3Db Bandwidth23.35靜態(tài)電流無信號輸入時0.81.5低電平輸出Vin=0V Vcc=5V0.20.4高電平輸出Vcc=5V4.5輸出脈沖寬度Vin=500Vp-p500600700Vin=50mVp-p500600700注:光軸上測試,以寬度為600/900s為發(fā)射脈沖,在5CM

16、范圍內,取50次平均值INWaveformRectifierAGCControlWaveformDetctorATCBOFoscillatorInputAGCPostAmpVCCOUT圖4 HS38B內部結構測試波形inout圖5 測試紅外接收器的時序圖在使用說明書上我們找到了生產廠商提供的最佳使用條件:項目MINTYPMAX工作電壓2.75.5輸入頻率38工作溫度-102580表4 HS38B最佳使用條件紅外發(fā)射接收器圖6 紅外發(fā)射與接收器機器人在行進過程中,紅外線二極管發(fā)射光線,在遇到障礙物時,光線反射回來,紅外檢測器檢測到,給出信號到單片機,后者在這個信號的基礎上命令電機轉動。試驗中我們

17、只需要940nm波長的紅外線,所以我們按了一個光濾波器,不讓別的波長的光通過。為了防止普通光源(陽光和燈光)對IR的干涉,紅外檢測器還有一個電子濾波器,它的作用是只允許大約38.0KHz的電信號通過。3.2 STC89C52單片機介紹STC89C52單片機是高性能、低功耗的CMOS8位單片機。STC89C52是8051單片機的增強型,可選擇十二時鐘周期或六時鐘周期,指令代碼與傳統(tǒng)8051完全兼容。STC89C52單片機包括一個8位的微型處理器CPU,一個256字節(jié)的片內數(shù)據(jù)存儲器,具有 8K 在系統(tǒng)可編程Flash存儲器,片上集成512 字節(jié)RAM,3個16位計數(shù)器/定時器(定時器T0、T1、

18、T2 ),4個中斷源的中斷控制系統(tǒng),32個并行的通用I/O接口(P0-P3),全雙工異步串行接口UART(可以用定時器軟件實現(xiàn)多個UART),片內振蕩器和時鐘發(fā)生電路等7。3.2.2 STC89C52單片機引腳圖及各引腳功能簡介STC89C52單片機的引腳分布圖如圖7所示圖7 STC89C52單片機的引腳分布包括電源引腳,外接晶體引腳,控制和復位引腳,輸入和輸出(I/O)引腳。電源引腳Vcc和GND,Vcc接+5 V電壓,GND接地。外接晶體引腳:XTAL 1 :芯片的內部有一個反相放大器的輸出端和輸入端。一般情況下與晶體振蕩器連接。XTAL 2:振蕩器反相放大器的輸入端口??刂埔_:ALE允

19、許地址鎖存,外部擴展的并行I/O口或外部存儲器被訪問時,AEL 的輸出來鎖存地址字節(jié)的低八位。通常情況下,地址鎖存控制信號ALE可用作外部時鐘或定時器,此時其輸出脈沖頻率為振蕩頻率fosc的六分之一。外部數(shù)據(jù)存儲器被訪問的時候,地址鎖存控制信號ALE脈沖會被跳過。需要的時候,把1寫入地址鎖存控制信號ALE的使能標志位,也就是8EH地址的SFR的第0位,地址鎖存控制信號ALE是無效的。復位引腳:在輸入持續(xù)的兩個時鐘周期以上正電平到復位引腳RST時,單片機的復位初始化操作可以由此來完成。此功能由DISRTO位控制,DISRTO是地址為8EH的特殊寄存器AUXR的一位,DISRTO默認值是高電平復位

20、有效。 PSEN:外部程序存儲器選通信號,在外部代碼在單片機的外部程序存儲器執(zhí)行的時候,每半個機器周期就激活PSEN一次,在外部數(shù)據(jù)存儲器被訪問的時候,不激活外部程序存儲器選通信號8。訪問外部程序存儲器控制信號EA:EA接地時,外部程序存儲器讀取指令的地址是0000H-FFFFH。EA接VCC時,執(zhí)行內部程序指令。輸入和輸出(I/O)引腳:STC89C52單片機最多可有32個I/O口線,分別為9:P 0口:P 0.0-P 0.7,當P0口用作輸出口時,P 0.0-P 0.7每個引腳能驅動八個TTL負載,P0口可作為高阻抗輸入(對P0口輸入1)。P0口是八位雙向I/O口且其屬性是漏極開路的。P0

21、口的復用功能:可以作為數(shù)據(jù)總線(D 7-D 0)或者地址總線低八位(A7-A0)。P 1口:P 1.0-P 1.7,P1口是八位雙向I/O口,且內部帶有上拉電阻,4個TTL輸入可以被P 1.0-P 1.7輸出緩沖器輸出或者吸收,P1口用為輸入口時,需要把1輸入P1口,P1口的電位被其內部的上拉電阻拉高,這個時候由于其上拉電阻的緣故,會有電流從被外部拉低的端口中輸出。復用功能:P1.1作為計數(shù)器/定時器2的觸發(fā)輸入,P1.0作為計數(shù)器/定時器2的外部技術輸入。P 2口:P 2.0-P 2.7是八位雙向I/O端口,且內部帶有上拉電阻,4個TTL輸入可以被P 2.0-P 2.7輸出緩沖器輸出或者吸收

22、。P2口用為輸入口時,需要把1輸入P2口,P2口的電位被其內部的上拉電阻拉高,這個時候由于其上拉電阻的緣故,會有電流從被外部拉低的端口中輸出。P2口復用功能:外部程序存儲器被訪問時,地址總線高八位從P2口輸出。P 3口:P 3.0-P 3.7是八位雙向I/O口,且內部帶有上拉電阻,4個TTL輸入可以被P 3.0-P 3.7輸出緩沖器輸出或者吸收。P3口用為輸入口時,需要把1輸入P3口,P3口的電位被其內部的上拉電阻拉高,這個時候由于其上拉電阻的緣故,會有電流從被外部拉低的端口中輸出。復用功能如表5所示引腳復用功能P3.7RD(外部數(shù)據(jù)存儲器讀選通)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.5T

23、1(定時器1的外部輸入)P3.4T0(定時器0的外部輸入)P3.3INT1(外部中斷1)P3.2INT0(外部中斷0)P3.1TXD(串行輸出口)P3.0RXD(串行輸入口)表5 P3口各引腳復用功能單片機I/O口的使用:STC89C52單片機的每個I/O口能承受的灌電流是20ma,但在實際應用中,為了保護單片機,一般情況下都會使用限流電阻,防止I/O口被燒毀。即使輸出時能輸出20ma的拉電流,實際也要加限流電阻。STC89C52單片機芯片的最大工作電流最好不要超過70ma,也就是從MCU-GND流出的電流不能超過70ma。STC89C52單片機的I/O口的驅動能力可以達到20ma,在實際使用

24、時,可以采用拉電流方式和灌電流方式。實際中,應盡可能使用灌電流方式,這樣能提高整個系統(tǒng)的可靠性和負載能力。STC89C52單片機新增了16位計數(shù)器/定時器2,各個控制位如表6所示:表6 T2各個控制位分布76543210TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL2T2控制寄存器中各位功能介紹如表7所示:表7 T2控制寄存器中各位功能介紹符號功能 CP/RL2重裝載/捕獲選擇。在CP/RL2的值為0時,如果EXEN2的值也為1,而且T2EX端脈沖由正變負,這時執(zhí)行捕獲操作。當CP/RL的值為的值為1時,如果EXEN2的值為1,定時器T2溢出時,且負跳變脈沖作用于T2EX端,

25、就能執(zhí)行自動重裝載操作。在RCLK的值為1時,或者TCLK的值為1時,CP/RL2無效,只有在定時器T2溢出的情況下才會強制它自動重裝載。C/T2決定定時器T2工作于計數(shù)方式還是定時方式的控制位。當C/T2的值為0時,該位可以選擇定時方式,當C/T2的值為1時,該位可以選擇對外部事件技術方式,而且是下降沿才能觸發(fā)。TR2決定定時器T2啟動還是停止的控制位。當TR2的值為1時,定時器T2就會啟動。EXEN2定時器T2的外部允許控制位。在EXEN2的值為1時,若串行口的波特率發(fā)生器不是定時器T2,當負跳變脈沖作用于T2EX端口時,就能激活定時器T2重裝載或捕獲。在EXEN2的值為0時,定時器T2的

26、接收端是無效的外部信號。TCLK發(fā)送時鐘允許。在TCLK的值為1時,串口的發(fā)送時鐘由定時器T2溢出脈沖提高,當TCLK的值為0時,發(fā)送脈沖由定時器T1的溢出脈沖提高。RCLK接收時鐘允許。在RCLK的值為1時,串口的接收時鐘由定時器T2的溢出脈沖提供,在RCLK的值為0時,接收脈沖由定時器T1的溢出脈沖提供。EXF2定時器T2外部標志位。在EXEN2的值為1時,還要在脈沖由正變負時作用于定時器T2的接收端引腳上或者有捕獲或重裝載出現(xiàn)的時候,這時EXF2會置位,并開始申請中斷。這個時候如果允許定時器T2中斷,那么CPU就會響應中斷,定時器T2 的中斷程序運行,只能用軟件對EXF2清除。

27、當DCEN=1時,EXF2不能激活中斷。TF2定時器T2溢出標志位。當定時器T2溢出時,硬件使其置位,只能用軟件對其清零;在RCLK的值為1時,或者TCLK的值為1時,定時器T2溢出,不對TF2置位10。當模式是捕獲時,2個選項由EXEN2設置,EXEN2的值為0時, T2用作16位計數(shù)器或定時器,至于是定時器還是計數(shù)器由T2CON中的C/T2位決定,當TF2置位時溢出,TF2還能產生中斷,該功能由定時器2的中斷使能位決定。EXEN2=1時,同上,但外部輸入T2EX從“1”跳變到“0”時,RCAP2L捕獲TL2的當前值,而RACP2H捕獲TH2的當前值。此外,T2EX的由正變負能使E

28、XF2置位,EXF2產生中斷,該功能由定時器2的中斷使能位決定。中斷服務程序可以確定引起中斷的事件,具體確定方法是查詢TF2和EXF2來確定。在捕獲模式中,千萬不能重新裝載TH2和TL2的值,在T2EX有捕獲時間時,計數(shù)器仍按T2EX的由正變負計數(shù),或者在六時鐘模式時,按晶振頻率的六分之一計數(shù),在十二時鐘模式時,按晶振頻率的一半計數(shù)。在16位的自動重裝模式中,定時器/計數(shù)器的選擇可以由C/T2來決定,遞增或者遞減由其編寫的程序控制。遞減計數(shù)使能位DCEN決定計數(shù)的方向,T2MOD寄存器包含遞減計數(shù)使能位DCEN4。在DCEN為“0”時,向上計數(shù)是定時器2的默認設置;在DCEN為“1”時,遞增計

29、數(shù)還是遞減計數(shù)由T2中的T2EX來決定。在DCEN為“0”時,T2自動遞增計數(shù)。在這種模式中,EXEN2位的設置決定地址。當EXEN2為“0”時,TF2置位前溢出,T2遞增計數(shù)到0FFFFH的地址,然后定時器2把RCAP2H的8位數(shù)值與RCAP2L的8位的數(shù)值重新裝載。可以通過軟件設置RCAP2H和RCAP2L的值。3.3伺服電機3.3.1伺服電機的介紹電動機的作用是將電能轉換為機械能, 電動機根據(jù)使用電源不同分為直流電動機和交流電動機兩種,在本次設計的電機選擇上我們就有步進電機和直流電機兩種,我們選擇的是直流伺服電機(servo motor ),伺服電機是指在伺服系統(tǒng)中控制機械元件運轉的發(fā)動

30、機,是一種間接變速裝置。伺服電機可的優(yōu)點就是可以控制速度,精確度也非常準確,可以把電壓信號轉換成電機的轉矩與轉速來控制驅動。伺服電機轉子轉速在輸入信號控制下快速反應,在自動控制系統(tǒng)中,用作執(zhí)行原件,且具有時間常數(shù)小、可控性強,線性度高等優(yōu)點,可把所收到的電信號轉換成電動機軸上的角位移或角速度輸出。本次設計使用的直流伺服電機特點11: 1.體積小、動作快、反應快、過載能力大、調速范圍寬 2.低速力矩大, 波動小,運行平穩(wěn) 3.低噪音,高效率 4.后端編碼器反饋(選配)構成直流伺服等優(yōu)點 5.變壓范圍大,頻率可調3.3.2 伺服電機的信號控制電機轉速為零的控制信號時序圖1.3ms的控制脈沖序列使電

31、機順時針全速旋轉1.7ms的控制脈沖序列使電機順時針全速旋轉3.4模數(shù)轉換芯片簡介如今電子市場上模數(shù)轉換的芯片有很多,但芯片功能、模數(shù)轉換速度、模數(shù)轉換精確度的高低都不相同,但是對用戶來講,無論什么芯片,都肯定要包括轉換啟動信號輸入口、模擬信號輸入口、數(shù)字信號輸出口、轉換結束信號輸出端這幾部分。其中模擬信號輸入口包括雙極性和單極性的,數(shù)字信號輸出口還包括串行口和并行口。除了這基本的幾部分,不同類型的芯片可能還會有控制信號端。至于選擇哪種模數(shù)芯片,要根據(jù)自身的需要和技術參數(shù),一般情況下還需了解模數(shù)芯片的其他兩個特性: (1)數(shù)字信號輸出端是否有可控的三態(tài)輸出。數(shù)字信號輸出端有可控三態(tài)輸出的模數(shù)轉

32、換芯片,單片機的數(shù)據(jù)總線可以與模數(shù)轉換芯片的輸出端直接相連,模數(shù)轉換完成以后,選通三態(tài)門,此操作由讀數(shù)信號RD來完成,最后把轉換的數(shù)據(jù)送到總線。如果數(shù)字信號輸出端沒有可控三態(tài)輸出。這種芯片有兩種情況,一種是芯片內部本身就沒有輸出三態(tài)門,另一種是雖然芯片有三態(tài)門,但是模數(shù)芯片外部不可控。數(shù)字信號輸出端沒有可控三態(tài)輸出的模數(shù)芯片不能將數(shù)據(jù)輸出線與單片機的數(shù)據(jù)總線直接相連,這種芯片通過I/O接口才能與單片機進行信息交換。 (2)要看模數(shù)芯片啟動轉換時控制方式是電平控制式還是脈沖控制式。如果模數(shù)轉換芯片啟動轉換是脈沖控制式的,需要一個脈沖信號,但這個脈沖信號要符合芯片要求,把這個脈沖施加在啟動轉換引腳

33、上,模數(shù)轉換就能啟動并且自動完成。通常情況下,能與單片機配合使用的芯片,單片機的I/O端口寫脈沖都能滿足模數(shù)轉換芯片對啟動脈沖的要求。如果模數(shù)轉換芯片啟動轉換是電平控制式的,這就需要一個規(guī)定的電平作為啟動信號,并且在轉換過程中該電平保持恒定。如果轉換中途撤消或者改變規(guī)定的電平,模數(shù)轉換芯片就會停止模數(shù)轉換,那么得到的結果很可能是錯誤的。所以,一定要用可編程并行I/O接口芯片的一位或者D觸發(fā)器來鎖存這個規(guī)定的電平,從而保持該電平保持恒定。 3.4.1 ADC 0809芯片的主要技術參數(shù)和特性本設計選擇的芯片是ADC0809 。ADC 0809轉換精度為7位,它是CMOS元器件,ADC0809的A

34、DC部分是8位的,而且是逐次逼近型的,除此之外,ADC 0809還擁有通道尋址邏輯和模擬多路開關,它們也都是8通道的。因此完全可以把ADC 0809當作一個簡單的數(shù)據(jù)采集系統(tǒng)??梢灾苯影?個單端的模擬信號輸入ADC 0809進行分時A/D轉換,這種方法普遍應用于過程控制、巡回多點檢測和運動控制。 ADC 0809的分辨率為8位,還具有可控的三態(tài)輸出緩存器。芯片的外接電源為額定電壓+5V。 ADC 0809模擬輸入電壓的范圍分為單極性和雙極性兩種,單極性時為05V;雙極性時為固定的±5V,±10V,這種情況需要一定的外接電路。 ADC 0809的模數(shù)轉換時間由芯片的時鐘頻率所

35、決定。使用ADC 0809芯片時不需要調節(jié)它的滿刻度和零點。ADC 0809啟動模數(shù)轉換時控制方式是脈沖式的,而且是正脈沖,脈沖的上升沿能把所有的內部寄存器都清零,脈沖的下降沿則控制A/D轉換的開始12。 3.4.2 ADC 0809芯片各引腳功能簡介ADC 0809的內部結構和外部引腳分布分別如圖8和圖9所示。內部結構和工作原理可以通過下圖看出,不需要再重新贅述一番。圖8 ADC0809芯片的內部結構圖9 ADC0809芯片的外部引腳分布ADC 0809芯片的各引腳功能介紹如下:(1)IN0IN7:這是8路模擬量輸入端,其中的任意一路的選擇都是通過ADDA、ADDB、ADDC這3根地址譯碼線

36、的置零和置一來決定的。 (2)D7D0:模數(shù)轉換結束后的數(shù)字量輸出端,這8位數(shù)字量輸出端排列順序是D0是最低位,從D0-D7依次升高,D7是最高位。因為這八個引腳是三態(tài)可控輸出,所以可以與單片機的數(shù)據(jù)線直接連接。(3)ALE:地址鎖存允許信號,當該引腳是高電平或上升沿時有效。當?shù)刂锋i存允許信號引腳是高電平或上升沿時,芯片會鎖存ADDC、ADDB、ADDA這三位地址信號,模擬通道與譯碼選通對應。在使用該引腳時,地址鎖存允許信號通常情況下和START信號連接,這樣可以鎖存啟動A/D轉換和鎖存通道地址。(4)ADDC、ADDB、ADDA:模擬信號通道選擇的地址信號,從ADDA到ADDC位數(shù)依次升高。

37、地址信號和選中的通道一一對應,即ADDC、ADDB、ADDA都為零時,對應的被選擇的通道是IN0,ADDC、ADDB、ADDA分別為0、0、1時,被選擇的通道是IN1,ADDC、ADDB、ADDA分別為0、1、0時,被選擇的通道是IN2,ADDC、ADDB、ADDA分別為0、1、1時,被選擇的通道是IN3,ADDC、ADDB、ADDA分別為1、0、0時,被選擇的通道是IN4,ADDC、ADDB、ADDA分別為1、0、1時,被選擇的通道是IN5,ADDC、ADDB、ADDA分別為1、1、0時,被選擇的通道是IN6,ADDC、ADDB、ADDA分別為1、1、1時,被選擇的通道是IN7 。(5)OE

38、:輸出允許信號,該引腳是正脈沖或者上升沿時有效。當輸出允許信號引腳是高電平的時候,表示模數(shù)轉換結束;當輸出允許信號引腳是低電平的時候,表示模數(shù)轉換正在進行。在單片機發(fā)出輸出允許信號的時候,ADC 0809打開輸出三態(tài)門,數(shù)據(jù)總線把轉換結果讀走。當是中斷工作方式的時候,輸出允許信號引腳可以向CPU申請中斷。(6)START:模數(shù)轉換啟動信號,該引腳是正脈沖或者上升沿時有效。模數(shù)轉換啟動信號引腳上的正脈沖或脈沖上升沿能促使逐次逼近寄存器置零,模數(shù)轉換啟動信號引腳上脈沖的下降沿促使開始模數(shù)轉換。如果芯片正在進行模數(shù)轉換過程中,又有新的啟動脈沖到該引腳,那么原來的模數(shù)轉換進程就會中斷,開始重新從頭轉換

39、。 (7)VREF+、VREF-:正參考電壓輸入端和負參考電壓輸入端,用作逐次逼近的基準,為片內DAC電阻網絡提供一個基準電壓。當輸入是單極性的時候,VREF+通常情況下為+5V,VREF-通常情況下為0V;當輸入為雙極性的時候,VREF+接正極性的參考電壓,VREF-接負極性的參考電壓。 (8)EOC:轉換結束信號,該引腳是正脈沖或者上升沿時有效。在模數(shù)轉換進程中時,轉換結束信號引腳的信號是低電平,否則,轉換結束信號引腳的信號就是高電平。轉換結束信號引腳的信號可以向CPU發(fā)送中斷請求信號,CPU也可以查詢轉換結束信號引腳的狀態(tài)信號。當不斷采樣模擬信號和模數(shù)轉換時,轉換結束信號引腳能當作啟動信

40、號,和START端接在一起,但是需要外加電路第一次啟動。 ADC0809芯片的工作時序如圖10所示:圖10 ADC0809芯片的工作時序在通道選擇地址有效時,ALE(地址鎖存允許信號)一旦有信號,就立即鎖存地址,與地址鎖存允許信號同時出現(xiàn)轉換啟動信號,有時候是地址鎖存允許信號之后是轉換啟動信號。而START(A/D轉換啟動信號)的上升沿會促使逐次逼近寄存器復位,在這個上升沿之后8個時鐘周期加上2s的時間內,EOC(轉換結束信號)的信號會變成低電平,表明A/D轉換正在進行中,A/D轉換結束后,轉換結束信號再變高電平。單片機接收到轉換結束信號的高電平信號后,會立即送出OE(輸出允許信號)信號,打開

41、輸出三態(tài)門,進而讀取A/D轉換結果。選擇模擬輸入通道和A/D轉換開始操作是可以相互獨立的兩個部分,但是ADC 0809允許選擇模擬輸入通道和啟動模數(shù)轉換結合起來,所以,通常情況下,把它們結合起來完成。這樣做的好處是可以用一條指令既啟動轉換又能選擇模擬通道。在與單片機接口時,有兩種方法選擇輸入通道,一種通過數(shù)據(jù)總線選擇,另一種是通過地址總線選擇13。 如果要用EOC信號去向CPU請求中斷,要特別留心啟動信號后2s+8個時鐘周期的時間內才是EOC信號電平的變低。所以,最好的方法是利用EOC的上升沿產生中斷請求。 3.5串口通信 3.5.1串口通信簡介串口通信的概念是串口是按位接收和發(fā)送字節(jié)的。串口

42、通信比并行通信慢,但串口通信結構和原理簡單,使用時價格低,還能夠實現(xiàn)遠距離通信(但遠距離通信要在限制內),因為串口通信能使用一根數(shù)據(jù)線發(fā)送數(shù)據(jù),而且在同一時間可以在另一根數(shù)據(jù)線接收數(shù)據(jù)。串口通信包括地線,發(fā)送和接收3根線。因為串口通信是異步的,串口通信能使用一根數(shù)據(jù)線發(fā)送數(shù)據(jù),而且在同一時間可以在另一根數(shù)據(jù)線接收數(shù)據(jù)。串口通信最重要的參數(shù)有(1)起始位(2)數(shù)據(jù)位(3)停止位(4)奇偶校驗(5)波特率。這5個參數(shù)必須匹配時這兩個端口才能進行串行通信: 1.起始位:先低位后高位是數(shù)據(jù)傳送的順序,不定長度的空閑位存在于字符之間。起始位“0”是開始傳送的信號,告訴接收方開始傳送,接收設備在接收狀態(tài)下

43、不停地檢測傳送數(shù)據(jù)線,當接收方在檢測到一系列的“1”后,檢測到一個“0”,就表明出現(xiàn)起始位,數(shù)據(jù)開始接收。 2.數(shù)據(jù)位:在串口通信中,數(shù)據(jù)位是實際數(shù)據(jù)位的參數(shù)。在一個信息由發(fā)送端發(fā)送時,這個信息包括起始位、奇偶校驗位、數(shù)據(jù)位和停止位。位于起始位和校檢位之間的數(shù)據(jù)就是數(shù)據(jù)位,在沒有校檢位的時候,則位于起始位和停止位之間的是數(shù)據(jù)位。3.奇偶校驗位:它是一種檢錯方式存在于串口通信過程中,校驗位是可有可無的。奇校驗、偶校驗、高校驗和低校驗是奇偶校驗位的四種檢錯方式。奇校驗和偶校驗時,校驗位由串口設置,奇?zhèn)€或偶個邏輯高位的傳輸數(shù)據(jù)用一個值保證。低位校驗和高位校驗并不是真正的檢查數(shù)據(jù),它們只是邏輯高時置位

44、,邏輯低時校驗。這就使得接收設備能很清楚一個位的狀態(tài),進一步判斷接收數(shù)據(jù)和傳輸數(shù)據(jù)是否同步,是否有噪聲干擾串口通訊等等。4.停止位:它表示串口通信中傳輸數(shù)據(jù)的最后一位。因為在傳輸線上數(shù)據(jù)是定時的,且每個設備的時鐘都不相同,在通訊中有可能兩個設備會有小小的不同步。因此停止位不但表示數(shù)據(jù)傳輸?shù)慕Y束,還提供了設備校正時鐘同步的機會。 5.波特率:在串口通信中,它是表示通信速度的參數(shù)。表示通信中每秒傳送位的個數(shù)。一般電話線的波特率為15200、36600、28800和14400。當然波特率還可以更大,但是波特率越大,通信距離距離就越短。通常距離很近設備間的通信才用高波特率?,F(xiàn)在社會上使用最多的串行通信

45、接口是RS-232。如圖所示:圖11 串行通信接口是RS-232接口相對于信號地而言,才叫做收發(fā)端的數(shù)據(jù)信號。高低電平之間來回擺動是RS-232典型的信號,發(fā)送數(shù)據(jù)時,五到十五伏之間的正電平和負十五伏到負五伏之間的負電平作用于發(fā)送端驅動器。沒有傳輸數(shù)據(jù)的時候,線上電平是TTL,數(shù)據(jù)傳送從開始到結束的進程中,從TTL電平轉換到RS-232電平,再返回TTL電平是線上電平的變化過程。從+3V到+12V和從-3V到-12V是接收器常見的工作電平。因為接收電平和發(fā)送電平的值相差也就2V到3V上下,所以它的共模抑制能力有點差,還有雙絞線上分布電容的影響,15米是它的最大傳送距離,而且最高速率不超過20k

46、b/s。另外,RS-232是為點對點通信,也就是說只用一對收發(fā)設備。如圖所示:圖12 下位機和上位機的接線方法全雙工串行通訊接口具有UART所有的功能,STC89C52單片機內部這種接口,并且可以編程。 在異步通信時,接收數(shù)據(jù)和發(fā)送數(shù)據(jù)都由自己的時鐘(RCLK與TCLK)控制,但必須要和字符位數(shù)的波特率一致。發(fā)送和接收的過程如下:串行口發(fā)送啟動是從執(zhí)行一條寫SBUF的指令開始的,就是說SBUF被CPU寫入數(shù)據(jù)時,串行口發(fā)送過程就已經開始了。然后同步移位脈沖,除了方式0,低位在前面,高位在后面,依次是起始位、數(shù)據(jù)位、停止位從TXD引腳開始一位一位地向外發(fā)送。串行口接收的狀態(tài)由允許接收位REN決定

47、,允許接收器接收的條件是用軟件置REN為“1”。一位接一位的數(shù)據(jù)被接收端RXD接收,然后RXD把這些數(shù)據(jù)送入輸入移位寄存器,并且輸入移位寄存器最左面是起始位,控制電路最后一次移位的時候,把“1”寫入接收中斷標志RI,向CPU申請中斷。SBUF中的數(shù)據(jù)被CPU讀入累加器。接收中斷標志RI和TI都是由硬件置位,但需要用軟件復位14。3.5.2 串口通信的四種工作方式 方式0:串行口工作于這種方式時,串行數(shù)據(jù)由收信號線RXD來輸出或輸入,移位脈沖由TXD輸出,發(fā)送的數(shù)據(jù)是8位,接收的數(shù)據(jù)也是8位,低位在前面,高位在后面。它的波特率是固定的,也就是振蕩頻率fosc的十二分之一16。 方式1:串行口工作

48、于方式1時是10位的幀格式,8位數(shù)據(jù)位、1位停止位和1位起始位組成這十位數(shù)據(jù)。這種工作方式下,串行口的波特率是可以變化的,具體的大小隨著定時器T1的溢出率的變化而變化。 方式2:串行口工作于方式2時是11位的幀格式,數(shù)據(jù)位八位和附加的第九位、起始位一位和停止位一位組成這十一位數(shù)據(jù)。這種工作方式下,它的波特率固定為晶振頻率的三十二分之一或六十四分之一。方式3:串行口工作于方式3時幀格式為11位,數(shù)據(jù)位八位和附加的第九位、起始位一位和停止位一位組成這十一位數(shù)據(jù)。這種工作方式下,它的波特率是可以變化的,具體的大小隨著定時器T1的溢出率的變化而變化。第9位附加的數(shù)據(jù),發(fā)送的時候為SCON寄存器中的TB

49、8,接收的時候為SCON中的RB8,清零或置位由軟件來決定,多機通信中這個附加的數(shù)據(jù)可當作地址/數(shù)據(jù)信息的標志位,或者還可以作為數(shù)據(jù)的奇偶校驗位。3.5.3 串口通信設備的連接因為串口是TTL電平,不同于RS232電平。所以PC機和單片機通信時必須轉換電平,電平轉換器典型器件是MAX232,5V是它的供電引腳。一般情況下選擇最簡單的連接方法:三線制連接串口。就是只和計算機的串口的9針的3根線連接:第2腳的RXD、第3腳的TXD和第5腳的GND。3.6行走路線設計為了更好的測試機器人在行進過程中的避障效果,特意設計一個有直線,弧形,以及S型彎的簡易跑道。這樣設計的主要目的是,在機器人行走的過程中

50、,既可以遇到障礙物左轉,又可以遇到障礙物右轉,同時直線行走又很好的測試了機器人的行走能力。 圖13賽道實際圖大連海洋大學畢業(yè)設計(論文) 第四章 系統(tǒng)軟件設計第四章 系統(tǒng)軟件設計要做好本次設計光有硬件是不夠的,還要有相應的軟件系統(tǒng)來配合。本次設計中軟件主要的任務是完成軟件編程使單片機、紅外線傳感器,電動機正常工作。c語言編程普及與絕大多數(shù)軟件,并且教程資料頁很豐富,所以軟件編程采用c語言編程。4.1 軟件簡介4.1.1單片機編程部分本次設計的核心編程選擇c語言進行編程,因為用c語言對單片機編程具有明顯的優(yōu)勢,因為c語言編程具有簡潔方便、使用靈活等特點。而且c語言是高級編程語言,可以結構化編程,

51、還可以移植。c語言編寫的規(guī)范的程序,甚至能夠原封不動的移植到不同的計算機系統(tǒng)內,就算是單片機等嵌入式芯片,c語言編寫的程序也很少需要改動,最重要的是c語言編寫的程序容易讀懂,易于維護。相對來講,對于不同的操作系統(tǒng)和不同的單片機等微控制器,匯編語言的編程指令都是完全不同的,或者就算編程的某些指令相似,匯編語言也不能夠直接移植。而且要讀懂匯編語言的程序,必須要讀懂微控制器的操作指令和微控制器各個寄存器的說明。另外,匯編語言程序的維護和修改也相對麻煩。 本次設計對單片機進行c語言編程的軟件選擇Keil,Keil C51是51系列單片機C語言軟件編程開發(fā)系統(tǒng),由美國Keil Software公司研發(fā)的

52、。Keil由c語言編譯器、庫管理、連接器和仿真調試器等幾部分通過開發(fā)環(huán)境(uVision)組成。美國Keil Software公司于一九九八年推出Keil C51編譯器以來,先后推出了Keil uVision2、Keil uVision3、Keil uVision4等,直到今天的Keil uVision5,從單一的為8051單片機提供編譯環(huán)境到可以調試各種型號的單片機、ARM7、ARM9等嵌入式芯片開發(fā)工具,如今更是控制領域開發(fā)工具的佼佼者。4.1.2 編程 VB的全稱是Microsoft Visual Basic17 ,是美國微軟集團開發(fā)的用于Wintows操作系統(tǒng)下事件驅動編程語言,在當今世界,VB是所有編程語言中全球使用人數(shù)最多的編程語言,因為VB編程語言的簡潔方便和迅速快捷,所以,大多數(shù)初學者都更傾向于把VB編程語言作為進入計算機編程的入門語言。1991年,美國微軟集團研發(fā)并推廣了Microsoft Visual Basic 1.0。引起了當時業(yè)界和社會上很大的關注。許多社會人士和多數(shù)學者專家都認為軟件開發(fā)歷史上一個具有里程碑的重大事件就是 VB 的誕生。因為在1991年,VB開創(chuàng)性的可視化的編程模式是史無前例的,軟件工作者們對此欣喜之極,因為可視化使軟件工作者的工作變得快捷方便,而且很實用,所以軟件工作者都試著在VB的操作平臺上進行工作。隨著VB的良好前景愈加明朗,美

溫馨提示

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

評論

0/150

提交評論