版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 2 交通管理方案論證1</p><p> 2.1 設(shè)計(jì)任務(wù)1</p><p> 2.2 方案介紹2</p><p> 3 交通燈系統(tǒng)硬件設(shè)計(jì)4&
2、lt;/p><p> 3.1 單片機(jī)概述4</p><p> 3.2 系統(tǒng)構(gòu)成5</p><p> 3.3芯片選擇與介紹5</p><p> 3.3.1 AT89S51芯片5</p><p> 3.3.2 74HC164芯片介紹7</p><p> 3.3.3 74LS0
3、4輸出信號(hào)與信號(hào)燈8</p><p> 3.3.4 交通燈控制線路圖9</p><p> 4 交通燈軟件設(shè)計(jì)10</p><p> 4.1 程序設(shè)計(jì)流程圖10</p><p> 4.2延時(shí)的設(shè)定12</p><p> 4.2.1 計(jì)數(shù)器初值計(jì)算12</p><p>
4、4.2.2 相應(yīng)程序代碼12</p><p> 4.3 程序的主控制循環(huán)調(diào)用13</p><p> 4.4 對(duì)現(xiàn)有程序的擴(kuò)充14</p><p><b> 5實(shí)驗(yàn)平臺(tái)15</b></p><p> 5.1實(shí)驗(yàn)平臺(tái)15</p><p> 5.2實(shí)驗(yàn)步驟15</p>
5、<p> 5.2.1 編寫程序代碼15</p><p> 5.2.2 按照系統(tǒng)硬件連線圖連接好系統(tǒng)并調(diào)試15</p><p><b> 結(jié)論17</b></p><p><b> 致謝17</b></p><p><b> 參考文獻(xiàn)18</b>
6、</p><p><b> 程序?qū)崿F(xiàn)代碼19</b></p><p><b> 單片機(jī)交通燈設(shè)計(jì)</b></p><p><b> 摘 要:</b></p><p> 近年來隨著科技的飛速發(fā)展,一個(gè)以微電子技術(shù)、計(jì)算機(jī)技術(shù)和通信技術(shù)為先導(dǎo)的信息革命正在蓬勃發(fā)展。計(jì)算
7、機(jī)技術(shù)作為三者之一,怎樣與實(shí)際應(yīng)用更有效的結(jié)合并發(fā)揮其作用。單片機(jī)作為計(jì)算機(jī)技術(shù)的一個(gè)分支,正在不斷的應(yīng)用到實(shí)際生活中,同時(shí)帶動(dòng)傳統(tǒng)控制檢測的更新。在實(shí)時(shí)檢測和自動(dòng)控制的應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件使用,針對(duì)具體應(yīng)用對(duì)象的特點(diǎn),配以其它器件來加以完善。</p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)交通的井然秩序呢?靠的是交通信號(hào)燈的自動(dòng)指揮系統(tǒng),來實(shí)現(xiàn)
8、交通的井然有序。交通信號(hào)燈控制方式很多。本系統(tǒng)采用美國ATMEL公司生產(chǎn)的單片機(jī)AT89S51,以及其它芯片來設(shè)計(jì)交通燈控制。實(shí)現(xiàn)了通過AT89S51芯片的P1口設(shè)置紅、綠燈點(diǎn)亮的功能,通過AT89S51芯片的RXD、TXD輸入、輸出設(shè)置顯示時(shí)間。交通燈的點(diǎn)亮采用發(fā)光二極管實(shí)現(xiàn),時(shí)間的顯示采用七段數(shù)碼管實(shí)現(xiàn)。單片機(jī)系統(tǒng)采用的直流供電。為了系統(tǒng)穩(wěn)定可靠,系統(tǒng)內(nèi)集成了“看門狗”芯片,避免了系統(tǒng)因?yàn)樗罊C(jī)而停止工作的情況發(fā)生。系統(tǒng)實(shí)用性強(qiáng)、操作
9、簡單、擴(kuò)展性好。</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 2 交通管理方案論證1</p><p> 2.1 設(shè)計(jì)任務(wù)1</p><p> 2.2 方案介紹2</p><p
10、> 3 交通燈系統(tǒng)硬件設(shè)計(jì)4</p><p> 3.1 單片機(jī)概述4</p><p> 3.2 系統(tǒng)構(gòu)成5</p><p> 3.3芯片選擇與介紹5</p><p> 3.3.1 AT89S51芯片5</p><p> 3.3.2 74HC164芯片介紹7</p><
11、;p> 3.3.3 74LS04輸出信號(hào)與信號(hào)燈8</p><p> 3.3.4 交通燈控制線路圖9</p><p> 4 交通燈軟件設(shè)計(jì)10</p><p> 4.1 程序設(shè)計(jì)流程圖10</p><p> 4.2延時(shí)的設(shè)定12</p><p> 4.2.1 計(jì)數(shù)器初值計(jì)算12<
12、;/p><p> 4.2.2 相應(yīng)程序代碼12</p><p> 4.3 程序的主控制循環(huán)調(diào)用13</p><p> 4.4 對(duì)現(xiàn)有程序的擴(kuò)充14</p><p><b> 5實(shí)驗(yàn)平臺(tái)15</b></p><p> 5.1實(shí)驗(yàn)平臺(tái)15</p><p>
13、5.2實(shí)驗(yàn)步驟15</p><p> 5.2.1 編寫程序代碼15</p><p> 5.2.2 按照系統(tǒng)硬件連線圖連接好系統(tǒng)并調(diào)試15</p><p><b> 結(jié)論17</b></p><p><b> 致謝17</b></p><p><b>
14、; 參考文獻(xiàn)18</b></p><p><b> 程序?qū)崿F(xiàn)代碼19</b></p><p><b> 1 引言</b></p><p> 今天,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。</p><p> 1858年
15、,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車通行。這是世界上最早的交通信號(hào)燈。1868年,英國機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩塊以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p><p> 1914年,電氣啟動(dòng)的紅綠燈出現(xiàn)在美國。這種紅
16、綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p> 1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,當(dāng)車輛接近時(shí),紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動(dòng)紅綠燈,司機(jī)遇紅燈時(shí)按一下喇叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對(duì)壓力敏感的路面時(shí),它就能察覺到有人要過馬路。紅外光束能把信號(hào)燈的紅
17、燈延長一段時(shí)間,推遲汽車放行,以免發(fā)生交通事故。</p><p> 信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標(biāo)志信號(hào)協(xié)定》對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),
18、面對(duì)紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號(hào),面對(duì)黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。</p><p> 隨著經(jīng)濟(jì)的發(fā)展,交通運(yùn)輸中出現(xiàn)了一些傳統(tǒng)方法難以解決的問題。道路擁擠現(xiàn)象日趨嚴(yán)重,造成的經(jīng)濟(jì)損失越來越大,并一直保持大比例的增長?,F(xiàn)在交通系統(tǒng)已不能滿足經(jīng)濟(jì)發(fā)展的需求。由于生活水平的提高,人們對(duì)交通運(yùn)輸?shù)陌踩约胺?wù)水平提出了更高的要求。在交通中管
19、理引入單片機(jī)交通燈控制代替交管人員在交叉路口服務(wù),有助于提高交通運(yùn)輸?shù)陌踩?、提高交通管理的服?wù)質(zhì)量。并在一定程度上盡可能的降低由道路擁擠造成的經(jīng)濟(jì)損失,同時(shí)也減小了工作人員的勞動(dòng)強(qiáng)度。 </p><p> 中國車輛數(shù)量不斷增加,交通控制在未來的交通管理中起著越來越重要的作用。智能交通燈的管理比重修一條馬路無論在經(jīng)濟(jì)、交通運(yùn)行速率上都有很好的效益、
20、更加節(jié)約資源。使交管人員有更多的精力投入到管理整個(gè)城市交通控制,帶來更大的經(jīng)濟(jì)和社會(huì)效益,為創(chuàng)造美好的城市交通形象發(fā)揮更多的作用。</p><p> 2 交通管理方案論證</p><p><b> 2.1 設(shè)計(jì)任務(wù)</b></p><p> 東西(A)、南北(B)兩干道交于一個(gè)十字路口,各干道有一組紅、左轉(zhuǎn)綠、綠三個(gè)指示燈,指揮車輛和行人
21、安全通行。紅燈亮禁止通行,綠燈亮允許通行。紅燈的設(shè)計(jì)時(shí)間為40秒,綠燈及左轉(zhuǎn)綠燈各為20秒。設(shè)A道和B道的車流量相同。</p><p><b> 2.2 方案介紹</b></p><p> 把設(shè)計(jì)任務(wù)細(xì)化為四個(gè)狀態(tài),其對(duì)應(yīng)狀態(tài):如圖1</p><p><b> 圖1 狀態(tài)轉(zhuǎn)換圖</b></p><
22、;p> 整個(gè)交通燈控制由四個(gè)狀態(tài)組成,可以用程序設(shè)計(jì)實(shí)現(xiàn),也可用時(shí)序邏輯實(shí)現(xiàn).以下方案就是分別用了這兩種方法。</p><p><b> 方案1設(shè)計(jì)思想:</b></p><p> 采用分模塊設(shè)計(jì)的思想,程序設(shè)計(jì)實(shí)現(xiàn)的基本思想是一個(gè)計(jì)數(shù)器 , 選擇一個(gè)單片機(jī),其內(nèi)部為一個(gè)計(jì)數(shù),是十六進(jìn)制計(jì)數(shù)器,模塊化后,通過設(shè)置或程序清除來實(shí)現(xiàn)狀態(tài)的轉(zhuǎn)換, 由于每一個(gè)模塊
23、的計(jì)數(shù)多不是相同, 這里的各模塊是以預(yù)置數(shù)和計(jì)數(shù)器計(jì)數(shù)共同來實(shí)現(xiàn)的,所以要考慮增加一個(gè)置數(shù)模塊,其主要功能細(xì)分為,對(duì)不同的狀態(tài)輸入要產(chǎn)生相應(yīng)狀態(tài)的下一個(gè)狀態(tài)的預(yù)置數(shù), 如圖中A道和B道,分別為次干道的置數(shù)選擇和主干道的置數(shù)選擇。以主干道為例,簡述其設(shè)計(jì)思想。如前分析,已經(jīng)確定該系統(tǒng)有四個(gè)狀態(tài),而置數(shù)子模塊可定要將下一狀態(tài)的預(yù)置數(shù)準(zhǔn)備好,所以很容易得到主干道的置數(shù)表如:表1</p><p><b> 表
24、1 置數(shù)表</b></p><p> 由該表,就可以通過程序循環(huán)的方法設(shè)計(jì)該模塊,主要思想是通過數(shù)據(jù)判斷指令、跳轉(zhuǎn)指令實(shí)現(xiàn),由主控制器計(jì)時(shí)和中斷產(chǎn)生的四個(gè)狀態(tài)去譯碼,從而得到不同的輸出,即預(yù)置數(shù),由上分析可用一個(gè)計(jì)數(shù)器和跳轉(zhuǎn)指令去完成的預(yù)置數(shù)。</p><p> 而紅綠燈的顯示也是一樣,由狀態(tài)分析可以得出紅綠燈的變化表如:表2</p><p>
25、 表2 紅綠燈變化表</p><p> 通過這張表就可以用組合電路實(shí)現(xiàn)該功能了,可以用數(shù)據(jù)選擇器的思想,在本系統(tǒng)中,直接通過門電路的譯碼,接下來就是計(jì)數(shù)模塊了,其主要的功能細(xì)分為,要從預(yù)置數(shù)開始遞減計(jì)數(shù),一個(gè)狀態(tài)結(jié)束,通過判斷,通知主控制模塊,使之進(jìn)入下一模塊。還有一個(gè)必須考慮到的就是,預(yù)置數(shù)必須在下一個(gè)狀態(tài)來之前準(zhǔn)備好,而紅綠燈的狀態(tài)變化,必須和計(jì)數(shù)狀態(tài)同步,于是引起預(yù)置數(shù)變化的程序要超前于系統(tǒng)本身的狀態(tài)變
26、化,所以,系統(tǒng)中的兩個(gè)狀態(tài)轉(zhuǎn)換時(shí),在上一狀態(tài)結(jié)束時(shí)設(shè)置預(yù)置數(shù),而控制紅綠燈的是隨著系統(tǒng)本身狀態(tài)的變化而變化,體現(xiàn)在本子電路中就是有兩組電路去判斷符合的狀態(tài)。</p><p> 方案2 設(shè)計(jì)思想:</p><p><b> 狀態(tài)轉(zhuǎn)換表如:表3</b></p><p><b> 表3 狀態(tài)轉(zhuǎn)換表</b></p&
27、gt;<p><b> 本方案分三步:</b></p><p> ?。?)要建立三路信號(hào)燈的控制系統(tǒng),本設(shè)計(jì)采用7408 芯片通過組合邏輯控制三路燈的顯示關(guān)系。</p><p> (2)建立顯示控制系統(tǒng),本設(shè)計(jì)采用74190 芯片倒計(jì)時(shí)控制,每個(gè)方向用兩片相連實(shí)現(xiàn),另外用74153芯片,因?yàn)榉治鲋性O(shè)置的時(shí)間末位均為5,所以只要用一片74153 對(duì)高位
28、置位,將低位的初值預(yù)置鎖定為5,而高位則根據(jù)需要由反饋部分提供預(yù)置值。</p><p> ?。?)建立反饋和細(xì)節(jié)連接部分,本部分主要解決顯示和燈控的同步問題本系統(tǒng)采用倒計(jì)時(shí)系統(tǒng)減為0,如當(dāng)系統(tǒng)減為0 時(shí)通過兩個(gè)D觸發(fā)器得到兩個(gè)變量,即為開頭分析中的狀態(tài),通過它的變化得到不同的邏輯關(guān)系,驅(qū)動(dòng)74153 控制哪組燈亮(對(duì)應(yīng)關(guān)系如表所示),另外他還要同步反饋到顯示系統(tǒng)的置數(shù)環(huán)節(jié)。</p><p>
29、; 注意:本實(shí)驗(yàn)中若采用更復(fù)雜的四片74190控制主干道的兩組燈,再用八片74153分別對(duì)74190置數(shù)可實(shí)現(xiàn)任意數(shù)值的交通燈系統(tǒng)。另外對(duì)7408 片子的控制紅燈的端口用一個(gè)與門將一端再接一個(gè)頻率一定的方波,使一邊為黃燈時(shí),另一邊的紅燈在閃爍。</p><p><b> 方案比較:</b></p><p> 方案1(以下稱1)用了模塊設(shè)計(jì),而方案2(以下稱2)采
30、用的是一般設(shè)計(jì),相比之下1有較強(qiáng)的可讀性和較強(qiáng)的可修改性,而2則在設(shè)計(jì)上顯得較簡單,設(shè)計(jì)純樸,便于測試,它的優(yōu)勢則在于提供了一條較為便捷的解決方案。2首先將許多邏輯關(guān)系簡化到極點(diǎn),而后將其一起集成用較少的芯片去完成所需功能。</p><p> 我們從中可以得出的是,我們最終的設(shè)計(jì)應(yīng)該盡量使用模塊化設(shè)計(jì)。對(duì)工程設(shè)計(jì)人員來說,將來的產(chǎn)品無論從修改還是升級(jí)考慮對(duì)有好處,但另外我們又需將設(shè)計(jì)簡單化,因此我覺得在設(shè)計(jì)初期
31、盡可能的簡單化設(shè)計(jì),而一旦設(shè)計(jì)的各項(xiàng)測試通過了,在有可能的條件下將設(shè)計(jì)模塊化,所以本設(shè)計(jì)以第一方案為主進(jìn)行。 </p><p> 3 交通燈系統(tǒng)硬件設(shè)計(jì)</p><p><b> 3.1 單片機(jī)概述</b></p><p> 單片機(jī)是由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備以及輸出設(shè)備共五個(gè)基本部分組成的。單片機(jī)是把包括運(yùn)算器、控制器、少量的存
32、儲(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)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們
33、的CPU功能在增強(qiáng),內(nèi)部資源在增多,引腳的多功能化,以及低電壓、低功耗。</p><p> 可以說,二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指個(gè)人計(jì)算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單運(yùn)算和控制。因?yàn)樗w
34、積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了。現(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機(jī)等?,F(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產(chǎn)
35、品未使用單片機(jī)或其它可編程邏輯器件上。 </p><p> 目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、
36、醫(yī)療器械了。它主要是作為控制部分的核心部件。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。</p><p><b> 3.2 系統(tǒng)構(gòu)成</b></p><p> 電路板一塊,AT89S51單片機(jī)一片,74HC164芯片八片,七段數(shù)碼管八個(gè)。74LS04反向器一片,發(fā)光二極管13個(gè)(8個(gè)綠的,4個(gè)紅的用于交通控制,1個(gè)用于標(biāo)識(shí)電源)
37、,7805三端穩(wěn)壓電源一個(gè),一個(gè)按鍵,一條數(shù)據(jù)下載線。</p><p> 系統(tǒng)結(jié)構(gòu)框圖如:圖2</p><p><b> 圖2 系統(tǒng)結(jié)構(gòu)框圖</b></p><p><b> 系統(tǒng)各部分工作:</b></p><p> (1)程序設(shè)置初始時(shí)間,通過AT89S51單片機(jī)內(nèi)部相應(yīng)寄存器來實(shí)現(xiàn)。&
38、lt;/p><p> (2) 由AT89S51單片機(jī)的定時(shí)器每秒鐘通過P3.0口向74HC164的數(shù)據(jù)端口送信息,由74HC164的輸出口顯示紅、綠、黃燈的點(diǎn)亮?xí)r間情況;由AT89S51的P1.0、P1.1、P1.2、P1.3口顯示每個(gè)燈的點(diǎn)亮情況。</p><p> (3) AT89S51通過程序設(shè)置各個(gè)信號(hào)燈的點(diǎn)亮?xí)r間,通過程序設(shè)置左轉(zhuǎn)綠、綠、紅時(shí)間依次為20秒、20秒、40秒循環(huán),由
39、AT89S51的 P3口向74HC164的數(shù)據(jù)口輸出。</p><p> (4)通過AT89S51單片機(jī)的P3口來控制系統(tǒng)是工作。</p><p> (5)74HC164的A、B口用于串行輸出時(shí)間位,經(jīng)過串并轉(zhuǎn)換送到七段數(shù)碼管的八的引腳。而P1口用于輸出控制信號(hào).而通過74LS04反向器實(shí)現(xiàn)控制各個(gè)燈的情況.它采用5V的直流電來驅(qū)動(dòng)二極管。</p><p>
40、(6)AT89S51本身集成了看門狗指令,當(dāng)系統(tǒng)出現(xiàn)異??撮T狗將發(fā)出溢出中斷。通過專用端口輸出,引起RESET復(fù)位信號(hào)復(fù)位系統(tǒng)。</p><p> 3.3芯片選擇與介紹</p><p> 3.3.1 AT89S51芯片</p><p> 選用的AT89S51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實(shí)現(xiàn)在線的編程。用于實(shí)現(xiàn)系統(tǒng)的總的控制。其
41、主要功能列舉如下:</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> 4、內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)為 128B</p><p> 5、外部程序存儲(chǔ)器
42、可擴(kuò)充至 64KB</p><p> 6、外部數(shù)據(jù)存儲(chǔ)器可擴(kuò)充至 64KB</p><p> 7、32 條雙向輸入輸出線,且每條均 可以單獨(dú)做 I/O 的控制</p><p> 8、5 個(gè)中斷向量源</p><p> 9、2 組獨(dú)立的 16 位定時(shí)器</p><p> 10、1 個(gè)全雙工串行通信端口<
43、/p><p> 11、8751 及 8752 單芯片具有數(shù)據(jù)保密的功能</p><p> 12、單芯片提供位邏輯運(yùn)算指令</p><p> AT89S51各引腳功能介紹:如圖3</p><p> 圖3 AT89S51</p><p> VCC:ATAT89S51 電源正端輸入,接+5V。</p>
44、<p><b> VSS:電源地端。</b></p><p> XTAL1:單芯片系統(tǒng)時(shí)鐘的反向放大器輸入端。</p><p> XTAL2:系統(tǒng)時(shí)鐘的反向放大器輸出端,一般在設(shè)計(jì)上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動(dòng)作了,此外可以在兩個(gè)引腳與地之間加入一個(gè) 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定, 避免噪聲干擾而死機(jī)。
45、 </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),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。</p><p> EA/Vpp:"
46、EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動(dòng)作,也就是說當(dāng)此引腳接低電平后,系統(tǒng)會(huì)取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因?yàn)槠鋬?nèi)部無程序存儲(chǔ)器空間。如果是使用 8751 內(nèi)部程序空間時(shí),此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時(shí),可以利用此引腳來輸入21V的燒錄高壓(Vpp
47、)。</p><p> ALE/PROG:ALE是英文"Address Latch Enable"的縮寫,表示地址鎖存器啟用信號(hào)。ATAT89S51可以利用這個(gè)引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進(jìn)鎖存器中,因?yàn)锳TAT89S51是以多工的方式送出地址及數(shù)據(jù)。平時(shí)在程序執(zhí)行時(shí)ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅(qū)動(dòng)其他周邊晶
48、片的時(shí)基輸入。此外在燒錄8751程序代碼時(shí),此引腳會(huì)被當(dāng)成程序規(guī)劃的特殊功能來使用。</p><p> PSEN:此為"Program Store Enable"的縮寫,其意為程序儲(chǔ)存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(shí)(EA=0),會(huì)送出此信號(hào)以便取得程序代碼,通常這支腳是接到EPROM的OE腳。ATAT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM
49、,使得數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器可以合并在一起而共用64K的定址范圍。</p><p> PORT0(P0.0~P0.7):端口0是一個(gè)8位寬的開路電極(Open Drain)雙向輸出入端口,共有8個(gè)位,P0.0表示位0,P0.1表示位1,依此類推。其他三個(gè)I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)作I/O用時(shí)可以推動(dòng)8個(gè)LS的TTL負(fù)載。如果當(dāng)EA引腳為低電平時(shí)(即取用外部程
50、序代碼或數(shù)據(jù)存儲(chǔ)器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設(shè)計(jì)者必須外加一個(gè)鎖存器將端口0送出的地址鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一組完整的16位地址總線,而定位地址到64K的外部存儲(chǔ)器空間。</p><p> PORT2(P2.0~P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個(gè)引腳可以推動(dòng)4個(gè)LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時(shí)
51、,此端口便能當(dāng)成輸入端口來使用。P2除了當(dāng)作一般I/O端口使用外,若是在ATAT89S51擴(kuò)充外接程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),也提供地址總線的高字節(jié)A8~A15,這個(gè)時(shí)候P2便不能當(dāng)作I/O來使用了。</p><p> PORT1(P1.0~P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)LS TTL負(fù)載,同樣地,若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用805
52、2或是8032的話,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í)還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部數(shù)據(jù)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟刂频裙δ堋?lt;/p><p>&
53、lt;b> 其引腳分配如下:</b></p><p> P3.0:RXD,串行通信輸入。</p><p> P3.1:TXD,串行通信輸出。</p><p> P3.2:INT0,外部中斷0輸入。</p><p> P3.3:INT1,外部中斷1輸入。</p><p> P3.4:T0,計(jì)
54、時(shí)計(jì)數(shù)器0輸入。</p><p> P3.5:T1,計(jì)時(shí)計(jì)數(shù)器1輸入。</p><p> P3.6:WR:外部數(shù)據(jù)存儲(chǔ)器的寫入信號(hào)。</p><p> P3.7:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。</p><p> 3.3.2 74HC164芯片介紹</p><p> 74HC164為串行輸入、并行輸出移位寄
55、存器,74HC164為單向總線驅(qū)動(dòng)器。</p><p> 在串行口為方式0狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的十二分之一。器件執(zhí)行任何一條將SBUF作為目的寄存器的命令時(shí),數(shù)據(jù)便開始從RXD端發(fā)送。在寫信號(hào)有效時(shí),相隔 一個(gè)機(jī)器周期后發(fā)送控制端SEND有效,即允許RXD發(fā)送數(shù)據(jù),同時(shí),允許從TXD端輸出移位脈沖。第一幀(8位)數(shù)據(jù)發(fā)送完畢時(shí),各控制信號(hào)均恢復(fù)原狀態(tài),只有TI保持高電平,呈中斷申請(qǐng)狀態(tài)
56、。第一個(gè)74HC164把第一幀數(shù)據(jù)并行輸出,LED1顯示該數(shù)據(jù)。然后,用軟件將TI清0,發(fā)送第二幀數(shù)據(jù)。第二幀數(shù)據(jù)發(fā)送完畢,LED1顯示第二幀數(shù)據(jù),第一幀數(shù)據(jù)串行輸入給第二個(gè)74HC164,LED2顯示第一幀數(shù)據(jù)。依此類推,直到把數(shù)據(jù)區(qū)內(nèi)所有數(shù)據(jù)發(fā)送出去。應(yīng)該注意,數(shù)據(jù)全部發(fā)送完后,第一幀數(shù)據(jù)在最后一個(gè)LED顯示。由于TXD端最多可以驅(qū)動(dòng)8個(gè)TTL門。</p><p> 注意:當(dāng)LED顯示器超過8個(gè)時(shí),我們采用
57、74HC244芯片驅(qū)動(dòng)。每個(gè)74HC244有8路驅(qū)動(dòng),每一路可驅(qū)動(dòng)8個(gè)LED,即每增加一個(gè)74HC244,可增加64個(gè)LED驅(qū)動(dòng)。</p><p> 七段數(shù)碼管,用于顯示0—9的數(shù)字。</p><p> 3.3.3 74LS04輸出信號(hào)與信號(hào)燈</p><p> 要使行人能看見信號(hào)燈的情況,必須把P1口輸出的信號(hào)進(jìn)行放大,這里我們用74LS04反向器,當(dāng)極性
58、為高電平時(shí)晶閘管導(dǎo)通,該支路指示燈亮;當(dāng)極性為低電平時(shí)關(guān)斷,該支路指示燈滅。</p><p> LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)亮。 </p><p> 七段數(shù)碼管的顯示及與7
59、4HC164的連接顯示不同的數(shù)字如 SP,g,f,e,d,c,b,a 管角上加上0FEH所以?。樱猩蠟椋胺?,不亮其余為TTL高電平,全亮則顯示為8。</p><p> 數(shù)字0-9與16進(jìn)制的轉(zhuǎn)換驅(qū)動(dòng)代碼表:如表5</p><p><b> 表5 驅(qū)動(dòng)代碼表</b></p><p> 74LS04(6反向器)主要對(duì)信號(hào)起了反向作用。<
60、;/p><p><b> 其它器件的功能如:</b></p><p> 7805的功能,既提供穩(wěn)定的+5V電壓。</p><p> 3.3.4 交通燈控制線路圖 </p><p><b> 4 交通燈軟件設(shè)計(jì)</b></p>&
61、lt;p> 4.1 程序設(shè)計(jì)流程圖</p><p> (1) 程序設(shè)計(jì)總框圖:如圖4</p><p> 圖4 程序設(shè)計(jì)框圖</p><p> (2)程序詳細(xì)流程圖:如圖5</p><p> 圖5 程序詳細(xì)流程圖</p><p><b> 流程圖說明:</b></p>
62、<p> 圖中定時(shí)器在每50ms中斷一下,設(shè)置為循環(huán)20次(此時(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í)器的溢出中斷來確定1秒
63、的時(shí)間,另一種是采用軟件延時(shí)的方法。</p><p> 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ù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式:</p><p><b> TC
64、=M-C</b></p><p> 式中,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ù)是
65、單片機(jī)時(shí)鐘周期TCLK的12倍;TC為定時(shí)初值</p><p> 如單片機(jī)的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻</p><p> 方式0 TMAX=213 ×1微秒=8.192毫秒</p><p> 方式1 TMAX=216 ×1微秒=65.536毫秒</p><p> 顯然1秒鐘已經(jīng)超過了
66、計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題.</p><p><b> 實(shí)現(xiàn)1秒的方法:</b></p><p> 我們采用在主程序中設(shè)定一個(gè)初值為20的軟件計(jì)數(shù)器和使T1定時(shí)50毫秒。這樣每當(dāng)T1到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減1,然后判斷它是否為零。為
67、0表示1秒已到可以返回到輸出時(shí)間顯示程序。</p><p> 4.2.2 相應(yīng)程序代碼</p><p> ?。ǎ保┒〞r(shí)器的設(shè)置 </p><p> 定時(shí)器需定時(shí)50毫秒,故T1工作于方式1?!?lt;/p><p> 初值計(jì)算: TC=M-T/T計(jì)數(shù) =216-50ms/1us=15536=3CBOH</p><p&g
68、t; START: MOV TMOD, #10H ;令TO為定時(shí)器方式1</p><p> MOV TH0, #3CH ;裝入定時(shí)器初值</p><p> MOV TL0, #0BOH </p><p> SETB EA ; 打開總中斷</p><p> SETB ET
69、1 ;開T1中斷</p><p> SETB ER ;啟動(dòng)T1計(jì)數(shù)器</p><p> CLR FLAG1 </p><p> CLR FLAG2 </p><p> CLR FLAG3 </p><
70、;p> MOV R3, #20H ;軟件計(jì)數(shù)器賦初值</p><p> ?。ǎ玻┫鄳?yīng)中斷服務(wù)子程序</p><p> ORG 001BH</p><p><b> LJMP DSD</b></p><p> ORG 0030H</p><p> DSD: I
71、NC R3</p><p> MOV TH0, #3CH ;重裝入定時(shí)器初值</p><p> MOV TL0, #BOH </p><p> CJNE R3,#20,F(xiàn)H</p><p><b> DEC R0 </b></p><p><b>
72、DEC R1</b></p><p> MOV R3,#00H</p><p> FH: RETI</p><p><b> 程序的軟件延時(shí):</b></p><p> AT89S51的工作頻率為0—33MHZ,我們選用的AT89S51單片機(jī)的工作頻率為12MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是
73、主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12M)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時(shí)間。</p><p> 具體的延時(shí)程序分析:</p><p> DELAY: MOV R4,#08H 延時(shí)1秒主程序</p><p> DE2: LCALL DELAY1 </p><p&
74、gt; DJNZ R4, DE2</p><p><b> RET</b></p><p> DELAY1:MOV R4,#00H ;延時(shí)125us 子程序</p><p> D1: MOV R5,#00H</p><p> D2: DJNE R5,DL2</p><p>
75、 DJNE R4,D1</p><p><b> RET </b></p><p> DELAY1為一個(gè)雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時(shí)時(shí)間=65536*2=131072us 約為125us </p><p> DELAY R4設(shè)置的初值為8 主延時(shí)程序循環(huán)8次,所以125us*8= 1秒</p>
76、;<p> 由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。</p><p> 4.3 程序的主控制循環(huán)調(diào)用</p><p> 用來實(shí)現(xiàn)四個(gè)狀態(tài)之間的轉(zhuǎn)換,代碼如下:</p><p> DIAOY:;循環(huán)控制子程序</p><p> CJNE R2, #01H, AA;判斷不相等剛跳轉(zhuǎn)<
77、;/p><p> JB FLAG1, AA;FLAG1為1則跳轉(zhuǎn)</p><p> LJMP SEC ;跳轉(zhuǎn)到SEC</p><p> AA:CJNE R2, #02H, AAA</p><p> JB FLAG2, AAA</p><p><b> SETB F0&l
78、t;/b></p><p><b> LJMP THR</b></p><p> AAA:CJNE R2, #03H, BB</p><p> JB FLAG3, BB</p><p><b> LJMP FOU</b></p><p> BB:CJN
79、E R2, #04H, BBB;判斷不相等則跳轉(zhuǎn)</p><p> CLR F0;F0位清0</p><p><b> CLR FLAG1</b></p><p><b> CLR FLAG2</b></p><p><b> CLR FLAG3</b>&l
80、t;/p><p><b> LJMP FIR</b></p><p> BBB:CJNE R0, #00H, SGL</p><p> INC R2;R2加1</p><p> LJMP DIAOY</p><p> 4.4 對(duì)現(xiàn)有程序的擴(kuò)充 </p><
81、;p> 當(dāng)由于緊急需要對(duì)道路進(jìn)行長時(shí)間通行時(shí),就要保持該道路更長時(shí)間的通行。下面以東西方向?yàn)槔M(jìn)行緊急通行為例。</p><p> 緊急通行是平常通行的特例,只要將相應(yīng)的代碼去掉就可以實(shí)現(xiàn)延長本車道的通行時(shí)間。設(shè)置通行時(shí)間為20秒。</p><p><b> 核心代碼如下:</b></p><p> FIR:MOV P1, #
82、00H</p><p><b> SETB P1.0</b></p><p><b> CLR P1.1</b></p><p><b> CLR P1.2</b></p><p><b> CLR P1.3</b></p><
83、p> MOV R0, #20</p><p> MOV R1, #20</p><p> SGL: ;與原程序類同</p><p> CJNE R0, #00H, SGL</p><p><b> LJMP FIR</b></p><p&g
84、t; 要實(shí)現(xiàn)東西方向的左轉(zhuǎn)通行時(shí),只需要修改FIR中的代碼就可以了。時(shí)間顯示只要修改R0和R1就可以了。</p><p> 要實(shí)現(xiàn)南北方及左轉(zhuǎn),只要把SGL換成SGL1、把FIR 中代碼進(jìn)行相應(yīng)的修改就可以了。由于時(shí)間緊張,程序有不完善的地方。</p><p> 原程序見程序?qū)崿F(xiàn)代碼。</p><p><b> 5實(shí)驗(yàn)平臺(tái)</b><
85、;/p><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> 開啟計(jì)算機(jī)進(jìn)入Keil C51編譯器介面。如圖6</p><p> 圖6 Keil C51編譯器介面</p>&l
86、t;p><b> 5.2實(shí)驗(yàn)步驟</b></p><p> 5.2.1 編寫程序代碼</p><p> 程序代碼分為3個(gè)模塊:中斷模塊,循環(huán)模塊,算法模塊。(見程序?qū)崿F(xiàn)代碼)</p><p> 5.2.2 按照系統(tǒng)硬件連線圖連接好系統(tǒng)并調(diào)試</p><p><b> ?。保{(diào)試程序</b&g
87、t;</p><p> ?、?打開Keil軟件,新建工程;</p><p><b> ?、?選擇芯片;</b></p><p> ?、?新建文檔,把編寫好代碼寫入文檔并保存了ASM文件; </p><p> ?、?把保存的文檔加載到Source Group;</p><p><b>
88、⑸編譯程序;</b></p><p> ?、试O(shè)置轉(zhuǎn)換成16進(jìn)制;</p><p><b> ?、诉\(yùn)行程序的結(jié)果;</b></p><p> 2. 把編譯好的16進(jìn)制文件(jtd.hex) 輸入單片機(jī)AT89S51仿真器和對(duì)其進(jìn)行初始化。</p><p> 3.給實(shí)驗(yàn)板進(jìn)行通電,觀察運(yùn)行結(jié)果,不一致則跳到第
89、一步進(jìn)行反復(fù)調(diào)試,直到與預(yù)定目的一致。</p><p> 以下是在程序調(diào)試過程中出現(xiàn)在情況:通電以后,把程序裝好,數(shù)碼管是的數(shù)字不變,按復(fù)位鍵后重新開始還是如此。經(jīng)過和同組人的共同分析后,發(fā)現(xiàn)是中斷系統(tǒng)在計(jì)時(shí)到了1秒以后,賦的初值R0,R1沒有減1,修改如下:</p><p> DSD:INC R3</p><p> MOV TH1, #3CH</p
90、><p> MOV TL1, #0B0H</p><p> CJNE R3, #20, FH;判斷是否夠 1秒</p><p><b> DEC R0</b></p><p><b> DEC R1</b></p><p> MOV R3, #00H;R3清0
91、</p><p> FH:RETI;中斷返回</p><p> 通電以后,東西、南北方向的時(shí)間均遞減,20秒以后,東西方向的20秒用完,變成東西左轉(zhuǎn)、南北各20秒,此后,時(shí)間顯示和紅綠燈不再變化,一直保持這一狀態(tài)。</p><p> 經(jīng)過老師和同組人的共同努力,終于找到原因,問題出在循環(huán)控制過程中,當(dāng)經(jīng)過第一次20秒判斷后,寄存器R2加1,當(dāng)再次運(yùn)
92、行到循環(huán)控制處時(shí),判斷R2與#01H相同,程序跳到SEC處執(zhí)行,此后一直如此。解決方法如下:</p><p><b> 設(shè)置3個(gè)標(biāo)記位:</b></p><p> FLAG1 BIT 00H;標(biāo)記00H位</p><p> FLAG2 BIT 01H</p><p> FLAG3 BIT 02H</
93、p><p> 在循環(huán)控制中加入判斷如:</p><p> DIAOY:CJNE R2, #01H, AA;判斷不相等剛跳轉(zhuǎn)</p><p> JB FLAG1, AA;FLAG1為1則跳轉(zhuǎn)</p><p> LJMP SEC ;跳到SEC</p><p> 在跳到SEC后,在
94、運(yùn)行到該程序后加給FLAG1置數(shù),程序如下:</p><p> SEC:CLR P1.0</p><p><b> SETB P1.1</b></p><p><b> CLR P1.2</b></p><p><b> CLR P1.3</b></p>
95、<p> MOV R0, #20</p><p> MOV R1, #20</p><p> SETB FLAG1</p><p><b> LJMP SGL</b></p><p> 其它幾部分與之相同的處理。</p><p><b> 結(jié)論</b>
96、;</p><p> 本系統(tǒng)就是利用了AT89S51芯片的I/O引腳。系統(tǒng)采用美國ATMEL公司生產(chǎn)的單片機(jī)AT89S51,以及其它芯片(如:74HC164、74LS04六位反向器、L7805三端穩(wěn)壓電源)來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了紅燈亮40秒,綠燈和左轉(zhuǎn)綠燈各亮20秒。并通過AT89S51來控制74LS04芯片的輸出口設(shè)置紅、綠燈燃亮的功能和控制74HC164來實(shí)現(xiàn)在七段數(shù)碼管上的時(shí)間顯示;為了系統(tǒng)穩(wěn)定可靠系
97、統(tǒng)內(nèi)集成了“看門狗”芯片,避免了系統(tǒng)因?yàn)樗罊C(jī)而停止工作的情況發(fā)生。系統(tǒng)設(shè)計(jì)簡便、實(shí)用性強(qiáng)、操作簡單、程序設(shè)計(jì)簡便。 </p><p> 系統(tǒng)不足:時(shí)間設(shè)定中沒有黃燈的等待閃爍時(shí)間,以及自動(dòng)根據(jù)車流改變紅綠燈時(shí)間,此外,還沒有充分考慮的把現(xiàn)代管理、人工智能運(yùn)用到交通的控制中,來計(jì)算交通控制點(diǎn)之間的距離,來更合理的安排紅、綠燈的持續(xù)時(shí)間,使城市的交通管理更加人性化。使人們遠(yuǎn)離目前的交通擁塞的現(xiàn)象。</p>
98、;<p><b> 致謝</b></p><p> 通過本次畢業(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í)計(jì)算機(jī)方面的知識(shí)有極大的幫助。另外,此次畢業(yè)設(shè)計(jì)還獲得了計(jì)科系各位領(lǐng)導(dǎo)和老師的大力支持。在此,我忠心感謝單片機(jī)組的其它同學(xué)以及計(jì)科系各
99、位老師的指導(dǎo)和支持。在未來的工作和學(xué)習(xí)中,我將以更好的成績來回報(bào)各位領(lǐng)導(dǎo)、老師和同學(xué)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]胡漢才 單片機(jī)原理及其接口技術(shù) [M] 清華大學(xué)出版,1996</p><p> [2]蔡美琴 MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用 高等教育出版社 2004.2</p
100、><p> [3]付家才 單片機(jī)控制工程實(shí)踐技術(shù)[M] 化學(xué)工業(yè)出版社,2004.5</p><p> [4]潘新民 微型計(jì)算機(jī)控制技術(shù) [M] 人民郵電出版社,1999.9</p><p> [5]余錫存 單片機(jī)原理及接口技術(shù)[M] 西安電子科技大學(xué)出版社,2000.7</p><p> [6]雷麗文 等.微機(jī)原理與接
101、口技術(shù)[M] 電子工業(yè)出版社,1997.2</p><p> [7]蔣萬君 在論循環(huán)時(shí)序電路的簡便設(shè)計(jì)[J] 機(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</
102、p><p> [10]何立民 單片機(jī)應(yīng)用技術(shù)選編⑨ 北京航空航天大學(xué)出版社 2004.3</p><p> [11]何立民 MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 北京航空航天大學(xué)出版社, 1995.</p><p> [12]李華 MCS -51系列單片機(jī)實(shí)用接口技術(shù)[M] 北京航空航天大學(xué)出版社,1993</p><p>
103、 [13]周航慈 單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M] 北京航空航天大學(xué)出版社,1991.</p><p> [14]張志良等 單片機(jī)原理與控制技術(shù)[M] 機(jī)械工業(yè)出版社,2001 年7 月第1 版</p><p> [15]陸坤 電子設(shè)計(jì)技術(shù)1 電子科技大學(xué)出版社, 1997</p><p> [16]梁文海 單片機(jī)AT89C2051構(gòu)成的智
104、能型頻率計(jì)[J] 現(xiàn)代電子技術(shù),2002 </p><p> [17]謝自美 電子線路設(shè)計(jì)·實(shí)驗(yàn)·測試[M] 華中理工大學(xué)出版社,2001</p><p> [18]吳金戎,沈慶陽 8051單片機(jī)實(shí)踐與應(yīng)用 [M] 清華大學(xué)出版社, 2003.</p><p><b> 程序?qū)崿F(xiàn)代碼</b>&l
105、t;/p><p> ??;此程序分為四個(gè)部分,循環(huán)運(yùn)行。東西方向通行20S(南北方向、東西南北左拐彎停)一部分SETB P1.0;</p><p> ;東西左拐彎20S(東西南北方向、南北左拐彎停)一部分SETB P1.1;</p><p> ??;南北通行20S(東西方向、東西南北左拐彎停)一部分11111;</p><p> ;南北左轉(zhuǎn)彎20
106、S(東西南北方向、東西左拐彎停)一部分SETB P1.3。</p><p> ??;共設(shè)計(jì)12個(gè)發(fā)光二極管,4個(gè)紅的,8個(gè)綠的。</p><p> ??;P1.0控制東西方向的2個(gè)紅燈和2個(gè)綠燈;</p><p> ;P1.2控制南北方向的2個(gè)紅燈和2個(gè)綠燈;</p><p> ??;P1.1和P1.3控制東西南北左拐彎的4個(gè)綠燈。</p
107、><p> FLAG1 BIT 00H;標(biāo)記00H位</p><p> FLAG2 BIT 01H</p><p> FLAG3 BIT 02H</p><p> ORG 0000H;程序執(zhí)行起始處</p><p> LJMP START;跳轉(zhuǎn)到標(biāo)號(hào)START執(zhí)行</p>&
108、lt;p> ORG 001BH;定時(shí)器1中斷程序入口地址</p><p><b> LJMP DSD</b></p><p><b> ORG 0030H</b></p><p> START: MOV TMOD, #10H;定時(shí)器1的選擇</p><p> MOV TH
109、1, #3CH;給定時(shí)器預(yù)置數(shù)</p><p> MOV TL1, #0B0H</p><p> SETB EA;打開總中斷</p><p> SETB ET1;定時(shí)器1溢出中斷允許</p><p> SETB TR1;啟動(dòng)定時(shí)器</p><p> CLR FLAG1;標(biāo)
110、記位清0</p><p><b> CLR FLAG2</b></p><p><b> CLR FLAG3</b></p><p> MOV R3, #00H;1秒定時(shí)器的初值</p><p> FIR:MOV P1, #00H;P1口清0</p><p
111、> MOV R2, #00H;給R2初值</p><p> SETB P1.0;給P1.0口置1</p><p> CLR P1.1;給P1.0口置0</p><p><b> CLR P1.2</b></p><p><b> CLR P1.3</b><
112、/p><p> MOV R0, #20;給R0賦初值</p><p> MOV R1, #40</p><p> SGL:JB F0, SGL1;F0為1財(cái)轉(zhuǎn)移到SGL1</p><p> MOV A, R0;把R0的值送入A中</p><p> LCALL DY1
113、;調(diào)用DY1</p><p><b> MOV A, R1</b></p><p><b> LCALL DY1</b></p><p><b> MOV A, R0</b></p><p><b> LCALL DY1</b></p>
114、<p><b> MOV A, R1</b></p><p><b> LCALL DY1</b></p><p> LCALL DELAY;調(diào)用DELAY延時(shí)子程序</p><p> SJMP DIAOY;跳轉(zhuǎn)到DIAOY循環(huán)控制子程序</p><p> SG
115、L1: MOV A, R1</p><p><b> LCALL DY1</b></p><p><b> MOV A, R0</b></p><p><b> LCALL DY1</b></p><p><b> MOV A, R1</b>&l
116、t;/p><p><b> LCALL DY1</b></p><p><b> MOV A, R0</b></p><p><b> LCALL DY1</b></p><p> LCALL DELAY</p><p> DIAOY:
117、;循環(huán)控制子程序</p><p> CJNE R2, #01H, AA;判斷不相等剛跳轉(zhuǎn)</p><p> JB FLAG1, AA;FLAG1為1則跳轉(zhuǎn)</p><p> LJMP SEC ;跳轉(zhuǎn)到SEC</p><p> AA:CJNE R2, #02H, AAA</p>&
118、lt;p> JB FLAG2, AAA</p><p><b> SETB F0</b></p><p><b> LJMP THR</b></p><p> AAA:CJNE R2, #03H, BB</p><p> JB FLAG3, BB</p><p
119、><b> LJMP FOU</b></p><p> BB:CJNE R2, #04H, BBB;判斷不相等則跳轉(zhuǎn)</p><p> CLR F0;F0位清0</p><p><b> CLR FLAG1</b></p><p><b> CLR FLAG
120、2</b></p><p><b> CLR FLAG3</b></p><p><b> LJMP FIR</b></p><p> BBB:CJNE R0, #00H, SGL</p><p> INC R2;R2加1</p><p>
121、 LJMP DIAOY</p><p> ??;控制東西左轉(zhuǎn)的綠燈亮</p><p> SEC:CLR P1.0</p><p><b> SETB P1.1</b></p><p><b> CLR P1.2</b></p><p><b> CLR
122、P1.3</b></p><p> MOV R0, #20</p><p> MOV R1, #20</p><p> SETB FLAG1</p><p><b> LJMP SGL</b></p><p> ;控制南北紅、綠燈亮</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈畢業(yè)設(shè)計(jì)---- 基于單片機(jī)的交通燈設(shè)計(jì)
- 單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
- 單片機(jī)交通燈設(shè)計(jì)
- 單片機(jī)控制交通燈畢業(yè)論文
- 單片機(jī)控制交通燈畢業(yè)論文
- 基于單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的交通燈設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--基于單片機(jī)的交通燈設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈控制設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)交通燈設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
- 交通燈單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈顯示系統(tǒng)
- 交通燈單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈顯示系統(tǒng)
- 交通燈畢業(yè)設(shè)計(jì)--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)控制交通燈畢業(yè)設(shè)計(jì)論文
- 智能交通燈畢業(yè)設(shè)計(jì)--基于單片機(jī)的智能交通燈控制
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論