基于單片機的智能小車控制_第1頁
基于單片機的智能小車控制_第2頁
基于單片機的智能小車控制_第3頁
基于單片機的智能小車控制_第4頁
基于單片機的智能小車控制_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、信息工程專業課程設計(二) 題目基于STC89C52單片機的智能小車姓名袁誠學號2014116020431所在院系教育信息與技術所在班級1404完成時間2016.6.25基于單片機的智能小車 摘要:智能化作為現代電子產品的新趨勢,是今后的電子產業的發展方向。智能化設計的電子產品可以按照預先設定的模式在一個環境里自動運作,不需要人為的管理,可應用于科學勘探、環境監測、智能家居等方面。基于單片機的智能小車控制就是其中的一個體現。本設計實現了一種基于51單片機的按鍵操作控制和溫度檢測顯示系統,通過溫度傳感器采集溫度數據并且通過顯示模塊顯示出來,通過對按鍵的操作,自動控制轉向電機轉向,改變行駛方向。

2、本課題設計的智能小車,具有按鍵控制前后左右的功能,溫度采集功能,液晶顯示功能。 序 言1第1章 總體設計方案21.1課題任務分析21.2 方案論證31.2.1小車驅動部分31.2.2 溫度顯示部分3第2章 系統硬件構成42.1系統設計原理42.2主要元器件簡介42.2.1 STC89C52RC簡介42.2.2 液晶顯示電路52.2.3 L298N芯片直流電機驅動模塊62.2.4遙控部分獨立按鍵電路7第3章 軟件的設計與說明83.1軟件設計83.2軟件的說明93.2.1 控制部分主程序流程93.2.2 溫度檢測顯示部分主程序流程圖10第4章 調試與總結124.1 調試的總結12參考文獻13致 謝

3、14附錄15附件1 L298N電機驅動模塊15附件2 小車側視圖16附件3 小車俯視圖16附件4 小車最終硬件圖17附件5 程序清單18III序 言隨著我國科學技術的進步,智能化和自動化技術越來越普及,各種高科技也廣泛應用于智能小車和機器人玩具制造領域,使智能機器人越來越多樣化。智能小車是一個多種高新技術的集成體,它融合了機械、電子、傳感器、計算機硬件、軟件、人工智能等許多學科的知識,涉及到當今許多前沿領域的技術1。而智能電動車正是智能機器人的一種,具有不可估量的實際意義。智能車輛是一個運用計算機、傳感、信息、通信、導航、人工智能及自動控制等技術來實現環境感知、規劃決策和自動行駛為一體的高新技

4、術綜合體。它在軍事、民用和科學研究等方面已獲得了應用,對解決道路交通安全提供了一種新的途徑。隨著汽車工業的迅速發展,關于汽車的研究也就越來越受人關注。全國電子大賽和省內電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究,許多國家已經把電子設計比賽作為創新教育的戰略性手段。電子設計涉及到多個學科,機械電子、傳感器技術、自動控制技術、人工智能控制、計算機與通信技術等等,是眾多領域的高科技。電子設計技術,它是一個國家高科技實例的一個重要標準,可見其研究意義很大。第1章 總體設計方案 1.1課題任務分析 本文設計了智能小車控制系統。智能小車是一個運用傳感器、單片機、信號處理、電

5、機驅動及自動控制等技術來實現環境感和自動行駛為一體的高新技術綜合體,它在軍事、民用和科學研究等方面已獲得了應用。 通過各種選題之后,我發現制作智能小車非常有意思,它喚起我們對玩具的革新思想,智能小車制作的興趣。自己遇到過的汽車的功能是怎樣的,想通過自己的手創作出屬于自己的智能汽車。也夾雜一種童年時對玩具智能化的假想。所以我選定制作單片機智能小車。 通過這次設計,掌握51單片機的原理,了解簡單傳感器組成原理,初步掌握傳感器的調整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設計與裝配、調試,提高自己的動手能力,鞏固已學的理論知識,建立單片機理論和實踐的結合,了解傳感器各單元電路之間的關

6、系及相互影響,從而能正確設計、計算定時計數的各個單元電路。初步掌握傳感器的調整及測試方法。提高動手能力和排除故障的能力。本設計采用直流電機,電機專用驅動芯片L298N進行電機驅動控制,主控芯片為STC89C52,控制器部分采用簡單按鍵,溫度數據的采集采用DS18B20溫度傳感器模塊,顯示部分采用1602液晶。本次設計雖然只是一個演示模型,但是具有充分的科學性和實用性。首先我們根據汽車的復雜情況,按照現有材料搭建一個小車模型,車輪,車身,直流電機,按鍵,溫度傳感器,單片機,L29BN電機驅動模塊等。DS18B20溫度傳感器將檢測到的溫度數據傳給單片機,單片機根據接收到的信號進行處理再傳給顯示模塊

7、顯示,由按鍵模塊控制小車進行倒車、前進、左轉、右轉等動作。 1.2 方案論證1.2.1小車驅動部分方案一:小車的電機驅動部分采用自己搭建的9012三極管電路來實行小車的驅動,9012三極管電路具有電路簡單,操作方便的等特點。方案二:小車的電機驅動部分采用L298N芯片直流電機驅動模塊,該模塊具有較大的驅動帶載能力,驅動部分端子供電范圍Vs:+5V+35V,并且另外自帶了5V、3V的輸出端口。方案論證:本設計為2輪驅動的小車,對于小車驅動部分要求能夠有較大的帯載能力,并且在小車的實際設計過程中,需要不同的輸出電壓來提供給小車的各個模塊。因此綜上所述采用方案二,小車的電機驅動部分使用L298N芯片

8、直流電機驅動模塊。1.2.2 溫度顯示部分方案一: 溫度的顯示通過數碼管顯示,數碼管驅動簡單,但是所能顯示的字符數量有限有局限性方案二:用液晶來顯示溫度傳感器采集到的溫度,雖然操作比數碼管要復雜一點,但是功能比數碼管要強大很多,能夠顯示各種各樣的字符 方案論證:本設計是要顯示溫度,并且要顯示需要顯示英文字符,數碼管無法滿足要求,因此采用1602液晶來做顯示模塊第2章 系統硬件構成 2.1系統設計原理本設計主要分為兩部分:按鍵控制部分和溫度檢測部分。控制部分主要由電源電路,單片機最小系統,按鍵模塊和電機驅動模塊組成,遙控部分的系統框圖如圖2-1所示。小車部分由電源電路,單片機最小系統,顯示電路,

9、無線電木塊,報警電路,超聲波電路等電路模塊組成,小車部分的系統框圖如圖2-2所示。 2.2主要元器件簡介 2.2.1 STC89C52RC簡介 常用的單片機有很多種:Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、臺灣華邦(Winbond)W78系列、荷蘭PiliPs的PCF80C51系列、MicrochiP公司系列4位單片機、臺灣義隆的EM-78系列等1。本次設計最終選用了STC89C52單片機。本系統采用最常用的STC89C52單片機,它是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable

10、 Read Only Memory)的低電壓,高性能CMOS 8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的STC89C52是一種高效微控制器。STC89C52單片機為很多嵌入式系統提供了一種靈活性高且價廉的方案。6引腳排列如圖2-3所示。圖2-3 STC89系列引腳排列2.2.2 液晶顯示電路 該設計的顯示部分采用LCD1602來顯示超聲波測距模塊測得的距離。對于現實電路我們可以采用數碼管,也可以采用液晶顯示。液晶顯示相對于數碼管顯示電路更簡潔,顯示更明了,故我

11、們采用液晶顯示電路。液晶又分字符型和點陣型,我們使用的液晶是字符型液晶。LCD1602自帶字符庫,不需要查找代碼,英文字符可直接使用。液晶電路使用時,如果發現液晶不亮可以調節連接液晶的電位器,調節液晶的亮度。液晶顯示電路如圖2-11所示。圖2-11 液晶顯示電路 2.2.3 L298N芯片直流電機驅動模塊該模塊由L298N作為雙H橋直流電機驅動芯片,驅動部分端子供電范圍Vs:+5V+35V。如果在模塊上取電壓供電,則模塊供電范圍為Vs:+7V+35V。模塊的驅動不封峰值電流Io為2A。其他相關參數見表2-1。模塊的實物圖見附錄附件1(注:紅色線框部分為電源接口)。表2-1 L298N芯片直流電

12、機驅動模塊產品參數邏輯部分端子供電范圍Vss5V7V(可板內取電5V) 邏輯部分工作電流范圍036mA 控制信號輸入電壓范圍低電平:0.3VVin1.5V 高電平:2.3VVinVss 使能信號輸入電壓范圍低電平:0.3Vin1.5V(控制信號無效) 高電平:2.3VVinVss(控制信號有效) 最大功耗20W(溫度T75時) 存儲溫度25130 驅動板尺寸82mm*57mm*33mm (帶固定銅柱,散熱片高度) 驅動板重量60g 其他擴展控制方向指示燈、 邏輯部分板內取電接口 2.2.4遙控部分獨立按鍵電路 遙控部分的獨立按鍵與單片機的接口設置為P1.2、P1.3、P1.4、P1.5,分別控

13、制小車的前進、后退、左轉彎、右轉彎。獨立按鍵采用低電平觸發,即當按下按鍵時給單片機一個低電平信號,單片機隨后做出相應的處理,當按鍵松開時,單片機接收到一個高電平信號,單片機隨后繼續做出相應處理。控制部分的獨立按鍵電路如圖2-12所示。圖2-12 控制部分獨立按鍵電路第3章 軟件的設計與說明 3.1軟件設計系統功能的實現依賴于軟、硬件的協同工作。主控芯片為STC89C52RC單片機。單片機控制軟件實現遙控和小車的各項功能。程序編譯采用Keil uVision4編程軟件,Keil uVision4程序編譯界面如圖3-1所示。程序部分采用目前單片機最通用的C語言進行編程。程序的燒錄軟件采用STC_I

14、SP_V479軟件燒寫編譯好的HEX文件,STC_ISP_V479軟件程序燒寫界面如圖3-2所示。圖3-1 Keil uVision4編程軟件界面圖3-2 STC_ISP_V479軟件程序燒寫界面 3.2軟件的說明 3.2.1 控制部分主程序流程遙控部分主程序流程圖如圖3-3所示。程序從主函數開始執行,獨立按鍵模塊初始化,同時在主函數中定義單片機口對應的按鍵按下時所發出的函數值。接下來判斷是否有按鍵按下,如果有按鍵按下,則發送相應的按鍵對應的函數值,接著判斷是否又有按鍵按下。如果未發現按鍵按下則在主函數中循環判斷是否有按鍵按下。圖3-3 遙控主程序流程圖 3.2.2 溫度檢測顯示部分主程序流程

15、圖 小車部分主程序流程圖如圖3-5所示。程序從主函數開始執行,液晶顯示模塊初始化,按鍵模塊初始化。各個模塊初始化完畢后,單片機判斷是否接受到了DS18B20采集的數據信號,如果接收到信號,處理相應的數值,如果沒有接收到新的數值則返回繼續判斷是否接受到新的信號。接收到信號后,單片機對應的對液晶的讀寫進行命令。圖3-5 溫度檢測顯示部分流程圖第4章 調試與總結 基于單片機的智能小車控制有許多的模塊,在做整體設計之前首先是對每個模塊的調試。只有在確保每個模塊都正常的情況下才能進行總體的設計和總體的調試。每個模塊都需要軟硬件的調試才能確保模塊的正常。 單片機的電路系統相對于簡單一些,對于焊接只要多練習

16、就不會出現問題,但是,單片機的電路系統中只要出于一處的錯誤,則會對檢測造成很大的不便,而且電路的交叉線較多,對于各種鋒利的引腳都要注意處理,否則會刺破帶有包皮的導線,則會對電路造成短路現象。 在本次單片機的設計調試中遇到了很多的問題。回想這些問題只要認真多思考都是可以避免的,主要問題在于電機不能正常速度驅動,原因出于電源電壓不夠造成的。解決方案:更換大功率電源。 4.1 調試的總結通過這次設計,掌握51單片機的原理,了解簡單傳感器組成原理,初步掌握傳感器的調整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設計與裝配、調試,提高自己的動手能力,鞏固已學的理論知識,建立單片機理論和實踐的

17、結合,了解傳感器各單元電路之間的關系及相互影響,從而能正確設計、計算定時計數的各個單元電路。初步掌握傳感器的調整及測試方法。提高動手能力和排除故障的能力。調試期間要多向同學老師請教,有問題就該虛心請教。 經過多次的反復測試與分析,可以對電路的原理及功能更加熟悉,同時提高了設計能力與對電路的分析能力,同時在軟件的編程方面得到更高的提高,對編程能力得到加強,同時對所學的知識得到很大的提高與鞏固。參考文獻1 徐國華.移動機器人的發展現狀及其趨勢J.機器人技術與應用,2001,(03):1102-1103,1150.2 彭宏業,段哲民編著.小型舞蹈機器人的驅動系統設計J.國外電子元器件.2005,(0

18、4):56-65.3 陳南主編.定位控制器的設計與實現J.西安科技大學學報. 2003.4譚浩強C語言程序設計M北京:清華大學出版社,19985蘇衛東,任思聰等溫控箱數學模型的建立及其自適應PID控制J中國慣性技術學報,1995年,(3):4.6萬福君. MCS-51單片機原理、系統設計與應用M. 北京:清華大學出版社,2008.7 彭宏業,段哲民編著.小型舞蹈機器人的驅動系統設計J.國外電子元器件.2005,(4).8 劉甘娜等編著.IBM-PC微機原理及接口技術J.西安:西安電子科技大學出版社,1998.9孫廣清便攜式溫度傳感標定裝置D西北工業大學碩士學位論文,2007.10 鮑麗星,陳曉

19、爭一種高精度信號源的設計J南京航空航天大學,2008,16(4):588-59011 黨宏社.智能車輛系統發展及其關鍵技術概述J公路交通科技,2002.(4)12 林敏.簡易數字化語音存儲與回放系統J.儀表技術,2008,28(9):13-18.13 余祖俊.微機監測與控制應用系統設計, 北方交通大學出版社,2001.1214 溫志明.運動控制系統分析與應用J,國防工業出版社,2008.215 WANG SH X,WU G N,JIANG W,et al.The principle and illumination applies of light emitting diodeJ.Light

20、and Lighting, 2006,14(5):21-23.16I.M Filanvsky,H.Baltes.CMOS Schmit Trigger DesignJ.IEEE Transactioms on Circuits and System-Fundamental Theory andApplications.1994,41(1):46-49.致 謝 在作品完成之際,我們要特別感謝嚴焰老師的熱情關懷和悉心指導。在我們作品制作的過程中,老師們給了我們很多耐心的指導和啟發,不僅讓我學到了專業知識,還讓我學到了很多做人的道理。特別是他們廣博的學識、深厚的學術素養、嚴謹的治學精神和一絲不茍的工

21、作作風使我們終生受益,在此表示真誠地感謝。 在作品的制作過程中,也得到了許多同學的寶貴建議,在此一并致以誠摯的謝意。感謝所有關心、支持、幫助過我們的朋友。 最后,向在百忙中抽出時間對本文進行評審并提出寶貴意見的各位領導老師表示衷心地感謝!由于自身水平有限,設計中一定存在很多不足之處,敬請各位老師批評指正。附錄附件1 L298N電機驅動模塊附件2 小車側視圖附件3 小車俯視圖附件4 小車最終硬件圖附件5 程序清單 # include <reg52.h>#include<intrins.h># define uchar unsigned char# define uint

22、unsigned intsbit key1=P12;sbit key2=P13;sbit key3=P14;sbit key4=P15;sbit IN1 = P01;sbit IN2 = P02;sbit IN3 = P03;sbit IN4 = P04;sbit RS=P05; /液晶sbit RW=P06;sbit EN=P07;sbit DQ=P30;/ds18b20與單片機連接口unsigned char code str1="temperature: "unsigned char code str2=" "uchar data disdata5

23、;uint tvalue;/溫度值uchar tflag;/溫度正負標志 void delay(uint xms)int i,j;for(i=xms;i>0;i-)for(j=110;j>0;j-);/*小車部分*/void qianjin()IN1=1; IN2=0;delay(5);IN3=1;IN4=0;void houtui()IN1=0; IN2=1;delay(5);IN3=0;IN4=1;void zuozhuan()IN1=1; IN2=0;delay(5);IN3=0;IN4=0;void youzhuan()IN1=0; IN2=0;delay(5);IN3=1

24、;IN4=0;void tingzhi()IN1=0; IN2=0;delay(5);IN3=0;IN4=0;/*lcd1602程序*/void delay1ms(unsigned int ms)/延時1毫秒(不夠精確的)unsigned int i,j; for(i=0;i<ms;i+) for(j=0;j<100;j+);void wr_com(unsigned char com)/寫指令/ delay1ms(1); RS=0; RW=0; EN=0; P2=com; delay1ms(1); EN=1; delay1ms(1); EN=0;void wr_dat(unsign

25、ed char dat)/寫數據/ delay1ms(1); RS=1; RW=0; EN=0; P2=dat; delay1ms(1); EN=1; delay1ms(1); EN=0;void lcd_init()/初始化設置/delay1ms(15);wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5);void display(unsigned char *p)/顯示/while(*p

26、!='0')wr_dat(*p);p+;delay1ms(1); void init_play()/初始化顯示 lcd_init(); wr_com(0x80);display(str1);wr_com(0xc0);display(str2);/*ds1820程序*/void delay_18B20(unsigned int i)/延時1微秒 while(i-);void ds1820rst()/*ds1820復位*/ unsigned char x=0;DQ = 1; /DQ復位delay_18B20(4); /延時DQ = 0; /DQ拉低delay_18B20(100);

27、 /精確延時大于480usDQ = 1; /拉高delay_18B20(40); uchar ds1820rd()/*讀數據*/ unsigned char i=0; unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; /給脈沖信號 dat>>=1; DQ = 1; /給脈沖信號 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/*寫數據*/unsigned char i=0; for (i=8; i>0; i-) DQ = 0; DQ = wdata&0x01; delay_18B20(10); DQ = 1; wdata>>=1; read_temp()/*讀取溫度值并轉換*/uchar a,b;ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ds1820wr(0x44);/*啟動溫度轉換*/ds1820rst(); ds1820wr(0xcc);/*跳過讀序列號*/ ds1820wr(0xbe);/*

溫馨提示

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

評論

0/150

提交評論