2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)論文</b></p><p>  課題: 基于單片機(jī)AT89C52控制的交通燈設(shè)計(jì)與仿真 </p><p>  專 業(yè) </p><p>  學(xué)生姓名 </p><p>  班 級(jí) &

2、lt;/p><p>  學(xué) 號(hào) </p><p>  指導(dǎo)教師 </p><p>  完成日期 </p><p><b>  摘 要</b></p><p>  十字路口車(chē)輛穿梭,行人熙攘,車(chē)行車(chē)道,人行

3、人道,有條不紊。那么靠什么來(lái)實(shí)現(xiàn)這井然秩序呢?靠的是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控制方式很多。本設(shè)計(jì)主要分為五大模塊輸入控制電路、時(shí)鐘控制電路、片內(nèi)外程序切換控制、顯示電路。以MSC-51系列單片機(jī)IntelAT89C52為中心器件來(lái)設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了AT89C52芯片的P1口設(shè)置紅、綠燈、黃燈燃亮?xí)r間的功能;為了系統(tǒng)穩(wěn)定可靠采用了74LS14施密特觸發(fā)器芯片的消抖電路,避免了系統(tǒng)因輸入信號(hào)抖動(dòng)產(chǎn)生誤操作;顯示時(shí)間直接通過(guò)

4、AT89C52的P3口輸出,由NPN驅(qū)動(dòng)LED數(shù)碼管顯示紅燈燃亮?xí)r間。</p><p><b>  Abstract</b></p><p>  The intersections vehicle wears shuttle, pedestrian Xi Rang, garage driveway, person's sidewalk, orderly. So

5、 depend what to carry out this well arranged order? What to depend is a traffic sign light of automatic conductor system. The control method of the traffic sign light is a lot of. This design is mainly divided into five

6、greatest molds a piece the electric circuit, clock of the importation control a control outside procedure inside the electric circuit, slice to cut over a control and shows</p><p><b>  目 錄</b>&l

7、t;/p><p><b>  摘 要I</b></p><p>  AbstractI</p><p><b>  目 錄II</b></p><p><b>  第一章 緒論1</b></p><p>  1.1交通燈設(shè)計(jì)的意義1</p&

8、gt;<p>  1.2交通燈設(shè)計(jì)的思想1</p><p>  1.3交通燈設(shè)計(jì)滿足的基本功能2</p><p>  第二章 總體方案3</p><p>  2.1總體方案設(shè)計(jì)思想3</p><p>  2.2系統(tǒng)方案選擇與比較3</p><p>  2.3系統(tǒng)總體方案論證5</p>

9、;<p>  第三章 硬件設(shè)計(jì)6</p><p>  3.1 總體設(shè)計(jì)與描述6</p><p>  3.2 交通燈通行模式及行車(chē)方向指示6</p><p>  3.3 主干道單獨(dú)時(shí)間設(shè)置功能8</p><p>  3.4 倒計(jì)時(shí)計(jì)數(shù)功能及其實(shí)現(xiàn)8</p><p>  3.5 各功能模塊硬件設(shè)計(jì)及

10、實(shí)現(xiàn)9</p><p>  第四章 軟件設(shè)計(jì)12</p><p>  4.1 軟件總體流程圖12</p><p>  4.2 定時(shí)器初始化12</p><p>  4.3 動(dòng)態(tài)顯示13</p><p>  4.4 設(shè)置狀態(tài)子程序14</p><p>  第五章 系統(tǒng)調(diào)試15<

11、/p><p>  5.1 系統(tǒng)操作說(shuō)明15</p><p><b>  5.2 調(diào)試15</b></p><p>  5.3 調(diào)試心得19</p><p>  第六章 設(shè)計(jì)總結(jié)21</p><p><b>  致 謝22</b></p><p>

12、;<b>  參考資料23</b></p><p><b>  附錄24</b></p><p><b> ?、裨韴D24</b></p><p><b> ?、蛟绦?5</b></p><p><b>  第一章 緒論 </b&

13、gt;</p><p>  1.1交通燈設(shè)計(jì)的意義</p><p>  交通的發(fā)達(dá),標(biāo)志著城市的發(fā)達(dá),相對(duì)交通的管理則顯得越來(lái)越重要。交通燈是城市交通中的重要指揮系統(tǒng),它與人們?nèi)粘I蠲芮邢嚓P(guān).隨著人們生活水平的提高,對(duì)交通管制也提出了更高的要求,因此提供一個(gè)可靠、安全、便捷的多功能交通燈控制系統(tǒng)有著現(xiàn)實(shí)的必要性。</p><p>  對(duì)于復(fù)雜的城市交通系統(tǒng),為了確

14、保安全,保證正常的交通秩序,十字路口的信號(hào)控制必需按照一定的規(guī)律變化,以便于車(chē)輛行人能順利地通過(guò)十字路口。</p><p>  單片機(jī)自問(wèn)世以來(lái),性能不斷提高和完善,其資源又能滿足很多場(chǎng)合的應(yīng)用,加之單片機(jī)具有集成度高、功能強(qiáng)、速度快、體積小、功耗低、使用方便、性能可靠、價(jià)格低廉,其易于產(chǎn)品化、抗干擾能力強(qiáng)、可在各種惡劣環(huán)境下可靠的工作等特點(diǎn)。特別是它強(qiáng)大的面向控制能力,使它在工業(yè)控制領(lǐng)域,智能儀表、外設(shè)控制、家

15、用電器、機(jī)器人、軍事裝置等方面得到了廣泛的應(yīng)用。</p><p>  考慮到單片機(jī)具有物美價(jià)廉、功能強(qiáng)、使用方便靈活、可靠性高等特點(diǎn),擬采用MCS - 51系列的單片機(jī)來(lái)實(shí)現(xiàn)十字路口交通信號(hào)燈的控制。 正常情況下,十字路口的紅綠燈應(yīng)交替變換,考慮緊急情況下,如有救護(hù)車(chē)或警車(chē)到來(lái)時(shí),應(yīng)優(yōu)先讓其通過(guò)。</p><p>  另外,單片機(jī)課程設(shè)計(jì)是應(yīng)用電子專業(yè)學(xué)生的必修課程。通過(guò)交通燈模擬系統(tǒng)的設(shè)

16、計(jì)可以進(jìn)一步認(rèn)識(shí)單片機(jī)在控制系統(tǒng)中的重要性。在完成理論學(xué)習(xí)和必要的實(shí)驗(yàn)后,掌握了單片機(jī)的基本原理和各種基本功能的應(yīng)用,但對(duì)單片機(jī)的硬件實(shí)際應(yīng)用設(shè)計(jì)和單片機(jī)完整的用戶程序設(shè)計(jì)還不清楚,實(shí)際動(dòng)手能力不夠,因此對(duì)該課程進(jìn)行一次課程設(shè)計(jì)是有必要的。</p><p>  交通燈模擬系統(tǒng)的課程設(shè)計(jì)既讓學(xué)生鞏固了課本學(xué)到的理論,還讓學(xué)生學(xué)習(xí)了單片機(jī)硬件電路設(shè)計(jì)和用戶程序設(shè)計(jì)的整個(gè)過(guò)程,同時(shí)學(xué)習(xí)了查閱資料、參考資料的方法。單片機(jī)

17、的課程設(shè)計(jì)主要是通過(guò)學(xué)生獨(dú)立設(shè)計(jì)方案并自己動(dòng)手用計(jì)算機(jī)電路設(shè)計(jì)軟件,編寫(xiě)和調(diào)試用戶程序,來(lái)加深對(duì)單片機(jī)的認(rèn)識(shí),充分發(fā)揮學(xué)生的創(chuàng)新能力。</p><p>  1.2交通燈設(shè)計(jì)的思想</p><p>  該設(shè)計(jì)在熟練掌握單片機(jī)及其仿真系統(tǒng)的使用方法基礎(chǔ)上,綜合應(yīng)用單片機(jī)原理、單片機(jī)應(yīng)用技術(shù)等課程方面的知識(shí),設(shè)計(jì)一個(gè)采用AT89C52單片機(jī)控制的交通燈控制電路。</p><p

18、>  根據(jù)設(shè)計(jì)功能及要求,我們可得系統(tǒng)的原理框圖如圖所示。</p><p>  根據(jù)系統(tǒng)的原理框圖,分別分析各部分電路的元器件的功能以及選擇合適的元件。具體設(shè)計(jì)思路如下:收集并整理資料,硬件設(shè)計(jì),軟件設(shè)計(jì),Proteus仿真,設(shè)計(jì)體會(huì)與總結(jié)。</p><p>  1.3交通燈設(shè)計(jì)滿足的基本功能</p><p>  1、南北方向(主干道)車(chē)道和東西方向(次干道)

19、車(chē)道兩條交叉道路上的車(chē)輛交替運(yùn)行,主干道每次通行時(shí)間都設(shè)為20秒、支干道每次通行間為20秒,時(shí)間可設(shè)置修改。</p><p>  2、在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮3秒鐘,才能變換運(yùn)行車(chē)道;</p><p>  3、黃燈亮?xí)r,要求每秒閃亮一次</p><p>  4、東西方向、南北方向車(chē)道除了有紅、黃、綠燈指示外,每一種燈亮的時(shí)間都用顯示器進(jìn)行顯示(采用計(jì)時(shí)的方法)

20、。</p><p>  5、一道有車(chē)而另一道無(wú)車(chē),交通燈控制系統(tǒng)能立即讓有車(chē)道放行。</p><p><b>  第二章 總體方案</b></p><p>  2.1總體方案設(shè)計(jì)思想</p><p>  根據(jù)傳統(tǒng)十字路口交通燈的設(shè)計(jì),可將本系統(tǒng)分為四個(gè)模塊,第一個(gè)模塊是控制模塊,主要負(fù)責(zé)整個(gè)系統(tǒng)工作的控制和運(yùn)算,從而使各

21、模塊正常工作;第二個(gè)模塊為顯示模塊,主要是對(duì)車(chē)輛和行人應(yīng)該遵守交通規(guī)則的指導(dǎo)性的直觀顯示,它主要包括倒計(jì)時(shí)顯示和紅、綠、黃燈兩大部分;第三個(gè)模塊是輸入模塊,它的主要作用是輔助控制模塊,相當(dāng)于輸入裝置,利用它可以對(duì)交通燈各路口通行時(shí)間的設(shè)置以及出現(xiàn)緊急情況時(shí),進(jìn)行不同工作方式的切換設(shè)置;第四個(gè)模塊是電源模塊,它是整個(gè)系統(tǒng)的“心臟”,負(fù)責(zé)給各模塊提供合適的電壓,讓各模塊能穩(wěn)定工作。其系統(tǒng)設(shè)計(jì)結(jié)構(gòu)如圖2-1所示:</p><

22、;p>  2.2系統(tǒng)方案選擇與比較</p><p>  2.2.1控制模塊方案選擇</p><p>  方案一:由計(jì)數(shù)器74LS161級(jí)聯(lián)組成,配合譯碼器和秒脈沖信號(hào)發(fā)生器等器件組成交通燈系統(tǒng),整個(gè)系統(tǒng)簡(jiǎn)單,控制簡(jiǎn)單,調(diào)試容易等優(yōu)點(diǎn)。 </p><p>  方案二:采用ATC公司的單片機(jī)ATC89C52作為控制器。單片機(jī)運(yùn)算能力強(qiáng),軟件編程靈活,自由度大。它是

23、MCS-51系列單片機(jī)的派生產(chǎn)品,在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,使用時(shí)容易掌握;采用ATC89C52單片機(jī)穩(wěn)定可靠、應(yīng)用廣泛、通用性強(qiáng),在系統(tǒng)/在應(yīng)用可編程。</p><p>  方案比較:采用方案一來(lái)實(shí)現(xiàn)十字路口交通燈控制系統(tǒng)非常方便,電路結(jié)構(gòu)簡(jiǎn)單,控制單一,但整個(gè)系統(tǒng)性能不是很高,倒計(jì)時(shí)不是非常精確,如果要求系統(tǒng)能設(shè)置不同工作時(shí)間不容易,因而對(duì)于完成題目較困難,而方案二完全能實(shí)

24、現(xiàn)設(shè)計(jì)要求,容易掌握,利用編程,易控制,I/O接口很多,易于擴(kuò)展外圍電路,價(jià)格便宜,故選擇方案二。</p><p>  2.2.2顯示模塊方案選擇</p><p>  該系統(tǒng)要求完成倒計(jì)時(shí)、狀態(tài)燈等功能?;谏鲜鲈颍紤]了三種方案。</p><p>  方案一:完全采用數(shù)碼管顯示。這種方案只顯示有限的符號(hào)和數(shù)碼字苻,無(wú)法勝任題目要求。</p><

25、;p>  方案二:完全采用點(diǎn)陣式LED 顯示。這種方案實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形等。</p><p>  方案三:用七段LED數(shù)碼管完成倒計(jì)時(shí)顯示,用LED燈作為狀態(tài)燈指示功能。</p><p>  方案比較:方案一和方案二都不符合設(shè)計(jì)要求,實(shí)現(xiàn)較復(fù)雜,而方案三采用數(shù)碼管與LED燈相結(jié)合的方法因?yàn)樵O(shè)計(jì)既要求倒計(jì)時(shí)數(shù)字輸出,又要求

26、有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)情況,用數(shù)碼管與LED燈分別顯示時(shí)間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。權(quán)衡利弊,選擇方案三。</p><p>  2.2.3輸入模塊方案選擇</p><p>  方案一:采用8155擴(kuò)展I/O 口及鍵盤(pán),顯示等。該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有RAM,及計(jì)數(shù)器。若用該方案,可提供較多I/O 口,但操作起來(lái)稍顯復(fù)雜

27、。</p><p>  方案二: 直接在IO口線上接上按鍵開(kāi)關(guān)。因?yàn)樵O(shè)計(jì)時(shí)精簡(jiǎn)和優(yōu)化了電路,所以剩余的口資源還比較多,我們使用三個(gè)按鍵,分別是SET_KEY、UP_KEY、DOWN_KEY。 由于該系統(tǒng)對(duì)于交通燈及數(shù)碼管的控制,只用單片機(jī)本身的I/O 口就可實(shí)現(xiàn),且本身的計(jì)數(shù)器及RAM已經(jīng)夠用,故選擇方案二。</p><p>  2.2.4電源模塊方案選擇</p>&

28、lt;p>  方案一:采用單片機(jī)控制模塊提供電源。該方案的優(yōu)點(diǎn)是系統(tǒng)簡(jiǎn)明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高,不能驅(qū)動(dòng)數(shù)碼管。</p><p>  方案二:采用獨(dú)立的穩(wěn)壓電源,采用開(kāi)關(guān)電源作為整個(gè)系統(tǒng)的供電,它具有多路電源輸出,此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源。</p><p>  方案比較:方案一只采用單片機(jī)自身的I/O來(lái)驅(qū)動(dòng)數(shù)碼管顯示是不

29、行的,而方案二雖然要給各模塊供電,但卻能給各模塊提供穩(wěn)定可靠的電壓從而達(dá)到顯示明亮的程度。故選擇第二種方案。</p><p>  2.3系統(tǒng)總體方案論證</p><p>  經(jīng)上述各模塊的方案選擇與論證,十字路口交通燈控制系統(tǒng)的控制芯片選用單片機(jī)AT89C52作為整個(gè)系統(tǒng)的核心控制器件,主要負(fù)責(zé)整個(gè)系統(tǒng)工作的控制和運(yùn)算,從而使各模塊正常工作;采用七段LED數(shù)碼管和LED燈作為顯示器件,用七

30、段LED數(shù)碼管完成倒計(jì)時(shí)顯示,用LED燈作為狀態(tài)燈指示功能;用觸發(fā)按鍵構(gòu)成系統(tǒng)的輸入部分,它可以對(duì)系統(tǒng)進(jìn)行狀態(tài)設(shè)置,結(jié)合數(shù)碼管,可根據(jù)交通情況對(duì)整個(gè)系統(tǒng)進(jìn)行直觀的控制;以開(kāi)關(guān)電源作為系統(tǒng)電源部分,它有+12V、-12V、+5V、-5V電壓輸出,可方便對(duì)各個(gè)模塊供電。系統(tǒng)設(shè)計(jì)方框總圖如圖2-2:</p><p><b>  第三章 硬件設(shè)計(jì)</b></p><p>  

31、硬件設(shè)計(jì)是整個(gè)系統(tǒng)的基礎(chǔ),要考慮的方方面面很多,除了實(shí)現(xiàn)交通燈基本功能以外,主要還要考慮如下幾個(gè)因素:①系統(tǒng)穩(wěn)定度;②器件的通用性或易選購(gòu)性;③ 軟件編程的易實(shí)現(xiàn)性;④系統(tǒng)其它功能及性能指標(biāo);因此硬件設(shè)計(jì)至關(guān)重要?,F(xiàn)從各功能模塊的實(shí)現(xiàn)逐個(gè)進(jìn)行分析探討。</p><p>  3.1 總體設(shè)計(jì)與描述</p><p>  本設(shè)計(jì)以單片機(jī)AT89S52為控制核心,采用模塊化設(shè)計(jì),共分以下幾個(gè)功能模

32、塊:?jiǎn)纹瑱C(jī)控制系統(tǒng)、鍵盤(pán)及狀態(tài)顯示、行車(chē)方向指示和倒計(jì)時(shí)模塊等。</p><p> ?、?單片機(jī)作為整個(gè)硬件系統(tǒng)的核心,它既是協(xié)調(diào)整機(jī)工作的控制器,又是數(shù)據(jù)處理器。它由單片機(jī)、時(shí)鐘電路、復(fù)位電路等組成。</p><p> ?、谛熊?chē)方向指示采用紅、綠、黃、藍(lán)(表示向左轉(zhuǎn))LED發(fā)光管,用四種顏色指示車(chē)輛放行、暫停、禁止,形象直觀。</p><p> ?、坻I盤(pán)及狀態(tài)顯示

33、,鍵盤(pán)采用三只觸發(fā)按鍵組成,電路簡(jiǎn)潔可靠;顯示器采用七段LCD數(shù)碼管,可實(shí)時(shí)顯示系統(tǒng)運(yùn)行狀態(tài),可供交警在室內(nèi)實(shí)時(shí)監(jiān)視交通狀況。通過(guò)鍵盤(pán)可設(shè)置:緊急情況發(fā)生時(shí)的交通燈狀態(tài)控制、主干道通行時(shí)間等。</p><p> ?、芟到y(tǒng)采用雙數(shù)碼管倒計(jì)時(shí)計(jì)數(shù)功能,最大顯示數(shù)字不超過(guò)80。</p><p>  交通燈模擬仿真如圖3-1所示:</p><p>  3.2 交通燈通行模式

34、及行車(chē)方向指示</p><p>  按交通燈控制規(guī)則,每個(gè)街口有轉(zhuǎn)彎、直行及行人三種指示燈。主要指示燈有紅、綠、黃三種顏色,但我在其中修改了一下,加進(jìn)一個(gè)藍(lán)燈。交道口模型如圖3-2所示:</p><p>  2組LED數(shù)碼管按照設(shè)置的通行時(shí)間(各路口默認(rèn)的通行時(shí)間均為20秒)進(jìn)行倒計(jì)時(shí),并各自進(jìn)行顯示,共有四種通行狀態(tài),分別為:</p><p>  直行默認(rèn)時(shí)間為2

35、0秒,轉(zhuǎn)彎默認(rèn)時(shí)間為20秒,系統(tǒng)設(shè)置了任意更改功能,可以根據(jù)實(shí)際情況進(jìn)行倒計(jì)時(shí)調(diào)整,以提高車(chē)輛通過(guò)率,緩減交通壓力。在直行狀態(tài)變?yōu)檗D(zhuǎn)彎狀態(tài)時(shí)黃燈倒計(jì)時(shí)3秒后轉(zhuǎn)彎。</p><p>  本設(shè)計(jì)選用一只綠色、一只藍(lán)色LED發(fā)光管來(lái)指示轉(zhuǎn)彎、直行等交通指示信息。綠燈亮表示直行,藍(lán)燈亮表示允許轉(zhuǎn)彎行駛,紅色則表示禁止通行。所有指示信息一目了然。</p><p>  3.3 主干道單獨(dú)時(shí)間設(shè)置功能&

36、lt;/p><p>  當(dāng)主干道方向的車(chē)輛過(guò)多發(fā)生堵塞,正常的信號(hào)燈時(shí)序?qū)?huì)使交通狀況更加惡化。本設(shè)計(jì)添加了主次干道單獨(dú)時(shí)間設(shè)置功能,交警可按需求設(shè)置綠燈的點(diǎn)亮?xí)r間,該措施可在一定程度緩減短暫的交通壓力。三個(gè)按鍵如圖3-7所示:</p><p>  3.4 倒計(jì)時(shí)計(jì)數(shù)功能及其實(shí)現(xiàn)</p><p>  本系統(tǒng)使用數(shù)碼管完成倒計(jì)時(shí)顯示功能。以南北方向?yàn)槔?,?shù)碼管顯示的數(shù)值從

37、綠燈的設(shè)置時(shí)間最大值往下減,每秒鐘減1,一直減到0。然后又從紅燈的設(shè)置時(shí)間最大值往下減,一直減到0。接下來(lái)又顯示綠燈時(shí)間,如此循環(huán)。</p><p>  系統(tǒng)共有2個(gè)兩位的LED數(shù)碼管,分別放置在模擬交通燈控制板上的南北、東西路口。因?yàn)閷?duì)應(yīng)的兩個(gè)方向應(yīng)該顯示同樣的內(nèi)容,所以可以把它們同樣對(duì)待。也就是說(shuō)各個(gè)方向的數(shù)碼管個(gè)位(把數(shù)碼管第二位定義為個(gè)位,第一位定義為十位)用一根信號(hào)線控制,十位用另一根信號(hào)線控制。<

38、;/p><p>  3.5 各功能模塊硬件設(shè)計(jì)及實(shí)現(xiàn)</p><p>  3.5.1單片機(jī)控制模塊設(shè)計(jì)</p><p>  單片微機(jī)簡(jiǎn)稱為單片機(jī)。它在一塊芯片上集中成了中央處理單元CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、定時(shí)/計(jì)數(shù)和多功能輸入/輸出I/O口,如并行口I/O、串行口I/O和轉(zhuǎn)換A/D等。</p><p>  MCS-51系列單片

39、機(jī)在我國(guó)得到了廣泛的應(yīng)用,是單片機(jī)的主流系列,軟硬件應(yīng)用設(shè)計(jì)資料豐富齊全。為了提高指令的執(zhí)行速度和效率,采用了面向控制的結(jié)構(gòu)和指令系統(tǒng)的獨(dú)立CPU。</p><p>  因此本設(shè)計(jì)采用AT89C52單片機(jī)作為系統(tǒng)的控制器件,這是因?yàn)锳T89C52是目前應(yīng)用比較廣泛的MCS-51系列兼容單片機(jī)作為主控制器。</p><p>  AT89C52單片機(jī)的主要性能特點(diǎn):1、與MCS-51系列單片機(jī)

40、產(chǎn)品兼容;2、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器,1000次擦寫(xiě)周期;3、全靜態(tài)操作:0~33Hz;4、三級(jí)加密程序存儲(chǔ)器;5、32個(gè)可編程I/O口線,3個(gè)16位定時(shí)器/定時(shí)器,8個(gè)中斷源;6、全雙工UART串行通道,低功耗空閑和掉電模式;7、掉電后中端可喚醒,看門(mén)狗定時(shí)器;8、雙數(shù)據(jù)指針和掉電標(biāo)識(shí)符;</p><p>  電源、時(shí)鐘信號(hào)以及復(fù)位電路時(shí)單片機(jī)工作的基本條件,缺一不可。AT89C52單片機(jī)系統(tǒng)的基

41、本工作電路包括電源電路、時(shí)鐘電路、復(fù)位電路。其組成方框圖如圖3-8所示:</p><p><b>  (1)、電源電路</b></p><p>  電源電路模塊為系統(tǒng)板上的其他模塊提供+5V電源。供電電源可由開(kāi)關(guān)電源提供,即能滿足。</p><p> ?。?)、時(shí)鐘電路模塊的設(shè)計(jì)</p><p>  單片機(jī)的時(shí)鐘信號(hào)用來(lái)

42、為單片機(jī)芯片內(nèi)部的各種操作提供時(shí)間基準(zhǔn)。</p><p>  時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,作為單片機(jī)工作的時(shí)間基準(zhǔn),典型的晶體振蕩頻率為12MHz。</p><p>  MCS-51系列單片的時(shí)鐘信號(hào)可以由兩種方式產(chǎn)生:一種是內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩電路;另一種方式為外部時(shí)鐘方式。</p><p>  (3)、復(fù)位電路模塊設(shè)計(jì)</p>&

43、lt;p>  復(fù)位電路使單片機(jī)或系統(tǒng)中的其他部件處于某種確定的狀態(tài)。</p><p>  當(dāng)在MCS-51系列單片的RST引腳處引入高電平并保持2個(gè)機(jī)器周期,單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作。復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一位是按鍵復(fù)位。本設(shè)計(jì)采用按鍵復(fù)位方式。</p><p>  3.5.2倒計(jì)時(shí)顯示及狀態(tài)指示模塊的設(shè)計(jì)</p><p>  倒計(jì)時(shí)顯示采

44、用七段數(shù)碼管顯示,如下表格所示是七段顯示組合與數(shù)字對(duì)照表3-1:</p><p> ?。ū碇小癓”表示低電位,“H”表示高電位)</p><p>  狀態(tài)指示采用LED數(shù)碼管,半導(dǎo)體數(shù)碼管又稱LED數(shù)碼管,是一種廣泛使用的顯示器件。LED有兩種:共陽(yáng)極型和共陰極型。</p><p>  LED優(yōu)點(diǎn):亮度高、字形清晰,工作電壓低(1.5~3V)、體積小、可靠性高、壽命

45、長(zhǎng),響應(yīng)速度極快。如圖3-10所示是硬件中的LED燈:</p><p>  3.5.2鍵盤(pán)及狀態(tài)指示顯示模塊的設(shè)計(jì)</p><p>  鍵盤(pán)及狀態(tài)顯示如圖3-11所示:</p><p>  按下開(kāi)始設(shè)置SET_KEY一下首先開(kāi)始南北直行綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY兩下設(shè)置南北的左轉(zhuǎn)彎藍(lán)燈時(shí)間,可以增也可以減時(shí)間;按下SET_KEY三下東西直行

46、綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY四下東西左轉(zhuǎn)彎藍(lán)燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY五下返回正常運(yùn)行狀態(tài)。</p><p><b>  第四章 軟件設(shè)計(jì)</b></p><p>  硬件平臺(tái)結(jié)構(gòu)一旦確定,大的功能框架即形成。軟件在硬件平臺(tái)上構(gòu)筑,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)功能是由軟硬件共同實(shí)現(xiàn)的,由于軟件的可伸縮性,最終實(shí)現(xiàn)的系統(tǒng)功

47、能可強(qiáng)可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設(shè)計(jì)方法,不僅易于編程和調(diào)試,也可減小軟件故障率和提高軟件的可靠性。同時(shí),對(duì)軟件進(jìn)行全面測(cè)試也是檢驗(yàn)錯(cuò)誤排除故障的重要手段。由于編程多涉及到數(shù)值運(yùn)算,比較復(fù)雜,還有LCD的菜單界面設(shè)計(jì)都是需要多重選擇判斷,用我們平時(shí)常用的匯編語(yǔ)言編程是很難實(shí)現(xiàn)的,這里我們選用了移值性好、結(jié)構(gòu)清晰、能進(jìn)行復(fù)雜運(yùn)算的C語(yǔ)言來(lái)實(shí)現(xiàn)編程。</p><p>  4.1 軟件

48、總體流程圖</p><p>  軟件總體設(shè)計(jì)及流程圖見(jiàn)圖4-1,主要完成各部分的軟件控制和協(xié)調(diào)。本系統(tǒng)主程序模塊主要完成的工作是對(duì)系統(tǒng)的初始化。</p><p>  4.2 定時(shí)器初始化</p><p>  定時(shí)/計(jì)數(shù)器方式寄存器TMOD相關(guān)知識(shí)如表4-1</p><p>  M1和M0為方式選擇位。定義如下表4-2:</p>

49、<p>  TMOD=0x21;</p><p>  intChar.uiTime0=0xffff-10000;程序中用到兩個(gè)定時(shí)器,分別是</p><p>  TH0=intChar.ucTime0Buf[0];定時(shí)器1跟定時(shí)器0,采用了方</p><p>  TL0=intChar.ucTime0Buf[1];式2跟方式1,TMO

50、D=0X21,調(diào) </p><p>  TR0=1;用了定時(shí)器T0和T1。定時(shí)器1 </p><p>  TH1=0xfd;方式2定時(shí)器0方式1</p><p>  TL1=0xfd;TR1=1;SCON=0x50;ET0=1;ES=1;EA=1;</p><p><b>  4.3

51、 動(dòng)態(tài)顯示</b></p><p>  主要是燈跟數(shù)碼管顯示,數(shù)碼管顯示流程圖如圖4-2所示:首先是位碼初始化然后送位碼,選位碼,位碼右移,延時(shí),關(guān)位碼。</p><p>  4.4 設(shè)置狀態(tài)子程序</p><p>  在設(shè)置狀態(tài),按下開(kāi)始設(shè)置SET_KEY一下首先開(kāi)始南北直行綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY兩下設(shè)置南北的左轉(zhuǎn)彎藍(lán)燈時(shí)間

52、,可以增也可以減時(shí)間;按下SET_KEY三下東西直行綠燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY四下東西左轉(zhuǎn)彎藍(lán)燈設(shè)置,可以增也可以減時(shí)間;按下SET_KEY五下返回正常運(yùn)行狀態(tài)。藍(lán)燈和綠燈的時(shí)間最大可以設(shè)為79,超出79的時(shí)候會(huì)出現(xiàn)亂碼現(xiàn)象。如圖4-3所示是設(shè)置狀態(tài)子程序流程圖:</p><p><b>  第五章 系統(tǒng)調(diào)試</b></p><p>  因

53、本設(shè)計(jì)本身要求有穩(wěn)定性高、免維護(hù)、抗干擾能力強(qiáng)等功能,系統(tǒng)調(diào)試除了驗(yàn)證數(shù)據(jù)處理的精度,確保判斷的準(zhǔn)確性外,同時(shí)必須確認(rèn)各項(xiàng)的功能的正常運(yùn)行。</p><p>  5.1 系統(tǒng)操作說(shuō)明</p><p>  系統(tǒng)分為兩個(gè)狀態(tài):設(shè)置狀態(tài)和顯示狀態(tài)。利用鍵盤(pán)可以進(jìn)行兩個(gè)狀態(tài)間的切換;開(kāi)機(jī)時(shí),系統(tǒng)為顯示狀態(tài),此時(shí)數(shù)碼管從默認(rèn)的倒計(jì)時(shí)時(shí)間開(kāi)始倒計(jì)時(shí);LED燈開(kāi)始有規(guī)律工作,作行車(chē)方向指示;設(shè)置狀態(tài)時(shí)利

54、用鍵盤(pán)可以設(shè)置各路口通行倒計(jì)時(shí)時(shí)間,主次干道的通行時(shí)間可以不相等,這里我們?cè)鎏砹朔珠_(kāi)分別設(shè)置功能;顯示狀態(tài)時(shí),交通燈四個(gè)LED燈進(jìn)行倒計(jì)時(shí);LED發(fā)光管各組的交替指示;如果LED箭頭指示板上的綠燈亮,兩邊紅燈亮,則顯示的是通行時(shí)間;顯示過(guò)程中按鍵可以重新進(jìn)入設(shè)置狀態(tài)。</p><p><b>  5.2 調(diào)試</b></p><p>  根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試

55、共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于在系統(tǒng)設(shè)計(jì)中采用模塊化設(shè)計(jì),所以方便了對(duì)各電路功能模塊的逐級(jí)測(cè)試,包括對(duì):交通燈演示功能調(diào)試,倒計(jì)時(shí)功能調(diào)試,主次干道分開(kāi)設(shè)置功能調(diào)試等。單片機(jī)軟件先在最小系統(tǒng)板上調(diào)試,確保工作正常之后,再與硬件系統(tǒng)聯(lián)調(diào)。最后將各模塊組合后在交道口模型上進(jìn)行整體測(cè)試,使系統(tǒng)的所有功能得以實(shí)現(xiàn)。</p><p>  5.2.1 硬件調(diào)試</p><p> 

56、 總硬件圖如圖5-1所示:如硬件系統(tǒng)圖所示接線,圖中,在十字路口的紅、黃、綠、藍(lán)交通燈,主要是對(duì)通行方式功能調(diào)試、倒計(jì)時(shí)功能調(diào)試。包括對(duì)四種通行方式控制調(diào)試,行車(chē)方向指示燈和驅(qū)動(dòng)電路調(diào)試。</p><p><b>  具體仿真效果:</b></p><p>  1、如圖5-2所示正常情況下南北方向亮綠燈,東西方向亮紅燈。南北放行,東西禁行,綠燈20S,紅燈46S<

57、;/p><p>  2、如圖5-3所示是南北直行綠燈轉(zhuǎn)為黃燈到下一個(gè)狀態(tài),黃燈3S延時(shí):</p><p>  3、如圖5-4是南北左轉(zhuǎn)彎顯示20S:</p><p>  4、如圖5-5是東西直行綠燈亮15S:</p><p>  5、如圖5-6所示是東西直行綠燈轉(zhuǎn)為黃燈到下一個(gè)狀態(tài),黃燈3S延時(shí):</p><p>  6、

58、如圖5-7所示是東西左轉(zhuǎn)彎藍(lán)燈顯示,時(shí)間為12S:</p><p>  5.2.2 軟件調(diào)試</p><p>  本系統(tǒng)的軟件系統(tǒng)很大,全部用C51來(lái)編寫(xiě)。除了語(yǔ)法差錯(cuò)外,當(dāng)確認(rèn)程序沒(méi)問(wèn)題時(shí),通過(guò)直接下載到單片機(jī)來(lái)調(diào)試。采取的是自下到上的調(diào)試方法,即單獨(dú)調(diào)試好每一個(gè)模塊,然后再連接成一個(gè)完整的系統(tǒng),最后完成一個(gè)完整的系統(tǒng)調(diào)試。</p><p>  5.2.3 軟硬件

59、聯(lián)調(diào)</p><p>  系統(tǒng)做好后,進(jìn)行系統(tǒng)的完整調(diào)試。主要任務(wù)是檢驗(yàn)實(shí)現(xiàn)的功能及其效果并校正數(shù)值。根據(jù)實(shí)測(cè)數(shù)據(jù),逐步校正數(shù)據(jù),使測(cè)量結(jié)果更準(zhǔn)確。單片機(jī)軟件先在最小系統(tǒng)板上調(diào)試,確保工作正常之后,再與硬件系統(tǒng)聯(lián)調(diào)。</p><p><b>  5.3 調(diào)試心得</b></p><p>  通過(guò)交通燈的編程到硬件的實(shí)現(xiàn),我們只有充分掌握了理論知

60、識(shí)的基礎(chǔ)之上才能做好。首先,判斷數(shù)碼管是共陰管還是共陽(yáng)管,其次根據(jù)操作要求和自己的程序設(shè)計(jì)進(jìn)行調(diào)試看是否相同。</p><p>  在課程設(shè)計(jì)中,我們學(xué)習(xí)到了很多的東西:</p><p>  首先,怎么樣去查閱資料,收集與課設(shè)要用的有關(guān)的知識(shí)。其次,要完成一件工作,還得專心致志才行,細(xì)心耐心。第三,遇到困難要冷靜,要多想解決辦法,多嘗試。 </p><p>  通過(guò)

61、這次畢業(yè)設(shè)計(jì),我們也進(jìn)一步熟悉數(shù)字電路的設(shè)計(jì)與特點(diǎn)。而且讓我們了解了電路設(shè)計(jì)的基本思路,增強(qiáng)了實(shí)踐動(dòng)手能力,理論結(jié)合實(shí)際的能力加強(qiáng)。除此以外,我們還深深地認(rèn)識(shí)到嚴(yán)謹(jǐn)、認(rèn)真的科學(xué)態(tài)度在科學(xué)實(shí)驗(yàn)中發(fā)揮的重要作用。</p><p>  交通燈是本次課設(shè)中原理比較簡(jiǎn)單的一個(gè),但是它的組成部分多,電路連接有些復(fù)雜,出現(xiàn)問(wèn)題后分析起來(lái)比較困難,所以我們養(yǎng)成了完成一個(gè)部分就調(diào)試檢驗(yàn)一個(gè)部分,確保正確才進(jìn)行下一步工作,出現(xiàn)了問(wèn)題

62、只要在未檢驗(yàn)的部分查尋就可以很快找出,效果很不錯(cuò)。</p><p>  此次課程設(shè)計(jì)中我投入了很大的熱情和精力,從設(shè)計(jì)電路圖,選擇元器件,使用protel99,其過(guò)程中出現(xiàn)了不少的問(wèn)題,我沒(méi)有氣餒,沒(méi)有退縮,積極向同學(xué)請(qǐng)教,并且一遍又一遍的重復(fù)實(shí)踐,直到期望的結(jié)果實(shí)現(xiàn)。事實(shí)也證明我們的努力沒(méi)有白費(fèi),認(rèn)真嚴(yán)謹(jǐn)?shù)膶?shí)習(xí)態(tài)度給我?guī)?lái)了成功的喜悅! 這短短一月的實(shí)踐,我感覺(jué)到自己在課本上學(xué)到的理論知識(shí)和實(shí)踐仍有一定的差距。

63、有的知識(shí),自己感覺(jué)已經(jīng)掌握得差不多了,但是實(shí)際操作起來(lái)就有問(wèn)題出現(xiàn)了。我還遇到了不少,花費(fèi)了很多的時(shí)間。這讓我們重新反思我們的學(xué)習(xí),覺(jué)得這與自己當(dāng)時(shí)不注意實(shí)驗(yàn)課是分不開(kāi)的。</p><p><b>  第六章 設(shè)計(jì)總結(jié)</b></p><p>  本設(shè)計(jì)以單片機(jī)AT89C52為核心,以LED發(fā)光管作為直行和左右拐彎指示,以LED數(shù)碼管作為倒計(jì)時(shí)指示,以雙色LED點(diǎn)陣作

64、為行人通行的指示,完成了題目要求的所有功能。在此基礎(chǔ)上,增設(shè)了可根據(jù)交通擁擠情況分別設(shè)置主干道和次干道的通行時(shí)間,并對(duì)系統(tǒng)機(jī)械結(jié)構(gòu)進(jìn)行了優(yōu)化設(shè)計(jì)。該設(shè)計(jì)很好地完成了題目的各項(xiàng)要求,但這與實(shí)際情況還有很大一部分差距,具體有以下幾個(gè)方面:</p><p>  1、出現(xiàn)緊急情況時(shí),交通燈的控制;</p><p>  2、人行通道的設(shè)計(jì)沒(méi)有加進(jìn)去;</p><p>  3、

65、軟件中設(shè)計(jì)左轉(zhuǎn)彎是交通燈顏色的改變。</p><p>  雖然這些功能未能設(shè)計(jì)進(jìn)去,但這一樣可以簡(jiǎn)單實(shí)現(xiàn)交通燈的控制,該設(shè)計(jì)在確保功能實(shí)現(xiàn)的基礎(chǔ)上,充分考慮了控制系統(tǒng)操作方便、人性化、抗干擾能力強(qiáng)、可靠性高、穩(wěn)定性好等要求。</p><p>  本設(shè)計(jì)雖然結(jié)束了,但由于時(shí)間、設(shè)備、條件和水平等各方面因素有限,系統(tǒng)還存在一些不足,一個(gè)新系統(tǒng)最終走向成熟和完善還需要我們?cè)谝院蟮膶W(xué)習(xí)和工作中作不

66、懈的努力!</p><p>  另外,在重復(fù)修改與設(shè)計(jì)的過(guò)程中,我又重新把《單片機(jī)原理與應(yīng)用技術(shù)》這本書(shū)仔細(xì)的看了一下,弄懂了一些以前一知半解的東西,進(jìn)一次加強(qiáng)和鞏固了我的理論知識(shí)。</p><p>  在此次課程設(shè)計(jì)過(guò)程中,我把單片機(jī)的理論知識(shí)用于實(shí)踐中,使理論與實(shí)踐相結(jié)合,使我的理論知識(shí)的到了鞏固,在查資料翻閱資料的過(guò)程中也豐富了我的知識(shí)跟閱歷。</p><p>

67、;<b>  致 謝</b></p><p>  通過(guò)本次畢業(yè)設(shè)計(jì),我在指導(dǎo)老師xx的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識(shí),極大地提高了實(shí)踐能力,并對(duì)當(dāng)前電子領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,單片機(jī)領(lǐng)域這對(duì)我今后進(jìn)一步學(xué)習(xí)電子方面的知識(shí)有極大的幫助。另外,令我感觸最深的就是同學(xué)們傾心的幫助,由于我的《單片機(jī)原理與應(yīng)用技術(shù)》學(xué)的并不是很好,所以對(duì)某些知識(shí)點(diǎn)并不是很清楚,可是同學(xué)們

68、總是不厭其煩的給我一遍又一遍的講解,直到我弄清楚為止!他們的知識(shí)閱歷另我打開(kāi)眼界,他們的無(wú)私精神更另我感動(dòng)不已!在此我忠心感謝包軍衛(wèi)老師以及各位同學(xué)的指導(dǎo)和支持。在未來(lái)的工作和學(xué)習(xí)中,我將以更好的成績(jī)來(lái)加報(bào)各位老師和同學(xué)。</p><p>  通過(guò)這次的設(shè)計(jì)使我認(rèn)識(shí)到我對(duì)單片機(jī)方面的知識(shí)知道的太少了,對(duì)于書(shū)本上的。</p><p>  很多知識(shí)還不能靈活運(yùn)用,有很多我們需要掌握的知識(shí)在等著

69、我去學(xué)習(xí),我會(huì)在以后的學(xué)習(xí)生活中彌補(bǔ)我所缺少的知識(shí)。本次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,理論知識(shí)固然很重要,但是一旦轉(zhuǎn)到實(shí)際操作中,變的無(wú)法適應(yīng)用突然.所以最重要的那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我所學(xué)到的知識(shí)運(yùn)用到我以后的工作中去。讓理論知識(shí)變?yōu)閷?shí)踐的開(kāi)拓先鋒。</p><p><b>  參考資料</b></p><p>  [1]胡漢才 單片

70、機(jī)原理及其接口技術(shù) [M] 清華大學(xué)出版,1996 </p><p>  [2]蔡美琴 MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用 高等教育出版社 2004.2 </p><p>  [3]付家才 單片機(jī)控制工程實(shí)踐技術(shù)[M] 化學(xué)工業(yè)出版社,2004.5 </p><p>  [4]潘新民 微型計(jì)算機(jī)控制

71、技術(shù) [M] 人民郵電出版社,1999.9 </p><p>  [5]余錫存 單片機(jī)原理及接口技術(shù)[M] 西安電子科技大學(xué)出版社,2000.7 </p><p>  [6]雷麗文 等.微機(jī)原理與接口技術(shù)[M] 電子工業(yè)出版社,1997.2 </p><p>  [7]蔣萬(wàn)君 在論循環(huán)時(shí)序電路的簡(jiǎn)便設(shè)計(jì)[J]

72、 機(jī)電一體化,2005 第5期 </p><p>  [8]周立功 增強(qiáng)型80C51單片機(jī)速成與實(shí)戰(zhàn) 北京航空航天大學(xué)出版社2004.5 </p><p>  [9]何立民 單片機(jī)應(yīng)用技術(shù)選編⑩   北京航空航天大學(xué)出版社  2004.3 </p><p>  [10]何立民&#

73、160;單片機(jī)應(yīng)用技術(shù)選編⑨  北京航空航天大學(xué)出版社  2004.3 </p><p>  [11]何立民 MCS-5系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 北京航空航天大學(xué)出版社,1995. </p><p>  [12]李華 MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M]北京航空航天大學(xué)出版社,1993 </p><p>

74、  [13 張?jiān)讫? 交通信號(hào)控制器的設(shè)計(jì)[J].兵工自動(dòng)化 ,2003,(04) . </p><p>  [14] 白炳良. 單片機(jī)自動(dòng)控制交通信號(hào)燈[J].漳州師范學(xué)院 ,1997,(02) .</p><p>  [15] 譚浩強(qiáng). C 程序設(shè)計(jì)[M]. 清華大學(xué)出版社,1999 年12 月第2 版</p><p><b>  附錄</b&g

75、t;</p><p><b> ?、裨韴D</b></p><p><b> ?、蛟绦?lt;/b></p><p>  #include <reg51.h></p><p>  #define uchar unsigned char</p><p>  #defin

76、e uint unsigned int</p><p>  //I/O 口定義定義南北方向?yàn)橹魍ǖ罇|西方向?yàn)榇瓮ǖ?lt;/p><p>  sbitCI_GREEN=P1^0;//次通道--綠燈</p><p>  sbitZHU_GREEN=P1^1;//主通道--綠燈</p><p>  sbitCI_Z

77、UO=P1^2;//次通道--左轉(zhuǎn)</p><p>  sbitZHU_ZUO=P1^3;//主通道--左轉(zhuǎn)</p><p>  sbitCI_RED=P1^4;//次通道--紅燈</p><p>  sbitZHU_RED=P1^5;//主通道--紅燈</p><p>  sbitCI_YELLOW=

78、P1^6;//次通道--黃燈</p><p>  sbitZHU_YELLOW=P1^7;//主通道--黃燈</p><p>  sbitZHU_LED1=P3^4;</p><p>  sbitZHU_LED2=P3^5;</p><p>  sbitCI_LED1=P3^6;</p><p>

79、  sbitCI_LED2=P3^7;</p><p><b>  //位變量定義</b></p><p>  bitbFlag10ms;</p><p>  bit bResponse;</p><p>  bitbShan;</p><p><b>  //字節(jié)變量定義&

80、lt;/b></p><p>  uchar ucKey;</p><p>  uchar ucNextKey;</p><p>  uchar ucSetState,ucDispState;</p><p>  uchar ucZhuTime,ucZhuZhuan,ucCiTime,ucCiZhuan;//主通道直行時(shí)間主通道轉(zhuǎn)

81、彎時(shí)間次通道直行時(shí)間次通道轉(zhuǎn)彎時(shí)間</p><p>  uchar ucZhuTimeDisp,ucCiTimeDisp;</p><p>  uchar ucMiaoCount;</p><p>  uchar ucShanCount;</p><p><b>  //常量定義</b></p><

82、;p>  #define SET_KEY 0xee</p><p>  #define UP_KEY0xde</p><p>  #define DOWN_KEY 0xdd</p><p>  uchar code DISP_TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};</p>

83、;<p>  ////////////////////////////</p><p><b>  union </b></p><p><b>  {</b></p><p>  uchar ucTime0Buf[2];</p><p>  uint uiTime0;</p&

84、gt;<p><b>  }intChar;</b></p><p><b>  //函數(shù)申明</b></p><p>  void intSys();</p><p>  uchar testKey(void);</p><p>  uchar readKey();</p>

85、;<p>  dealKey(uchar tempkey);</p><p>  void StateCov(void);</p><p>  void display();</p><p>  void dispSM(uchar x,uchar y);</p><p><b>  delay();</b>

86、</p><p>  /////////////////////////////////////////////////////////////////////////</p><p>  void main(void)</p><p><b>  {</b></p><p>  uchar temp;</p>

87、;<p><b>  intSys();</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(bFlag10ms==1)</p><p><b>  {</b><

88、;/p><p>  bFlag10ms=0;</p><p>  temp=testKey();</p><p>  if(temp!=0xff)</p><p><b>  {</b></p><p>  ucKey=readKey();</p><p>  if(ucKe

89、y!=0xff)</p><p><b>  {</b></p><p>  dealKey(ucKey);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b>

90、;</p><p><b>  {</b></p><p>  bResponse=0;</p><p><b>  }</b></p><p>  if(ucMiaoCount==0)</p><p><b>  {</b></p>&l

91、t;p>  ucMiaoCount=99;</p><p>  StateCov();</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ucMiaoC

92、ount--;</p><p><b>  }</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p&

93、gt;<p>  void timeSer(void) interrupt 1 using 1</p><p><b>  {</b></p><p>  TH0=intChar.ucTime0Buf[0];</p><p>  TL0=intChar.ucTime0Buf[1];</p><p>  bF

94、lag10ms=1;</p><p><b>  }</b></p><p>  void UARTSer(void) interrupt 4 using 1</p><p><b>  {</b></p><p><b>  }</b></p><p>

95、;  /*********************************************************</p><p>  *函數(shù)名:intSys</p><p>  *函數(shù)功能:系統(tǒng)初始化,包括內(nèi)存單元、定時(shí)器、串行口、中斷</p><p>  **************************************************

96、********/</p><p>  void intSys() </p><p><b>  {</b></p><p>  ucNextKey=0xff;</p><p>  ucSetState=ucDispState=0;</p><p>  ucZhuTime=20;</p>

97、;<p>  ucZhuZhuan=18;</p><p>  ucCiTime=15;</p><p>  ucCiZhuan=12;</p><p>  ucMiaoCount=99;</p><p>  ucShanCount=19;</p><p>  ucDispState=0;</p&g

98、t;<p>  ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;</p><p>  ucZhuTimeDisp=ucZhuTime;</p><p><b>  P1=0xff;</b></p><p>  ZHU_GREEN=0;</p><p><b>  CI_R

99、ED=0;</b></p><p>  ZHU_LED1=0;</p><p>  ZHU_LED2=0;</p><p>  CI_LED1=0;</p><p>  CI_LED2=0;</p><p>  bResponse=0;</p><p>  TMOD=0x21;<

100、;/p><p>  intChar.uiTime0=0xffff-10000;</p><p>  TH0=intChar.ucTime0Buf[0];</p><p>  TL0=intChar.ucTime0Buf[1];</p><p><b>  TR0=1;</b></p><p>  TH

101、1=0xfd;</p><p>  TL1=0xfd;</p><p><b>  TR1=1;</b></p><p>  SCON=0x50;</p><p><b>  ET0=1;</b></p><p><b>  ES=1;</b><

102、;/p><p><b>  EA=1;</b></p><p><b>  }</b></p><p>  /*********************************************************</p><p>  *函數(shù)名:testKey</p><p

103、>  *函數(shù)功能:鍵盤(pán)測(cè)試函數(shù),測(cè)試鍵盤(pán)是否有鍵按下</p><p>  **********************************************************/</p><p>  uchar testKey(void)</p><p><b>  {</b></p><p><

104、;b>  uchar i;</b></p><p><b>  P0=0xf0;</b></p><p><b>  i=P0;</b></p><p><b>  i=i|0x0f;</b></p><p><b>  return i;<

105、/b></p><p><b>  }</b></p><p>  /*********************************************************</p><p>  *函數(shù)名:readKey</p><p>  *函數(shù)功能:鍵盤(pán)鍵值讀取函數(shù)</p><p&

106、gt;  **********************************************************/</p><p>  uchar readKey()</p><p><b>  {</b></p><p>  uchar i,j;</p><p><b>  P0=0xf0;&l

107、t;/b></p><p><b>  i=P0;</b></p><p><b>  P0=0x0f;</b></p><p><b>  j=P0;</b></p><p><b>  i=i+j;</b></p><p>

108、;  if(ucNextKey==i)</p><p><b>  {</b></p><p>  if(bResponse==0)</p><p><b>  {</b></p><p>  bResponse=1;</p><p><b>  return i;

109、</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  return 0xff;</p><p><b>  }</b></p><p><b>  else<

110、/b></p><p><b>  {</b></p><p>  ucNextKey=i;</p><p>  bResponse=0;</p><p>  return 0xff;</p><p><b>  }</b></p><p>&l

111、t;b>  }</b></p><p>  /*********************************************************</p><p>  *函數(shù)名:dealKey</p><p>  *函數(shù)功能:鍵盤(pán)鍵值處理函數(shù)</p><p>  ************************

112、**********************************/</p><p>  dealKey(uchar tempKey)</p><p><b>  {</b></p><p>  switch(tempKey)</p><p><b>  {</b></p><

113、p>  case SET_KEY:</p><p><b>  {</b></p><p>  if(ucSetState==4)</p><p><b>  {</b></p><p>  ucSetState=0;</p><p>  ucDispState=0;&

114、lt;/p><p>  ucCiTimeDisp=ucZhuTime+ucZhuZhuan+6;</p><p>  ucZhuTimeDisp=ucZhuTime;</p><p><b>  P1=0xff;</b></p><p>  ZHU_GREEN=0;</p><p><b>

115、;  CI_RED=0;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  ucSetState++;</p><p><b&g

116、t;  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  case UP_KEY:</p><p><b>  {</b></p><p>  switch(ucSetS

117、tate)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  

118、}</b></p><p><b>  case 1:</b></p><p><b>  {</b></p><p>  if(ucZhuTime<80)</p><p>  ucZhuTime++;</p><p><b>  break;&l

119、t;/b></p><p><b>  }</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  if(ucZhuZhuan<80)</p><p>  ucZhuZhuan+

120、+;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 3:</b></p><p><b>  {</b></p><p>  if(ucCiTime&

121、lt;80)</p><p>  ucCiTime++;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 4:</b></p><p><b>  {</b&

122、gt;</p><p>  if(ucCiZhuan<80)</p><p>  ucCiZhuan++;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p

123、><p><b>  break;</b></p><p><b>  }</b></p><p>  case DOWN_KEY:</p><p><b>  {</b></p><p>  switch(ucSetState)</p>&l

124、t;p><b>  {</b></p><p><b>  case 0:</b></p><p><b>  {</b></p><p><b>  break;</b></p><p><b>  }</b></p&g

125、t;<p><b>  case 1:</b></p><p><b>  {</b></p><p>  if(ucZhuTime>5)</p><p>  ucZhuTime--;</p><p><b>  break;</b></p>

126、<p><b>  }</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  if(ucZhuZhuan>5)</p><p>  ucZhuZhuan--;</p><p&g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論