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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

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

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

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

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

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

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

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

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

10、2所示:倒計時顯示模塊s3c2440最小系統(tǒng) 交通燈循環(huán)模塊 圖2 系統(tǒng)框圖 其主程序流程圖如圖3所示:開始初始化東西南北方向黃色交通燈顯示東西南北方向紅綠交通燈顯示東西南北方向紅綠交通燈交替顯示圖3 主程序流程圖2.3顯示模塊采用共陽極七段數(shù)碼管顯示交通燈倒計時,東西、南北兩個方向各用兩個數(shù)碼管顯示時間。設(shè)置紅綠燈時間為27秒,當(dāng)南北方向綠燈倒計時為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引腳連接數(shù)碼管段選位,p0.12-p0.15引腳連接數(shù)碼管位選位。本設(shè)計采用共陽七段數(shù)碼管,故有效電平為低電平,根據(jù)引腳0xffbfffff或者0xfffbffff代表紅燈亮,其中b(1011);0xffefffff或者0xfffeffff代表紅燈亮,其中e(1110);0xffdfffff或者0xfffdffff代表紅燈亮,其中d(1101)。通過i00pin=(i00pin&0xffff0fff)(weiweishu8),將i00的32位接口按位與“ffff0fff”,把p0.12-p0.15端口清零,同時將位碼左移8位,因為在開始的位碼數(shù)組中

12、定義的值是在4-7位,但是在芯片上接口在12-15位,所以需要左移8位。i00pin=(i00pin&0xffffff00)(led_numshumessage)/比較case osm_key: onkey(pmsg-wparam, pmsg-lparam);/鍵盤消息響應(yīng) break;ostimdly(1000);/修改任務(wù)時間參數(shù)deletemessage(pmsg);/刪除消息void led_taskvoid*id)/創(chuàng)建數(shù)碼管任務(wù)隊列 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);/修改任務(wù)時間參數(shù)elseio0dir=0xbb; /黃燈亮ostimedly(500);/修改任務(wù)時間參數(shù)io0dir=oxff; /黃燈滅ostimedly(1000);/修改任務(wù)時間參數(shù)count-

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

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

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

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

溫馨提示

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

評論

0/150

提交評論