基于單片機的自動往返小車畢業(yè)論文_第1頁
基于單片機的自動往返小車畢業(yè)論文_第2頁
基于單片機的自動往返小車畢業(yè)論文_第3頁
基于單片機的自動往返小車畢業(yè)論文_第4頁
基于單片機的自動往返小車畢業(yè)論文_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要本文介紹的是基于單片機89S52控制的自動往返電動小汽車控制系統(tǒng)的硬件和軟件設計。該設計采用89S52單片機為控制核心,對送入的脈沖信號進行檢測分析,利用超聲波傳感器檢測道路上的障礙,通過脈寬調制使電機轉速能自動調節(jié),從而實現電動小汽車的自動避障,快慢速行駛,以及自動停車的控制要求。由4位數碼管進行對里程、時間的顯示。整個系統(tǒng)的電路結構簡單,可靠性能高。采用的技術主要有:通過編程來控制小車的速度;傳感器的有效應用;新型顯示芯片的采用。關鍵詞:自動往返電動小汽車;AT89S52單片機;脈寬調制;光電檢測器AbstractThispaperisbasedon89S52single-chipmicrocomputercontrolledelectriccarfromtheautomaticcontrolsystemhardwareandsoftwaredesign.Thedesignusing89S52MCUasthecontrolcore,issentintoapulsesignaldetectionandanalysis,theuseofultrasonicsensorsdetectobstaclesontheroad,byapulsewidthmodulatedsothatthemotorspeedcanbeadjustedautomatically,soastorealizetheelectriccarsautomaticobstacleavoidance,lowspeed,aswellastheautomaticparkingcontrolrequirements.By4digitaltubeonthemileage,timedisplay.Thesystemhastheadvantagesofsimplecircuitstructure,reliableperformanceandhigh.Usingthetechnologyare:programmedtocontrolthecarspeed;theeffectiveapplicationofthesensor;theadoptionofthenewdisplaychip.Keywords:automaticmotor-drivencar;AT89S52MCU;pulsewidthmodulation;photoelectricdetector目錄第1章緒論 11.1設計背景和研究意義 11.2工作原理和技術要求 1第2章方案設計與論證 22.1單片機的選擇 22.2電動小車 32.2.1轉向和動力分開的電動小車 32.2.2轉向和動力結合的電動小車 32.3控制系統(tǒng)方案設計 32.3.1數字電路控制 32.3.289S52系統(tǒng)控制 32.4調速系統(tǒng)方案設計 42.4.1電壓調速 42.4.2脈寬調速 42.5制動方案 52.5.1機械剎車 52.5.2電機反電壓剎車 52.6電機驅動模塊 52.6.1L298N驅動步進電機 52.6.2功率管緩沖電路驅動電機 52.7信號檢測模塊 62.7.1光敏探測器 62.7.2光電傳感器 62.8行程計算 72.9系統(tǒng)原理 7第3章硬件設計 83.1電動驅動模塊 83.2信號檢測模塊 83.3單片機控制處理模塊 83.4顯示模塊 93.5最小應用系統(tǒng)設計 93.5.1時鐘電路 93.5.2復位電路 10第4章軟件設計 114.1主程序設計 114.2顯示子程序設計 124.3避障子程序設計 124.4可編程邏輯器件 12附錄 15參考文獻 22致謝 23第1章緒論1.1設計背景和研究意義智能電動小車是一種無人操縱的自動尋跡往返小車。隨著全球經濟的飛速發(fā)展,現代化生產觀念日益受到企業(yè)的重視,這也為智能小車產業(yè)的發(fā)展提供了契機。本設計就是在這樣的背景下提出的。設計一款智能電動小車,智能電動小車應該具有自動尋找軌跡的功能。AT89S52是一款八位單片機,它的易用性和多功能性受到了廣大使用者的好評。它是第三代單片機的代表,其最主要的技術特點是向外部接口電路擴展,以完善控制功能。外部可接其他功能單元如A/D﹑PWM﹑PCA﹑WDT﹑計數器的捕獲/比較邏輯等。在總線方面最重要的進展是為單片機配置了芯片間的串行總線,為單片機應用系統(tǒng)設計提供了更加靈活的方式[1]。新一代單片機為外部提供了相當完善的總線結構,為系統(tǒng)的擴展與配置打下了良好的基礎。本設計采用的AT89S52是一種低功耗、高性能CMOS8位微控制器,可用于很多小型設備中。該設計具有實際意義,稍作修改就可以應用于考古、機器人、醫(yī)療器械等許多方面。尤其是在足球機器人研究方面具有很好的發(fā)展前景;在考古方面可用超聲波傳感器進行檢測。所以本設計與實際相結合,現實意義很強。1.2工作原理和技術要求本設計以AT89S52為控制核心,利用超聲波傳感器進行信號和障礙物的實時檢測;信號經過外圍電路處理送至單片機,經過單片機的運算和處理來控制電機的轉速,進而實現小車的自動加速、限速、減速、前進、后退、左右轉,顯示行駛速度、路程、時間等功能,實現對電動小車的運動狀態(tài)進行實時控制。第2章方案設計與論證根據題目的要求,最終確定了如下的方案:以AT89S52單片機為控制核心,附以外圍電路,利用超聲波傳感器進行信號和障礙物的檢測,從而實現對路面特殊軌跡的實時測量,然后將測量數據傳送至主控制器進行處理,隨后由主控制器根據所接收到的數據對電動車進行控制,實現按照路徑自動行駛。這種方案如圖1-1能實現對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。電動小車電動小車控制器傳感器路面數據控制信號圖1-1自動尋跡小車原理圖2.1單片機的選擇20世紀80年代以來,單片機的發(fā)展非常迅速,就通用單片機而言,世界上一些著名的計算機廠家已投放市場的產品就有50多個系列,數百個品種。盡管單片機的品種很多,但是在我國使用比較廣泛的還是Intel公司的MCS—51系列單片機和美國Atmel公司的單片機。CS—51系列單片機包括三個基本型8031、8051、8751。8031片內無程序存儲器,需外擴EPROM芯片,比較麻煩,不予采用;8051適合與應用在程序已定,且批量大的單片機產品中。也不予采用;8751是在8031基礎上,增加了4K字節(jié)的EPROM,它構成了一個程序小于4KB的小系統(tǒng)。用戶可以將程序固化在EPROM中,可以反復修改程序。但其價格相對8031較貴。8031外擴一片4KBEPROM的就相當與8751,它的最大優(yōu)點是價格低。隨著大規(guī)模集成電路技術的不斷發(fā)展,能裝入片內的外圍接口電路也可以是大規(guī)模的,也不予采用[1]。AT89S52Atmel公司生產的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制,與工業(yè) 80C51 產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。因此采用AT89S52單片機[13]。2.2電動小車2.2.1轉向和動力分開的電動小車轉向和動力分開的電動小車是將輪胎分為兩組,一組與電動機相連輸出動力控制小車的行駛;另外一組控制小車的方向。此種方案只需一個電動機,一個轉向器。由主控制器分別進行控制,控制程序較多。2.2.2轉向和動力結合的電動小車轉向和動力結合的電動小車是使用兩個獨立的電動機各自帶動一個輪胎位于兩側,通過兩個輪胎速度的改變實現小車的轉向??刂扑贸绦蜉^少,控制器控制起來簡單(這種轉向方式類似于坦克的轉向方式)。為了小車的平衡再裝上萬向輪。綜合以上兩種方案的比較,選擇轉向和動力結合的電動小車。2.3控制系統(tǒng)方案設計2.3.1數字電路控制此種方案采用數字電路的構成計數器、分頻器和信號振蕩器,并采用硬件譯碼顯示,可以實現控制方案。2.3.289S52系統(tǒng)控制以AT89S52系統(tǒng)為控制核心,完成對電動機驅動、轉速和前進或后退的控制,以及往返時間和行駛距離的顯示。此系統(tǒng)的硬件和軟件都比較容易實現,且滿足精度要求,性價比較高。AT89S52具有以下特點:AT98S52是一款低功耗,高性能的8位單片機,片內含有8KB的Flash片內程序存儲器,256Bytes的RAM,32個外部雙向輸入/輸出(I/O)口,8個中斷源,一個6向量2級中斷結構等[16]。比較以上兩種控制方案,方案一程序實現簡單,控制性能較差。方案二是以AT89S52單片機為核心的系統(tǒng)可以實現顯示,控制速度,向前或向后,保持與計算機通訊功能大大提高了智能化控制速度,精度和系統(tǒng)的控制精度結果都能很好的滿足基本要求,而且該系統(tǒng)還可以擴展。綜合分析,選擇第二種方案。2.4調速系統(tǒng)方案設計2.4.1電壓調速由單片機發(fā)出調速數碼指令,利用數/模轉換電路將指令轉換成電壓值,以此達到控制速度的目的。這種方案需專門的數模轉換電路,且控制不精確,在電壓比較低的時候,啟動困難,容易停車(此時通過電動機的電流很大,容易燒毀)。2.4.2脈寬調速20世紀70年代以前,以晶閘管為基礎組成的相控整流裝置是運動控制系統(tǒng)直流傳動中主要使用的變流裝置,但由于晶閘管屬于半控型器件,使其構成的V-M系統(tǒng)的性能受到一定的限制;20世紀70年代以后,隨著電力電子技術的發(fā)展,出現了全控型器件--門極可關斷晶閘管(GTO)、電力場效應晶體管(Power-MOSFET)、絕緣柵極雙極晶體管(IGBT);直流電機控制領域向高精度方向發(fā)展;PWM驅動裝置在中小功率場合,有著晶閘管驅動裝置無法比擬的優(yōu)點,例如:調速范圍寬、快速性好、電流波形系數好、功率因數好等[17]。比較以上兩種調速方案,本系統(tǒng)采用方案二,脈寬調速方案。由單片機直接產生脈沖信號,通過橋式雙電路驅動電動機,實現調速。此方案電路簡單明了,控制精確,改變程序即可改變速度。2.5制動方案2.5.1機械剎車機械剎車—沒有任何的助力裝置,主要靠施加再踏板上的力量的大小來取決于制動力的大小,制動效果相當的差,一般用于簡單車輛且負載不大的情況下使用。2.5.2電機反電壓剎車此種剎車方案是在需要剎車的時候給電機加一個一定寬度的反向電壓,迫使電動機快速停止,這種方法稱為“軟剎車”。比較以上兩種制動方案,方案一雖然可行,但機械結構制作困難,且易出故障。方案二,不需要特別加機構,制作容易,可靠性好,缺點是需多次調試,控制反電壓的寬度。綜合比較,本系統(tǒng)采用方案二,軟剎車。2.6電機驅動模塊2.6.1L298N驅動步進電機L298N是一個恒壓恒流橋式2A驅動芯片,內部包含4通道邏輯驅動電路,可以方便的驅動兩個直流電機,或一個兩相步進電機,相應頻率較高,穩(wěn)定性較好。單本系統(tǒng)兩個電機時序不同,會出現兩個不同延時程序的情況,系統(tǒng)處理負荷大,影響電機工作,同時價格相對較高[18]。2.6.2功率管緩沖電路驅動電機用功率管(如TP132,8A,70W)構成驅動電路來驅動電機。采用功率管緩沖電路來驅動電機降低了電路的熱損耗,提高了電機的功率和可靠性。而且結構簡單,價格低廉,可以完成控制功能[18]。綜合以上兩種驅動方案分析,選擇方案二。2.7信號檢測模塊2.7.1光敏探測器光敏電阻探測器在光照下改變自身的電阻率,光照愈強,其自身的電阻愈小,這種方案原理簡單,使用方便,價格低廉,但受光照強度影響很大,可靠性不高。2.7.2光電傳感器作為光電檢測系統(tǒng)中實現光電轉換關鍵元件的光電傳感器,是把光信號轉變成為電信號的器件。光電式傳感器是以光電器件作為轉換元件的傳感器。它可用于檢測直接引起光量變化的非電量,如光強、光\o"照度"照度等;也可用來檢測能轉換成光量變化的其他非電量,如位移、振動、速度等。光電式傳感器具有非接觸、響應快、性能可靠等特點,因此在工業(yè)自動化裝置和機器人中獲得廣泛應用[2]。光電傳感器的優(yōu)點:檢測距離長;對檢測物體的限制少;響應時間短;分辨率高;可實現非接觸的檢測;可實現顏色判別;便于調整等[11]。綜上分析,選擇光電傳感器方案。紅外光線照射到路面并反射,由于黑帶和白紙的系數不一樣,可根據接收到的紅外線的強弱判斷是否到達或者偏離黑帶。通過采用反射式光電檢測電路對跑道上的黑線進行檢測,并用兩個遮光套管套住發(fā)光管和接收管以一定的角度貼近跑道,這樣可以消除外界光線的干擾,信號檢測如圖2-3。圖2-3信號檢測2.8行程計算本設計采用紅外檢測,因為它具有定位精度高、可靠性強等優(yōu)點,故采用紅外光電碼盤測速方案。具體電路圖如圖2-3所示。安裝在電動機軸上的光柵會隨著電動機的轉動而轉動,紅外發(fā)光二極管和紅外三極管分裝在光柵兩側,當紅外發(fā)光二極管點亮時,三極管就會接收到二極管的紅外信號。這樣當電機轉動起來時,光柵隨著電機轉動,三極管就會不斷接收到紅外信號。然后將這些信號傳送至單片機,經過計數器的計數就可計算出行車距離[19-20]。通過車輪轉一圈,記錄一個脈沖,儲存在計數器中,進行二進制乘法及BCD碼轉換以獲得準確里程。則:里程=脈沖數*車輪周長。圖2-4行程檢測2.9系統(tǒng)原理最初啟動時,由按鍵啟動小車,復位。將小車放置在黑線跑道上,由外圍電路的超聲波傳感器和紅外光電傳感器進行檢測,檢測小車是否在黑道軌道上行駛,是否偏離軌道,然后將檢測到的數據送至單片機計數顯示,單片機經過數據處理后,經過脈寬調速技術,控制小車的實時運動,由數碼管顯示小車的行駛路程和時間,這樣就提高了小車的總體性能。如下圖2-4。左電動機組左電動機組右電動機組P0.0P3.5P0.1P3.6P0.2P3.7P0.3左下方傳感器正前方傳感器右下方傳感器電動小車模塊控制器模塊車頭傳感器模塊圖2-4系統(tǒng)原理圖第3章硬件設計系統(tǒng)硬件以AT89S52為核心,包括4個模塊電路:電動驅動模塊、信號檢測模塊、單片機控制處理模塊和顯示模塊。3.1電動驅動模塊電動驅動采用的是高低電平進行信號控制。當00輸入時是截止狀態(tài),當01輸入時,電機正轉,當10輸入時,電機反轉,但不能高電平同時輸入(其中1代表高電平,0代表低電平)。利用改變脈沖寬度控制電機的轉速,使具有不同的轉速,分高速和低速兩種狀態(tài)。3.2信號檢測模塊信號檢測模塊主要是由紅外發(fā)光二極管、超聲波傳感器、紅外三極管和光敏二極管構成。當小車在黑線上行駛時輸出高電平,在白紙上時輸出低電平。3.3單片機控制處理模塊用光電傳感器檢測不同的信號,并經過單片機對信號進行處理,配合脈寬調速程序,使其控制電機的正反轉,實現加速減速和轉向。通過單片機內部定數器\計數器進行定時、計數,再用單片機串行輸入\輸出口進行顯示控制。這種控制系統(tǒng)電路成熟、工作穩(wěn)定、容易實現控制。3.4顯示模塊此設計的顯示模塊主要是往返時間和行駛里程的顯示。里程顯示和往返時間的顯示利用的是4位數碼管的共用,采用數碼管動態(tài)掃描的方式。行駛里程顯示用霍爾集成塊作檢測頭,當磁鋼經過時輸出一個低電平0。3.5最小應用系統(tǒng)設計一般最小系統(tǒng)都具有載入程序,在線調試,復位,數據傳輸和數字、模擬信號之間的相互轉換等功能。最小系統(tǒng)硬件一般包括下載口,擴展端口,串口和相關功能的芯片組成。AT89S52是片內有ROM/EPROM的單片機,因此,這種芯片構成的最小系統(tǒng)簡單﹑可靠。在用AT89S52單片機構成最小應用系統(tǒng)時,將時鐘電路和復位電路接在單片機接上構成最小應用系統(tǒng)。以實現單片機片上硬件功能,包括A/D,對LED的控制和與計算機串口進行通信等功能,并且方便今后對該單片機系統(tǒng)的直接使用和擴展。3.5.1時鐘電路時鐘電路可以簡單定義如下:1.就是產生象時鐘一樣準確的振蕩電路。2.任何工作都按時間順序。用于產生這個時間的電路就是時鐘電路。時鐘電路一般由晶體震蕩器、晶震控制芯片和電容組成。AT89S52片內設有一個由反相放大器所構成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。內部方式時鐘電路是在XTAL1和XTAL2引腳上外接定時元件,內部振蕩電路就產生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯諧振回路。晶體可以在1.2MHz-12MHz之間選擇,電容值在50PF-30PF之間選擇,電容的大小可以起到頻率微調作用。如圖3-1。外部時鐘電路是XTAL1接地,XTAL2接外部振蕩器。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。在設計印刷電路板時,晶體和電容應盡可能靠近單片機芯片安裝,以減少寄生電容,更好的保證振蕩器穩(wěn)定和可靠地工作。為了提高溫度穩(wěn)定性,應采用NPO電容[10]。圖3-1內部時鐘電路圖3.5.2復位電路AT89S52的復位是由外部的復位電路來實現的。AT89S52單片機有一個用于構成內部振蕩器的反相放大器,XTAL1和XTAL2分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來一起構成自激振蕩器。從外部時鐘源驅動器件的話,XTAL2可以不接,而從XTAL1接入。由于外部時鐘信號經過二分頻觸發(fā)后作為外部時鐘電路輸入的,所以對外部時鐘信號的占空比沒有其它要求,最長低電平持續(xù)時間和最少高電平持續(xù)時間等還是要符合要求的。復位電路通常采用上電自動復位和手動復位兩種方式。在RESET輸入端出現高電平時實現復位和初始化。在振蕩器運行的情況下,要實現復位操作,必須使RST引腳至少保持兩個機器周期(24個振蕩周期)的高電平。CPU在第二個機器周期內執(zhí)行內部復位操作,以后每一個機器周期重復一次,直至RST端電平變低。復位期間不產生ALE及信號。內部復位操作使堆棧指示器SP為07H,各端口都為1,特殊功能寄存器都復位為0,但不影響RAM的狀態(tài)。當RST引腳返回低電平以后,CPU從0地址開始執(zhí)行程序。對于加電復位電路,加電瞬間,RST端的電位與Vcc相同,隨著RC電路充電電流的減小,RST端的電位逐漸下降。只要RST端保持10ms以上的高電平就能使單片機有效地復位。復位電路中的RC參數通常由實驗調整。當振蕩頻率選用6MHz,使CR選22uF,RR選1k便能可靠地實現加電復位。若采用RC電路接施密特電路的輸入端,施密特電路輸出端接單片機和外圍電路的復位端,即可使系統(tǒng)可靠地同步復位[10]。第4章軟件設計系統(tǒng)軟件設計說明在進行微機控制系統(tǒng)設計時,除了系統(tǒng)硬件設計外,大量的工作就是如何根據每個生產對象的實際需要設計應用程序。因此,軟件設計在微機控制系統(tǒng)設計中占重要地位。對于本系統(tǒng),軟件更為重要。為了完成上述任務,在進行軟件設計時,通常把整個過程分成若干個部分,每一部分叫做一個模塊。所謂“模塊”,實質上就是為完成某一功能所需的一段程序或子程序段,這種程序設計方法叫模塊程序設計法。模塊程序設計法的特點是:模塊相對獨立,功能單一,編寫相對簡單,可以獨立編寫調試;可集體開發(fā),縮短開發(fā)周期。不同的模塊可以由不同的人員開發(fā),最終能夠合成完整的程序;開發(fā)出的模塊,可在不同的應用程序中多次使用,減少重復勞動,提高開發(fā)效率;測試、更新以模塊為單位進行而不會影響其他模塊。本系統(tǒng)軟件采用模塊化程序設計,由主程序、中斷子程序、顯示子程序等構成。4.1主程序設計主程序清單見附表錄1。軟件流程如圖3-1流程圖所示:圖3-1流程圖4.2顯示子程序設計程序清單見附錄1。.4.3避障子程序設計程序清單見附錄1。4.4可編程邏輯器件可編程邏輯器件GAL16V8是LATTICE公司研制的一種電可擦除的可重復編程的低密度PLD器件。GAL16V8以最大3.5ns的傳輸延遲時間,結合高性能的CMOS工藝與電可擦(E2)懸浮柵工藝可為PLD市場提供最高速度的性能。高速擦寫時間(<100ns)允許快速和有效的重復編程。依靠輸出邏輯宏單元(OLMC)允許用戶來構建,這種通用的結構提供了最大的設計靈活性。作為GAL16V8的許多可能結構形式中最重要的一個子集,PAL結構被列在宏單元描述部分的表里面。GAL16V8借助于全部功能/熔絲圖/參數的兼容性能夠仿真任何一種PAL結構。因此,實現了所有的GAL產品100%的現場可編程性和可操作性。此外,規(guī)定100次的擦寫循環(huán)和超過20年的數據保持能力[5-9]。GAL16V8技術特性?高性能E2CMOS?工藝—最大傳輸延遲3.5ns—Fmax=250MHz—時鐘輸入到數據輸出最大3.0ns—UltraMOS?先進的CMOS工藝?功耗比雙極型減少50%到75%—低功率器件上的Icc典型值為75mA—1/4功率器件上的Icc典型值為45mA?對所有引腳有效上拉?E2CEEL工藝—可重組合邏輯電路—可重編程單元—100%測試/100%合格率—高速電可擦(<100ms)—數據保留20年?8個輸出邏輯宏單元—復雜邏輯設計的最大靈活性—可編程輸出極性—具有全部功能、熔絲圖、參數兼容性的仿真20引線的PAL?設備?所有寄存器的預載和開電源復位—100%的功能可測性?應用包括:—DMA控制—狀態(tài)機控制—高速圖形處理—標準邏輯速度提升?用于識別的電子簽名[11-12]附錄程序清單#include<at89s52.h>//包含52相關的頭文件typedefunsignedcharuchar;//重定義char數據類型typedefunsignedintuint;//重定義int數據類型#defineShowPort//定義數碼管顯示端口ucharcodeLedShowData[]={0x03,0x9F,0x25,0x0D,0x99,//定義數碼管顯示數據0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9staticunsignedintRecvData;//定義接收紅外數據變量staticunsignedcharCountData;//定義紅外個數計數變量staticunsignedcharAddData;//定義自增變量staticunsignedintLedFlash;//定義閃動頻率計數變量unsignedcharHeardData;//定義接收到數據的高位變量bitRunFlag=0;//定義運行標志位bitEnableLight=0;//定義指示燈使能位/***********完成基本數據變量定義**************/sbitS1State=P1^0;//定義S1狀態(tài)標志位sbitS2State=P1^1;//定義S2狀態(tài)標志位sbitB1State=P1^2;//定義B1狀態(tài)標志位sbitIRState=P//定義IR狀態(tài)標志位sbitRunStopState=P1^4;//定義運行停止標志位sbitFontIRState=P1^5;//定義FontIR狀態(tài)標志位sbitLeftIRState=P1^6;//定義LeftIR狀態(tài)標志位sbitRightIRState=P1^7;//定義RightIRState狀態(tài)標志位/*************完成狀態(tài)指示燈定義*************/sbitS1=P3^2;//定義S1按鍵端口sbitS2=P3^4;//定義S2按鍵端口/*************完成按鍵端口的定義*************/sbitLeftLed=P2^0;//定義前方左側指示燈端口sbitRightLed=P0^7;//定義前方右側指示燈端口/*************完成前方指示燈端口定義*********/sbitLeftIR=P3^5;//定義前方左側紅外探頭sbitRightIR=P3^6;//定義前主右側紅外探頭sbitFontIR=P3^7;//定義正前方紅外探頭/*************完成紅外探頭端口定義***********/sbitM1A=P0^0;//定義電機1正向端口sbitM1B=P0^1;//定義電機1反向端口sbitM2A=P0^2;//定義電機2正向端口sbitM2B=P0^3;//定義電機2反向端口/*************完成電機端口定義***************/sbitB1=P0^4;//定義話筒傳感器端口sbitRL1=P0^5;//定義光敏電阻端口sbitSB1=P0^6;//定義蜂鳴端口/*********完成話筒,光敏電阻,蜂鳴器.端口定義**/sbitIR1=P3^3;//定義紅外接收端口/*********完成紅外接收端口的定義*************/voidDelay()//定義延時子程序{uintDelayTime=30000;//定義延時時間變量while(DelayTime--);//開始進行延時循環(huán)return;//子程序返回}voidControlCar(ucharCarType)//定義小車控制子程序{M1A=0;//將電機1正向電平置低M1B=0;//將電機1反向電平置低M2A=0;//將電機2正向電平置低M2B=0;//將電機2反向電平置低LeftLed=1;//關閉前方左側指示燈RightLed=1;//關閉前方右側指示燈Delay();//將此狀態(tài)延時一段時間switch(CarType)//判斷小車控制指令類型{case1://前進//判斷是否是前進{M1A=1;//將電機1正向端口置高M2A=1;//將電機2正向端口置高ShowPort=LedShowData[1];//數碼管顯示前進狀態(tài)break;//退出判斷}case2://后退//判斷是否是后退{M1B=1;//將電機1反向端口置高M2B=1;//將電機2反向端口置高ShowPort=LedShowData[2];//數碼管顯示后退狀態(tài)RightLed=0;//將前方右側指示燈置低(亮)LeftLed=0;//將前方左側指示燈置低(亮)break;//退出判斷}case3://左轉//判斷是否是左轉{M1B=1;//將電機1反向端口置高M2A=1;//將電機2正向端口置高ShowPort=LedShowData[3];//數碼管顯示左轉狀態(tài)LeftLed=0;//將前方左側指示燈置低(亮)break;//退出判斷}case4://右轉//判斷是否是右轉{M1A=1;//將電機1正向端口置高M2B=1;//將電機2反向端口置高ShowPort=LedShowData[4];//數碼管顯示右轉狀態(tài)RightLed=0;//將前方右側指示燈置低(亮)break;//退出判斷}default://默認情況下的判斷{break;//直接退出判斷}}}voidTimer0_IR1()interrupt1using3//定義紅外定時器子程序{TH0=0xFF;//向定時器定時間寄存器填入高八位值TL0=0x19;//向定時器定時間寄存器填入低八位值AddData++;//自增變量加1}voidInt1_IR1()interrupt2//定義紅外接收中斷子程序{TR1=0;//將定時/計數器1關閉IRState=!IRState;//將紅外接收指示燈狀態(tài)取反if(4==AddData)//0//判斷接收到的數據是0{RecvData=RecvData|0;//判斷到0就將當前位寫0RecvData=RecvData<<1;//將當前位向左移動1位}elseif(8==AddData)//1//判斷接收到的數據是1{RecvData=RecvData|1;//將當前位寫1RecvData=RecvData<<1;//將當前位向左移動1位}CountData++;//將紅外接收位計數器加1if(CountData==8)//判斷是否接收到8位數據{HeardData=RecvData;//是8位數據時,則將數據暫存到高位變量中}elseif(CountData==16)//判斷是否接收到16位數據{ET0=0;//關閉紅外定時器0EX1=0;//關閉紅外外部中斷1TR1=1;//打開定時/計數器1AddData=0;//定時時間間隔變量清零if(HeardData==226||HeardData==112)//判斷用戶碼是否正確{HeardData=RecvData;//取出接收到的低八位數據switch(HeardData)//判斷低八位數據的值下列那一位{case32://電源//說明按下了電源鍵 { ControlCar(8);//將小車停止 RunFlag==1;//將運行標志位置1 break;//返回 }case0://1//說明按下數字1鍵 {ShowPort=LedShowData[1];//數碼管顯示數字1 ControlCar(1);//將小車置于前進狀態(tài) break;//返回 } case8://2//說明按下了數字2鍵 {ShowPort=LedShowData[2];//數碼管顯示數字2 ControlCar(2);//將小車置于后退狀態(tài) break;//返回 }case4://3//說明按下了數字3鍵 {ShowPort=LedShowData[3];//數碼管顯示數字3 ControlCar(3);//將小車置于左轉狀態(tài) break;//返回 } case12://4//說明按下了數字4鍵 {ShowPort=LedShowData[4];//數碼管顯示數字4 ControlCar(4);//將小車置于右轉狀態(tài) break;//返回 } case2://5//說明按下了數字5鍵 {ShowPort=LedShowData[5];//數碼管顯示數字5 break;//返回 } case10://6//說明按下了數字6鍵 {ShowPort=LedShowData[6];//數碼管顯示數字6 break;//返回 }case6://7//說明按下了數字7鍵{ShowPort=LedShowData[7];//數碼管顯示數字7break;//返回}case14://8//說明按下了數字8鍵{ShowPort=LedShowData[8];//數碼管顯示數字8break;//返回}case64://9//說明按下了數字9鍵{ShowPort=LedShowData[9];//數碼管顯示數字9break;//返回}case72://0/30//說明按下0/30鍵{ShowPort=LedShowData[0];//數碼管顯示數字0break;//返回}RecvData=0;//將接收到的數據清零CountData=0;//將接收計數器清零HeardData=0;//將接收高低數據變量清零return;//返回}AddData=0;//將定時器計數器清零ET0=1;//打開定時器中斷}voidComBreak()interrupt4//定義串口通信子程序{unsignedcharRecvData;//定義串口數據接收變量if(RI==1)//判斷是否接收數據{RecvData=SBUF;//將接收到的數據放入暫時變量if(RecvData<10)//判斷接收到的數據是否小于10{ShowPort=LedShowData[RecvData];//將接收到的數據通過數碼管顯示出來ControlCar(RecvData);//將串口數據置于小于狀態(tài)}SBUF=RecvData;//向電腦返回當前接收到的數據RI=0;//清除接收中斷標志位}if(TI==1)//判斷是否是發(fā)送中斷{TI=0;//清除發(fā)送中斷標志位}}voidmain(void)//主程序入口{bitExeFlag=0;//定義可執(zhí)行標志位變量RecvData=0;//將接收變量數值初始化CountData=0;//將計數器變量數值初始化AddData=0;//將定時器計數器初始化HeardData=0;//將高低計數器初始化LedFlash=1000;//對閃燈數據進行初始化TMOD=0x01;//選擇定時器0為兩個16位定時器TH0=0xFF;//對定時器進行計數值進行初始化TL0=0x19;//同上,時間大約為25uSTR0=1;//同意開始定時器0EX1=1;//同意開啟外部中斷1IT1=1;//設定外部中斷1為低邊緣觸發(fā)類型ET0=0;SCON=80;//設置串口模式為8位數據TMOD=33;//設置定時/計數器模式TH1=0xFD;//給定時器1高八位初始化初值TL1=0xFD;//給定時器1低八位初始化初值TR1=1;//開啟定時器1ES=1;//開啟串口通信功能REN=1;//開啟接收中斷標志EA=1;//總中斷開啟ControlCar(1);//將小車置于前進狀態(tài)ShowPort=LedShowData[0];//數碼管顯示數字0while(1)//程序主循環(huán){while(LedFlash--)//閃燈總延時{if(RL1==0)//判斷光敏電阻的狀態(tài) {RightLed=1;//將前方右側指示燈點亮 LeftLed=1;//將前方左側指示燈點亮 } else//在光敏電阻為不通的狀態(tài)下 { RightLed=0;//將前方右側指示燈熄滅 LeftLed=0;//將前方左側指示燈熄滅 } if(IR1==0)//判斷延時期間是否有紅外信號輸入{ExeFlag=1;//將可執(zhí)行標志位置1} if(S1==0)//判斷是否有S1按下 { ControlCar(8);//將小車置于停止狀態(tài) RunFlag==1;//改變小車運行狀態(tài)標志位 S1State=!S1State;//改變S1按鍵標志位 gotoNextRun;//跳轉到NextRun標簽 } if(S2==0)//判斷是否有S2按下 { ControlCar(1);//將小車置于前進狀態(tài) RunFlag==0;//改變小車運行狀態(tài)標志位 S2State=!S2State;//改變S2按鍵標志位 gotoNextRun;//跳轉到NextRun標簽 } FontIRState=FontIR;//前方紅外指示燈顯示正前方紅外探頭狀態(tài) LeftIRState=LeftIR;//左側紅外指示燈顯示前方左側紅外探頭狀態(tài) RightIRState=RightIR;//右側紅外指示燈顯示前主右側紅外探頭狀態(tài)if(FontIR==0||LeftIR==1||RightIR==1)//判斷正前方,前左側,前右側紅外探頭狀態(tài){ControlCar(2);//改變小車狀態(tài)為后退Delay();//調用延時子程序 SB1=!SB1;//將蜂鳴器取反 ControlCar(1);//改變小車為前進狀態(tài) SB1=1;//關閉蜂鳴器聲音}if(B1==0)//判斷是否有話筒信號輸入{if(RunFlag==0)//判斷小車當前的運行標志位{ControlCar(8);//將小車置于停止狀態(tài) RunFlag=1;//改變小車運行標志位 } else {ControlCar(1);//將小車置于前進狀態(tài) RunFlag=0;//改變小車運行標志位 } B1State=!B1State;//將話筒信號指示燈取反}}NextRun://跳轉標簽if(RunFlag==0)//判斷運行標志位{RunStopState=!RunStopState;//改變小車運行停止狀態(tài)標志位}else{RunStopState=1;//將運行停止狀態(tài)標志位置1}LedFlash=1000;//運行閃動時間重設定if(ExeFlag==0)//判斷可執(zhí)行標志位{EX1=1;//開啟外部中斷1TR1=1;//開啟定時/計數器1}ExeFlag=0;//可執(zhí)行標志位置0}}參考文獻何立民.MCS-51單片機應用系統(tǒng)設計[M].北京航空航天大學出版社方佩敏.新編傳感器原理應用與電路詳解[M].電子工業(yè)出版社1998周秉功.繼電器選型手冊[M].機械工業(yè)出版社,1998[4]李仁.電器控制[M].機械工業(yè)出版社,2002[5]常斗南主編.可編程序控制器原理?應用?實驗[M].北京:機械工業(yè)出版社,1998[6]戴明宏主編.電器控制與PLC應用.[M].北京:北京航空航天大學出版社,2007[7]黃凈主編.電氣控制與可編程控制器[M].北京:機械工業(yè)出版社,2004[8]李向東主編.電器控制與PLC[M].北京:機械工業(yè)出版社,2007[9]蔡美琴.MCS-51系列單片機系統(tǒng)設計及其應用[M].高等教育出版社,2010.4[10]劉燦軍.實用傳感器[M].國防工業(yè)出版社,2004.14-15[11]張萬忠.《可編程控制器入門與應用實例》北京,中國電力出版社,2004[12]常斗南主編.可編程序控制器原理*應用*實驗.北京,機械工業(yè)出版社,2005[13]王質樸,呂運朋.MCS—51單片機原理接口及應用[M].北京理工大學出版社,2009.221-222[14]李廣弟,單片機基礎,北京:北京航空航天大學出版社,2001,56~64[15]何希才,新型實用電子電路400例,電子工業(yè)出版社,2000年,60~65[16]趙負圖,傳感器集成電路手冊,第一版,化學工業(yè)出版社,2004,590~591[17]陳伯時,電力拖動自動控制系統(tǒng),第二版,北京:機械工業(yè)出版社,2000年6月,127~130[18]陳清泉,現代電動車、電機驅動及電力電子[M].機械工業(yè)出版社,2005[19]ClarkDW.Thememorysystemofahighperformancepersonalcomputer.XeoxPaloAltoResearchCenter,[20]MC88100RSICMicroprocessorUser’sManual(Secondedition).EnglewoodCliffs:PrenticeHall,1990致謝四年的大學生活已接近尾聲,歷時三個多月的畢業(yè)設計也即將結束。在此我衷心對各位機電工程學院、其他教過我的老師、同學對我的指導和幫助表示感謝。在本次畢業(yè)設計過程中通過參考、查閱大量有關單片機方面的參考資料,請教各位老師有關單片機控制系統(tǒng)設計制造方面的有關問題,特別是單片機控制系統(tǒng)設計在實際中可能遇到的具體問題,使我在這短短的時間里,對單片機這個領域的認識有了一個很大的提高。同時也使我對單片機自動控制系統(tǒng)設計設計的過程有了深刻的理解。雖然在這次設計中對于知識的運用和銜接還不夠熟練。但是我將在以后的工作和學習中繼續(xù)努力、不斷完善。這幾個月的設計是對過去所學知識的系統(tǒng)提高和擴充的過程,為今后的發(fā)展打下了良好的基礎。由于自身水平有限,設計中一定存在很多不足之處,敬請各位老師批評指正。再次感謝學院領導、緱亞楠老師的指導以及同學對我的幫助。附件畢業(yè)學位論文結構與格式規(guī)范畢業(yè)學位論文是一種嚴肅的科學研究文體,其邏輯結構與寫作格式必須要符合學術的規(guī)范化要求。畢業(yè)學位論文必須是作者在充分占有第一手研究資料的基礎上的實證的原創(chuàng)性研究,綜述和思考感想之類不能作為畢業(yè)學位論文。學士畢業(yè)論文字數要求10000字以上,碩士畢業(yè)論文字數要求30000字以上。一、論文的基本結構畢業(yè)論文通常由論文標題、作者署名、原創(chuàng)性聲明、摘要、關鍵詞、正文(包括引言、本論、結論)、鳴謝、參考文獻、注釋、附錄等部分構成。。(一)標題標題即文章的題目,標題通常概括性地表達了文章的主題。標題的主題要明確、嚴謹、簡練,最多不超過20個字。一篇論文只能有一個主題,一般不設副標題。(二)作者單位和署名作者是論文的創(chuàng)作者,是著作權和文責自負的標志。畢業(yè)論文要求一人一題。導師指導的論文應同時標明由誰指導。單位名稱要署全稱(含大學名稱、學院名稱、專業(yè)名稱),不能省寫。(三)論文內容目錄目錄是為了讓讀者在閱讀論文前,對整個文章的內容與結構有一個大概的了解和初步的印象。在封面后必須要有目錄并獨占一頁。碩士論文和博士論文的目錄要列出章、節(jié)以及一、二級觀點,本科畢業(yè)論文的目錄不用章節(jié)標注,只用中文序號標注到二級觀點即可,目錄頁中要標明相應的頁碼。(四)摘要摘要就是對論文內容的概括性陳述,一般包括研究課題和撰寫論文的目的、研究對象與方法、研究結果和結論等。本科論文摘要一般在200-300字,碩士論文摘要字數為800-1000字。英文摘要可以是中文摘要的翻譯,也可以是意譯。(五)關鍵詞關鍵詞又叫主題詞,是從論文中選出的最能代表論文中心內容特征的名詞和術語。關鍵詞一般為3-5個,每詞間要用空格間隔開。(六)引言寫引言,目的在于引出論題。引言主要說明本課題的緣由、任務及預期達到的目標。有時,作者還可以把國內外同行對本課題研究情況略作回顧和展望,指出存在的問題,從而說明本課題研究的必要性和創(chuàng)新性。引言應寫得言簡意賅,一般在200-500字內。(七)研究對象與方法介紹納入本研究對象或數據的來源、選擇標準、原因、數量、分布;介紹研究的方法有哪些?自己作了何種改進?常見的方法有問卷調查、現場訪談、文獻研究、實驗研究、數學模型等。如有計量研究就應介紹所使用的統(tǒng)計學方法和軟件。(八)研究的結果習慣上用表格將研究的結果表達出來,研究結果的表達一般與調查研究或實驗研究的要點相對應起來,分點或分圖表進行表述。在這一部分作者只需要客觀地表達研究數據和結果,無需加以分析和評價。(九)分析與討論討論主要是針對研究結果所進行的充分的、全面的分析和有說服力的論述,提出自己有創(chuàng)見性的見解。一般包括對研究結果原因的解釋、與國內外同類研究結果的比較、有什么新的發(fā)現等。(十)結論結論又叫結束語,是作者對論文全文的論點作總結性的說明。一般包括本研究得出的主要觀點、強調自己的新發(fā)現和重要論點、及有待進一步研究的內容或方法改進等。(十一)建議作者可就研究現象的某些問題和需要改進的方面,提出如何改進的措施和思路。這一部分并非每篇論文都需要。(十二)鳴謝鳴謝主要是作者對在課題研究和寫作過程中給予自己具體幫助的導師和其他老師、同學、同事等公開表示謝意的文字。致謝詞可以短至一句話,長可以是一篇小的短文。(十三)參考文獻參考文獻應是正式出版或公開發(fā)表過的著作或文章。參考文獻的排序要與論文中被引用的順序相對應,并且論文中應該標明序號。參考文獻的內容應按作者、論文或著作的題目、出版社或雜志社的城市名、出版社或雜志社的全稱、出版日期、卷、期數、頁碼、依序排列。碩士生畢業(yè)論文參考文獻不少于30篇(并且要求有5篇以上的外文參考文獻),本科生不少于15篇。建議參考核心期刊。參考文獻一般置于文章的結尾。文獻期刊的格式為:[序號]、作者名、文章題目、期刊名、年份、卷號、期數、頁碼;如:[1]李胡希.區(qū)域公費醫(yī)療費用實行目標綜合控制設想.衛(wèi)生軟件科學雜志,1999,25(7):1-3文獻是圖書時,其格式為:[序號]、作者、書名、出版單位、年份、版次、頁碼。如:[1]勞倫斯·巴頓.組織危機管理.北京:清華大學出版社,2002,57-59文獻是未發(fā)表的科研成果時,其格式為:[序號]、作者、項目名、授獎、鑒定單位、時間。當引文作者在3人以內(含3個)均要列出,作者姓名之間用“,”隔開;3人以上的,則只需列出前3位作者姓名,并在最后一位作者姓名后加“等”。英文格式:作者,作者:文章題目名.期刊名.年份,期數:頁碼。如PolskyD,GlickHA,WilikeR,SchulmanK:Confidenceintervalsforcost-effectivenessratio:Acomparisonoffourmethods.HealthEconomics1997,6:243-252(十四)注釋注釋,就是作者對畢業(yè)論文中的有些字、詞、句加以必要的解釋和注明來源出處。可分夾注、腳注和尾注。它不同于參考文獻,是否有注釋根據實際需要而定。(十五)附錄附錄,就是指論文中有些內容與正文關系密切,而這些內容又具有相對獨立性、不宜在正文中出現的內容。例如調查表、問卷、公式、圖表等。是否有附錄要根據需要而定。二、論文的基本格式論文結構排序:封面(含題目、作者單位、署名、學號與年級)見附錄1目錄(只列一、(一)二級目錄)中英文摘要(含英文摘要,先中后英)關鍵詞(中英文關鍵詞應一一對應)引言(研究背景與目的)研究對象與方法研究結果討論與結論或主要觀點參考文獻或注釋10、鳴謝11、附錄三、論文排版、裝訂要求1、論文要用規(guī)范簡體漢字打印,不可用繁體和藝術體。論文題目一般用三號宋體加粗,居中;外文用小二號TimeNewRoman,加粗。中文摘要內容用五號楷體(其中“論文摘要”四字用五號黑體并加方括號),英文摘要用小四號TimeNewRoman。正文內各主要部分的大標題用四號黑體,正文內文用小四號宋體。外文論文用小四號TimeNewRoman。關鍵詞部分用小四號楷體加粗;注釋、參考文獻、附錄均用小四號宋體(其中具有標題性質的“注釋”、“參考文獻”左邊不空格,采用同號黑體加冒號)。2、論文必須用阿拉伯數字連續(xù)編排頁碼,頁碼居中顯示。3、文章標題層次采用規(guī)范編號。從大到小順序為:一(一)1(1)①?!耙弧焙竺嬉宇D號,“(一)”后面則不要加任何符號,“1”后面加圓點。在“一”、“(一)”、“14、學位論文定稿后用A4紙雙面打印,上、下、左、右邊距為2.5cm,頁眉頁腳1厘米,行距固定值20磅。學位論文一律在左側裝訂,要求裝訂、剪切整齊。5、論文一、二、三稿全部要交打印稿(雙面打?。u審與寫作期間不受理電子版。附錄1論文封面格式**大學本科生畢業(yè)論文題目:***********企業(yè)的營銷策略分析學院:經濟與管理學院專業(yè):公共事業(yè)管理年級:2003級學號:20030910**姓名:********成績:(封面不要出現頁碼)附錄2**大學學位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的學術論文,是個人在導師的指導下,獨立進行研究工作所取得的成果。除文中已經注明引用的內容外,本論文不包含任何其他個人或集體已經發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻的個人或集體,均已在文中以明確方式標明。本人完全意識到此聲明的法律后果由本人承擔。學位論文作者簽名:簽字日期:學位論文版權使用授權書本學位論文作者完全了解**大學有關保留、使用學位論文的規(guī)定,有權保留并向國家有關部門或機構送交論文的復印件和磁盤,允許論文被查閱或借閱。本人授權**大學可以將學術論文的全部或部分內容編入有關數據庫進行檢索,可以采用影印、縮印或掃描等復制手段保存、匯編學位論文。(保密的學位論文在解密后適用于本授權書)學位論文作者簽名:導師簽名:簽字日期:簽字日期:(頁碼居中,原創(chuàng)聲明為第一頁)附錄3論文目錄排版示范目錄(三號宋體加黑,居中)中文摘要……………………3Abstract……………………3一、*******************的現狀(勿出現句號等符號,以下同)………3(一)***********分析……………………3(二)***************的現今狀況………3(三)***************發(fā)展趨勢分析……5二、*********************詳細市場分析………………6(一)***************SWOT分析………6(二)*********************…………7三、******************策略………………10(一)**********策略……………………10(二)**********策略……………………10(三)**********策略……………………10四、*********建議………………11(一)*************………11(二)**

溫馨提示

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

最新文檔

評論

0/150

提交評論