基于F2812擴展數碼管顯示設計
摘要
LED數碼管(LED Segment Displays)由多個發光二極管封裝在一起組成“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。數碼管實際上是由七個發光管組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,h來表示。
在本設計中,我們做了數碼管的設計,利用DSP芯片的GPIO口驅動數碼管,使得數碼管顯示出正確的數字,而數碼管數字的顯示,則是通過GPIO口的高低電平控制,而高低電平則是通過程序控制的。如此我們便成功設計出了基于F2812的數碼管的顯示。
目錄
一、 設計目的與任務書 1
1.1、設計目的 1
1.2、設計任務書 1
1.2.1設計技術指標要求 1
1.2.2設計要求完成以下內容 1
1.2.3設計要求 1
1.2.4整體方案設計 2
二、硬件介紹及系統配置 2
2.1、DSP特點 2
2.2、TMS320F281x芯片 2
2.2.1主要性能: 2
2.2.2芯片引腳有7大類: 2
2.2.3基本介紹 3
三、硬件電路設計 4
3.1、DSP最小系統 4
3.2、數碼管顯示模塊 6
四、設計實現程序 6
五、程序調試 7
5.1、調試過程 7
5.2、編譯結果 8
5.3、遇到的問題以及解決辦法 8
六、課程設計總結 9
6.1、課題總結 9
6.2、個人心得 9
前 言
20世紀60年代以來,隨著大規模集成電路、數字計算機等信息技術的飛速發展,數字信號處理(Digital Signal Processing , DSP)技術應運而生并得到快速發展。在過去的20多年時間里,DSP在理論和應用方面不斷的進步和完善,在越來越多的應用領域中迅速取代傳統的模擬信號處理方法,并且開辟出許多的應用領域。
由于DSP技術應用非常廣泛,迫切需要一種能高效完成復雜數字信號處理或數字系統控制,能夠作為DSP系統核心的器件。因此,眾多半導體廠商投入到高性能數字信號處理器(Digital Signal Processors,DSP)芯片的研發當中。1982年,美國德州儀器公司(Texas Instruments Incorporation,TI)推出了該公司的第一款DSP芯片,很快DSP芯片就以其數字器件特有的穩定性、可重復性、可規模集成和易于實現DSP算法等優點,為數字信號處理技術帶來了更大的發展和應用前景。
1、設計目的與任務書1.1、設計目的 如今DSP已經成為運用很廣泛的嵌入式芯片,它的功能強大,能完成很多一般芯片不能完成的數據處理,大量使用DSP已經是全球的潮流。通過課程設計,使我們綜合運用 DSP 技術課程和其他有關課程的理論和生產實際知識去分析和解決具體問題的能力得到提高,并使其所學知識得到進一步鞏固、深化和發展;初步培養學生對工程設計的獨立工作能力,學習設計的一般方法;以及鍛煉我們查閱資料、方案比較、團結合作的能力。學會簡單電路的實驗調試和整指標測試方法,增強我們的動手能力,為以后學習和工作打下基礎。 1.2、設計任務書 1.2.1設計技術指標要求(1)利用DSP的CPU硬件資源 (2)使用GPIO引腳 (3)外接直流5V的數碼管燈 1.2.2設計要求完成以下內容(1)設計說明書 (2)電路原理圖 (3)各設計模塊單元原理 (4)實驗結果動態顯示說明 (5)附錄全部元件清單 1.2.3設計要求(1)設計必須符合國家現行設計政策 (2)依據國標及有關規定 (3)在保證運行安全可靠的前提下,盡量滿足經濟性 (4)積極選用新技術低功耗產品,不得使用淘汰產品 1.2.4整體方案設計 通過對TMS320CF2812的控制以及對其引腳GPIO功能的設計,在實驗板上實現1個數碼管7段顯示。首先對TMS320C2000系列DSP的I/O口作為通用I/O的原理進行了解,并熟悉通用I/O的編程方法,了解LED動態顯示的基本原理和實現方法,最終通過CCS集成開發環境編程完成設計。 二、硬件介紹及系統配置 2.1、DSP特點 接口方便,編程方便,穩定性好,精度高,可重復性好,集成方便。 2.2、TMS320F281x芯片 2.2.1主要性能: 高性能靜態CMOS技術,JTAG邊界掃描支持,高性能的32位處理器,片內存儲器,引導ROM 4K×16位,外部存儲器接口,時鐘與系統控制,3個外部中斷,外部中斷擴展(PIE)模塊,128位的密鑰,3個32位的CPU定時器,馬達控制外圍設備,串口外圍設備,12位的ADC 16通道,最多有56個獨立的可編程、可多途通用輸入/輸出(GPIO)引腳,高級的仿真特性,開發工具,低功耗模式和節能模式,封裝方式,溫度選擇。 2.2.2芯片引腳有7大類: 19根地址總線,16根數據總線,10根XINTF控制總線,14根JTAG和其他信號,56跟GPIO或外圍信號(16根GPIOA或EVA信號,16根GPIOB或EVB信號,2根GPIOD或EVA信號,2根GPIOD或EVB信號,3根GPIOE或中斷信號,4根GPIOF或SPI信號,2根GPIOF或SCI-A信號,2根GPIOF或eCAN信號,6根GPIOF或McBSP信號,1根GPIOF或XF CPU信號,2根GPIOG或SCI-B信號) 
圖 1 TMS320F2812 芯片引腳圖 2.2.3基本介紹 TMS320F2812是一款TI高性能TMS320C28x系列32位定點DSP處理器,TL2812-EVM是基于TI TMS320F2812而研發的一款高性能DSP開發板,采用核心板+底板方式,尺寸為185mm*135mm,底板采用沉金無鉛工藝的兩層板設計,它為用戶提供了SOM-TL2812核心板的測試平臺,用于快速評估核心板的整體性能。 TMS320F28x系列DSP片上都有非常豐富的外設,每個片上外設均可產生1個或多個中斷請求。中斷由兩級組成,其中一級是PIE中斷,另一級是CPU中斷。CPU中斷有32個中斷源,包括RESET、NMI、EMUINT、ILLEGAL、12個用戶定義的軟件中斷USER1~USER12和16個可屏蔽中斷(INT1~INT14、RTOSINT和DLOGINT)。所有軟件中斷均屬于非屏蔽中斷。由于CPU沒有足夠的中斷源來管理所有的片上外設中斷請求,所以在TMS320F28x系列DSP中設置了一個外設中斷擴展控制器(PIE)來管理片上外設和外部引腳引起的中斷請求。 三、硬件電路設計 3.1、DSP最小系統 TMS320F2812是TI公司出品的數字信號處理芯片,功能強大,用于信號處理。通常情況下,DSP芯片不能獨立運行,要想使其運行,必須對其供電,并提供時鐘、復位等信號,同時還要設計程序下載調試的接口(JTAG),這些基本的外圍電路就構成了DSP最小系統。 
圖 2 DSP最小系統原理框圖 設計中使用F2812的GPIO口與數碼顯示管連接。通過數碼管共陽極與GPIO相連,驅動使其數碼管顯示。 通過程序控制,設置GPIOC引腳為輸出方式。使GPIOC引腳輸出為低電時,電源與GPIOC引腳間有電壓差,從而點亮數碼管;使GPIO引腳輸出為高電平時,電源與GPIO引腳間電壓差為0,則數碼管不顯示。 硬件設計總框圖 圖 3 硬件總框圖 外接+5V電源,晶體振蕩器頻率為30MHZ ,晶振的兩個引腳分別連接在F2812的XTAL1和XTAL2端,晶振的兩端再分別連接一個10pF電容后接地,復位電路經電源正極接10uF電容后接4.7K歐姆電阻再接地,復位端RST在電容和電阻之間。如圖5所示: 圖 4 時鐘電路 圖 5 復位電路 3.2、數碼管顯示模塊 一個共陽數碼管通過與電阻連接構成顯示驅動模塊,與TMTMS320F2812連接,進行數碼管模塊顯示如下圖所示。 圖 6 數碼管顯示電路 四、設計實現程序 
本設計的程序流程框圖如下圖所示圖 7 流程圖 五、程序調試 5.1、調試過程 (1)安裝軟件,考慮軟件版本與電腦系統相匹配,經多次嘗試選用8.3版本。 (2)添加頭文件,在ccs8.3版本中打開TOOLS,打開compiler中include文件夾,添加頭文件。 (3)編譯,添加程序,點擊bulid all,對其進行編譯。 (4)運行,對程序進行單步運行 (5)進行Proteus布圖仿真。
5.2、編譯結果
數碼管顯示程序的編譯結果如下圖: 圖 8 編譯結果 5.3、遇到的問題以及解決辦法 - 電腦系統與CCS軟件不相匹配,不支持運行。多次嘗試,找到其適合版本8.3。
- 頭文件沒有添加進工程,通過詢問,查閱資料,添加所需頭文件到工程。
六、課程設計總結 6.1、課題總結 本次課程設計,我們所選擇的題目是利用GPIO口擴展數碼管顯示的設計和實現。基于ccs8.3軟件進行程序編譯以及調試,用proteus進行仿真,完成簡單軟件仿真工作。 6.2、個人心得 本次課程設計因中間放假,實際做設計的時間較短,故此過程較為艱難。先是安排課題以及分組,課題的選擇和隊員的選擇都是自己決定,以保證課設的完成度。在收假之后,第一天便和組員去圖書館查閱資料,找到一些關于GPIO口以及數碼管的應用資料,以作參考。 安裝軟件的過程很艱難,先是安裝班長發的資料中有軟件,便試著安裝,雖不成功,卻也得到了經驗,可以在網站找到別的版本的CCS進行安裝。安裝軟件之后進行編程實踐,用老師發的編程案例進行測試軟件,可程序的頭文件老是出錯,就必須進行很多改正,先是將頭文件的添加做了很多改善,往工程中添加了許多需要用的頭文件,以便調用,使程序可以正常運行。而這多次的過程完全證明了“冰凍三尺,非一日之寒”,我在這多次的使用過程中,深刻地體會到了這些道理,并懂得其中內涵。 在本次課設的過程中,當我在遇到程序及軟件安裝中的困難時,周圍的同學都會積極的幫助我們,而隊友之間也都竭誠合作,最后我們的課程設計也算是比較成功。通過本次課程設計,我學會了軟件CCS的使用,并且對于CCS更加了解。這次課程設計,增強了我們的實踐動手能力,讓我們學會了怎樣運用自己所學的各科專業知識來完成課程設計,使我們明白了組織知識的重要性。 這次課程設計的時間雖說是短暫的,但在這幾天中我學會了不少的東西,在這一學期的學習課程中,我對于TMS320F2812芯片的了解僅僅局限于書面上的了解,對于CCS的具體使用也只是文字了解,而在這幾天的課程設計之后,我懂得了將書本知識與實際操作相結合的重要性,也自然在以后的生活中將這些道理銘記與使用。 本次課程設計中間時間間隔跨度較大,總體來說只有短短一周,對于我們來說對于DSP的認知方面仍有巨大的不足之處,但是經過一周的學習我對DSP芯片有了更加深刻的了解。以前只是通過書籍或其他消息知道DSP芯片的重要性,但是只有真正做了之后才能意識到DSP芯片的功能強大。在為期一周的課設中,我過的很充實,遇到了很多的難題,自己也在老師的引導下嘗試自己去解決困難,我覺著老師交給我們的知識很重要,老師交給我們的態度更重要。在一周課設中,老師始終貫徹的就是能力差不要緊,態度一定要端正,要學會獨立自主的解答問題。在課設過程中,我們前兩天在圖書館查閱了相關書籍,見參考文獻,除此之外還查閱了類似的實例,得到了一定的啟發。中間間隔了三天,我嘗試著裝了一下最新版本的CCS,由于系統的原因造成不能正確定義頭文件而不能編譯,老師提出了解決方法,但是由于自身能力有限,不會裝XP系統,在這個難關上我隊友就迎難而上,最終解決了這個難題,在周四上午終于完成了對程序的編譯。于是,我從周三開始就對整體方案進行設計,進行流程圖的繪制,我參考了別人的設計方案,并在隊友的討論中得出了我們自己的方案。周四的時候,上午軟件弄好了,程序在編譯的過程中有錯誤,隊友在改錯的過程中,我開始了對報告的書寫。在本次課設之中,我的能力不足是個很嚴重的問題,軟件方面真的很差,在今后的學習生活中我會大力鍛煉自己,不斷提升自己的能力。還有一個明顯的短板是,我們沒有連接實物,這是一個很大的遺憾。但是這次課設也有些許可取之處,我體會到了團隊的重要性,明白了自身的不足,加深了對這門學科的理解。 這次實驗不僅增強了我的實際動手能力,而且還讓我對于DSP有了更大的興趣,以后定將花更多的時間對其進行更深入的學習。 經過為期將近五天的課程設計,從課設選題到CCS軟件安裝,從程序調試到硬件元器件的布局,這一過程充滿了曲折與艱辛,似乎也印證了“實踐是檢驗真理的唯一標準”這句至理名言。在本次課程設計初期,我們同組隊員都面臨DSP的CCS軟件版本和電腦所裝系統不匹配問題,歷經了8.3版本,6.1版本,7.3版本,5.5版本,雖然道路不是一帆風順,但在老師,同學的幫助下效果還是可觀的,我深深感受到了集體的力量以及師生的力量。
接下來,困難更是重重,程序頭文件屢屢出錯,這也給我們小組帶來了不少打擊,我們也沒有放棄。基于程序,我們正本清源。第一次我們出錯是在system.h的頭文件,程序編譯報錯,我們清楚錯誤之后,我們在圖書館,網絡上查詢相關資料,積極研究,同時在同學的提醒下將老師發的頭文件.c以及.h文件添加到工程下面,解決了一部分錯誤,但仍然沒有將錯誤改完,過程從簡單到復雜,從多到少,反反復復,層出不窮,可能這就是課程的意義吧,讓你在不斷的實踐中不斷出錯,不斷改正,在錯誤中汲取經驗,在反復中吸收知識,而我也從DSP課程設計中獲益良多。
這次課程設計,由于時間緊張,我們都是進行軟件仿真,編程是對GPIO的相關功能進行虛擬操作,這不僅提高了我們的動手能力與學習能力,也讓我們對DSP這一課程有了更深層次的理解,獲取到相關專業知識。這次課設我認識到老師讓我們用GPIO口進行實驗的目的,GPIO模塊不僅與時鐘關系不大,沒有直接時鐘源驅動,也與中斷關系不大,這為我們更好的運用GPIO提供了一個很好的開端。這次我們通過在程序使得數碼管上的數字發生變化,來達到實驗的結果。調試編譯程序這一過程對于我們是復雜的,也是晦澀難懂的,這期間的汗水,收獲,可能也只有本人才得其中感受,在控制理論與數字的這座橋梁,使所學到的控制理論在CCS軟件中得以實現,使抽象的理論不再讓人望而生畏,與實際工程現象成為基本映射,我相信這是值得我們紀念和以后踐行的。
最后,感謝一周以來隊員的相互團結,同學的幫助,老師的教導,謝謝大家。
附錄1硬件電路圖
附錄2程序清單- #include "DSP28_Device.h"
- void WriteLED(unsigned char data); //送給數碼管的數據函數
- unsigned int * SPI_CS = (unsigned int *) 0x4500; //0X4500是CPLD的SPICS地址
- unsigned long int a;
- Uint16 SpiCode[]={0x7E7E,0x2929,0x2c2c,0x6666,0xa4a4,0xa0a0,0x3e3e,0x2020,0x2424,0x2222,0xe0e0,0xb1b1,0x6868,0xa1a1,0xa3a3,0xffff,0xdfdf};
- void main(void)
- { int k;/*初始化系統*/
- InitSysCtrl();/* 關中斷 */
- DINT;
- IER = 0x0000;
- IFR = 0x0000;/* 初始化PIE控制寄存器 */
- InitPieCtrl(); /* 初始化PIE參數表 */
- InitPieVectTable(); /* 初始化外設寄存器 */
- InitPeripherals();/*設置CPU*/
- EINT; // Enable Global interrupt INTM
- ERTM; // Enable Global realtime interrupt DBGM
- *SPI_CS=0x00; //寫0,低電平選中
- for(;;)
- { for(k=0;k<17;k++) //循環發送16個數據
- {WriteLED(SpiCode[k]); //發送數據函數
- for(a=0;a<500000;a++);
- }
- }
- }
- void WriteLED(unsigned char data)
- { if(Spi_TxReady() == 1) //當檢測到SPI發送準備信號致1時,開始發送數據
- SpiaRegs.SPITXBUF = data; //把數據寫如SPI發送緩沖區
- while( Spi_TxReady()!=1); //沒檢測到發送準備信號
- *SPI_CS=0x01; //關片選
- *SPI_CS=0x00; //退出時開片選
- }
復制代碼
完整的Word格式文檔51黑下載地址:
基于dsp的數碼管顯示課程設計報告.doc
(408.67 KB, 下載次數: 65)
2019-3-1 16:10 上傳
點擊文件名下載附件
|