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