《單片機(jī)原理及應(yīng)用》期末課程設(shè)計(jì)-智能小汽車.doc
《《單片機(jī)原理及應(yīng)用》期末課程設(shè)計(jì)-智能小汽車.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《《單片機(jī)原理及應(yīng)用》期末課程設(shè)計(jì)-智能小汽車.doc(41頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
數(shù)理與信息工程《單片機(jī)原理及應(yīng)用》期末課程設(shè)計(jì)——智能小汽車 數(shù)理與信息工程學(xué)院 《單片機(jī)原理及應(yīng)用》期末課程設(shè)計(jì) 題 目: 智能小汽車 專 業(yè): 電子信息工程 目錄 第1節(jié) 引 言………………………………………………………………………..3 1.1 智能小汽車系統(tǒng)概述……………………………………………………….3 1.2 本設(shè)計(jì)任務(wù)和主要內(nèi)容……………………………………………………3 第2節(jié) 系統(tǒng)主要硬件電路設(shè)計(jì)……………………………………………………4 2.1 系統(tǒng)方案論證與比較………………………………………………………4 2.2 單片機(jī)主機(jī)系統(tǒng)電路………………………………………………………5 2.2.1 時(shí)鐘電路……………………………………………………………5 2.2.2 復(fù)位電路……………………………………………………………6 2.3 電機(jī)的選擇與論證…………………………………………………………6 2.4 電機(jī)驅(qū)動(dòng)方案與電路………………………………………………………6 2.5 探測(cè)障礙物方案與電路……………………………………………………8 2.6 光源檢測(cè)方案與電路………………………………………………………9 2.7 顯示部分方案與電路………………………………………………………9 2.8 電源方案與PCB電路…………………………………………………….10 2.9 入庫前后聲音提示方案與電路………………………………………….11 2.10 攔柵控制電路…………………………………………………………….12 2.11 車速檢測(cè)模塊電路……………………………………………………….13 第3節(jié) 系統(tǒng)的軟件設(shè)計(jì)………………………………………………………….14 3.1 系統(tǒng)主程序設(shè)計(jì)………………………………………………………….14 3.2 小車行使程序…………………………………………………………….32 第4節(jié) 結(jié)束語…………………………………………………………………….39 參考文獻(xiàn)…………………………………………………………………………….40 附錄………………………………………………………………………………….41 智能小汽車 第1節(jié) 引 言 (知道段前段后什么要求嗎?) 題目要求設(shè)計(jì)一智能小汽車,小車能夠準(zhǔn)確尋找到光源,并隨著光源的引導(dǎo),能夠順利地進(jìn)入車庫,同時(shí)在行程過程中能準(zhǔn)確地顯示小車的行使路程的總時(shí)間。根據(jù)要求本設(shè)計(jì)用兩個(gè)電機(jī)來控制小車的轉(zhuǎn)向,用紅外對(duì)管傳感器來檢測(cè)障礙物,用光敏電阻來檢測(cè)光源,用夜晶來顯示小車的行使時(shí)間和車庫攔柵上升的時(shí)間、高度以及當(dāng)前溫度等。與此同時(shí)通過語音電路來實(shí)現(xiàn)人性化的人機(jī)互動(dòng)。作品可以作為高級(jí)智能玩具,也可以作為大學(xué)生學(xué)習(xí)嵌入式控制的強(qiáng)有力的應(yīng)用實(shí)例,該系統(tǒng)將會(huì)有更廣闊的開發(fā)前景。 1.1 智能小汽車系統(tǒng)概述 本設(shè)計(jì)制作了一款具有智能判斷功能的小車,功能強(qiáng)大。小車具有以下幾個(gè)功能:自動(dòng)避障功能(避免撞到車庫的三塊木板);趨光功能(尋找前方的點(diǎn)光源并行駛到位、尋找車庫門);顯示小車行走的總時(shí)間以及車庫攔柵上升的時(shí)間、高度以及當(dāng)前溫度,同時(shí)在小車準(zhǔn)備入庫時(shí)和入庫后進(jìn)行語音提示。在小車行走控制中作品以兩直流電動(dòng)機(jī)為主驅(qū)動(dòng),通過各類傳感器件來采集各類信息,送入主控單元AT89C51單片機(jī),處理數(shù)據(jù)后完成相應(yīng)動(dòng)作,以達(dá)到自動(dòng)控制。在開啟和關(guān)閉車庫攔柵時(shí)用步進(jìn)電機(jī)來控制,并通過單片機(jī)來實(shí)現(xiàn)相應(yīng)動(dòng)作。直流電機(jī)驅(qū)動(dòng)電路采用三極管8550、8050組成的H橋型驅(qū)動(dòng)電路及應(yīng)用光藕芯片對(duì)兩路電源進(jìn)行分離。步進(jìn)電機(jī)采用L298N和IN5408來驅(qū)動(dòng),其中避障采用紅外對(duì)管收發(fā)來完成;趨光部分通過兩路光敏電阻對(duì)光源信號(hào)的采集,再將信號(hào)送到單片機(jī)處理去判別方向,并由控制單元處理數(shù)據(jù)后完成相應(yīng)動(dòng)作,實(shí)現(xiàn)了無人控制即可完成一系列動(dòng)作,相當(dāng)于簡(jiǎn)易機(jī)器人。 1.2 本設(shè)計(jì)任務(wù)和主要內(nèi)容(知道段前段后什么要求嗎?) 本論文主要研究單片機(jī)控制的智能小汽車系統(tǒng),小車控制技術(shù)及系統(tǒng)設(shè)備的軟、硬件各個(gè)部分進(jìn)行了研究。 主要內(nèi)容如下: ① 根據(jù)小車的特點(diǎn),進(jìn)行智能小汽車控制系統(tǒng)的整體研究與設(shè)計(jì)。 ②對(duì)其設(shè)計(jì)進(jìn)行了深入的研究,重點(diǎn)研究小車入庫控制方式。 ③ LCD顯示小車行走的總時(shí)間以及車庫攔柵上升的時(shí)間、高度以及當(dāng)前溫度,同時(shí)在小車準(zhǔn)備入庫時(shí)和入庫后進(jìn)行語音提示。 第2節(jié) 系統(tǒng)主要硬件電路設(shè)計(jì) 2.1 系統(tǒng)方案論證與比較(知道段前段后什么要求嗎?) ???? 方案一:采用各類數(shù)字電路來組成小車的控制系統(tǒng),對(duì)外圍避障信號(hào),各路趨光信號(hào)進(jìn)行處理,車庫攔柵上升下降控制,溫度顯示等。本方案電路復(fù)雜,靈活性高,效率低,不利于小車智能化的擴(kuò)展,對(duì)各路信號(hào)處理比較困難。 ??? 方案二:采用AT89C51單片機(jī)來作為整機(jī)的控制核心單元。紅外線探頭采用市面上通用的發(fā)射管與及接收頭,經(jīng)過單片機(jī)調(diào)制后發(fā)射。車庫攔柵控制部分用步進(jìn)機(jī)來驅(qū)動(dòng)再將采集到的各類信號(hào)送往單片機(jī)進(jìn)行綜合分析處理,實(shí)現(xiàn)準(zhǔn)確有效的動(dòng)作,此系統(tǒng)比較靈活,采用軟件方法來解決復(fù)雜的硬件電路部分使系統(tǒng)硬件簡(jiǎn)潔化,各類功能易于實(shí)現(xiàn),能很好地滿足題目的要求,并容易擴(kuò)展功能。 比較以上兩種方案的優(yōu)缺點(diǎn),方案二簡(jiǎn)潔、靈活、可擴(kuò)展性好,能達(dá)到題目 的設(shè)計(jì)要求,因此采用方案二來實(shí)現(xiàn)。本系統(tǒng)可由圖2-1所示的幾個(gè)部分組成。 圖2-1 單片機(jī)控制系統(tǒng)原理框圖 其中傳感器原理框圖如圖2-2所示。 圖2-2 傳感器原理框圖 2.2 單片機(jī)主機(jī)系統(tǒng)電路 AT89C51單片機(jī)是51系列單片機(jī)的一個(gè)成員,是8051單片機(jī)的簡(jiǎn)化版。內(nèi)部自帶2K字節(jié)可編程FLASH存儲(chǔ)器的低電壓、高性能COMS八位微處理器,與Intel MCS-51系列單片機(jī)的指令和輸出管腳相兼容。由于將多功能八位CPU和閃速存儲(chǔ)器結(jié)合在單個(gè)芯片中,因此,AT89C51構(gòu)成的單片機(jī)系統(tǒng)是具有結(jié)構(gòu)最簡(jiǎn)單、造價(jià)最低廉、效率最高的微控制系統(tǒng),省去了外部的RAM、ROM和接口器件,減少了硬件開銷,節(jié)省了成本,提高了系統(tǒng)的性價(jià)比。 圖2-3 單片機(jī)主機(jī)系統(tǒng)圖 2.2.1時(shí)鐘電路 單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘信號(hào)通 常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。MCS-51單片機(jī)內(nèi)部有一個(gè)用于 構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸 入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí) 際使用中常采用這種方式,如圖2-3所示在其外接晶體振蕩器(簡(jiǎn)稱晶振)或陶 瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外 石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。 圖2-3中外接晶體以及電容C2和C1構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻 率、快速起振的作用,其值均為30P左右,晶振頻率選12MHz。 2.2.2復(fù)位電路 為了初始化單片機(jī)內(nèi)部的某些特殊功能寄存器,必須采用復(fù)位的方式,復(fù)位 后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開始正常工作。 單片機(jī)的復(fù)位是靠外電路來實(shí)現(xiàn)的,在正常運(yùn)行情況下,只要RST引腳上出現(xiàn)兩 個(gè)機(jī)器周期時(shí)間以上的高電平,即可引起系統(tǒng)復(fù)位,但如果RST引腳上持續(xù)為 高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位后系統(tǒng)將輸入/輸出(1/0)端口寄存 器置為FFH,堆棧指針SP置為07H, SBUF內(nèi)置為不定值,其余的寄存器全部 清0,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí)RAM的內(nèi)容是不定的。復(fù) 位操作有兩種情況,即上電復(fù)位和手動(dòng)(開關(guān))復(fù)位。本系統(tǒng)采用上電復(fù)位方式。 圖2-3中R9和Cl組成上電復(fù)位電路,其值R取為10K, C取為22pF。 2.3 電機(jī)的選擇與論證 方案一:采用普通的直流電機(jī)。直流電動(dòng)機(jī)具有優(yōu)良的調(diào)速特性,調(diào)速平滑、方便,調(diào)整范圍廣,過載能力強(qiáng),能承受頻繁的沖擊負(fù)載,可實(shí)現(xiàn)頻繁的無數(shù)快速啟動(dòng)、制動(dòng)和反轉(zhuǎn)。 方案二:采用步進(jìn)電機(jī)。步進(jìn)電機(jī)的一個(gè)顯著特點(diǎn)是具有快速的啟停能力,如果負(fù)荷不超過步進(jìn)電機(jī)所能提供的動(dòng)態(tài)轉(zhuǎn)矩值,就能夠立即使步進(jìn)電機(jī)啟動(dòng)或反轉(zhuǎn)。另一個(gè)顯著特點(diǎn)是轉(zhuǎn)換精度高,正轉(zhuǎn)反轉(zhuǎn)控制靈活。 考慮到時(shí)間的限制,同時(shí)普通的直流電機(jī)電路設(shè)計(jì)相對(duì)簡(jiǎn)單且容易獲得,所以在設(shè)計(jì)小車行走過程中采用選擇方案一的現(xiàn)成的直流電機(jī)作為動(dòng)力驅(qū)動(dòng)。在車庫攔柵控制部分,采用方案二的步進(jìn)電機(jī)來進(jìn)行控制。 2.4 電機(jī)驅(qū)動(dòng)方案與電路 方案一:采用繼電器對(duì)電動(dòng)機(jī)的開或關(guān)進(jìn)行控制,通過控制開關(guān)的切換速度實(shí)現(xiàn)對(duì)小車的速度進(jìn)行調(diào)整。這個(gè)電路的優(yōu)點(diǎn)是電路結(jié)構(gòu)簡(jiǎn)單,其缺點(diǎn)是繼電器的響應(yīng)時(shí)間長,易損環(huán),壽命短,可靠性不是很高。 方案二:小車行走電路采用兩對(duì)互補(bǔ)型晶體管8550(PNP)型和8050型(NPN)接成橋式電路。用AT89C51軟件編程來控制各晶體管導(dǎo)通,分別對(duì)應(yīng)電機(jī)的正轉(zhuǎn)與反轉(zhuǎn),同時(shí)為了達(dá)到效果我將控制電路電源和電動(dòng)機(jī)電源隔離開來,在橋式電路之前加了光電耦合器(U5B TP521-2),該電路的優(yōu)點(diǎn)是電路簡(jiǎn)單,通過單片機(jī)的軟件控制互補(bǔ)型晶體管的導(dǎo)通與截止,方便的調(diào)整電動(dòng)機(jī)的運(yùn)動(dòng)狀態(tài)。缺點(diǎn)是當(dāng)兩個(gè)輸入端都為高電平時(shí),驅(qū)動(dòng)電路的三極管同時(shí)導(dǎo)通,容易燒壞晶體管。 方案三:(1)車庫攔柵控制部分采用集成電路L298N和二極管IN5408組成的電路來作為驅(qū)動(dòng),其原理如同方案二,同樣利用晶體管的導(dǎo)通與截止來驅(qū)動(dòng)電機(jī)的轉(zhuǎn)動(dòng)。L298N內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)的專用驅(qū)動(dòng)器,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的電機(jī)。1腳和15腳可單獨(dú)引出連接電流采樣電阻器,形成電流傳感,因此對(duì)步進(jìn)機(jī)來說,可以非常好的對(duì)其驅(qū)動(dòng)。(2)采用驅(qū)動(dòng)步進(jìn)機(jī)專用芯片ULN2003A,該芯片電路簡(jiǎn)單,容易控制,但驅(qū)動(dòng)力比較大。 在本次設(shè)計(jì)中的小車行走電路,由于繼電器對(duì)設(shè)計(jì)中的種種限制,所以采用方案二中的8050和8550組成的橋電路。對(duì)車庫攔柵控制部分,因?yàn)轭}目要求電機(jī)能夠自如提起放下攔柵(重量比較重),由于沒能找到達(dá)林頓管ULN2003A,因此我們采用驅(qū)動(dòng)力比較大的L298N來驅(qū)動(dòng),因此采用方案三(1)。 圖2-4 電動(dòng)機(jī)PWM驅(qū)動(dòng)電路 該電路的工作原理如下所示:電動(dòng)機(jī)驅(qū)動(dòng)由單片機(jī)兩路輸入,可分為四種情況討論: (1)當(dāng)A端輸入為低電平、B端輸入為高電平時(shí),使Q1、Q4管截止,Q2、Q3管導(dǎo)通,電動(dòng)機(jī)正轉(zhuǎn)。 (2)當(dāng)A端、B端輸入都為高電平時(shí),經(jīng)過光電傳輸,使Q1、Q2、Q3、Q4管都截止,電動(dòng)機(jī)不運(yùn)轉(zhuǎn)。 (3)當(dāng)A端輸入為高電平、B端輸入為低電平時(shí),使Q1、Q4管導(dǎo)通、Q2、Q3管截止,電動(dòng)機(jī)反轉(zhuǎn)。 (4)當(dāng)A端、B端輸入都為低電平,經(jīng)過光電傳輸,使Q1、Q2、Q3、Q4管都導(dǎo)通,這在電路中是不允許出現(xiàn)的現(xiàn)象. 考慮到電動(dòng)機(jī)的啟動(dòng)時(shí)電流很大,而且電動(dòng)機(jī)波動(dòng)較大,容易造成電壓不穩(wěn)、等干擾,我運(yùn)用了P521光耦集成塊,將控制部分與電動(dòng)機(jī)的驅(qū)動(dòng)電路隔離開來,確保安全。 2.5 探測(cè)障礙物方案與電路 方案一:采用超聲波測(cè)距障礙。超聲波測(cè)距模塊利用其測(cè)距原理可以可靠地判斷小車前方是否有障礙物,如果傳感器接收到反射回來的超聲波,則通過單片機(jī)來控制小車前進(jìn)路線。但是超聲波受環(huán)境影響較大,電路復(fù)雜,而且地面對(duì)超聲波的反射,會(huì)影響系統(tǒng)對(duì)障礙物的判斷。 方案二:采用紅外對(duì)管。電路中帶有集成鎖相環(huán)路解碼器LM567或使用LM393 。當(dāng)紅外發(fā)射管檢測(cè)到障礙物時(shí),LM567輸出端輸出低電平,否則輸出高電平,并將信號(hào)傳給單片機(jī)來控制小車避障和前行的動(dòng)作。利用單片機(jī)來產(chǎn)生信號(hào)對(duì)紅外線發(fā)射管進(jìn)行調(diào)制發(fā)射,發(fā)射出去的紅外線遇到避障物的時(shí)候反射回來,紅外線接收管對(duì)反射回來信號(hào)進(jìn)行解調(diào),輸出TTL電平。外界對(duì)紅外信號(hào)的干擾比較小,且易于實(shí)現(xiàn),價(jià)格也比較便宜。 通過比較以及材料夠得的容易情況,選擇了方案二中紅外對(duì)管電路比較合理。 在此模塊中是使用紅外對(duì)管和集成電路LM393,通過紅外發(fā)射管是否檢測(cè)到障礙物情況,經(jīng)過LM393輸出端輸出電平的高低,將此信號(hào)送給單片機(jī),使之執(zhí)行相應(yīng)的動(dòng)作,其電路原理圖如圖2-5所示。 圖2-5 避障檢測(cè)的電路原理圖 2.6 光源檢測(cè)方案與電路 方案一:利用光敏電阻組成的電路。當(dāng)光敏電阻檢測(cè)到光源時(shí),光敏電阻對(duì)是否接受到光源時(shí)會(huì)產(chǎn)生高低不同的信號(hào)脈沖,這樣將信號(hào)傳給單片機(jī)從而控制小車向光源行使到達(dá)車庫。 方案二:利用紅外發(fā)射、接收器組成的電路,具有可大幅度減少外界干擾,靈敏度高,信噪比強(qiáng)等優(yōu)點(diǎn),但是,電路復(fù)雜、調(diào)試難度大。另外,電動(dòng)車進(jìn)入車庫后,要求小汽車能夠立即停車,通過紅外發(fā)射、接收器檢測(cè)車庫障礙物,然后通過單片機(jī)動(dòng)作使電動(dòng)車立即剎車。但容易車身壓線,不符合題目要求。因此,不采用此方案。 基于上述理論分析,選擇方案一。 設(shè)計(jì)中,在車頭安裝了兩個(gè)光敏電阻,把電動(dòng)車引到有光源的車庫,原理是這樣的:當(dāng)左邊的光敏電阻檢測(cè)到光源時(shí),小車會(huì)往左轉(zhuǎn),當(dāng)左邊的光敏電阻檢測(cè)到光源時(shí),小車會(huì)往左轉(zhuǎn)。加上其他傳感器的信息采集,從而讓小車準(zhǔn)確如庫,其電路原理圖如圖2-6所示。 圖2-6 光源檢測(cè)電路原理圖 2.7 顯示部分方案與電路 方案一:采用LED數(shù)碼管顯示小車行駛的時(shí)間和路程以及攔柵上升時(shí)間和高度,在本系統(tǒng)中要用到10只LED數(shù)碼管進(jìn)行動(dòng)態(tài)顯示即可達(dá)到要求。其優(yōu)點(diǎn)是價(jià)格便宜,壽命長;缺點(diǎn)是只能顯示0~9的數(shù)字和一些簡(jiǎn)單的字符,電路設(shè)計(jì)繁鎖,且占用空間。 方案二:采用LCD(12864)液晶顯示,其優(yōu)點(diǎn)是能顯示更多的字符,工作電流比LED小,故其功耗低,且可以有良好的人機(jī)界面,直觀,顯示效果漂亮,體積小。綜合考慮選擇此方案。 由于12864液晶不僅可以顯示數(shù)字,而且可以顯示漢字和圖象,這樣設(shè)計(jì)產(chǎn)生的效果非常直觀,具有人性化設(shè)計(jì)。在本設(shè)計(jì)中采用12864作為顯示部分,電路原理圖如圖2-7所示: 圖2-7 顯示、單片機(jī)最小系統(tǒng)模塊的電路原理圖 2.8 電源方案與PCB電路 方案一:采用雙電源供電。用兩個(gè)電源分別給控制系統(tǒng)和電機(jī)系統(tǒng)供電,將兩個(gè)系統(tǒng)完全隔離,利用光電耦合器傳輸信號(hào),將電動(dòng)機(jī)驅(qū)動(dòng)所造成的干擾徹底消除,這樣就提高了系統(tǒng)的穩(wěn)定性。 方案二:用單電源給電機(jī)系統(tǒng)供電,但是控制系統(tǒng)對(duì)電流需求量大,因?yàn)殡姍C(jī)啟動(dòng)瞬間電流會(huì)很大,會(huì)造成控制系統(tǒng)電壓不穩(wěn),干擾較大,嚴(yán)重時(shí)可能造成單片機(jī)系統(tǒng)掉電。 綜上所述,采用方案二且用5節(jié)1.5V的干電磁組成7.5V的電源或使用蓄電池給電機(jī)系統(tǒng)供電,用1節(jié)9V的干電磁與7805組成輸出恒為5V的電源給控制系統(tǒng)供電。 本設(shè)計(jì)考慮到小車所能承受的壓力有限,所以采用比較簡(jiǎn)單的由7805組成的電源對(duì)小車系統(tǒng)進(jìn)行供電。其電路圖如圖2-8所示。 圖2-8 電源供電模塊PCB圖 2.9 入庫前后聲音提示方案與電路 ???? 方案一:采用74LS04非門組成的普通電路,由單片機(jī)產(chǎn)生不同的頻率信號(hào)來完成聲音提示,此方案易于實(shí)現(xiàn),成本也不高,能完成聲音提示功能,可給人以提示的可懂性比較差。??? 方案二:采用ISD1420可分段錄放音模塊,能夠給人以直觀的提示,但I(xiàn)DS1420錄放音模塊價(jià)格比較高,也可以采用此方案來處理,但由于該芯片最大錄音時(shí)間為20S,可讀性比較好,具有人性化的操作,對(duì)題目設(shè)計(jì)來說可能達(dá)不到要求。 方案三:采用ISD2560 錄放音模塊,同樣能夠給人以直觀的提示,價(jià)格也比較高,同時(shí)該芯片最大錄音時(shí)間為60S,可讀性很好,具有人性化的操作,可以滿足題目要求。 綜上所述:方案一對(duì)一般的報(bào)警可以達(dá)到要求,但在設(shè)計(jì)中要求做到人性化的要求,因此放棄方案一,對(duì)方案二和方案三采用錄音時(shí)間長的ISD2560來實(shí)現(xiàn),這樣更能保證設(shè)計(jì)的可靠性和有效性。 此模塊有三部分電路組成,可以獨(dú)立地完成各自的功能,語音播放功能可以達(dá)到直觀,具有人性化的服務(wù)。聲光電路結(jié)構(gòu)簡(jiǎn)單,主要用以報(bào)警提示。溫度檢測(cè)電路利用DS18B20溫度傳感器的特點(diǎn),可以準(zhǔn)確地檢測(cè)到周圍環(huán)境的溫度。其原理圖如圖2-9所示。 圖2-9 聲光、語音提示檢測(cè)模塊 2.10 攔柵控制電路 電路主要是步進(jìn)機(jī)驅(qū)動(dòng)電路,由于攔柵有一定的重量,所以驅(qū)動(dòng)電動(dòng)機(jī)的驅(qū)動(dòng)力就必須大,因此采用驅(qū)動(dòng)力大的專用芯片L298N來驅(qū)動(dòng)。其原理圖如圖2-10所示。 圖2-10 攔柵控制電路 2.11 車速檢測(cè)模塊電路 在車軸上固定安裝一對(duì)紅外對(duì)管,在車輪圓周上粘貼一段白紙條。當(dāng)車輪轉(zhuǎn)動(dòng)時(shí),遮光條通過紅外對(duì)管,使其得到通斷相間的高低電平信號(hào)。得到的信號(hào)經(jīng)過由LM393組成的過壓比較器,使輸出電壓規(guī)范到兩個(gè)標(biāo)準(zhǔn)值,在發(fā)送至單片機(jī)分析處理,以實(shí)現(xiàn)車速和薄鐵片距離的計(jì)算。具體路如圖2-11所示。 設(shè)計(jì)中,我們將紅外對(duì)管安裝在后輪上,因?yàn)榍拜喴瓿赊D(zhuǎn)彎的功能,如果將紅外對(duì)管安裝在前輪,轉(zhuǎn)彎的靈活性就變差了,而且測(cè)的數(shù)據(jù)不夠準(zhǔn)確。 圖2-11 車速檢測(cè)的電路原理圖 第3節(jié) 系統(tǒng)的軟件設(shè)計(jì) 系統(tǒng)軟件設(shè)計(jì)主要包括:主程序設(shè)計(jì),小車驅(qū)動(dòng)子程序設(shè)計(jì),顯示子程序。 3.1 系統(tǒng)主程序設(shè)計(jì) 圖3-1 主程序流程圖 根據(jù)設(shè)計(jì)要求,可得本系統(tǒng)的程序流程圖如圖3-1所示。本系統(tǒng)的控制器采用常用的AT89C51,因?yàn)榭刂菩≤嚤容^模塊化,所以使用匯編語言進(jìn)行軟件編寫。 ;12864(帶字庫漢字顯示演示程序) RS EQU P2.0 RW EQU P2.1 E EQU P2.2 PSB EQU P2.3 DI BIT P2.4 ;DS18B20輸入端 RST EQU P2.5 DIR_RD EQU P3.0 ;----------------------------------------------- COUNT EQU 31H LCD_DATA EQU 36H LCD_DATA1 EQU 37H LCD_DATA2 EQU 38H STORE EQU 39H DAT EQU 2EH ;DS18B20、、液晶數(shù)據(jù)暫存 TEMPH EQU 3AH TEMPL EQU 3BH ;----------------------------------------------- ORG 0000H LJMP START ORG 001BH LJMP TIM1 ORG 0100H ;----------------------------------------------- START: MOV SP,#70H MOV 2AH,#00 ;上升時(shí)間用定時(shí)器2 MOV 2BH,#00 ;高度 MOV 2CH,#00 MOV 20H,#00 ;儲(chǔ)存上升時(shí)間 MOV 21H,#00 MOV 40H,#00 ;儲(chǔ)存上升高度 MOV 41H,#00 MOV 42H,#00 MOV 43H,#00 MOV TEMPH,#00H MOV TEMPL,#00H SETB P2.6 ;片選端 (語音) CLR P2.7 ;復(fù)位端 SETB P3.1 ;聲光端 MOV TMOD,#00010000B MOV TH1,#HIGH(65536-50000) MOV TL1,#LOW(65536-50000) MOV IE,#10001000B MOV R5,#20 CLR RS CLR RW CLR E LCALL DS18B20 ;DS18B20先轉(zhuǎn)換一次 SETB DI CLR TR1 CLR RST ;復(fù)位 LCALL DELAY4 SETB RST NOP SETB PSB ;通訊方式為8位數(shù)據(jù)并口 ;********************液晶初始化********************** LGS0: MOV A,#34H ;34H--擴(kuò)充指令操作 LCALL SEND_I ;;寫指令子程序 MOV A,#30H ;30H--基本指令操作 LCALL SEND_I MOV A,#01H ;清除顯示 LCALL SEND_I MOV A,#06H ;指定在資料寫入或讀取時(shí),光標(biāo)的移動(dòng)方向 LCALL SEND_I ;DDRAM 的地址計(jì)數(shù)器(AC)加1 MOV A,#0CH ;開顯示,關(guān)光標(biāo),不閃爍 LCALL SEND_I ;******************************************** ; 顯示字符 ;******************************************** XSZF: MOV DPTR,#TAB1A ;顯示漢字和字符 MOV COUNT,#08H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#80H ;第一行起始地址 LCALL SEND_I LCALL QUSHU MOV DPTR,#TAB1B ;顯示漢字和字符 MOV COUNT,#10H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#90H ;第二行起始地址 LCALL SEND_I LCALL QUSHU MOV DPTR,#TAB1C ;顯示漢字和字符 MOV COUNT,#08H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#88H ;第三行起始地址 LCALL SEND_I LCALL QUSHU MOV DPTR,#TAB1D ;顯示漢字和字符 MOV COUNT,#08H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#98H ;第四行起始地址 LCALL SEND_I LCALL QUSHU MOV DPTR,#TAB1E0 ;顯示漢字和字符 MOV COUNT,#2H ;地址計(jì)數(shù)器設(shè)為16。 MOV A,#9FH ;第四行起始地址 LCALL SEND_I LCALL QUSHU ;溫度 ;***************************************** ; 按鍵操作 ; 升 降 停按鍵 ;****************************************** N0:JB P3.7,N1 SETB TR1 CLR P2.6 CLR P2.7 MOV A,#8DH LCALL SEND_I MOV A,#18H LCALL SEND_D CALL TIM1 JMP SHANGSHENG N1:JB P3.5,N2 CLR TR1 SETB P2.6 SETB P2.7 CALL TIM1 JMP STOP03 N2:JB P3.6,N0 SETB TR1 SETB P2.6 MOV A,#8DH LCALL SEND_I MOV A,#19H LCALL SEND_D CALL TIM1 JMP XIAJIANG ;*********************** ; 上升子程序0 ;*********************** SHANGSHENG :JB P3.5,ST CLR TR1 SETB P2.6 SETB P2.7 CALL TIM1 JMP STOP03 ST:MOV R0,#00H START1:MOV A,R0 MOV DPTR,#TABLE MOVC A,@A+DPTR JZ SHANGSHENG MOV P0,A CALL DELAY1 INC R0 LJMP START1 RET ;*********************** ; 上升子程序1 ;*********************** SHANGSHENG1 :JB P3.6,ST1 MOV 2AH,#00H MOV 2BH,#00H MOV 2CH,#00H SETB TR1 SETB P2.6 MOV A,#8DH LCALL SEND_I MOV A,#19H LCALL SEND_D CALL TIM1 JMP XIAJIANG0 ST1:MOV R0,#00H START11:MOV A,R0 MOV DPTR,#TABLE MOVC A,@A+DPTR JZ SHANGSHENG1 MOV P0,A CALL DELAY1 INC R0 LJMP START11 RET ;********************************************************** ;停止子程序1 (上升下降停止鍵無效 P3.4有效并且進(jìn)行軟件復(fù)位) ;********************************************************** STOP: JB P3.6,STOP00 SETB TR1 SETB P2.6 MOV A,#8DH LCALL SEND_I MOV A,#19H LCALL SEND_D CALL TIM1 JMP XIAJIANG0 STOP00:JB P3.7,STOP0 MOV 2AH,#00H MOV 2BH,#00H MOV 2CH,#00H SETB TR1 CLR P2.6 CLR P2.7 MOV A,#8DH LCALL SEND_I MOV A,#18H LCALL SEND_D CALL TIM1 JMP SHANGSHENG1 STOP0: MOV R0,#00H STOP1: MOV A,R0 MOV DPTR,#TABLF MOVC A,@A+DPTR MOV P0,A CALL DELAY1 INC R0 JZ STOP JMP QQ QQ: RET ;*************************** ; 停止子程序2 下降 ;*************************** STOP2:JB P3.6,STOP02 SETB TR1 SETB P2.6 CALL TIM1 JMP XIAJIANG STOP02: MOV R0,#00H STOP12: MOV A,R0 MOV DPTR,#TABLF MOVC A,@A+DPTR JZ STOP2 MOV P0,A CALL DELAY1 INC R0 RET ;*************************** ; 停止子程序3 上升 ;*************************** STOP3:JB P3.7,STOP03 SETB TR1 CLR P2.6 CLR P2.7 CALL TIM1 JMP SHANGSHENG STOP03: MOV R0,#00H STOP13: MOV A,R0 MOV DPTR,#TABLF MOVC A,@A+DPTR JZ STOP3 MOV P0,A CALL DELAY1 INC R0 RET ;********************** ; 下降子程序0 ;********************** XIAJIANG:JB P3.5,XX CLR TR1 SETB P2.6 CALL TIM1 JMP STOP2 XX: MOV R0,#00H XIAJIANG1:MOV A,R0 MOV DPTR,#TABLG MOVC A,@A+DPTR JZ XIAJIANG MOV P0,A CALL DELAY11 INC R0 LJMP XIAJIANG1 RET ;********************** ; 下降子程序1 ;********************** XIAJIANG0:JB P3.7,XX1 MOV 2AH,#00H MOV 2BH,#00H MOV 2CH,#00H SETB TR1 SETB TR0 CLR P2.6 CLR P2.7 MOV A,#8DH LCALL SEND_I MOV A,#18H LCALL SEND_D CALL TIM1 JMP SHANGSHENG1 XX1: MOV R0,#00H XIAJIANG10:MOV A,R0 MOV DPTR,#TABLG MOVC A,@A+DPTR JZ XIAJIANG0 MOV P0,A CALL DELAY11 INC R0 LJMP XIAJIANG10 RET ;************************************** ; 自動(dòng)計(jì)時(shí)1 ;************************************** TIM1: PUSH ACC PUSH PSW MOV TH1,#HIGH(65536-50000) MOV TL1,#LOW(65536-50000) DJNZ R5,X3 MOV R5,#20 CALL CLOCK CALL DISP CALL RTEMP CALL WORK CALL GAODU CALL DISP1 X3: POP PSW POP ACC RETI ;*****************運(yùn)行時(shí)間************* CLOCK: MOV A,2AH ADD A,#01 DA A MOV 2AH,A CJNE A,#05H,X5 MOV 2AH,#00H MOV 2BH,#00H MOV 2CH,#00H CLR TR1 SETB P2.6 CLR P2.7 CLR P3.1 CALL DELAY3 CALL DELAY3 CALL DELAY3 SETB P3.1 CALL DELAY3 CALL DELAY3 CALL DELAY3 CLR P3.1 CALL DELAY3 CALL DELAY3 CALL DELAY3 SETB P3.1 CALL DELAY3 CALL DELAY3 CALL DELAY3 CLR P3.1 CALL DELAY3 CALL DELAY3 CALL DELAY3 SETB P3.1 CALL STOP LJMP N0 X5: RET ;******************************** ; 儲(chǔ)存并顯示運(yùn)行時(shí)間 ;******************************** DISP: MOV R1,#20H MOV A,2AH MOV B,#10H DIV AB MOV @R1,B INC R1 MOV @R1,A MOV A,#86H LCALL SEND_I MOV A,21H ADD A,#30H LCALL SEND_D MOV A,20H ADD A,#30H LCALL SEND_D RET ;******************************** ; 運(yùn)行高度 ;********************************* GAODU: MOV A,2BH ADD A,#01 DA A MOV 2BH,A CJNE A,#01H,X4 MOV 2BH,#00 MOV A,2CH ADD A,#07 DA A MOV 2CH,A CJNE A,#100H,X4 MOV 2CH,#00 X4: RET ;******************************** ; 儲(chǔ)存高度 ;******************************** DISP1: MOV R1,#40H MOV A,2BH MOV B,#10H DIV AB MOV @R1,B INC R1 MOV @R1,A INC R1 MOV A,2CH MOV B,#10H DIV AB MOV @R1,B INC R1 MOV @R1,A INC R1 MOV A,#8EH LCALL SEND_I MOV A,#20H LCALL SEND_D MOV A,43H ADD A,#30H LCALL SEND_D MOV A,42H ADD A,#30H LCALL SEND_D RET ;********************************* ;DS18B20子程序 ;********************************* DS18B20: LCALL RST18B20 MOV A,#11001100H LCALL WRITE MOV A,#01000100H LCALL WRITE RET ;********************************* ;DS18B20復(fù)位子程序 ;********************************* RST18B20:CLR DI MOV R2,#240 DJNZ R2,$ SETB DI MOV R2,#20 DJNZ R2,$ CLR C ORL C,DI JNC S2 MOV R6,#120 S1: CLR C ORL C,DI JNC S2 DJNZ R6,S1 JMP RST18B20 S2: MOV R2,#250 S3: DJNZ R2,S3 SETB DI RET ;***************************** ;DS18B20寫命令子程序 ;***************************** WRITE: MOV R2,#08 W_LOOP1: CLR DI MOV R3,#5 DJNZ R3,$ RRC A MOV DI,C MOV R3,#30 DJNZ R3,$ SETB DI DJNZ R2,W_LOOP1 RET ;***************************** ;DS18B20讀命令子程序 ;***************************** READ: MOV R2,#08 R_LOOP1: CLR DI MOV R3,#5 DJNZ R3,$ SETB DI NOP MOV C,DI RRC A MOV R3,#30 DJNZ R3,$ SETB DI NOP DJNZ R2,R_LOOP1 RET ;***************************** ;讀溫度子程序 ;***************************** RTEMP: LCALL RST18B20 MOV A,#11001100B LCALL WRITE MOV A,#10111110B LCALL WRITE LCALL READ MOV TEMPL,A LCALL READ MOV TEMPH,A LCALL RST18B20 MOV A,#11001100B LCALL WRITE MOV A,#01000100B LCALL WRITE RET ;***************************** ;溫度數(shù)據(jù)處理子程序 ;***************************** WORK: MOV A,#9CH LCALL SEND_I MOV A,TEMPL ANL A,#0F0H SWAP A MOV DAT,A MOV A,TEMPH ANL A,#07H SWAP A ORL A,DAT MOV DAT,A ;溫度整數(shù)值 MOV DPTR,#TABLE3 MOV B,#100 DIV AB MOVC A,@A+DPTR LCALL SEND_D MOV A,B MOV B,#10 DIV AB MOVC A,@A+DPTR LCALL SEND_D MOV A,B MOVC A,@A+DPTR LCALL SEND_D MOV A,#2EH LCALL SEND_D MOV A,TEMPL ;小數(shù)計(jì)算與顯示 ANL A,#0FH MOV DAT,A MOV DPTR,#TABLE2 MOVC A,@A+DPTR ADD- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
4 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī)原理及應(yīng)用 單片機(jī) 原理 應(yīng)用 期末 課程設(shè)計(jì) 智能 小汽車
鏈接地址:http://m.appdesigncorp.com/p-1645721.html