版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> ??飘厴I(yè)論文(設(shè)計(jì))</p><p> 題 目: 智 能 交 通 燈 設(shè) 計(jì) </p><p> 專 業(yè): 應(yīng)用電子技術(shù) </p><p> 系(部): 電子工程系 </p><p> 班 級(jí): <
2、;/p><p> 學(xué) 號(hào): </p><p><b> 目 錄</b></p><p><b> 摘 要3</b></p><p><b> 第一章 概述3</b></p><p> 1.1交通燈的發(fā)展
3、及現(xiàn)狀3</p><p> 1.2 單片機(jī)說(shuō)明4</p><p> 第二章 智能交通燈的設(shè)計(jì)原理6</p><p> 2.1 智能交通燈的設(shè)計(jì)框圖6</p><p> 2.2智能交通燈的設(shè)計(jì)方案及改進(jìn)措施6</p><p> 第三章 智能交通燈電路設(shè)計(jì)7</p><p>
4、 3.1控制器的系統(tǒng)框圖7</p><p> 3.2智能交通燈控制系統(tǒng)電路圖7</p><p><b> 3.3工作原理8</b></p><p> 第四章 智能交通燈軟件系統(tǒng)設(shè)計(jì)14</p><p> 4.1 智能交通燈的軟件設(shè)計(jì)流程圖14</p><p> 4.2 程序源代
5、碼15</p><p> 第五章 智能交通燈方案的仿真15</p><p><b> 小結(jié)18</b></p><p><b> 致謝詞18</b></p><p><b> 參考文獻(xiàn)18</b></p><p><b>
6、附 錄19</b></p><p> 附錄A:智能交通燈控制程序:19</p><p><b> 摘 要</b></p><p> 本文介紹的是一個(gè)基于PROTEUS的智能交通燈控制系統(tǒng)的設(shè)計(jì)與仿真,系統(tǒng)根據(jù)交通十字路口雙車道車流量的情況控制交通信號(hào)燈按特定的規(guī)律變化。</p><p> 本文首先
7、對(duì)智能交通燈的研究意義和智能交通燈的研究現(xiàn)狀進(jìn)行了分析,指出了現(xiàn)狀交通燈存在的缺點(diǎn),并提出了改進(jìn)方法。智能交通燈控制系統(tǒng)通常要實(shí)現(xiàn)自動(dòng)控制和在緊急情況下能夠手動(dòng)切換信號(hào)燈讓特殊車輛優(yōu)先通行。本文還對(duì)AT89S51單片機(jī)的結(jié)構(gòu)特點(diǎn)和重要引腳功能進(jìn)行了介紹,同時(shí)對(duì)智能交通燈控制系統(tǒng)的設(shè)計(jì)進(jìn)行了詳細(xì)的分析。最后利用PROTEUS軟件,通過其平臺(tái)對(duì)交通燈控制系統(tǒng)進(jìn)行了仿真,仿真結(jié)果表明系統(tǒng)工作性能良好。</p><p>
8、 關(guān) 鍵 詞:PROTEUS、AT89S51單片機(jī)、智能交通燈;</p><p><b> 第一章 概述</b></p><p> 1.1交通燈的發(fā)展及現(xiàn)狀 </p><p> 中國(guó)車輛數(shù)量不斷增加,交通管制的工作量越來(lái)越大,利用計(jì)算機(jī)代替人進(jìn)行高效交通管理是必然的發(fā)展趨勢(shì),而讓計(jì)算
9、機(jī)控制的交通燈擁有類似人類的感知智能,具有很強(qiáng)的現(xiàn)實(shí)意義,比如通過攝像機(jī)讓交通燈控制系統(tǒng)獲得視覺感知功能,就可以代替人類的眼睛,使系統(tǒng)根據(jù)所“看到”交通情況自適應(yīng)改變管制策略,提高了交通管理的自動(dòng)化水平,使得交通更高效、更順暢。</p><p> 目前設(shè)計(jì)交通燈的方案有很多,有應(yīng)用CPLD設(shè)計(jì)實(shí)現(xiàn)交通信號(hào)燈控制器方法;有應(yīng)用PLC實(shí)現(xiàn)對(duì)交通燈控制系統(tǒng)的設(shè)計(jì);有應(yīng)用單片機(jī)實(shí)現(xiàn)對(duì)交通信號(hào)燈設(shè)計(jì)的方法。目前,國(guó)內(nèi)的交
10、通燈一般設(shè)在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來(lái)控制行車。對(duì)于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實(shí)際行車過程中出現(xiàn)的情況,還存在以下缺點(diǎn):1.兩車道的車輛輪流放行時(shí)間相同且固定, 在十字路口,經(jīng)常一個(gè)車道為主干道,車輛較多,放行時(shí)間應(yīng)該長(zhǎng)些;另一車道為副干道,車輛較少,放行時(shí)間應(yīng)該短些。2.沒有考慮緊急車通過時(shí),兩車道應(yīng)采取的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時(shí),兩車道的車都應(yīng)停
11、止,讓緊急車通過。</p><p> 1. 2 單片機(jī)說(shuō)明</p><p> 按照單片機(jī)系統(tǒng)擴(kuò)展與系統(tǒng)配置狀況,單片機(jī)應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C51單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量?jī)杉?jí)中斷結(jié)構(gòu)、2個(gè)全雙工的串行口,具有4
12、.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機(jī)時(shí)無(wú)須外擴(kuò)存儲(chǔ)器。因此,本流水燈實(shí)際上就是一個(gè)帶有八個(gè)發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個(gè)單片機(jī)。</p><p> 1. 2.1 AT89C51單片機(jī)硬件結(jié)構(gòu)</p><p> AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPERO
13、M—Flash Programmable and Erasable Read Only Memory)的單片機(jī)芯片,它采用靜態(tài)CMOS 工藝制造8位微處理器,最高工作頻率位24MHZ。AT89C5外形及引腳排列如圖1所示: </p><p><b> 圖1</b></p><p> 1.2.2管腳說(shuō)明 </p><p> RST:復(fù)位輸
14、入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 </p><p> P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 </p><p&
15、gt; P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被
16、內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 </p><p> P3口:P3口管腳是8個(gè)
17、帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 </p><p> ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的
18、1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。 </p><p> PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次PSEN有效
19、。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。 </p><p> EA/VPP:當(dāng)EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。</p><p> XTAL1和XTAL2:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 </p
20、><p> 第二章 智能交通燈的設(shè)計(jì)原理</p><p> 2.1 智能交通燈的設(shè)計(jì)框圖</p><p> 2.2智能交通燈的設(shè)計(jì)方案及改進(jìn)措施</p><p> 交通燈系統(tǒng)由四部分組成:車檢測(cè)電路,信號(hào)燈電路,時(shí)間顯示電路,緊急轉(zhuǎn)換開關(guān)。</p><p> 針對(duì)道路交通擁擠,交叉路口經(jīng)常出現(xiàn)擁堵的情況利用單片機(jī)
21、控制技術(shù)提出了軟件和硬件設(shè)計(jì)方案及兩點(diǎn)改進(jìn)措施。</p><p> 1、根據(jù)各道路路口車流量的大小自動(dòng)調(diào)節(jié)通行時(shí)間。</p><p> 2、考慮特殊車輛通行情況,設(shè)計(jì)緊急切換開關(guān)。</p><p> AT89S51單片機(jī)有2計(jì)數(shù)器,6個(gè)中斷源,能滿足系統(tǒng)的設(shè)計(jì)要求。用其設(shè)計(jì)的交通燈也滿足了要求,所以本文采用單片機(jī)設(shè)計(jì)交通燈。</p><p&
22、gt; 第三章 智能交通燈電路設(shè)計(jì)</p><p> 根據(jù)設(shè)計(jì)任務(wù)和要求,可畫出該控制器的原理框圖, 為確保十字路口的交通安全,往往都采用交通燈自動(dòng)控制系統(tǒng)來(lái)控制交通信號(hào)。其中紅燈(R)亮,表示禁止通行;黃燈(Y)亮表示暫停;綠燈(G)亮表示允許通行。</p><p> 3.1控制器的系統(tǒng)框圖如圖3所示</p><p><b> 圖3</b&
23、gt;</p><p> 3.2智能交通燈控制系統(tǒng)電路圖</p><p> 智能交通燈電路圖如圖4所示:</p><p><b> 圖4</b></p><p> 交通燈系統(tǒng)由四部分組成:車檢測(cè)電路,信號(hào)燈電路,時(shí)間顯示電路,緊急轉(zhuǎn)換開關(guān)。</p><p><b> 3.3工作
24、原理</b></p><p> 綠燈的放行時(shí)間與車輛通過數(shù)量不成正比。比如說(shuō)20秒內(nèi)每車道可以通過20輛車,40秒內(nèi)每車道卻可以通過45輛車。因?yàn)檫@有一個(gè)起步的問題,還有一個(gè)黃燈等待問題。也就是說(shuō),綠燈放行時(shí)間越長(zhǎng),單位時(shí)間通過車輛的數(shù)量就越多。我們來(lái)計(jì)算一下,每車道通行20秒內(nèi)可以通過20輛車,一個(gè)紅綠燈循環(huán)是40秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個(gè)循環(huán)要兩次轉(zhuǎn)換),即一個(gè)紅綠黃燈循
25、環(huán)要50秒,即50秒內(nèi)通行的車輛為40輛。通過一輛車的平均時(shí)間是1.25秒。如果每次車輛通行的時(shí)間改為40秒,40秒內(nèi)每車道可以通過45輛,一個(gè)紅綠燈循環(huán)是80秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個(gè)循環(huán)要兩次轉(zhuǎn)換),即一個(gè)紅綠黃燈循環(huán)要90秒,即90秒內(nèi)通行的車輛為90輛。通過一輛車的平均時(shí)間只需1秒。顯然在車輛擁擠的情況下綠燈的通行時(shí)間越長(zhǎng),單位時(shí)間內(nèi)通行的車輛越多,可以有效緩解車輛擁堵問題。我設(shè)定了綠燈通行時(shí)間的上限為4
26、0秒。在非擁擠時(shí)段綠燈的通行時(shí)間的下限為20秒,當(dāng)交叉路口雙方車輛較少時(shí)通行時(shí)間設(shè)為20秒,這樣可以大大縮短車輛在紅燈面前的等待時(shí)間。當(dāng)交叉路口雙方車輛較多時(shí)通行時(shí)間設(shè)為40秒。</p><p> 3.3.1車檢測(cè)電路</p><p> 用來(lái)判斷各方向車輛狀況,比如:20秒內(nèi)可以通過的車輛為20輛,當(dāng)20秒內(nèi)南往北方向車輛通過車輛達(dá)不到20輛時(shí),判斷該方向?yàn)樯佘?,?dāng)20秒內(nèi)北往南方向車
27、輛通過車輛也達(dá)不到20輛時(shí),判斷該方向也為少車,下一次通行仍為20秒,當(dāng)20秒時(shí)間內(nèi)南往北或北往南任意一個(gè)方向通過的車輛達(dá)20輛時(shí)證明該狀態(tài)車輛較多,下一次該方向綠燈放行時(shí)間改為40秒,當(dāng)40秒內(nèi)通過的車輛數(shù)達(dá)45輛時(shí)車輛判斷為擁擠,下一次綠燈放行時(shí)間改仍為40秒,當(dāng)40秒車輛上通過車輛達(dá)不到45輛時(shí),判斷為少車,下次綠燈放行時(shí)間改為20秒, 依此類推。綠燈下限時(shí)間為20秒,上限值為40秒,初始時(shí)間為20秒。這樣檢測(cè),某次可能不準(zhǔn)確,但
28、下次肯定能彌補(bǔ)回來(lái),累積計(jì)算是很準(zhǔn)確的,這就是人們常說(shuō)的“模糊控制”。因?yàn)槁飞系能嚥豢赡芡蝗辉龆?,塞車都有一個(gè)累積過程。這樣控制可以把不斷增多的車輛一步一步消化,雖然最后由于每個(gè)路口的綠燈放行時(shí)間延長(zhǎng)而使等候的時(shí)間變長(zhǎng),但比塞車等候的時(shí)間短得多。本系統(tǒng)的特點(diǎn)是成本低,控制準(zhǔn)確。十字路口車輛通行順序如圖5所示: </p><p> 圖5十字路口車輛通行順序</p><p> 由于南往北,
29、北往南時(shí)間顯示相同,所以只要一個(gè)方向多車,下次時(shí)間就要加長(zhǎng)東往西,西往東也一樣,顯示時(shí)間選擇如表1。</p><p><b> 表1 顯示時(shí)間選擇</b></p><p> 3.3.2信號(hào)燈電路</p><p> 信號(hào)燈用來(lái)顯示車輛通行狀況,下面以一個(gè)十字路口為例,說(shuō)明一個(gè)交通燈的四種狀態(tài)見圖6。每個(gè)路口的信號(hào)的的轉(zhuǎn)換順序?yàn)椋壕G—>
30、黃—>紅 綠燈表示允許通行,黃燈表示禁止通行,但已經(jīng)駛過安全線的車輛可以繼續(xù)通行,是綠燈過渡到紅燈提示燈。紅燈表示禁止通行。綠燈的最短時(shí)間為20秒,最長(zhǎng)時(shí)間為40秒,紅紅最短時(shí)間為25秒,最長(zhǎng)時(shí)間為45秒,黃燈時(shí)間為5秒。</p><p> 圖6交通信號(hào)燈運(yùn)行狀態(tài)</p><p> 3.3.3時(shí)間顯示電路</p><p> 在交通信號(hào)燈的正上方安裝一
31、個(gè)可以顯示綠燈通行時(shí)間,紅燈等待時(shí)間的顯示電路,采用數(shù)碼管顯示電路是一種很好的方法。由于東往西方向和西往東方向顯示的時(shí)間相同,南往北方向和北往南方向顯示的時(shí)間也相同,所以只需要考慮四位數(shù)碼管顯示電路,其中東西方向兩位,南北方向兩位,兩位數(shù)碼管可以時(shí)間的時(shí)間為0-99秒完全可以滿足系統(tǒng)的要求,數(shù)碼管連接方法如圖7所示。</p><p> 圖7 數(shù)碼管連接方法</p><p> 下面我們用
32、這種方法顯示交通燈的時(shí)間,南北方向要顯示20秒,東西方向要顯示25秒,那么我們先給P0口送2的共陰極碼即5BH,讓第一位2要顯示的位碼GND段為低電平,其它三位的控制端都接高電平,那么第一位就顯示2,其它三位不亮。讓其顯示1MS后再給P0口送0的共陰極碼即3FH,讓第二位要顯示0的位碼GND段為低電平,其它三位的控制端都接高電平,那么第二位就顯示0,其它三位不亮。依此類推分別送完第一位2,第二位0,第三位2,第四位5,每一位點(diǎn)亮1MS一
33、個(gè)掃描周期為4MS,一秒時(shí)間就要掃描250次其程序如下:</p><p> MOV R6,#250;顯掃描次數(shù)</p><p><b> LOOP:</b></p><p> MOV P0,#5BH ;送2的共陰極碼</p><p> CLR P2.0;第一位顯示2</p><p>
34、 ACALL D1MS ;延時(shí)1MS</p><p> SETB P2.0 ;滅第一位</p><p> MOV P0,#3FH ;送0的共陰極碼</p><p> CLR P2.1;第二位顯示0</p><p> ACALL D1MS ;延時(shí)1MS</p><p> SETB P2.1 ;滅第二
35、位</p><p> MOV P0,#5BH ;送2的共陰極碼</p><p> CLR P2.2;第三位顯示2</p><p> ACALL D1MS ;延時(shí)1MS</p><p> SETB P2.2 ;滅第三位</p><p> MOV P0,#6DH ;送5的共陰極碼</p>
36、<p> CLR P2.3;第四位顯示5</p><p> ACALL D1MS ;延時(shí)1MS</p><p> SETB P2.3 ;滅第四位</p><p> DJNZ R7,LOOP;不夠一秒,繼續(xù)掃描</p><p> NEXTNUMBER;到一秒顯示下一個(gè)數(shù)</p><p> D1
37、MS: ;1MS延時(shí)程序</p><p> STAT1:MOV R4,#2</p><p> MOV R3,#250</p><p><b> DJNZ R3,$</b></p><p> DJNZ R4,STAT1</p><p><b> RET</b><
38、/p><p> 3.3.4緊急轉(zhuǎn)換開關(guān)電路</p><p> 一般情況下交通燈按照車流量大小合理分配通行時(shí)間,按一定規(guī)律變化,但考慮緊急車通行車況,設(shè)計(jì)緊急通行開關(guān),下面簡(jiǎn)述單片機(jī)的中斷原理。</p><p> 1、Mcs—51的中斷源</p><p> 8051有5個(gè)中斷源,它們是兩個(gè)外中斷INT0(P3.2)和INT1(P3.3)、兩
39、個(gè)片內(nèi)定時(shí)/計(jì)數(shù)器溢出中斷TF0和TF1,一個(gè)是片內(nèi)串行口中斷TI或RI,這幾個(gè)中斷源由TCON和SCON兩個(gè)特殊功能寄存器進(jìn)行控制,其中5個(gè)中斷源的程序入口地址如表2所示:</p><p> 表2 中斷源程序入口</p><p><b> 2、中斷的處理流程</b></p><p> CPU響應(yīng)中斷請(qǐng)求后,就立即轉(zhuǎn)入執(zhí)行中斷服務(wù)程序。不
40、同的中斷源、不同的中斷要求可能有不同的中斷處理方法,但它們的處理流程一般都如下所述:</p><p> 1)現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù):</p><p> 中斷是在執(zhí)行其它任務(wù)的過程中轉(zhuǎn)去執(zhí)行臨時(shí)的任務(wù),為了在執(zhí)行完中斷服務(wù)程序后,回頭執(zhí)行原先的程序時(shí),知道程序原來(lái)在何處打斷的,各有關(guān)寄存器的內(nèi)容如何,就必須在轉(zhuǎn)入執(zhí)行中斷服務(wù)程序前,將這些內(nèi)容和狀態(tài)進(jìn)行備份——即保護(hù)現(xiàn)場(chǎng)。中斷開始前需將有關(guān)寄
41、存器的內(nèi)容壓入堆棧進(jìn)行保存,以便在恢復(fù)原來(lái)程序時(shí)使用。中斷服務(wù)程序完成后,繼續(xù)執(zhí)行原先的程序,就需把保存的現(xiàn)場(chǎng)內(nèi)容從堆棧中彈出,恢復(fù)積存器和存儲(chǔ)單元的原有內(nèi)容,這就是現(xiàn)場(chǎng)恢復(fù)。 如果在執(zhí)行中斷服務(wù)時(shí)不是按上述方法進(jìn)行現(xiàn)場(chǎng)保護(hù)和恢復(fù)現(xiàn)場(chǎng),就會(huì)是程序運(yùn)行紊亂,單片機(jī)不能正常工作。</p><p> 2)中斷打開和中斷關(guān)閉:</p><p> 在中斷處理進(jìn)行過程中,可能又有新的中斷
42、請(qǐng)求到來(lái),這里規(guī)定,現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)的操作是不允許打擾的,否則保護(hù)和恢復(fù)的過程就可能使數(shù)據(jù)出錯(cuò),為此在進(jìn)行現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)的過程中,必須關(guān)閉總中斷,屏蔽其它所有的中斷,待這個(gè)操作完成后再打開總中斷,以便實(shí)現(xiàn)中斷嵌套。</p><p><b> 3)中斷服務(wù)程序:</b></p><p> 既然有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處
43、理的具體內(nèi)容,一般以子程序的形式出現(xiàn),所有的中斷都要轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,進(jìn)行中斷服務(wù)。</p><p><b> 4)中斷返回:</b></p><p> 執(zhí)行完中斷服務(wù)程序后,必然要返回,中斷返回就是被程序運(yùn)行從中斷服務(wù)程序轉(zhuǎn)回到原工作程序上來(lái)。在MCS-51單片機(jī)中,中斷返回是通過一條專門的指令實(shí)現(xiàn)的,自然這條指令是中斷服務(wù)程序的最后一條指令。</p&
44、gt;<p> 5) 交通燈中的中斷處理流程:</p><p> ?。?)現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù):</p><p> 有特殊車輛要通過時(shí)就要進(jìn)行中斷,在中斷之前,先將交通燈中斷前情況保護(hù)好,當(dāng)中斷執(zhí)行后再恢復(fù)現(xiàn)場(chǎng),包括信號(hào)燈和時(shí)間顯示電路。</p><p> ?。?)中斷打開和中斷關(guān)閉:</p><p> 為了使特殊車輛通行按
45、一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中斷。</p><p> ?。?)中斷服務(wù)程序:</p><p> 有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容:即如果南北方向有特殊車輛要求通過,南北方向轉(zhuǎn)換為綠燈,東西方向?yàn)榧t燈;如果東西方向有特殊車輛要求通過,東西方向轉(zhuǎn)換為綠燈,南北方向?yàn)榧t燈。</p><p><b
46、> ?。?)中斷返回:</b></p><p> 執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號(hào)回到中斷前狀態(tài),顯示時(shí)間也和中斷前一樣。</p><p> 第四章 智能交通燈軟件系統(tǒng)設(shè)計(jì)</p><p> 4.1 智能交通燈的軟件設(shè)計(jì)流程圖</p><p> 智能交通燈的軟件設(shè)計(jì)流程圖如圖8所示:</p>
47、;<p> 圖8交通燈的軟件設(shè)計(jì)流程圖</p><p><b> 4.2 程序源代碼</b></p><p><b> 見附錄</b></p><p> 第五章 智能交通燈方案的仿真</p><p> PROTEUS嵌入式系統(tǒng)仿真軟件在設(shè)計(jì)時(shí)已經(jīng)注意到和單片機(jī)各種編譯程序的整
48、合了,如它可以和Keil ,Wave6000等編譯模擬軟件結(jié)合使用。由于Wave6000使用方便,具備強(qiáng)大的軟件仿真和硬件仿真功能。把Proteus和Wave6000結(jié)合起來(lái)調(diào)試硬件就方便多了,這里就是采用“Proteus+Wave6000”的仿真方法,具體步驟如下:</p><p> 1)首先運(yùn)行PROTEUS VSM 的ISIS,選擇Source→Define Code Generation Tool 菜單
49、項(xiàng),將出現(xiàn)如圖8所示定義代碼生成工具對(duì)話框。</p><p> 圖9 定義代碼生成工具對(duì)話框</p><p> 在Tool下拉列表框中選擇代碼生成工具,在這一示例中,電路中的微處理器為8051系列單片機(jī),因此選擇ASEM51, 單擊Browse按鈕,選取Wave6000的安裝路徑。單擊OK按鈕,結(jié)束代碼生成工具的定義。</p><p> 選擇Source→Ad
50、d/Remove Source File 菜單項(xiàng),將出現(xiàn)Add/Remove Source Code Files對(duì)話框,如圖10所示:</p><p> 圖10添加/刪除源文件對(duì)話框</p><p> 2)在Code Generation Tool 選項(xiàng)區(qū),單擊下三角按鈕,選擇ASEM51工具</p><p> 單擊New按鈕,將出現(xiàn)如圖11所示對(duì)話框。<
51、;/p><p> 圖11 創(chuàng)建源代碼對(duì)話框</p><p> 選擇用Wave6000創(chuàng)建好的AA.ASM文件,即完成了文件的創(chuàng)建。就這樣當(dāng)用Wave6000對(duì)AA.ASM 文件進(jìn)行更改時(shí)每一次運(yùn)行PROTEUS VSM 的ISIS對(duì)電路進(jìn)行仿真時(shí)Wave6000都會(huì)對(duì)AA.ASM進(jìn)行編譯,AA.HEX文件也會(huì)隨時(shí)更新。</p><p> 電路圖繪制完成后, 再添
52、加AT89C51 的應(yīng)用程序。將鼠標(biāo)移至AT89C51 上, 單擊鼠標(biāo)右鍵使之處于選中狀態(tài), 在該器件上單擊左鍵, 打開如圖12所示的對(duì)話框。在 Program File 欄添加編譯好的十六進(jìn)制格式的程序文件AA.hex(可以接受3 種格式的文件) ,給AT89C51輸入晶振頻率,此處默認(rèn)為12MHZ, 單擊OK 按鈕完成程序添加工作, 下面就可以進(jìn)行系統(tǒng)仿真了。單擊主界面下方的按鈕開始系統(tǒng)仿真。PROTEUS VSM 所進(jìn)行的是一種交
53、互式仿真, 在仿真進(jìn)行中可以對(duì)各控制按鈕、開關(guān)等進(jìn)行操作, 系統(tǒng)對(duì)輸入的響應(yīng)會(huì)被真實(shí)的反映出來(lái)如圖13。</p><p> 圖12 AT89C51添加程序文件</p><p> 圖13 交通燈仿真界面</p><p><b> 小 結(jié)</b></p><p> 在畢業(yè)設(shè)計(jì)的整個(gè)過程中,我深切地體會(huì)到:實(shí)踐是
54、理論運(yùn)用的最好檢驗(yàn)。畢業(yè)設(shè)計(jì)是對(duì)我們3年所學(xué)知識(shí)的一次綜合性測(cè)試和考驗(yàn),無(wú)論是在動(dòng)手能力方面還是理論知識(shí)的運(yùn)用能力方面,都使得我有了很大的提高。</p><p> 經(jīng)過總結(jié)和分析,我意識(shí)到在設(shè)計(jì)程序之前,對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序
55、的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過程中遇到問題是很正常,但我們應(yīng)該將每次遇到的問題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問題。 本次畢業(yè)設(shè)計(jì)為我的大學(xué)生活畫上了圓滿的句號(hào),為我即將的工作和生活奠定了堅(jiān)實(shí)的基礎(chǔ)。</p><p><b> 致謝詞 </b></p><p>
56、 在整個(gè)畢業(yè)設(shè)計(jì)中,我得到了學(xué)校電子實(shí)驗(yàn)室的大力支持,為我提供了各種所需的儀器設(shè)備。感謝學(xué)校為我們安排了本次畢業(yè)設(shè)計(jì),讓我們的理論知識(shí)和實(shí)際操作經(jīng)驗(yàn)更加緊密的結(jié)合了在一起;同時(shí)又拓展了我們的知識(shí)面。同時(shí)十分感激xx老師對(duì)我的悉心指導(dǎo)和幫助,使我能夠順利的完成此次畢業(yè)設(shè)計(jì)。此次畢業(yè)設(shè)計(jì)讓我從中受益匪淺,最后再次感謝老師對(duì)我的培養(yǎng)和教育!</p><p><b> 參考文獻(xiàn)</b></
57、p><p> 徐愛鈞 《智能化測(cè)量控制儀表原理與設(shè)計(jì)》(第二版)[M].北京:北京航空航天大學(xué)出版社,2004年;</p><p> 吳金戌、沈慶陽(yáng)、郭庭吉 《8051單片機(jī)實(shí)踐與應(yīng)用》[M].北京:清華大學(xué)出版社,2002年;</p><p> 謝自美 《電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試》(第三版)[M].武漢:華中科技大學(xué)出版社,2006年;<
58、;/p><p> 謝維成、楊加國(guó) 主編 《單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)》[M].北京:清華大學(xué)出版社,2006年;</p><p> 楊立、鄧振杰、荊淑霞 《微型計(jì)算機(jī)原理與接口技術(shù)》[M].中國(guó)鐵道出版社,2006年;</p><p> 黃智偉 《全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽技能訓(xùn)練》 [M].北京:北京航空航天大學(xué)出版社,2007年</p><
59、;p> 高峰,《單片微型計(jì)算機(jī)與接口技術(shù)》[M].北京:科學(xué)出版社,2003;</p><p> 華成英、童詩(shī)白 主編,《模擬電子技術(shù)基礎(chǔ)》(第四版)[M].高等教育出版社,2006年.</p><p> 黃海萍、陳用昌 編 《微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)》[M].北京:國(guó)防工業(yè)出版社,2004年</p><p> [10] 黃智偉: 《凌陽(yáng)單片機(jī)設(shè)計(jì)指
60、導(dǎo)》 ,北京: 北京航空航天大學(xué)出版社,2007年</p><p><b> 附 錄</b></p><p> 附錄A:智能交通燈控制程序:</p><p><b> ORG 0000H</b></p><p> A_BIT EQU 20H ;用于存放南北十位數(shù)</p><
61、;p> B_BIT EQU 21H ;用于存放南北十位數(shù)</p><p> C_BIT EQU 22H ;用于存放東西十位數(shù)</p><p> D_BIT EQU 23H ; 用于存放東西位數(shù)</p><p> TEMP1 EQU 24H ;用于存放第一二南北狀態(tài)要顯示的時(shí)間</p><p> TEMP2 EQU 25H
62、;用于存放第一二東西狀態(tài)要顯示的時(shí)間</p><p> TEMP3 EQU 26H ;用于存放第三第四南北狀態(tài)要顯示的時(shí)間</p><p> TEMP4 EQU 27H;用于存放第三第四南北狀態(tài)要顯示的時(shí)間</p><p><b> LJMP MAIN</b></p><p> ORG 0003H ;外部
63、中斷0入口</p><p> LJMP INT0 ;跳轉(zhuǎn)到外部0中斷</p><p> ORG 0013H ;外部中斷1入口</p><p> LJMP INT1 ;跳轉(zhuǎn)到外部1中斷</p><p> INT0: MOV A,P1 ;外部0中斷</p><p><b>
64、PUSH ACC</b></p><p> MOV A,P2 ;中斷保護(hù)</p><p><b> PUSH ACC</b></p><p> MOV P1,#0FFH ;清除先前狀態(tài)</p><p> MOV P2,#0FFH</p><p><b> C
65、LR P1.0</b></p><p> CLR P1.4 ;南北通行,東西禁止通行</p><p><b> CLR P1.6</b></p><p><b> CLR P2.3</b></p><p> JNB P3.2 ,$ ;判斷是否還在中斷狀態(tài)</p&
66、gt;<p><b> POP ACC</b></p><p> MOV P2,A ;返回中斷前狀態(tài)</p><p><b> POP ACC</b></p><p> MOV P1,ACC</p><p> RETI ;中斷返回</p>
67、<p> INT1:MOV A,P1 ;外部1中斷</p><p> PUSH ACC ;中斷保護(hù)</p><p><b> MOV A,P2</b></p><p><b> PUSH ACC</b></p><p> MOV P1,#0FFH ;清除先前狀態(tài)<
68、;/p><p> MOV P2,#0FFH</p><p><b> CLR P1.2</b></p><p><b> CLR P2.1</b></p><p> CLR P1.3 ;東西通行,南北禁止通行</p><p><b> CLR P1.5&
69、lt;/b></p><p> JNB P3.3 ,$ ;判斷是否還在中斷狀態(tài)</p><p><b> POP ACC</b></p><p> MOV P2,A ;返回中斷前狀態(tài)</p><p><b> POP ACC</b></p><p>&l
70、t;b> MOV P1,A</b></p><p> RETI ;中斷返回</p><p><b> MAIN:</b></p><p> ORG 0100H ;初始情況</p><p> MOV P1,#0FFH</p><p> MO
71、V P2,#0FFH ;滅所有燈</p><p> MOV TMOD,#55H ;計(jì)數(shù)方式方式1</p><p> MOV IE,#85H ;開中斷</p><p> MOV TEMP1,#20 ;</p><p> MOV TEMP2,#25</p><p> MOV TEMP3,#25<
72、/p><p> MOV TEMP4,#20</p><p><b> STAR:</b></p><p> MOV P1,#0FFH</p><p> MOV P2,#0FFH ;滅所有燈</p><p> MOV A,24H ;將顯示時(shí)間送A</p><p&g
73、t; CJNE A,#20,T40T ;判斷時(shí)間,選初始值</p><p> T20T: ;南北通行要顯示的時(shí)間為20的計(jì)數(shù)器初始值</p><p> CLR TF0 ;清TF0</p><p> CLR TF1 ;清TF1</p><p> MOV TH1 ,#0FFH ;送20秒時(shí)的初始值</p>
74、<p> MOV TL1 ,#0FCH ;在些設(shè)計(jì)20秒6輛為多車</p><p> MOV TH0 ,#0FFH</p><p> MOV TL0 ,#0FCH</p><p> LJMP TEMP20 ;跳到20秒</p><p> T40T: ;南北通行要顯示的時(shí)間為40的計(jì)數(shù)器初始值</p>
75、;<p> CLR TF0 ;清TF0</p><p> CLR TF1 ;清TF1</p><p> MOV TH1,#0FFH ;送40秒時(shí)的初始值</p><p> MOV TL1 ,#0F8H ;在些設(shè)計(jì)40秒8輛為多車</p><p> MOV TH0 ,#0FFH</p><p>
76、 MOV TL0 ,#0F8H</p><p> LJMP TEMP40 ;跳到40秒</p><p> TEMP20: ;TEMP1=20情況</p><p> SETB TR0 ;開始計(jì)數(shù)</p><p><b> SETB TR1</b></p><p><b&
77、gt; CLR P1.2</b></p><p> CLR P2.1 ;南北通行,東西禁止通行</p><p><b> CLR P1.3</b></p><p><b> CLR P1.5</b></p><p> MOV TEMP1,#20 ;南北要顯示的時(shí)間,&l
78、t;/p><p> MOV TEMP2,#25 ;東西要顯示的時(shí)間</p><p><b> STLOP:</b></p><p> ACALL DISPLAY1 ;調(diào)用顯示</p><p> DEC TEMP1 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><b> D
79、EC TEMP2</b></p><p> MOV A,TEMP1</p><p> CJNE A,#0,NEXT ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p><p> LJMP STAR2 ;若顯示時(shí)間為 0跳到第二狀態(tài)</p><p> NEXT: LJMP STLOP</p><p>
80、STAR2: ;狀態(tài)1</p><p><b> SETB P1.2</b></p><p> CLR P1.1 ;南北黃燈,東西禁止通行</p><p><b> SETB P1.3</b></p><p><b> CLR P1.4</b></p
81、><p> MOV TEMP1,#05 ;南北要顯示的時(shí)間,</p><p> MOV TEMP2,#05 ;東西要顯示的時(shí)間,</p><p><b> STLOP2:</b></p><p> ACALL DISPLAY1 ;調(diào)用顯示</p><p> DEC TEMP1
82、 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><b> DEC TEMP2</b></p><p> MOV A,TEMP1</p><p> CJNE A,#0,NEXT2 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p><p> JB TF1 ,T40 ;判斷南北是否多車</p><p
83、> JB TF0 ,T40 ;判斷北南是否多車</p><p> MOV TEMP1,#20 ;少車下次顯示時(shí)間為20秒</p><p> LJMP STAR3 ;跳到狀態(tài)3</p><p><b> T40:</b></p><p> MOV TEMP1,#40 ;
84、多車下次顯示時(shí)間為40秒</p><p> LJMP STAR3 ;若顯示時(shí)間為 0跳到第三狀態(tài)</p><p> NEXT2:LJMP STLOP2</p><p> TEMP40:;TEM=40 程序</p><p> SETB TR0 ; 開始計(jì)數(shù)</p><p><b> S
85、ETB TR1</b></p><p><b> CLR P1.2</b></p><p> CLR P2.1 ;南北通行,東西禁止通行</p><p><b> CLR P1.3</b></p><p><b> CLR P1.5</b></p
86、><p> MOV TEMP1,#40 ;南北要顯示的時(shí)間,</p><p> MOV TEMP2,#45 ;東西要顯示的時(shí)間</p><p><b> STLOP11:</b></p><p> ACALL DISPLAY1 ;調(diào)用顯示</p><p> DEC TEMP1
87、 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><b> DEC TEMP2</b></p><p> MOV A,TEMP1</p><p> CJNE A,#0,NEXT11 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p><p> LJMP STAR22 ;若顯示時(shí)間為 0跳到第二狀態(tài)</p>&
88、lt;p> NEXT11: LJMP STLOP11</p><p> STAR22: ;狀態(tài)1</p><p><b> SETB P1.2</b></p><p> CLR P1.1 ;南北黃燈,東西禁止通行</p><p><b> SETB P1.3</b>&l
89、t;/p><p><b> CLR P1.4</b></p><p> MOV TEMP1,#05 ;南北要顯示的時(shí)間,</p><p> MOV TEMP2,#05 ;東西要顯示的時(shí)間,</p><p><b> STLOP22:</b></p><p> ACAL
90、L DISPLAY1 ;調(diào)用顯示</p><p> DEC TEMP1 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><b> DEC TEMP2</b></p><p> MOV A,TEMP1</p><p> CJNE A,#0,NEXT22 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p>
91、<p> JB TF1 ,T401 ; 判斷是否多車</p><p> JB TF0 ,T401</p><p> MOV TEMP1,#20 ;少車下次顯示時(shí)間為20秒</p><p> LJMP STAR3</p><p> T401:MOV TEMP1,#40 ;多車下次顯示時(shí)間為40秒</p&
92、gt;<p> LJMP STAR3 ;若顯示時(shí)間為 0跳到第三狀態(tài)</p><p> NEXT22:LJMP STLOP22</p><p><b> STAR3:</b></p><p><b> MOV A,26H</b></p><p> CJNE A,
93、#25,T40T1 ;判斷時(shí)間,選初始值</p><p> T20T1: ;南北通行要顯示的時(shí)間為20的計(jì)數(shù)器初始值</p><p> CLR TF0 ; 清溢出位</p><p><b> CLR TF1</b></p><p> MOV TH1 ,#0FFH ; 給初值</
94、p><p> MOV TL1 ,#0FCH</p><p> MOV TH0 ,#0FFH</p><p> MOV TL0 ,#0FCH</p><p> LJMP TEMP320</p><p> T40T1: ;南北通行要顯示的時(shí)間為40的計(jì)數(shù)器初始值</p><p> C
95、LR TF0 ;</p><p><b> CLR TF1</b></p><p> MOV TH1,#0FFH ;給初值</p><p> MOV TL1 ,#0F8H</p><p> MOV TH0 ,#0FFH</p><p> MOV TL0 ,#0F8H</p>
96、<p> LJMP TEMP340</p><p> TEMP320:;狀態(tài)三</p><p> SETB TR1 ;南北停止計(jì)數(shù)</p><p> SETB TR0 ;東西開始計(jì)數(shù)</p><p> SETB P1.1 ;東西通行,南北禁止通行</p><p><
97、b> CLR P1.0</b></p><p><b> SETB P1.1</b></p><p><b> CLR P1.0</b></p><p><b> SETB P1.5</b></p><p><b> CLR P1.6<
98、;/b></p><p><b> SETB P2.1</b></p><p><b> CLR P2.3</b></p><p> MOV TEMP3,#25 ;南北要顯示的時(shí)間,</p><p> MOV TEMP4,#20 ;東西要顯示的時(shí)間,</p><p
99、><b> STLOP33:</b></p><p> ACALL DISPLAY ;調(diào)用顯示</p><p> DEC TEMP3 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><b> DEC TEMP4</b></p><p> MOV A,TEMP4</p&g
100、t;<p> CJNE A,#0,NEXT33 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p><p> LJMP STAR34 ;若顯示時(shí)間為 0跳到第四狀態(tài)</p><p> NEXT33:LJMP STLOP33</p><p> STAR34: ;狀態(tài)四</p><p><b>
101、; SETB P2.3</b></p><p><b> CLR P2.2</b></p><p> SETB P1.6 ;東西黃燈,南北禁止通行</p><p><b> CLR P1.5</b></p><p> MOV TEMP3,#05 ;南北要顯示的時(shí)間
102、,</p><p> MOV TEMP4,#05 ;東西要顯示的時(shí)間,</p><p><b> STLOP34:</b></p><p> ACALL DISPLAY ;調(diào)用顯示</p><p> DEC TEMP3 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><b
103、> DEC TEMP4</b></p><p> MOV A,TEMP4</p><p> CJNE A,#0,NEXT34 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p><p> JB TF1 ,T402</p><p> JB TF0 ,T402</p><p> MOV TEMP3,#2
104、5</p><p><b> LJMP STAR</b></p><p><b> T402:</b></p><p> MOV TEMP3,#45</p><p><b> LJMP STAR</b></p><p> NEXT34: L
105、JMP STLOP34</p><p><b> TEMP340 :</b></p><p> SETB TR1 ;南北停止計(jì)數(shù)</p><p> SETB TR0 ;東西開始計(jì)數(shù)</p><p> SETB P1.1 ;東西通行,南北禁止通行</p><p>&l
106、t;b> CLR P1.0</b></p><p><b> SETB P1.1</b></p><p><b> CLR P1.0</b></p><p><b> SETB P1.5</b></p><p><b> CLR P1.6&
107、lt;/b></p><p><b> SETB P2.1</b></p><p><b> CLR P2.3</b></p><p> MOV TEMP3,#45 ;南北要顯示的時(shí)間,</p><p> MOV TEMP4,#40 ;東西要顯示的時(shí)間,</p><
108、;p><b> STLOP43:</b></p><p> ACALL DISPLAY ;調(diào)用顯示</p><p> DEC TEMP3 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><b> DEC TEMP4</b></p><p> MOV A,TEMP4</p
109、><p> CJNE A,#0,NEXT43 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p><p> LJMP STAR44 ;若顯示時(shí)間為 0跳到第四狀態(tài)</p><p> NEXT43:LJMP STLOP43</p><p> STAR44: ;狀態(tài)四</p><p><b&
110、gt; SETB P2.3</b></p><p><b> CLR P2.2</b></p><p> SETB P1.6 ;東西黃燈,南北禁止通行</p><p><b> CLR P1.5</b></p><p> MOV TEMP3,#05 ;南北要顯示的
111、時(shí)間,</p><p> MOV TEMP4,#05 ;東西要顯示的時(shí)間,</p><p><b> STLOP44:</b></p><p> ACALL DISPLAY ;調(diào)用顯示</p><p> DEC TEMP3 ;時(shí)間夠一秒顯示時(shí)間減1</p><p><
112、;b> DEC TEMP4</b></p><p> MOV A,TEMP3</p><p> CJNE A,#0,NEXT44 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)</p><p> JB TF1 ,T403</p><p> JB TF0 ,T403</p><p> MOV TEMP3,
113、#25</p><p><b> LJMP STAR</b></p><p><b> T403:</b></p><p> MOV TEMP3,#45</p><p><b> LJMP STAR</b></p><p> NEXT44:
114、 LJMP STLOP44</p><p><b> ;顯示</b></p><p><b> DISPLAY1:</b></p><p> MOV A,TEMP1 ;將南北要顯示的數(shù)存放到A</p><p> MOV B,#10 ;B=10</p><p>
115、DIV AB ;A除以B商存A,余數(shù)B</p><p> MOV B_BIT,A ; 將A放到20H</p><p> MOV A_BIT,B ;將B放到21H</p><p> MOV A,TEMP2 ;將東西要顯示的數(shù)存放到A</p><p> MOV B,#10 ;B=10</p><p>
116、 DIV AB ;A除以B商存A,余數(shù)B</p><p> MOV C_BIT,A ;將A放到22H</p><p> MOV D_BIT,B ;將B放到23H</p><p> MOV DPTR ,#NUMT ;</p><p> MOV R0,#2 ;R0=2</p><p>
117、 DPL11: MOV R1,#250 ;R1=250</p><p><b> DPLOP1:</b></p><p> MOV A,A_BIT ;將南北要顯示的10位數(shù)送A</p><p> MOVC A,@A+DPTR ;查表</p><p> MOV P0,A ;顯示南北10位數(shù)</p>
118、<p><b> CLR P2.7</b></p><p> ACALL D1MS;延時(shí)1MS</p><p> SETB P2.7 ;滅南北10位數(shù)</p><p> MOV A,B_BIT ;將南北要顯示的個(gè)位數(shù)送A</p><p> MOVC A,@A+DPTR ;查表</p&g
119、t;<p> MOV P0,A ;顯示南北個(gè)位數(shù)</p><p><b> CLR P2.6</b></p><p> ACALL D1MS ;延時(shí)1MS</p><p> SETB P2.6 ;滅南北個(gè)位數(shù)</p><p> MOV A,C_BIT ;將東西要顯示的10位數(shù)送A<
120、/p><p> MOVC A,@A+DPTR ;查表</p><p> MOV P0,A ;顯示東西10位數(shù)</p><p><b> CLR P2.5</b></p><p> ACALL D1MS ;延時(shí)1MS</p><p> SETB P2.5 ;滅東西10位數(shù)</
121、p><p> MOV A,D_BIT ;將東西要顯示的個(gè)位數(shù)送A</p><p> MOVC A,@A+DPTR ;查表</p><p> MOV P0,A ;顯示東西東西位數(shù)</p><p><b> CLR P2.4</b></p><p> ACALL D1MS ;延時(shí)1MS&
122、lt;/p><p> SETB P2.4 ;滅東西個(gè)位數(shù)</p><p> DJNZ R1,DPLOP ;循環(huán)掃描</p><p> DJNZ R0,DPL1</p><p> RET; ;等待1秒返回</p><p><b> 顯示</b></p><p>
123、;<b> DISPLAY:</b></p><p> MOV A,TEMP3 ;將南北要顯示的數(shù)存放到A</p><p> MOV B,#10 ;B=10</p><p> DIV AB ;A除以B商存A,余數(shù)B</p><p> MOV B_BIT,A ; 將A放到20H</p>
124、<p> MOV A_BIT,B ;將B放到21H</p><p> MOV A,TEMP4 ;將東西要顯示的數(shù)存放到A</p><p> MOV B,#10 ;B=10</p><p> DIV AB ;A除以B商存A,余數(shù)B</p><p> MOV C_BIT,A ;將A放到22H</p&
125、gt;<p> MOV D_BIT,B ;將B放到23H</p><p> MOV DPTR ,#NUMT ;</p><p> MOV R0,#2 ;R0=2</p><p> DPL1: MOV R1,#250 ;R1=250</p><p><b> DPLOP:</b></
126、p><p> MOV A,A_BIT ;將南北要顯示的10位數(shù)送A</p><p> MOVC A,@A+DPTR ;查表</p><p> MOV P0,A ;顯示南北10位數(shù)</p><p><b> CLR P2.7</b></p><p> ACALL D1MS;延時(shí)1MS&l
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文---智能交通燈控制系統(tǒng)設(shè)計(jì)
- 智能交通燈控制系統(tǒng)設(shè)計(jì) 畢業(yè)論文
- 交通燈智能控制系統(tǒng)-畢業(yè)論文
- 智能交通燈plc控制系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 交通燈控制系統(tǒng)畢業(yè)論文設(shè)計(jì)
- 交通燈控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 交通燈控制系統(tǒng)畢業(yè)論文設(shè)計(jì)
- 交通燈控制系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文—交通燈控制系統(tǒng)
- 交通燈控制系統(tǒng)畢業(yè)論文
- 交通燈控制系統(tǒng)畢業(yè)論文
- 交通燈控制系統(tǒng)畢業(yè)論文
- 交通燈控制系統(tǒng)畢業(yè)論文
- 基于plc的智能交通燈控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于plc的智能交通燈控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于plc的智能交通燈控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 智能交通燈控制系統(tǒng)設(shè)計(jì)【通信工程畢業(yè)論文】
- 智能控制交通燈畢業(yè)論文
- 智能控制交通燈畢業(yè)論文
- plc交通燈畢業(yè)論文--基于plc的交通燈控制系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論