版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于SPCE061A的模擬交通燈鍵盤掃描控制模塊設計</p><p> 完成日期: </p><p> 指導教師簽字: </p><p> 答辯小組成員簽字: </p><p> 基于SPCE061A的模擬交通燈鍵盤掃描控制模塊設
2、計</p><p><b> 摘 要</b></p><p> 隨著社會經濟的發(fā)展,城市交通越來越成為人們不可忽視的問題。人、車、路之間的協(xié)調,已經成為交通管理部門主要解決的問題。城市交通控制系統(tǒng)是用于城市交通數(shù)據(jù)監(jiān)測、交通信號燈控制與交通疏導的計算機綜合管理系統(tǒng),它是現(xiàn)代城市交通監(jiān)控指揮系統(tǒng)中最重要的組成部分。而交通信號燈是我們常見的交通管理系統(tǒng), 交通信號燈
3、的出現(xiàn),使交通得以有效管制,對于疏導交通流量,提高道路通行能力,減少交通事故有明顯效果。</p><p> 本方案利用SPCE061A為主控制器,配合交通燈模組V3.0設計的交通燈控制系統(tǒng)。該系統(tǒng)在適當?shù)臅r候控制點亮綠色、黃色或者紅色的LED燈,示意行人或者車輛可以通行或者不可以通行;另外通過數(shù)碼管倒計時,示意車輛或者行人不可以通行時需要等待的時間或者通行時還有多少的剩余時間。</p><p
4、> 關鍵詞:交通信號燈;SPCE061A;交通燈模組;數(shù)碼管</p><p> Analog keyboard scan traffic lights based on SPCE061A control module design</p><p><b> Abstract </b></p><p> With the
5、development of social and economic,urban transport has become more and more important problems that can not be ignored. Coordination between the people, vehicles, roads, has become the traffic Administrative Department o
6、f the main problems addressed. Urban traffic control system for urban traffic data monitoring, traffic signal control and traffic grooming in computer integrated management system, it is a modern urban traffic monitoring
7、 and commanding the most important element of the s</p><p> Use SPCE061A as the primary controller for this programme, Module V3.0 meet traffic lights traffic lights control system design. Control point at
8、the proper time of the system of bright green, yellow, or red LED lamp, signal traffic or pedestrians or vehicles can not negotiable; Through the digital countdown, signaling when a vehicle or pedestrian is not negotiabl
9、e need to wait for the rest of time, or how much traffic there.</p><p> Key words:Traffic light;SPCE061A;Traffic light module;LED</p><p><b> 目 錄</b></p><p><b>
10、 1 緒論1</b></p><p><b> 1.1研究背景1</b></p><p> 1.2當今國內外交通信號燈控制系統(tǒng)發(fā)展狀況1</p><p> 1.2.1國外交通信號燈控制系統(tǒng)發(fā)展狀況2</p><p> 1.2.2國內交通信號燈控制系統(tǒng)發(fā)展狀況2</p><
11、p> 2 系統(tǒng)硬件設計3</p><p> 2.1交通燈功能介紹3</p><p> 2.2系統(tǒng)結構框圖及硬件連接圖4</p><p> 2.3路口交通示意圖5</p><p><b> 3模塊特性簡介6</b></p><p> 3.1 SPCE061A簡介6<
12、;/p><p> 3.2 SPCE061A精簡開發(fā)板簡介6</p><p> 3.3 SPCE061A最小系統(tǒng)7</p><p> 3.4交通燈模組V3.0簡介8</p><p> 4 鍵盤掃描控制模塊9</p><p> 4.1 鍵盤結構9</p><p> 4.1.1 獨立
13、式鍵盤結構9</p><p> 4.1.2 行列式鍵盤結構9</p><p> 4.2 鍵盤掃描工作原理10</p><p> 4.2.1 逐行(或逐列)掃描法的工作原理10</p><p> 4.2.2 線反轉法工作原理11</p><p> 5 系統(tǒng)軟件設計12</p><
14、p> 5.1 主程序設計12</p><p> 5.1.1 主程序流程圖12</p><p> 5.1.2主程序代碼12</p><p> 5.2 子程序鍵盤掃描控制模塊18</p><p><b> 6 系統(tǒng)調試20</b></p><p> 6.1 操作步驟及流程圖
15、20</p><p> 6.2 系統(tǒng)調試時遇到的問題及解決的方法22</p><p><b> 參考文獻23</b></p><p><b> 致謝24</b></p><p><b> 1 緒論</b></p><p><b>
16、; 1.1研究背景</b></p><p> 隨著社會的不斷發(fā)展以及城市化進程的加快,機動車越來越普及,城市所面臨的交通問題也越來越嚴重。交通擁擠以及由之所導致的時間損失、能源消耗、交通事故和環(huán)境問題等所造成的巨大損失已成為一個急待解決的難題。解決好城市交通信號燈控制問題將是保障交通有序、安全、快速運行的重要環(huán)節(jié)。</p><p> 交通是城市經濟活動的命脈,對城市經濟的
17、發(fā)展、人民生活水平的提高都起著十分重要的作用。智能交通系統(tǒng)作為21世紀交通運輸體系的發(fā)展方向,受到了世界各國的廣泛重視,它是解決現(xiàn)代交通擁擠、有效提高道路利用率的根本出路。因此設計新型的交通燈控制系統(tǒng), 對緩解交通阻塞, 提高暢通率具有十分現(xiàn)實的意義。</p><p> 目前, 為了解決城市交通需求量迅速增加的問題,主要采用以下兩種方法: 一是在“硬件”方面, 加強交通基礎設施建設, 新建道路、互通立交橋或對現(xiàn)
18、有的公路進行改造以增加車輛通行能力;二是在“軟件”方面, 對交通流進行智能化的管理控制, 充分發(fā)揮現(xiàn)有路網的通行潛力, 最大程度上使交通流做到有序流動。因此,采用先進的自動化控制方法對交通進行控制成為必須要解決的問題。結合先進的智能控制算法和先進的嵌入式系統(tǒng)研究開發(fā)出適合中國國情、性能價格比高的交通控制器成為一項特別緊迫的任務。</p><p> 基于以上描述以及結合我國現(xiàn)階段自身特點,語音識別系統(tǒng)交通信號燈的
19、研究具有重大的社會意義。本設計是基于SPCE061A語音識別交通信號燈系統(tǒng),可以在交通信號燈轉換過程中加有語音提示,根據(jù)各地交警提出不同的語音要求進行個性化的設計,能夠有效的減少交通事故的發(fā)生,提高道路通行能力,疏導交通的作用。同時與其他的交通燈系統(tǒng)相比該系統(tǒng)更具功能化和人性化。因此語音識別交通信號燈系統(tǒng)必將獲得長足的發(fā)展。</p><p> 1.2當今國內外交通信號燈控制系統(tǒng)發(fā)展狀況</p>&
20、lt;p> 近百年來,伴隨著經濟的發(fā)展,全球汽車業(yè)以驚人的速度發(fā)展,汽車已經成為人們日常生活不可缺少的交通工具。但是,隨著城市化進程的加快,機動車日益普及,人們在享受機動車所帶來的巨大便利的同時,也面臨著交通擁擠的煩惱。目前,交通擁擠問題不同程度的普遍存在于各個國家和地區(qū),由此產生了一系列的問題,如環(huán)境污染、交通事故頻繁發(fā)生、交通擁擠等,給國家和人們的生命財產帶來了很大的損失。解決交通擁擠的直接辦法就是修建更多的路橋以提高路網的
21、通行能力。然而,由于修建路橋的巨額投資和城市空間的嚴格限制等原因,使這一方法的有效性大打折扣。因此,解決交通問題的最有效的方法之一就是建立城市交通信號燈系統(tǒng)。</p><p> 1.2.1國外交通信號燈控制系統(tǒng)發(fā)展狀況</p><p> 國外對城市交通信號燈系統(tǒng)研究的比較早,1858年英國倫敦主要街頭上就安裝了以燃煤氣為光源的紅藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早
22、的交通信號燈。1868年英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上安裝了世界上最早的煤氣紅綠燈。它由紅綠兩色以旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。</p><p> 1914年電氣啟動的紅綠燈出現(xiàn)在美國。這種紅綠燈由紅黃綠三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈表示“停止”,綠燈表示“通行”。1918年又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。</p
23、><p> 1963年加拿大多倫多市建立了一套使用IBM650型計算機作為交通控制器的集中協(xié)調感應控制信號系統(tǒng),實現(xiàn)了1000多個交通路口的聯(lián)網,標志著城市道路交通信號燈控制系統(tǒng)的發(fā)展進入了一個新的階段。到目前為止,人們相繼完成了很多區(qū)域交通控制系統(tǒng),其中最有代表性的有TRANSYT、SCOOT、SCATS、RHODES等。世近年來,英國、澳大利亞、歐洲和美國等均在某些城市建立了交通信號燈控制系統(tǒng)。在這些系統(tǒng)中,大
24、部分都在各路口附近安裝有磁性環(huán)路檢測器,并由各路口的控制裝置或工作人員將交通控制參數(shù)通過電話線、電纜、閉路電視線等通訊網絡輸入微處理器,用小型計算機進行集中控制。</p><p> 1.2.2國內交通信號燈控制系統(tǒng)發(fā)展狀況</p><p> 我國對城市交通信號燈系統(tǒng)的應用和研究工作起步較晚。隨著我國城市道路交通問題越來越嚴重,政府對城市交通控制系統(tǒng)日益重視并采取相應的解決措施,采用引進
25、與開發(fā)相結合的方針,使我國的交通系統(tǒng)在一定程度上起了緩解交通擁擠的作用,提高了城市道路的運行率。我國自上世紀70年代開始自己研發(fā)智能交通系統(tǒng),交通系統(tǒng)中信號機的質量水平有了明顯的提高。從整體上看,我國信號機產品制造和研發(fā)水平及信號機的技術水平得到了明顯提高。國內不少研發(fā)機構相繼研發(fā)建立了一系列的交通系統(tǒng),其中應用比較成功的有公安部交通管理研究所HTUTC系統(tǒng)、浙大中控ACS系統(tǒng)、青島海信HICON系統(tǒng)、深圳市自行研發(fā)的SMOOTH系統(tǒng)、
26、上海寶康MITCO系統(tǒng)以及金科交通科技JK-C系列小型交通控制系統(tǒng)。這些系統(tǒng)都不同程度的發(fā)揮著改善交通擁擠的作用,這些系統(tǒng)跟國外的系統(tǒng)相比,價格有所下降,但是目前還是最主要應用在國內的一些大城市的繁華路口。</p><p><b> 2 系統(tǒng)硬件設計</b></p><p> 2.1交通燈功能介紹</p><p> 本方案的交通燈就是一個
27、簡易的交通指示燈控制系統(tǒng), 由一套SPCE061A精簡開發(fā)板(簡稱61板)和一套交通燈模組構成,功能有: </p><p> ●系統(tǒng)有兩個狀態(tài),設置狀態(tài)和顯示狀態(tài),利用61板的鍵盤的KEY1鍵盤可以進行兩個狀態(tài)間的切換; </p><p> ●開機時,系統(tǒng)為顯示狀態(tài),四個路口數(shù)碼管從默認的倒計時時間(本系統(tǒng)四個路口分別為24、24、49、74)開始倒計時; </p>&l
28、t;p> ●設置狀態(tài)時利用61板的KEY1~KEY3鍵盤可以設置各路口直行通行倒計時時間,設置的路口數(shù)碼管閃爍顯示,各路口的通行時間可以不相等,其中KEY2為加1鍵,KEY3為減1鍵,KEY1為確定鍵; </p><p> ●顯示狀態(tài)時,交通燈模組的四個LED板的數(shù)碼管進行倒計時;LED板各組的紅綠燈交通指示;如果一個LED板上有三個綠燈亮,這時候數(shù)碼管顯示的是通行時間,否則,數(shù)碼管顯示的是等待時間;顯
29、示過程中按KEY1鍵可以重新進入設置狀態(tài)。</p><p> 下圖2-1為功能框圖:</p><p> 圖 2-1 功能框圖</p><p> 2.2系統(tǒng)結構框圖及硬件連接圖</p><p> 本系統(tǒng)由一套61板和一套交通燈模組構成,如圖 2-2,SPCE061A通過I/O口控制交通燈模組中各LED板的數(shù)碼管和發(fā)光二極管的顯示;通過6
30、1板上的三個鍵盤KEY1~KEY3可以設置各LED板指示的路口通行倒計時時間。</p><p> 圖 2-2 系統(tǒng)結構框圖</p><p> 系統(tǒng)硬件連接如圖 2-3,把四個LED板連接到驅動板上,利用三根10pin排線分別連接交通燈模組和61板的J5與J9、J6與J6、J7與J7;連接61板電源,注意要把61板的J5接口選擇為5V。</p><p> 圖 2
31、-3 系統(tǒng)硬件連接圖</p><p> 2.3路口交通示意圖</p><p> 一個典型的十字路口,分別用1,2,3,4(表示東、西、南、北4方向)表示4個流向的主車道,用L,S,R,P分別表示各車到的左行車道、直行車道、右行車道一級人行橫道,其實路口交通 示意圖如2-4所示:</p><p> 圖 2-4 路口交通示意圖</p><p&g
32、t; 上圖中,常規(guī)交通燈的綠燈亮狀態(tài)(通行)順序為:</p><p> 圖 2-5 通行示意圖</p><p> 其中,“1-2”表示1P和2P可以通過路口2通行;“2-3”表示2P和3P可以通過路口3通行;“3-4”表示3P和4P可以通過路口4通行;“4-1”表示4P和1P可以通過路口1通行。</p><p><b> 3模塊特性簡介 </
33、b></p><p> 3.1 SPCE061A簡介</p><p> SPCE061A是凌陽科技研發(fā)生產的性價比很高的一款十六位單片機,使用它可以非常方便靈活的實現(xiàn)語音的錄放系統(tǒng),該芯片擁有8路10位精度的ADC,其中一路為音頻轉換通道,并且內置有自動增益電路。這為實現(xiàn)語音錄入提供了方便的硬件條件。兩路10精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外
34、凌陽十六位單片機具有易學易用的效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標準C語言,可以實現(xiàn)C語言與凌陽匯編語言的互相調用。</p><p> 下圖3-1為SPCE061A的內部結構框圖:</p><p> 圖3-1 SPCE061A系統(tǒng)內部結構框圖</p><p> 3.2 SPCE061A精簡開發(fā)板簡介</p><p>
35、 SPCE061A精簡開發(fā)板(簡稱61板),是以凌陽16位單片機SPCE061A為核心的精簡開發(fā)-仿真-實驗板,是“凌陽科技大學計劃”專為大學生、電子愛好者等進行電子實習、課程設計、畢業(yè)設計、電子制作及電子競賽所設計的,也可作為單片機項目初期研發(fā)使用。</p><p> 61板除了具備單片機最小系統(tǒng)電路外,還包括有電源電路、音頻電路(含MIC輸入部分和DAC音頻輸出部分)、復位電路等,采用電池供電,方便隨身攜
36、帶。61板上有調試器接口(Probe接口)以及下載線(EZ_Probe)接口,分別可接凌陽科技的在線調試器、簡易下載線,配合unSP IDE,可方便地在板上實現(xiàn)程序的下載、在線仿真調試。</p><p> 61板(V1.6版)的實物圖如3-2,各區(qū)功能模塊簡介如下:</p><p> ● 電源區(qū):為整個系統(tǒng)提供電源,通常采用系統(tǒng)配套的電池盒進行供電,只要放入3節(jié)5號電池就可以滿足供電需
37、求了。</p><p> ● 下載區(qū):程序就是通過這邊的接口下載到SPCE061A單片機的。</p><p> ● 音頻區(qū):這里的麥克風是用來進行語音輸入的,還有一個喇叭的接口用來進行語音播放。</p><p> ● SPCE061A與周邊:這就是整塊板子的大腦,所有控制信息都是從這里發(fā)出的,那些周邊器件用來協(xié)助SPCE061A單片機正常工作。</p&g
38、t;<p> ● 鍵控區(qū):采用這幾個按鍵我們可以做一些簡單的試驗。</p><p> ● 復位區(qū):當按下這里面的按鍵后,單片機就重新開始工作。</p><p> ● 端口區(qū):用于對外掛硬件的控制,或者獲取外部硬件的一些狀態(tài)以便SPCE061A來進行處理。</p><p> 圖3-2 61板實物圖</p><p> 3.
39、3 SPCE061A最小系統(tǒng) </p><p> SPCE061A最小系統(tǒng)中,包括SPCE061A芯片及其外圍的基本模塊,其中外圍的基本模塊有:晶振輸入模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復位電路(RESET)、指示燈(LED)等,如圖 3-3所示。</p><p> 圖 3-3 SPCE061A最小系統(tǒng)</p><p> 3.4交通燈模組V3.0簡介&
40、lt;/p><p> 交通燈模組V3.0包括一塊驅動電路板(交通燈模組V3.0_驅動板)和四塊LED板(交通燈模組V3.0_LED板)。</p><p> ●LED板中每個方向提供四組交通LED燈(包括左轉、直行、右轉、人行道四組),每組交通燈包括紅、黃、綠三個燈,可以實現(xiàn)交通的通行控制; </p><p> ●LED板中每個方向提供兩個數(shù)碼管,可以實現(xiàn)100以內
41、的倒計時。</p><p> 交通燈模組實物圖如圖 3-4使用時,直接用10pin排線連接驅動板的單片機接口和61板的I/O口即可使用。</p><p> 圖 3-4 交通燈模組實物圖</p><p> 4 鍵盤掃描控制模塊</p><p><b> 4.1 鍵盤結構</b></p><p&g
42、t; 鍵盤一般有獨立式和行列式(矩陣式)兩種。當然還有其它的結構,比如交互式結構等等,不過其它的結構比較少用。在中穎的單片機中,有些單片機的LCD 驅動引腳的SEGMENT 口可以共享按鍵掃描口,當選擇為按鍵掃描口時,可以使用這些口來掃描按鍵,所以在外部電路可以連接LCD 和按鍵矩陣,采用分時掃描進行處理,下面也將介紹這個特殊應用的方法和注意的地方。</p><p> 4.1.1 獨立式鍵盤結構</p&
43、gt;<p> 獨立式鍵盤是指各個按鍵相互獨立地連接到各自的單片機的I/O 口,I/O口只需要做輸入口就能讀到所有的按鍵。盤可以使用上拉電阻也可以使用下拉電阻,基本原理是一樣的。使用上拉電阻的獨立式鍵盤結構如圖 4-1 所示。</p><p> 圖 4-1獨立式鍵盤結構</p><p> 圖4-1所示的是利用PB 口和PC 口共8個I/O 口獨自連接8個按鍵,使用外部上
44、拉電阻構成的獨立式鍵盤。在一些單片機中,有很多型號的單片機有I/O 內部上拉電阻或內部下拉電阻,所以在實際應用,若是使用到這樣的單片機,是不需要接外部上拉電阻或下拉電阻了,只需在程序中把內部上拉電阻或內部下拉電阻打開即可。</p><p> 從圖4-1可以看出,當按鍵沒有被按下的時候,連接到該按鍵的I/O 口輸入電平為高電平,當按鍵按下去之后,輸入電平則變?yōu)榈碗娖?。所以要判別有無按鍵按下,只需判斷輸入口的電平即
45、可,程序寫起來十分方便。這種鍵盤雖然有電路簡單、程序容易寫的優(yōu)點,但是也有缺點:當按鍵個數(shù)較多的時候,要占用較多的I/O 口資源。所以當按鍵個數(shù)比較多的時候,比較少用這樣的按鍵結構,而是使用行列式結構。</p><p> 4.1.2 行列式鍵盤結構</p><p> 為了減少鍵盤占用太多的單片機I/O 口資源,當按鍵個數(shù)較多的時候,通常都使用行列式鍵盤。行列式鍵盤同樣可以使用上拉電阻或
46、是下拉電阻,使用上拉電阻的行列式鍵盤結構如圖4-2所示。</p><p> 圖 4-2 行列式鍵盤結構</p><p> 跟獨立式鍵盤一樣,若是使用有內部上拉電阻或是下拉電阻的單片機時,外面不需連接上拉電阻或是下拉電阻,只需在程序內打開內部上拉電阻或是內部下拉電阻即可。行列式鍵盤的原理就是每一行線與每一列線的交叉地方不相通,而是接上一個按鍵,通過按鍵來接通。所以利用這種結構a個I/O
47、口可以接a個行線,另外的b個I/O可以接b個列線,總共可以組成a×b個按鍵的鍵盤。共有4個行線,4個列線,可以組成4×4=16個按鍵的鍵盤。</p><p> 可以看出,行列式的鍵盤結構可以省出不少的I/O 口資源。</p><p> 對行列式的鍵盤進行掃描的時候,要先判斷整個鍵盤是否有按鍵按下,有按鍵按下才對哪一個按鍵按下進行判別掃描。對按鍵的識別掃描通常有兩種方
48、法:一種是比較常用的逐行(或逐列)掃描法,另一種是線反轉法。</p><p> 4.2 鍵盤掃描工作原理</p><p> 以圖4-2為例介紹兩種掃描方法的工作原理。</p><p> 4.2.1 逐行(或逐列)掃描法的工作原理</p><p> 首先要先判別整個鍵盤中是否有按鍵按下,由單片機連接到列線的PC口輸出低電平,然后讀取連接
49、到行線的PB 口的電平狀態(tài)。若是沒有按鍵按下,則PB 口讀進來的數(shù)據(jù)為0FH;若讀進來的數(shù)據(jù)不是0FH,那就是有按鍵按下,因為只要有按鍵按下,該按鍵連接到的行線電平就會被拉至低電平。</p><p> 若是有判斷到按鍵按下之后就要進行對按鍵的識別掃描。掃描的方法是將列線逐列置低電平,并檢測行線的電平狀態(tài)來實現(xiàn)的。依次向PC口的每個列線送低電平,然后檢測所有行線 PC 口的狀態(tài),若是全為 1,則所按下的按鍵不在此
50、列,進入下一列的掃描;若是不全為1,則所按下的按鍵必在此列,并且按鍵正是此列與讀取到為低電平的行線的交點上。</p><p> 4.2.2 線反轉法工作原理</p><p> 線反轉法的優(yōu)點是掃描速度比較快,但是程序處理起來卻是比較不方便。線反轉法最好是將行、列線按二進制順序排列。線反轉法同樣也要先判別整個鍵盤有無按鍵按下,有按鍵按下才對鍵盤進行掃描。當有某一按鍵按下時,鍵盤掃描掃到給
51、該列置低電平時,讀到了行狀態(tài)為非全1,這個時候就可以將行數(shù)據(jù)和列數(shù)據(jù)組合成一個鍵值。鍵盤從左到右、從上到下的鍵值依次是EE,ED,EB,E7;DE,DD,DB,D7;…;7E,7D,7B,77。這是負邏輯的排列,可以通過軟件的取反指令把這些數(shù)據(jù)變成正邏輯:11,12,14,18;21,22,24,28;…;81,82,84,88。不過不管是正邏輯還是負邏輯的數(shù)據(jù),可以看出這樣的數(shù)據(jù)是很難使用散轉指令的。所以一般都要想辦法把這樣的鍵值數(shù)據(jù)
52、再修正一下成為等距能用于散轉指令的鍵值數(shù)據(jù)。</p><p> 若是所使用的單片機內部具有上拉電阻的話,還不需要逐列去置低電平,外部無上拉電阻。先使用PB 口作為輸入口,打開PB 口上拉電阻,而PC口作為輸出口輸出低電平,讀PB口得到列數(shù)據(jù);再使用PC 口作為輸入口,打開PC 口上拉電阻,而PB口作為輸出口輸出低電平,讀 PC口得到行數(shù)據(jù)。這樣就可直接得到行數(shù)據(jù)和列數(shù)據(jù),而得組合的鍵值。線反轉法一般用于4 的倍
53、數(shù)的鍵盤,比如4×4 鍵盤、4×8 鍵盤、8×8鍵盤。</p><p><b> 5 系統(tǒng)軟件設計</b></p><p><b> 5.1 主程序設計</b></p><p> 5.1.1 主程序流程圖</p><p> 圖 5-1 主程序流程圖</p&
54、gt;<p> 5.1.2主程序代碼</p><p> #include "SPCE061A.h"//包含SPCE061A.h頭文件</p><p> #include "DIGuser.h"//包含DIGuser.h頭文件,通過該文件,可以改變該系統(tǒng)的一些參數(shù)</p><p> #i
55、nclude "DIG.h"//</p><p> extern unsigned int KeyScan(void);</p><p> unsigned int Key=0;//變量保存鍵值</p><p> unsigned int status = 0;//變量保存狀態(tài)</p><
56、p> int main(void)</p><p><b> {</b></p><p> unsigned int Setflag = 0;//變量保存設置的路口標志</p><p> unsigned int iNum = 0;//變量保存設置過程中的數(shù)據(jù)</p><p> unsign
57、ed int Enumset,Snumset,Wnumset,Nnumset;</p><p> //變量保存最終的設置數(shù)據(jù)</p><p> DIG_Initial();//端口初始化,該函數(shù)在DIG.asm中定義,在DIG.h申明</p><p> *P_INT_Ctrl_New |= C_IRQ5_2Hz;//開2Hz中斷,以便系統(tǒng)進
58、行倒計時</p><p> __asm("int irq");</p><p> Enum = ENUM;//設置各方向路口初始時的直行通行倒計時時間,倒計時時間可以在DIGuser.h文件中修改</p><p> Snum = SNUM;</p><p> Wnum = WNUM;</p>
59、<p> Nnum = NNUM;</p><p> Enumset = ENUM;//保存初始設置數(shù)據(jù)</p><p> Snumset = SNUM;</p><p> Wnumset = WNUM;</p><p> Nnumset = NNUM;</p><p> stat
60、us = SHOW;//初始狀態(tài)設置為顯示狀態(tài)</p><p> while(1)//交通燈控制</p><p><b> {</b></p><p> while(status==SET)//設置狀態(tài)</p><p><b> {</b></p>
61、;<p> Key = KeyScan();//掃描鍵盤,取鍵值</p><p> switch(Key)</p><p><b> {</b></p><p> case 0x0001://如果是KEY1按下</p><p> Setflag++;//設置下一個路口直行通行時間
62、</p><p> if(Setflag==1)</p><p> iNum = Enumset;//如果正在設置的是東邊路口,顯示上一次設置數(shù)據(jù)</p><p> if(Setflag==2)</p><p> iNum = Snumset;//如果正在設置的是南邊路口,顯示上一次設置數(shù)據(jù)</p><p>
63、; if(Setflag==3)</p><p> iNum = Wnumset;//如果正在設置的是西邊路口,顯示上一次設置數(shù)據(jù)</p><p> if(Setflag==4)</p><p> iNum = Nnumset;//如果正在設置的是北邊路口,顯示上一次設置數(shù)據(jù)</p><p> if(Setflag==5)<
64、;/p><p><b> {</b></p><p> Setflag = 0;//設置完成</p><p> Enumset = Enum;//保存最終設置數(shù)據(jù)</p><p> Snumset = Snum;</p><p> Wnumset = Wnum;</p>&
65、lt;p> Nnumset = Nnum;</p><p> max = Enumset+Snumset+Nnumset;//</p><p> if(max>100);</p><p> max = Snumset+Wnumset+Nnumset;//</p><p> if(max>100);</p&
66、gt;<p> max = Wnumset+Nnumset+Enumset;//</p><p> if(max>100);</p><p> max = Nnumset+Enumset+Snumset;//</p><p> if(max>100);</p><p><b> else &l
67、t;/b></p><p> status = SHOW;//設置為顯示狀態(tài)</p><p><b> }</b></p><p><b> break;</b></p><p> case 0x0002://如果是KEY2按下</p><p> iN
68、um++;//加1</p><p> if(iNum==100)</p><p><b> iNum = 0;</b></p><p><b> break;</b></p><p> case 0x0004://如果是KEY3按下</p><p>
69、iNum--;//減1</p><p> if(iNum==0xffff)</p><p> iNum = 99;</p><p><b> break;</b></p><p><b> default:</b></p><p> break;
70、</p><p><b> }</b></p><p> if(Setflag==1)</p><p><b> {</b></p><p> Enum = iNum;//保存東邊路口設置數(shù)據(jù)</p><p> if((cn%2)==1)</p&
71、gt;<p><b> {</b></p><p> DIGOff(EAST_D);</p><p><b> }</b></p><p><b> }</b></p><p> if(Setflag==2)</p><p>
72、<b> {</b></p><p> if((cn%2)==1)</p><p><b> {</b></p><p> DIGOff(SOUTH_D);</p><p><b> }</b></p><p> Snum = iNum;
73、//保存南邊路口設置數(shù)據(jù)</p><p><b> }</b></p><p> if(Setflag==3)</p><p><b> {</b></p><p> if((cn%2)==1)</p><p><b> {</b><
74、;/p><p> DIGOff(WEST_D);</p><p><b> }</b></p><p> Wnum = iNum;//保存西邊路口設置數(shù)據(jù)</p><p><b> }</b></p><p> if(Setflag==4)</p>
75、<p><b> {</b></p><p> if((cn%2)==1)</p><p><b> {</b></p><p> DIGOff(NORTH_D);</p><p><b> }</b></p><p> Nnu
76、m = iNum;//保存北邊路口設置數(shù)據(jù)</p><p><b> }</b></p><p> if(cn%2==0)</p><p><b> {</b></p><p> DIGShow(EAST_D,Enum);//東邊路口數(shù)碼管顯示</p><p
77、> DIGShow(SOUTH_D,Snum);//南邊路口數(shù)碼管顯示</p><p> DIGShow(WEST_D,Wnum);//西邊路口數(shù)碼管顯示</p><p> DIGShow(NORTH_D,Nnum);//北邊路口數(shù)碼管顯示</p><p><b> }</b></p><p>
78、 *P_Watchdog_Clear = 0x0001;</p><p><b> Key = 0;</b></p><p><b> }</b></p><p> Nnum = Wnum + Snum + Enum - 1;//計算開始時各路口的倒計時時間,北邊的等待時間是其他三方的通行時間之和</p&g
79、t;<p> Wnum = Snum + Enum - 1;//西邊的等待時間是南邊和東邊的通行時間之和</p><p> Snum = Enum - 1;//南邊的等待時間是東邊的通行時間</p><p> Enum = Enum -1;//東邊通行時間</p><p> while(status==SHOW)<
80、/p><p><b> {</b></p><p> max = Snumset+Wnumset+Nnumset-1;</p><p> DirFlag = EAST_G;//設置方向狀態(tài)標志為東邊路口車輛直行通行狀態(tài),EAST_G為EAST Green</p><p> Enum = Enumset-1;
81、//東邊路口數(shù)碼管從Enumset-1開始倒計時</p><p> EastSTrough();//進入1L,1S,1P,3R,4R(通行25s)狀態(tài),該函數(shù)在DIGuser.c文件中定義</p><p> if(status==SHOW)</p><p><b> {</b></p><p>
82、 max = Wnumset+Nnumset+Enumset-1;</p><p> DirFlag = SOUTH_G;//設置方向狀態(tài)標志為南邊路口車輛直行通行狀態(tài),SOUTH_G為SOUTH Green</p><p> Snum = Snumset-1;//南邊路口數(shù)碼管從Snumset-1開始倒計時</p><p> SouthST
83、rough();//進入2L,2S,2P,4R,1R(通行25s)狀態(tài),該函數(shù)在DIGuser.c文件中定義</p><p><b> }</b></p><p> if(status==SHOW)</p><p><b> {</b></p><p> max = Nnums
84、et+Enumset+Snumset-1;</p><p> DirFlag = WEST_G;//設置方向狀態(tài)標志為西邊路口車輛直行通行狀態(tài),WEST_G為WEST Green</p><p> Wnum = Wnumset-1;//西邊路口數(shù)碼管從Wnumset-1開始倒計時</p><p> WestSTrough();//進入
85、3L,3S,3P,1R,2R(通行25s)狀態(tài),該函數(shù)在DIGuser.c文件中定義</p><p><b> }</b></p><p> if(status==SHOW)</p><p><b> {</b></p><p> max = Enumset+Snumset+Nnumset-
86、1;</p><p> DirFlag = NORTH_G;//設置方向狀態(tài)標志為北邊路口車輛直行通行狀態(tài),NORTH_G為NORTH Green</p><p> Nnum = Nnumset-1;//北邊路口數(shù)碼管從Nnumset-1開始倒計時</p><p> NorthSTrough();//進入4L,4S,4P,1R,2R(
87、通行25s)狀態(tài),該函數(shù)在DIGuser.c文件中定義</p><p><b> }</b></p><p> *P_Watchdog_Clear = 0x0001;</p><p><b> }</b></p><p> *P_Watchdog_Clear = 0x0001;</p&
88、gt;<p><b> }</b></p><p><b> }</b></p><p> 5.2 子程序鍵盤掃描控制模塊</p><p> Key.c是一個鍵盤掃描文件,包含鍵盤I/O口的初始化和鍵掃描函數(shù)。</p><p><b> 代碼如下:</b>
89、;</p><p> //文件名稱:Key.c</p><p> //功能描述:初始化鍵盤函數(shù)和掃描鍵盤函數(shù)</p><p> #include "SPCE061A.h"</p><p> //語法格式:void Key_Init(void)</p><p> //實現(xiàn)功能:鍵盤初
90、始化</p><p> void Key_Init(void)</p><p><b> {</b></p><p> *P_IOA_Dir &= 0xfff8;//初始化IOA2為帶下拉電阻輸入</p><p> *P_IOA_Attrib &= 0xfff8;</p>&
91、lt;p> *P_IOA_Data &= 0xfff8;</p><p><b> }</b></p><p> //========================================================</p><p> //語法格式:void Delay(void)</p>
92、<p> //實現(xiàn)功能:延時</p><p> void delay(void)</p><p><b> {</b></p><p> unsigned int uiCount;</p><p> for(uiCount = 0;uiCount <= 0x3fff;uiCount++)&
93、lt;/p><p><b> {</b></p><p> *P_Watchdog_Clear = 0x0001; //清看門狗</p><p><b> }</b></p><p><b> }</b></p><p> //=======
94、=================================================</p><p> //語法格式:unsigned int KeyScan(void)</p><p> //實現(xiàn)功能:獲得鍵盤值并返回</p><p> unsigned int KeyScan(void)</p><p><
95、;b> {</b></p><p> unsigned int uiData;</p><p> unsigned int uiTemp;</p><p> uiData = *P_IOA_Data; //讀取IOA端口輸入</p><p> uiData = uiData&0x0007;
96、//僅取低八位有效值</p><p> if(uiData!=0)//非零則表示有鍵按下</p><p><b> {</b></p><p> delay();//延時消抖</p><p> uiTemp = *P_IOA_Data;</p><p> uiTe
97、mp = uiTemp&0x0007;//僅取低八位有效值</p><p> if(uiData != uiTemp)</p><p> uiData = 0;//兩次讀數(shù)不相等,則置返回值為0</p><p><b> }</b></p><p> return uiData;
98、 //返回鍵值</p><p><b> }</b></p><p><b> 6 系統(tǒng)調試</b></p><p> 6.1 操作步驟及流程圖</p><p> 第一步:按照圖2.2所示連接硬件,連接好下載線或者Probe,打開電源。注意61板上的J5要選擇5V;LED板不
99、要插反。如圖6-1和圖6-2為正確連接。</p><p> 圖6-1 61板上J5的選擇</p><p> 圖6-2 LED板與驅動板的連接</p><p> 第二步:打開Traffic.spj工程,rebuild all,沒有錯誤時下載,全速運行。這時候交通燈模組4個LED板的數(shù)碼管按照默認的通行時間(各路口的通行時間均為25s)進行倒計時,并各自進行紅、綠
100、燈顯示。</p><p> 開始倒計時的時間和紅綠燈狀態(tài)分別為: </p><p> J1接口的LED板:倒計時時間:24s(通行時間);紅綠燈狀態(tài):左拐:綠,直行:綠,右拐:紅,人行道:綠; </p><p> J2接口的LED板:倒計時時間:24s(等待時間);紅綠燈狀態(tài):左拐:紅,直行:紅,右拐:紅,人行道:紅; </p><p>
101、; J3接口的LED板:倒計時時間:49s(等待時間);紅綠燈狀態(tài):左拐:紅,直行:紅,右拐:綠,人行道:紅; </p><p> J4接口的LED板:倒計時時間:74s(等待時間);紅綠燈狀態(tài):左拐:紅,直行:紅,右拐:綠,人行道:紅。</p><p> 第三步:如果要自己設置各路口的通行時間,按61板上的KEY1鍵進入設置狀態(tài)。按KEY1開始設置第一個(J1)LED板的數(shù)碼管顯示
102、的通行時間,此時第一個LED板的數(shù)碼管閃爍,KEY2為加1鍵,KEY3位減1鍵;設置完第一個,按KEY1鍵設置第二個LED板,設置方法和設置第一個LED板相同;設置完成后設置第三個、第四個,全部設置完成后,如果設置正確,按KEY1鍵后4個LED板的數(shù)碼管開始顯示,且其發(fā)光二極管進行相應指示;如果沒有設置正確,系統(tǒng)不會進行倒計時,這時候需要按KEY1鍵重新進行設計。</p><p> 注意:由于每個路口只有兩位數(shù)
103、碼管顯示倒計時時間,所以無論是通行時間,還是等待時間,都不能超過99;一個路口的等待時間等于其他三個路口通行時間之和,如果相鄰三個路口設置的通行時間之和大于99,則設置錯誤,需要重新設置,按KEY1會自動進入設置狀態(tài)進行設置。</p><p> 四個路口的通行時間可以設置相同,也可以不同。 </p><p> 操作流程如圖 6-3</p><p> 圖 6-3
104、 操作流程圖</p><p> 6.2 系統(tǒng)調試時遇到的問題及解決的方法</p><p> 1:上電后數(shù)碼管不顯示,LED燈也不點亮,為什么? </p><p> 答:檢查交通燈模組的驅動板電源指示燈是否點亮,如果沒有點亮,切斷電源,檢查是否正負極接反。</p><p> 2:驅動板電源指示燈亮,可是數(shù)碼管和發(fā)光二極管顯示不正常,或者
105、發(fā)光二極管變化顯示,數(shù)碼管顯示亂七八糟。</p><p> 答:可能由兩種情況造成:第一,交通燈模組和61板連接不正確,注意61板和交通燈模組驅動板的連接順序是J5接J9、J6接J6、J7接J7;第二,LED板和驅動板的插接不正確,注意LED板和驅動板的插接順序為圖 2.4。</p><p> 3:數(shù)碼管和發(fā)光二極管的亮度很暗,不明顯。</p><p> 答:
106、首先確認61板的J5是否選擇了5V,如果選擇,可能是電池盒供電不足,換新電池或者5V的穩(wěn)壓源即可解決。</p><p> 4:按KEY1、KEY2、KEY3設置完成后,按KEY1系統(tǒng)不會進入倒計時顯示狀態(tài),再按KEY1后,第一個LED板的數(shù)碼管又開始像設置狀態(tài)時那樣閃爍,為什么? </p><p> 答:設置錯誤造成,一定有相鄰三個路口的設置數(shù)據(jù)之和大于100,重新進入了設置狀態(tài),注意
107、由于每個路口只有兩位數(shù)碼管顯示倒計時時間,所以無論是通行時間,還是等待時間,都不能超過99;一個路口的等待時間等于其他三個路口通行時間之和,所以相鄰三個路口設置的通行時間之和不能大于大于100。</p><p><b> 參考文獻</b></p><p> [1]羅亞非,凌陽16位單片機應用基礎[M].北京:北京航空航天大學出版社,2003.</p>
108、<p> [2]薛鈞義,張彥斌,虞鶴松,樊波.凌陽十六位單片機原理及應用[M].北京航空航天出版社,2003.</p><p> [3]曹東源,高愛坤,田小平.智能交通與城市交通緩堵[J].中國期刊網,2006,(23).</p><p> [4]沈鴻星.LED交通信號燈系統(tǒng)的硬件設計[J].電子工程師,2004(03).</p><p> [5
109、]余錫存,曹國華.單片機原理及接口技術[M].陜西:西安電子科技大學出版社,2000.</p><p> [6]雷麗文,微機原理與接口技術[M].北京:電子工業(yè)出版社,1997.2.</p><p> [7]葉挺秀.應用電子學[M].杭州:浙江大學出版社,2001.</p><p> [8]譚浩強,C程序設計[M].清華大學出版社,1999.</p>
110、;<p> [9]肖業(yè)偉. 城市智能交通信號控制系統(tǒng)的研究[D].湘潭:湘潭大學,2004.</p><p> [10]凌陽科技.凌陽l6位單片機及其開發(fā)實例[M].北京:北京航空航天大學出版社,2006.</p><p> [11]DS18B20 Programmable Resolution 1-Wire Digital Thermometer. [OL].www.
111、maxim_ic.com.</p><p> [12]Porters can guide to pyroelectric detector.Ferroclectrics.[M]1981.</p><p><b> 致謝</b></p><p> 四年的艱苦跋涉,幾個月的精心準備,畢業(yè)設計終于到了劃句號的時候。作為一個本科生的畢業(yè)設計,由于
112、經驗的匱乏,難免有許多考慮不周全的地方,論文寫作的過程并不輕松,工作的壓力時時襲攏,知識的積累尚欠火候,如果沒有老師的督促指導,以及一起工作的同學們的支持,想要完成這個設計是難以想象的。</p><p> 在畢業(yè)設計完成之際,謹向我的指導老師xxx老師致以真摯的感謝,感謝他對我畢業(yè)論文的指導和幫助。Xx老師淵博的知識、敏銳的思維、嚴謹?shù)闹螌W作風、和藹可親的性格給我留下了深刻的印象。在本論文的研究過程中,xxx老
113、師熱心地幫我搜集很多關于單片機、交通燈方面的知識和資料,并在此后的研究中,直接地提出了很多寶貴的意見和建議,使我順利完成畢業(yè)論文工作。</p><p> 經過這次畢業(yè)設計,我看出自己知識的平庸,對處理問題能力的缺乏,才真正體會到學會運用自己的能力與知識是何等的重要。知識是在課堂上老師教授的,在書本中學到的;實踐則是需要自己動手去做才能夠掌握的。通過這次設計,我不但掌握了一門語言,對怎樣做一個項目有了一個大概的了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文-基于spce061a的模擬交通燈硬件驅動模塊設計
- 基于spce061a的語音播放系統(tǒng)設計【畢業(yè)論文】
- 基于spce061a的數(shù)字溫度計設計【畢業(yè)論文】
- 控制交通燈設計畢業(yè)論文
- plc交通燈畢業(yè)論文--基于plc的交通燈控制系統(tǒng)設計
- 畢業(yè)設計---基于spce061a停車誘導系統(tǒng)設計
- 基于plc的模擬交通燈控制系統(tǒng)設計畢業(yè)論文
- 基于SPCE061A實驗系統(tǒng)設計.pdf
- 基于plc交通燈控制畢業(yè)論文
- plc控制交通燈設計畢業(yè)論文
- plc交通燈畢業(yè)論文--plc交通控制燈設計
- 畢業(yè)設計----基于spce061a電壓在線監(jiān)測設計
- 畢業(yè)論文設計交通燈
- 畢業(yè)論文交通燈設計
- 智能控制交通燈畢業(yè)論文
- 智能控制交通燈畢業(yè)論文
- 基于pcl的交通燈設計畢業(yè)論文
- 畢業(yè)論文 基于plc設計的交通燈
- 畢業(yè)設計---基于spec061a的交通燈控制系統(tǒng)設計
- SPCE061A編程手冊.pdf
評論
0/150
提交評論