計算機科學與技術帶數碼管的交通指示燈系統(tǒng)設計_第1頁
計算機科學與技術帶數碼管的交通指示燈系統(tǒng)設計_第2頁
計算機科學與技術帶數碼管的交通指示燈系統(tǒng)設計_第3頁
計算機科學與技術帶數碼管的交通指示燈系統(tǒng)設計_第4頁
計算機科學與技術帶數碼管的交通指示燈系統(tǒng)設計_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、期末大作業(yè) 題 目: 帶數碼管的交通指示燈系統(tǒng)設計 院(系): 物聯網工程學院 專 業(yè): 計算機科學與技術 班 級: 計科1105班 姓 名: 學 號: 03041105 指導老師: 莊春興 設計時間: 13-14 學年 2 學期 2014年5月目錄0 引言21 設計原理31.1 交通信號燈的工作原理31.2 s3c2440-gpio介紹31.2.1 gpxcon寄存器41.2.2 gpxdat寄存器41.2.3 gpxup寄存器41.3 帶數碼管的交通信號燈設計42 設計步驟42.1 設計思路42.2 設計框圖52.3顯示模塊62.4刷新與延時模塊73 實驗結果及結果分析73.1實驗代碼73

2、.2實驗步驟113.3結果分析114 心得體會12參考文獻120 引言 隨著科學技術發(fā)展的日新日異,arm嵌入式系統(tǒng)1已經成為當今計算機應用中空前活躍的領域,在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握嵌入式的開發(fā)技術是十分重要的。本文硬件設計,實現了利用s3c2440芯片來完成帶數碼管的交通指示燈設計2,培養(yǎng)自己綜合運用所學知識、獨立分析和解決實際問題的能力,培養(yǎng)創(chuàng)新意識和創(chuàng)新能力,并獲得科學研究的基礎訓練,加深對arm芯片的了解;熟悉arm芯片各個引腳的功能,工作方式,計數/定時,i/o口,中斷等相關原理,鞏固學習嵌入式的相關內容知識。學習led顯示控制方法并掌握基于arm

3、開發(fā)板對i/o編程的方法3。通過實驗測試可以證明本文的設計原理和設計步驟都是正確的。1 設計原理1.1 交通信號燈的工作原理 一般情況下,紅綠燈設在十字路口,或在多干道的交叉口上,目的是為了調整交叉口的交通秩序使各干道來往車輛能夠有條不紊地行駛,否則將造成意想不到的嚴重后果。當然在交叉口設置合理的紅綠燈后,也可以大大減少交通管理部門的人力、屋里。 交叉口交通信號等的基本作用:紅燈亮表示車輛、行人禁止通行,綠燈亮表示車輛、行人可以通行,綠燈轉換成紅燈前幾秒,可用黃燈亮來暗示駕駛員或行人即將禁止通行。該系統(tǒng)的屏幕時間顯示用倒計時方式表示紅綠燈的切換時間,時間顯示其的作用是協(xié)助紅綠燈工作,跟隨紅、綠

4、燈反復地進行切換。目的是為了使駕駛員和行人能夠看見紅綠燈亮的時間還剩幾秒,以便停車線以內的駕駛員和行人能夠更清楚地知道此時該繼續(xù)通行或減速,才不會使駕駛員盲目地加速或減速停車而阻礙另一干道車輛或行人的通行,從而可以提高交叉口車輛及行人的流通率,當然也可以減少事故的發(fā)生,為交通安全提供保障。 交通信號燈的工作原理:當東西組紅燈亮綠燈滅時,南北組就會綠燈亮紅燈滅。對東西組或南北組而言,每當綠燈亮轉換成紅燈亮前幾秒(具體時間視實際情況而定)黃燈亮,當綠燈滅時黃燈也同時熄滅。1.2 s3c2440-gpio介紹 gpio,通用輸入輸出(general purpose i/o)的簡稱4,其引腳可以供編程

5、使用。嵌入式系統(tǒng)中常常有數量眾多,但是結構卻比較簡單的外部設備,對這些設備的控制,有時只需要一位控制信號就夠了,即只需要開/關兩種狀態(tài)就夠了,比如燈亮與滅。對這些設備的控制,使用傳統(tǒng)的串行口和并行口都不合適。所以在微控制器芯片上一般都會提供一個“通用可編程i/o接口”,即gpio。 s3c2440有130個gpio口,分為a到j共9組:gpa、gpb、gpc.gpj。通過設置相應寄存器,可以選擇某個gpio口是用于輸入、輸出還是其他特殊功能。例如可以設置gph6作為一般的輸入、輸出端口,或者用于串口。每組gpio(gpagpj),都可以通過3個寄存器來控制與訪問,這3個寄存器分別為:gpxco

6、n:gpio配置寄存器、gpxdat:gpio數據寄存器、gpxup:上拉電阻控制寄存器(其中x為:a、b.h、j)。1.2.1 gpxcon寄存器 從寄存器的名字可以看出它屬于配置(confugure)寄存器選擇gpio口的功能。其中porta與portbportj在功能選擇方面有所不同。gpacon中每一位對應一個io口(共23個)。當某位為0時,相應的io為輸出;當某位被置為1時,相應的引腳為地址線或用于地址控制。portbportj在寄存器操作方面完全相同,gpxcon中每兩位控制一個引腳:00表示輸入,01表示輸出,10表示特殊功能,11保留不用。1.2.2 gpxdat寄存器 gp

7、xdat寄存器用于讀/寫引腳:當引腳被設置為輸入時,讀此寄存器可知相應引腳電瓶狀態(tài)是高還是低;當引腳被設為輸出時,寫此寄存器相應的位可令此引腳輸出高電平或低電平。1.2.3 gpxup寄存器 gpxup寄存器某位為1時,相應引腳無內部上拉電阻;為0時相應的引腳使用內部上拉電阻。(上拉電阻:由于管腳懸空比較容易受到外界的電磁干擾,因此通過一個電阻來將此管腳與高電平相連,讓其固定在高電平,這樣的電阻稱之為上拉電阻。)1.3 帶數碼管的交通信號燈設計 本文通過利用arm芯片模擬來實現帶數碼管的交通信號燈設計。用arm實驗箱的led和七段數碼管模擬十字路口的交通燈。將led的數碼管分成兩組,分別代表一

8、個路口的東西向和南北向紅黃綠三色交通燈。數碼管計時顯示剩余時間,綠燈顯示27秒,然后黃燈顯示3秒,紅燈顯示30秒。南北與東西向的交通燈協(xié)同工作,循環(huán)顯示,一個周期一分鐘。一個復位按鈕,按一下雙向黃燈閃爍,計時20秒后恢復到初始狀態(tài),然后繼續(xù)工作5。2 設計步驟2.1 設計思路本文是利用s3c2440arm芯片來實現帶數碼管的交通信號燈設計。 在實現紅、綠、黃燈的循環(huán)控制上,通過使用紅、黃、綠三種不同顏色的led燈實現此功能。南北方向綠、黃、紅三個燈依次接在p0.20、p0.21、p0.22上,東西方向的綠、黃、紅三個燈依次接在p0.16、p0.17、p0.18上,用軟件控制燈的亮與滅來控制車輛

9、和行人的通行。在實現用數碼管顯示倒計時的過程中,可以利用動態(tài)顯示或靜態(tài)顯示,串行并出或者并行并出實現。采用兩位數碼顯示器顯示南北方向時間,采用兩位數碼顯示器顯示東西方向時間,交通燈控制器工作流程如圖1所示:南北方向綠燈亮27秒,東西方向紅燈亮27秒南北方向黃燈亮3秒,東西方向紅燈亮3秒南北方向紅燈亮27秒,東西方向綠燈亮27秒南北方向紅燈亮3秒,東西方向黃燈亮3秒 圖1 交通燈控制器工作流程圖2.2 設計框圖 本設計采用s3c2440作為系統(tǒng)的主控芯片,控制交通燈的循環(huán)點亮時間,并采用倒計時顯示?;究驁D是主要有三部分組成:s3c2440最小系統(tǒng)、交通燈循環(huán)模塊、倒計時顯示模塊。其系統(tǒng)框圖如圖

10、2所示:倒計時顯示模塊s3c2440最小系統(tǒng) 交通燈循環(huán)模塊 圖2 系統(tǒng)框圖 其主程序流程圖如圖3所示:開始初始化東西南北方向黃色交通燈顯示東西南北方向紅綠交通燈顯示東西南北方向紅綠交通燈交替顯示圖3 主程序流程圖2.3顯示模塊采用共陽極七段數碼管顯示交通燈倒計時,東西、南北兩個方向各用兩個數碼管顯示時間。設置紅綠燈時間為27秒,當南北方向綠燈倒計時為0后,黃燈倒計時延時3秒。3秒后,南北方向交通燈變?yōu)榧t燈,而東西方向交通燈變?yōu)榫G燈,倒計時3秒整個交通燈倒計時用循環(huán)模塊無限制循環(huán)。南北方向綠、黃、紅三個燈依次接在p0.20、p0.21、p0.22上,東西方向的綠、黃、紅三個燈依次接在p0.16

11、、p0.17、p0.18上,p0.0-p0.7引腳連接數碼管段選位,p0.12-p0.15引腳連接數碼管位選位。本設計采用共陽七段數碼管,故有效電平為低電平,根據引腳0xffbfffff或者0xfffbffff代表紅燈亮,其中b(1011);0xffefffff或者0xfffeffff代表紅燈亮,其中e(1110);0xffdfffff或者0xfffdffff代表紅燈亮,其中d(1101)。通過i00pin=(i00pin&0xffff0fff)(weiweishu8),將i00的32位接口按位與“ffff0fff”,把p0.12-p0.15端口清零,同時將位碼左移8位,因為在開始的位碼數組中

12、定義的值是在4-7位,但是在芯片上接口在12-15位,所以需要左移8位。i00pin=(i00pin&0xffffff00)(led_numshumessage)/比較case osm_key: onkey(pmsg-wparam, pmsg-lparam);/鍵盤消息響應 break;ostimdly(1000);/修改任務時間參數deletemessage(pmsg);/刪除消息void led_taskvoid*id)/創(chuàng)建數碼管任務隊列 int eastwest = 1; /正為東西綠燈亮,負為難背綠燈亮 count = 30; /紅綠燈備亮30秒 for(;) /死循環(huán)if(coun

13、t0)if(is_ working = =true) /東西通行if(eastwest0) if(count4) io0dir=0xeb; /東西綠燈,南北黃燈 else io0dir=0xe7; /東西綠燈,南北紅燈else/南北通行if(count4) io0dir=0xbe; /東西黃燈,南北綠燈else io0dir = 0x7e; /東西紅燈,南北綠燈ostimedly(1500);/修改任務時間參數elseio0dir=0xbb; /黃燈亮ostimedly(500);/修改任務時間參數io0dir=oxff; /黃燈滅ostimedly(1000);/修改任務時間參數count-

14、; e1seis_ working = ture /工作狀態(tài)eastwest = -eastwest;count=30;void onkey(int nkey,int fnkey) /鍵盤消息處理函數(if(nkey = =15)is_ working=false; /工作狀態(tài)為復位狀態(tài)count=20; /計時設為20秒3.2實驗步驟1.在ads1.2中,使用已經創(chuàng)建好的模板,新建一個項目traffic。把操作系統(tǒng)所需要的頭文件和庫文件加入工程中。2.把交通燈文件夾中的c語言源文件加入。3.打開main.c文件,在main( )數中創(chuàng)建3個任務:(1) key_task負責接收鍵盤消息,執(zhí)行

15、工作狀態(tài)的控制;(2) led_task負責發(fā)光二極管的顯示,同時負責每秒將count時間計數器減1;(3) display_task負責數碼管的動態(tài)顯示,顯示count剩余時間。全局變量count用來記錄剩余時間;全局變量is_working用來控制工作狀態(tài)。led_task任務局部變量eastwest用來記錄當前通行方向,1為東西向,-1為南北向。4.在key_task任務中添加代碼,主要任務是初始化一些變量,啟動消息循環(huán),等待鍵盤掃描任務發(fā)來的消息(osm_ key),并調用onkey函數進行處理。5.完成交通燈控制任務和數碼管顯示任務。數碼管顯示任務交替顯示計時的十位和個位。交通燈控制

16、任務實現通行方向的控制。6.用ads1.2編譯、下載并調試上述程序,檢查運行結果。7.生成*.bin文件,通過usb下載到嵌入式開發(fā)板中,運行并檢查輸出結果。3.3結果分析 代碼成功運行后可以觀察到led的數碼管被分成了兩組,它們分別代表一個路口的東西向和南北向紅黃綠三色交通燈。數碼管計時顯示剩余時間,綠燈顯示27秒,然后黃燈顯示3秒,紅燈顯示30秒。南北與東西向的交通燈可以協(xié)同工作,循環(huán)顯示,一個周期一分鐘。按一下復位按鈕雙向黃燈閃爍,計時20秒后恢復到初始狀態(tài),然后繼續(xù)工作。實驗可以證明本文的設計原理和步驟都是正確的,能達到預期的設計目標。4 心得體會 回顧帶數碼管的交通指示燈設計的過程,

17、我受益匪淺。不僅培養(yǎng)了我綜合運用所學知識、獨立分析和解決實際問題的能力,而且還培養(yǎng)創(chuàng)新意識和創(chuàng)新能力,讓我進一步了解所選擇的arm芯片各個引腳功能,工作方式,計數/定時,i/o口,中斷等的相關原理,并鞏固學習嵌入式的相關內容知識。同時也讓我親自將書本上的理論和實際操作相結合,通過軟硬件設計實現利用arm芯片完成帶數碼管的交通燈控制功能。首先,我通過查閱相關文獻資料,熟悉所選arm芯片。其次,在總體設計步驟中,設計車輛遇到紅燈停綠燈行情況,紅綠燈時間均為30s,黃燈閃爍時間為5s。再次,了解了系統(tǒng)硬件設計,熟悉勒i/o接口以及定時器計數器工作原理。最后,對系統(tǒng)軟件的設計包括交通信號燈的工作流程軟件實現,用c語言編程進一步提高了我的計算能力,繪圖能力,熟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論