DSP交通燈課程設(shè)計_第1頁
DSP交通燈課程設(shè)計_第2頁
DSP交通燈課程設(shè)計_第3頁
DSP交通燈課程設(shè)計_第4頁
DSP交通燈課程設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電子信息工程專業(yè)CDIO三級項目項目設(shè)計說明書(2011/2012學(xué)年第二學(xué)期)項目名稱 : DSP應(yīng)用系統(tǒng) 題 目 : DSP控制交通燈的顯示 專業(yè)班級 : 電子信息工程09-1班 學(xué)生姓名 : 學(xué) 號: 指導(dǎo)教師 : 設(shè)計周數(shù) : 2周 設(shè)計成績 : 2012年7月6日 目 錄一 設(shè)計目的.2二 系統(tǒng)分析.2 2.1設(shè)計要求.2 2.2設(shè)計思想.2三 總體設(shè)計.3 3.1系統(tǒng)框圖設(shè)計.3 3.2總電路圖設(shè)計.3 3.3最小系統(tǒng)圖.4四 課程設(shè)計原理.4 4.1系統(tǒng)工作原理.4 4.2. 系統(tǒng)工作狀態(tài).4五 元器件選擇.6 5.1所要元器件.6 5.2模塊性能分析.7 521、TMS320F

2、2812 DSP芯片.7522、CD4511.7523、LED.9524數(shù)碼管驅(qū)動電路.9525外擴(kuò)電路.10六 運(yùn)行描述.10七 軟件設(shè)計.107.1程序流程圖.127.2程序代碼.13八 設(shè)計總結(jié).17九 參考文獻(xiàn).17附錄.18一、 設(shè)計目的DSP課程設(shè)計對我們DSP的學(xué)習(xí)有這非常重要的意義。(1)通過交通燈的設(shè)計,進(jìn)一步加深、鞏固學(xué)生所學(xué)專業(yè)課程DSP控制器及其應(yīng)用的基本理論知識,理論聯(lián)系實際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題和解決問題的能力。(2)熟悉使用TMS320F2812控制交通燈的方法。(3)利用DSP開發(fā)環(huán)境CCS C2000對源程序文件進(jìn)行編譯、鏈接、裝載調(diào)試,以完成基本的DS

3、P項目文件設(shè)計。(4)通過此次課程設(shè)計,學(xué)習(xí)DSPf2812芯片的I/O端口控制方法,熟悉字模的簡單構(gòu)建和使用,熟悉Emulator方式下的程序調(diào)試規(guī)程,并能最終熟悉掌握在DSP軟硬件環(huán)境下的程序開發(fā)流程,達(dá)到學(xué)以致用的目的。二 系統(tǒng)分析21、設(shè)計要求2.1.1設(shè)計任務(wù)設(shè)計一個十字路口交通燈(帶一個倒計時數(shù)碼管),每個方向有三色(紅、黃、綠);實現(xiàn)交通燈雙向車道紅綠燈切換功能、交通燈全亮功能、數(shù)碼管全亮功能;保證每次切換倒計時9秒,且綠燈變紅燈前2秒黃燈閃爍1次,并在此時熄滅綠燈。2.1.2設(shè)計要求用CCS2.2以上版本運(yùn)行環(huán)境,ANSIC/C+語言編寫;用DSPF2812B開發(fā)板調(diào)用GPIO

4、通用輸入輸出多用復(fù)用器進(jìn)行調(diào)制;采用內(nèi)部時鐘實現(xiàn)計時功能;采用字模查詢方式顯示數(shù)字。22、設(shè)計思想根據(jù)DSP的硬件中斷、定時器、I/O訪問的原理,用定時器定時。2812的十個引腳,其中A口的六個引腳GPIOA0、GPIOA1、GPIOA2、GPIOA3、GPIOA4、GPIOA5控制二極管的狀態(tài),B口的四個引腳GPIOB0、GPIOB1、GPIOB2控制數(shù)碼管的顯示,二極管低電平有效,GPIO的端口均為輸出,在實驗箱上交通燈模塊由高8位數(shù)據(jù)線控制:南北紅燈D9、D11為高,南北黃燈D9、D11、D13、D15為高,南北綠燈D13、D15為高,東西紅燈D8、D10為高,東西黃燈由D8、D10、D

5、12、D14為高,東西綠燈D12、D14為高。交通燈模塊的I/O地址:0x5008h三、 總體設(shè)計3.1、系統(tǒng)框圖設(shè)計該系統(tǒng)包括DSPF2812芯片,CD4511驅(qū)動器,首先對DSP進(jìn)行初始化,等待中斷,然后I/O口輸出高電平驅(qū)動信號燈發(fā)亮,定時模塊采用硬件定時和軟件定時相結(jié)合的方法,用DSP定時/計數(shù)計時,再用軟件實現(xiàn)所需的定時。CD4511驅(qū)動數(shù)碼管DSPF2812 圖3-1 系統(tǒng)框圖信號燈 3.2、總電路圖設(shè)計 圖3-2 總體電路圖其中s1s5為按鍵,R1R5對管腳起保護(hù)作用。該鍵盤為獨(dú)立式鍵盤,分別和DSP芯片的GPIO管腳PWM1、PWM2、PMW3、PWM4、PWM5相連接命令控制

6、擴(kuò)展接口的地址為0X108001,數(shù)據(jù)控制擴(kuò)展接口的地址為0X108003、0x108004,輔助控制擴(kuò)展接口的地址為0X108002。因為DSP芯片的允許電壓為3.3V,所以該鍵盤外接3.3V的電源。設(shè)置GPIO相應(yīng)管腳為輸入或輸出模式,DSP芯片外接LCD作為輸出,外接5個單按鍵作為輸入。在程序中構(gòu)建漢字字模,并能夠使用查找法提取。3.3、最小系統(tǒng)圖圖3-3 DSP最小系統(tǒng)四、 課程設(shè)計原理4.1 系統(tǒng)工作原理 芯本設(shè)計硬件由定時模塊、發(fā)光二極管模塊、數(shù)碼管顯示模塊和緊急中斷模塊組成。信號燈受片中輸出高低電平的控制。當(dāng)鎖存器I/O口輸出為高電平時,他所驅(qū)動的信號燈即發(fā)光二極管就會亮起來。定

7、時模塊采用硬件定時和軟件定時相結(jié)合的方法,用DSP定時/計數(shù)器定時100ms,再用軟件計時實現(xiàn)所需的定時。發(fā)光二極管模塊由DSP控制發(fā)光二極管來實現(xiàn)。數(shù)碼管顯示模塊由實驗平臺上的LED顯示模塊實現(xiàn)。緊急中斷模塊是由單脈沖發(fā)生單元和DSP中斷控制器組成。信號燈開始工作,東西紅燈亮9秒,南北綠燈亮9秒,到8秒時,東西黃燈亮一次,時間一秒;東西紅燈亮維持9秒,南北綠燈亮維持9秒,到8秒時,南北黃燈閃一次,時間一秒。緊接著開始第二周期的動作,以后周而復(fù)始的循環(huán)。4.2. 系統(tǒng)工作狀態(tài)狀態(tài)一:南北綠燈、東西紅燈,延時9秒;如圖所示: 圖4-1狀態(tài)一狀態(tài)二:南北黃燈、東西紅燈,持續(xù)1秒;如圖所示: 圖4-

8、2 狀態(tài)二狀態(tài)三:東西綠燈、南北紅燈,延時9秒;如圖所示: 圖4-3狀態(tài)三狀態(tài)四:東西黃燈、南北紅燈,持續(xù)1秒;如圖所示: 圖4-4狀態(tài)四返回狀態(tài)一五、 元器件選擇5.1 所要元器件表5-1 所需器件2812 DSP芯片 一個CD4511芯片 1個LED數(shù)字顯示器 1個 電阻 13個 二極管 6個 導(dǎo)線 若干52、模塊性能分析521、TMS320F2812 DSP芯片 2812的十個引腳,其中A口的六個引腳GPIOA0、GPIOA1、GPIOA2、GPIOA3、GPIOA4、GPIOA5控制二極管的狀態(tài),B口的四個引腳GPIOB0、GPIOB1、GPIOB2控制數(shù)碼管的顯示。 圖5-1 F28

9、12部分引腳522、CD4511CD4511是一個用于驅(qū)動共陰極 LED (數(shù)碼管)顯示器的 BCD 碼七段碼譯碼器,特點(diǎn):具有BCD轉(zhuǎn)換、消隱和鎖存控制、七段譯碼及驅(qū)動功能的CMOS電路能提供較大的拉電流??芍苯域?qū)動LED顯示器。CD4511是一片CMOS BCD鎖存/7 段譯碼/驅(qū)動器,引腳排列如圖2.2所示。其中a、 b、 c、 d 為 BCD 碼輸入,a為最低位。LT為燈測試端,加高電平時,顯示器正常顯示;加低電平時,顯示器一直顯示數(shù)碼“8”,各筆段都被點(diǎn)亮,以檢查顯示器是否有故障。BI為消隱功能端,低電平時使所有筆段均消隱,正常顯示時, B1端應(yīng)加高電平。另外 CD4511有拒絕偽碼

10、的特點(diǎn),當(dāng)輸入數(shù)據(jù)越過十進(jìn)制數(shù)9(1001)時,顯示字形也自行消隱。LE是鎖存控制端,高電平時鎖存,低電平時傳輸數(shù)據(jù)。ag是 7 段輸出,可驅(qū)動共陰LED數(shù)碼管。另外,CD4511顯示數(shù)“6”時,a段消隱;顯示數(shù)“9”時,d段消隱,所以顯示6、9這兩個數(shù)時,字形不太美觀 圖3是 CD4511和CD4518配合而成一位計數(shù)顯示電路,若要多位計數(shù),只需將計數(shù)器級聯(lián),每級輸出接一只 CD4511 和 LED 數(shù)碼管即可。所謂共陰 LED 數(shù)碼管是指 7 段 LED 的陰極是連在一起的,在應(yīng)用中應(yīng)接地。限流電阻要根據(jù)電源電壓來選取,電源電壓5V時可使用300的限流電阻。1 CD4511引腳圖 圖5-2

11、 CD4511 CD4511引腳功能介紹如下: BI:4腳是消隱輸入控制端,當(dāng)BI=0 時,不管其它輸入端狀態(tài)如何,七段數(shù)碼管均處于熄滅(消隱)狀態(tài),不顯示數(shù)字。LT:3腳是測試輸入端,當(dāng)BI=1,LT=0 時,譯碼輸出全為1,不管輸入 DCBA 狀態(tài)如何,七段均發(fā)亮,顯示“8”。它主要用來檢測數(shù)碼管是否損壞。 LE:鎖定控制端,當(dāng)LE=0時,允許譯碼輸出。 LE=1時譯碼器是鎖定保持狀態(tài),譯碼器輸出被保持在LE=0時的數(shù)值。A1、A2、A3、A4為8421BCD碼輸入端。 a、b、c、d、e、f、g為譯碼輸出端,輸出為高電平1有效。CD4511的工作原理CD4511的工作真值表如表5-2所示

12、表5-2 CD4511真值表輸 入輸 出LEBILIA3A2A1A4abcdefg顯示XX0XXXX11111118X01XXXX0000000消隱01100001111110001100010110000101100101101101201100111111001301101000110011401101011011011501101100011111601101111110000701110001111111801110011110011901110100000000消隱01110110000000消隱01111000000000消隱01111010000000消隱011111000000

13、00消隱01111110000000消隱111XXXX鎖 存鎖存5.2.3、LED 通過LED的亮的情況來控制通行的狀態(tài),紅燈亮?xí)r,所有的車不允許通過,延時九秒后綠燈亮?xí)r才允許通過。紅燈轉(zhuǎn)換綠燈時直接轉(zhuǎn)換,綠燈轉(zhuǎn)換為紅燈時中間要有兩秒的黃燈作為過渡。5.2.4數(shù)碼管驅(qū)動電路圖5-3 數(shù)碼管驅(qū)動電路5.2.5外擴(kuò)電路圖5-4 外擴(kuò)電路六、 運(yùn)行描述6.1運(yùn)行過程:(1)首先檢查自己的個人計算機(jī),需在Windows XP下安裝CCS運(yùn)行環(huán)境。(2)本次DSP課程設(shè)計我們用的是CCS2.2版本的環(huán)境。(3)安裝好CCS2.2后,需對計算機(jī)經(jīng)行相關(guān)配置,然后在simulator模式下經(jīng)行電路調(diào)試。并且

14、安裝相關(guān)驅(qū)動文件。(4)寫入設(shè)計好的程序,并在CCS環(huán)境下經(jīng)行編譯,調(diào)試,知道調(diào)試沒有錯誤。(5)對實際電路經(jīng)行設(shè)計,用Protel畫出電路原理圖。(6)按照電路原理圖對事物經(jīng)行正確焊接,焊接時一定要小心,要按照要求,防止出現(xiàn)虛焊、漏焊等錯誤。(7)打開DSP試驗箱電源,按照先前設(shè)計的電路原理圖連接電路,其中電源部分應(yīng)在確定電壓為3.3V或小于3.3V時連接芯片電源,然后拷入剛才運(yùn)行成功后的程序。(8)在project中選擇正確的儲存路徑打開寫好的程序。(9) 由2812的各引腳來控制二極管的亮滅,各管腳分別調(diào)用相應(yīng)程序來控制LCD的顯示;二極管低電平有效,南北紅燈亮?xí)r東西綠燈亮。(10)實物

15、電路圖如下:圖6-1 實物電路圖6.2調(diào)試過程中遇到的問題:由于在這次DSP課程設(shè)計之前,我們并沒有使用過CCS調(diào)試環(huán)境,所以這會初次使用也遇到了不少問題。(1)DSP試驗箱使用需注意的一些問題: 1)DSP 電源和地連接正確。2)DSP 時鐘正確。3)DSP 的主要控制信號,如RS 和HOLD 信號接高電平。4)C2000 的watchdog 關(guān)掉。5)不可屏蔽中斷NMI 上拉高電平。(2)調(diào)試過程中我們組遇到的問題1)一開始,我們的計算機(jī)連接不上試驗箱,程序不能正確拷入,怎么試都不行,后來上網(wǎng)查閱資料,才發(fā)現(xiàn)時驅(qū)動程序沒有安裝好,我們又下載了配套的驅(qū)動程序,這個問題才得以成功的解決。2)程

16、序下載成功后,我們發(fā)現(xiàn)數(shù)碼管不亮,然后我們便開始調(diào)程序,可是自己始終找不到原因。然后去找老師幫忙,在老師的幫助下,我們終于找到了問題所在,原來我們把引腳都設(shè)置成輸出了,在老師的指導(dǎo)下我們經(jīng)行了改正。 可是這個問題剛解決,就又出現(xiàn)了數(shù)碼管不能按照計劃規(guī)律的顯示數(shù)字來倒計時,顯示的都是亂碼的問題,經(jīng)過我們仔細(xì)的檢查,發(fā)現(xiàn)是我們將4511芯片的引腳接錯了順序。經(jīng)過幾次的改正,終于達(dá)到了設(shè)計要求,全組人員十分高興。七、 軟件設(shè)計7.1 程序流程圖程序流程圖如下: 開始初始化DSP南北紅燈亮,東西綠燈亮紅綠燈各延時九秒紅燈變?yōu)榫G燈,綠燈變黃再變紅,數(shù)碼管重新計時 圖7-1程序流程圖7.2 程序代碼#in

17、clude DSP281x_Device.h / DSP281x Headerfile Include File#include DSP281x_Examples.h / DSP281x Examples Include Fileinterrupt void cpu_timer0_isr(void);#define LEDS *(int *)0xc0000int flag=1;int i=9,nCount;unsigned int uLBD;Uint16 a ;Uint16 b ;unsigned int Led10=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x0

18、7,0x08,0x09;/09碼字/Uint16 var1= 0x0000,var2=0xffff; / sets GPIO Muxs as I/Osvoid main(void) uLBD=nCount=0; InitSysCtrl(); /初始化cpu. InitPieCtrl(); /初始化向量表.初始化Pie寄存器. IER = 0x0000; /復(fù)位,中斷使能寄存器IER,中斷標(biāo)志寄存器IFR.用于將Pie中斷服務(wù)復(fù)位. IFR = 0x0000; InitPieVectTable(); /初始化中斷向量表. EALLOW;/關(guān)閉寄存器保護(hù),與EDIS配合使用. PieVectTab

19、le.TINT0 = &cpu_timer0_isr; /打開TINT0,地址指針指向前面向向量,前后名字一致. EDIS; /打開寄存器保護(hù). CpuTimer0.RegsAddr = &CpuTimer0Regs;CpuTimer0Regs.PRD.all = 0xffff; /PRD周期寄存器CpuTimer0Regs.TPR.all = 0; /TPR,8位到15位是PSC,0位到7位是TDDR.CpuTimer0Regs.TIM.all = 0; /TIM計數(shù)寄存器,存放計數(shù)值CpuTimer0Regs.TPRH.all = 0; /TPR的高16位 CpuTimer0Regs.TC

20、R.bit.TSS = 1; /TCR控制寄存器,TSS=1表示關(guān)閉定時器,TSS=0時啟動CpuTimer0Regs.TCR.bit.SOFT = 1; /SOFT和FREE同時使用,都是1的時候自由運(yùn)行CpuTimer0Regs.TCR.bit.FREE = 1;CpuTimer0Regs.TCR.bit.TRB = 1; /TRB重裝載位,=1自動裝載周期寄存器的值CpuTimer0Regs.TCR.bit.TIE = 1; /中斷使能計數(shù)器,減到0自動為1請求中斷.CpuTimer0.InterruptCount = 0; /計數(shù) StartCpuTimer0();/執(zhí)行宏定義,TSS

21、=0時的操作,開始定時器計數(shù) IER |= M_INT1;/賦值0X0001 PieCtrlRegs.PIEIER1.bit.INTx7 = 1;/按位操作,7位 /打開全局中斷 EINT; / Enable Global interrupt INTM ERTM; / Enable Global realtime interrupt DBGM *(int *)0x108000=0;/ 初始化ICETEK-CTR *(int *)0x108000=0x80; *(int *)0x108000=0; *(int *)0x108007=0;/ 關(guān)閉東西方向的交通燈 *(int *)0x108007=

22、0x40; / 關(guān)閉南北方向的交通燈 EALLOW; GpioMuxRegs.GPAMUX.all=var1; / Configure MUXs as digital I/Os or GpioMuxRegs.GPBMUX.all=var1; / peripheral I/Os /MUX表示工作方式,兩種工作方式:外設(shè)和I/O,相應(yīng)位為外設(shè),為0是I/O GpioMuxRegs.GPADIR.all=var2; / GPIO PORTs as output GpioMuxRegs.GPBDIR.all=var2; / GPIO DIR select GPIOs as output /DIR表示方

23、向,輸入還是輸出管教,相應(yīng)位為1為輸出,為0是輸入 EDIS; while ( 1 ) /等待中斷 GpioDataRegs.GPADAT.all=a; GpioDataRegs.GPBDAT.all=b; interrupt void cpu_timer0_isr(void)/中斷先聲明后定義 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;/中斷應(yīng)答寄存器 CpuTimer0Regs.TCR.bit.TIF = 1;/中斷標(biāo)志位 CpuTimer0Regs.TCR.bit.TRB = 1;/重裝載位 if ( nCount=0 ) b=Ledi; i-;if(flag=1) if(i=3) a=0x21; else if(i=2) a=0x11; else if(i=1) a=0x01; else if(i=0) a=0x09; flag=0; i=9; if(flag=0) if(i=3) a=0x0C; else if(i=2) a=0x0A; else if(i=1) a=0x08; else if(i=0) a=0x09; flag=1; i=9; nCount+; nCount%=

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論