版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 自動(dòng)尋跡小車(chē)</b></p><p><b> 摘要</b></p><p> AT89S52單片機(jī)是一款八位單片機(jī),他的易用性和多功能性受到了廣大使用者的好評(píng)。這里介紹的是如何用AT89S52單片機(jī)來(lái)實(shí)現(xiàn)電動(dòng)小車(chē)的自動(dòng)尋跡。本系統(tǒng)以設(shè)計(jì)題目的要求為目的,采用AT89S52單片機(jī)為控制核心,利用電動(dòng)小車(chē)前面的紅外
2、線(xiàn)傳感器檢測(cè)道路上的軌跡,將路面信息轉(zhuǎn)送給AT89S52,AT89S52根據(jù)信息作出反應(yīng)控制電動(dòng)機(jī)轉(zhuǎn)動(dòng),從而控制電動(dòng)小汽車(chē)按照路上的軌跡行駛。整個(gè)系統(tǒng)的電路結(jié)構(gòu)簡(jiǎn)單,可靠性能高。實(shí)驗(yàn)測(cè)試結(jié)果滿(mǎn)足要求,本文著重介紹了該系統(tǒng)的硬件設(shè)計(jì)方法及測(cè)試結(jié)果分析。</p><p> 本小車(chē)采用的技術(shù)主要有傳感器的有效應(yīng)用和AT89S52芯片的使用。有很多功能可以繼續(xù)擴(kuò)展,值得就一步學(xué)習(xí)和研究。</p><
3、p> 關(guān)鍵詞: AT89S52 紅外線(xiàn)傳感器 直流電機(jī) </p><p><b> Abstract</b></p><p> AT89S52 SCM is a section 8 microcontroller, his usability and multi-functional received overwhelming support fr
4、om user's praise. Here introduces AT89S52 SCM is how to use electric car to realize the automatic tracing. This system to design the topic request, the purpose for AT89S52 SCM as control core, using electric car in f
5、ront of the infrared sensor detects the trajectory path, pavement message to someone AT89S52 devices, react AT89S52 according to the information which can control the rotati</p><p> This car the technique t
6、o be used mainly sensor effective application and the use of AT89S52 chip. There are many function can continue to expand, worth just step for study and research.</p><p> Keywords: AT89S52, light electricit
7、y detector,direct-current motor</p><p><b> 目錄</b></p><p><b> 摘要I</b></p><p> AbstractII</p><p><b> 目錄III</b></p><p
8、><b> 前言1</b></p><p> 1 方案設(shè)計(jì)與論證2</p><p> 1.1電動(dòng)小車(chē)模塊2</p><p> 1.1.1轉(zhuǎn)向和動(dòng)力2</p><p> 1.1.2 電動(dòng)機(jī)模塊3</p><p> 1.1.3調(diào)速系統(tǒng)3</p><p&
9、gt; 1.1.4 電機(jī)驅(qū)動(dòng)模塊4</p><p> 1.2 控制模塊5</p><p> 1.3 傳感器模塊5</p><p> 1.4 電源模塊6</p><p><b> 2 硬件設(shè)計(jì)7</b></p><p> 2.1 主要元器件的介紹7</p>&l
10、t;p> 2.1.1 電機(jī)驅(qū)動(dòng)芯片L91107</p><p> 2.1.2 AT89S529</p><p> 2.1.3 紅外線(xiàn)傳感器17</p><p> 2.2 模塊介紹18</p><p> 2.2.1車(chē)頭傳感器模塊18</p><p> 2.2.2 電動(dòng)小車(chē)模塊19</p
11、><p> 2.2.3 控制模塊19</p><p> 2.3 整體方案20</p><p><b> 3 軟件設(shè)計(jì)22</b></p><p> 3.1 程序設(shè)計(jì)22</p><p> 3.1.1 程序的模塊化設(shè)計(jì)22</p><p> 3.1.2 部分
12、程序設(shè)計(jì)23</p><p> 3.2 利用proteus 進(jìn)行軟件仿真26</p><p> 3.3 制作電路圖和PCB板圖27</p><p><b> 4總結(jié)31</b></p><p><b> 致謝33</b></p><p><b>
13、 參考文獻(xiàn)34</b></p><p> 附錄1 C語(yǔ)言程序35</p><p> 附錄2 電路圖和PCB板圖39</p><p> 附錄3小車(chē)實(shí)物圖42</p><p><b> 前言</b></p><p> 隨著汽車(chē)工業(yè)的迅速發(fā)展,關(guān)于汽車(chē)的研究也就越來(lái)越受人關(guān)
14、注。全國(guó)電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車(chē)這方面的題目,全國(guó)各高校也都很重視該題目的研究。可見(jiàn)其研究意義很大。本設(shè)計(jì)就是在這樣的背景下提出的。設(shè)計(jì)一款智能電動(dòng)小車(chē),智能電動(dòng)小車(chē)應(yīng)該具有自動(dòng)尋找軌跡的功能。</p><p> 根據(jù)題目的要求,本設(shè)計(jì)以AT89S52為控制核心,在現(xiàn)有電動(dòng)小車(chē)的基礎(chǔ)上,加裝傳感器,實(shí)現(xiàn)對(duì)電動(dòng)車(chē)的運(yùn)動(dòng)狀態(tài)進(jìn)行實(shí)時(shí)控制。本系統(tǒng)控制靈活、可靠,精度高,滿(mǎn)足各項(xiàng)要求。利用紅外線(xiàn)傳感器
15、檢測(cè)地上的特定軌跡,將數(shù)據(jù)傳給AT89S52,經(jīng)過(guò)AT89S52分析后做出反應(yīng)控制電動(dòng)機(jī)的運(yùn)行使小車(chē)按照特定軌跡行駛。</p><p> AT89S52是一款八位單片機(jī),它的易用性和多功能性受到了廣大使用者的好評(píng)。它是第三代單片機(jī)的代表,其最主要的技術(shù)特點(diǎn)是向外部接口電路擴(kuò)展,以完善控制功能。外部可接其他功能單元如A/D﹑PWM﹑PCA﹑WDT﹑計(jì)數(shù)器的捕獲/比較邏輯等。在總線(xiàn)方面最重要的進(jìn)展是為單片機(jī)配置了芯
16、片間的串行總線(xiàn),為單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)提供了更加靈活的方式。新一代單片機(jī)為外部提供了相當(dāng)完善的總線(xiàn)結(jié)構(gòu),為系統(tǒng)的擴(kuò)展與配置打下了良好的基礎(chǔ)。 </p><p> 本設(shè)計(jì)采用的AT89S52采用CHOMS工藝,功耗很低,可用于很多小型設(shè)備中。該設(shè)計(jì)具有實(shí)際意義,稍作修改就可以應(yīng)用于考古、機(jī)器人、醫(yī)療器械等許多方面。尤其是在足球機(jī)器人研究方面具有很好的發(fā)展前景;在考古方面可用超聲波傳感器進(jìn)行檢測(cè)。所以本設(shè)計(jì)與實(shí)際相結(jié)
17、合,現(xiàn)實(shí)意義很強(qiáng)。</p><p><b> 1 方案設(shè)計(jì)與論證</b></p><p> 根據(jù)題目的要求,確定如下方案:在現(xiàn)有電動(dòng)小車(chē)的基礎(chǔ)上加控制器,在小車(chē)前部加裝傳感器,在路面貼上特殊軌跡。由外加傳感器對(duì)路面進(jìn)行實(shí)時(shí)測(cè)量,并將測(cè)量數(shù)據(jù)傳送至控制器,再由主控制器根據(jù)所檢測(cè)的數(shù)據(jù)對(duì)電動(dòng)小車(chē)行動(dòng)進(jìn)行控制,使小車(chē)跟隨路面特殊軌跡行駛,以實(shí)現(xiàn)電動(dòng)小車(chē)的自動(dòng)尋跡。<
18、;/p><p> 自動(dòng)尋跡小車(chē)原理圖1.1所示:</p><p> 圖1.1自動(dòng)尋跡小車(chē)原理圖</p><p><b> 1.1電動(dòng)小車(chē)模塊</b></p><p> 1.1.1轉(zhuǎn)向和動(dòng)力</p><p> 方案一:轉(zhuǎn)向和動(dòng)力分開(kāi)的電動(dòng)小車(chē)。轉(zhuǎn)向和動(dòng)力分開(kāi)的電動(dòng)小車(chē)是將輪胎分為兩組,一組與電
19、動(dòng)機(jī)相連輸出動(dòng)力控制小車(chē)的行駛;另外一組控制小車(chē)的方向。(兩組輪胎的前后順序可調(diào),其換影響不大。轉(zhuǎn)向輪可使用單輪。)方案一需電動(dòng)機(jī)和一個(gè)轉(zhuǎn)向器。由主控制器分別進(jìn)行控制,器件和控制程序較多。</p><p> 方案二:轉(zhuǎn)向和動(dòng)力結(jié)合的電動(dòng)小車(chē)。轉(zhuǎn)向和動(dòng)力結(jié)合的電動(dòng)小車(chē)是使用兩個(gè)獨(dú)立的電動(dòng)機(jī)各自帶動(dòng)一個(gè)輪胎位于兩側(cè),通過(guò)兩個(gè)輪胎速度的改變實(shí)現(xiàn)小車(chē)的轉(zhuǎn)向??刂扑贸绦蜉^少,控制器控制起來(lái)簡(jiǎn)單(這種轉(zhuǎn)向方式類(lèi)似于坦克的
20、轉(zhuǎn)向方式。)為了小車(chē)的平衡再裝上保持平衡的輪子。</p><p> 綜上分析,本設(shè)計(jì)使用方案二。</p><p> 1.1.2 電動(dòng)機(jī)模塊</p><p> 為了實(shí)現(xiàn)電動(dòng)小車(chē)對(duì)行走路徑的準(zhǔn)確定位和精確測(cè)量,有以下兩種方案:</p><p> 方案一:采用直流電機(jī)。直流電機(jī)轉(zhuǎn)動(dòng)力矩大,響應(yīng)快速,體積小,重量輕,較大的起動(dòng)轉(zhuǎn)矩使其有從零轉(zhuǎn)
21、速至額定轉(zhuǎn)速具備可提供額定轉(zhuǎn)矩的性能。可用變速齒輪改變其速度來(lái)達(dá)到本系統(tǒng)要求。價(jià)格較低。</p><p> 方案二:采用步進(jìn)電機(jī)。步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成角位移或線(xiàn)位移的精密執(zhí)行原件??刂品奖?,體積小,靈活性和可靠性高,具有瞬時(shí)啟動(dòng)和急速停止的優(yōu)越性,比較適合本系統(tǒng)控制精度高的特點(diǎn)。價(jià)格較高。</p><p> 從成本分析,本設(shè)計(jì)用方案一。(經(jīng)濟(jì)條件好時(shí)方案二最好。)</
22、p><p><b> 1.1.3調(diào)速系統(tǒng)</b></p><p> 方案一:旋轉(zhuǎn)變流系統(tǒng)。旋轉(zhuǎn)變流系統(tǒng)由交流發(fā)電機(jī)拖動(dòng)直流電動(dòng)機(jī)實(shí)現(xiàn)變流,由發(fā)電機(jī)給需要調(diào)速的直流電動(dòng)機(jī)供電,調(diào)節(jié)發(fā)電機(jī)的勵(lì)磁電流即可改變其輸出電壓,從而調(diào)節(jié)電動(dòng)機(jī)的轉(zhuǎn)速。改變勵(lì)磁電流的方向則輸出電壓的極性和電動(dòng)機(jī)的轉(zhuǎn)向都隨著改變,所以旋轉(zhuǎn)變流系統(tǒng)的可逆運(yùn)行是很容易實(shí)現(xiàn)的。該系統(tǒng)需要旋轉(zhuǎn)變流機(jī)組,至少包含
23、兩臺(tái)與調(diào)速電動(dòng)機(jī)容量相當(dāng)?shù)男D(zhuǎn)電機(jī),還要一臺(tái)勵(lì)磁發(fā)電機(jī),設(shè)備多、體積大、費(fèi)用高、效率低、維護(hù)不方便等缺點(diǎn)。且技術(shù)落后,因此擱置不用。</p><p> 方案二:靜止可控整流器。簡(jiǎn)稱(chēng)V-M系統(tǒng)。V-M系統(tǒng)是當(dāng)今直流調(diào)速系統(tǒng)的主要形式。它可以是單相、三相或更多相數(shù),半波、全波、半控、全控等類(lèi)型,可實(shí)現(xiàn)平滑調(diào)速。V-M系統(tǒng)的缺點(diǎn)是晶閘管的單向?qū)щ娦?,它不允許電流反向,給系統(tǒng)的可逆運(yùn)行造成困難。它的另一個(gè)缺點(diǎn)是運(yùn)行條件
24、要求高,維護(hù)運(yùn)行麻煩。最后,當(dāng)系統(tǒng)處于低速運(yùn)行時(shí),系統(tǒng)的功率因數(shù)很低,并產(chǎn)生較大的諧波電流危害附近的用電設(shè)備。</p><p> 方案三:脈寬調(diào)速系統(tǒng)。采用晶閘管的直流斬波器基本原理與整流電路不同的是,在這里晶閘管不受相位控制,而是工作在開(kāi)關(guān)狀態(tài)。當(dāng)晶閘管被觸發(fā)導(dǎo)通時(shí),電源電壓加到電動(dòng)機(jī)上,當(dāng)晶閘管關(guān)斷時(shí),直流電源與電動(dòng)機(jī)斷開(kāi),電動(dòng)機(jī)經(jīng)二極管續(xù)流,兩端電壓接近于零。脈沖寬度調(diào)制(Pulse Width Modu
25、lation),簡(jiǎn)稱(chēng)PWM。脈沖周期不變,只改變晶閘管的導(dǎo)通時(shí)間,即通過(guò)改變脈沖寬度來(lái)進(jìn)行直流調(diào)速??稍谛羞M(jìn)間變速,直道高速,彎道低速。</p><p> 方案四:調(diào)速齒輪組調(diào)速。采用齒輪與齒輪的組合,利用齒輪組半徑比來(lái)調(diào)速,能達(dá)到本設(shè)計(jì)的最低要求以低速勻速前進(jìn)。價(jià)格便宜,實(shí)現(xiàn)起來(lái)簡(jiǎn)單。</p><p> 與V-M系統(tǒng)相比,PWM調(diào)速系統(tǒng)有下列優(yōu)點(diǎn):</p><p&
26、gt; ?。?)由于PWM調(diào)速系統(tǒng)的開(kāi)關(guān)頻率較高,僅靠電樞電感的濾波作用就可以獲得脈動(dòng)很小的直流電流,電樞電流容易連續(xù),系統(tǒng)的低速運(yùn)行平穩(wěn),調(diào)速范圍較寬,可達(dá)1:10000左右。由于電流波形比V-M系統(tǒng)好,在相同的平均電流下,電動(dòng)機(jī)的損耗和發(fā)熱都比較小。</p><p> (2)同樣由于開(kāi)關(guān)頻率高,若與快速響應(yīng)的電機(jī)相配合,系統(tǒng)可以獲得很寬的頻帶,因此快速響應(yīng)性能好,動(dòng)態(tài)抗擾能力強(qiáng)。</p>&l
27、t;p> ?。?)由于電力電子器件只工作在開(kāi)關(guān)狀態(tài),主電路損耗較小,裝置效率較高。</p><p> 根據(jù)以上綜合比較,以及本設(shè)計(jì)中受控電機(jī)的容量和直流電機(jī)調(diào)速的發(fā)展方向,本設(shè)計(jì)采用了H型單極型可逆PWM變換器進(jìn)行調(diào)速。</p><p> 脈寬調(diào)速系統(tǒng)的主電路采用脈寬調(diào)制式變換器,簡(jiǎn)稱(chēng)PWM變換器。脈寬調(diào)速也可通過(guò)單片機(jī)控制繼電器的閉合來(lái)實(shí)現(xiàn),但是驅(qū)動(dòng)能力有限。為順利實(shí)現(xiàn)電動(dòng)小汽
28、車(chē)的前行與倒車(chē),本設(shè)計(jì)采用了可逆PWM變換器??赡鍼WM變換器主電路的結(jié)構(gòu)式有H型、T型等類(lèi)型。我們?cè)谠O(shè)計(jì)中采用了常用的雙極式H型變換器,它是由4個(gè)三極電力晶體管和4個(gè)續(xù)流二極管組成的橋式電路。</p><p> 綜上,考慮到本設(shè)計(jì)重在尋跡,本設(shè)計(jì)使用價(jià)格便宜,簡(jiǎn)單的方案四。(經(jīng)濟(jì)條件好時(shí)方案三最好。)</p><p> 1.1.4 電機(jī)驅(qū)動(dòng)模塊</p><p>
29、; 方案一:采用集成芯片L9110驅(qū)動(dòng)直流電機(jī)。L9110是為控制和驅(qū)動(dòng)電機(jī)設(shè)計(jì)的兩通道推挽式功率放大專(zhuān)用集成電路,將分立電路集成在單片IC之中,使外圍器件成本降低,整機(jī)可靠性提高。該芯片有兩個(gè)TTL/COMS兼容電平的輸入,具有良好的抗干擾性;兩個(gè)輸出端能直接驅(qū)動(dòng)電機(jī)的正反向運(yùn)動(dòng),它具有較大的電流驅(qū)動(dòng)能力,每個(gè)通道能通過(guò)750~800mA的持續(xù)電流,峰值電流能力可達(dá)1.5~2.0;同時(shí)它具有較低的輸出飽和壓降;內(nèi)置的鉗位二極管能釋放
30、感性負(fù)載的反向沖擊電流,使它在驅(qū)動(dòng)繼電器、直流電機(jī)、步進(jìn)電機(jī)、開(kāi)關(guān)功率管的使用上安全可靠。L9110被廣泛用于玩具汽車(chē)電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)驅(qū)動(dòng)和開(kāi)關(guān)功率管等電路上。</p><p> 方案二:用功率管構(gòu)成驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)電機(jī)。性能可靠,具有自動(dòng)保護(hù)功能,但結(jié)構(gòu)較復(fù)雜多用于交流。</p><p> 綜上分析,本設(shè)計(jì)選擇方案一。</p><p><b> 1
31、.2 控制模塊</b></p><p> 方案一:采用FPGA作為系統(tǒng)的主控制器。FPGA可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大集,成度高,體積小,穩(wěn)定性好,IO口資源豐富,易于進(jìn)行功能擴(kuò)展,處理速度快,但是適用于大規(guī)模實(shí)時(shí)性要求較高的系統(tǒng),價(jià)格高,編程實(shí)現(xiàn)難度大。本系統(tǒng)只需要完成信號(hào)檢測(cè)和電機(jī)驅(qū)動(dòng)的控制,邏輯功能簡(jiǎn)單,對(duì)控制器的數(shù)據(jù)處理能力要求不高,所以不選擇此方案。</p><p
32、> 方案二:采用嵌入式系統(tǒng)作為主控制器。嵌入式系統(tǒng)工作頻率較高,速度較快,控制能力很強(qiáng),也有較強(qiáng)的數(shù)據(jù)處理能力。但同樣價(jià)格較高,編程實(shí)現(xiàn)難度大。</p><p> 方案三:采用AT89S52單片機(jī)作為主控制器。AT89S52是一款低功耗,高性能的8位單片機(jī),片內(nèi)含有8KB的Flash片內(nèi)程序存儲(chǔ)器,256 Bytes的RAM,32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí),2層中斷嵌套中斷等。價(jià)格
33、便宜,使用方便。編程實(shí)現(xiàn)難度低,適合用來(lái)實(shí)現(xiàn)系統(tǒng)的控制功能。</p><p> 綜上分析,本設(shè)計(jì)使用方案三。</p><p><b> 1.3 傳感器模塊</b></p><p> 方案一:采用光敏電阻組成光敏傳感器。光敏電阻原理簡(jiǎn)單,使用方便,價(jià)格低廉,但受光照強(qiáng)度影響很大,可靠性不高。</p><p> 方案
34、二:采用角度傳感器。實(shí)用角度傳感器來(lái)測(cè)量車(chē)體水平方向和豎直方向的角度,感測(cè)到的傾角信號(hào)經(jīng)編碼后傳感給單片機(jī),由單片機(jī)控制電動(dòng)機(jī)的運(yùn)行。角度傳感器靈敏度合適,響應(yīng)速度好,但使用復(fù)雜,價(jià)格高昂,且不易購(gòu)買(mǎi)。</p><p> 方案三:采用光電傳感器。光電傳感器原理簡(jiǎn)單,實(shí)現(xiàn)方便,價(jià)格低廉,可集發(fā)射器和接收器于一體。使用這類(lèi)光電傳感器電路簡(jiǎn)單,工作性能穩(wěn)定,能完成需要的信號(hào)檢測(cè)功能。</p><p
35、> 綜上分析,本設(shè)計(jì)選擇方案三。</p><p><b> 1.4 電源模塊</b></p><p> 方案一:電腦USB串口供電。能直接為單片機(jī)提供穩(wěn)定的+5V直流電壓。USB串口線(xiàn)又容易得到。需要很長(zhǎng)的線(xiàn),而且要有交流電和電腦配合。</p><p> 方案二:用4節(jié)五號(hào)電池串聯(lián)6V直流電源。在不超過(guò)單片機(jī)工作電壓范圍的情況下,
36、又能驅(qū)動(dòng)直流電機(jī)。且這個(gè)電源結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜,容易得到。</p><p> 綜上所述,本設(shè)計(jì)選擇方案二。</p><p><b> 2 硬件設(shè)計(jì)</b></p><p> 本設(shè)計(jì)硬件由一下三個(gè)模塊組成:1.以驅(qū)動(dòng)芯片L9110為主的電動(dòng)小車(chē)模塊。2.以AT89S52為控制器的控制器模塊。3.以紅外線(xiàn)傳感器為主的傳感器模塊。整個(gè)設(shè)計(jì)由傳感
37、器模塊向控制模塊提供路面情況,控制模塊根據(jù)情況控制電動(dòng)小車(chē)移動(dòng),三個(gè)模塊相互合達(dá)到設(shè)計(jì)要求 。</p><p> 2.1 主要元器件的介紹</p><p> 2.1.1 電機(jī)驅(qū)動(dòng)芯片L9110</p><p> L9110是為控制和驅(qū)動(dòng)電機(jī)設(shè)計(jì)的兩通道推挽式功率放大專(zhuān)用集成電路,將分立電路集成在單片IC之中,使外圍器件成本降低,整機(jī)可靠性提高。該芯片有兩個(gè)TT
38、L/COMS兼容電平的輸入,具有良好的抗干擾性;兩個(gè)輸出端能直接驅(qū)動(dòng)電機(jī)的正反向運(yùn)動(dòng),它具有較大的電流驅(qū)動(dòng)能力,每個(gè)通道能通過(guò)750~800mA的持續(xù)電流,峰值電流能力可達(dá)1.5~2.0;同時(shí)它具有較低的輸出飽和壓降;內(nèi)置的鉗位二極管能釋放感性負(fù)載的反向沖擊電流,使它在驅(qū)動(dòng)繼電器、直流電機(jī)、步進(jìn)電機(jī)、開(kāi)關(guān)功率管的使用上安全可靠。L9110被廣泛用于玩具汽車(chē)電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)驅(qū)動(dòng)和開(kāi)關(guān)功率管等電路上。其特點(diǎn)有,低靜態(tài)工作電流;寬電壓電源范
39、圍2.5V~12V;每個(gè)通道具有800mA連續(xù)輸出能力;較低的飽和壓降,TTL/COMS輸出電平兼容,可直接連CPU;輸出內(nèi)置鉗位二極管;適用于感性負(fù)載,控制驅(qū)動(dòng)集成于單片IC中;具備管腳高壓保護(hù)功能;工作溫度-20℃~80L9110℃。管腳定義:</p><p><b> OA:A路輸出腳。</b></p><p><b> VCC:電源電壓。<
40、/b></p><p><b> VCC:電源電壓。</b></p><p> OB:B腳輸出管腳。</p><p><b> GND:地線(xiàn)。</b></p><p> IA:A路輸入管腳。</p><p> IB:B路輸入管腳。</p><
41、;p><b> GND:地線(xiàn)。</b></p><p> 其管腳圖如圖2.1所示。其應(yīng)用電路如圖2.2 所示。管腳波形圖如圖2.3所示。T=25℃時(shí)的參數(shù)如表2.1。電器特性標(biāo)如表2.2。</p><p> 圖2.1 L9110管腳圖</p><p> 圖2.2 L9110的應(yīng)用電路圖</p><p>
42、標(biāo)2.1 T=25℃時(shí)的參數(shù)表</p><p> 表2.2 T=25℃ Vcc=5V時(shí)電器特性標(biāo)</p><p><b> 圖2.3管腳波形圖</b></p><p> 2.1.2 AT89S52</p><p> AT89S52單片機(jī)由以下功能部件組成:微處理器、數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器、并行I/O口、串行口、
43、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過(guò)片內(nèi)單一總線(xiàn)連接而成,對(duì)各種功能部件的控制是采用特殊功能寄存器的集中控制方式。</p><p><b> 1、微處理器:</b></p><p> 該單片機(jī)中有一個(gè)8位的微處理器,與通用的微處理器基本相同,同樣包括了運(yùn)算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進(jìn)行位變量的處理。&
44、lt;/p><p><b> 2、數(shù)據(jù)存儲(chǔ)器:</b></p><p> 片內(nèi)為256 Bytes RAM,片外最多可外擴(kuò)至64K字節(jié),用來(lái)存儲(chǔ)程序在運(yùn)行期間的工作變量、運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等,所以稱(chēng)為數(shù)據(jù)存儲(chǔ)器。</p><p><b> 3、程序存儲(chǔ)器:</b></p><p&g
45、t; 由于受集成度限制,片內(nèi)有8KB Flash存儲(chǔ)器,如果片內(nèi)的只讀存儲(chǔ)器的容量不夠,則需用擴(kuò)展片外的只讀存儲(chǔ)器,片外最多可外擴(kuò)至64K字節(jié)。</p><p><b> 4、中斷系統(tǒng):</b></p><p> 具有5個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。</p><p> 5、定時(shí)器/計(jì)數(shù)器:</p><p> 片內(nèi)有
46、2個(gè)16位的定時(shí)器/計(jì)數(shù)器, 具有四種工作方式。</p><p><b> 6、串行口:</b></p><p> 1個(gè)全雙工的串行口,具有四種工作方式??捎脕?lái)進(jìn)行串行通訊,擴(kuò)展并行I/O口,甚至與多個(gè)單片機(jī)相連構(gòu)成多機(jī)系統(tǒng),從而使單片機(jī)的功能更強(qiáng)且應(yīng)用更廣。</p><p> 7、輸入/輸出(I/O)口:</p><
47、p> P1口、P2口、P3口、P4口為4個(gè)并行8位I/O口。</p><p> 8、特殊功能寄存器:</p><p> 共有21個(gè),用于對(duì)片內(nèi)的個(gè)功能的部件進(jìn)行管理、控制、監(jiān)視。實(shí)際上是一些控制寄存器和狀態(tài)寄存器,是一個(gè)具有特殊功能的RAM區(qū)。</p><p> 下面對(duì)它的進(jìn)行介紹:</p><p> P0 口:P0口是一個(gè)8
48、位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪(fǎng)問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0不具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 </p><p> P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出
49、緩沖器能驅(qū)動(dòng)4 個(gè)TTL邏輯電平。對(duì)P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.1分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX)。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 </p><p><b> 引腳號(hào)第二
50、功能 </b></p><p> P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出 </p><p> P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制) </p><p> P1.5 MOSI(在系統(tǒng)編程用) </p><p> P1.6 MISO(在系統(tǒng)編程用) </p>
51、<p> P1.7 SCK(在系統(tǒng)編程用) </p><p> P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL邏輯電平。對(duì)P2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)
52、時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。 </p><p> P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)
53、可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。 </p><p> 端口引腳 第二功能 </p><p> P3.0 RXD(串行輸入口) </p><p> P3.1 TXD(串行輸出口) </p>
54、;<p> P3.2 INTO(外中斷0) </p><p> P3.3 INT1(外中斷1) </p><p> P3.4 TO(定時(shí)/計(jì)數(shù)器0) </p><p> P3.5 T1(定時(shí)/計(jì)數(shù)器1) </p><p> P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) </p><p> P3.7
55、RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) </p><p> 此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。</p><p> RST——復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 </p><p> ALE/PROG——當(dāng)訪(fǎng)問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般
56、情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。 如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效
57、。 </p><p> PSEN——程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。 </p><p> EA/VPP——外部訪(fǎng)問(wèn)允許,欲使CPU僅訪(fǎng)問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接
58、地)。需注意的是:如果加密位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。 </p><p> XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 </p><p> XTAL2:振蕩器反相放大器的輸出端。 &
59、lt;/p><p> 并不是所有的地址都被定義了。片上沒(méi)有定義的地址是不能用的。讀這些地址,一般將得到一個(gè)隨機(jī)數(shù)據(jù);寫(xiě)入的數(shù)據(jù)將會(huì)無(wú)效。用戶(hù)不應(yīng)該給這些未定義的地址寫(xiě)入數(shù)據(jù)“1”。由于這些寄存器在將來(lái)可能被賦予新的功能,復(fù)位后,這些位都為“0”。定時(shí)器 2 寄存器:寄存器T2CON 和T2MOD 包含定時(shí)器2 的控制位和狀態(tài)位(如表2和表3所示),寄存器對(duì)RCAP2H和RCAP2L是定時(shí)器2的捕捉/自動(dòng)重載寄存器。
60、 </p><p> 中斷寄存器:各中斷允許位在IE寄存器中,六個(gè)中斷源的兩個(gè)優(yōu)先級(jí)也可在IE中設(shè)置。</p><p> 雙數(shù)據(jù)指針寄存器:為了更有利于訪(fǎng)問(wèn)內(nèi)部和外部數(shù)據(jù)存儲(chǔ)器,系統(tǒng)提供了兩路16位數(shù)據(jù)指針寄存器:位于SFR中82H~83H的DP0和位于84H~85。特殊寄存器AUXR1中DPS=0 選擇DP0;DPS=1 選擇DP1。用戶(hù)應(yīng)該在訪(fǎng)問(wèn)數(shù)據(jù)指針寄存器前先初始化DPS至合理
61、的值。</p><p> 輔助寄存器 AUXR 地址:8EH 復(fù)位值:XXX00XX0B不可位尋址預(yù)留擴(kuò)展用DISALE ALE使能標(biāo)志位 :</p><p> DISALE 操作方式 :</p><p> 為0時(shí) ALE 以1/6晶振頻率輸出信號(hào)。</p><p> 為1時(shí) ALE 只有在執(zhí)行MOVX 或MOVC指令時(shí)激活。<
62、/p><p> DISRTO 復(fù)位輸出標(biāo)志位:</p><p> 為0時(shí)看門(mén)狗(WDT)定時(shí)結(jié)束,Reset 輸出高電平。</p><p> 為1時(shí)Reset 只有輸入。</p><p> WDIDLE 空閑模式下WDT 使能標(biāo)志位 :</p><p> 為0時(shí)空閑模式下,WDT繼續(xù)計(jì)數(shù)。</p>
63、<p> 為1時(shí)空閑模式下,WDT停止計(jì)數(shù)。</p><p> 掉電標(biāo)志位:掉電標(biāo)志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上電期間POF置“1”。POF可以軟件控制使用與否,但不受復(fù)位影響。</p><p> 輔助寄存器1:AUXR1地址A2H 復(fù)位值:XXXXXXX0B不可位尋址。</p><p> 預(yù)留擴(kuò)展用DPS 數(shù)據(jù)指
64、針選擇位DPS:為0時(shí)選擇DPTR寄存器DP0L和DP0H1,為1時(shí)選擇DPTR寄存器DP1L和DP1H。</p><p><b> 存儲(chǔ)器結(jié)構(gòu)</b></p><p> MCS-51器件有單獨(dú)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都可以64K尋址。 </p><p> 程序存儲(chǔ)器:如果EA引腳接地,程序讀取只從外部存儲(chǔ)器開(kāi)
65、始。 </p><p> 對(duì)于 89S52,如果EA 接VCC,程序讀寫(xiě)先從內(nèi)部存儲(chǔ)器(地址為0000H~1FFFH)開(kāi)始,接著從外部尋址,尋址地址為:2000H~FFFFH。 </p><p> 數(shù)據(jù)存儲(chǔ)器:AT89S52 有256 字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128 字節(jié)與特殊功能寄存器重疊。也就是說(shuō)高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開(kāi)的。 </p>&
66、lt;p> 當(dāng)一條指令訪(fǎng)問(wèn)高于7FH 的地址時(shí),尋址方式?jīng)Q定CPU 訪(fǎng)問(wèn)高128 字節(jié)RAM 還是特殊功能寄存器空間。直接尋址方式訪(fǎng)問(wèn)特殊功能寄存器(SFR)。 </p><p> 例如,下面的直接尋址指令訪(fǎng)問(wèn)0A0H(P2口)存儲(chǔ)單元MOV 0A0H , #data使用間接尋址方式訪(fǎng)問(wèn)高128 字節(jié)RAM。例如,下面的間接尋址方式中,R0 內(nèi)容為0A0H,訪(fǎng)問(wèn)的是地址0A0H的寄存器,而不是P2口(它
67、的地址也是0A0H)。 </p><p> MOV @R0 , #data堆棧操作也是簡(jiǎn)介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆棧空間。</p><p><b> 看門(mén)狗定時(shí)器</b></p><p> WDT是一種需要軟件控制的復(fù)位方式。WDT 由13位計(jì)數(shù)器和特殊功能寄存器中的看門(mén)狗定時(shí)器復(fù)位存儲(chǔ)器(WDTRST)構(gòu)成。WD
68、T 在默認(rèn)情況下無(wú)法工作;為了激活WDT,用戶(hù)必須往WDTRST 寄存器(地址:0A6H)中依次寫(xiě)入01EH 和0E1H。當(dāng)WDT激活后,晶振工作,WDT在每個(gè)機(jī)器周期都會(huì)增加。WDT計(jì)時(shí)周期依賴(lài)于外部時(shí)鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒(méi)有辦法停止WDT工作。當(dāng)WDT溢出,它將驅(qū)動(dòng)RSR引腳一個(gè)高電平輸出。 </p><p> WDT的使用為了激活WDT,用戶(hù)必須向WDTRST寄存器(地址為0A6
69、H的SFR)依次寫(xiě)入0E1H和0E1H。當(dāng)WDT激活后,用戶(hù)必須向WDTRST寫(xiě)入01EH和0E1H喂狗來(lái)避免WDT溢出。當(dāng)計(jì)數(shù)達(dá)到8191(1FFFH)時(shí),13 位計(jì)數(shù)器將會(huì)溢出,這將會(huì)復(fù)位器件。晶振正常工作、WDT激活后,每一個(gè)機(jī)器周期WDT 都會(huì)增加。為了復(fù)位WDT,用戶(hù)必須向WDTRST 寫(xiě)入01EH 和0E1H(WDTRST 是只讀寄存器)。WDT 計(jì)數(shù)器不能讀或?qū)憽?</p><p> 當(dāng)WDT 計(jì)
70、數(shù)器溢出時(shí),將給RST 引腳產(chǎn)生一個(gè)復(fù)位脈沖輸出,這個(gè)復(fù)位脈沖持續(xù)96個(gè)晶振周期(TOSC),其中TOSC=1/FOSC。為了很好地使用WDT,應(yīng)該在一定時(shí)間內(nèi)周期性寫(xiě)入那部分代碼,以避免WDT復(fù)位。 </p><p> 掉電和空閑方式下的 WDT在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶(hù)不必喂狗。有兩種方式可以離開(kāi)掉電模式:硬件復(fù)位或通過(guò)一個(gè)激活的外部中斷。通過(guò)硬件復(fù)位退出掉電
71、模式后,用戶(hù)就應(yīng)該給WDT 喂狗,就如同通常AT89S52 復(fù)位一樣。 </p><p> 通過(guò)中斷退出掉電模式的情形有很大的不同。中斷應(yīng)持續(xù)拉低很長(zhǎng)一段時(shí)間,使得晶振穩(wěn)定。當(dāng)中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時(shí)候復(fù)位器件,WDT 直到中斷拉低后才開(kāi)始工作。這就意味著WDT 應(yīng)該在中斷服務(wù)程序中復(fù)位。 </p><p> 為了確保在離開(kāi)掉電模式最初的幾個(gè)狀態(tài)
72、WDT不被溢出,最好在進(jìn)入掉電模式前就復(fù)位WDT。 </p><p> 在進(jìn)入待機(jī)模式前,特殊寄存器AUXR的WDIDLE位用來(lái)決定WDT是否繼續(xù)計(jì)數(shù)。 </p><p> 默認(rèn)狀態(tài)下,在待機(jī)模式下,WDIDLE=0,WDT繼續(xù)計(jì)數(shù)。為了防止WDT在待機(jī)模式下復(fù)位AT89S52,用戶(hù)應(yīng)該建立一個(gè)定時(shí)器,定時(shí)離開(kāi)待機(jī)模式,喂狗,再重新進(jìn)入待機(jī)模式。 </p><p&g
73、t;<b> UART</b></p><p> 在A(yíng)T89S52 中,UART 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關(guān)于UART 的信息,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“ProductOverview”即可。 </p><p> 定時(shí)器 0 和定
74、時(shí)器1</p><p> 在A(yíng)T89S52 中,定時(shí)器0 和定時(shí)器1 的操作與AT89C51 和AT89C52 一樣。為了獲得更深入的關(guān)于UART 的信息,選擇“Products”,然后選擇“8051-Architech Flash Microcontroller”,再選擇“ProductOverview”即可。 </p><p> 定時(shí)器2是一個(gè)16位定時(shí)/計(jì)數(shù)器,它既可以做定時(shí)器,
75、又可以做事件計(jì)數(shù)器。其工作方式由特殊寄存器T2CON中的C/T2位選擇。定時(shí)器2有三種工作模式: </p><p> 捕捉方式、自動(dòng)重載(向下或向上計(jì)數(shù))和波特率發(fā)生器。如表3 所示,工作模式由T2CON中的相關(guān)位選擇。定時(shí)器2 有2 個(gè)8位寄存器:TH2和TL2。在定時(shí)工作方式中,每個(gè)機(jī)器周期,TL2 寄存器都會(huì)加1。由于一個(gè)機(jī)器周期由12 個(gè)晶振周期構(gòu)成,因此,計(jì)數(shù)頻率就是晶振頻率的1/12。</p&
76、gt;<p> 捕捉方式在捕捉模式下,通過(guò)T2CON中的EXEN2來(lái)選擇兩種方式。如果EXEN2=0,定時(shí)器2時(shí)一個(gè)16位定時(shí)/計(jì)數(shù)器,溢出時(shí),對(duì)T2CON 的TF2標(biāo)志置位,TF2引起中斷。如果EXEN2=1,定時(shí)器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P1.1)1至0的下跳變也會(huì)使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外,T2EX 的跳變會(huì)引起T2CON 中的EXF2 置位
77、。像TF2 一樣,T2EX 也會(huì)引起中斷。在計(jì)數(shù)工作方式下,寄存器在相關(guān)外部輸入角T2 發(fā)生1 至0 的下降沿時(shí)增加1。在這種方式下,每個(gè)機(jī)器周期的S5P2期間采樣外部輸入。一個(gè)機(jī)器周期采樣到高電平,而下一個(gè)周期采樣到低電平,計(jì)數(shù)器將加1。在檢測(cè)到跳變的這個(gè)周期的S3P1 期間,新的計(jì)數(shù)值出現(xiàn)在寄存器中。因?yàn)樽R(shí)別1-0的跳變需要2個(gè)機(jī)器周期(24個(gè)晶振周期),所以,最大的計(jì)數(shù)頻率不高于晶振頻率的1/24。為了確保給定的電平在改變前采樣到
78、一次,電平應(yīng)該至少在一個(gè)完整的機(jī)器周期內(nèi)保持不變。 </p><p> 自動(dòng)重載當(dāng)定時(shí)器2 工作于16 位自動(dòng)重載模式,可對(duì)其編程實(shí)現(xiàn)向上計(jì)數(shù)或向下計(jì)數(shù)。這一功能可以通過(guò)特殊寄存器T2MOD中的DCEN(向下計(jì)數(shù)允許位)來(lái)實(shí)現(xiàn)。通過(guò)復(fù)位,DCEN 被置為0,因此,定時(shí)器2 默認(rèn)為向上計(jì)數(shù)。DCEN 設(shè)置后,定時(shí)器2就可以取決于T2EX向上、向下計(jì)數(shù)。 </p><p> DCEN=0
79、時(shí),定時(shí)器2 自動(dòng)計(jì)數(shù)。通過(guò)T2CON 中的EXEN2 位可以選擇兩種方式。如果EXEN2=0,定時(shí)器2計(jì)數(shù),計(jì)到0FFFFH后置位TF2溢出標(biāo)志。計(jì)數(shù)溢出也使得定時(shí)器寄存器重新從RCAP2H 和RCAP2L 中加載16 位值。定時(shí)器工作于捕捉模式,RCAP2H和RCAP2L的值可以由軟件預(yù)設(shè)。如果EXEN2=1,計(jì)數(shù)溢出或在外部T2EX(P1.1)引腳上的1到0的下跳變都會(huì)觸發(fā)16位重載。這個(gè)跳變也置位EXF2中斷標(biāo)志位。 </
80、p><p> T2EX 上的一個(gè)邏輯0 使得定時(shí)器2 向下計(jì)數(shù)。當(dāng)TH2 和TL2 分別等于RCAP2H 和RCAP2L中的值的時(shí)候,計(jì)數(shù)器下溢。計(jì)數(shù)器下溢,置位TF2,并將0FFFFH加載到定時(shí)器存儲(chǔ)器中。置位DCEN,允許定時(shí)器2向上或向下計(jì)數(shù)。在這種模式下,T2EX引腳控制著計(jì)數(shù)的方向。T2EX上的一個(gè)邏輯1使得定時(shí)器2向上計(jì)數(shù)。定時(shí)器計(jì)到0FFFFH溢出,并置位TF2。定時(shí)器的溢出也使得RCAP2H和RCA
81、P2L中的16位值分別加載到定時(shí)器存儲(chǔ)器TH2和TL2中。 </p><p> 定時(shí)器2上溢或下溢,外部中斷標(biāo)志位EXF2 被鎖死。在這種工作模式下,EXF2不能觸發(fā)中斷。</p><p> T2MOD 地址:0C9H 復(fù)位值:XXXXXX00B不可位尋址。</p><p><b> 中斷</b></p><p>
82、 AT89S52 有6個(gè)中斷源:兩個(gè)外部中斷(INT0 和INT1),三個(gè)定時(shí)中斷(定時(shí)器0、1、2)和一個(gè)串行中斷。這些中斷如圖10所示每個(gè)中斷源都可以通過(guò)置位或清除特殊寄存器IE 中的相關(guān)中斷允許控制位分別使得中斷源有效或無(wú)效。IE還包括一個(gè)中斷允許總控制位EA,它能一次禁止所有中斷。 </p><p> 如表5所示,IE.6位是不可用的。對(duì)于A(yíng)T89S52,IE.5位也是不能用的。用戶(hù)軟件不應(yīng)給這些位寫(xiě)
83、1。它們?yōu)锳T89系列新產(chǎn)品預(yù)留。 </p><p> 定時(shí)器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進(jìn)入中斷服務(wù)后,這些標(biāo)志位都可以由硬件清0。實(shí)際上,中斷服務(wù)程序必須判定是否是TF2 或EXF2激活中斷,標(biāo)志位也必須由軟件清0。 </p><p> 定時(shí)器0和定時(shí)器1標(biāo)志位TF0 和TF1在計(jì)數(shù)溢出的那個(gè)周期的S5P2被置位。它們的值一直到下一個(gè)周期被電路捕捉
84、下來(lái)。然而,定時(shí)器2 的標(biāo)志位TF2 在計(jì)數(shù)溢出的那個(gè)周期的S2P2被置位,在同一個(gè)周期被電路捕捉下來(lái)。</p><p> 2.1.3 紅外線(xiàn)傳感器</p><p> 紅外線(xiàn)傳感器采用反射接收原理。一個(gè)紅外線(xiàn)傳感器配置了一個(gè)紅外線(xiàn)發(fā)接受器、一個(gè)紅外線(xiàn)接受器及其上拉電阻。其應(yīng)用電路如圖2.4所示。紅外線(xiàn)發(fā)射器通電后不斷會(huì)發(fā)射一定強(qiáng)度的紅外線(xiàn)照射物體。紅外線(xiàn)接收器在接受到一定強(qiáng)度的紅外線(xiàn)會(huì)
85、后導(dǎo)通。如圖通過(guò)在紅外線(xiàn)的正極接出一個(gè)信號(hào)來(lái)觀(guān)察紅外線(xiàn)接收器是否導(dǎo)通。當(dāng)紅外線(xiàn)接收器導(dǎo)通時(shí),輸出信號(hào)為0;反之則為1。紅外線(xiàn)在不同顏色的物體上反射程度是不同的,當(dāng)紅外線(xiàn)傳感器在黑色物體時(shí),黑色物體吸收大量紅外線(xiàn),反射少量紅外線(xiàn),紅外線(xiàn)接收其不足以導(dǎo)通,輸出信號(hào)為1。當(dāng)紅外線(xiàn)傳感器在白色物體上時(shí),白色物體吸收的紅外線(xiàn)少,反射的紅外線(xiàn)少,紅外線(xiàn)接收器導(dǎo)通,輸出信號(hào)為0。因此本設(shè)計(jì)采用紅外線(xiàn)傳感器模塊與有黑線(xiàn)的路面組合使用。</p>
86、;<p> 圖2.4紅外線(xiàn)傳感器的應(yīng)用電路</p><p><b> 2.2 模塊介紹</b></p><p> 2.2.1車(chē)頭傳感器模塊</p><p> 圖2.5 車(chē)頭傳感器模塊</p><p> 本系統(tǒng)共設(shè)計(jì)三個(gè)紅外線(xiàn)傳感器固定在底盤(pán)前沿,貼近地面,分別放置在電動(dòng)車(chē)車(chē)頭的正前方、左下方和右下
87、方兩。正常行駛時(shí),發(fā)射管發(fā)射紅外光照射地面,光線(xiàn)經(jīng)白紙反射后被接收管接收,輸出高電平信號(hào);電動(dòng)車(chē)經(jīng)過(guò)黑線(xiàn)時(shí),發(fā)射端發(fā)射的光線(xiàn)被黑線(xiàn)吸收,接收端接收不到反射光線(xiàn),傳感器輸出低電平信號(hào)。正前方的傳感器用于檢測(cè)障礙物。應(yīng)用圖如圖2.5所示。</p><p> 2.2.2 電動(dòng)小車(chē)模塊</p><p> 電動(dòng)小車(chē)由兩個(gè)直流電機(jī)與其驅(qū)動(dòng)芯片組成。一左一右位于小車(chē)前端兩邊。電機(jī)通過(guò)齒輪組帶動(dòng)輪胎。
88、后端是用于平衡的輪胎。小車(chē)電動(dòng)機(jī)模塊如圖2.6所示</p><p> 圖2.6 電動(dòng)小車(chē)模塊</p><p> 2.2.3 控制模塊</p><p><b> 1、時(shí)鐘電路</b></p><p> AT89S52雖然有內(nèi)部振蕩電路,但要形成時(shí)鐘,必須外部附加電路。AT89S52單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種。內(nèi)部時(shí)
89、鐘方式和外部時(shí)鐘方式。</p><p> 本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時(shí)元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩。本設(shè)計(jì)采用最常用的內(nèi)部時(shí)鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回</p><p> 路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容值無(wú)嚴(yán)格要求,CX1、CX2可在20pF到100pF之間取值。所以本設(shè)計(jì)中,振蕩晶體
90、選擇11.0592MHZ,電容選擇30pF。</p><p><b> 2、復(fù)位電路</b></p><p> AT89S52的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)在每個(gè)機(jī)器周期的對(duì)復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。</p><p> 最簡(jiǎn)單的上電自動(dòng)復(fù)位
91、電路中上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要VCC的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。時(shí)鐘頻率用11.0592MHZ時(shí)C取10uF,R取10KΩ。本設(shè)計(jì)就是用就是最簡(jiǎn)單的上電復(fù)位??刂破髂K如圖2.7所示。</p><p> 圖2.7 控制器模塊</p><p><b> 2.3 整體方案</b></p><p>
92、; 小車(chē)的尋跡原理是當(dāng)左側(cè)傳感器在黑線(xiàn)上時(shí),傳感器輸出高電平,在白色地板上時(shí)輸出低電平。電平信號(hào)進(jìn)入單片機(jī)P3.5口,同理右側(cè)傳感器將電平信號(hào)傳送到單片機(jī)P3.7口。單片機(jī)通過(guò)P0.0和P0.1口控制左電機(jī)組,通過(guò)P0.2和P0.3口控制右電機(jī)組。當(dāng)正前方傳感器檢測(cè)出小車(chē)前方有物體阻擋時(shí),正前方傳感器輸出低電平信號(hào)到單片機(jī)的P3.6口,單片機(jī)控制小車(chē)行動(dòng)。整體硬件示意圖如圖2.8所示。</p><p> 當(dāng)左
93、右傳感器都在黑線(xiàn)上時(shí),單片機(jī)控制左右電機(jī)同時(shí)一同速度正向轉(zhuǎn)動(dòng),小車(chē)向前行駛。當(dāng)左側(cè)傳感器在黑線(xiàn)外,右側(cè)傳感器在黑線(xiàn)上,單片機(jī)控制右側(cè)的電機(jī)停止(或反向轉(zhuǎn)動(dòng)),左側(cè)的電機(jī)正向轉(zhuǎn)動(dòng)(或停止)來(lái)控制小車(chē)向右轉(zhuǎn)。當(dāng)右側(cè)傳感器在黑線(xiàn)外,左側(cè)傳感器在黑線(xiàn)上,單片機(jī)控制左側(cè)的電機(jī)停止(或反向轉(zhuǎn)動(dòng)),右側(cè)的電機(jī)正向轉(zhuǎn)動(dòng)(或停止)來(lái)控制小車(chē)向左轉(zhuǎn)。從而來(lái)實(shí)現(xiàn)小車(chē)的自動(dòng)尋跡。當(dāng)正前方的有物體阻擋時(shí),單片機(jī)控制小車(chē)停下來(lái)。</p><p&
94、gt; 圖2.8 小車(chē)整體示意圖</p><p><b> 3 軟件設(shè)計(jì)</b></p><p><b> 3.1 程序設(shè)計(jì)</b></p><p> 程序要的任務(wù)是,讓單片機(jī)查詢(xún)傳感器模塊發(fā)出的路面信號(hào),根據(jù)信號(hào)作出反應(yīng),控制電動(dòng)機(jī)工作實(shí)現(xiàn)自動(dòng)尋跡。其程序流程圖3.1所示。</p><p>
95、; 圖3.1 程序流程圖</p><p> 3.1.1 程序的模塊化設(shè)計(jì)</p><p> 在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)生產(chǎn)對(duì)象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)控制系統(tǒng)設(shè)計(jì)中占重要地位。</p><p> 為了完成要求設(shè)計(jì),在進(jìn)行軟件設(shè)計(jì)時(shí),通常把整個(gè)過(guò)程分成若干個(gè)部分,每一部分叫做一個(gè)模塊。所謂“模塊
96、”,實(shí)質(zhì)上就是所完成一定功能,相對(duì)獨(dú)立的程序段,這種程序設(shè)計(jì)方法叫模塊程序設(shè)計(jì)法。</p><p> 模塊程序設(shè)計(jì)法的主要優(yōu)點(diǎn)是:</p><p> 1、單個(gè)模塊比起一個(gè)完整的程序易編寫(xiě)及調(diào)試;</p><p> 2、模塊可以共存,一個(gè)模塊可以被多個(gè)任務(wù)在不同條件下調(diào)用;</p><p> 3、模塊程序允許設(shè)計(jì)者分割任務(wù)和利用已有程序
97、,為設(shè)計(jì)者提供方便。</p><p> 本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序﹑延時(shí)子程序﹑轉(zhuǎn)向子程序構(gòu)成。具體程序見(jiàn)附錄1。
98、</p><p> 3.1.2 部分程序設(shè)計(jì)</p><p> 1、延時(shí)子程序。制作一個(gè)延時(shí)子程序,讓指令執(zhí)行足夠長(zhǎng)的時(shí)間。</p><p> Void Delay()</p><p> { Unsigned Int DelayTime=50000;</p><p> while(DelayTime--);
99、</p><p><b> return;</b></p><p><b> }</b></p><p><b> 2、轉(zhuǎn)向子程序。</b></p><p> void ControlCar(unsigned char ConType) </p><
100、p><b> {</b></p><p> M1A=0; //將M1電機(jī)A端初始化為0</p><p> M1B=0; //將M1電機(jī)B端初始化為0</p><p> M2A=0; //將M2電機(jī)A端初始化為0</p><p> M2B=0
101、; //將M2電機(jī)B端初始化為0</p><p> switch(ConType) //判斷用戶(hù)設(shè)定電機(jī)形式</p><p><b> {</b></p><p> case 1: //前進(jìn)。判斷用戶(hù)是否選擇形式1</p><p> { M1A=1;
102、 //M1電機(jī)正轉(zhuǎn)</p><p> M2A=1; //M2電機(jī)正轉(zhuǎn)</p><p><b> break;</b></p><p><b> }</b></p><p> case 2: //后退。判斷用戶(hù)是否選擇形式2</p&g
103、t;<p> { M1B=1; //M1電機(jī)反轉(zhuǎn)</p><p> M2B=1; //M2電機(jī)反轉(zhuǎn)</p><p><b> break;</b></p><p><b> }</b></p><p> case 3:
104、 //左轉(zhuǎn)。判斷用戶(hù)是否選擇形式3</p><p><b> { </b></p><p> M1B=1; //M1電機(jī)反轉(zhuǎn)</p><p> M2A=1; //M2電機(jī)正轉(zhuǎn)</p><p><b> break;</b></p><p
105、><b> }</b></p><p> case 4: //右轉(zhuǎn)。判斷用戶(hù)是否選擇形式4</p><p> { M1A=1; //M1電機(jī)正轉(zhuǎn)</p><p> M2B=1; //M2電機(jī)反轉(zhuǎn)</p><p><b> break;<
106、;/b></p><p><b> }</b></p><p> case 5: //停止。判斷用戶(hù)是否選擇形式8</p><p><b> {</b></p><p> break; //退出當(dāng)前選擇</p><p>
107、<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 3、主程序。</b></p><p> void main() //主程序
108、入口</p><p><b> {</b></p><p> bit RunFlag=0; //定義小車(chē)運(yùn)行標(biāo)志位</p><p> RunShow=0; //初始化顯示狀態(tài)</p><p> while(1)
109、 </p><p><b> {</b></p><p> Start: ControlCar(1); //初始化小車(chē)運(yùn)行狀態(tài) </p><p> LeftLed=LeftIR; //前方左側(cè)指示燈指示出前方左側(cè)紅外探頭狀態(tài)</p><p&g
110、t; RightLed=RightIR; //前方右側(cè)指示燈指示出前方右側(cè)紅外探頭狀態(tài)</p><p> FontIRState=FontIR; //定義蔽障狀態(tài)位</p><p> if(FontIR==0) //正前方傳感器接收到了信號(hào)</p><p> {ControlCar(2
111、); //小車(chē)向后倒退</p><p> SB1=!SB1; //揚(yáng)聲器電平取反 </p><p> Delay(); //延時(shí)一定時(shí)間</p><p> SB1=!SB1; </p><
112、;p> Delay(); </p><p> SB1=!SB1; </p><p> Delay(); </p><p> SB1=!SB1; </p><p> Delay
113、(); </p><p> SB1=!SB1; </p><p> Delay(); </p><p> SB1=!SB1; </p><p> Delay(); </p><p> SB1=!SB1;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的智能尋跡小車(chē)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的智能尋跡小車(chē)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)基于單片機(jī)的自動(dòng)往返小車(chē)
- 創(chuàng)新設(shè)計(jì)與實(shí)踐報(bào)告--自動(dòng)尋跡小車(chē)--基于s08單片機(jī)的自動(dòng)尋跡小車(chē)設(shè)計(jì)
- 基于atmega8單片機(jī)尋跡小車(chē)設(shè)計(jì)
- 基于51單片機(jī)的智能尋跡小車(chē)
- 基于單片機(jī)的尋光、尋跡小車(chē).rar
- 基于單片機(jī)的自動(dòng)送料小車(chē)的畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的尋光、尋跡小車(chē).rar
- 基于單片機(jī)的智能小車(chē)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的智能小車(chē)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的智能小車(chē)的設(shè)計(jì)
- 基于單片機(jī)的wifi智能小車(chē)設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的電動(dòng)智能小車(chē)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于arduino單片機(jī)的智能小車(chē)設(shè)計(jì)
- 基于單片機(jī)的wifi智能小車(chē)設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)基于arduino單片機(jī)的智能小車(chē)設(shè)計(jì)
- 基于單片機(jī)控制wifi只能小車(chē)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的多功能智能小車(chē)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的語(yǔ)音控制小車(chē)畢業(yè)設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論