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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  廣東交通職業(yè)技術(shù)學(xué)院</p><p><b>  畢業(yè)論文</b></p><p>  題目: 基于A(yíng)T89C51單片機(jī)的交通燈設(shè)計(jì) </p><p>  學(xué)院: 計(jì)算機(jī)工程學(xué)院 </p><p>  專(zhuān)業(yè): 交通安全與智能控制 </p&

2、gt;<p>  學(xué)生姓名: 鐘文標(biāo) </p><p>  指導(dǎo)教師: 曹成濤 </p><p>  開(kāi)題日期 2010 年 09 月 02 日</p><p>  設(shè)計(jì)期限 2010 年 09 月 02 日起 2010

3、 年 10 月 10 日止</p><p>  答辯日期 2010  年 10 月  21 日</p><p>  廣東交通職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)指導(dǎo)教師評(píng)語(yǔ)</p><p>  廣東交通職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)答辯評(píng)語(yǔ)</p><p>  基于A(yíng)T89C51單片機(jī)的交通燈設(shè)計(jì)</p><p>&l

4、t;b>  摘 要:</b></p><p>  本系統(tǒng)采用美國(guó)ATMEL公司生產(chǎn)的單片機(jī)AT89S51,以及其它芯片來(lái)設(shè)計(jì)交通燈控制器。本方案為了簡(jiǎn)化對(duì)路口的操作,采取了四相位對(duì)稱(chēng)(不對(duì)稱(chēng))放行的方式進(jìn)行控制。實(shí)現(xiàn)了通過(guò)AT89S51芯片的P0口和P2口中的P2.0-P2.4口控制數(shù)碼管的顯示功能,用P1口控制紅、綠、黃燈點(diǎn)亮的功能及上電時(shí)通過(guò)P1口中的P1.0-P1.4口接按鍵實(shí)現(xiàn)方案選擇

5、功能。用P1口和P3.0-P3.1、P3.6-P3.7模擬路口紅綠燈情況并及人行道紅綠燈情況。使用外部中斷進(jìn)入修改參數(shù)狀態(tài)和緊急狀態(tài),修改參數(shù)使用P1.4-P1.7(按鍵分別是相位選擇,加一,減一及確定修改功能)。系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展性好。</p><p>  關(guān)鍵詞:AT89C51、單片機(jī)、交通信號(hào)燈</p><p><b>  Abstract:</b>&

6、lt;/p><p>  The system used by the U.S. company ATMEL microcontroller AT89S51, as well as other chips to design traffic light control. To simplify the program's operation of intersection, take a four-phase

7、symmetric (asymmetric) controlled release manner. Achieved through the AT89S51 chip port P0 and P2 in the mouth of the P2.0-P2.4 port to control the digital tube display, with the P1 port to control the red, green and ye

8、llow light on the function and power through the mouth of the P1 P1 .0-P1 .4 port acce</p><p>  Keywords: AT89C51, single-chip, traffic lights</p><p><b>  目錄</b></p><p>

9、<b>  第一章 引言1</b></p><p>  第二章 交通管理方案論證3</p><p>  2.1 設(shè)計(jì)任務(wù)3</p><p>  2.2 方案介紹3</p><p>  2.2.1 方案1設(shè)計(jì)思想4</p><p>  2.2.2 方案2 設(shè)計(jì)思想5</p>

10、<p>  2.2.3 方案比較6</p><p>  第三章 交通燈系統(tǒng)硬件設(shè)計(jì)7</p><p>  3.1 單片機(jī)概述7</p><p>  3.2 系統(tǒng)構(gòu)成8</p><p>  3.3芯片選擇與介紹9</p><p>  3.3.1 AT89S51芯片9</p>&l

11、t;p>  3.3.2 交通燈控制線(xiàn)路圖12</p><p>  第四章 交通燈軟件設(shè)計(jì)15</p><p>  4.1 程序設(shè)計(jì)流程圖15</p><p>  4.2延時(shí)的設(shè)定20</p><p>  4.2.1 計(jì)數(shù)器初值計(jì)算20</p><p>  4.2.2 相應(yīng)程序代碼21</p

12、><p>  4.3 程序的主控制循環(huán)調(diào)用22</p><p>  4.4 方案選擇子函數(shù)23</p><p>  4.5 修改時(shí)間子函數(shù)23</p><p>  4.6 對(duì)現(xiàn)有程序的擴(kuò)充24</p><p>  第五章 實(shí)驗(yàn)平臺(tái)26</p><p>  5.1實(shí)驗(yàn)平臺(tái)26</p

13、><p>  5.2實(shí)驗(yàn)步驟27</p><p>  5.2.1 編寫(xiě)程序代碼27</p><p>  5.2.2 按照系統(tǒng)硬件連線(xiàn)圖連接好系統(tǒng)并調(diào)試28</p><p>  5.3實(shí)驗(yàn)遇到的問(wèn)題,解決方法及結(jié)果28</p><p>  5.3.1 實(shí)驗(yàn)問(wèn)題28</p><p>  5.3

14、.2 實(shí)驗(yàn)問(wèn)題的解決28</p><p>  5.3.3 實(shí)驗(yàn)結(jié)果(請(qǐng)看硬件演示)29</p><p>  第六章 總結(jié)與展望30</p><p>  第七章 致謝31</p><p>  第八章 參考文獻(xiàn)32</p><p>  第九章 程序?qū)崿F(xiàn)代碼33</p><p>&

15、lt;b>  第一章 引言</b></p><p>  今天,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車(chē)輛最常見(jiàn)和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。</p><p>  1858年,在英國(guó)倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車(chē)通行。這是世界上最早的交通信號(hào)燈。1868年,英國(guó)機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的

16、廣場(chǎng)上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩塊以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p><p>  1914年,電氣啟動(dòng)的紅綠燈出現(xiàn)在美國(guó)。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p>  1918年,又出現(xiàn)了帶控制的

17、紅綠燈和紅外線(xiàn)紅綠燈。帶控制的紅綠燈,一種是把壓力探測(cè)器安在地下,當(dāng)車(chē)輛接近時(shí),紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來(lái)啟動(dòng)紅綠燈,司機(jī)遇紅燈時(shí)按一下喇叭,就使紅燈變?yōu)榫G燈。紅外線(xiàn)紅綠燈當(dāng)行人踏上對(duì)壓力敏感的路面時(shí),它就能察覺(jué)到有人要過(guò)馬路。紅外光束能把信號(hào)燈的紅燈延長(zhǎng)一段時(shí)間,推遲汽車(chē)放行,以免發(fā)生交通事故。</p><p>  信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯

18、效果。1968年,聯(lián)合國(guó)《道路交通和道路標(biāo)志信號(hào)協(xié)定》對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車(chē)輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車(chē)輛都必須讓合法地正在路口內(nèi)行駛的車(chē)輛和過(guò)人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),面對(duì)紅燈的車(chē)輛必須在交叉路口的停車(chē)線(xiàn)后停車(chē)。黃燈是警告信號(hào),面對(duì)黃燈的車(chē)輛不能越過(guò)停車(chē)線(xiàn),但車(chē)輛已十分接近停車(chē)線(xiàn)而不能安全停車(chē)時(shí)可以進(jìn)入交叉路口。</p><p&

19、gt;  隨著經(jīng)濟(jì)的發(fā)展,交通運(yùn)輸中出現(xiàn)了一些傳統(tǒng)方法難以解決的問(wèn)題。道路擁擠現(xiàn)象日趨嚴(yán)重,造成的經(jīng)濟(jì)損失越來(lái)越大,并一直保持大比例的增長(zhǎng)?,F(xiàn)在交通系統(tǒng)已不能滿(mǎn)足經(jīng)濟(jì)發(fā)展的需求。由于生活水平的提高,人們對(duì)交通運(yùn)輸?shù)陌踩约胺?wù)水平提出了更高的要求。在交通中管理引入單片機(jī)交通燈控制代替交管人員在交叉路口服務(wù),有助于提高交通運(yùn)輸?shù)陌踩浴⑻岣呓煌ü芾淼姆?wù)質(zhì)量。并在一定程度上盡可能的降低由道路擁擠造成的經(jīng)濟(jì)損失,同時(shí)也減小了工作人員的勞動(dòng)強(qiáng)

20、度。 </p><p>  中國(guó)車(chē)輛數(shù)量不斷增加,交通控制在未來(lái)的交通管理中起著越來(lái)越重要的作用。智能交通燈的管理比重修一條馬路無(wú)論在經(jīng)濟(jì)、交通運(yùn)行速率上都有很好的效益、更加節(jié)約資源。使交管人員有更多的精力投入到管理整個(gè)城市交通控制,帶來(lái)更大的經(jīng)濟(jì)和社會(huì)效益,為創(chuàng)造美好的城市交通形象發(fā)揮更多的作用。</p><p>  第二章

21、 交通管理方案論證</p><p><b>  2.1 設(shè)計(jì)任務(wù)</b></p><p>  南北(A)、東西(B)兩干道交于一個(gè)十字路口,各干道有一組綠、黃、紅、左轉(zhuǎn)綠四個(gè)指示燈,指揮車(chē)輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。紅燈的設(shè)計(jì)時(shí)間為相對(duì)相位的綠+左轉(zhuǎn)綠+2個(gè)黃燈時(shí)間,南北綠燈為60秒、南北左轉(zhuǎn)綠燈為30秒、東西綠燈為45秒、東西左轉(zhuǎn)綠燈為20秒,

22、。設(shè)A道和B道的車(chē)流量不相同,A為主干道,B為次干道。</p><p><b>  2.2 方案介紹</b></p><p>  把設(shè)計(jì)任務(wù)細(xì)化為八個(gè)狀態(tài),其對(duì)應(yīng)狀態(tài):如圖2-1</p><p>  圖2-1 狀態(tài)轉(zhuǎn)換圖</p><p>  整個(gè)交通燈控制由八個(gè)狀態(tài)組成,可以用程序設(shè)計(jì)實(shí)現(xiàn),也可用時(shí)序邏輯實(shí)現(xiàn).以下方案

23、就是分別用了這兩種方法。</p><p>  2.2.1 方案1設(shè)計(jì)思想</p><p>  采用分模塊設(shè)計(jì)的思想,程序設(shè)計(jì)實(shí)現(xiàn)的基本思想是一個(gè)計(jì)數(shù)器 , 選擇一個(gè)單片機(jī),其內(nèi)部為一個(gè)計(jì)數(shù),是十六進(jìn)制計(jì)數(shù)器,模塊化后,通過(guò)設(shè)置或程序清除來(lái)實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)換, 由于每一個(gè)模塊的計(jì)數(shù)都不是相同, 這里的各模塊是以預(yù)置數(shù)和計(jì)數(shù)器計(jì)數(shù)共同來(lái)實(shí)現(xiàn)的,所以要考慮增加一個(gè)置數(shù)模塊,其主要功能細(xì)分為,對(duì)不同的

24、狀態(tài)輸入要產(chǎn)生相應(yīng)狀態(tài)的下一個(gè)狀態(tài)的預(yù)置數(shù), 如圖中A道和B道,分別為次干道的置數(shù)選擇和主干道的置數(shù)選擇。以主干道為例,簡(jiǎn)述其設(shè)計(jì)思想。如前分析,已經(jīng)確定該系統(tǒng)有四個(gè)狀態(tài),而置數(shù)子模塊可定要將下一狀態(tài)的預(yù)置數(shù)準(zhǔn)備好,所以很容易得到主干道的置數(shù)表如:表2-1</p><p>  表2-1 置數(shù)表</p><p>  由該表,就可以通過(guò)程序循環(huán)的方法設(shè)計(jì)該模塊,主要思想是通過(guò)數(shù)據(jù)判斷指令、

25、跳轉(zhuǎn)指令實(shí)現(xiàn),由主控制器計(jì)時(shí)和中斷產(chǎn)生的狀態(tài)去判斷是否定時(shí)達(dá)到1秒,從而得到不同的輸出,即預(yù)置數(shù),由上分析可用一個(gè)計(jì)數(shù)器和跳轉(zhuǎn)指令去完成的預(yù)置數(shù)。</p><p>  而紅綠燈的顯示也是一樣,由狀態(tài)分析可以得出紅綠燈的變化表如:表2-2</p><p>  表2-2 紅綠燈變化表</p><p>  通過(guò)這張表就可以用單片機(jī)及其他必要的元器件實(shí)現(xiàn)功能。本方案采用模

26、塊化編程,編程代碼可以重復(fù)調(diào)用,編碼冗余低,占用空間比一體化(匯編)編程占用空間小,可讀性高,修改容易。但由于本方案的數(shù)碼管顯示部分沒(méi)有采用鎖存芯片,而是與I/O口直接連通,對(duì)于后面的修改模塊編程有一定難度。</p><p>  2.2.2 方案2設(shè)計(jì)思想</p><p>  狀態(tài)轉(zhuǎn)換表如:表2-3</p><p>  表2-3 狀態(tài)轉(zhuǎn)換表</p>

27、<p><b>  本方案介紹:</b></p><p>  本方案是用匯編語(yǔ)言編寫(xiě),具有較強(qiáng)的時(shí)序性,精度高,適合在時(shí)序要求高的場(chǎng)合使用。但用匯編編寫(xiě)有明顯的不足,它具有高耦合性,使閱讀和修改有一定難度,對(duì)于初學(xué)者更是難以弄懂,更不符合現(xiàn)代的編程低耦合高內(nèi)聚要求。</p><p>  2.2.3 方案比較</p><p>  方案1

28、(以下稱(chēng)1)用了內(nèi)部定時(shí)器及模塊化設(shè)計(jì),而方案2(以下稱(chēng)2)采用的是一體化(匯編)設(shè)計(jì),相比之下1有較強(qiáng)的可讀性和較強(qiáng)的可修改性,而2則在設(shè)計(jì)上顯得較簡(jiǎn)單,設(shè)計(jì)純樸,便于測(cè)試,它的優(yōu)勢(shì)則在于提供了一條較為便捷的解決方案,而1體現(xiàn)了極限編程的思想。</p><p>  我們從中可以得出的是,我們最終的設(shè)計(jì)應(yīng)該盡量使用內(nèi)部定時(shí)器及模塊化設(shè)計(jì)。對(duì)工程設(shè)計(jì)人員來(lái)說(shuō),將來(lái)的產(chǎn)品無(wú)論從修改還是升級(jí)考慮對(duì)有好處,但另外我們又需

29、將設(shè)計(jì)簡(jiǎn)單化,因此我覺(jué)得在設(shè)計(jì)初期盡可能的簡(jiǎn)單化設(shè)計(jì),而一旦設(shè)計(jì)的各項(xiàng)測(cè)試通過(guò)了,在有可能的條件下將設(shè)計(jì)模塊化,所以本設(shè)計(jì)以第一方案為主進(jìn)行。 </p><p>  第三章 交通燈系統(tǒng)硬件設(shè)計(jì)</p><p><b>  3.1 單片機(jī)概述</b></p><p>  單片機(jī)是由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備以及輸出設(shè)備共五個(gè)基本部分組成的。

30、單片機(jī)是把包括運(yùn)算器、控制器、少量的存儲(chǔ)器、最基本的輸入輸出口電路、串行口電路、中斷和定時(shí)電路等都集成在一個(gè)尺寸有限的芯片上。</p><p>  通常,單片機(jī)由單個(gè)集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。</p><p>  單片機(jī)經(jīng)過(guò)1、2、3、4代的發(fā)展,目前單

31、片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引腳的多功能化,以及低電壓、低功耗。</p><p>  目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車(chē)的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子

32、寵物等等,這些都離不開(kāi)單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。它主要是作為控制部分的核心部件。因此,單片機(jī)的學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。</p><p>  51單片機(jī)是對(duì)目前所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱(chēng)。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來(lái)隨著Flash rom技術(shù)的發(fā)展,8031單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為目前應(yīng)用

33、最廣泛的8位單片機(jī)之一,其代表型號(hào)是ATMEL公司的AT89系列,它廣泛應(yīng)用于工業(yè)測(cè)控系統(tǒng)之中。目前很多公司都有51系列的兼容機(jī)型推出,在目前乃至今后很長(zhǎng)的一段時(shí)間內(nèi)將占有大量市場(chǎng)。51單片機(jī)是基礎(chǔ)入門(mén)的一個(gè)單片機(jī),還是應(yīng)用最廣泛的一種。需要注意的是52系列的單片機(jī)一般不具備自編程能力。所以本系統(tǒng)基于這些原因而選用AT89S51芯片來(lái)設(shè)計(jì)這個(gè)交通信號(hào)燈系統(tǒng)。</p><p><b>  3.2 系統(tǒng)構(gòu)成

34、</b></p><p>  XL400開(kāi)發(fā)板一塊,發(fā)光二極管16個(gè)(都是紅色的),一塊萬(wàn)能板,一條跳線(xiàn),一條數(shù)據(jù)下載線(xiàn)。</p><p>  系統(tǒng)結(jié)構(gòu)框圖如:圖3-1</p><p>  圖3-1 系統(tǒng)結(jié)構(gòu)框圖</p><p><b>  系統(tǒng)各部分工作:</b></p><p> 

35、 (1)程序設(shè)置初始時(shí)間,通過(guò)AT89S51單片機(jī)內(nèi)部相應(yīng)寄存器來(lái)實(shí)現(xiàn)。</p><p>  (2) 由AT89S51單片機(jī)的定時(shí)器每秒鐘通過(guò)P0口及P2.0-P2.4口向數(shù)碼管送信息,顯示紅、綠、黃燈的點(diǎn)亮?xí)r間情況;由AT89S51的P1口顯示每個(gè)燈的點(diǎn)亮情況。</p><p>  (3) AT89S51通過(guò)程序設(shè)置各個(gè)信號(hào)燈的點(diǎn)亮?xí)r間,通過(guò)程序設(shè)置南北方向的綠、左轉(zhuǎn)綠時(shí)間依次為60秒、

36、30秒,東西方向的綠、左轉(zhuǎn)綠時(shí)間依次為45秒、25秒,紅燈時(shí)間為各對(duì)稱(chēng)相位的放行時(shí)間之和。</p><p>  (4)通過(guò)AT89S51單片機(jī)的P3口來(lái)控制系統(tǒng)是工作。其中P3.2和P3.1控制修改功能和特殊狀態(tài)。</p><p>  3.3芯片選擇與介紹</p><p>  3.3.1 AT89S51芯片</p><p>  選用的AT8

37、9S51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實(shí)現(xiàn)在線(xiàn)的編程。用于實(shí)現(xiàn)系統(tǒng)的總的控制。其主要功能列舉如下:</p><p>  1、為一般控制應(yīng)用的 8 位單片機(jī)</p><p>  2、晶片內(nèi)部具有時(shí)鐘振蕩器(傳統(tǒng)最高工作頻率可至 33MHz)</p><p>  3、內(nèi)部程式存儲(chǔ)器(ROM)為 4KB</p><p>

38、;  4、內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)為 128B</p><p>  5、外部程序存儲(chǔ)器可擴(kuò)充至 64KB</p><p>  6、外部數(shù)據(jù)存儲(chǔ)器可擴(kuò)充至 64KB</p><p>  7、32 條雙向輸入輸出線(xiàn),且每條均 可以單獨(dú)做 I/O 的控制</p><p>  8、5 個(gè)中斷向量源</p><p>  9、2

39、 組獨(dú)立的 16 位定時(shí)器</p><p>  10、1 個(gè)全雙工串行通信端口</p><p>  11、8751 及 8752 單芯片具有數(shù)據(jù)保密的功能</p><p>  12、單芯片提供位邏輯運(yùn)算指令</p><p>  AT89S51各引腳功能介紹:如圖3-2</p><p>  圖3-2 AT89S51

40、</p><p>  VCC:ATAT89S51 電源正端輸入,接+5V。</p><p><b>  VSS:電源地端。</b></p><p>  XTAL1:?jiǎn)涡酒到y(tǒng)時(shí)鐘的反向放大器輸入端。</p><p>  XTAL2:系統(tǒng)時(shí)鐘的反向放大器輸出端,一般在設(shè)計(jì)上只要在 XTAL1 和 XTAL2 上接上一只石英

41、振蕩晶體系統(tǒng)就可以動(dòng)作了,此外可以在兩個(gè)引腳與地之間加入一個(gè) 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定, 避免噪聲干擾而死機(jī)。 </p><p>  RESET:AT89S51的重置引腳,高電平動(dòng)作,當(dāng)要對(duì)晶片重置時(shí),只要對(duì)此引腳電平提升至高電平并保持兩個(gè)機(jī)器周期以上的時(shí)間,AT89S51便能完成系統(tǒng)重置的各項(xiàng)動(dòng)作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),

42、并且至地址0000H處開(kāi)始讀入程序代碼而執(zhí)行程序。</p><p>  EA/Vpp:"EA"為英文"External Access"的縮寫(xiě),表示存取外部程序代碼之意,低電平動(dòng)作,也就是說(shuō)當(dāng)此引腳接低電平后,系統(tǒng)會(huì)取用外部的程序代碼(存于外部EPROM中)來(lái)執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因?yàn)槠鋬?nèi)部無(wú)程序存儲(chǔ)器空間。如果是使用 8751 內(nèi)部程序

43、空間時(shí),此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時(shí),可以利用此引腳來(lái)輸入21V的燒錄高壓(Vpp)。</p><p>  ALE/PROG:ALE是英文"Address Latch Enable"的縮寫(xiě),表示地址鎖存器啟用信號(hào)。ATAT89S51可以利用這個(gè)引腳來(lái)觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(xiàn)(A0~A7)鎖進(jìn)鎖存器中,因?yàn)锳TAT89S

44、51是以多工的方式送出地址及數(shù)據(jù)。平時(shí)在程序執(zhí)行時(shí)ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來(lái)驅(qū)動(dòng)其他周邊晶片的時(shí)基輸入。此外在燒錄8751程序代碼時(shí),此引腳會(huì)被當(dāng)成程序規(guī)劃的特殊功能來(lái)使用。</p><p>  PSEN:此為"Program Store Enable"的縮寫(xiě),其意為程序儲(chǔ)存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(shí)(EA=0),會(huì)送出此信號(hào)以便取得程序

45、代碼,通常這支腳是接到EPROM的OE腳。ATAT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器可以合并在一起而共用64K的定址范圍。</p><p>  PORT0(P0.0~P0.7):端口0是一個(gè)8位寬的開(kāi)路電極(Open Drain)雙向輸出入端口,共有8個(gè)位,P0.0表示位0,P0.1表示位1,依此類(lèi)推。其他三個(gè)I/O端口(P1、P2、P3)則不具有

46、此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)作I/O用時(shí)可以推動(dòng)8個(gè)LS的TTL負(fù)載。如果當(dāng)EA引腳為低電平時(shí)(即取用外部程序代碼或數(shù)據(jù)存儲(chǔ)器),P0就以多工方式提供地址總線(xiàn)(A0~A7)及數(shù)據(jù)總線(xiàn)(D0~D7)。設(shè)計(jì)者必須外加一個(gè)鎖存器將端口0送出的地址鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一組完整的16位地址總線(xiàn),而定位地址到64K的外部存儲(chǔ)器空間。</p><p>  PORT2(P2.0~

47、P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個(gè)引腳可以推動(dòng)4個(gè)LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時(shí),此端口便能當(dāng)成輸入端口來(lái)使用。P2除了當(dāng)作一般I/O端口使用外,若是在A(yíng)TAT89S51擴(kuò)充外接程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),也提供地址總線(xiàn)的高字節(jié)A8~A15,這個(gè)時(shí)候P2便不能當(dāng)作I/O來(lái)使用了。</p><p>  PORT1(P1.0~P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端

48、口,其輸出緩沖器可以推動(dòng)4個(gè)LS TTL負(fù)載,同樣地,若將端口1的輸出設(shè)為高電平,便是由此端口來(lái)輸入數(shù)據(jù)。如果是使用8052或是8032的話(huà),P1.0又當(dāng)作定時(shí)器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)引腳。</p><p>  PORT3(P3.0~P3.7):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)TTL負(fù)載,同時(shí)還多工具有其他的額外特殊功能,包括串

49、行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部數(shù)據(jù)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟刂频裙δ堋?lt;/p><p><b>  其引腳分配如下:</b></p><p>  P3.0:RXD,串行通信輸入。</p><p>  P3.1:TXD,串行通信輸出。</p><p>  P3.2:INT0,外部中斷0輸入。</p>

50、<p>  P3.3:INT1,外部中斷1輸入。</p><p>  P3.4:T0,計(jì)時(shí)計(jì)數(shù)器0輸入。</p><p>  P3.5:T1,計(jì)時(shí)計(jì)數(shù)器1輸入。</p><p>  P3.6:WR:外部數(shù)據(jù)存儲(chǔ)器的寫(xiě)入信號(hào)。</p><p>  P3.7:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。</p><p>  

51、3.3.2 交通燈控制線(xiàn)路圖 </p><p>  (1)交通信號(hào)燈控制器主模塊: 如圖3-3</p><p>  圖3-3 交通信號(hào)燈控制器主模塊</p><p>  (2)交通信號(hào)燈模塊: 如圖3-4</p><p>  圖3-4 交通信號(hào)燈模塊</p><p&

52、gt;  (3)人行道信號(hào)燈模塊: 如圖3-5</p><p>  圖3-5 人行道信號(hào)燈模塊</p><p> ?。?)方案選擇模塊: 如圖3-6</p><p>  圖3-6 方案選擇模塊</p><p> ?。?)參數(shù)修改模塊: 如圖3-7</p><p>  圖3-7 參數(shù)修改模塊</p>

53、;<p>  第四章 交通燈軟件設(shè)計(jì)</p><p>  4.1 程序設(shè)計(jì)流程圖</p><p>  (1) 程序設(shè)計(jì)總框圖:如圖4-1</p><p>  圖4-1 程序設(shè)計(jì)框圖</p><p>  (2)程序總體流程圖:如圖4-2</p><p>  圖4-2程序總體流程圖</p>

54、<p>  (3)方案執(zhí)行程序總體流程圖:如圖4-3</p><p>  圖4-3 方案執(zhí)行程序總體流程圖</p><p>  (4)執(zhí)行顯示子函數(shù)及燈的狀態(tài)的具體流程圖:圖4-4</p><p>  圖4-4 執(zhí)行顯示子函數(shù)及燈的狀態(tài)的具體流程圖</p><p> ?。?)中斷后修改參數(shù)的具體流程圖:圖4-5</p>

55、;<p>  圖4-5外部中斷0后修改參數(shù)的具體流程圖</p><p> ?。?)外部中斷1后緊急狀態(tài)的具體流程圖:圖4-6</p><p>  圖4-6外部中斷1后緊急狀態(tài)的具體流程圖</p><p><b>  流程圖說(shuō)明:</b></p><p>  圖中定時(shí)器在每50ms中斷一下,設(shè)置為循環(huán)20

56、次(此時(shí)為1秒),每1秒以后,R0,R1自動(dòng)減1。</p><p>  程序中的判斷在相等情況下從右邊出,不相同的情況往下走。</p><p><b>  4.2延時(shí)的設(shè)定</b></p><p>  延時(shí)方法可以有兩種一種是利用AT89S51內(nèi)部定時(shí)器的溢出中斷來(lái)確定1秒的時(shí)間,另一種是采用軟件延時(shí)的方法。</p><p&

57、gt;  4.2.1 計(jì)數(shù)器初值計(jì)算</p><p>  定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿(mǎn)為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為T(mén)C 可得到如下計(jì)算通式:</p><p><b>  TC=M-C</b></p><p> 

58、 式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213 ;在方式1時(shí)M的值為216;在方式2和3為28 ; </p><p><b>  算法公式:</b></p><p>  T=(M-TC)T計(jì)數(shù) 或TC=M-T/T計(jì)數(shù)</p><p>  T計(jì)數(shù)是單片機(jī)時(shí)鐘周期TCLK的12倍;TC為定時(shí)初值</p>&

59、lt;p>  如單片機(jī)的主脈沖頻率為TCLK12MHZ ,經(jīng)過(guò)12分頻</p><p>  方式0    TMAX=213 ×1微秒=8.192毫秒</p><p>  方式1    TMAX=216 ×1微秒=65.536毫秒</p><p>  顯然1秒鐘已經(jīng)超過(guò)了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)

60、問(wèn)題.</p><p><b>  實(shí)現(xiàn)1秒的方法:</b></p><p>  我們采用在主程序中設(shè)定一個(gè)初值為0的軟件計(jì)數(shù)器和使T1定時(shí)50毫秒。這樣每當(dāng)T1到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器加11,然后判斷它是否等于20。為20表示1秒已到可以返回到輸出時(shí)間顯示程序。</p>

61、<p>  4.2.2 相應(yīng)程序代碼</p><p> ?。?)定時(shí)器的設(shè)置 </p><p>  定時(shí)器需定時(shí)50毫秒,故T0工作于方式1?!?lt;/p><p>  初值計(jì)算: TC=M-T/T計(jì)數(shù)?。?16-50ms/1us=15536=3CBOH</p><p>  TH0=(65536-50000)/256;</p&

62、gt;<p>  TL0=(65536-50000)%256;</p><p><b> ?。?)初始化函數(shù)</b></p><p>  void init()</p><p><b>  {</b></p><p>  TMOD=0x01;//確定定時(shí)器0的工作方式為工作

63、方式1</p><p>  TH0=(65536-50000)/256;//裝入定時(shí)器0初始值,高八位</p><p>  TL0=(65536-50000)%256; //裝入定時(shí)器0初始值,低八位</p><p>  EA=1;//開(kāi)總中斷</p><p>  EX0=1;//開(kāi)外部中斷0</p&

64、gt;<p>  EX1=1;//開(kāi)外部中斷0</p><p>  ET0=1;//開(kāi)外部定時(shí)器中斷1 </p><p>  TR0=1;//定時(shí)器1開(kāi)始工作</p><p>  IT0=0;//外部中斷0低電平觸發(fā)</p><p>  //IT1=0;//

65、外部中斷0低電平觸發(fā)</p><p><b>  }</b></p><p>  (3)相應(yīng)定時(shí)器0中斷服務(wù)子程序</p><p>  void timer0()interrupt 1</p><p><b>  {</b></p><p>  p++;

66、//用于定時(shí)的計(jì)數(shù),實(shí)現(xiàn)1S的定時(shí)</p><p>  TH0=(65536-50000)/256;//重新裝初始值</p><p>  TL0=(65536-50000)%256;</p><p><b>  }</b></p><p><b>  程序的軟件延時(shí):</b></p&g

67、t;<p>  AT89S51的工作頻率為0—33MHZ,我們選用的AT89S51單片機(jī)的工作頻率為12MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12M)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過(guò)指令的執(zhí)行條數(shù)來(lái)確定1秒的時(shí)間。</p><p>  具體的延時(shí)程序分析:</p><p>  void delay

68、(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b> 

69、 }</b></p><p>  delay為一個(gè)雙重循環(huán),精確到1ms</p><p>  延時(shí)1秒,只需要調(diào)用delay(1000)就能實(shí)現(xiàn)。</p><p>  由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。</p><p>  4.3 程序的主控制循環(huán)調(diào)用</p><p><b>

70、;  代碼如下:</b></p><p>  void main()//主函數(shù)</p><p><b>  {</b></p><p>  init();//初始化硬件</p><p>  g_time_ns_ok=60;//設(shè)置南北綠燈時(shí)間為60秒</

71、p><p>  gl_time_ns_ok=30;//設(shè)置南北左轉(zhuǎn)綠燈時(shí)間為30秒</p><p>  g_time_we_ok=45;//設(shè)置東西綠燈時(shí)間為45秒</p><p>  gl_time_we_ok=20;//設(shè)置東西左轉(zhuǎn)綠燈時(shí)間為20秒</p><p>  r_time_we=g_time_

72、ns+y_time*2+gl_time_ns;//計(jì)算東西方向的紅燈時(shí)間</p><p>  while(p<60)//上電后的三秒時(shí)間用于掃描按鍵,確定選用方案,沒(méi)有鍵按下就執(zhí)行默認(rèn)方案</p><p><b>  {</b></p><p>  //key_secn();//掃描按鍵,用于方案選擇&l

73、t;/p><p>  fun_select();//方案選擇</p><p><b>  }</b></p><p>  while(1)//執(zhí)行循環(huán)</p><p><b>  {</b></p><p>  y_time=4;//

74、設(shè)置黃燈時(shí)間為4-1=3秒,因?yàn)辄S燈沒(méi)有跳到0S,就轉(zhuǎn)變狀態(tài)了,這里作了一個(gè)處理</p><p>  g_time_ns=g_time_ns_ok;//賦值</p><p>  gl_time_ns=gl_time_ns_ok;</p><p>  g_time_we=g_time_we_ok;</p><p>  gl_time_w

75、e=gl_time_we_ok;</p><p>  r_time_we=g_time_ns+y_time*2+gl_time_ns-3;//計(jì)算東西紅燈時(shí)間</p><p>  r_time_ns=g_time_we+y_time*2+gl_time_we-3 ;//計(jì)算南北紅燈時(shí)間</p><p>  ns_display(g_time_ns,y_t

76、ime,gl_time_ns,y_time,r_time_we);//調(diào)用南北顯示函數(shù),這里默認(rèn)南北方向?yàn)橹飨辔?lt;/p><p>  we_display(g_time_we,y_time,gl_time_we,y_time,r_time_ns);//調(diào)用東西顯示函數(shù),這里默認(rèn)東西方向?yàn)榇蜗辔?lt;/p><p><b>  }</b></p>&l

77、t;p><b>  }</b></p><p>  4.4 方案選擇子函數(shù)</p><p>  void fun_select()</p><p><b>  {</b></p><p>  if(key_select1==0)//按鍵一按下,選擇方案一</p>&l

78、t;p><b>  {</b></p><p>  g_time_ns_ok=55;</p><p>  gl_time_ns_ok=30;</p><p>  g_time_we_ok=35;</p><p>  gl_time_we_ok=25;</p><p><b>  }

79、</b></p><p>  if(key_select2==0)//按鍵二按下,選擇方案二</p><p><b>  {</b></p><p>  g_time_ns_ok=50;</p><p>  gl_time_ns_ok=25;</p><p>  g_tim

80、e_we_ok=30;</p><p>  gl_time_we_ok=15;</p><p><b>  }</b></p><p>  if(key_select3==0)//按鍵三按下,選擇方案三</p><p><b>  {</b></p><p>  

81、g_time_ns_ok=40;</p><p>  gl_time_ns_ok=15;</p><p>  g_time_we_ok=55;</p><p>  gl_time_we_ok=20;</p><p><b>  }</b></p><p>  if(key_select4==0)

82、//按鍵四按下,選擇方案四</p><p><b>  {</b></p><p>  g_time_ns_ok=35;</p><p>  gl_time_ns_ok=20;</p><p>  g_time_we_ok=25;</p><p>  gl_time_we_ok=15;&

83、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  4.5 修改時(shí)間子函數(shù)</p><p>  void int0_int()interrupt 0</p><p>  //void key_secn()</p>

84、<p><b>  {</b></p><p>  ns_shi=1;//關(guān)閉數(shù)碼管顯示</p><p>  ns_ge=1;//關(guān)閉數(shù)碼管顯示</p><p>  we_shi=1;//關(guān)閉數(shù)碼管顯示</p><p>  we_ge=1;//關(guān)閉數(shù)碼管顯示

85、</p><p>  if(key_select==0)//判斷key_select是否按下</p><p><b>  {</b></p><p>  delay(10);//延時(shí)10ms,用于消抖</p><p>  if(key_select==0)//再次判斷key_select是否按下&l

86、t;/p><p>  delay(10);//延時(shí)10ms,用于消抖</p><p>  if(key_select==1)//松手檢測(cè)</p><p><b>  {</b></p><p>  delay(10);//延時(shí)10ms,用于消抖</p><p>  if(key_s

87、elect==1)</p><p><b>  {</b></p><p>  delay(10);</p><p>  count++;//計(jì)數(shù),用于確定修改那個(gè)相位的時(shí)間參數(shù)</p><p>  if(count>4)//超過(guò)所有相位后,清0</p><p><b>

88、  count=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(count==1)// key_select按了一次,選擇方案一</p&g

89、t;<p><b>  {</b></p><p>  change_ns_gtime();//方案一的函數(shù)</p><p><b>  }</b></p><p>  if(count==2)// key_select按了兩次,選擇方案二</p><p><b

90、>  {</b></p><p>  change_ns_gltime();//方案二的函數(shù)</p><p><b>  }</b></p><p>  if(count==3)// key_select按了三次,選擇方案三</p><p><b>  {</b>

91、</p><p>  change_we_gtime();//方案三的函數(shù)</p><p><b>  }</b></p><p>  if(count==4)// key_select按了四次,選擇方案四</p><p><b>  {</b></p><p&g

92、t;  change_we_gltime();//方案四的函數(shù)</p><p><b>  }</b></p><p><b>  }</b></p><p>  4.6 對(duì)現(xiàn)有程序的擴(kuò)充 </p><p>  當(dāng)由于緊急需要對(duì)道路進(jìn)行長(zhǎng)時(shí)間通行時(shí),就要保持該道路更長(zhǎng)時(shí)間的通行。下面以南北方向

93、為例進(jìn)行緊急通行為例,主要實(shí)現(xiàn)黃閃警告及主干道通行。</p><p><b>  代碼如下:</b></p><p>  void int1_int()interrupt 2</p><p><b>  {</b></p><p>  P0=table[0];</p><p&g

94、t;<b>  ns_shi=0;</b></p><p><b>  ns_ge=0;</b></p><p><b>  we_shi=0;</b></p><p><b>  we_ge=0;</b></p><p>  ns_g_sig=0;<

95、;/p><p>  we_r_sig=0;</p><p>  delay(500);</p><p>  ns_g_sig=~ns_g_sig;</p><p>  ns_shi=~ns_shi;</p><p>  ns_ge=~ns_ge;</p><p>  we_shi=~we_shi;&

96、lt;/p><p>  we_ge=~we_ge;</p><p>  we_r_sig=~we_r_sig;</p><p>  delay(500);</p><p><b>  } </b></p><p><b>  第五章 實(shí)驗(yàn)平臺(tái)</b></p>&l

97、t;p><b>  5.1實(shí)驗(yàn)平臺(tái)</b></p><p>  我們采用的是Keil Software生產(chǎn)的Cx51編譯器。運(yùn)行在Windows XP操作平臺(tái)下。 </p><p>  開(kāi)啟計(jì)算機(jī)進(jìn)入Keil C51編譯器介面。如圖5-1</p><p>  (1) Keil C51編譯器介面:如圖5-1</p><p

98、>  圖5-1 Keil C51編譯器介面</p><p> ?。?)加入需要編譯的文件:如圖5-2</p><p>  圖5-2 加入需要編譯的文件</p><p>  (3)編譯、連接的文件:如圖5-3</p><p>  圖5-3 編譯、連接的文件(提示無(wú)錯(cuò)誤,無(wú)警告)</p><p> ?。?)生

99、成十六進(jìn)制文件:如圖5-4</p><p>  圖5-4 生成十六進(jìn)制文件</p><p><b>  5.2實(shí)驗(yàn)步驟</b></p><p>  5.2.1 編寫(xiě)程序代碼</p><p>  程序代碼分為6個(gè)模塊:中斷修改模塊,中斷緊急情況模塊,主函數(shù)模塊,顯示模塊,交通信號(hào)燈模塊,算法模塊。(見(jiàn)程序?qū)崿F(xiàn)代碼)&l

100、t;/p><p>  5.2.2 按照系統(tǒng)硬件連線(xiàn)圖連接好系統(tǒng)并調(diào)試</p><p><b> ?。保{(diào)試程序</b></p><p> ?、?打開(kāi)Keil軟件,新建工程;</p><p><b> ?、?選擇芯片;</b></p><p> ?、?新建文檔,把編寫(xiě)好代碼寫(xiě)入文檔

101、并保存了C文件; </p><p>  ⑷ 把保存的文檔加載到Source Group;</p><p><b> ?、删幾g程序;</b></p><p> ?、试O(shè)置轉(zhuǎn)換成16進(jìn)制;</p><p><b> ?、诉\(yùn)行程序的結(jié)果;</b></p><p>  2. 把編譯好的

102、16進(jìn)制文件(紅綠燈控制器.hex) 輸入單片機(jī)AT89S51仿真器和對(duì)其進(jìn)行初始化。</p><p>  3.給實(shí)驗(yàn)板進(jìn)行通電,觀(guān)察運(yùn)行結(jié)果,不一致則跳到第一步進(jìn)行反復(fù)調(diào)試,直到與預(yù)定目的一致。</p><p>  5.3實(shí)驗(yàn)遇到的問(wèn)題,解決方法及結(jié)果</p><p>  5.3.1 實(shí)驗(yàn)問(wèn)題</p><p> ?。?)數(shù)值在顯示是出現(xiàn)跳動(dòng)

103、或閃爍現(xiàn)象;</p><p>  (2)多個(gè)數(shù)值如何顯示;</p><p> ?。?)相位如何同步;</p><p> ?。?)顯示數(shù)值時(shí),如何更改顯示時(shí)間</p><p>  5.3.2 實(shí)驗(yàn)問(wèn)題的解決</p><p> ?。?)數(shù)值顯示時(shí)出現(xiàn)跳動(dòng)或閃爍現(xiàn)象時(shí)因?yàn)闆](méi)有相對(duì)的硬件,例如鎖存器等。但一般動(dòng)態(tài)掃描超過(guò)8個(gè)數(shù)

104、碼管才會(huì)出現(xiàn)閃爍問(wèn)題,而本系統(tǒng)只有4個(gè)數(shù)碼管,所以可以排除是硬件的問(wèn)題,通過(guò)仔細(xì)閱讀和調(diào)試代碼,發(fā)現(xiàn)原來(lái)的代碼中的刷新率太低才會(huì)出現(xiàn)閃爍現(xiàn)象,而通過(guò)提高刷新率了就能解決這個(gè)問(wèn)題。</p><p>  (2)對(duì)于對(duì)個(gè)數(shù)值的顯示,我采用了動(dòng)態(tài)掃描的方法。通過(guò)定時(shí)器0定時(shí)50ms,在通過(guò)標(biāo)志來(lái)達(dá)到1S的準(zhǔn)確定時(shí)及邏輯處理就能解決多個(gè)數(shù)值的顯示問(wèn)題。</p><p> ?。?)對(duì)于相位的同步,我從

105、實(shí)驗(yàn)中得出了一個(gè)相位的紅燈時(shí)間=另一相位的綠燈+左轉(zhuǎn)綠+2個(gè)黃燈時(shí)間。通過(guò)計(jì)算紅燈時(shí)間就能很好的解決相位的同步問(wèn)題。</p><p> ?。?)對(duì)于參數(shù)的修改,我通過(guò)外部中斷處理和定義變量就能很好的解決參數(shù)的修改問(wèn)題。</p><p>  5.3.3 實(shí)驗(yàn)結(jié)果(請(qǐng)看硬件演示)</p><p>  第六章 總結(jié)與展望</p><p>  本系

106、統(tǒng)采用美國(guó)ATMEL公司生產(chǎn)的單片機(jī)AT89S51,以及其它芯片來(lái)設(shè)計(jì)交通燈控制。本方案為了簡(jiǎn)化對(duì)路口的操作,采取了四相位對(duì)稱(chēng)(不對(duì)稱(chēng))放行的方式進(jìn)行控制。實(shí)現(xiàn)了通過(guò)AT89S51芯片的P0口和P2口中的P2.0-P2.4口控制數(shù)碼管的顯示功能,用P1口控制紅、綠、黃燈點(diǎn)亮的功能及上電時(shí)按鍵通過(guò)P1口中的P1.0-P1.4口實(shí)現(xiàn)方案選擇功能。采用P1口和P3.0-P3.1、P3.6-P3.7模擬路紅紅綠燈情況并通過(guò)中斷進(jìn)入修改參數(shù)狀態(tài)和

107、緊急狀態(tài),修改參數(shù)使用P1.4-P1.7(按鍵分別是相位選擇,加一,減一及確定修改功能)。系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展性好。</p><p>  系統(tǒng)不足:時(shí)間設(shè)定中沒(méi)有綠燈閃爍時(shí)間,此外,還沒(méi)有充分考慮的把現(xiàn)代管理、人工智能運(yùn)用到交通的控制中,來(lái)計(jì)算交通控制點(diǎn)之間的距離,來(lái)更合理的安排紅、綠燈的持續(xù)時(shí)間,使城市的交通管理更加人性化。使人們遠(yuǎn)離目前的交通擁塞的現(xiàn)象。其次是代碼較長(zhǎng)及重復(fù),沒(méi)有考慮到代碼的優(yōu)化問(wèn)題,

108、如果代碼規(guī)模繼續(xù)增大或功能繼續(xù)添加可能會(huì)使系統(tǒng)不能很好的運(yùn)行起來(lái)。再者就是修改時(shí)間參數(shù)的問(wèn)題,因?yàn)橛布系南拗?,修改參?shù)時(shí)數(shù)碼管并不能一直點(diǎn)亮,同時(shí)按鍵有時(shí)會(huì)產(chǎn)生失靈現(xiàn)象,這樣的現(xiàn)象可以說(shuō)得上是功能上的缺陷,但受限與硬件,并沒(méi)有更好的、通過(guò)軟件來(lái)彌補(bǔ)的辦法。</p><p><b>  第七章 致謝</b></p><p>  隨著交通信號(hào)燈系統(tǒng)的完成,我的大學(xué)生涯

109、也隨著已近尾聲,回望這兩年的學(xué)習(xí)生涯,腦海中浮現(xiàn)了生活和學(xué)習(xí)中的點(diǎn)點(diǎn)滴滴,都將隨著收入我的腦海,我將做好準(zhǔn)備,走入社會(huì),實(shí)現(xiàn)自己的價(jià)值。</p><p>  在曹成濤博士的精心指導(dǎo)和嚴(yán)格要求下,我順利地完成了這次畢業(yè)設(shè)計(jì)。在此我非常感謝曹成濤博士的嚴(yán)格要求,讓我改掉平時(shí)做事不嚴(yán)謹(jǐn)?shù)淖黠L(fēng),同時(shí)我也獲得了豐富的理論知識(shí),極大地提高了實(shí)踐能力,并對(duì)當(dāng)前電子領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,這對(duì)我今后進(jìn)一步學(xué)習(xí)嵌入

110、式方面的知識(shí)有極大的幫助。另外,我還十分感謝周志方、林曉輝、李少偉等多位老師。周志方老師是我編程的啟蒙老師,他精美絕倫的編程風(fēng)格深深地吸引著我,承蒙他的指引讓我在學(xué)習(xí)上少走了很多彎路。在此,我忠心感謝單片機(jī)組的其它同學(xué)以及應(yīng)用系各位老師的指導(dǎo)和支持。在未來(lái)的工作和學(xué)習(xí)中,我將以更好的成績(jī)來(lái)回報(bào)各位領(lǐng)導(dǎo)、老師和同學(xué)。</p><p><b>  第八章 參考文獻(xiàn)</b></p>

111、<p>  [1]胡漢才 單片機(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ī)控制技術(shù) [M]

112、 人民郵電出版社,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] 機(jī)電一體化,2005 第5期</p>&

113、lt;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]何立民 單片機(jī)應(yīng)用技術(shù)選編⑨ 北京航空航天大學(xué)出版社 2004.3</p><p>  [11]何立民 MCS-51系列單片機(jī)

114、應(yīng)用系統(tǒng)設(shè)計(jì) 北京航空航天大學(xué)出版社, 1995.</p><p>  [12]李華 MCS -51系列單片機(jī)實(shí)用接口技術(shù)[M] 北京航空航天大學(xué)出版社,1993</p><p>  [13]周航慈 單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M] 北京航空航天大學(xué)出版社,1991.</p><p>  [14]張志良等 單片機(jī)原理與控制技術(shù)[M] 機(jī)械工業(yè)出版社,

115、2001 年7 月第1 版</p><p>  [15]陸坤 電子設(shè)計(jì)技術(shù)1 電子科技大學(xué)出版社, 1997</p><p>  [16]梁文海 單片機(jī)AT89C2051構(gòu)成的智能型頻率計(jì)[J] 現(xiàn)代電子技術(shù),2002 </p><p>  [17]謝自美 電子線(xiàn)路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試[M] 華中理工大學(xué)出版社,2001&

116、lt;/p><p>  [18]吳金戎,沈慶陽(yáng) 8051單片機(jī)實(shí)踐與應(yīng)用 [M] 清華大學(xué)出版社, 2003.</p><p>  第九章 程序?qū)崿F(xiàn)代碼</p><p>  /*---------------------------------------------------------------------------</p><

117、p>  1、(南北直行綠燈(小于3秒時(shí)綠閃),東西紅燈-->南北人行道綠燈,東西人行道紅燈</p><p>  2、(南北直行黃燈(小于3秒時(shí)黃閃),東西紅燈-->南北人行道紅燈,東西人行道紅燈</p><p>  3、(南北左轉(zhuǎn)綠燈(小于3秒時(shí)綠閃),東西紅燈-->南北人行道紅燈,東西人行道紅燈</p><p>  4、(南北左轉(zhuǎn)黃燈

118、(小于3秒時(shí)黃閃),東西紅燈-->南北人行道紅燈,東西人行道紅燈</p><p>  5、(南北紅燈,東西直行綠燈(小于3秒時(shí)綠閃)-->南北人行道紅燈,東西人行道綠燈</p><p>  6、(南北紅燈,東西直行黃燈(小于3秒時(shí)黃閃)-->南北人行道紅燈,東西人行道紅燈</p><p>  7、(南北紅燈,東西左轉(zhuǎn)綠燈(小于3秒時(shí)綠閃)--&

119、gt;南北人行道紅燈,東西人行道紅燈</p><p>  8、(南北紅燈,東西左轉(zhuǎn)黃燈(小于3秒時(shí)黃閃)-->南北人行道紅燈,東西人行道紅燈</p><p>  9、全紅3秒-->南北人行道紅燈,東西人行道紅燈</p><p>  g_time_ns y_time gl_time_ns r_time_we1=g_ti

120、me_ns+y_time*2+gl_time </p><p>  g_time_we gl_time_we r_time_ns1=g_time_we+y_time*2+gl_time_we </p><p>  ------------------------------------------------------------------------------*/&l

121、t;/p><p>  #include <reg52.h>//包含52芯片的文件頭,可改為reg51.h,區(qū)別在于寄存器的多少</p><p>  #include<intrins.h></p><p>  #define uint unsigned int</p><p>  #define uchar

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論