綜合課程設計報告基于FPGA的嵌入式51核的數(shù)字鐘設計_第1頁
綜合課程設計報告基于FPGA的嵌入式51核的數(shù)字鐘設計_第2頁
綜合課程設計報告基于FPGA的嵌入式51核的數(shù)字鐘設計_第3頁
綜合課程設計報告基于FPGA的嵌入式51核的數(shù)字鐘設計_第4頁
綜合課程設計報告基于FPGA的嵌入式51核的數(shù)字鐘設計_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于基于 fpgafpga 的嵌入式的嵌入式 5151 核的數(shù)字鐘設計核的數(shù)字鐘設計摘要摘要此次設計的數(shù)字鐘具有年、月、日、時、分、秒計數(shù)顯示功能,以 24 小時循環(huán)計時顯示;具有清零,調(diào)節(jié)小時、分鐘功能;具有整點提示、定時報警功能,使用蜂鳴器報警;由鍵盤輸入進行數(shù)字鐘設計的校時、清零、啟停功能。數(shù)字鐘在日常生活中經(jīng)常用到,可利用現(xiàn)在所學知識自行設計一個數(shù)字鐘。我們在本次實驗中采用了基于 fpga 的嵌入 51 軟核的設計方法?;?eda 技術,在 quartus ii 工具軟件環(huán)境下,采用自頂向下的設計方法,在 fpga 中嵌入 51 軟核。在 fpga 中嵌入 51 軟核后,fpga 就

2、有了 51 單片機所有的功能,就相當于在 51 單片機上進行數(shù)字鐘的設計。系統(tǒng)主芯片采用 ep2c5t144c8,由時鐘模塊、控制模塊、顯示以及報時模塊組成。經(jīng)編譯和仿真所設計的程序,在可編程邏輯器件上下載驗證。 關鍵字:關鍵字:fpga;51 軟核;整點提示;定時報警;對時目錄目錄第一章第一章 題目分析題目分析 .31.1、功能要求及指標.31.2、設計思路.3第二章第二章 方案比較與選擇方案比較與選擇 .42.1 方案一.42.2 方案二.42.3 方案三.5第三章第三章 系統(tǒng)各模塊設計系統(tǒng)各模塊設計 .63.1、8051 ip 軟核的嵌入.63.1.1 基本結(jié)構(gòu)和功能.63.1.2 80

3、51 軟核系統(tǒng)構(gòu)建和軟件測試.73.2 系統(tǒng)軟件設計.8第四章第四章 系統(tǒng)測試系統(tǒng)測試 .9第五章第五章 結(jié)論結(jié)論 .10參考文獻參考文獻 .10第一章第一章 題目分析題目分析1.11.1、功能要求及指標、功能要求及指標本設計是基于 fpga 嵌入式 51 軟核的設計性實驗。在 fpga 中嵌入 51 軟核后,fpga 就有了 51 單片機所有的功能,就相當于在 51 單片機上進行數(shù)字鐘的設計。此次設計的數(shù)字鐘具有年、月、日、時、分、秒計數(shù)顯示功能,以 24 小時循環(huán)計時顯示;具有清零,調(diào)節(jié)小時、分鐘功能;具有整點提示、定時報警功能,使用蜂鳴器報警。1.21.2、設計思路、設計思路 本設計首先

4、要解決的就是嵌入 51 軟核的問題。現(xiàn)在網(wǎng)絡上有很多現(xiàn)成的 51軟核的 vqm 程序,可以直接拿來使用。把 cpu、鎖相環(huán)、數(shù)據(jù) ram、程序rom,都放在同一片 fpga 內(nèi),從而構(gòu)成 soc 系統(tǒng),這將使系統(tǒng)的設計效率和系統(tǒng)性能獲得極大的提高,這也是現(xiàn)代電子設計技術的發(fā)展方向。其次就是單片機程序編寫的問題。在了解數(shù)字鐘所要實現(xiàn)的功能之后就可以用 c 來編寫程序,只要有一定的單片機編程基礎就可以很快寫出。圖 1 是總體設計思路框圖。圖 1 總體設計思路框圖第二章第二章 方案比較與選擇方案比較與選擇2.12.1 方案一方案一利用 eda 技術自頂向下的設計方法,完全由 vhdl/verilog

5、 hdl 硬件描述語言,在 quartus ii 開發(fā)平臺下進行編譯、仿真、下載,實現(xiàn)基本計時顯示和設置、調(diào)整時間、鬧鐘和秒表功能。系統(tǒng)主要由計數(shù)器組成,再加上控制及顯示電路實現(xiàn)數(shù)字鐘的設計。系統(tǒng)框圖如圖 2 所示。圖 2 基于 fpga 控制的系統(tǒng)框圖采用硬件描述語言和 pld 器件相結(jié)合進行數(shù)字集成電路的設計簡單方便,eda 技術的發(fā)展在一定程度上實現(xiàn)了硬件設計的軟件化。但是此方法很難實現(xiàn)整點提示這一功能,不能完全實現(xiàn)題目的要求,在定時和對時時也很麻煩,顯示界面太單一,不夠直觀。2.22.2 方案二方案二采用 at89c51 為控制核心,使用單片機的 t0 定時器來實現(xiàn)秒的計數(shù),t1產(chǎn)生

6、1khz 的報警頻率。結(jié)合相關的元器件(lcd1602 液晶顯示器、4*4 鍵盤等) ,再通過編寫單片機程序語言,達到制作數(shù)字鐘的目的。使用此方法價格便宜,但與使用 fpga 相比,前者系統(tǒng)集成度低,外圍電路復雜,功耗高。系統(tǒng)框圖如圖 3 所示。圖 3 基于單片機控制的系統(tǒng)框圖2.32.3 方案三方案三在 fpga 中嵌入 51 軟核,軟核在接上 rom、ram 和 pll 等外圍電路之后就成為一個完整的 8051 單片機。此單片機 cpu 核與傳統(tǒng) mcs-51 單片機完全兼容,但速度約為傳統(tǒng)單片機的 20 倍,優(yōu)化良好的條件下,主頻最高可達250mhz;同樣用 c 或匯編語言完成軟件設計,

7、而且系統(tǒng)集成度高,穩(wěn)定。使用 lcd1602 作顯示器,可以使顯示界面更加的直觀,多樣化。系統(tǒng)框圖如圖 4所示。圖 4 基于 51 ip 軟核控制的系統(tǒng)框圖 綜合以上分析、比較,此處選擇方案三進行設計。第三章第三章 系統(tǒng)各模塊設計系統(tǒng)各模塊設計3.13.1、80518051 ipip 軟核的嵌入軟核的嵌入3.1.1 基本結(jié)構(gòu)和功能alui/o/uartram圖 5 8051 結(jié)構(gòu)模塊框圖 圖 6 8051 原理圖元件8051 的指令系統(tǒng)與 8051/2、8031/2 等完全兼容,硬件部分也基本相同,例如可接 64kb 外部存儲器,可接 256 字節(jié)內(nèi)部數(shù)據(jù) ram,含兩個 16 位定時/計數(shù)器

8、,全雙工串口,含節(jié)省功耗工作模式,中斷響應結(jié)構(gòu)等等。結(jié)構(gòu)模塊框圖和原理圖元件分別如圖 5 和 6 所示。與普通 8051 不同之處主要有:1、8051 是以網(wǎng)表文件的方式存在的,只有通過編譯綜合,并載入 fpga 中才以硬件的方式工作,而普通 8051 總是以硬件方式存在的;2、8051 無內(nèi)部 rom 和 ram,所有程序 rom 和內(nèi)部 ram 都必須外接。3、以軟核方式存在能進行硬件修改和編輯;能對其進行仿真和嵌入式邏輯分析儀實現(xiàn)實時時序測試;能根據(jù)設計者的意愿將 cpu、ram、rom、硬件功能模塊和接口模塊等實現(xiàn)于同一片 fpga 中(即 soc) 。4、與普通 8051 不同,80

9、51 的 4 個 i/o 口是分開的。例如 p1 口,其輸入端p1i 和輸出端 p1o 是分開的,如果需要使用 p1 口的雙向口功能,必須外接一些電路才能實現(xiàn)。圖 7 所示的是單片機中的一個端口構(gòu)成的雙向口(p1 口)電路連接方法。圖 7 8051 單片機 i/o 口設置成雙向口的電路3.1.2 8051 軟核系統(tǒng)構(gòu)建和軟件測試圖 8 是 8051 核實用系統(tǒng)的最基本構(gòu)建頂層原理圖,主要由 4 個部件構(gòu)成:1、8051 核。由 vqm 原碼表述:cpu_core.vqm,可以直接調(diào)用。該元件可以與其他不同語言表述的元件一同綜合與編譯。2、嵌入式鎖相環(huán) pll50。本實驗鎖相環(huán)的頻率設置為 24

10、mhz。3、程序 rom,lpm_rom。圖 8 中設置的 rom 容量是 4k 字節(jié),對于一般的應用足夠了。此 rom 可以加載 hex 格式文件作為單片機的程序代碼。這里 hex 程序代碼由 keil 程序編譯器生成(圖中已加載了 1.hex) 。4、數(shù)據(jù) ram,lpm_ram。圖 8 中設置的 lpm_ram 容量是 256 字節(jié)。高 128字節(jié)須用間接尋址方式訪問。圖 8 8051 核實用系統(tǒng)的最基本構(gòu)建頂層原理圖向軟核中下載程序代碼有兩種方法,如下:1、quartus ii 打開的工程,在工程管理窗,雙擊圖左側(cè) rom4kb,在右側(cè)出現(xiàn)該元件文件,其初始化文件路徑指示在 1.hex

11、 上(圖 9) 。下載 sof 文件后可以測試數(shù)字鐘的功能了。圖 9 rom 初始化文件路徑2、利用 in-system memory content editor 下載。在單片機程序編譯環(huán)境keil 中修改程序 text1.c,編譯,并用“tools”菜單中的工具:in-system memory content editor(圖 10)下載編譯代碼:1.hex,再觀察軟硬件的工作情況。8051 的軟件調(diào)試也可以使用 in-system memory content editor 來完成。圖 10 利用 in-system memory content editor 下載程序 hex 代碼3

12、.23.2 系統(tǒng)軟件設計系統(tǒng)軟件設計本程序是在 keil 中,使用 c 語言編寫。以 lcd1602 為顯示器,4*4 鍵盤為輸入設備,很好的完成了數(shù)字鐘的所有功能。軟件流程圖如下所示:鍵盤掃描有鍵按下?判斷鍵值指令對時定時切換顯示否是圖 11 系統(tǒng)軟件流程圖第四章第四章 系統(tǒng)測試系統(tǒng)測試 本次設計完全實現(xiàn)了題目的所有要求,系統(tǒng)的實物圖見附錄 1。系統(tǒng)測試方法及結(jié)果如下所述:1、系統(tǒng)上電后,開機界面顯示“welcome to use!”5s。5s 之后清屏,并顯示軟件初始化時的年、月、日、時、分、秒。系統(tǒng)自動走時。實物圖見附錄2 所示。2、當按下 4*4 鍵盤上的“定時”鍵后,lcd 上出現(xiàn)提

13、示“set time:” ,然后在鍵盤上輸入要定時的時間,按下確定鍵 lcd 上顯示“set time:”+輸入的時間。如果輸入錯誤,可以按下“刪除”鍵刪除當前輸入值。實物圖見附錄 2所示。3、當按下鍵盤上的“對時”鍵后,lcd 上出現(xiàn)提示“adjust time:” ,初始化開始然后輸入要對時的時間,按下確定鍵 lcd 上顯示當前輸入的時間, “adjust time:”消失。如果輸入錯誤,可以按下“刪除”鍵刪除當前輸入值。實物圖見附錄 2 所示。4、按下鍵盤上的“取消”鍵可以取消任意時刻的對時或定時操作。5、按下鍵盤上的“切換”鍵可以切換年、月、日和定時時間的顯示。6、當時間到達之前定時時

14、間后,開始報警。由蜂鳴器發(fā)出 1khz 的報警聲音,只有按下取消鍵報警才會停止。7、具有整點報時功能。整點報時時間如果同報警時間一致,則只報警,不會整點報時。整點報時時間持續(xù) 1s,也是由蜂鳴器發(fā)出 1khz 的報警聲音。第五章第五章 結(jié)論結(jié)論經(jīng)過兩個禮拜的努力,設計出了完全符合此次題目要求的數(shù)字鐘。此數(shù)字鐘操作簡單、方便、穩(wěn)定,顯示界面也很清晰、明了。把 cpu、鎖相環(huán)、數(shù)據(jù)ram、程序 rom、接口模塊、通信模塊、顯示控制模塊、數(shù)據(jù)采樣和信號發(fā)生模塊等等,都放在同一片 fpga 內(nèi),從而構(gòu)成 soc 系統(tǒng),這將使系統(tǒng)的設計效率和系統(tǒng)性能獲得極大的提高,這也是現(xiàn)代電子設計技術的發(fā)展方向。參考

15、文獻參考文獻1 康華光 電子技術基礎 數(shù)字部分m 北京.高教出版社 2006.12 潘 松 eda 技術實用教程m.北京.科學出版社2002.103 潘 松. eda 技術與 vhdlm.北京.清華大學出版社,2005.7附錄 1:實物總體圖附錄 2:功能演示圖 附錄 3:源程序#include #include #include #include void set_time();void adjust_time();void display_day();void display_time();void display_settime();void main(void) unsigned ch

16、ar temp1=0; init(); lcd_init(); displaystring(0,0,welcome to use!); display_time();/調(diào)用顯示時間函數(shù) delay(65535);delay(65535);delay(65535);delay(65535); clear_lcd(15,0); display_day();/調(diào)用顯示日期 while(1) temp1=keyscan(); switch(temp1) case 10:temp1=0;if(flag=0) display_day();flag=1;else if(flag=1) display_set

17、time();flag=0; break;/切換定時和日期顯示 case 11:temp1=0;flag2=0;clear_lcd(15,0);display_day();tr1=0;ts=0;break;/取消報警時間 case 14:temp1=0;clear_lcd(15,0);set_time();break;/14 為定時鍵,只清屏一次 case 15:temp1=0;clear_lcd(15,0);adjust_time();break;/15 為對時鍵 default:break; void set_time(void)/時間設定子函數(shù) unsigned char i=0,tem

18、p; unsigned char l_hour,l_minite; unsigned char s_temp=0,0,0,0;/定時 displaystring(0,0,set: 00:00 ); while(1) temp=keyscan(); if(temp10&i4) s_tempi=temp; l_hour=s_temp0*10+s_temp1; l_minite=s_temp2*10+s_temp3; if(i=0) displayonechar(5,0,l_hour/10+0 x30);/將時間顯示出來 else if(i=1) displayonechar(6,0,l_h

19、our%10+0 x30); else if(i=2) displayonechar(8,0,l_minite/10+0 x30); else if(i=3) displayonechar(9,0,l_minite%10+0 x30); i+; else if(temp=13) /有確認鍵,確認輸入 displaystring(0,0,time:);flag=0; s_hour=l_hour;s_minite=l_minite; break; else if(temp=11)/輸入過程中有取消鍵,退出輸入 clear_lcd(15,0);display_day();flag=1; break; void adjust_time() unsi

溫馨提示

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

評論

0/150

提交評論