版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于51單片機(jī)無線遙控智能環(huán)境監(jiān)測車摘要:我們制作無線遙控智能環(huán)境監(jiān)測車,用于火場和救援人員無法進(jìn)入的環(huán)境中進(jìn)行探測,能夠及時(shí)的將內(nèi)部信息傳遞給救援人員,以便及時(shí)的做出營救方案,能夠?yàn)闉榫仍?jié)省時(shí)間。整機(jī)分為兩部分,第一部分為控制顯示部分,主要是現(xiàn)實(shí)無線遙控小車的行駛和接收車子發(fā)送的溫度和顯示環(huán)境中的一些基本情況,第二部分為檢測部分,主要設(shè)在小車上,小車進(jìn)入后,檢測到溫度后,通過射頻模塊無線發(fā)送,發(fā)射距離大于200米。并且車子上裝有全方位攝像頭,外部人員可以通過攝像頭觀察到內(nèi)部的基本情況。 本設(shè)計(jì)主要?jiǎng)?chuàng)新點(diǎn)在于成本低,功耗小,操作方便,體型小巧,攜帶方便,對于出現(xiàn)災(zāi)害人暫時(shí)無法進(jìn)入的環(huán)境中有明
2、顯作用。關(guān)鍵詞:單片機(jī);射頻模塊;溫度顯示;攝像頭;無線遙控;救難;目錄摘要1目錄2一、概述41.1課題的背景意義41.2無線遙控智能環(huán)境監(jiān)測車的整體結(jié)構(gòu)介紹4二、主芯片控制模塊62.1控制模塊的方案選擇62.2 AT89S52單片機(jī)6三、控制顯示電路電路設(shè)計(jì)93.1顯示電路93.1.1 方案比較選擇93.1.2 顯示電路的具體設(shè)計(jì)及優(yōu)化103.1.3 LCD1602基本原理103.2 電機(jī)驅(qū)動(dòng)控制電路133.2.1 鍵盤電路原理133.2.2 電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)及使用方法14四、無線發(fā)送接收電路設(shè)計(jì)154.1 無線發(fā)送接收模塊選擇154.2射頻收發(fā)器nRF905164.2.1 nRF905內(nèi)
3、部寄存器及應(yīng)用電路164.2.2 nRF90運(yùn)行過程17五、溫度傳感電路設(shè)計(jì)185.1溫度傳感的選擇185.2 DS18B20工作原理和電路設(shè)計(jì)19六、攝像頭顯示23七、其它硬件控制電路設(shè)計(jì)247.1 電源電路24八、結(jié)論25參考文獻(xiàn)26致謝.27附錄2851單片機(jī)無線遙控智能環(huán)境監(jiān)測車一、概述1.1課題的背景意義隨著生產(chǎn)自動(dòng)化的發(fā)展,機(jī)器人已經(jīng)越來越廣泛地應(yīng)用到生產(chǎn)自動(dòng)化上,隨著科學(xué)技術(shù)的發(fā)展,機(jī)器人的感覺傳感器種類越來越多,其中視覺傳感器成為自動(dòng)行走和駕駛的重要部件。視覺的典型應(yīng)用領(lǐng)域?yàn)樽灾魇街悄軐?dǎo)航系統(tǒng),對于視覺的各種技術(shù)而言圖像處理技術(shù)已相當(dāng)發(fā)達(dá),而基于圖像的理解技術(shù)還很落后,機(jī)器視覺
4、需要通過大量的運(yùn)算也只能識別一些結(jié)構(gòu)化環(huán)境簡單的目標(biāo)。本設(shè)計(jì)采用的有線攝像頭監(jiān)控,機(jī)器車可以很好的在預(yù)定環(huán)境中進(jìn)行檢測,并且可以了解內(nèi)部環(huán)境,以便控制機(jī)器車執(zhí)行一步步的任務(wù)智能救援小車實(shí)現(xiàn)無線遙控尋跡功能、溫度檢測和無線收發(fā)功能,這對一些檢測人類無法進(jìn)入的環(huán)境中有很大的作用。1.2無線遙控智能環(huán)境監(jiān)測車的整體結(jié)構(gòu)介紹顯示控制硬件部分:顯示控制部分,采用51單片機(jī)作為系統(tǒng)的控制中心,進(jìn)行數(shù)學(xué)運(yùn)算、對無線發(fā)送接收模塊送來的信號進(jìn)行處理,通過LCD顯示實(shí)時(shí)溫度、并且在外接電腦上顯示攝像頭傳來的內(nèi)部情況、鍵盤控制、無線發(fā)送接收模塊。圖一機(jī)器車硬件部分:機(jī)器車硬件部分,采用51單片機(jī)作為系統(tǒng)的控制中心,
5、進(jìn)行數(shù)學(xué)運(yùn)算、對溫度傳感器和無線發(fā)送接收模塊送來的信號進(jìn)行處理,接收到操作人員的指令,驅(qū)動(dòng)機(jī)器車運(yùn)動(dòng)到指定地點(diǎn),測量實(shí)時(shí)溫度、無線發(fā)送接收模塊發(fā)送給顯示器。 圖二二、主芯片控制模塊2.1控制模塊的方案選擇方案一:采用Atmel公司推出的AVR新型單片機(jī)ATM8515作為系統(tǒng)控制器,ATM8515支持在線編程,無需任何外加編程器,內(nèi)部有32個(gè)8位通用工作寄存器,16個(gè)中斷源它是一款基于RISC精簡指令集架構(gòu)的新型系列的單片機(jī),避免了傳統(tǒng)的基于累加器和存儲(chǔ)器之間的數(shù)據(jù)傳輸帶來的瓶頸效應(yīng),雖有以上優(yōu)點(diǎn),但由于我們掌握不熟練。方案二:采用AT89s52單片機(jī)進(jìn)行控制。本設(shè)計(jì)需要使用的軟件資源比較多,需
6、完成傳感器信息處理、鍵盤輸入、輸出控制、無線發(fā)射等功能。采用AT89s52進(jìn)行控制比較方便,對于實(shí)現(xiàn)本系統(tǒng)的的基本要求外,還可以擴(kuò)展更寬廣的功能?;谝陨戏治?,結(jié)合實(shí)際情況,我們對AVR單片機(jī)的控制不太熟悉,因此:設(shè)計(jì)中選擇方案二AT89s52的單片機(jī)控制,完成系統(tǒng)控制。2.2 AT89S52單片機(jī)At89s52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口, 片
7、內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash AT89S52 P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏 輯電平。對P0端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0不具有內(nèi)部上拉電阻。 在fla
8、sh編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn) 時(shí),需要外部上拉電阻。 P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 引腳號第二功能 P1.0 T2(定時(shí)
9、器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出 P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7 SCK(在系統(tǒng)編程用) P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR) 時(shí),P2 口送出高八位地址。在這種
10、應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX RI)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號。 端口引腳 第二功能
11、 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INTO(外中斷0) P3.3 INT1(外中斷1) P3.4 TO(定時(shí)/計(jì)數(shù)器0) P3.5 T1(定時(shí)/計(jì)數(shù)器1) P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通) P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) 此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號。 RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 ALE/PROG當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號
12、,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。 對FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。 如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。 PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號,當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PS
13、EN信號。 EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。 FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。三、控制顯示電路電路設(shè)計(jì)3.1顯示電路 方案比較選擇方案一 :采用LED數(shù)碼顯示,用動(dòng)態(tài)掃描的方式點(diǎn)亮,LED數(shù)碼顯示工作電流較小易于驅(qū)動(dòng),但LED數(shù)碼顯示顯示位數(shù)少,占用資源較多且只能在一個(gè)界面上顯示一組數(shù)據(jù),無法實(shí)現(xiàn)溫度
14、顯示與設(shè)置同時(shí)進(jìn)行,而且技術(shù)含量不太高,故本次設(shè)計(jì)未采用這種顯示方法顯示。方案二 :采用LCD液晶顯示器,LCD有明顯的優(yōu)點(diǎn):微功耗、尺寸小,超薄輕巧、顯示信息量大、字跡清晰、美觀、視覺舒適,人機(jī)交換界面簡單,可以用LCD液晶進(jìn)行菜單顯示,使整個(gè)控制系統(tǒng)更加人性化。 顯示電路的具體設(shè)計(jì)及優(yōu)化無線接收系統(tǒng)采用LCD1602與單片機(jī)連接,控制 LCD的字符顯示,其電路接口圖如附圖3所示。8位數(shù)據(jù)線分別連接到51單片機(jī)的P0口,并且利用I/O口的P2.0P2.2作為LCD的控制線。 LCD1602基本原理1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表編號符號引腳說
15、明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地時(shí)對比度最高,對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R
16、/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號,當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極?;静僮鲿r(shí)序表讀寫操作時(shí)序如圖所示讀操作時(shí)序
17、0; 寫操作時(shí)序讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無3.2 電機(jī)驅(qū)動(dòng)控制電路3.2.1 鍵盤電路原理根據(jù)需求,本系統(tǒng)設(shè)計(jì)使用了標(biāo)準(zhǔn)的3×3鍵盤,圖所示。圖中s7,s2,s6為3×3鍵盤的列信號,s7,s4,s9為3×3鍵盤的行信號。在本系統(tǒng)中,用P1.3P1.5連接鍵盤的列信號s7,s4,s
18、9;用P1.0P1.2連接鍵盤的行信號s7,s2,s6。采用低電平逐行掃描的方式,判斷按鍵的狀態(tài)。3.2.2 電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)及使用方法L298N是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路,是一種二組和四相電機(jī)的專用驅(qū)動(dòng)器,即內(nèi)含兩個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號,可驅(qū)動(dòng)46V,2A以下的電機(jī),其引腳排列如下圖所示OUT1、OUT2和OUT3、OUT4之間分別接了2個(gè)電動(dòng)機(jī)。IN1、IN2、IN3、IN4引腳從單片機(jī)接輸入控制電平,控制電機(jī)的正反轉(zhuǎn),ENA、 ENB接控制使能端,控制電機(jī)的停轉(zhuǎn)。L298的邏輯功能表如下所示:本設(shè)計(jì)通過控制面板的按鍵,來控制機(jī)
19、器車實(shí)行相應(yīng)的動(dòng)作。S2、S3、S4、S5分別代表上下左右走,S6、S7分別代表右轉(zhuǎn)左轉(zhuǎn)45°。S8、S9分別代表右后轉(zhuǎn)和左后轉(zhuǎn)135°。本設(shè)計(jì)具有操作簡單,整個(gè)控制系統(tǒng)人性化。四、無線發(fā)送接收電路設(shè)計(jì)4.1 無線發(fā)送接收模塊選擇設(shè)計(jì)初期,無線傳輸模塊主要考慮兩個(gè)方案:方案一:利用PTR2000無線數(shù)傳模塊,它是一種超小型、低工耗、高速率的無線收發(fā)數(shù)傳模塊。PTR2000的通信速率最高為20kbit/s,具有接收發(fā)射合一、體積小、外圍器件少等優(yōu)點(diǎn),可直接與MCU串口相接,也可以接計(jì)算機(jī)RS232接口,軟件編程非常方便。主要缺點(diǎn):收發(fā)距離較近,我們未采用此方案。方案二:采用單
20、片射頻收發(fā)器nRF905,其工作電壓為1.93.6V,32引腳QFN封裝(5×5mm),工作于433/868/915MHz三個(gè)ISM頻道,頻道之間的轉(zhuǎn)換時(shí)間小于650us。nRF905由頻率合成器、接收解調(diào)器、功率放大器、晶體振蕩器和調(diào)制器組成,不需外加聲表濾波器,使用SPI接口與微控制器通信,配置非常方便。此外,其功耗非常低,工作于接收模式時(shí)的電流為12.5mA,內(nèi)建空閑模式與關(guān)機(jī)模式,易于實(shí)現(xiàn)節(jié)能。綜上所述,本設(shè)計(jì)采用方案二,經(jīng)過多次調(diào)試,完成溫度的遠(yuǎn)距離無線傳輸,發(fā)射接收距離大于200米。4.2射頻收發(fā)器nRF905 nRF905內(nèi)部寄存器及應(yīng)用電路射頻配置射頻寄存器的各位的長
21、度是固定的。然而,在ShockBurstTM收發(fā)過程中,TX_PAYLOAD、RX_PAYLOAD、 TX_ADDRESS和RX_ADDRESS 4個(gè)寄存器使用字節(jié)數(shù)由配置字決定。nRF905進(jìn)入關(guān)機(jī)模式或空閑模式時(shí),寄存器中的內(nèi)容保持不變。應(yīng)用電路nRF905在使用中,根據(jù)不同需要,其電路圖不盡相同,圖2所示為典型的應(yīng)用原理圖,該電路天線部分使用的是50單端天線。 nRF90運(yùn)行過程收發(fā)端程序流程圖:單片機(jī)串口對無線收發(fā)模塊收發(fā)狀態(tài)轉(zhuǎn)換的控制,可通過設(shè)置控件的屬性來實(shí)現(xiàn)。圖4-3為發(fā)送端程序流程圖,圖4-4為接收端程序流程圖。外部中斷二 外部中斷一 外部中斷三 初始化單片機(jī)開外部中斷FLAG
22、=1?中斷到齊?是否讀取發(fā)送數(shù)據(jù)發(fā) 送FLAG=1FLAG=0圖4-3 發(fā)送端的程序流程圖串口初始化等待控制命令數(shù)據(jù)編碼CRC校驗(yàn)打開串口發(fā)送數(shù)據(jù)有數(shù)據(jù)返回?否是返回正確信息否是圖4-4 接收端程序流程圖五、溫度傳感電路設(shè)計(jì)5.1溫度傳感的選擇方案一:采用AD590作為溫度傳感器,把變化的溫度信號轉(zhuǎn)換為變化微弱的電壓信號,微弱的電壓信號經(jīng)放大器放大后轉(zhuǎn)換為變化較大的電壓信號,再經(jīng)A/D轉(zhuǎn)換后得到二進(jìn)制數(shù)再送給單片機(jī)處理得到我們所需要的溫度值,用此方法程序結(jié)構(gòu)簡單處理速度教快,但該方法所需要的硬件電路非常多,溫度誤差較大,無法達(dá)到本題目的要求,故沒選取此方法。方案二:采用DS18B20作為溫度傳
23、感器,DS18B20為一線總線型溫度傳感器可程序設(shè)定9-12位的分辨率,精確度為0.5度,可選取跟小的封裝方式,更寬的電壓適應(yīng)范圍,用戶設(shè)定的報(bào)警溫度存儲(chǔ)在EEPROM中,掉電后依然保存。測溫范圍可達(dá)-55125攝氏度,支持一根線上掛多個(gè)DS18B20實(shí)現(xiàn)多點(diǎn)溫度顯示,采用DS18B20完全超出了設(shè)計(jì)要求。綜合上述兩種方案本設(shè)計(jì)選擇了方案二種溫度采樣方式。5.2 DS18B20工作原理和電路設(shè)計(jì)DS18B20工作原理 DS18B20的讀寫時(shí)序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s 減為750ms。 DS18B20測溫原理如下圖所示。
24、圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在55所對應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對 低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即 為所測溫度。圖3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。高速暫存存儲(chǔ)器
25、高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配下表所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在 高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。對應(yīng)的溫度計(jì)算: 當(dāng)符號位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。DS18B20暫存寄存器分布 寄存器內(nèi)容 字節(jié)地址溫度值低位 (LS Byte)0溫度值高位 (MS Byte)1高溫限值(TH)2低溫限值(TL)3配置寄存器4保留5保留6保留7CRC校驗(yàn)值8根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每
26、一次讀寫之前都要對DS18B20進(jìn)行 復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后 釋放,當(dāng)DS18B20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。 ROM指令表 指 令 約定代碼功 能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址) 符合 ROM 55H發(fā)出此命令之后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上與該編碼相對應(yīng)的 DS1820 使之作出響應(yīng),為下一步對該 DS1820 的讀寫作準(zhǔn)備。 搜索 ROM 0
27、FOH用于確定掛接在同一總線上 DS1820 的個(gè)數(shù)和識別 64 位 ROM 地址。為操作各器件作好準(zhǔn)備。 跳過 ROM 0CCH忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。適用于單片工作。 告警搜索命令 0ECH執(zhí)行后只有溫度超過設(shè)定值上限或下限的片子才做出響應(yīng)。 RAM指令表 指 令 約定代碼功 能溫度變換44H啟動(dòng)DS1820進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長為750ms(9位為93.75ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中。 讀暫存器 0BEH 讀內(nèi)部RAM中9字節(jié)的內(nèi)容 寫暫存器 4EH 發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字
28、節(jié)的數(shù)據(jù)。 復(fù)制暫存器 48H 將RAM中第3 、4字節(jié)的內(nèi)容復(fù)制到EEPROM中。 重調(diào) EEPROM 0B8H 將EEPROM中內(nèi)容恢復(fù)到RAM中的第3 、4字節(jié)。 讀供電方式 0B4H 讀DS1820的供電模式。寄生供電時(shí)DS1820發(fā)送“ 0 ”,外接電源供電 DS1820發(fā)送“ 1 ”。 DS18B20的工作嚴(yán)格遵守單總線器件的通信協(xié)議,以保證數(shù)據(jù)的完整性。單總線協(xié)議定義了復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0和讀1等幾種類型的信號,所有的單總線命令序列都是由這些基本的信號類型組成。在這些信號中,除了應(yīng)答脈沖外,其他均由主機(jī)發(fā)出同步信號,并且發(fā)送的所有命令和數(shù)據(jù)都是字節(jié)的低位在前。在本
29、設(shè)計(jì)中,總線上只有一個(gè)溫度傳感器,轉(zhuǎn)換精度為12位。讀溫度的流程如圖5-2所示。復(fù)位發(fā)跳過ROM命令發(fā)跳過ROM命令發(fā)讀存儲(chǔ)器命令發(fā)溫度轉(zhuǎn)換命令連續(xù)讀字節(jié)溫度值延時(shí)復(fù)位復(fù)位圖5-2 讀溫度流程六、攝像頭顯示小車前端固定有防水全方位攝像頭,圖像信號可通過連接線傳至外部筆記本,方便外部人員根據(jù)內(nèi)部情況進(jìn)行操作。七、其它硬件控制電路設(shè)計(jì)7.1 電源電路電源電路采用交流220V轉(zhuǎn)12V、5V直流,特殊情況下,還可以使用外接電源以便碰到緊急情況下使用。八、結(jié)論本設(shè)計(jì)主要用到了單片機(jī)的通用IO口的讀寫,定時(shí)器,中斷等基本功能,通過實(shí)際操作進(jìn)一步掌握了51單片機(jī)的使用。同時(shí),通過單片機(jī)外圍電路的設(shè)計(jì),更深入
30、學(xué)習(xí)了51單片機(jī)在嵌入式系統(tǒng)中的應(yīng)用。通過實(shí)際焊接電路,編寫程序,也進(jìn)一步提高了我的動(dòng)手能力以及分析解決錯(cuò)誤的能力,是我能夠更好的將所學(xué)知識應(yīng)用到實(shí)際中來。本系統(tǒng)能夠基本滿足設(shè)計(jì)要求,能夠較平穩(wěn)的控制小車行駛,但由于經(jīng)驗(yàn)?zāi)芰τ邢蓿撓到y(tǒng)還存在著許多不盡人意的地方有待于進(jìn)一步的完善與改進(jìn)。參考文獻(xiàn)1袁杰,張偉豪等. 單片機(jī)原理及接口技術(shù). 上海交通大學(xué)出版社,2007. 8.2劉潤華,劉立山. 模擬電子技術(shù). 石油大學(xué)出版社,2003. 250-254.3 樓然苗,李光飛,單片機(jī)課程設(shè)計(jì)指導(dǎo),北京航空航天大學(xué)出版社,2007.74 段穎,楊幫文 實(shí)用電池充電器與保護(hù)器電路集錦, 電子工業(yè)出版社,
31、2001,45 譚暉,nRF無線SOC單片機(jī)原理與高級應(yīng)用(無線單片機(jī)技術(shù)叢書),北京航空航天大學(xué)出版社6 劉同法,單片機(jī)基礎(chǔ)與最小系統(tǒng),北京航空航天大學(xué)出版社,2007.6附錄機(jī)器車部分:控制器部分:源程序:無線控制發(fā)送#include <reg52.h>#include <ABSACC.h>#include <intrins.h>#include <stdio.h>#define uint unsigned int#define uchar unsigned charvoid Delay1(unsigned int num);#define
32、BYTE_BIT00x01#define BYTE_BIT10x02#define BYTE_BIT20x04#define BYTE_BIT30x08#define BYTE_BIT40x10#define BYTE_BIT50x20#define BYTE_BIT60x40#define BYTE_BIT70x80/SPI指令#define WC0x00#define RC0x10#define WTP0x20#define RTP0x21#define WTA0x22#define RTA0x23#define RRP0x24bdata unsigned char DATA_BUF;#d
33、efine DATA7(DATA_BUF&BYTE_BIT7) != 0)#define DATA0 (DATA_BUF&BYTE_BIT0) != 0)sbitflag=DATA_BUF7;sbitflag1=DATA_BUF0;uchar TxRxBuf4=0x00,0x00,0x00,0x00;/配置口定義/sbit TXEN = P23; sbit TRX_CE = P33;sbit PWR = P24;/SPI口定義/sbit MISO = P35;sbit MOSI = P27;sbit SCK = P34;sbit CSN = P30;sbit AM=P21;/狀
34、態(tài)輸出口/sbit DR = P26;sbit CD = P25;/void delay1(uint i);/RF寄存器配置/-NRF905寄存器配置- unsigned char idata RFConf11= 0x00, /配置命令/ 0x9f, 0x0c, 0x44,0x01,0x01, 0xe7,0xe7,0xe7,0xe7, 0x58, /CRC充許,8位CRC校驗(yàn),外部時(shí)鐘信號不使能,16M晶振 ; code TxAddress4=0xe7,0xe7,0xe7,0xe7;/延時(shí)/static void delay(uchar a) uint b,c; for(b=a;b>0;
35、b-) for(c=120;c>0;c-);void SpiWrite(unsigned char send)unsigned char i;DATA_BUF=send;for (i=0;i<8;i+)if (DATA7)/總是發(fā)送最高位MOSI=1;elseMOSI=0;SCK=1;DATA_BUF=DATA_BUF<<1;SCK=0;/初始化nRF905/void nRF905Init(void) CSN=1;/ Spi disableSCK=0;/ Spi clock line init lowDR=0;/ Init DR for inputAM=0;/ Init
36、 AM for inputCD=0;/ Init CD for inputPWR=1;/ nRF905 power onTRX_CE=0;/ Set nRF905 in standby modeTXEN=0;/ set radio in Rx mode/初始化寄存器void Config905(void)uchar i;CSN=0;/ Spi enable for write a spi command/SpiWrite(WC);/ Write config command寫放配置命令for (i=0;i<11;i+)/ Write configration words 寫放配置字 Sp
37、iWrite(RFConfi);CSN=1;/ Disable Spi/發(fā)送數(shù)據(jù)void TxPacket(uchar *TxRxBuf) uchar i;/Config905();CSN=0;SpiWrite(WTP);/ Write payload commandfor (i=0;i<1;i+)SpiWrite(TxRxBufi);/ Write 32 bytes Tx data/ Spi enable for write a spi commandCSN=1;delay(1);/ Spi disableCSN=0;/ Spi enable for write a spi comma
38、ndSpiWrite(WTA);/ Write address commandfor (i=0;i<4;i+)/ Write 4 bytes addressSpiWrite(TxAddressi);CSN=1;/ Spi disableTRX_CE=1;/ Set TRX_CE high,start Tx data transmissiondelay(1);/ while (DR!=1);TRX_CE=0;/ Set TRX_CE low/void SetTxMode(void)TRX_CE=0;TXEN=1;delay(1); / delay1 for mode change(>
39、=650us)void TX(void) SetTxMode();/ Set nRF905 in Tx mode/ SetRF_PA_PWR(unsigned char i);/設(shè)置發(fā)射功率void Delay1(unsigned int num) while( -num ) ; uchar keyscan()uchar temp,a; while(1) P1=0xdf; temp=P1; temp=temp&&0x0f; if(temp!=0x0f) delay(10); if(temp!=0x07) temp=P1; switch(temp) case 0xde:a=1;b
40、reak; case 0xdd:a=2;break; case 0xdb:a=3;break; P1=0xef; temp=P1; temp=temp&&0x07; if(temp!=0x0f) delay(10); if(temp!=0x0f) temp=P1; switch(temp) case 0xee:a=4;break; case 0xed:a=5;break; case 0xeb:a=6;break; P1=0x37; temp=P1; temp=temp&&0x07; if(temp!=0x07) delay(10); if(temp!=0x07)
41、 temp=P1; switch(temp) case 0x3e:a=7;break; case 0x3d:a=8;break; case 0x3b:a=9;break; return a; void main(void) uchar b; nRF905Init(); Config905();Delay1(500); while(1)b=keyscan();TxRxBuf0=b; TX();TxPacket(TxRxBuf);電機(jī)驅(qū)動(dòng)#include <reg52.h>#include <ABSACC.h>#include <intrins.h>#inclu
42、de <stdio.h>#include"motor.h"#define uint unsigned int /0 255#define uchar unsigned charuchar num;/#define BYTE_BIT00x01#define BYTE_BIT10x02#define BYTE_BIT20x04#define BYTE_BIT30x08#define BYTE_BIT40x10#define BYTE_BIT50x20#define BYTE_BIT60x40#define BYTE_BIT70x80/#define WC0x00#d
43、efine RC0x10#define WTP0x20#define RTP0x21#define WTA0x22#define RTA0x23#define RRP0x24bdata unsigned char DATA_BUF;#define DATA7(DATA_BUF&BYTE_BIT7) != 0)#define DATA0 (DATA_BUF&BYTE_BIT0) != 0)sbitflag=DATA_BUF7;sbitflag1=DATA_BUF0;#define TxRxBuf_Len 4unsigned char TxRxBufferTxRxBuf_Len;s
44、bit TXEN=P23;sbit TRX_CE=P33;sbit PWR=P24;/SPI口定義/sbit MISO=P35;sbit MOSI = P27;sbit SCK = P34;sbit CSN = P30;sbit AM = P33;/狀態(tài)輸出口/sbit DR = P26;sbit CD = P25;unsigned char idata RFConf11= 0x00, /配置命令/ 0x9f, 0x0c, 0x44, 0x01,0x01, 0xe7,0xe7,0xe7,0xe7, 0x58, /CRC充許,8位CRC校驗(yàn),外部時(shí)鐘信號不使能,16M晶振;bit lcdbit;
45、/80us延時(shí)/void Delay(uint a) uint b,c; for(b=a;b>0;b-) for(c=1;c>0;c-);void delay1(uint a) uint b,c; for(b=a;b>0;b-) for(c=110;c>0;c-);unsigned char SpiRead(void)unsigned char j;for (j=0;j<8;j+) DATA_BUF=DATA_BUF<<1;SCK=1;if (MISO)/讀取最高位,保存至最末尾,通過左移位完成整個(gè)字節(jié)DATA_BUF|=BYTE_BIT0;elseD
46、ATA_BUF&=BYTE_BIT0;SCK=0; return DATA_BUF;void SpiWrite(unsigned char send)unsigned char i;DATA_BUF=send;for (i=0;i<8;i+)if (DATA7)/總是發(fā)送最高位MOSI=1;elseMOSI=0;SCK=1;DATA_BUF=DATA_BUF<<1;SCK=0;/初始化nRF905/void nRF905Init(void) CSN=1;/ Spi disableSCK=0;/ Spi clock line init lowDR=0;/ Init DR
47、 for inputAM=0;/ Init AM for inputCD=0;/ Init CD for inputPWR=1;/ nRF905 power onTRX_CE=0;/ Set nRF905 in standby modeTXEN=0;/ set radio in Rx mode/初始化寄存器void Config905(void)uchar i;CSN=0;/ Spi enable for write a spi command/SpiWrite(WC);/ Write config command寫放配置命令for (i=0;i<11;i+)/ Write config
48、ration words 寫放配置字 SpiWrite(RFConfi);CSN=1;/ Disable Spivoid SetRxMode(void)TXEN=0;TRX_CE=1;Delay(10); / delay for mode change(>=650us)unsigned char CheckDR(void)/檢查是否有新數(shù)據(jù)傳入 Data Readyif (DR=1&&TRX_CE=1 && TXEN=0)return 1;elsereturn 0;void RxPacket(void)/讀數(shù)據(jù)uchar i; Delay(1);/ Set nRF905
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國沖孔圖案天花板數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年中國鋅合金三檔扣市場調(diào)查研究報(bào)告
- 2025年中國金屬化聚丙烯盒式電容器市場調(diào)查研究報(bào)告
- 二零二五年度大學(xué)生實(shí)習(xí)安全風(fēng)險(xiǎn)防控合作協(xié)議3篇
- 2025年中國旋片式機(jī)械真空泵市場調(diào)查研究報(bào)告
- 2025版土地使用權(quán)出讓居間合同(全產(chǎn)業(yè)鏈)3篇
- 2025年中國可調(diào)恒溫試管架市場調(diào)查研究報(bào)告
- 二零二五年度存量房買賣交易流程優(yōu)化合同4篇
- 2025至2031年中國柔性防水漆行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025-2030全球休閑類手機(jī)游戲行業(yè)調(diào)研及趨勢分析報(bào)告
- 2024年蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 人教版初中語文2022-2024年三年中考真題匯編-學(xué)生版-專題08 古詩詞名篇名句默寫
- 2024-2025學(xué)年人教版(2024)七年級(上)數(shù)學(xué)寒假作業(yè)(十二)
- 山西粵電能源有限公司招聘筆試沖刺題2025
- 醫(yī)療行業(yè)軟件系統(tǒng)應(yīng)急預(yù)案
- 使用錯(cuò)誤評估報(bào)告(可用性工程)模版
- 《精密板料矯平機(jī) 第2部分:技術(shù)規(guī)范》
- 2024光伏發(fā)電工程交流匯流箱技術(shù)規(guī)范
- 旅游活動(dòng)碳排放管理評價(jià)指標(biāo)體系構(gòu)建及實(shí)證研究
- 2022年全國職業(yè)院校技能大賽-電氣安裝與維修賽項(xiàng)規(guī)程
- 2024年黑龍江省政工師理論知識考試參考題庫(含答案)
評論
0/150
提交評論