遙控小車設計
《遙控小車設計》由會員分享,可在線閱讀,更多相關《遙控小車設計(95頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、- 學 號01081237 密 級 工程大學本科生畢業(yè)論文 遙控小汽車的設計研究 院(系)名稱:信息與通信工程學院 專業(yè)名稱:電子信息工程 學生:洪生 指導教師:付永慶 教授 2005年6月 . z - 工程大學本科生畢業(yè)論文 遙控小汽車的設計研究 院 (系):信息與通信工程學院 專業(yè):電子信息工程 **:01081237 學生:洪生 指導教師:付永慶 教授 2005年6月 摘 要 根據(jù)題目要求,本設計采用2片
2、AT89C52單片機構(gòu)成主從式的控制系統(tǒng),雙機采用串行口進展通信。紅外遙控局部采用遙控車模專用編、解碼芯片T*-2/R*-2,提高控制的可靠性;同時,在遙控發(fā)射端參加了用凌陽61板做的語音識別系統(tǒng),能夠完成語音遙控功能。采用紅外傳感器進展里程檢測;超聲波傳感器進展障礙識別;感光電阻輔以步進電機控制的轉(zhuǎn)動機構(gòu)進展光源方向的檢測,并能用軟件控制小車行駛到光源附近。采用步進電機對小車的轉(zhuǎn)向進展準確的控制,同時用紅外傳感器對轉(zhuǎn)向的角度進展校正。此外,采用四位LED數(shù)碼管和假設干LED發(fā)光二極管顯示時間、行進的里程以及小車的各種狀態(tài);采用AT24C08串行EEPROM記錄小車的行駛軌跡,并能按照所記錄的
3、軌跡自動行駛。 本次設計基于完備的軟硬件系統(tǒng),很好的實現(xiàn)了小車語音遙控、任意曲線行駛、路線記錄與重放、自動查找光源、自動避障,里程統(tǒng)計并發(fā)出指示信息等功能。 關鍵詞:單片機;超聲波傳感器;紅外遙控;語音識別;凌陽61板 ABSTRACT According to the topic, my designneeds to adopt two AT89C52 to form a control system of principal and subordinate. The munication between the two MCUis to adopt the serial port.
4、 Meanwhile, launch end join with insult male genital 61 sound recognition system that board make remotely, can finish the remote control function of the pronunciation, and it adopts the infrared sensor to measure the mileage; The ultrasonic sensor carries on the obstacle to discern; Sensitization re
5、sistance plement in order to walk into whom electrical machinery control rotate organization carry on measuring,direction of the light source, The small car can go to the adjacent place of the light source with the software .The designadopts serial EEPROM of AT24C08 to write down the orbit of the ca
6、r , and can repeat the route automatically which has been recorded. The Design is on the basis of the plete software and hardware system, and the small car has the function of sound remote control, following any curve, recording the route where it has gone, finding out the light source,etc… Keywo
7、rds:MCU; AT24C08; sensor; SPCE061A 目 錄 第1章 緒論……………………………………………………………1 1.1概述………………………………………………………………1 1.2設計要求及主要功能介紹………………………………………1 手動控制功能…………………………………………2 自動尋找光源功能……………………………………2 超聲避障功能…………………………………………2 記錄路線與重放路線功能……………………………2 聲控功能………………………………………………3 其他功能………………………………………………3 1.3MCS
8、-51系列單片機簡介………………………………………3 1.4凌陽SPCE061A精簡開發(fā)板簡介………………………………5 第2章 系統(tǒng)總體設計………………………………………………6 2.1系統(tǒng)功能模塊的劃分…………………………………………6 2.2單片機數(shù)目的選定……………………………………………6 2.3系統(tǒng)原理框圖…………………………………………………7 2.4系統(tǒng)軟件主要特色……………………………………………7 軟件分層構(gòu)造……………………………………………8 多任務構(gòu)造………………………………………………8 消息驅(qū)動構(gòu)造…………………………………………13 2.5本
9、章小結(jié)………………………………………………………15 第3章 各模塊的詳細設計…………………………………………16 3.1 紅外遙控模塊的設計…………………………………………16 遙控模塊的功能需求…………………………………16 編解碼芯片的選型……………………………………16 遙控模塊原理圖………………………………………16 遙控電路與語音識別模塊的連接……………………18 3.2 數(shù)碼管、發(fā)光二極管顯示模塊的設計………………………18 多位數(shù)碼管掃描顯示原理……………………………18 工作狀態(tài)指示燈及轉(zhuǎn)向燈的設計……………………19 顯示模塊電原理圖………
10、……………………………19 顯示任務的軟件設計…………………………………20 3.3 聲音提示功能的設計…………………………………………20 3.4 前輪轉(zhuǎn)向模塊的設計…………………………………………21 前輪轉(zhuǎn)向的機械構(gòu)造設計……………………………21 前輪轉(zhuǎn)向中點校準功能的設計………………………22 步進電機驅(qū)動芯片……………………………………22 前輪轉(zhuǎn)向任務的軟件設計……………………………22 3.5 后輪驅(qū)動模塊的設計…………………………………………24 直流電機驅(qū)動芯片L298N……………………………24 后輪驅(qū)動任務的軟件設計…………………………
11、…25 3.6 里程檢測模塊的設計…………………………………………25 探頭的選型與安裝……………………………………25 軟件消抖與硬件消抖的比擬…………………………26 里程檢測任務的軟件設計……………………………26 3.7 超聲測距模塊的設計…………………………………………27 超聲測距的理論依據(jù)…………………………………27 超聲發(fā)射電路…………………………………………27 超聲接收電路…………………………………………28 超聲測距任務的軟件設計……………………………29 3.8 光源方向探測模塊的設計……………………………………30 旋轉(zhuǎn)機構(gòu)設計
12、…………………………………………30 亮度檢測電路的選型與設計…………………………31 尋找光源方向任務的軟件設計………………………32 3.9 行駛路線的記錄與重放模塊的設計…………………………33 該模塊的功能概述……………………………………33 3.9.2 AT24C08串行EEPROM介紹……………………………33 存儲記錄的格式………………………………………33 手動模式下記錄行駛路線功能的軟件設計…………33 重放行駛路線功能的軟件設計………………………34 3.10 雙機串行通信模塊的軟件設計……………………………35 通信方式的選型………………
13、……………………35 雙機串行通信的軟件設計…………………………35 3.11 語音識別功能的設計………………………………………36 凌陽語音壓縮算法…………………………………37 語音識別模塊的軟件設計…………………………37 3.12 本章小結(jié)……………………………………………………37 第4章 系統(tǒng)軟件的設計……………………………………………39 4.1 單片機的C語言程序設計簡介………………………………39 4.2 系統(tǒng)的三種工作模式…………………………………………39 4.3 手動模式的設計………………………………………………40 4.4 自動尋找光源模式的
14、設計……………………………………40 功能分析………………………………………………40 尋找光源的策略………………………………………41 自動尋找光源的軟件設計……………………………41 該功能模塊存在的一些問題…………………………41 4.5 走數(shù)字及路線重放模式的設計………………………………44 4.6 本章小結(jié)………………………………………………………44 第5章 系統(tǒng)的組裝、調(diào)試和測試…………………………………45 5.1 系統(tǒng)的組裝、調(diào)試……………………………………………45 5.2 遙控距離的測試………………………………………………45 5.3 時間顯示
15、功能的測試…………………………………………45 5.4 里程顯示功能的測試…………………………………………46 5.5 超聲測障礙功能的測試………………………………………46 5.6 走數(shù)字功能的測試……………………………………………46 5.7 行駛路線記錄與重放功能的測試……………………………47 5.8 自動尋找光源功能的測試……………………………………47 5.9 語音識別功能的測試…………………………………………47 5.10 本章小結(jié)……………………………………………………48 結(jié)論………………………………………………………………………49 致…………………………
16、……………………………………………50 參考文獻………………………………………………………………51 附錄………………………………………………………………………52 . z - 第1章 緒論 1.1 概述 單片機以其強大的控制能力已經(jīng)被廣泛應用于諸多領域,配以各種接口傳感器可以實現(xiàn)系統(tǒng)的智能化。無論是在工業(yè)控制領域、醫(yī)療衛(wèi)生領域、還是在國防軍事領域、航天航空領域,微控制器都起著舉足輕重的作用。從最初的8位控制器到現(xiàn)在的16位、32位控制器都還有很大的開展和應用空間
17、。 目前市場上已有很多種用超聲波傳感器制作的產(chǎn)品,在汽車電子領域,用超聲波傳感器做的倒車雷達可以提高汽車行駛的平安性。對汽車駕駛員來說車身前方是一個視線的“死區(qū)〞,倒車時得非常小心,倒車雷達的出現(xiàn)就解決了這一問題,當車身前方有障礙時能及時發(fā)出警告。 語音識別技術也日趨完善,在機器人領域,要想用語言和機器人“交談〞,首先就要解決語音的識別問題。可以用語音識別技術做成聲控撥號、聲控家電、兒童玩具等。語音識別技術還有待于進一步的開展。本設計中采用凌陽61板做的聲控系統(tǒng)可以用語音控制小車的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停頓。 1.2 設計要求及主要功能介紹 根據(jù)題目要求,本設計需要完成的以下幾項功能
18、: 〔1〕紅外遙控功能,啟停、自動或手動; 〔2〕前或后直線行進; 〔3〕任意曲線行進; 〔4〕測距避障功能; 〔5〕顯示行進距離; 〔6〕準確查找光源。 另外,在設計過程中又擴展了一些功能,比方聲控功能、記錄與重放行駛路線功能等。 手動控制功能 在手動控制模式下,可以控制小車的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停頓、漏粉、顯示時間、顯示里程,假設在行駛過程中遇到障礙小車將自動停頓,并發(fā)出聲光警告信號。同時,在轉(zhuǎn)彎或后退時相應的轉(zhuǎn)向燈和倒車燈會閃爍發(fā)光,小車接收到一個按鍵命令后除了執(zhí)行相應的動作外蜂鳴器還會響一聲,以告知操作者已收到了命令。 在手動控制模式下,還設置了一個記錄行駛路
19、線的開關。操作者按下這個開關后,先選擇這一次記錄的路線的名稱,此后對小車的控制命令將被存入EEPROM中,直至操作者再按下一次這個開關完畢這次路線的記錄。記錄的路線可在重放路線模式下重放。 自動尋找光源功能 在自動尋找光源模式下,小車可以自動查找光源的方向,然后自動行駛到光源的附近。在自動行駛過程中假設遇到障礙,小車將自動采取一些避障措施避開障礙。此外在尋找過程中操作者假設按下“顯示模式切換鍵〞數(shù)碼管顯示的容將在時間和里程之間切換,假設按下“停頓〞鍵,小車將立即停頓尋找光源,然后等待切換到其他模式。 超聲避障功能 在手動模式、自動尋找光源模式、重放路線模式下超聲測障模塊始終工作。在
20、前進時發(fā)現(xiàn)前方有障礙,或在后退時發(fā)現(xiàn)前方有障礙小車都將立即停車,并發(fā)出聲光報警信號告知操作者。障礙檢測的距離調(diào)整在20厘米,即只有在20厘米之有障礙時小車才會做出避讓動作,在這個圍之外的障礙小車不予處理。 記錄路線與重放路線功能 在手動模式下翻開記錄路線開關,開場記錄路線;在重放路線模式下選擇重放的路線,開場重放指定的路線。在重放過程中遇到障礙或操作者按下“停頓〞鍵將完畢本條路線的重放,等待選擇下一條需要重放的路線或選擇另外一種模式。 聲控功能 本設計采用凌陽61板做了聲控系統(tǒng)。翻開遙控器電源后開場訓練語音命令,由于受到單片機的SRAM容量的限制只能錄制5條語音命令,分別是前進、后
21、退、左轉(zhuǎn)、右轉(zhuǎn)、停頓。當識別出*條語音命令時和直接按下相應的按鍵等價,紅外發(fā)射電路都會給小車發(fā)出相應的命令。操作者在使用聲控功能時有語音提示音,所以操作很簡便、快捷。 其他功能 小車還具有走數(shù)字功能,即小車可按照事先由程序設置好的路線行走,并灑下粉末,顯示出一個數(shù)字。 除此之外,小車上還有左、右轉(zhuǎn)向燈,倒車燈,障礙指示燈,模式指示燈,蜂鳴器報警電路,小車狀態(tài)一目了然。 1.3 MCS-51系列單片機簡介 MCS51單片機的根本構(gòu)造如圖1.1所示,其根本構(gòu)造包括: ● 8位CPU; ● 片震蕩器及時鐘電路; ● 32根I/O口線; ● 外部存儲器ROM和RAM尋址圍各為64K
22、B; ● 2個16位定時器/計數(shù)器; ● 5個中斷源,2個中斷優(yōu)先級; 時鐘電路 ROM RAM 定時器/計數(shù)器 CPU 并行接口 串行接口 中斷系統(tǒng) T*D R*D INT0 INT1 P0~P3 T0 T1 圖1.1 8051單片機的根本構(gòu)造 ● 全雙工串行口; ● 布爾處理器。 8051單片機的存儲器構(gòu)造特點之一是程序存儲器和數(shù)據(jù)存儲器分開,并有各自的尋址機構(gòu)和尋址方式。這種構(gòu)造的單片機稱為哈佛構(gòu)造單片機。 8051單片機在物理上有四個存儲空間:片程序存儲器和片外程序存儲器;片數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。 8051單片機有4個8位的并行接口,
23、記作P0,P1,P2和P3,共32根口線,實際上它們就是SFR中的4個。這4個接口特性上主要差異是P0,P2和P3都還有第二功能,而P1口只能用做I/O口。4個口的驅(qū)動能力也是不一樣。P1,P2和P3都能驅(qū)動3個LS TTL門,并且不需外加上拉電阻就能驅(qū)動MOS電路。P0能驅(qū)動8個LS TTL門,但驅(qū)動MOS電路時,假設作為地址/數(shù)據(jù)總線,則可以直接驅(qū)動;而作為I/O口時,需外接上拉電阻才能驅(qū)動MOS電路。 1.4凌陽SPCE061A精簡開發(fā)板簡介 凌陽61板是采用凌陽16位單片機為核心的開發(fā)系統(tǒng),具有DSP處理功能和語音處理功能。利用該開發(fā)板可方便的實現(xiàn)語音的錄、放、識別等功能。SPCE
24、061A凌陽16位單片機的構(gòu)造框圖如圖1.2所示: 圖1.2 SPCE061A構(gòu)造框圖 SPECE061A的CPU工作速率為0.32MHZ-49.152MHZ;SRAM容量為2K字;程序存儲器容量為32K字FLASH,使用凌陽音頻壓縮算法SACM_240方式〔2.4Kbps〕,能容納240秒語音數(shù)據(jù);有兩個16位的并行I/O接口;還具有ADC、DAC、麥克風放大器和AGC電路等。 由于IDE自帶了很多有關語音錄放、語音識別的API函數(shù),所以采用61板來做聲控系統(tǒng)比擬方便。 第2章 系統(tǒng)總體設計 2.1系統(tǒng)功能模塊的劃分 按照設計要求,系統(tǒng)可以分為以下幾個根本功能模塊:遙控模塊、
25、顯示模塊、前輪轉(zhuǎn)向模塊、后輪驅(qū)動模塊、超聲測距避障模塊、尋找光源模塊、記錄與重放路線模塊、里程檢測模塊等。 有些模塊的功能是由硬件完成,有些模塊的功能由軟、硬件配合完成,有些模塊則是由軟件、硬件、機械三局部共同完成。 將系統(tǒng)拆分成以上的這些根本功能模塊后,再根據(jù)各個模塊所要完成的功能分別去設計,也就是按照“逐步求精〞的思想去設計本系統(tǒng),這將使設計工作細化,也有助于制定進度安排。 2.2單片機數(shù)目的選定 由于系統(tǒng)需要完成的功能較多,CPU的負荷也較重,再加之單片機的定時器/計數(shù)器、中斷、I/O口等資源有限,如果選用一片單片機必將會給系統(tǒng)的設計帶來一些困難。所以可以考慮采用兩個單片機構(gòu)成主
26、從式的構(gòu)造,各分擔一局部控制與運算功能,這樣兩個單片機可同時工作。所謂主從式構(gòu)造是指從單片機片機根據(jù)主單片機發(fā)出的命令來完成*項功能,并且把結(jié)果報告給主單片機,這樣的構(gòu)造在*種程度上可以簡化系統(tǒng)。 主單片機負責紅外遙控接收、顯示、小車的運動以及處理遙控命令等功能;從單片機則主要負責超聲測距、檢測光源方位這兩項比擬費時的功能,在探測到障礙或探測到光源時將有關信息報告給主單片機進展處理,并由主單片機來采取相應的措施。 本設計中采用了兩片AT89C52單片機,通過串行接口通信。因為兩個單片機之間的距離很近,所以串行口可以工作在較高的波特率上,可以讓串行口工作在方式2,其特點是其波特率高,并且波特
27、率可以直接從晶振32分頻、或64分頻而得到,不需要占用定時器資源。 2.3系統(tǒng)原理框圖 系統(tǒng)原理框圖如圖2.1所示: 按鍵 主控單片機 從單片機 遙控接收 顯示模塊 里程檢測 路線記錄 漏粉控制 前輪轉(zhuǎn)向 超聲探測障礙 光源方向探測 后輪驅(qū)動 串行通信 遙控發(fā)射 語音識別 圖2.1 系統(tǒng)原理框圖 2.4系統(tǒng)軟件主要特色 軟件在一個智能系統(tǒng)中扮演著舉足輕重的作用,軟件設計的好壞直接關系著整個系統(tǒng)的性能。目前已經(jīng)有很多種嵌入式實時多任務操作系統(tǒng),如:Linu*、RT*51及UC/OS等,可以更有效的利用系統(tǒng)的各種資源,簡化編程,縮短開發(fā)周期。
28、簽于本系統(tǒng)采用AT89C52單片機為控制器,本身的各種資源都很有限,引入一個操作系統(tǒng)代價太大,所以考慮直接來優(yōu)化系統(tǒng)的軟件構(gòu)造,同樣可以到達“多任務〞、“實時〞等要求。 軟件分層構(gòu)造 為了便于編程,將邏輯控制層和具體的硬件相別離開是很有必要的。硬件驅(qū)動層的軟件負責直接操作硬件,并且給上層的軟件提供一定的接口,這樣有助于上層的軟件實現(xiàn)更復雜的功能,并且系統(tǒng)的硬件有所改動時也只需改動相應的驅(qū)動模塊即可。 邏輯控制層 硬件驅(qū)動層 硬件設備 置、取全局變量 圖2.2 軟件分層構(gòu)造示意圖 操作硬件 本系統(tǒng)中的LED顯示模塊、前輪轉(zhuǎn)向模塊、后輪驅(qū)動模塊、AT24C08存取模塊、尋光源轉(zhuǎn)動
29、機構(gòu)都做成了一些獨立的模塊,并且給外部提供了一些接口函數(shù),來實現(xiàn)對這些硬件或機械部件的高級操作。 分層構(gòu)造如圖2.2所示: 軟件的分層構(gòu)造是很多系統(tǒng)中普遍采用的一種軟件構(gòu)造,比方TCP/IP協(xié)議就是一種典型的分層構(gòu)造。WINDOWS、LINU*等系統(tǒng)中也幾乎把所有的系統(tǒng)硬件進展了抽象,這樣上層的軟件就不必關心硬件的細節(jié),可以調(diào)用相應的模塊提供的效勞即可,這樣可把更多的精力放在高級功能的實現(xiàn)上。 多任務構(gòu)造 為了充分利用單片機的CPU,存等資源,本系統(tǒng)中引入了多任務的軟件構(gòu)造,即從宏觀上來看單片機同時在做多件事情。分析一般的多任務系統(tǒng)的軟件構(gòu)造,系統(tǒng)的核心是任務調(diào)度器,在適當?shù)臅r候任務調(diào)
30、度器將保存當前任務的現(xiàn)場,并且恢復將要運行的任務的現(xiàn)場,并讓其投入運行。簡單的說,一般的多任務系統(tǒng)是任務調(diào)度器循環(huán)的調(diào)用各個需要執(zhí)行的任務,進而可以更有效的利用系統(tǒng)的各種資源。從這里得到啟發(fā),可以用定時器每隔一定的時間中斷一次,在中斷處理函數(shù)中依次調(diào)用一次各個任務所對應的函數(shù),并且各個函數(shù)都能在一個較短的時間返回,這樣在*段時間,各個任務所對應的函數(shù)都能夠被執(zhí)行到,就好似多個任務同時運行了。還有一點需要說明,就是各個任務是由一些函數(shù)和一些靜態(tài)變量組成。函數(shù)由定時器中斷處理函數(shù)定期的調(diào)用一次,并且有個前提就是這個函數(shù)能夠在較短的時間返回,否則其他任務將不能及時的被調(diào)用到,也就達不到“實時〞這一要
31、求。靜態(tài)變量保存該任務的各種狀態(tài),并且其他模塊和該系統(tǒng)復位 初始化 主任務設計成無限循環(huán)構(gòu)造 定時器0中斷處理函數(shù) 任務1 任務2 任務3 任務n 圖2.3 多任務構(gòu)造示意圖 任務進展通信也是通過置取這些靜態(tài)變量來實現(xiàn)的。 本系統(tǒng)中軟件的多任務構(gòu)造如圖2.3所示: 可以說定時器中斷處理函數(shù)就是本設計中多任務的核心,即任務調(diào)度器。以下是定時器0中斷處理函數(shù)的程序清單: ///////////////////////////////////////////////////// //定時器0中斷處理函數(shù) //每4毫秒中斷一次 //產(chǎn)生時鐘節(jié)拍 //負責維護一個系統(tǒng)時間
32、變量和任務調(diào)度 ///////////////////////////////////////////////////// *define TIME_OVERLOAD 3960 //定時器計數(shù)初值 //記錄時間的構(gòu)造的定義 typedef struct { uchar t_ms; //毫秒數(shù)0-99 uchar t_100ms; //100毫秒數(shù)0-9 uchar t_sec; //秒數(shù)0-59 uchar t_min; //分鐘數(shù),0-255 }TIME; TIME time; //記錄系統(tǒng)時間的
33、全局變量 void timer0(void) interrupt 1 { //重裝定時器0的計數(shù)初值 TH0=(65536-TIME_OVERLOAD)/256; TL0=(65536-TIME_OVERLOAD)%256; //維護系統(tǒng)時間 time.t_ms+=4; if(time.t_ms>99) { time.t_ms=0; if(++time.t_100ms>9)
34、 { time.t_100ms=0; if(++time.t_sec>59) { time.t_sec=0; time.t_min++; } } } //大約每50毫秒調(diào)用一次蜂鳴器
35、任務 //并且只有在需要發(fā)聲時才調(diào)用 //n_beep全局變量表示需要發(fā)出幾聲 if((n_beep)&&(!(time.t_ms%52)))beep2(); //每4毫秒調(diào)用一次顯示任務 led_disp(); //每16毫秒調(diào)用一次后輪直流電機驅(qū)動程序 if(!(time.t_ms&0*0f))dianji(); //每32毫秒調(diào)用一次里程檢測任務 if(!(time.t_ms&0*1f))licheng(); //每16ms調(diào)用一次前輪轉(zhuǎn)向電機驅(qū)動函數(shù) if(!(time.t_ms&0*0
36、f))gw_dianji(); } 以上的這段程序代碼就是實現(xiàn)了任務的調(diào)度,和一般的多任務系統(tǒng)相比擬有幾點不同: (1) 任務之間的切換是通過函數(shù)的調(diào)用與返回實現(xiàn)的,當以上的這幾個任務全調(diào)用一次之后將進入主任務執(zhí)行,主任務即main()函數(shù)所對應的任務。 (2) 相應的任務上、下文的保存與恢復也不是由任務調(diào)度器實現(xiàn)的,而是由C語言編譯器在函數(shù)調(diào)用時自動保存與恢復了主任務的上、下文;其他的任務不用保存上、下文,每次進入執(zhí)行都是從相應函數(shù)的第一行開場,存放器值也不用保存。 總之,采用以上這種軟件構(gòu)造,也可以實現(xiàn)多個任務并發(fā)運行,在timer0()函數(shù)中可以加進更多的任務,只要各個任
37、務都能在一個較段的時間執(zhí)行一次并返回到timer0()函數(shù)中就可以。此外,關于RAM的分配是在編譯的時候完成的,各個任務一般要用一些全局的靜態(tài)變量來標識自身狀態(tài)。 在主控單片機上有以下幾個任務: (1) 主任務:main()開場的任務,很多功能都要在該任務中完成; (2) 蜂鳴器發(fā)聲任務:beep2(),全局變量n_beep表示需要發(fā)出幾個“嘀〞聲; (3) LED顯示任務:led_disp(),LED數(shù)碼管和LED發(fā)光二極管顯示任務; (4) 后輪電機驅(qū)動任務:dianji(),目前只實現(xiàn)了電機的正、反轉(zhuǎn)和停頓功能,以后可以在該任務中參加PWM調(diào)速功能; (5) 前輪轉(zhuǎn)向任務:g
38、w_dianji(),控制步進電機讓前輪轉(zhuǎn)到指定的角度; (6) 里程檢測任務:licheng(),檢測小車的行駛里程。 在從單片機上有四個任務: (1) 尋找光源方向任務:該任務作為從單片機的背景任務,由main()函數(shù)調(diào)用,然后一直循環(huán)的執(zhí)行; (2) 前超聲測障任務:chaosheng_qian(),由從單片機的定時器中斷處理函數(shù)timer0()每隔64毫秒調(diào)用一次; (3) 后超聲測障任務:chaosheng_hou(),每64毫秒調(diào)用一次,和chaosheng_qian()的調(diào)用相差32毫秒; (4) 旋轉(zhuǎn)機構(gòu)轉(zhuǎn)動任務:driver_dianji(),將尋找光源方向的轉(zhuǎn)
39、動機構(gòu)旋轉(zhuǎn)到指定的角度。 消息驅(qū)動構(gòu)造 考慮到系統(tǒng)中無論是操作者按下一個按鍵,還是遇到障礙或是尋找到光源,這些事件都有一個共同點,就是系統(tǒng)要對這些事件做出相應的處理或采取相應的措施。所以為了簡化編程,讓這些事件在主任務中能得到統(tǒng)一的處理,可以給這些事件編上號,然后由一個消息搜集模塊去等待各種消息。一旦*個事件發(fā)生,該模塊馬上給主任務返回該事件的編號,即消息值,讓主任務按照消息值分類去處理消息。 在消息搜集模塊的頭文件中定義了如下假設干個消息: //消息的構(gòu)造為:高三位,消息分類碼,可以加快消息處理的速 //度;低五位,消息值。 *define NULL 0 //按鍵消息的定義
40、*define MSG_K_QIAN 0*01 //“前進〞按鍵消息 *define MSG_K_HOU 0*02 //“后退〞按鍵消息 *define MSG_K_ZUO 0*03 //“左轉(zhuǎn)〞按鍵消息 *define MSG_K_YOU 0*04 //“右轉(zhuǎn)〞按鍵消息 *define MSG_K_TING 0*05 //“停頓〞按鍵消息 *define MSG_K_MODE 0*06 //“模式選擇〞按鍵消息 *define MSG_K_FEN 0*07 //“漏粉〞按鍵消息 *define MSG_K_REC 0*08 //“記錄路線〞按鍵消息 *defi
41、ne MSG_K_DISPMODE 0*09 //“顯示切換〞按鍵消息 //超聲避障消息 *define MSG_QIANZHANG 0*14 //前方出現(xiàn)障礙消息 *define MSG_HOUZHANG 0*15 //前方出現(xiàn)障礙消息 *define MSG_NOQIANZHANG 0*16 //前方障礙消失消息 *define MSG_NOHOUZHANG 0*17 //前方障礙消失消息 //光源消息 *define MSG_NOTFOUND 0*28 //沒有發(fā)現(xiàn)光源消息 *define MSG_FOUND 0*29 //發(fā)現(xiàn)光源消息 //主從機之間的控
42、制消息 *define MSG_BEGINFIND 0*31 //開場尋找光源命令消息 *define MSG_ENDFIND 0*32 //停頓尋找光源消息 e*tern uchar getmsg(void); e*tern uchar imgetch(void); 消息搜集模塊對外提供了兩個接口函數(shù):getmsg()函數(shù)一直等待到有消息時返回消息值;imgetch()函數(shù)立即返回按鍵值,這是為了*些地方使用上的靈活而設置的。 有了這個消息搜集模塊后,主任務執(zhí)行的大局部時間就會停留在getmsg()函數(shù)等待消息,當有按鍵命令或遇到障礙時返回消息值,主任務對其進展相應的處理。
43、 主任務處理消息可以設計成如下構(gòu)造: while(1) //消息循環(huán) { switch(getmsg()) //消息分類處理 { case MSG_K_QIAN: //“前進〞按鍵消息處理 … break; case MSG_K_HOU: //“后退〞按鍵消息處理 … break; case … } } 2.5本章小結(jié) 本章將系統(tǒng)拆分成了假設干個功能模塊,并且采用兩個AT89C52單片機來各分擔一局部功能。在軟件方面通過對構(gòu)造
44、的特殊設計,根本上實現(xiàn)了多任務并發(fā)運行,并且通過軟件的分層構(gòu)造將功能實現(xiàn)和具體的硬件別離開,再加上消息驅(qū)動的構(gòu)造,這將給后續(xù)的各模塊軟件的設計帶來方便。 第3章 各模塊的詳細設計 3.1 紅外遙控模塊的設計 遙控模塊的功能需求 遙控模塊采用紅外遙控方式,因為采用紅外遙控抗干擾能力強,且不會對周圍的無線電設備產(chǎn)生干擾電波,接口簡單;但是紅外方式遙控的距離比擬有限,一般在幾米之。鑒于本設計不需要遠距離遙控,所以綜合考慮之下采用紅外遙控較為適宜。 本設計中要求能用遙控器控制小車的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停頓、記錄路線、尋找光源等很多種功能;遙控距離在幾米之即可;并且要在遙控發(fā)射模塊參加語
45、音識別模塊,能夠?qū)崿F(xiàn)聲控功能。 編解碼芯片的選型 由于在遙控端的按鍵數(shù)目有多個,而紅外通道傳輸?shù)闹荒苁怯?、1組成的串行代碼,所以需要在發(fā)射端對按鍵進展“并-串〞編碼,在接收端相應的要進展“串-并〞解碼。碼的波特率在收、發(fā)兩端應該是一致的。 方案一,使用MC145026、MC145027編解碼芯片,其特殊的編碼方式保證了信息的可靠傳輸,但是外圍器件參數(shù)的選定較為煩瑣,并且不能利用到其所提供的地址功能,也就是說傳輸?shù)男畔斨械刂反a局部是多余的,這就降低了信道的利用率。 方案二,采用瑞昱公司生產(chǎn)的專用于遙控車模的CMOS大規(guī)模集成電路T*-2/R*-2,該編解碼芯片具有5種控制功能,使用
46、方便,所以本設計中采用了該方案。 遙控模塊原理圖 遙控模塊發(fā)送局部原理如圖3.1所示。T*-2的11腳和12腳之間接的電阻決定振蕩頻率;3腳接地;10腳接3-5V電源;14腳、1腳、4腳、5腳、6腳分別為5路發(fā)射控制端;9腳為發(fā)射指示端,當有按鍵按下時LED1發(fā)光提示;7腳為帶載波的編碼信號輸出端,即編碼信號已經(jīng)調(diào)制到38KHZ的載波上,該腳的信號通過一個NPN型三極管放大后可直接驅(qū)動紅外發(fā)射二極管發(fā)射信號;8腳為不帶載波的編碼信號輸出端。 圖3.1 遙控發(fā)射原理圖 遙控發(fā)射端按鍵數(shù)目的擴展 圖3.2 遙控接收電路圖 遙控接收電路如圖3.2所示。R*-2的4腳和5腳之間接的
47、電阻阻值要和T*-2的11腳、12腳間的電阻阻值接近,相差在20%之方可正確的解碼,本設計中這兩個電阻都選用150KΩ;2腳接地;13腳接3-5V電源;3腳接輸入信號,由一體化紅外接收頭1838輸出的信號需要加一個反向器才是正確的編碼信號;6腳、7腳、10腳、11腳、12腳為5路遙控命令的輸出端,分別和T*-2的5路輸入端的狀態(tài)相對應。 另外,為了方便操作,將T*-2的5路功能擴展成9功能,即在遙控發(fā)射端可以接9個按鍵。這是通過對原先的5路輸入進展組合得到的。 遙控電路與語音識別模塊的連接 語音識別模塊采用凌陽61板,可以將SPCE061A單片機的輸出引腳直接接到T*-2的輸入端,與按
48、鍵實現(xiàn)“線與〞功能,這樣遙控發(fā)射端的按鍵和凌陽單片機都可以通過遙控電路給小車發(fā)送命令。 3.2 數(shù)碼管、發(fā)光二極管顯示模塊的設計 多位數(shù)碼管掃描顯示原理 圖3.3 LED數(shù)碼管構(gòu)造 LED數(shù)碼管是常用的顯示器件,數(shù)碼管的構(gòu)造如圖3.3所示。每一段相當于一個發(fā)光二極管,各個發(fā)光二極管的陽極或陰極接在一起,分別稱作共陽極數(shù)碼管和共陰極數(shù)碼管。本設計中采用的是共陰極數(shù)碼管。 對于多個數(shù)碼管的顯示,有靜態(tài)方式和動態(tài)掃描方式。本設計中用了4個共陰極數(shù)碼管,并采用動態(tài)掃描方式顯示。掃描顯示的原理是將各個數(shù)碼管的段碼端口分別并聯(lián)在一起,由位選端口輪流選通各個數(shù)碼管,并讓每個數(shù)碼管分別顯示幾毫秒,
49、由于人眼的視覺慣性,看到的將是多個數(shù)碼管同時在顯示。 工作狀態(tài)指示燈及轉(zhuǎn)向燈的設計 為了直觀的顯示出小車的各種狀態(tài),設計了假設干發(fā)光二極管指示燈,有模式指示燈、漏粉指示燈、記錄行駛路線指示燈、障礙指示燈、轉(zhuǎn)向指示燈、倒車指示燈。 顯示模塊電原理圖 顯示模塊原理如圖3.4所示: 圖3.4 顯示模塊原理圖 顯示任務由主單片機完成。P0.0和P0.1分別接到74LS164的串行數(shù)據(jù)輸入端和移位脈沖端,產(chǎn)生數(shù)碼管選通信號。P0.2接到74LS273的時鐘端,鎖存P2口給出的段碼數(shù)據(jù)。在完成鎖存后由P2口直接驅(qū)動8個LED發(fā)光二極管,作為小車的狀態(tài)指示。為了在74LS273鎖存數(shù)據(jù)時
50、防止狀態(tài)指示燈的閃爍,用P1.2控制狀態(tài)指示燈的選通。在74LS273鎖存數(shù)據(jù)期間P1.2置高電平,全部熄滅狀態(tài)指示燈;在鎖存完畢后,P2口給出正確的電平后再置P1.2低電平。同樣在4個數(shù)碼管掃描顯示的過程中也應防止數(shù)碼管的閃爍。 顯示任務的軟件設計 數(shù)碼管的掃描顯示和狀態(tài)指示燈的顯示流程如圖3.5所示。由定時器0中斷處理函數(shù)timer0()每隔4毫秒調(diào)用一次。這樣每個數(shù)碼管輪流顯示4毫秒,掃描一遍共需16毫秒,也就是閃爍的頻率大概是60Hz,人眼看到的就是4個數(shù)碼管同時在顯示了。 返回 熄滅狀態(tài)指示燈 顯示模式是. 顯示緩沖區(qū)置成時間 顯示緩沖區(qū)置成里程 數(shù)碼管段碼置成0,
51、消除移位時的閃爍 選通下一個數(shù)碼管 閃爍處理 鎖存段碼 顯示個狀態(tài)指示燈 時間模式 里程模式 用戶模式 圖3.5 顯示流程圖 3.3 聲音提示功能的設計 和狀態(tài)指示燈的設計目的一樣,給小車參加聲音提示功能也是為了更直觀地顯示各種狀態(tài)。在操作者通過遙控器給小車發(fā)出命令后,蜂鳴器將響一聲,及時的提示操作者已經(jīng)收到命令。這是挺有必要的,因為紅外遙控方式并不是很可靠,有時操作者發(fā)出的遙控命令小車可能是收不到的,因此操作者幾乎處于“盲操作〞狀態(tài)。參加了聲音提示功能后,小車有沒有接收到遙控命令很容易就能知道了。此外,當小車遇到障礙時也會給出聲音報警信號。 本設計中所采用的蜂鳴器使
52、用很簡便,只需給其正負端加上5V左右的電壓就能夠發(fā)出聲音,在其部已經(jīng)含有一個振蕩電路。工作電流大約10mA,因此可以用P0口的*一位直接驅(qū)動。 聲音提示功能被設計成一個單獨的任務,原因是為了能讓蜂鳴器響假設干聲,而同時單片機又能做其他的事情。其他模塊通過beep(n)函數(shù)設置靜態(tài)變量n_beep,告訴聲音提示模塊需要響n聲,大約50毫秒響一聲后自動會將n_beep減去1,一直減到0后不再發(fā)聲。 圖3.6 遮擋校準方案 3.4 前輪轉(zhuǎn)向模塊的設計 前輪轉(zhuǎn)向的機械構(gòu)造設計 前輪的機械構(gòu)造如圖3.6所示。通過步進電機來控制前輪轉(zhuǎn)到一定的角度,并且采用了一個遮擋型的紅外對管來檢測轉(zhuǎn)向的中點
53、,以便在開機時能自動找到轉(zhuǎn)向的中點。而且在一定程度上可以校準由步進電機的失步帶來的角度誤差。 前輪轉(zhuǎn)向中點校準功能的設計 圖3.7 紅外對管檢測電路 如圖3.7所示,在紅外發(fā)射管和接收管之間無遮擋時,電壓比擬器輸出低電平;當之間有遮擋時,電壓比擬器輸出高電平。當前輪轉(zhuǎn)到中點時,細桿正好能遮擋住紅外對管,此時電壓比擬器輸出一個高電平;當前輪偏離中點時,輸出低電平。 步進電機驅(qū)動芯片 本設計中前輪的轉(zhuǎn)向電機是從廢棄的軟驅(qū)上拆卸下來的步進電機,體積小、性能好、使用方便,并且有專門的驅(qū)動芯片。驅(qū)動芯片引腳如圖3.8所示,輸入、輸出信號如圖3.9所示。當控制信號的周期為40Hz左右時,步進
54、電機工作在最正確狀態(tài)。 前輪轉(zhuǎn)向任務的軟件設計 前輪轉(zhuǎn)向設計成一個單獨的任務,由定時器0中斷處理函數(shù)每16毫秒調(diào)用一次。其他模塊可以調(diào)用函數(shù)setdegree()設置需要轉(zhuǎn)到的角度,然后由轉(zhuǎn)向任務負責轉(zhuǎn)到所指定的角度,在轉(zhuǎn)向期間,單片機可以做其他的事情;其他模塊還可以調(diào)用getnowdegree()取得當前轉(zhuǎn)到的角度。 圖3.8 步進電機驅(qū)動芯片 A ā B B A-CH in B-CH in 圖3.9 步進電機控制時序 3.5 后輪驅(qū)動模塊的設計 直流電機驅(qū)動芯片L298N 后輪采用直流電機來驅(qū)動,和步進電機相比擬直流電機驅(qū)動力大,電源利用率高。因為直流電機
55、的轉(zhuǎn)速很高,所以必須參加齒輪箱進展減速,減速后驅(qū)動力變大,轉(zhuǎn)速降低。小車的行駛速度大概在20cm/s左右。 為了控制直流電機的正反轉(zhuǎn)來實現(xiàn)小車的前進和后退,采用了直流電機驅(qū)動芯片L298N,引腳連接如圖3.10所示。前進時5腳輸入方波占空比為100%〔即持續(xù)高電平〕,7腳為低電平;后退時5腳為低電平,7腳輸入方波占空比為100%。另外,改變方波的占空比可以實現(xiàn)對直流電機的調(diào)速,由于本設計中小車速度已調(diào)整到較低水平,所以無需再調(diào)速。 100nF 100nF 圖3.10 直流電機驅(qū)動芯片L298N 后輪驅(qū)動任務的軟件設計 本設計中只需控制后輪的正、反轉(zhuǎn),無需調(diào)速,所以后輪驅(qū)動模塊
56、的設計要比前輪轉(zhuǎn)向模塊簡單很多,并且不建立后輪驅(qū)動任務也能實現(xiàn),因為只需要在改變小車的行進狀態(tài)的時候改變單片機和L298N相連的I/O口電平狀態(tài)即可。而本設計中將后輪驅(qū)動模塊也設計成一個單獨的任務是考慮到以后功能擴展的方便。以后可以通過PWM方式對后輪直流電機進展調(diào)速,那就必須把后輪驅(qū)動模塊設計成一個單獨任務了。 目前本模塊對其他模塊主要提供了以下幾個接口函數(shù)。 setspeed(n),n>0時,小車前進;n<0時,小車后退;n=0時,小車停頓。 getspeed(),前進時返回1;后退時返回-1;停頓時返回0。 imstop(),該函數(shù)實現(xiàn)反電動勢剎車功能。 3.6 里程檢測模塊的
57、設計 探頭的選型與安裝 可以用這樣的思路來設計里程檢測模塊,在車軸上安裝一個圓盤,圓盤上均勻的開一些缺口,如圖3.11所示: 圖3.11 里程檢測遮光圓盤的設計 車輪每轉(zhuǎn)過一圈圓盤將把紅外對管遮擋4次,小車勻速行駛時檢測電路輸出占空比為50%的方波。檢測電路如圖3.7所示。 軟件消抖與硬件消抖的比擬 從檢測電路輸出的方波在其上升和下降沿處是不穩(wěn)定的,有抖動,統(tǒng)計里程的原理是檢測上升和下降沿的個數(shù),抖動必將引起里程統(tǒng)計的誤差,因此要考慮消抖。 消抖的方法有多種,用硬件電路可以實現(xiàn)消抖功能,例如加一級施密特觸發(fā)器或加一級單穩(wěn)態(tài)觸發(fā)器都可以在一定程度上消除抖動。硬件消抖后的信號
58、可以直接接到單片機的計數(shù)器引腳,利用單片機部的計數(shù)器來統(tǒng)計里程,但這樣的方法硬件代價比擬大,而且需要使用單片機的計數(shù)器或中斷才能實現(xiàn)。所以考慮用軟件的方法來消除抖動。
圖3.12 軟件消抖示意圖
軟件消抖的思路是每隔T1對原信號采樣一次,假設抖動的時間寬度為T2,高、低電平的寬度為T,則只要滿足T2 59、每隔32毫秒調(diào)用一次,也就是說采樣的時間間隔為32毫秒,這根本上能夠滿足T2 60、函數(shù)。
由于記錄里程值的變量是unsigned int型,所以表示的里程值圍為:0-65535(沿個數(shù)),大約是1366米,對于本設計而言,這個圍是足夠了。
3.7 超聲測距模塊的設計
超聲測距的理論依據(jù)
發(fā)射傳感器
接收傳感器
超聲波
回波
障礙
直接耦合
圖3.12 超聲測距原理圖
超聲測距的依據(jù)是超聲波在空氣中以一定的速度ν傳播,遇到障礙后聲波反射回來,被超聲波接收傳感器檢測到,根據(jù)發(fā)射和接收到回波之間的時間差t就可以計算出障礙的距離,計算公式是:S=ν·t/2。
超聲發(fā)射電路
發(fā)射電路要求能給出40KHz的方波,可以由硬件電路振蕩產(chǎn)生,也可以用軟件產(chǎn)生 61、,本設計中采用軟件產(chǎn)生的方式。將*個I/O口置成1后執(zhí)行12個空指令,再將這個I/O口置成0后執(zhí)行9個空指令,加上循環(huán)構(gòu)造需要兩個時鐘周期正好是25個時鐘周期,采用12MHZ的晶振對應25微秒。每次發(fā)10個周期的超聲波。
圖3.13 超聲發(fā)射電路
由于本設計中超聲探測的距離不需要太遠,所以可以用單片機的P0口*一位接220Ω的上拉電阻后直接來驅(qū)動超聲發(fā)射傳感器。
超聲發(fā)射電路如圖3.13所示:
本設計中共有兩路超聲波傳感器,一路探測前方是否有障礙,一路探測前方是否有障礙。為了工作時互不干擾,采取分時工作的方式。
超聲接收電路
超聲接收電路如圖3.14所示:
前后兩個超聲波接收傳 62、感器共用一個接收電路,因為前后兩路是分時工作的,所以并不會引起混淆。
在接收回波時要注意一點,應該消除超聲發(fā)射和接收傳感器之間的直接耦合,這可以在每次發(fā)射完一個超聲波束后設置一個時間門的方法來消除。
開中斷
有回波.
關中斷
發(fā)射超聲波束
延時0.5毫秒
開中斷
超時.
發(fā)送“有障礙〞消息
發(fā)送“無障礙〞消息
返回
Y
N
Y
N
圖3.15 超聲探測流程圖
圖3.14 超聲接收電路
超聲測距任務的軟件設計
超聲測距任務放在從單片機上,由兩個任務組成:前超聲測距任務和后超聲測距任務。分別由從單片機的定時器0中斷處理函數(shù)每隔64毫秒調(diào)用一次,且前后超聲測距 63、任務的調(diào)用之間相差32毫秒。
以前超聲測距任務為例,其軟件流程圖如圖3.15所示:
當探測到前〔后〕方有障礙時從單片機就通過串口通信報告主單片機前(后)方有障礙。主單片機再采取相應措施。
本模塊將障礙檢測的距離限定在30厘米以,因為太遠的地方有無障礙意義不大。
3.8 光源方向探測模塊的設計
該模塊由一個步進電機帶動的轉(zhuǎn)動機構(gòu)、感光電阻和一個亮度檢測電路組成。
旋轉(zhuǎn)機構(gòu)設計
旋轉(zhuǎn)機構(gòu)由一個步進電機帶動,該電機和前輪轉(zhuǎn)向電機一樣,驅(qū)動程序也差不多,因此本節(jié)對其驅(qū)動程序?qū)⒉蛔鲞^多介紹。
圖3.16 旋轉(zhuǎn)機構(gòu)構(gòu)造圖
旋轉(zhuǎn)機構(gòu)如圖3.16所示:
步進電機通過螺桿和齒輪咬合,螺桿轉(zhuǎn) 64、過一圈,齒輪轉(zhuǎn)過一個齒距,齒輪一周共有26個齒,所以齒輪和螺桿的轉(zhuǎn)速比是1:26。步進電機最小可轉(zhuǎn)過1/20圈,所以齒輪帶動的轉(zhuǎn)動機構(gòu)最小可轉(zhuǎn)1/520圈,即大約0.7度,這個精度在本設計中是能夠滿足要求的。
旋轉(zhuǎn)機構(gòu)的上方是一個正方體的殼體,只有一個端面可以照射進光使處于另一個端面的感光電阻阻值發(fā)生變化,由檢測電路檢測阻值的大小就能得到這個方向光的亮度。旋轉(zhuǎn)一周,測出各個方向光的亮度就能得到光源所處的方向。
亮度檢測電路的選型與設計
亮度檢測電路是通過檢測感光電阻阻值的大小來間接的得到該方向光照的強度。而對于阻值的檢測,一般要將阻值轉(zhuǎn)換成另外一種物理量,如電壓、電流、頻率等。
方案 65、一,可以將阻值轉(zhuǎn)換成電壓,然后用A/D變換器把電壓轉(zhuǎn)換成數(shù)字量,進而得到亮度值。但這種方案需要A/D變換器,并且和單片機相連需要較多的口線。
方案二,用555芯片搭成一個振蕩電路,并且將感光電阻接入振蕩回路控制振蕩頻率,然后用軟件檢測一段時間脈沖的個數(shù)就可以得到頻率,進而得到亮度值。這種方案和第一種方案相比,電路簡單、本錢降低、占用單片機口線減少,具有明顯的優(yōu)點。但是精度較差,假設想提高檢測精度,就需要延長檢測的時間或是提高555振蕩的頻率,振蕩頻率的提高,感光電阻連接線的分布參數(shù)影響將增大。
圖3.17 亮度檢測電路
方案三,針對方案二存在的問題,將電路作一些改動。將原來測單位時間脈沖 66、個數(shù)的方式變成只測一個脈沖寬度的方式。此時555振蕩器振蕩頻率可以大大降低,因此感光電阻可以直接接入振蕩回路。每個脈沖的寬度由感光電阻的阻值決定,調(diào)整在幾十微秒到幾百微秒之間。
方案三的原理如圖3.17所示,其中R表示感光電阻,在幾KΩ到幾百KΩ之間。為了增大亮度檢測的圍,在R上并聯(lián)一個30KΩ左右的電阻,相當于對R的阻值進展了壓縮。壓縮后輸出脈沖的寬度和感光電阻阻值的對數(shù)近似成正比。輸出為低電平期間,C通過R1放電,放電時間T1=R1C㏑2;輸出高電平期間,C充電,充電時間為T2=〔R//〔R2+R3〕+R1〕C㏑2。為了讓輸出低電平寬度為10微秒左右,高電平隨光照亮度而變,在幾十到幾百微秒,所以可以?。篟1=1KΩ,R=20KΩ固定電阻,R3=20KΩ可變電阻,C=10nF.
尋找光源方向任務的軟件設計
關中斷
定時器1初始化
等到低電平
啟動定時器
等到高電平
等到低電平
停頓計時
計算亮度
開中斷
返回亮度值
圖3.18 亮度檢測程序流程圖
尋找光源任務是從單片機上的主任務。主要功能是在接收到主單片機發(fā)出的“開場尋找光源〞命令后找到光源目前的方向,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當頭廉字入心爭當公安隊伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅守廉潔底線
- 2025做擔當時代大任的中國青年PPT青年思想教育微黨課
- 2025新年工作部署會圍繞六個干字提要求
- XX地區(qū)中小學期末考試經(jīng)驗總結(jié)(認真復習輕松應考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展營造風清氣正的環(huán)境
- 冬季消防安全知識培訓冬季用電防火安全
- 2025加強政治引領(政治引領是現(xiàn)代政黨的重要功能)
- 主播直播培訓直播技巧與方法
- 2025六廉六進持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領鄉(xiāng)村振興工作總結(jié)
- XX中小學期末考試經(jīng)驗總結(jié)(認真復習輕松應考)
- 幼兒園期末家長會長長的路慢慢地走