鍵盤及接口顯示電路 EDA要點(diǎn)_第1頁
鍵盤及接口顯示電路 EDA要點(diǎn)_第2頁
鍵盤及接口顯示電路 EDA要點(diǎn)_第3頁
鍵盤及接口顯示電路 EDA要點(diǎn)_第4頁
鍵盤及接口顯示電路 EDA要點(diǎn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、河南科技大學(xué)課程設(shè)計(jì)說明書課程名稱EDA技術(shù)題目鍵盤及接口顯示電路學(xué)院車輛與動(dòng)力工程學(xué)院班級(jí)農(nóng)業(yè)電氣化與自動(dòng)化091學(xué)生姓名盧浩冉指導(dǎo)教師羅四倍日期2012年7月12號(hào)車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書 鍵盤及接口顯示電路摘要本文通過對(duì)4x4矩形鍵盤的信息采集,并能夠在數(shù)碼顯示管上顯示所按下的信息。通過循環(huán)輸出行信號(hào),檢測(cè)列信號(hào)輸入,將行列信號(hào)相并,來達(dá)到采集信號(hào)的目地,并通過譯碼在7段數(shù)碼管上顯示出來。此次設(shè)計(jì),為了防止抖動(dòng)引起的混亂,加入了一個(gè)防抖動(dòng)環(huán)節(jié)。在譯完一個(gè)鍵值后,加了一個(gè)計(jì)算環(huán)節(jié),一旦檢測(cè)到列信號(hào)后,譯碼,緊跟著進(jìn)入計(jì)數(shù)環(huán)節(jié),此時(shí)鍵抖動(dòng)不會(huì)進(jìn)入其他環(huán)節(jié),這樣可以防止抖動(dòng)。給精度較高

2、的場合應(yīng)用提供了良好的條件,為以后高精度的應(yīng)用創(chuàng)造良好空間。設(shè)計(jì)中通過按鍵控制可以顯示字符串,例如“HELLO”較小的改動(dòng)可以任意顯示5個(gè)字符,這在廣告中的用處隨處可見,給現(xiàn)代生活帶來了方便。關(guān)鍵詞:鍵盤掃描譯碼顯示字符串目錄TOC o 1-5 h z HYPERLINK l bookmark10 o Current Document 第一章緒論4 HYPERLINK l bookmark12 o Current Document 1.1設(shè)計(jì)目的和意義4 HYPERLINK l bookmark14 o Current Document 1.2設(shè)計(jì)任務(wù)及要求4 HYPERLINK l book

3、mark16 o Current Document 第二章總體設(shè)計(jì)52.1工作原理52.2設(shè)計(jì)思路5 HYPERLINK l bookmark18 o Current Document 2.3數(shù)碼管顯示譯碼模塊設(shè)計(jì)6 HYPERLINK l bookmark20 o Current Document 2.4字符串“HELLO”的模塊實(shí)現(xiàn)72.4.1七段數(shù)碼管譯碼掃描顯示72.4.2原理圖8 HYPERLINK l bookmark22 o Current Document 第三章仿真9 HYPERLINK l bookmark24 o Current Document 3.1鍵盤掃描功能的仿真

4、9 HYPERLINK l bookmark26 o Current Document 3.2字符串的仿真10 HYPERLINK l bookmark28 o Current Document 第四章程序114.1鍵盤掃描程序11 HYPERLINK l bookmark30 o Current Document 4.2字符串顯示程序16 HYPERLINK l bookmark32 o Current Document 第五章結(jié)論18 HYPERLINK l bookmark34 o Current Document 參考文獻(xiàn)19第一章緒論1.1設(shè)計(jì)目的和意義本次設(shè)計(jì)的目的就是通過實(shí)踐深入

5、理解計(jì)算機(jī)組成原理,了解EDA技術(shù)并掌握VHDL硬件描述語言的設(shè)計(jì)方法和思想。以計(jì)算機(jī)組成原理為指導(dǎo),通過學(xué)習(xí)的VHDL語言結(jié)合電子電路的設(shè)計(jì)知識(shí)理論聯(lián)系實(shí)際,掌握所學(xué)的課程知識(shí)和基本單元電路的綜合設(shè)計(jì)應(yīng)用。通過對(duì)掌握4x4鍵盤的掃描的巧妙實(shí)現(xiàn)和對(duì)字符串的顯示過程鞏固和綜合運(yùn)用所學(xué)知識(shí),提高IC設(shè)計(jì)能力,提高分析、解決計(jì)算機(jī)技術(shù)實(shí)際問題的獨(dú)立工作能力。1.2設(shè)計(jì)任務(wù)及要求鍵盤掃描功能:能夠?qū)匦捂I盤信息米集;顯示功能:能夠顯示相應(yīng)的按鍵信息,并能夠在按鍵控制下切換為字符串顯示“HELLO”!掌握數(shù)碼管工作的原理,并能夠?qū)υO(shè)計(jì)的程序進(jìn)行仿真和測(cè)試,以實(shí)現(xiàn)相應(yīng)的功能。第二章總體設(shè)計(jì)2.1工作原理可

6、編程器件的KEY_HANG3.O行信號(hào)輸出端不停循環(huán)輸出T110”T101”T011”“0111”。當(dāng)沒有鍵按下時(shí)可編程器件的KEY_LIE3.O列信號(hào)輸入端檢測(cè)到的是Till”。當(dāng)有按鍵按下時(shí),如按下1,此時(shí)KEY_HANG3.O行信號(hào)輸出為“Olli”,即KEY_HANG3.O的3管腳為“0”,可由電路看出,此時(shí)輸入端KEY_LIE3.O檢測(cè)到的將是“Olli”。KEY_LIE3.O的3管腳為0,可以在編寫程序時(shí),將輸出信號(hào)KEY_HANG3.0與輸入信號(hào)KEY_LIE3.0同時(shí)判斷,比如可以認(rèn)為當(dāng)數(shù)據(jù)“KEY_HANG&KEY_LIE”為“OlllOlll,時(shí),可譯碼成數(shù)據(jù)1,。同理可得

7、其他按鍵的編碼。根據(jù)不同數(shù)據(jù)的編碼譯成不同的數(shù)據(jù)。2.2設(shè)計(jì)思路循環(huán)輸出行信號(hào),檢測(cè)列信號(hào)輸入,將行列信號(hào)相并。譯鍵值。3去抖動(dòng)。在譯沒一個(gè)鍵值后,為了防止抖動(dòng),加了一個(gè)計(jì)算環(huán)節(jié),一旦檢測(cè)到列信號(hào)后,譯碼,緊跟著進(jìn)入計(jì)數(shù)環(huán)節(jié),此時(shí)鍵抖動(dòng)不會(huì)進(jìn)入其他環(huán)節(jié),這樣可以防止抖動(dòng)。4數(shù)碼管譯碼、循環(huán)顯示。電路的具體功能羅列如下:1)采用4x4矩陣鍵盤作為操作數(shù)和操作符的輸入設(shè)備。2)采用2位8段數(shù)碼管作為輸出顯示設(shè)備,顯示按下的數(shù)字及簡單的功能。3)由于所有鍵盤在按下或者彈起的時(shí)候均有按鍵抖動(dòng),所以應(yīng)該采用去抖電路,當(dāng)檢測(cè)到有按鍵按下去的時(shí)候,應(yīng)該延時(shí)20ms后,再進(jìn)行檢測(cè),如果仍有鍵盤按鍵被按下去的話

8、,則進(jìn)行鍵盤讀值。當(dāng)CLK_1K上升沿到來時(shí)狀態(tài)轉(zhuǎn)為stateO,然后判斷列與非后的值,看是否有按鍵按下,如果有輸入數(shù)據(jù),貝怕動(dòng)啟動(dòng)20ms的計(jì)數(shù)器,當(dāng)計(jì)滿數(shù)后,產(chǎn)生一個(gè)指示信號(hào),此信號(hào)為1bit,高電平有效。當(dāng)讀到此指示信號(hào)后,便再次將row信號(hào)鎖存至寄存器,便得到鍵盤的一個(gè)返回值。如果row沒有變化,則state轉(zhuǎn)換為state2,對(duì)第二行進(jìn)行按鍵掃描。依此類推,掃描第三行與第四行。因?yàn)槠胀ǖ陌存I都是接觸式的,當(dāng)按鍵閉合或釋放時(shí),上下接觸面都會(huì)產(chǎn)生一個(gè)很短暫的抖動(dòng),如圖2.2所示,這個(gè)抖動(dòng)時(shí)間一般都會(huì)持續(xù)5-10ms,雖然這個(gè)抖動(dòng)時(shí)間很短,但對(duì)于FPGA工作在50M的高頻率上的器件來說,還

9、是可以捕捉的到的。為了使CPU對(duì)于一次按鍵操作只處理一次,在軟件中必須加入去除抖動(dòng)處理。如圖2.1所圖2.1按鍵閉合時(shí)產(chǎn)生的抖動(dòng)由圖中可以看出,最簡單的去抖方法就是每隔一段時(shí)間讀一次鍵盤,時(shí)間間隔大于10ms即可。如果連續(xù)兩次檢測(cè)都有按鍵被按下,則可以肯定有按鍵被按下,而且也進(jìn)入閉合穩(wěn)定期。2.3數(shù)碼管顯示譯碼模塊設(shè)計(jì)數(shù)碼管顯示譯碼電路主要用來對(duì)實(shí)際的二進(jìn)制數(shù)據(jù)裝換為8段數(shù)碼管的實(shí)際顯示控制碼,采用兩個(gè)2位的8段共陰極數(shù)碼管,數(shù)碼管的顯示方式有兩種:靜態(tài)顯示和動(dòng)態(tài)顯示。具體如下:靜態(tài)顯示方式:所謂靜態(tài)顯示就是指無論是多少位數(shù)碼管,同時(shí)處于顯示狀態(tài)需要的硬件電路較多(每一個(gè)數(shù)碼管都需要一個(gè)鎖存器

10、),將造成很大的不便,同時(shí)由于所有數(shù)碼管都處于被點(diǎn)亮狀態(tài),所以需要的電流很大,當(dāng)數(shù)碼管的數(shù)量增多時(shí),對(duì)電源的要求也就隨之增高。所以,在大部分的硬件電路設(shè)計(jì)中,很少采用靜態(tài)顯示方式。動(dòng)態(tài)顯示方式:所謂動(dòng)態(tài)顯示,是指無論在任何時(shí)刻只有一個(gè)數(shù)碼管處于顯示狀態(tài),每個(gè)數(shù)碼管輪流顯示。動(dòng)態(tài)顯示的優(yōu)點(diǎn)是:硬件電路簡單(數(shù)碼管越多,這個(gè)優(yōu)勢(shì)越明顯),由于每個(gè)時(shí)刻只有一個(gè)數(shù)碼管被點(diǎn)亮,所以所有數(shù)碼管消耗的電流較?。蝗秉c(diǎn)是:數(shù)碼管亮度不如靜態(tài)顯示時(shí)的亮度高,例如有8個(gè)數(shù)碼管,以1秒為單位,每個(gè)數(shù)碼管點(diǎn)亮的時(shí)間只有1/8秒,所以亮度較低;如果刷新率較低,會(huì)出現(xiàn)閃爍現(xiàn)象;如果數(shù)碼管直接與單片機(jī)連接,軟件控制上會(huì)比較麻

11、煩等。顯示譯碼方式如下:1)時(shí)鐘上升沿到來時(shí)分別對(duì)位選和段選進(jìn)行譯碼。2)將輸入的2bite位選數(shù)據(jù)譯碼成4比特?cái)?shù)據(jù)控制數(shù)碼管的2位,由于是共陰極數(shù)碼管要選定相應(yīng)的數(shù)碼管則使該位位低電平,其它位為高電平即可,如:0000譯碼為0111_1111,對(duì)應(yīng)于實(shí)驗(yàn)板上的左邊第一位數(shù)碼管。3)將輸入的4bite段選數(shù)據(jù)譯碼為8比特?cái)?shù)據(jù)控制8個(gè)LED的亮滅,最高位接A,最低位接小數(shù)點(diǎn)位DP。若要顯示0則對(duì)應(yīng)的譯碼為8bllll100。2.4字符串“HELLO”的模塊實(shí)現(xiàn)2.4.1七段數(shù)碼管譯碼掃描顯示elk:時(shí)鐘輸入端,此信號(hào)是串行掃描的同步信號(hào)。data_control7.0:8個(gè)分別控制數(shù)碼管顯示的輸

12、入信號(hào);led_addr7.0:對(duì)8個(gè)數(shù)碼管進(jìn)行串行掃描的輸出控制信號(hào);seg7_data6.0:驅(qū)動(dòng)7段數(shù)碼管各顯示段的輸出信號(hào);2.4.2原理圖圖2.2字符串顯示原理圖第三章仿真3.1鍵盤掃描功能的仿真沒有鍵按下時(shí)行循環(huán)輸出“1110”“1101”“1011”“0111”圖3.1無按鍵時(shí)波形當(dāng)隨機(jī)按下時(shí)行保持所按下的狀態(tài)不變ibaiTieValue155.535.49ms96.8mz98.11msi994,3竺100.74ms102.05ms103.36msiii104.67msi107.29ms0諺2諺11參1922妙32TOC o 1-5 h zCUL1KuCUC_40KUSIlATA

13、_FUisIlISF.El111EIlISF.UEKEY_.B11SHY_UEB11STAKTUl圖3.2隨機(jī)按鍵時(shí)波形3.2字符串的仿真蝕3|k.I.4巧EbL.iv.Alrtr.i9L.KCAU.亠iS玄CtfS丄電注嵯it4n8iM創(chuàng)9*9*99C百f監(jiān)色曲dfe:HiUMInBH泗RexmEreIDU.口A打申KIS-ANIhJtrlll事帰探牌海煖笑帰洽帰做SftSSM矽炯召JSW:狀鈕姣洽:移MW龍Sft記飯?zhí)幚淙鼻咭暯~瓷;ss磁:SSSSliffiWSSSSaWSWS逐茹弼磁統(tǒng);金絕瓷狼ffiWWSSWS逸報(bào):WSWSJ敲歿saswssafissftHWKSssssaMMSsss

14、issssssMsassasasswKssssssssifSKMSssswaassMssfissssjKsssMassMasssftKss:;iU.h_:!UilErarartfai.k.-mtrlt*.fc_3W*ufa_riar虹b_:4Tr31-J_.*Lwn*u迄坂疋如龍私陽:3fi乳LiJ_盤*KIK*Lp|山Fl3ifL厲血口*MOugl.4u.-il2J創(chuàng)-皿回二口口riMSiSWSSWSWSSSSSSfHSSSSSiWSfi:SiffiHSWSSSiSSM5SWSaSSaffiJSSSSSSWSSWiSS舜Mm事斑磁事:fSSSSfti球:SSMSSS:faSS?Sf3SiSf

15、t:SSSSSS;&沁iiS55SWaWffi5S*a;5ftWSi怨:按換w;紳鍛細(xì)隔綴璃和饋趙嗒核榔弼檢按鮫郴園嗒曲郴辭螂滋核粋郴如揀枠猟粋郴抉圖3.3字符串顯示第四章程序4.1鍵盤掃描程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityjpisport(clk,start:instd_logic;kbcol:instd_logic_vector(3downto0);-行掃描信號(hào)kbrow:outstd_logic_vector(3downto0);-列掃描信號(hào)seg7_out:outs

16、td_logic_vector(6downto0);-顯示控制信號(hào)scan:outstd_logic_vector(7downto0)-數(shù)碼管地址選擇控制信號(hào));endjp;architectureoneofjpissignalcount,sta:std_logic_vector(1downto0);signalseg7:std_logic_vector(6downto0);signaldat:std_logic_vector(4downto0);signalfn:std_logic;-按鍵標(biāo)志位,判斷是否有鍵被按下beginscankbrowv=0001;stav=00;when01=kbr

17、owv=0010;stakbrowv=0100;stakbrowv=1000;stakbrowcasekbcoliswhen0001=seg7v=1111001;datv=00011;when0010=seg7seg7v=0110000;datv=00001;when1000=seg7seg7v=0000000;datcasekbcoliswhen0001=seg7v=1111000;datseg7seg7v=1011011;datv=00101;when1000=seg7seg7v=0000000;datcasekbcoliswhen0001=seg7=0011111;datseg7seg7

18、seg7seg7v=0000000;datcasekbcoliswhen0001=seg7v=1000111;datv=01111;when0010=seg7=1001111;datseg7=0111101;datseg7v=1001110;datv=01100;whenothers=seg7v=0000000;datseg7v=0000000;endcase;endif;endprocess;-產(chǎn)生按鍵標(biāo)志位,用于存儲(chǔ)按鍵信息fnv=not(dat(O)anddat(1)anddat(2)anddat(3)anddat(4);process(fn)begin訐fneventandfn=1th

19、en-按鍵信息存儲(chǔ)seg7_outv=seg7;endif;endprocess;endone;4.2字符串顯示程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityScan8ledisport(clk:instd_logic;data_control:instd_logic_vector(4downto0);led_addr:outstd_logic_vector(4downto0);seg7_data:outstd_logic_vector(6downto0);endentityscan8

20、led;architectureoneofscan8ledistypeaaaaisarray(0to3)ofinteger;constanta:aaaa:=(0,1,2,3);typeseg7_data_typeisarray(naturalrangev)ofstd_logic_vector(6downto0);constantseg7_data_table:seg7_data_type(0to5):=(-gfedcba1110110,1111001,0111000,0111000,0011111,0000000);typeled_addr_typeisarray(naturalrange)o

21、fstd_logic_vector(7downto0);constantled_addr_table:led_addr_type(0to4):=(-dizhibiao車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書00000001, 00000010,00000100,00001000,00010000);beginprocess(clk)variablecount:integerrange0to4:=0;beginif(clkeventandclk=T)thencount:=count+l;led_addrv=led_addr_table(count);if(data_control(count)=1)thenseg7_datav=seg7_data_table(count);elseseg7_datav=seg7_data_table(5);endif;endif;endprocess;endarchitectureone;車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書 第五章結(jié)論這次EDA課程設(shè)計(jì)歷時(shí)十天,學(xué)到很多很多的東西。同時(shí)不僅可以鞏固以前

溫馨提示

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

評(píng)論

0/150

提交評(píng)論