基于單片機的WIFI智能小車設計
《基于單片機的WIFI智能小車設計》由會員分享,可在線閱讀,更多相關《基于單片機的WIFI智能小車設計(38頁珍藏版)》請在裝配圖網上搜索。
1、企業(yè)實踐報告 ( 2016-- 2017年度第1學期) 基于51單片機的WIFI遙控小車設計 專業(yè) 學生姓名 ** 班級 * 學號 *** 指導教師 完成日期 2016.12.* 目錄 第1章 緒論 1 第2章 方案論證及選擇 2 2.1 系統(tǒng)方案選擇 2 2.2 總體設計方案 3 2.2.1 整機系統(tǒng) 3 2.1.2 整機工作原理 3 第3章 硬件系統(tǒng)設計 5 3.1 路由器 5 3.2 ESP8266WIFI模塊 5 3.2.1 ESP8266WIFI模塊引腳功能 6 3.3
2、 STC89C52RC單片機 7 3.3.1 STC89C52RC單片機引腳功能 8 3.3.2 單片機的外圍電路 10 3.4 L293D電機驅動模塊 11 3.4.1 L293D引腳功能及原理圖 11 3.5 3.3V降/穩(wěn)壓模塊 13 3.5.1 降/穩(wěn)壓模塊的原理圖 13 3.6 5V和3.3V串口電平轉換模塊 14 3.6.1 引腳功能和原理圖 14 第4章 軟件系統(tǒng)設計 16 4.1 軟件開發(fā)環(huán)境 16 4.1.1 Android的APP軟件的開發(fā) 16 4.1.2 單片機程序開發(fā)環(huán)境 Keil 17 4.2 程序流程圖 17 4.2.1 主程序流程圖
3、17 4.2.2 串口中斷接收流程圖 19 4.2.3 串口發(fā)送指令流程圖 20 第5章 設備調試 22 5.1 系統(tǒng)調試 22 5.2 硬件設備調試 22 5.2.1 ESP8266串口WIFI的連線 23 5.2.2 STC89C52RC單片機連線 23 5.2.3 單片機和WIFI模塊的連線 24 5.3 軟件調試 24 5.3.1 WIFI模塊的調試 24 5.3.2 單片機的調試 26 5.3.3 單片機和WIFI模塊的調試 27 心得體會 28 總結 29 參考文獻 30 附錄1 單片機程序 31 2 第1章 緒論 現(xiàn)在是一個智
4、能化的時代,各種智能化的設備正在逐步代替人為的操作。隨著汽車工業(yè)的迅速發(fā)展,關于智能汽車的研究也越來越受人們關注。全國電子大賽和省內電子大賽幾乎每次都智能小車這方面的題目,全國各高校也都很重視該課題的研究。設計的WIFI智能小車能夠實現(xiàn)自動循跡,壁障功能,可程控行駛速度、電腦手機WIFI連接控制行駛及其他的控制方式。本系統(tǒng)能實現(xiàn)對小車的運動狀態(tài)進行實時控制。系統(tǒng)控制靈活、可靠、精度高、可滿足對系統(tǒng)的各項要求。本設計以STC89C52RC單片機為控制核心,利用ESP8266WIFI模塊和路由器接收和處理無線信號,然后通過WIFI模塊和單片機之間的串口通信來傳遞信息,從而完成手機控制單片機的運作。
5、通過對本小車的研究,我們可以初步構建智能汽車的模型和理論基礎。對于智能汽車的研究,國內外都有很大的成就,谷歌的無人駕駛汽車,已經能夠在高速公路上安全行駛數(shù)千里,在高速行駛下都能有這么好的操控能力,無非是智能汽車領域的一座里程碑。 在智能家居系統(tǒng)研發(fā)方面,美國及一些歐洲國家一致處于領先地位,今年來,以美國微軟公司及摩托羅拉公司等為首的一批國外知名企業(yè),先后躋身于智能家居系統(tǒng)的研發(fā)中。例如:微軟公司開發(fā)的“夢幻之家”、摩托羅拉公司開發(fā)的“居所之門”IBM公司開發(fā)的“家庭主任”等均已日趨成穩(wěn)定技術強占家居市場。此外,日韓等新國的龍頭企業(yè)紛紛致力于家居智能化的開發(fā),對家居市場更是躍躍欲試。 本設計
6、選用的89C52單片機屬于MSC-51系列單片機,由Intel公司開發(fā),其結構有8字節(jié)FLASH閃速存儲器,256字節(jié)內部RAM , 32個I/O口線,3個16 位定時/計數(shù)器,一個6向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89c52可降至O Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電上作模式??臻e方式停止CPU 的工作,但允許RAM,定時/計數(shù)器.串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM 中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。由于89C52的系統(tǒng)性能滿足系統(tǒng)數(shù)據采集及時間精度要求,而且產品產量豐富來源廣,應用也很成熟,故
7、用來作為控制核心。新一代單片機為外部提供了相當完善的總線結構,為系統(tǒng)的擴展與配置打下了良好的基礎。本設計主要研究內容就是基于89C52設計一部WIFI智能小車,小車能夠實現(xiàn)WIFI遙控的智能小車控制系統(tǒng)。 第2章 方案論證及選擇 2.1 系統(tǒng)方案選擇 方案1:自己首先學習相關知識,理解單片機智能小車的原理以及WIFI模塊指令等。動手設計出帶有WIFI模塊的單片機開發(fā)板,在配購好小車相關的材料后,組裝出小車模型。調試好WIFI模塊和單片機的硬件和軟件,然后用手機等終端設備通過路由器驅動WIFI小車的運動等一系列指令。具體的如圖2-1所示。 下圖是關于方案1設計版圖構想,如圖2-1所
8、示。 圖2-1 方案1設計圖 方案2:自己首先學習相關知識,理解單片機智能小車的原理以及單片機和WIFI之間的通信方式,了解WIFI模塊的相關指令,以及單片機的串口傳輸?shù)姆绞?。然后利用已經完成有的單片機小車,通過在單片機小車上添加一個WIFI模塊和相關模塊來進行改裝,然后自己通過設計編寫單片機和WIFI模塊之間串口通信的程序。利用這樣的方法來實現(xiàn)手機終端來通過路由器在無線傳輸?shù)姆绞綄纹瑱C進行控制,從而進一步的控制小車的運動等一系列指令。具體的如圖2-2所示。 下圖是關于方案2設計版圖構想,如圖2-2所示。 圖2-2 方案2設計圖 方案選擇:方案1和方案2涉及的相關知識大致相
9、同,兩種不同思路的選擇,所需要的材料也不同。介于我們對制作成本和材料考慮,我們小組選擇方案2,利用已有的單片機小車,對小車進行改裝,在小車上加個WIFI模塊等一系列設備,實現(xiàn)手機等終端設備通過無線信號控制小車的運動。選擇方案2,我們認為可以加強我們的動手能力,能夠充分的學習和利用相關的專業(yè)知識,達到綜合素質的提升。 2.2 總體設計方案 基于單片機的WIFI智能小車主要由路由器、ESP8266WIFI模塊、STC89C52RC單片機控制模塊、L293D電機驅動模塊、5V與3.3V串口電平轉換模塊和3.3V降/穩(wěn)壓模塊等主要結構組成,其中還有一些次要設備,比如蜂鳴器,LED燈和數(shù)碼管等。
10、 2.2.1 整機系統(tǒng) 下圖是整機系統(tǒng)圖,是WIFI模塊和單片機之間通信的整體圖,如圖2-3所示。 圖2-3 整機系統(tǒng)圖 項目系統(tǒng)包括路由器、ESP8266串口WIFI模塊、STC89C52RC單片機、電機驅動模塊、串口電平轉換模塊、5V電源、3.3v降/穩(wěn)壓模塊、電機驅動模塊組成。如圖2-3所示。 ESP8266串口WIFI模塊是用來接收到手機等上位機設備發(fā)送的控制指令信息和單片機通過串口通信傳來的AT指令信息來連接到路由器,然后創(chuàng)建多連接和SERVER模式,來實現(xiàn)手機和WIFI模塊之間的通信;STC89C52RC單片機最小系統(tǒng)是小車的核心系統(tǒng),用來控制和協(xié)調小車的運動;電機驅
11、動模塊用來驅動小車電機的運作;5V和3.3V串口電平轉換模塊是用來轉換單片機和WIFI模塊之間的信號電平,主要是適用于本模塊的工作電壓;電源電路用來提供單片機和WIFI模塊的外部電源;3.3v降/穩(wěn)壓模塊用來給WIFI模塊提供一個3.3v穩(wěn)定的工作電壓;蜂鳴器電路作用是用來給單片機一個提示音;電機作用就是讓小車的輪子轉動,來使小車動起來。 2.1.2 整機工作原理 基于單片機的WIFI智能小車是STC89C52RC單片機通過其串口對ESP8266WIFI模塊發(fā)送AT指令,使ESP8266WIFI模塊連接到路由器并且讓ESP8266WIFI模塊開啟多連接和SERVER模式,然后手機打開WL
12、AN連接路由器設備,打開制作好的APP軟件,通過路由器這個中轉站向ESP8266WIFI模塊發(fā)送控制指令,在ESP8266WIFI模塊接收到控制指令后,通過ESP8266WIFI模塊的串口和STC89C52RC單片機上的串口之間相互發(fā)送控制指令的數(shù)據流,單片機的串口在接收到從WIFI模塊傳來的控制指令的數(shù)據流,最終做出控制選擇,進而控制小車運動、指示燈的亮滅、蜂鳴器的開關和數(shù)碼管的顯示。如:小車運動,LED燈的亮滅,蜂鳴器的發(fā)聲等。 基于單片機的WIFI智能小車主要是利用手機作為上位機,而單片機作為下位機,通過WIFI模塊和路由器進行對無線信號的處理,然后通過串口傳送有線的信號,從而實現(xiàn)上位
13、機通過無線來控制下位機的運作,實現(xiàn)智能化和無線遙控等功能。 第3章 硬件系統(tǒng)設計 3.1 路由器 路由器(Router),(如圖3-1所示)是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前后順序發(fā)送信號。 路由器是互聯(lián)網絡的樞紐"交通警察"。目前路由器已經廣泛應用于各行各業(yè),各種不同檔次的產品已成為實現(xiàn)各種骨干網內部連接、骨干網間互聯(lián)和骨干網與互聯(lián)網互聯(lián)互通業(yè)務的主力軍。路由和交換機之間的主要區(qū)別就是交換機發(fā)生在OSI參考模型第二層(數(shù)據鏈路層),而路由發(fā)生在第三層,即網絡層。這一區(qū)別決定了路由和交換機在移動信息的過程中需使用不同的控制信
14、息,所以說兩者實現(xiàn)各自功能的方式是不同的。 路由器(Router),(如圖3-1所示)又稱網關設備(Gateway)是用于連接多個邏輯上分開的網絡,所謂邏輯網絡是代表一個單獨的網絡或者一個子網。當數(shù)據從一個子網傳輸?shù)搅硪粋€子網時,可通過路由器的路由功能來完成。因此,路由器具有判斷網絡地址和選擇IP路徑的功能,它能在多網絡互聯(lián)環(huán)境中,建立靈活的連接,可用完全不同的數(shù)據分組和介質訪問方法連接各種子網,路由器只接受源站或其他路由器的信息,屬網絡層的一種互聯(lián)設備。 下圖是路由器的設備圖,如圖3-1所示。 圖3-1 路由器 3.2 ESP8266WIFI模塊 本次設計用到ESP8266W
15、IFI模塊是用于連接到路由器,然后接收手機端發(fā)送的信號,對單片機進行控制。 WIFI模塊又名串口WIFI模塊,屬于物聯(lián)網傳輸層,功能是將串口或TTL電平轉為符合WIFI無線網絡通信標準的嵌入式模塊,內置無線網絡協(xié)議IEEE802.11b.g.n協(xié)議以及TCP/IP協(xié)議。傳統(tǒng)的硬件設備嵌入WIFI模塊可以直接利用WIFI聯(lián)入互聯(lián)網,是實現(xiàn)無線智能家居、M2M等物聯(lián)網應用的重要組成部分。 下圖是ESP8266WIFI模塊的正反面圖,如圖3-2,3-3所示。 圖3-2 ESP8266WIFI模塊正面圖 圖3-3 ESP8266WIFI模塊反面圖 ESP8266是一款超低
16、功耗的模塊,擁有業(yè)內極富競爭力的封裝尺寸和超低能耗技術,專為移動設備和互聯(lián)網的應用設計,可將用戶的物理設備連接到WIFI無線網絡上,進行互聯(lián)網或局域網通信,實現(xiàn)聯(lián)網功能。 ESP8266可廣泛應用于智能電網、智能交通、智能家具、手持設備、工業(yè)控制等領域。 3.2.1 ESP8266WIFI模塊引腳功能 下圖是ESP8266WIFI模塊的引腳圖,如圖3-4所示。 圖3-4 ESP8266WIFI模塊引腳圖 下表是ESP8266WIFI模塊引腳說明,如表2所示。 表2 ESP8266WIFI模塊引腳表 PIN Function Description 1 URX
17、D 1) UART_RXD,接收; 2) General Purpose Input/Output:GPIO3; 2 UTXD 1) UART_TXD,發(fā)送; 2)General Purpose Input/Output:GPIO1; 3)開機時禁止下拉; 3 RESET(GPIO 16) 外部Reset信號,低電平復位,高電平工作(默認高); 4 GND GND 5 VCC 3.3V,模塊供電; 6 GPIO0 1) 默認WIFI Status:WIFI工作狀態(tài)指示燈控制信號; 2) 工作模式選擇: 懸空:Flash Boot,工作模式;
18、 下拉:UART Download,下載模式; 7 CH_PD 1) 高電平工作; 2) 低電平模塊供電關掉; 8 GPIO2 1) 開機上電時必須為高電平,禁止硬件下拉; 2) 內部默認已拉高 3.3 STC89C52RC單片機 單片機(Microcontrollers)是一種集成電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領
19、域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發(fā)展到現(xiàn)在的300M的高速單片機。 STC89C52是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。STC89C52使用經典的MCS-51內核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、有效的解決方案。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O 口線,看門狗定時器,內置4KBEEPROM,MAX810復位電路,3個16位定時器/計數(shù)器,4
20、個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。 下圖是STC89C52RC單片機的實物圖,如圖3-5所示。 圖3-5 STC89C52RC單片機 3.3.1 STC89C52RC單片機引腳功能 下圖是STC89C52RC單片機的引腳功能圖,如圖3-6所示。
21、 圖3-6 STC89C52RC引腳圖 1、VCC(40引腳):電源電壓VSS(20引腳):接地P0端口(P0.0~P0.7,39~32引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅動8個TTL負載,對端口P0寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據存儲器時,P0口也可以提供低8位地址和8位數(shù)據的復用總線。此時,P0口內部上拉電阻有效。在Flash ROM編程時,P0端口接收指令字節(jié);而在校驗程序時,則輸出指令字節(jié)。 2、P1端口(P1.0~P1.7,1~8引腳):P1口是一個內部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅動(吸收或者
22、輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時,因為有內部上拉電阻, 那些被外部拉低的引腳會輸出一個電流。 此外,P1.0和P1.1還可以作為定時器/計數(shù)器2的外部技術輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體參見下表3所示: 表3 P1.0和P1.1引腳復用功能表 引腳號 功能特性 P1.0 T2(定時器/計數(shù)器2外部計數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器2捕獲/重裝觸發(fā)和方向控制) 3、P2端口(P2.0~P2.7,21~28引腳):
23、P2口是一個內部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電平,這時可用作輸入口。P2作為輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。 4、P3端口(P3.0~P3.7,10~17引腳):P3是一個內部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流。 P3口除作為一般I/O
24、口外,還有其他一些復用功能,如下表4所示: 表4 P3口引腳復用功能 引腳號 復用功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INT0(外部中斷0) P3.3 INT1(外部中斷1) P3.4 T0(定時器0的外部輸入) P3.5 T1(定時器1的外部輸入) P3.6 (外部數(shù)據存儲器、寫) P3.7 (外部數(shù)據存儲器、讀) 5、RST(9引腳):復位輸入。當輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機的復位初始化操作??撮T狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地
25、址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。 6、ALE/PROG(30引腳):地址鎖存控制信號(ALE)是訪問外部程序 存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳(PROG)也用作編程輸入脈沖。 7、PSEN(29 引腳):外部程序存儲器選通信號(PSEN)是外部 程序存儲器選通信號。當AT89C51RC 從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,PSEN而訪問外部數(shù)據存儲器時,將不被激活。 8、EA/VPP(31引腳):訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀
26、取指令,EA必須接GND。注意加密方式1時,EA將內部鎖定RESET。為了執(zhí)行內部程序指令,EA應該接VCC。 9、XTAL1(19引腳):振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。 10、XTAL2(18引腳):振蕩器反相放大器的輸入端。 3.3.2 單片機的外圍電路 1、基本復位電路 復位電路的基本功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。為可靠起見,電源穩(wěn)定后還要經一定的延時才撤銷復位信號,以防電源開關或電源插頭分-合過程中引起的抖動而影響復位。圖3-7所示的RC復位電路可以實現(xiàn)上述基本功能。 下圖是RC復位電路,如圖3-7所示。 圖3-7
27、RC復位電路 在電源上電的時候,等待一定的時間,等到電容兩端的電壓值相同時,單片機復位。還有一種方法就是按鍵復位,當SM按鍵按下之后RST端的電壓值瞬間和VCC相同,同樣也可以達到復位的效果,圖中的電容作用是充放電,電阻是為了保護電路而設置的。 2、時鐘電路 晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)后,再串聯(lián)一個電容的二端網絡,電工學上這個網絡有兩個諧振點,以頻率的高低,其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個頻率的距離相當?shù)慕咏?,在這個極窄的頻率范圍內,晶振等效為一個電感。所以,晶振的兩端并聯(lián)上合適的電容它就會組成并聯(lián)諧振電
28、路。 下圖是時鐘電路的電路圖,如圖3-8所示。 圖3-8 時鐘電路的電路圖 一般的晶振振蕩電路都是在一個反相放大器(注意是放大器不是反相器)的兩端接入晶振,再有兩個電容分別接到晶振的兩端,每個電容的另一端再接到地,這兩個電容串聯(lián)的容量值就應該等于負載電容,請注意一般IC的引腳都有等效輸入電容。 3.4 L293D電機驅動模塊 我們所使用的電機一般是直流電機,主要用到永磁直流電機、伺服電機及步進電機三種。直流電機的控制很簡單,性能出眾,直流電源也容易實現(xiàn)。 本次設計使用的是L293D(如圖3-8所示),L293D是一款單片集成的高電壓、高電流、4通道電機驅動,設計用于連接標準D
29、TL或TTL邏輯電平,驅動電感負載(諸如繼電線圈、DC和步進電機)和開關功率晶體管等等。 下圖是L293D電機驅動模塊在單片機作用下驅動電機運動圖,如圖3-9所示。 圖3-9 單片機驅動電機模塊圖 3.4.1 L293D引腳功能及原理圖 下圖是L293D芯片引腳圖,如圖3-10所示。 圖3-10 L293D芯片引腳圖 1、INPUT1:輸入電機1的引腳A。 2、INPUT2:輸入電機1的引腳B。 3、INPUT3:輸入電機2的引腳A。 4、INPUT4:輸入電機2的引腳B。 5、GND:電源地接口。 6、VSS:輸入電機驅動電壓接口。 7、OUTPUT1:輸出電
30、機1的引腳A。 8、OUTPUT2:輸出電機1的引腳B。 9、OUTPUT3:輸出電機2的引腳A。 10、OUTPUT4:輸出電機2的引腳B。 下圖是電機驅動模塊和單片機原理圖,如圖3-11所示。 圖3-11 電機驅動模塊和單片機原理圖 單片機的P0的8個端口在位定義之后對L293D電機模塊的4個INPUT寫入各不同的高低電平,經L293D芯片內部的轉換之后,在OUTPUT輸出4個相應的電平值,分別對應M1和M2的兩個電機A端和B端,從而控制電機M1和M2的正轉和反轉,進而實現(xiàn)小車的前進,后退,左轉和右轉等功能。 3.5 3.3V降/穩(wěn)壓模塊 降/穩(wěn)壓模塊是,通過降壓和
31、穩(wěn)壓的過程,給設備提供一個穩(wěn)定的工作環(huán)境,能夠提供不同的工作電壓設備在同一電源電壓下同時工作,應用于單片機上能添加不同工作電壓的電子設備。 下圖是降/穩(wěn)壓模塊圖,如圖3-12所示。 圖3-12 AMS111 7-3.3 3.3V降/穩(wěn)壓模塊 將單片機上的5V的電源轉換為3.3V的穩(wěn)壓電源,提供給正常工作電壓是3.3V的電子設備,實現(xiàn)給5V和3.3V電壓之間的轉換,提供了能和單片機同時工作且電壓值可以不同的電子設備。比如,ESP8266串口WIFI模塊。 下圖是單片機的VCC通過降/穩(wěn)壓模塊給WIFI模塊供電,如圖3-12所示。 圖3-12 降/穩(wěn)壓模塊給WIFI模塊供電圖
32、3.5.1 降/穩(wěn)壓模塊的原理圖 下圖是降/穩(wěn)壓模塊的原理圖,如圖3-13所示。 圖3-13 降/穩(wěn)壓模塊的原理圖 上圖所示,D1作用是防止電源反接。C01、C02是電源輸入濾波。VDD3.3是3.3V電源,供數(shù)字電路使用。 L1、L2是隔離濾波電感。VCC3.3是3.3V電源,供模擬電路使用。電源在通過AMS111 7-3.3 3.3V降/穩(wěn)壓電路,電源電壓由原來的5V降為3.3V,可以提供給正常工作在3.3V的設備使用。 3.6 5V和3.3V串口電平轉換模塊 數(shù)字電路,電平就是電位的高低,用0和1表示。在計算機或者其他微處理器內部只能識別0和1這兩個數(shù)字信號,不同的系統(tǒng)電
33、平表示的0和1實際的電位并不相同。例如,高電平常用3.3V,5V,12V,低電平常用0,當不同的系統(tǒng)進行連接通信控制時,就要進行電平轉換。打個比方,單片機的高電位為5v,而電腦的串口電平為12V,要實現(xiàn)電腦到單片機通信就必須將電腦的12V轉到單片機的5V,反之,5V轉到12V。 下圖是串口電平轉換模塊圖,如圖3-14所示。 圖3-14 5V和3.3V串口電平轉換模塊圖 本項目的單片機是STC89C52RC,其工作電壓是5V,而WIFI模塊的工作電壓是3.3V,由于兩者工作電壓不一致,導致了信號的電平也不一致。要想兩個設備之間能夠進行通信,就必須要對信號電平進行轉換,實現(xiàn)5V的電平和
34、3.3V的電平之間能夠通信,完成數(shù)據間的交換。 下圖是單片機和WIFI模塊通過串口電平轉換模塊進行通信的圖,如圖3-15所示。 圖3-15 單片機和WIFI模塊電平相互轉換圖 3.6.1 引腳功能和原理圖 下圖是串口電平轉換的引腳圖,如圖3-16所示。 圖3-16 串口電平轉換的引腳圖 1、5V和3.3V:由外電源接入5V和3.3V電源電壓。 2、GND:電源接地接口。 3、TXD:數(shù)據發(fā)送引腳。 4、RXD:數(shù)據接收引腳。 下圖是5V和3.3V串口電平轉換電路圖,如圖3-17所示。 圖3-17 5V和3.3V串口電平轉換電路圖 上圖的電路中,3.3V的信號
35、通過兩個三極管Q1,Q2的兩次放大,再配合上合適的電阻R1、R2、R3進行轉換,完成了3.3V到5V信號的變換。5V信號同樣通過相反的方式將信號變成了3.3V的輸出,從而可以實現(xiàn)了數(shù)據能夠在3.3V和5V之間的相互通信。 第4章 軟件系統(tǒng)設計 4.1 軟件開發(fā)環(huán)境 軟件開發(fā)環(huán)境的主要組成成分是軟件工具。人機界面是軟件開發(fā)環(huán)境與用戶之間的一個統(tǒng)一的交互式對話系統(tǒng),它是軟件開發(fā)環(huán)境的重要質量標志。存儲各種軟件工具加工所產生的軟件產品或半成品(如 軟件開發(fā)環(huán)境參考書 軟件開發(fā)環(huán)境參考書 源代碼、測試數(shù)據和各種文檔資料等)的軟件環(huán)境數(shù)據庫是軟件開發(fā)環(huán)境的核心。 4.1.1 Androi
36、d的APP軟件的開發(fā) Android開發(fā)需要用到Eclipse、ADT和SDK。三個組件整合開發(fā)。 1、Eclipse 是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括Java開發(fā)工具(Java Development Kit,JDK)。如圖15所示。 下圖是安卓開發(fā)環(huán)境界面,如圖4-1所示 圖4-1 安卓開發(fā)環(huán)境界面 2、ADT:目前Android開發(fā)所用的開發(fā)工具主要有Android Studio、Eclipse,在Eclipse編譯IDE環(huán)境中,安
37、裝ADT,為Android開發(fā)提供開發(fā)工具的升級或者變更,簡單理解為在Eclipse下開發(fā)工具的升級下載工具。 3、SDK:一般是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應用軟件的開發(fā)工具的集合。在Android中,它為開發(fā)者提供了庫文件以及其它開發(fā)所用到的工具。簡單理解為開發(fā)工具包集合,是整體開發(fā)中所用到的工具包。 4.1.2 單片機程序開發(fā)環(huán)境 Keil Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C
38、編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部分組合在一起。如圖4-2所示。 下圖是單片機開發(fā)環(huán)境界面,如圖4-2所示。 圖4-2 單片機開發(fā)環(huán)境界面 4.2 程序流程圖 4.2.1 主程序流程圖 系統(tǒng)主程序模塊主要完成對系統(tǒng)中各模塊電路的初始化等工作,主要包括對串口中斷、外部中斷的初始化,同時執(zhí)行電腦等終端設備所發(fā)送的命令,等待外部中段以及根據所需要的功能進行相應的操作。 下圖是主程序流程圖,如圖4-3所示。 圖4-3 主程序流程圖 單片機首先設置好串口初始化,比如設置好波特率。然后向W
39、IFI模塊發(fā)送AT指令,使WIFI模塊連接上路由器,并創(chuàng)建好服務連接。之后手機通過連接到路由器向WIFI模塊發(fā)送無線的控制指令,單片機在接收到WIFI模塊從串口傳來的數(shù)據后,馬上進入中斷函數(shù)來執(zhí)行接收數(shù)據的模式。接收到的控制指令存儲在寄存器中,單片機在寄存器中讀取接收到的控制指令,然后根據接收到命令的不同,執(zhí)行小車不同的動作。比如,小車前進、后退、左轉、右轉和停止等。 下圖是單片機對串口進行初始化的程序圖,如圖4-4所示。 圖4-4 串口初始化程序圖 由于WIFI模塊的波特率是115200,那么單片機為了要和WIFI模塊進行數(shù)據間的通信,就要把兩端的波特率設置成一致,這樣才能夠保證
40、雙方通信的正常進行。如上圖,首先給T1(TMOD)選擇工作模式,然后給TH1和TL1賦初始值,然后啟動T1和T2(TR2位) ,確定串口工作方式(編寫SCON寄存器)。 下圖是單片機在接收到信號后發(fā)送給電機模塊來驅動電機,從而使小車運動的程序圖,如圖4-5所示。 圖4-5 單片機驅使小車前進的程序圖 單片機在接收到WIFI模塊傳來的無線數(shù)據,通過switch語句來選擇小車的運動模式,上圖只選擇小車前進的簡單程序。小車的單片機在接到前進的信號時,就進入選擇小車運行的模式這個程序中,判斷接收到的信號和小車預先設置的值是否一致,若一致,則小車進入那種模式,直到等待下次接收到的數(shù)據再來判
41、斷。 4.2.2 串口中斷接收流程圖 通過串口中斷,實現(xiàn)單片機和路由器進行通訊。進入中斷后關掉中斷,避免數(shù)據信號的重復引起中斷。根據命令數(shù)據發(fā)送的規(guī)律,將命令解碼儲存在相應的二維數(shù)組中,方便主函數(shù)的調用。 下圖是串口中斷接收流程圖,如圖4-6所示。 圖4-6 串口中斷接收流程圖 上圖是串口中斷函數(shù),進入串口中斷函數(shù)之后,首先要把RI至0,因為在單片機的串口接收存儲數(shù)據后RI會自動的變成1,所以每次進入串口中斷的時候要把RI先至0。然后判斷RI是否為1,是用來判斷數(shù)據是否接收完畢,不是的話繼續(xù)接收,是的話就將數(shù)據存儲在單片機的存儲器中,等待單片機到存儲器中讀取接收到的數(shù)據,進一
42、步執(zhí)行單片機的控制動作。 下圖是通過串口中斷接收流程圖編寫的程序圖,如圖4-7所示。 圖4-7 串口中斷接收數(shù)據的程序圖 中斷接收函數(shù),首先要把RI置0,然后等待數(shù)據的傳輸。等待數(shù)據傳輸完畢后,RI會自動跳到1,判斷RI=1后,先把數(shù)據存儲在寄存器中,然后單片機對寄存器中的數(shù)據讀取后,判斷接收到的數(shù)據和預先設置的值是否一致,若一致,則進入小車運行的模式函數(shù)。 4.2.3 串口發(fā)送指令流程圖 單片機通過串口向WIFI模塊發(fā)送指令,控制WIFI模塊的模式,以便手機接入WIFI模塊。在發(fā)送指令時,要關閉串口中斷,避免在發(fā)送數(shù)據時串口中斷的產生,引起指令發(fā)送錯誤。在指令發(fā)送完畢后,打
43、開串口中斷,允許中斷函數(shù)對單片機作用。 下圖是串口發(fā)送指令流程圖,如圖4-8所示。 圖4-8 串口發(fā)送指令流程圖 上圖是串口發(fā)送指令的流程圖,在本項目中是單片機用來向WIFI模塊發(fā)送AT指令的。首先要關閉中斷源的允許位,目的是為了在發(fā)送數(shù)據的時候,不會因為中斷函數(shù)的請求而去執(zhí)行中斷函數(shù),避免了數(shù)據發(fā)送的錯誤。然后將TI至0,原因和前面所講的RI至0是一樣的。單片機為了發(fā)送數(shù)據,同樣的是單片機不能單獨的發(fā)送或者接收數(shù)據,在發(fā)送數(shù)據之前,都要把數(shù)據先存儲在寄存器中,在發(fā)送數(shù)據的時候,就在存儲器中進行讀取。判斷TI是否為1,是為了判斷傳輸是否完成,和前面所講的判斷RI是否為1是一樣的道理
44、。在傳輸完成之后要將TI至0,以便下次的傳輸數(shù)據。數(shù)據傳輸完成后,要打開中斷源的允許位,進行串口中斷接收WIFI模塊發(fā)送而來的數(shù)據。 下圖是根據串口中斷發(fā)送指令流程圖來編寫的程序,如圖4-9 圖4-9 串口中斷發(fā)送數(shù)據的程序圖 首先把串口中斷關閉,防止串口中斷引發(fā)數(shù)據間的干擾,然后將TI置0,將數(shù)據存入串口寄存器中,等待數(shù)據傳輸完畢,然后再將TI置0,隨后便打開串口中斷,便可進行串口中斷數(shù)據接收。 第5章 設備調試 5.1 系統(tǒng)調試 本智能小車是由ESP8266WIFI模塊和STC89C52RC單片機組成。設計思路是由WIFI模塊連到路由器,然后接收到手機終端發(fā)出的信號,通過
45、串口發(fā)送給單片機,單片機在接到控制信號后來控制電機的運轉。 具體步驟分為硬件設備調試和軟件調試兩個方面來進行。在硬件設備的連線完成后,要分別對WIFI模塊,單片機進行調試,確保每個元器件在單獨的環(huán)境下可以正常工作,之后把各個元器件連接成一個整體,完成整個的項目,實現(xiàn)手機無線控制單片機小車的運動。 5.2 硬件設備調試 由于此實物焊接量、裝配工作量大。所以在電路安裝完成后,首先應對系統(tǒng)進行整體檢查,確認電路無虛焊、短路、斷路等錯誤。然后應該對電路各個模塊進行分級調試,逐步實現(xiàn)系統(tǒng)的整體功能。 然后對設備進行連線設置,每個模塊之間的連線都有一定的聯(lián)系,要按照這特有的聯(lián)系來進行連線設置。比如
46、,WIFI模塊的工作電壓是3.3V,要接在降壓模塊下,才能正常工作。單片機要和WIFI模塊進行通信,就要對兩者之間的信號電平進行轉換,使其達到適合自己的工作電壓來進行相互的通信。如圖5-1。 下圖是整個硬件設備之間的連線圖,如圖5-1所示。 圖5-1 硬件設備連線圖 5.2.1 ESP8266串口WIFI的連線 由于WIFI模塊(圖5-1)出廠已經配置完成。其中CH_PD處于低電平是使供電模塊關閉,處于高電平是處于工作狀態(tài),所以要將CH_PD引腳和VCC相連。由于單片機和WIFI之間要用串口通信,是要用到串口的端口TXD和RXD,要求是交叉連接,意思就是將單片機的RXD和WIFI
47、模塊的TXD相連,單片機的TXD和WIFI模塊的RXD相連,VCC接3.3V電壓,接地要和單片機共地連接。如圖5-2。 下圖是WIFI模塊的引腳接線圖,如圖5-2所示。 圖5-2 WIFI模塊引腳的連線圖 5.2.2 STC89C52RC單片機連線 單片機上有RXD和TXD口,其和WIFI模塊連線時,是屬于交叉連線。但是和電腦之間的連線,是要通過MAX232芯片進行電平轉換,因為單片機的是5V的工作電源,電腦的是12V串口電壓,以此來達到合適彼此工作電壓的電平來進行數(shù)據交換的。當然除此之外,單片機上還要接復位電路和時鐘(晶振)電路,晶振電路用來設置單片機的波特率,以達到和WIFI
48、模塊的波特率一致。 下圖是單片機的接線圖,如圖5-3所示。 圖5-3 單片機引腳接線圖 5.2.3 單片機和WIFI模塊的連線 在單片機連線完成后,WIFI模塊要處在工作狀態(tài),將CH_PD拉高后。進入了關鍵的一步,那就是單片機和WIFI模塊之間的連線,這關系到WIFI模塊和單片機之間的通信的成功與否。因為單片機和WIFI模塊的工作電壓不一致,導致了它們所產生的電平信號也不一致。因此,在本設計時,要添加降/穩(wěn)壓模塊和電平轉換模塊,單片機和WIFI模塊要配合使用這兩個模塊,在這兩個模塊的同時作用下完成單片機和WIFI模塊之間的通信。 下圖是單片機和WIFI模塊之間的連接圖,如圖5-
49、4所示。 圖5-4 單片機和WIFI模塊的連線圖 5.3 軟件調試 此系統(tǒng)的軟件程序使用java和C語言編寫。首先選擇單片機開發(fā)板作為調試的載體,逐步對各個模塊的子程序進行調試,然后將各個模塊的子程序模塊進行有機的聯(lián)合,最終完成整個系統(tǒng)的調試。 本次項目所要用到的調試工具有:sscom4.2測試版,用于WIFI模塊的調試如圖5-2所示;串口調試助手,用于單片機的通信使用,如圖5-6所示。 本次項目調試的步驟是:首先將WIFI模塊通過串口和電腦能夠相互進行通信和控制,然后是單片機通過串口和電腦直接通信和控制,最后一步就是把WIFI模塊和單片機之間通過連線,將其連接起來,完成最終的串
50、口數(shù)據的相互通信。 5.3.1 WIFI模塊的調試 由于本設計中,ESP8266WIFI模塊只需要輸入AT指令進行調試配置,不需要對WIFI模塊的內部程序進行改動,所以WIFI模塊只需要接收單片機端發(fā)來的AT指令,便可以進入SERVER模式。 ESP8266WIFI模塊在電腦上調試的主要目的是:通過電腦發(fā)出的指令,通過WIFI模塊的串口傳送給WIFI模塊。方向是電腦控制單片機和單片機反饋信號給電腦。是單片機和電腦之間的通信,這是調試步驟的第一步,配置好WIFI模塊。 WIFI模塊調試所需要用到的調試工具是:sscom4.2測試版。這個軟件是專門用作WIFI模塊和電腦之間的通信之間的
51、一個橋梁。提供WIFI模塊和電腦之間的通信,并且在軟件的界面顯示WIFI模塊向電腦發(fā)送的數(shù)據。 下圖是sscom4.2測試版的軟件操作界面,如圖5-5所示。 圖5-5 sscom4.2測試版的軟件操作界面 5.3.1.1 WIFI模塊調試步驟 步驟1:將WIFI模塊的VCC,GND,TXD,RXD和USB轉串口(TTL)連好后,打開串口調試的軟件,給WIFI模塊上電,會出現(xiàn)亂碼。 步驟2:然后向WIFI模塊發(fā)送AT指令(詳見附錄2:AT指令集)。(注意要把發(fā)送新行打勾) 發(fā)送的指令有: AT+CWMODE=1 //選擇station模式 AT+RST //重啟WI
52、FI模塊
AT+CWLAP //查詢可用的AP
AT+CWJAP=
53、口傳來的手機消息。 下圖是WIFI模塊SERVER服務打開成功圖,如圖5-6所示。 圖5-6 WIFI開啟SERVER服務 5.3.2 單片機的調試 單片機和電腦串口通信的主要目的是單片機通過和電腦之間的串口通信,實現(xiàn)電腦控制單片機和單片機傳輸數(shù)據到電腦,并且單片機傳輸給電腦的數(shù)據在調試助手上顯示出來。 單片機調試所需要用到的工具是串口調試助手。這個軟件是用作單片機和電腦之間通信的一個平臺,能夠提供單片機的收與發(fā)都能通過串口在電腦上進行顯示。還有一個主要的作用是,單片機寫好對接收到的信息進行比對來完成單片機的動作,完成一個簡單的電腦發(fā)送信息控制單片機動作。簡單來說就是用電腦來模擬
54、WIFI模塊對單片機進行控制。 下圖是單片機和電腦之間通信的操作界面圖,如圖5-7所示。 圖5-7 單片機和電腦之間通信的操作界面圖 5.3.2.1 單片機調試步驟 步驟1:該步驟主要是用來使電腦通過串口對單片機進行控制,編好單片機通過串口接收到電腦的信號,在單片機預先編好的程序中,選擇性的運行單片機的某個指令動作。 步驟2:通過串口調試助手,輸入控制信息,在電腦上通過串口對單片機發(fā)送控制信息,如圖所示,若單片機接到信息后,有做出相應的反應,則電腦和單片機的串口調試連通。 5.3.3 單片機和WIFI模塊的調試 在此之前的WIFI模塊和單片機都和電腦之間可以相互進行通信,由于
55、雙方實現(xiàn)的都是和電腦之間控制。要實現(xiàn)WIFI模塊和單片機之間的通信,就要把單片機和WIFI模塊進行連通,完成單片機和WIFI模塊進行數(shù)據傳輸,便能夠實現(xiàn)手機控制單片機控制。 單片機編寫有關的發(fā)送與接收的程序和控制電機的程序,然后給WIFI模塊和單片機通電。單片機向WIFI模塊發(fā)送AT指令,用來創(chuàng)建SERVER服務等一系列指令。然后手機通過給WIFI模塊發(fā)送信息,WIFI模塊通過串口傳送給單片機。 下圖是小車完成后的實體圖,如圖5-8所示 圖5-8 小車整體效果圖 心得體會 通過本次WIFI智能小車的理論學習、論文編寫和實物的制作,進一步的認識到了自身存在的不足。特別是自己
56、在WIFI模塊方面知識的欠缺,這使得我在小車起步制作時WIFI模塊部分,花費了大量的時間。但我通過在網上不斷的查詢相關的資料,在網上請教這方面的高手,最終我還是完成了WIFI模塊部分的處理。但是我還是不知道其中具體的一些細節(jié)的原理,如WIFI模塊為什么不能和單片機進行通信。還有在整機裝配的時候我沒有注意到一些細節(jié)的地方,這使得我把小車拆裝了多次。想要把事情做好提高效率,這就需要注意學習生活工作中做事的細節(jié),以及對自己知識的擴充。 同時,通過這次的畢業(yè)設計,我的各方面能力也得到了大幅度的提高。在知識上,一方面,我系統(tǒng)的總結了自己的專業(yè)知識,明確了自己今后事業(yè)的發(fā)展方向。另一方面,我如饑似渴的
57、自學了單片機及外圍電路知識,并通過自己獨立對軟件的編寫和實物的制作,最終完成了整個WIFI智能小車的設計。在能力上:我通過不斷查閱資料、與師生交流學習新知識、在網上請教相關的人士,然后將自己沉淀后的知識和經驗運用到實際電路設計理念中,豐富其功能和質量。在綜合素質上,我雖然遇到很多的挑戰(zhàn)和困難,但從未想過放棄,最終憑借自己百折不撓、勇于研究的精神解決了這些技術難點。 當然,由于我的知識和能力有限,整個設計還有很多不足之處有待完善和改進,懇求老師指教,這必將是我在踏上工作崗位之前的最大一筆收獲。 總結 本次項目的成果是基于WIFI的智能小車,完成了小車的組裝,程序的設計,以及實現(xiàn)了
58、手機等終端與小車之間的無線通信。 在設計的過程中,學習了關于WIFI指令的相關知識,還有的是WIFI模塊和單片機之間的串口通信方式以及過程。學會了從一個簡單的想法到具體實物的制作流程以及方法,從制作小車的過程中遇到了很多的困難,遇到了許多從來沒有見過的知識。最終,還是通過在網上查找資料,完成了小車最后的測試作業(yè),實現(xiàn)了本次設計的要求。 在論文的寫作過程中遇到了無數(shù)的困難和障礙,都在同學和老師的幫助下度過了。尤其要強烈感謝我的論文指導老師—譚傳武老師,他對我進行了無私的指導和幫助,不厭其煩的幫助進行論文的修改和改進。另外,在校圖書館查找資料的時候,圖書館的老師也給我提供了很多方面的支持與幫
59、助。在此向幫助和指導過我的各位老師表示衷心的感謝! 感謝這篇論文所涉及到的各位學者。本文引用了數(shù)位學者的研究文獻,如果沒有各位學者的研究成果的幫助和啟發(fā),我將很難完成本篇論文的寫作。感謝我的同學和朋友,在我寫論文的過程中給予我很多的素材,還在論文的撰寫和排版燈過程中提供熱情的幫助。 本次設計的成果,完整的敘述了對基于51單片機的WIFI智能小車的制作流程以及相關知識。同時也了解了我國在智能小車這塊的重視,隨著時間的流轉,在未來,智能時代也會成為主導時代,設備也將會變成智能化,人們的生活也將會變得更加方便,更加簡單。我相信在不久的將來,智能小車必將進入服務行業(yè),為我們大家的生活和工作服務。
60、 由于我的學術水平有限,所寫論文難免有不足之處,懇請各位老師和學友批評和指正! 參考文獻 [1]劉守義.單片機應用技術.西安:西安電子科技大學出版社,2007 [2]趙克林.C語言實例教程.北京:人民郵電出版社,2009 [3]先鋒工作室.單片機程序設計實例.西安:清華大學出版社,2003 [4]劉建清.從零開始學單片機C語言.北京:國防工業(yè)出版社,2006 [5]李群芳.單片機微型計算機與接口技術.北京:電子商務出版社,2007 [6]馬總梅.單片機的C語言應用程序設計.北京:北京航天航空大學出版社,1988 [7]張永楓.單片機應用實訓教程.北京:清華大學出版社,2
61、008 [8]徐瑋.C51高效入門.北京:機械工程出版社,2006 [9]王靜霞.單片機應用技術(C語言版).北京:電子商務出版社,2009 [10]李伯成.嵌入式系統(tǒng)可靠性設計.北京:電子商務出版社,2006 [11]先鋒工作室.單片機設計實例.西安:清華大學出版社,2003 [12]姚尚朗.Android開發(fā)入門與實戰(zhàn).北京:人民郵電出版社,2009 [13]李興華.Android開發(fā)實戰(zhàn)經典.北京:清華大學出版社,2012 [14]郭志宏.Android應用開發(fā)詳解.北京:電子商務出版社,2010 [15]亨特.程序員的思維修煉.北京:人民郵電出版社,2011 [16]
62、李剛.瘋狂Android講義.北京:電子商務出版社,2011 [17]孫更新.Android從入門到精通. 北京:電子商務出版社,2011 [18] 陳昊鵬. Java編程思想. 北京:機械工程出版社,2007 [19] 昊斯特曼. JAVA核心技術. 北京:電子商務出版社,2011 [20] E2ECloud工作室. 深入淺出Google Android.北京:人民郵電出版社,2009 附錄1 單片機程序 /************************************************* 文件名:智能WIFI小車 描述:通過手機發(fā)送無線信號,在WIFI
63、模塊進行接收,發(fā)送至單片機,從而
控制小車的運動。
*************************************************/
#include
64、3; //位定義電機2負 void tingzhi() //停止 { M1A=0; M1B=0; M2A=0; M2B=0; } void qianjin() //前進 { M1A=1; M1B=0;
65、 M2A=1; M2B=0; } void houtui() //后退 { M1A=0; M1B=1; M2A=0; M2B=1; } void youzhuan() //右轉 { M1A=0;
66、 M1B=1; M2A=1; M2B=0; } void zuozhuan() //左轉 { M1A=1; M1B=0; M2A=0; M2B=1; } void delay(int i) //延時函數(shù) { int j,k; for(j=0;j0;k--) for(j=110;j>0;j--); } void init_
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。