![課程設計基于FPGA的數(shù)碼管十進制顯示講解_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/98409e3a-66d8-4b15-a7ed-18d3dd1ced02/98409e3a-66d8-4b15-a7ed-18d3dd1ced021.gif)
![課程設計基于FPGA的數(shù)碼管十進制顯示講解_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/98409e3a-66d8-4b15-a7ed-18d3dd1ced02/98409e3a-66d8-4b15-a7ed-18d3dd1ced022.gif)
![課程設計基于FPGA的數(shù)碼管十進制顯示講解_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/98409e3a-66d8-4b15-a7ed-18d3dd1ced02/98409e3a-66d8-4b15-a7ed-18d3dd1ced023.gif)
![課程設計基于FPGA的數(shù)碼管十進制顯示講解_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/98409e3a-66d8-4b15-a7ed-18d3dd1ced02/98409e3a-66d8-4b15-a7ed-18d3dd1ced024.gif)
![課程設計基于FPGA的數(shù)碼管十進制顯示講解_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/13/98409e3a-66d8-4b15-a7ed-18d3dd1ced02/98409e3a-66d8-4b15-a7ed-18d3dd1ced025.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、中北大學課程設計說明書學生姓名:金博楠學 號:0906024139學 院 :電子與計算機科學技術學院專 業(yè) :微電子題 目 :利用鍵盤控制數(shù)碼管進行十進制數(shù)字顯示指導教師: 崔永俊 職稱 : 副教授2012 年 6 月 22 日目錄1、課程設計的目的 12、課程設計內(nèi)容和要求 12.1 、設計內(nèi)容 12.2 、設計要求 13、設計方案及實現(xiàn)情況 13.1 、設計思路 13.2 、工作原理及框圖 13.3 、各模塊功能描述 33.4 、仿真結(jié)果 93.5 、試驗箱驗證情況 104、課程設計總結(jié) 115、參考文獻 121、課程設計的目的1)、學習操作數(shù)字電路設計實驗開發(fā)系統(tǒng),掌握數(shù)碼管顯示模塊的工
2、作原理及應用。2)、掌握組合邏輯電路、時序邏輯電路的設計方法。3)、學習掌握可編程器件設計的全過程。2、課程設計內(nèi)容和要求2.1 、設計內(nèi)容1)、學習掌握鍵盤控制模塊、數(shù)碼管顯示模塊的工作原理及應用;2)、熟練掌握 VHDL編程語言,編寫鍵盤控制模塊的控制邏輯。2.2 、設計要求1)、仿真所編寫的程序,模擬驗證所編寫的模塊功能;2)、下載程序到芯片中,硬件驗證所設置的功能,能夠?qū)崿F(xiàn)十進制數(shù)的顯示;3)、整理設計內(nèi)容,編寫設計說明書。3、設計方案及實現(xiàn)情況3.1 、設計思路1)、鍵盤不斷掃描,有按鍵按下則輸出相應信號,并且發(fā)出使能信號給處理模塊。2)、處理模塊對收到的信號進行判斷,決定執(zhí)行什么操
3、作,對數(shù)據(jù)進行運算。3)、對于數(shù)字鍵需要移位顯示,功能鍵要考慮優(yōu)先級判斷,進行倒計時操作時要能對時 鐘信號分頻自減。4)、專門的程序段用來不斷將當前數(shù)據(jù)各位求出,譯碼成顯示內(nèi)容輸給數(shù)據(jù)選擇模塊。5)、數(shù)據(jù)選擇模塊根據(jù)掃描電路選擇信號將各位數(shù)字顯示出來。3.2 、工作原理及框圖1、鍵盤原理鍵盤電路網(wǎng)絡很像一臺微縮的計算機,它擁有自己的處理器和在該處理器之間傳輸 數(shù)據(jù)的電路,這個電路的很大一部分組成了鍵矩陣。鍵矩陣是位于鍵下方的一種電路網(wǎng) 格。在所有的鍵盤(中,每個電路在每個按鍵所處的位置點下均處于斷開狀態(tài)。當您按 下某個鍵時,此按鍵將按下了開關,從而閉合電路,使得少量電流可以通過。開關的機 械作
4、用會導致某種振動(稱作回彈) ,處理器可以過濾掉這種振動。如果您按下某鍵并保持住,則處理器認為您是在反復按下該鍵。試驗箱上的鍵盤可以看做是 8*4 的矩陣鍵盤(雖然外部不是),8行由 38 譯碼器選擇,所以有外部 sel0-2 三根線控制掃描。2、鍵盤中按鍵的判斷 對于鍵盤中有無鍵按下的判斷是很重要的,具體判斷如下:將全部行線置低電平, 然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的 鍵位于低電平線與行線相交叉的按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電 平,即在置某根行線為低電
5、平時,其它線為高電平。在確定某根行線位置為低電平后, 再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與低電平的行線交叉處的按鍵就 是閉合的按鍵。鍵盤掃描模塊在時鐘下不斷將行置零,掃描列的狀態(tài),判斷按鍵。Sel2-0Kin3-0對應按鍵00011100001111010101110201111103110111041111110500011016001110173、鍵盤按鍵對應的編碼Sel2-0Kin3-0對應按鍵10011018101110191101011NEXT0001011LAST1111011ENTER1011110ESC1101101A(+)1111101B(-)4、數(shù)據(jù)處理 鍵盤
6、掃描模塊檢測到按鍵按下后,給下級發(fā)出使能脈沖,同時將按鍵信息給數(shù)據(jù)處理模 塊。根據(jù)按鍵不同進行不同處理。數(shù)字鍵按下時,要進行移位操作;加減鍵按下時要進行寄存操作;自加減鍵按下是要進 行加減 1 操作;清零鍵按下時要進行全部清零;確認鍵按下時要進行計算操作或者倒計時操 作。這就需要設立一些標志位來判斷。計算采用一位 BCD形式計算,進借位標志位輔助,這樣比用實數(shù)計算后轉(zhuǎn) BCD形式的電路簡單高效。處于倒計時模式時,引入外部時鐘,內(nèi)部分頻后自減一操作。5、多路選擇顯示 四個需要顯示的數(shù)碼管的值始終輸入,通過片選決定某一時刻那個值輸出。選擇信號即 為掃描輸出信號,因為數(shù)碼管和鍵盤是共用一個掃描端。所
7、以當掃描信號選中相應數(shù)碼管時 讓對應值輸出即可。6、整體電路結(jié)構(gòu)框圖圖 1. 原理圖框架3.3 、各模塊功能描述掃描模塊:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;- 輸入時鐘- 有鍵按下時輸出使能ENTITY scan ISPORT(clk:IN STD_LOGIC;en:OUT STD_LOGIC;data:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); slk:OUT STD_LOGIC_VECTOR(2 D
8、OWNTO 0); kin:IN STD_LOGIC_VECTOR(3 DOWNTO 0); END scan;ARCHITECTURE behave OF scan IS BEGINPROCESS(clk)VARIABLE pslk:STD_LOGIC_VECTOR(2 DOWNTO 0);VARIABLE p:STD_LOGIC_VECTOR(6 DOWNTO 0);VARIABLE i:INTEGER RANGE 0 TO 7;VARIABLE rel:INTEGER RANGE 0 TO 300;- 輸出按鍵信息- 數(shù)碼管選擇端口- 鍵盤響應輸入端口- 掃描變量- 按鍵信息變量- 掃描
9、循環(huán)變量- 重復按鍵延時變量VARIABLE int:STD_LOGIC;BEGINIF(clkEVENT AND clk=1)THEN IF(rel=300)THEN- 按鍵中斷變量-500HZ 的時鐘信號上升沿觸發(fā)- 兩次按鍵產(chǎn)生有效的最短時間,延時避免重復觸發(fā)rel:=rel;ELSErel:=rel+1;END IF;IF(i=7)THEN - 掃描信號為 000111,8 次循環(huán)掃描 slkdatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadataNULL;END CASE;en=1;END IF;ELSE- 消抖
10、后再次確認有鍵按下- 結(jié)合 slk 和 kin 的信息判斷哪個鍵按下- 判斷按鍵信息-0-1-2-3-4-5-6-7-8-9-10-NEXT-11-LAST-12-ENTER-13-ESC-14-A(+)-15-B(-)- 產(chǎn)生脈沖信號END LOOP;enbit0bit0bit0bit0bit0bit0bit0bit0bit0bit0bit09)THENc2:=1; zz:=zz-10;ELSEc2:=0;END IF;z:=zz;END PROCEDURE add;PROCEDURE sub(a:IN INTEGER;b:IN INTEGER; c1:IN INTEGER RANGE 0
11、TO 2; z:OUT INTEGER;c2:OUT INTEGER RANGE 0 TO 2)IS VARIABLE zz:INTEGER;BEGINzz:=a-b-c1;IF(zzn:=0;IF(a=1)THENa:=0;add(q1,p1,0,q1,c);add(q2,p2,c,q2,c);add(q3,p3,c,q3,c);add(q4,p4,c,q4,c);ELSIF (b=1)THEN b:=0; sub(p1,q1,0,q1,c); sub(p2,q2,c,q2,c); sub(p3,q3,c,q3,c); sub(p4,q4,c,q4,c);ELSIF (r=0)THENr:=
12、1;ELSE- 時鐘信號上升沿觸發(fā)檢查端口狀態(tài)- 使能信號有效,且重復屏蔽信號關閉時響應按鍵信息- 按鍵為“ enter ”鍵,執(zhí)行求結(jié)果,倒計時啟動暫停功能- 解除加減法待操作狀態(tài)- 有加法則進行加法運算- 加法標志位清零- 被加數(shù)與加數(shù)求和- 有減法則進行減法運算- 減法標志位清零- 被減數(shù)與減數(shù)作差- 沒有加減法操作又不在倒計時狀態(tài)則啟動倒計時- 否則為在倒計時狀態(tài), “ enter ”鍵功能為暫停r:=0; END IF; WHEN 1110 = IF (r=0)THEN a:=1;b:=0;n:=1;x_to_y(q1,q2,q3,q4,p1,p2,p3,p4); x_to_y(0,
13、0,0,0,q1,q2,q3,q4);END IF;WHEN 1111 =IF (r=0)THENa:=0;b:=1;n:=1;x_to_y(q1,q2,q3,q4,p1,p2,p3,p4); x_to_y(0,0,0,0,q1,q2,q3,q4);END IF;WHEN 1010 =IF (r=0)THENIF (n=0)THEN add(q1,1,0,q1,c); add(q2,0,c,q2,c); add(q3,0,c,q3,c); add(q4,0,c,q4,c);END IF;END IF;- 按鍵為“ A(+)”鍵,執(zhí)行加法功能- 不在倒計時狀態(tài),則(否則無效)- 加法標注位置 1
14、 - 減法標志位清零 - 待操作位置 1 - 被加數(shù)暫存- 顯示清零- 按鍵為“ B(- )”鍵,執(zhí)行減法功能- 不在倒計時狀態(tài),則(否則無效)- 加法標志位清零 - 減法標志位置 1 - 待操作位置 1 - 被減數(shù)暫存- 顯示清零- 按鍵為“ next ”鍵,執(zhí)行自加 1 功能- 不在倒計時狀態(tài),則(否則無效) - 不在加減號剛輸入之后(否則無效)- 加 1WHEN 1011 =IF (r=0)THENIF (n=0)THEN sub(q1,1,0,q1,c); sub(q2,0,c,q2,c); sub(q3,0,c,q3,c); sub(q4,0,c,q4,c);END IF;END I
15、F;WHEN 1101 =IF (r=0)THENx_to_y(0,0,0,0,p1,p2,p3,p4);x_to_y(0,0,0,0,q1,q2,q3,q4);- 按鍵為“ last ”鍵,執(zhí)行自減 1 功能- 不在倒計時狀態(tài),則(否則無效)- 不在加減號剛輸入之后(否則無效)- 減 1- 按鍵為“ esc ”鍵,執(zhí)行清零功能 - 不在倒計時狀態(tài),則(否則無效) - 寄存器,標志位清零a:=0;b:=0;n:=0;END IF;WHEN OTHERS =IF (r=0)THENn:=0; q4:=q3; q3:=q2; q2:=q1; q1:=CONV_INTEGER(date2);END
16、IF;END CASE;e:=1;ELSIF (en2=0)THENe:=0;- 按鍵為“ 09”,執(zhí)行多位數(shù)據(jù)輸入,移位顯示- 不在倒計時狀態(tài),則(否則無效) - 解除加減法待操作狀態(tài)- 后一個數(shù)碼管顯示內(nèi)容給前一個- 第一位讀取輸入的數(shù)字- 重復屏蔽信號打開,防止重復觸發(fā)- 使能脈沖過去后重復屏蔽信號關閉END IF;IF(r=1)THENIF(countnumbernumbernumbernumbernumber=00000000;END CASE;END PROCESS;END behave;- 掃描信號,用作選擇- 各數(shù)碼管要顯示的內(nèi)容- 片選的數(shù)碼管顯示的內(nèi)容- 片選信號對應的多路
17、選擇器的選通規(guī)則- 高四位數(shù)碼管未用,選到是統(tǒng)一輸出全暗圖 2. 掃描電路模塊仿真3.4 、仿真結(jié)果圖 3. 數(shù)據(jù)處理模塊仿真圖 4. 多路開關模塊仿真3.5 、試驗箱驗證情況將編寫好的程序編譯運行并檢查無誤后下載到裝有一款EP1K30TC144 3N 芯片的實驗箱,分配好各個管腳后再次驗證次所用程序下載的是否完整后根據(jù)課程設計要求按某一個在 09 的數(shù)字鍵能正確顯示所按數(shù)字,各功能鍵是否起作用,從而實現(xiàn)利用鍵盤控制數(shù)碼管 進行十進制數(shù)字的顯示。圖 5. 輸入被加數(shù)圖 6. 按下“ A”表示減圖 8. 按下“ ENTER”表示等于圖 7. 輸入加數(shù)- 10 -圖 9. 按下“ NEXT”表示下
18、一個數(shù)圖 10. 按下“ LAST”表示上一個數(shù)圖 11. 再按下“ ENTER”表示倒計時,暫停也是該鍵圖 12. 按下“ ESC”表示清零4、課程設計總結(jié)此次試驗用一周多的時間用 FPGA設計實現(xiàn)了鍵盤控制數(shù)碼管顯示十進制數(shù)的功能。 題目 很簡單,可自由發(fā)揮。所以我在十進制數(shù)輸入和顯示的基礎上給自己增加了加減法運算和倒 計時的要求。本次課設運用的是 FPGA芯片,編程語言為 VHDL語言,對于沒有真正學過 FPGA,VHDL又 已有些生疏的我們來說,開始階段確實遇到不少麻煩。比如,數(shù)碼管的掃描信號和鍵盤的掃 描信號共用,如何讓鍵盤實現(xiàn)掃描又能在對應位顯示。開始運用中斷程序分時工作,后來發(fā) 現(xiàn)可以同時存在。開始寫程序從頭寫到尾,各種功能交叉在一起,后來發(fā)現(xiàn)經(jīng)過模塊化分, 各模塊功能獨立,便于編寫,檢查和拓展。這種模塊化的設計思路被證明確實是種好習慣。程序語言的設計中經(jīng)常出現(xiàn)信號不能按所希望的方式變化, 而且 VHDL語言對變量的屬性 要求很高,因此在一種程序表達不能夠?qū)崿F(xiàn)的情況下可以通過另一種表達方式或者邏輯形式- 11 - 去實現(xiàn),從自己的經(jīng)歷我體會到同樣的效果確實可以有不同的程序設計思路一個禮拜的時間,我經(jīng)歷過最初的課本復
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 零售業(yè)中的顧客安全保障措施
- DB3715T 69-2025研學旅游指導師服務規(guī)范
- 專業(yè)技術人才海外培訓服務合同(版)
- 上海股權轉(zhuǎn)讓合同文本
- 二手房轉(zhuǎn)讓合同定金協(xié)議書范本
- 中外合資企業(yè)勞動合同樣本
- 個人保證擔保融資合同協(xié)議
- NBA賽事中國區(qū)電視轉(zhuǎn)播合同
- 互利共贏投資合作合同
- 個人物流配送服務合同模板
- 關于防范遏制礦山領域重特大生產(chǎn)安全事故的硬措施課件
- 2025年中國成都餐飲業(yè)市場運營態(tài)勢分析及投資前景預測報告
- 2024年xx縣第三小學安全工作管理制度匯編
- 項目合作備忘錄范文
- 婦產(chǎn)科醫(yī)生個人年終述職報告課件
- 《費曼學習法》讀后感
- 趣味成語課程設計
- 鋼筋焊接工藝性試驗方案
- 2024年四川省涼山州中考物理適應性試卷(附答案解析)
- 幼兒園師資培訓課件【區(qū)域進階】科學區(qū)各年齡段目標制定與投放材料:區(qū)域材料玩出新高度課件
- 人教版初中數(shù)學同步講義八年級上冊專題提升02 解分式方程與分式方程的實際應用(30題)(原卷版)
評論
0/150
提交評論