版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課程設(shè)計(論文)說明書</p><p> 題 目:基于單片機的交通燈控 </p><p> 制器設(shè)計 </p><p> 院 (系):信息與通信學院 </p><p> 專 業(yè):微電子學 </p><p> 學生姓名
2、: </p><p> 學 號: </p><p> 指導教師: </p><p> 職 稱: </p><p> 2012年 12月 10日</p><p&
3、gt;<b> 摘 要</b></p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠的就是交通信號燈的自動指揮系統(tǒng)。本系統(tǒng)由單片機系統(tǒng)、四位數(shù)碼管顯示、彩色LED交通燈演示系統(tǒng)組成。設(shè)計一個用于東西、南北走向的交通管理。南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運行,主干道每次通行時間都設(shè)為45秒、支干
4、道每次通行間為30秒。本系統(tǒng)結(jié)構(gòu)簡單,操作方便;可實現(xiàn)自動控制,具有一定的智能性;對優(yōu)化城市交通具有一定的意義。本設(shè)計將各任務(wù)進行細分包裝,使各任務(wù)保持相對獨立;能有效改善程序結(jié)構(gòu),便于模塊化處理,使程序的可讀性、可維護性和可移植性都得到進一步的提高。近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還
5、應根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。 本文主要從單片機的應用上來實現(xiàn)十字路口交通燈智能化的管理,用以控制過往車輛的正常運作。</p><p> 關(guān)鍵詞:交通燈;單片機;數(shù)碼管</p><p><b> Abstract</b></p><p> Shuttle crossroads vehicles, pedestrians bust
6、ling, car dealers lane pavements people, methodical. Rely on to achieve orderly order it? Is automated command system of traffic lights. The system consists of a microcontroller system, four digital display color LED tra
7、ffic lights demo system. The design for the east and west, north-south traffic management. Lane of the north-south direction (the main road) and east-west direction (branch roads) lanes on two cross-road vehicles run alt
8、ernately main r</p><p> Key words:traffic lights; microcontroller; digital tube</p><p><b> 目 錄</b></p><p><b> 引言1</b></p><p><b> 1
9、 設(shè)計方案1</b></p><p> 1.1 交通燈歷史簡介1</p><p> 1.2 設(shè)計要求2</p><p> 1.3 設(shè)計思路2</p><p> 2 硬件電路設(shè)計2</p><p> 2.1 主要元器件簡介2</p><p> 2.1.1單片
10、機AT89S522</p><p> 2.1.2兩位共陰數(shù)碼管3</p><p> 2.2 電路原理圖設(shè)計4</p><p> 2.2.1整體硬件原理圖4</p><p> 2.2.2單片機最小系統(tǒng)4</p><p> 2.2.3LED指示燈設(shè)計5</p><p> 2.
11、2.4數(shù)碼管顯示電路設(shè)計6</p><p><b> 3 程序設(shè)計6</b></p><p> 3.1 總體程序流程圖6</p><p> 3.2 初始化程序6</p><p> 3.3 通車指示程序6</p><p> 3.4 倒計時程序6</p><
12、p> 3.5 數(shù)碼管顯示7</p><p><b> 4 調(diào)試過程7</b></p><p><b> 5 心得體會7</b></p><p><b> 謝辭8</b></p><p><b> 參考文獻9</b></p
13、><p><b> 附錄10</b></p><p><b> 引言</b></p><p> 如今隨著人們生活水平的提高,車輛越來越多,交通事故頻繁發(fā)生。交通信號燈的出現(xiàn),使交通得以有效管制,對于疏導交通流量,提高道路通行能力,減少交通事故有明顯效果。交通燈在城市交通中起著重要的作用,它與人們?nèi)粘I蠲芮邢嚓P(guān),是人們
14、出行的安全保障。因此提供一個可靠、安全、便捷的多功能交通燈控制系統(tǒng)有著現(xiàn)實的必要性。為了解決這些問題,我們更應該提高交通控制和管理水平,合理使用現(xiàn)有交通設(shè)施,充分發(fā)揮其能力,提高交通效率,促進和諧交通的建立。</p><p> 近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是
15、不夠的,還應根據(jù)具體硬件結(jié)構(gòu),以及針對具體應用對象特點的軟件結(jié)合,加以完善。</p><p> 本系統(tǒng)設(shè)計一個基于單片機的交通燈控制系統(tǒng)。能方便的對交通燈進行控制,使交通更和諧。 </p><p><b> 1 設(shè)計方案</b></p><p> 1.1 交通燈歷史簡介</p><p> 當今,紅綠燈安裝在各個
16、道口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。但這一技術(shù)19世紀就已出現(xiàn)了。</p><p> 1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅、藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1968年,美國機械工程師納伊特在倫敦威斯敏斯特的會議大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩種旋轉(zhuǎn)式方形提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日
17、,煤氣燈爆炸,使警察受傷,遂被取消。</p><p> 電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的透光其組成,1914年安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p> 1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制得紅綠燈,一種是把壓力探測器放在地上,車輛一接近紅燈變成綠燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時
18、按一下喇叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。</p><p> 信號燈的出現(xiàn),使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直走,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除
19、非另一種標志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法的正在路口內(nèi)行駛的車輛和過人行道的行人先通過,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。</p><p><b> 1.2 設(shè)計要求</b></p><p> 本交通燈的設(shè)計要求如下:</p><p><b> 電源:5V 。<
20、/b></p><p> 剩余時間顯示:兩位數(shù)碼管。</p><p> 每次綠燈變紅燈時,要求黃燈先亮3秒鐘。</p><p> 主干道每次放行45秒;支干道每次放行30秒</p><p><b> 1.3 設(shè)計思路</b></p><p> 本設(shè)計的題目是“基于單片機的交通燈控制
21、器設(shè)計”,所以主控芯片當然是單片機,由于對AT89S52這款單片機比較熟悉,所以我選AT89S52作為主控芯片。只要交通指示部分,紅、綠、黃三種不同顏色的指示燈是必不可少的,這里我選用紅、綠、黃三種顏色的高亮LED作為交通指示燈。對于倒計時顯示,選用一般的數(shù)碼管即可,這里我選用的事兩位共陰數(shù)碼管。由于東西、南北(反方向)的指示燈和倒計時是一致的,所以只需分別將東和西、南和北方向的并聯(lián)在一起即可,這就簡化了程序設(shè)計部分。編程時,在快要到切
22、換東西和南北通車方向的前3秒,先將此刻通車的方向的綠燈切換成黃燈。</p><p> 2 硬件電路設(shè)計 </p><p> 2.1 主要元器件簡介</p><p> 2.1.1單片機AT89S52</p><p> AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash 存儲器。使用Atmel公司高密
23、度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)
24、晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。P0口是一個8位漏極開路的雙向I/O口。P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口。</p><p> 圖1 AT89S52引腳圖 DIP封
25、裝</p><p> 2.1.2兩位共陰數(shù)碼管</p><p> 數(shù)碼管是一種半導體發(fā)光器件,其基本單元是發(fā)光二極管。按數(shù)碼管內(nèi)部發(fā)光二極管的個數(shù)(段數(shù))可以將數(shù)碼管分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示)。兩位共陰數(shù)碼管即可以同時顯示兩個數(shù)字的數(shù)碼管。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管,共陰數(shù)碼
26、管在應用時應將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。</p><p> 圖2 數(shù)碼管內(nèi)部電路圖</p><p> 圖3 兩位數(shù)碼管實物圖</p><p> 2.2 電路原理圖設(shè)計</p><p> 2.2.1整體硬件設(shè)計</p>&
27、lt;p> 整體電路原理框圖如下:</p><p> 圖4 整體電路原理框圖</p><p> 整體硬件包括單片機最小系統(tǒng)本分、LED指示部分和數(shù)碼管顯示部分。</p><p> 圖5 整體電路原理圖</p><p> 2.2.2單片機最小系統(tǒng)</p><p> ?。?)單片機在單片機應用系統(tǒng)中,單片機
28、是核心部件,能夠自動完成用戶賦予它的任務(wù),控制LED指示和數(shù)碼管顯示倒計時。</p><p> ?。?)晶振電路:晶振電路是單片機一種時序電路,必須為其提供脈沖信號才能正常工作。由于MCS-51系列單片機內(nèi)部已集成了時鐘電路,所以在使用時只要外接晶體振蕩器和電容就可以產(chǎn)生脈沖信號。晶體振蕩器和電容所組成的電路稱為晶振電路。</p><p><b> 圖6 晶振電路</b
29、></p><p> ?。?)復位電路:單片機在啟動運行時,都需要先復位,即是使CPU和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。MCS-51系列單片機本身,一般不能自動進行復位,必須配合相應的外部電路才能實現(xiàn)。復位電路的作用就是使單片機在上電時能夠復位或運行出錯時進入復位狀態(tài)。</p><p><b> 圖7 復位電路</b></
30、p><p> (4)輸入輸出口線插座: 單片機通過輸入輸出口線與外界交換信息。例如,單片機與外設(shè)的通訊就是通過輸入輸出口線實現(xiàn)的。單片機輸入輸出口線的驅(qū)動能力有限。驅(qū)動能力不足時,可以在口線上接驅(qū)動器。</p><p> 2.2.3LED指示燈設(shè)計</p><p> 高亮LED承受的電壓比較小,所以不能直接在LED兩端直接用5V電壓驅(qū)動,這是需要串聯(lián)上一個電阻進行
31、分壓。但是如果用單片機端口直接驅(qū)動LED電路陽極,單片機輸出端口的輸出電流很小,需要另加驅(qū)動電路。為了解決單片機不能直接驅(qū)動LED電路的問題,只需將單片機的輸出口直接接到LED電路的陰極即可。</p><p> 這樣就不再需要另加驅(qū)動電路,簡化了電路結(jié)構(gòu),降低成本。</p><p> 圖8 南北方向LED指示電路</p><p> 2.2.4數(shù)碼管顯示電路設(shè)計
32、</p><p> 由于數(shù)碼管可以承受5V的電壓,所以可以直接將數(shù)碼管接到單片機的輸出端口。但是單片機的驅(qū)動電路很小,數(shù)碼管亮度不夠,所以要在單片機的輸出端口接上上拉電阻作為驅(qū)動電路,增加驅(qū)動電流,提高驅(qū)動能力,增加數(shù)碼管的亮度。</p><p><b> 3 程序設(shè)計</b></p><p> 程序設(shè)計時,將程序進行模塊設(shè)計可以讓思路
33、更加明確,方便閱讀。</p><p> 3.1 總體程序流程圖</p><p><b> 圖9 程序流程圖</b></p><p><b> 3.2 初始化程序</b></p><p> 單片機的IO口可以不用專門的初始化程序,直接默認即可。這里的初始化程序主要是定時器初始化,比如將計數(shù)器
34、賦起始值等。</p><p> 3.3 通車指示程序</p><p> 通車指示程序包括主干道東西通車指示程序和次干道南北通車指示程序,即東西通車函數(shù)和南北通車函數(shù)。每個函數(shù)的內(nèi)部都包括LED指示功能和數(shù)碼管顯示功能。東西方向通車45秒(數(shù)碼管顯示倒計時),即在倒計時期間,先亮42秒綠燈,再亮3秒黃燈,期間南北方向不通車(紅燈)。南北通車30秒(數(shù)碼管顯示倒計時),即在倒計時期間,南北
35、方向綠燈先亮27秒,然后再到黃燈亮3秒,期間東西方向亮紅燈。使用while循環(huán)語句讓東西方向和南北方向交替通車。</p><p><b> 3.4 倒計時程序</b></p><p> 實現(xiàn)通車剩余時間倒計時可用兩種方法,一種是使用for循環(huán)語句倒計時,另外一種是使用定時器中斷計算時間實現(xiàn)倒計時。</p><p> 前一種方法,即使用fo
36、r循環(huán)語句的方法計算的時間的方法,由于交通燈對時間的要求不是很精確,理論上也是可以的。但是使用這種方法在實際調(diào)試時候,由于在倒計時的期間單片機要執(zhí)行其他的程序語句,所以用這種方法很難實現(xiàn)。</p><p> 后一種方法,即使用定時器中斷函數(shù)來計算時間,不但可以很精確地計算時間,而且在定時的同時,單片機還可以執(zhí)行其他語句,比如數(shù)碼管動態(tài)顯示。所以選擇了使用定時器中斷來計算倒計時時間。</p><
37、;p><b> 3.5 數(shù)碼管顯示</b></p><p> 由于這里使用的是兩位共陰數(shù)碼管,也就是說在同一時刻,數(shù)碼管不能同時顯示兩位數(shù)字,所以不能使用數(shù)碼管靜態(tài)顯示的方法。在這里,我使用了數(shù)碼管動態(tài)顯示的方法,即讓數(shù)碼管的兩位數(shù)字輪流顯示,當周期很短的時候,由于視覺滯留的效果,看起來好像數(shù)碼管的兩位數(shù)是同時顯示的。</p><p><b>
38、4 調(diào)試過程</b></p><p> 調(diào)試可以分為硬件調(diào)試和程序調(diào)試。在硬件調(diào)試前,先確認電源電壓是否為5V。將電路板接上電源后,先用萬用表確認單片機等元件是否接上電。然后開始結(jié)合程序,測試單片機是否正常工作,若單片機不能正常工作,檢查晶振是否震蕩。確認單片機最小系統(tǒng)可以正常工作后,將程序燒錄到單片機中,點亮每一個LED和數(shù)碼管。確認硬件可以正常工作后,開始程序調(diào)試。程序調(diào)試的第一步是讓數(shù)碼可以
39、正常顯示數(shù)字,這樣可以使后面調(diào)試過程出現(xiàn)的錯誤在數(shù)碼管顯示出來。第二步,調(diào)試定時器倒計時程序,并在數(shù)碼管上下面是出來。第三步,分別編寫東西通車和南北通車兩個倒計時函數(shù),并讓這兩個函數(shù)輪流切換運行。第四步,分別在兩個倒計時函數(shù)中調(diào)節(jié)紅黃綠LED輪流切換的功能。最后,將整個系統(tǒng)運行一段時間,檢查系統(tǒng)是否已能正常工作,若不能正常工作,則分析原因并解決問題,直到系統(tǒng)正常。</p><p><b> 5 心得
40、體會</b></p><p> 通過本次的課程設(shè)計,很深刻地體會到一點,那就是我們在設(shè)計過程中一定要有一個整體的清晰的思路,知道自己的設(shè)計的對象的基本功能和核心器件的適用及其作用,只要把握住這些主要方面,一些小問題都將圍繞著這些主要問題而逐步得到解決。同時我也懂得,在整個設(shè)計過程中,生活中也一樣,一定要意志堅定,克服自己的畏難情緒,這樣才能將事情做好,才能干出一番成就。</p><
41、;p><b> 謝 辭</b></p><p> 感謝學院給我們提供這樣的實踐動手機會,并通過課程設(shè)計使我們能夠有機會將書本上學到的知識運用到的實際中去。在課設(shè)過程中施娟老師給了我很多的指導和幫助,并監(jiān)督我及時完成了本次課程設(shè)計,老師嚴謹?shù)闹螌W態(tài)度、對科研工作的執(zhí)著追求、謙遜和藹的風范對自己產(chǎn)生的深遠影響,使自己受益終生。在她的嚴格要求下,我的設(shè)計有了很大的進展,每次的指導我都會
42、從中獲得豐富的理論知識同時也會提高實踐能力,這對我將來進一步學習電子方面的知識有著極大的幫助。在此特別感謝施娟老師和給予我?guī)椭耐瑢W。</p><p><b> 參考文獻</b></p><p> [1] 張毅剛,彭喜元,彭宇. 單片機原理及應用(第2版).高等教育出版社.2010.5</p><p> [2] 鄭峰,
43、王巧芝等. 51單片機典型應用開發(fā)范例大全. 中國鐵道工業(yè)出版社.2011.10</p><p> [3] 曾峰.印刷電路板(PCB)設(shè)計與制作[M].北京:電子工業(yè)出版社.2002.11</p><p> [4] 劉文濤. MCS-51單片機培訓教程(C51)版.電子工業(yè)出版社, 2005.8.</p><p> [5] 王宜懷.單片機原理及其嵌入
44、式應用教程.北京希望電子出版社, 2002.8.</p><p> [6] 邵貝貝.單片機嵌入式應用的在線開發(fā)方法.清華大學出版社, 2006.3.</p><p> [7] 龔運新.單片機C 語言開發(fā)技術(shù).清華大學出版社, 2006.10.</p><p> [8] Jean J.Labrosse 著. 嵌入式系統(tǒng)構(gòu)件.袁勤勇等譯.北京:機械工業(yè)出版社, 2
45、002.</p><p> [9] 江世明.基于Proteus的單片機應用技術(shù)[M]. 北京:電子工業(yè)出版社,2009.</p><p> [10] 李泉溪. 單片機原理與應用實例仿真[M].北京:北京航空航天大學出版社,2009.</p><p> [11] 孫惠芹. 單片機項目設(shè)計教程[M]. 北京:電子工業(yè)出版社,2009.</p><
46、;p><b> 附 錄</b></p><p><b> 原理圖:</b></p><p><b> PCB圖:</b></p><p><b> 電路板實物圖:</b></p><p><b> C語言源程序:</b&g
47、t;</p><p> #include<reg52.h> // 包含51單片機寄存器定義的頭文件</p><p> #define uchar unsigned char</p><p> unsigned char Tab[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
48、//control shape</p><p> //unsigned char Tab[ ]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};</p><p> unsigned char port[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};</p><p&g
49、t; unsigned char int_time,count ; //中斷次數(shù)計數(shù)變量</p><p> unsigned char WE_second,NS_second; //秒計數(shù)變量</p><p> sbit NS_greenlight =P1^0 ;</p><p> sbit NS_yellowlight =P1^1 ;</p&
50、gt;<p> sbit NS_redlight =P1^2 ;</p><p> sbit WE_greenlight =P1^3 ;</p><p> sbit WE_yellowlight =P1^4 ;</p><p> sbit WE_redlight =P1^5 ;</p><p> sbit
51、 NS_timedec =P2^0 ;</p><p> sbit NS_timeunit =P2^1 ;</p><p> sbit WE_timedec =P2^2 ;</p><p> sbit WE_timeunit =P2^3 ;</p><p> uchar time=0,sec;</p&
52、gt;<p> /////////////////////////////////////////////////////</p><p> /*****************************************************</p><p> 函數(shù)功能:延時1ms</p><p> ******************
53、*********************************/</p><p> void delay1ms()</p><p><b> {</b></p><p> unsigned char i,j;</p><p> for(i=0;i<10;i++)</p><p>
54、; for(j=0;j<33;j++)</p><p><b> ; </b></p><p><b> }</b></p><p> /*****************************************************</p><p> 函數(shù)功能:延時若
55、干毫秒</p><p><b> 入口參數(shù):n</b></p><p> ***************************************************/</p><p> void delaynms(unsigned int n)</p><p><b> {</b>
56、;</p><p> unsigned int i;</p><p> for(i=0;i<n;i++)</p><p> delay1ms();</p><p><b> }</b></p><p> void delay(void) //延時函數(shù),延時約0.6ms&l
57、t;/p><p><b> {</b></p><p> unsigned char j;</p><p> for(j=0;j<180;j++)</p><p><b> ;</b></p><p><b> }</b></p>
58、<p> /******************************************************************</p><p> 函數(shù)功能:南北通道通車時間</p><p><b> 入口參數(shù):</b></p><p> **********************************
59、**********************************/</p><p> void NS_traffic(uchar t)</p><p><b> {</b></p><p><b> P2=0xfa;</b></p><p> P0=Tab[t/10];
60、 //顯示十位</p><p><b> delay();</b></p><p><b> delay();</b></p><p><b> delay();</b></p><p><b> delay();</b></p>&
61、lt;p><b> P2=0xf5;</b></p><p> P0=Tab[t%10]; //顯示個位</p><p><b> delay();</b></p><p><b> delay();</b></p><p><b>
62、delay();</b></p><p><b> delay();</b></p><p><b> if(t>3)</b></p><p><b> {</b></p><p> NS_yellowlight=1;</p><p
63、> NS_redlight =1;</p><p> NS_greenlight=0;</p><p> WE_yellowlight=1;</p><p> WE_redlight =0;</p><p> WE_greenlight=1;</p><p><b> }</b>
64、</p><p> if(t<4 && t>0)</p><p><b> {</b></p><p> NS_yellowlight=0;</p><p> NS_redlight =1;</p><p> NS_greenlight=1;</p>
65、;<p> WE_yellowlight=0;</p><p> WE_redlight =1;</p><p> WE_greenlight=1;</p><p><b> }</b></p><p><b> if(t==0)</b></p><p&g
66、t;<b> {</b></p><p> NS_yellowlight=1;</p><p> NS_greenlight=1;</p><p> NS_redlight =0;</p><p> WE_yellowlight=1;</p><p> WE_greenlight=0;
67、</p><p> WE_redlight =1;</p><p><b> }</b></p><p><b> }</b></p><p> /******************************************************************</p
68、><p> 函數(shù)功能:東西通道通車時間</p><p><b> 入口參數(shù):</b></p><p> ********************************************************************/</p><p> void WE_traffic(uchar t)<
69、/p><p><b> {</b></p><p><b> P2=0xfa;</b></p><p> P0=Tab[t/10];//顯示個位</p><p><b> delay();</b></p><p><b> delay()
70、;</b></p><p><b> P2=0xf5;</b></p><p> P0=Tab[t%10];</p><p><b> delay();</b></p><p><b> delay();</b></p><p>&l
71、t;b> if(t>3)</b></p><p><b> {</b></p><p> NS_yellowlight=1;</p><p> NS_redlight =0;</p><p> NS_greenlight=1;</p><p> WE_yello
72、wlight=1;</p><p> WE_redlight =1;</p><p> WE_greenlight=0;</p><p><b> }</b></p><p> if(t<4 && t>0)</p><p><b> {</b&
73、gt;</p><p> WE_yellowlight=0;</p><p> WE_redlight =1;</p><p> WE_greenlight=1;</p><p> NS_yellowlight=0;</p><p> NS_redlight =1;</p><p>
74、 NS_greenlight=1;</p><p><b> }</b></p><p><b> if(t==0)</b></p><p><b> {</b></p><p> WE_yellowlight=1;</p><p> WE_r
75、edlight =1;</p><p> WE_greenlight=0;</p><p> NS_yellowlight=1;</p><p> NS_redlight =0;</p><p> NS_greenlight=1;</p><p><b> }</b></p>
76、<p><b> }</b></p><p> /******************************************************************</p><p><b> 函數(shù)功能:主函數(shù)</b></p><p> ************************
77、********************************************/</p><p> void main(void)</p><p><b> {</b></p><p> unsigned char fload=0; </p><p> TMOD=0x01;
78、 //使用定時器T0</p><p> TH0=(65536-46083)/256; //將定時器計時時間設(shè)定為46083×1.085微秒</p><p> //=50000微秒=50毫秒</p><p> TL0=(65536-46083)%256;</p><p> EA=1;
79、 //開啟總中斷</p><p> ET0=1; //定時器T0中斷允許</p><p> TR0=1; //啟動定時器T0開始運行</p><p> int_time=0; //中斷次數(shù)初始化</p><p> NS_second=45; /
80、/秒計數(shù)變量初始化</p><p> WE_second=31; </p><p><b> while(1)</b></p><p><b> {</b></p><p> if(time==0)NS_traffic(NS_second); //調(diào)用東西通道通車時間函數(shù) <
81、/p><p> elseWE_traffic(WE_second); //調(diào)用東西通道通車時間函數(shù)</p><p> } </p><p><b> }</b></p><p> /********************************************</
82、p><p><b> 定時器--倒計時</b></p><p> ***********************************************/</p><p> void interserve(void ) interrupt 1 using 1 </p><p><b> {<
83、/b></p><p> TR0=0; //關(guān)閉定時器T0</p><p> int_time ++; //每來一次中斷,中斷次數(shù)int_time自加1</p><p> if(int_time==22) //夠20次中斷,即1秒鐘進行一次檢測結(jié)果采樣</p><p><b> {</b
84、></p><p> int_time=0; //中斷次數(shù)清0</p><p> if(time==0)</p><p><b> {</b></p><p> NS_second--;</p><p> if(NS_second==0)</p><p&g
85、t;<b> {</b></p><p> NS_second=45; //秒等于60就返回0 </p><p><b> time=1;</b></p><p><b> }</b></p><p><b> }</b></p>
86、<p> if(time==1)</p><p><b> {</b></p><p> WE_second--; //秒加1 </p><p> if(WE_second==0)</p><p><b> {</b></p><p>
87、 WE_second =31;</p><p><b> time=0;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> } </b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機交通燈課程設(shè)計--基于單片機的交通燈系統(tǒng)的設(shè)計
- 單片機交通燈課程設(shè)計--基于單片機的交通燈系統(tǒng)的設(shè)計
- 交通燈單片機課程設(shè)計--基于單片機的交通燈顯示系統(tǒng)
- 交通燈單片機課程設(shè)計--基于單片機的交通燈顯示系統(tǒng)
- 單片機課程設(shè)計--基于單片機的交通燈設(shè)計
- 單片機交通燈課程設(shè)計
- 單片機課程設(shè)計---交通燈
- 單片機交通燈課程設(shè)計
- 單片機課程設(shè)計-交通燈
- 單片機課程設(shè)計--交通燈
- 單片機課程設(shè)計(交通燈)
- 基于單片機的交通燈課程設(shè)計
- 基于單片機的交通燈課程設(shè)計
- 單片機交通燈課程設(shè)計
- 單片機交通燈課程設(shè)計
- 單片機交通燈課程設(shè)計
- 課程設(shè)計---基于單片機的交通燈設(shè)計
- 單片機交通燈課程設(shè)計
- 基于單片機的交通燈設(shè)計課程設(shè)計
- 基于單片機的交通燈課程設(shè)計
評論
0/150
提交評論