【正文】
。在圖29中,數(shù)據(jù)碼為十六進(jìn)制的0CH,數(shù)據(jù)反碼為十六進(jìn)制的0F3H(注意低位在前),兩者之和應(yīng)為0FFH。如果數(shù)據(jù)碼與數(shù)據(jù)反碼之間的關(guān)系不滿足相反的關(guān)系.則本次遙控接收有誤.?dāng)?shù)據(jù)應(yīng)丟棄。數(shù)據(jù)碼為8位,可編碼256種狀態(tài),代表實(shí)際所按下的鍵。圖中的地址碼為十六進(jìn)制的0EH(注意低位在前)。不同的設(shè)備可以擁有不同的地址碼.因此。地址碼由8位二進(jìn)制組成,共256種.圖中地址碼重發(fā)了一次。當(dāng)接收到此碼時(shí).表示一幀數(shù)據(jù)的開始。高位在后。可將它們分為5部分,分別為引導(dǎo)碼、地址碼、地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。1. 數(shù)據(jù)格式當(dāng)我們按下遙控器的按鍵時(shí),遙控器將發(fā)出如圖29的一串二進(jìn)制代碼,我們稱它為一幀數(shù)據(jù)。 紅外遙控器紅外遙控器是以紅外發(fā)光二極管發(fā)射940nm的紅外光,來傳送信號。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。電路如圖28:圖28 DS18B20與單片機(jī)連接圖 紅外遙控紅外線遙控是目前使用最廣泛的一種通信和遙控手段。 (7) 最后將數(shù)據(jù)線拉高。 (5) 將數(shù)據(jù)線拉到高電平。 (3) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。(1) 數(shù)據(jù)線先置低電平“0”。3.DS18B20的寫時(shí)序?qū)τ贒S18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。 (7)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。 (5)將數(shù)據(jù)線拉高“1”。 (3)將數(shù)據(jù)線拉低“0”。(1)將數(shù)據(jù)線拉高“1”。對于DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。 (8) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無限的進(jìn)行等待,不然會使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。 (5) 數(shù)據(jù)線拉到高電平“1”。 (2) 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn)) (3) 數(shù)據(jù)線拉到低電平“0”。數(shù)據(jù)和命令的傳輸都是低位在先。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。圖27 DS18B20底視圖 DS18B20的使用方法由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S51單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時(shí)序來完成對DS18B20芯片的訪問。3VDD可選擇的VDD引腳。開漏單總線接口引腳。 DS18B20的引腳介紹TO-92封裝的DS18B20的引腳排列見圖27,引腳說明如表10所示。 DS18B20產(chǎn)品的主要特點(diǎn)●適應(yīng)電壓范圍更寬,電壓范圍:~,在寄生電源方式下可由數(shù)據(jù)線供電 ●獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊 ● DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫 ●DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi) ●溫范圍-55℃~+125℃,在10~+85℃時(shí)精度為177。圖26 1602LCD于單片機(jī)連接圖 溫度測量電路DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單,體積小的特點(diǎn)。表8 1602LCD讀寫操作時(shí)序讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,寫指令,E高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,寫數(shù)據(jù),E高脈沖輸出無圖24 讀操作時(shí)序圖25 寫操作時(shí)序表9 1602LCD操作時(shí)序參數(shù)時(shí)序參數(shù)符號極限值單位測試條件最小值典型值最大值E信號周期tC400ns引腳EE脈沖寬度tPW150nsE上升沿/下降沿時(shí)間tR,tF25ns地址建立時(shí)間tSP130ns引腳E、RS、R/W地址保持時(shí)間tHD110ns數(shù)據(jù)建立時(shí)間(讀操作)tD100ns引腳DB0~DB7數(shù)據(jù)保持時(shí)間(讀操作)tHD220ns數(shù)據(jù)建立時(shí)間(寫操作)tSP240ns數(shù)據(jù)保持時(shí)間(寫操作)tHD210ns 液晶與單片機(jī)連接電路1602可與單片機(jī)相連的引腳有11個(gè),其中3個(gè)控制端、8個(gè)數(shù)據(jù)端,3個(gè)控制端RS、RW、E分別接單片機(jī)的P1P1P17腳,8個(gè)數(shù)據(jù)端DB0—DB7依次接單片機(jī)的P20—P27。讀寫操作時(shí)序如表8所示,讀操作時(shí)序圖如圖24所示,寫操作時(shí)序如圖25所示。指令11:讀數(shù)據(jù)。指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令7:字符發(fā)生器RAM地址設(shè)置,地址:字符地址*8+字符行數(shù) (將一個(gè)字符分成5*8點(diǎn)陣,一次寫入一行,8行就組成一個(gè)字符) 。R/L,高向左,低向右。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。高電平表示有效,低電平則無效。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。1602模塊的設(shè)定,讀寫,與光標(biāo)控制都是通過指令來完成,共有11條指令,如表7所示。表6 1602LCD引腳說明引腳號符號引腳說明引腳號符號引腳說明1Vss電源地9DB2數(shù)據(jù)總線2Vdd電源正極10DB3數(shù)據(jù)總線3V0液晶驅(qū)動電源11DB4數(shù)據(jù)總線4RS數(shù)據(jù)/命令選擇端12DB5數(shù)據(jù)總線5R/W讀/寫操作選擇端13DB6數(shù)據(jù)總線6E使能信號14DB7數(shù)據(jù)總線(MSB)7DB0數(shù)據(jù)總線(LSB)15LEDA背光+5V8DB1數(shù)據(jù)總線16LEDK背光地圖23 1602LCD外觀 LCD的控制方法通過單片機(jī)來控制LCD模塊,方法十分簡單,LCD模塊其內(nèi)部可以看成有兩組寄存器,一個(gè)為指令寄存器,一個(gè)為數(shù)據(jù)寄存器,由RS引腳來控制。 32個(gè)字符(510點(diǎn)字型);E.DDRAM和CGRAM都能從MCU讀取數(shù)據(jù); 1602LCD接口引腳說明一般市售的LCD都有統(tǒng)一的引腳,共有16個(gè)引腳,其外觀如圖23所示,其中有8個(gè)是數(shù)據(jù)引腳、3個(gè)控制引腳、5個(gè)接地和電源腳。其基本特性如下:A.容易和4Bit/8Bit MPU相連;B.可選擇57或510點(diǎn)陣字符;C.顯示數(shù)據(jù)RAM容量:808Bit (80字符);D.字符發(fā)生器ROM能提供用戶所需字符庫或標(biāo)準(zhǔn)庫。晶振采用12M晶振,指令周期為1us,復(fù)位電路采用上電復(fù)位和手動按鍵復(fù)位。 定時(shí)器/計(jì)數(shù)器2操作模式C/ T2RCLK+TCLKCP/ RL2T2OETR2模當(dāng)DCEN=0時(shí),T2自動向上計(jì)數(shù);當(dāng)DCEN=1時(shí),T2向上/向下計(jì)數(shù)方式,由引腳T2EX狀態(tài)決定計(jì)數(shù)方向。當(dāng)T2OE=1時(shí),允許時(shí)鐘輸出至引腳T2/;當(dāng)T2OE=0時(shí),禁止引腳T2/。其各位定義如表4所示。2 定時(shí)器/計(jì)數(shù)器2模式寄存器T2MOD表4 T2MON位定義位當(dāng)CP/ RL2=0且EXEN2=1時(shí),引腳T2EX/。CP/RL2:T2捕捉/重裝功能選擇位。C/T2: 定時(shí)器/計(jì)數(shù)器2工作方式選擇位。TR2:T2啟動控制位。當(dāng)EXEN2=1時(shí),T2EX的負(fù)跳變引起T2捕捉或重裝,此時(shí)T2不能用做串行口的串行時(shí)鐘。當(dāng)TCLK=1時(shí),T2的溢出脈沖可作為串行口方式1和方式3的發(fā)送時(shí)鐘;當(dāng)TCLK=0時(shí),T1的溢出脈沖將作為串行發(fā)送時(shí)鐘。當(dāng)RCLK=1時(shí),T2的溢出脈沖可作為串行口方式1和方式3的接收時(shí)鐘;當(dāng)RCLK=0時(shí),T1的溢出脈沖將作為串行接收時(shí)鐘。當(dāng)DCEN=1時(shí),T2處于向上/向下計(jì)數(shù)模式,EXF2部引起中斷。當(dāng)EXEN2=1時(shí),引腳T2EX/,使EXF2=1,并產(chǎn)生T2中斷。當(dāng)RCLK=1或TCLK=1時(shí),TF2將不被置位。 定時(shí)器/計(jì)數(shù)器2溢出標(biāo)志位。TF2:表3 T2CON位定義位其各位定義如表3所示。工作方式由T2CON的控制位選擇。表2 AT89S52 P3口特殊功能引腳號第二功能RXD(串行輸入口)TXD(串行輸出口)INTO(外中斷0)INT1(外中斷1)TO(定時(shí)/計(jì)數(shù)器0)T1(定時(shí)/計(jì)數(shù)器1)WR(外部數(shù)據(jù)存儲器寫選通)RD(外部數(shù)據(jù)存儲器讀選通) 定時(shí)器/計(jì)數(shù)器2定時(shí)器/計(jì)數(shù)器2是一個(gè)16位定時(shí)器/計(jì)數(shù)器,是定時(shí)器或外部事件計(jì)數(shù)器。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號。 P3口亦作為AT89S52特殊功能(第二功能)使用,如表2所示。對P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 3 P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個(gè)TTL邏輯電平。此外,()和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(),具體如表1所示。對P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。程序校驗(yàn)時(shí),需要外部上拉電阻。在這種模式下,P0具有內(nèi)部上拉電阻。對P0端口寫“1”時(shí),引腳用作高阻抗輸入。 AT89S52各引腳描述1 P0口:P0口是一個(gè)8位漏極開路的雙向I/O口。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。下面將詳細(xì)介紹各模塊的基本原理及設(shè)計(jì)方法。系統(tǒng)結(jié)構(gòu)框圖如圖21所示。另外該小車還具有檢測溫度并顯示的功能,可實(shí)現(xiàn)溫度的實(shí)時(shí)監(jiān)測?!爸悄苓b控車”運(yùn)用單片機(jī)和紅外傳感器控制小車運(yùn)動。通過對這些技術(shù)的研究討論,能更進(jìn)一步了解現(xiàn)代智能技術(shù)。今天,電子行業(yè)也發(fā)展的非??欤娮赢a(chǎn)品的價(jià)格在不斷的下調(diào),所以這款遙控小車的電子元件的成本已經(jīng)不是很高,集成芯片的工藝也不斷更新,功能也非常強(qiáng)大,所以設(shè)計(jì)這種遙控小車已經(jīng)不是難事。大人想要一輛真正的車,小孩子也想要一輛屬于自己的車。從最初的8位控制器到現(xiàn)在的16位、32位控制器都還有很大的發(fā)展和應(yīng)用空間。s multitask structure, increase the CPU utilization and system flexibility. The design is simple, relatively easy to implement, with a high degree of intelligence and automation.Key words:MCU DC motor Infrared Remote Control HS0038 Decode 第II頁基于單片機(jī)的紅外遙控小車第1章 引言單片機(jī)以其強(qiáng)大的控制能力已經(jīng)被廣泛應(yīng)用于諸多領(lǐng)域,配以各種外部接口及傳感器可以實(shí)現(xiàn)系統(tǒng)的智能化與自動化。關(guān)鍵詞:AT89S52 直流電機(jī) 紅外遙控 HS0038 解碼AbstractThis article introduces an infrared remote control with automatic obstacle avoidance, the temperature detection function of the intelligent car design and production. The Principle and Application of microcontroller, temperature sensor and 1602LCD is the focus of the system. The car to toy car for the body to AT89S52 microcontroller core of the w hole system of control, control the position of the b