【正文】
0000000。 when 1011 = ledout=0000000110100000。 when 0111 = ledout=0000110000100100。 when 0011 = ledout=0000000000100100。 end case。 when 1101 = ledout=0000110000011000。 when 1001 = ledout=0001000110000100。 when 0101 = ledout=0001101110000100。 3 when 0001 = ledout=0000000000100000。 when 1111 = ledout=0000000000000000。 when 1011 = ledout=0001111000011100。 when 0111 = ledout=0001000001001100。 when 0011 = ledout=0001111100001100。 end case。 when 1101 = ledout=0000000000000000。 when 1001 = ledout=0000100000000100。 when 0101 = ledout=0000000000000100。 1 when 0001 = ledout=0000000000000000。 when 1111 = ledout=0000000000000000。 when 1011 = ledout=0001111111111000。 when 0111 = ledout=0011000000001100。 when 0011 = ledout=0001111111111000。end leddisp。use 。1616點陣工作原理為:當CHAR輸入是“00000”時,要實現(xiàn)1616點陣顯示數(shù)字“0”, 行驅(qū)動信號SEGOUT[15..0]根據(jù)實現(xiàn)數(shù)字圖形的要求,事先已編寫好各列相應的代碼,列選信號SEL [3..0]按如下形式依次循環(huán):0000—0001—0010—……—1110—1111,通過4—16譯碼器譯碼后對點陣的各列進行掃描,當某點列和行都為“1”時,該點被點亮。 kout=colsel。 elsif(Y=11111)then q=11。) then if(Y10000)then q=00。) then colsel=00000。 end if。 if(counter2=11100) then kdown=39。) then counter2=00000。event and clk=39。) then counter2=00000。 end case。 when 1011=Y=10001。 when others=null。 end case。 when 1101=Y=01001。 when 0111=Y=11111。 end case。 when 1101=Y=11111。 when 0111=Y=11111。 end case。 when 1101=Y=00111。 when 0111=Y=11111。 counter(0)。 sel=counter。 else counter=counter+1。039。 elsif(clk139。 cp=clk1。 clk1=39。139。039。 signal a : std_logic_vector(3 downto 0)。 signal counter1 : std_logic_vector(1 downto 0)。 sel : out std_logic_vector (3 downto 0)。entity keyboard is port ( clk ,rst : in std_logic。鍵盤控制模塊如圖3所示。掃描信號為SEL[2..0]進入38譯碼器,再從譯碼器輸出到鍵盤,所以第一次只能掃描一排,依此周而復始。數(shù)字鍵主要用來輸入數(shù)字,但從上述內(nèi)容發(fā)現(xiàn),鍵盤所產(chǎn)生的輸出KIN3~KIN0無法拿來直接使用;另外不同的數(shù)字按鍵也擔負不同的功能,因此必須由鍵盤譯碼電路來規(guī)劃某個按鍵的輸出形式,以便執(zhí)行相應的動作。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。矩陣式鍵盤的按鍵識別方法為行掃描法又稱為逐行掃描查詢法,是一種最常用的按鍵識別方法,介紹過程如下:1)判斷鍵盤中有無鍵按下:將全部行線置低電平,然后檢測列線的狀態(tài)。1616點陣顯示驅(qū)動的行選通信號為一416譯碼器的輸出,所以我們在設計點陣控制接口時,其行選通信號輸出必須經(jīng)416編碼。1616的LED點陣顯示器,是由256個LED組成,共陽極的1616的LED點陣顯示器的典型連接方式是:每一行的16個陽極連在一起,由行掃描碼鎖存器和驅(qū)動器的一位控制,總共16行陽極連線由16位分別控制;每一列的16個陰極連在一起,由列掃描碼鎖存器和驅(qū)動器的一位控制,總共16列陰極連線由16位分別控制。系統(tǒng)的輸出信號有:點陣行驅(qū)動輸出信號(LEDOUT[0..15]),點陣列選信號(SEL[3..0]),進位輸出信號CO。、設計要求:(1)學習掌握鍵盤控制模塊、點陣顯示模塊的工作原理及應用;(2)熟練掌握VHDL編程語言,編寫鍵盤控制模塊的控制邏輯;(3)仿真所編寫的程序,模擬驗證所編寫的模塊功能;(4)下載程序到芯片中,硬件驗證所設置的功能,能夠?qū)崿F(xiàn)十進制數(shù)字的顯示;(5)整理設計內(nèi)容,編寫設計說明書。利用鍵盤控制點陣進行十進制加法計算顯示課程設計目的: (1)學習操作數(shù)字電路設計實驗開發(fā)系統(tǒng),掌握點陣顯示模塊的工作原理及應用。課程設計內(nèi)容和要求:、設計內(nèi)容: 用VHDL語言編寫程序,編寫鍵盤控制模塊的控制邏輯,仿真所編寫的程序,模擬驗證所編寫的模塊功能,下載程序到芯片中,實現(xiàn)鍵盤控制點陣進行十進制加法計算顯示。、工作原理及框圖: 系統(tǒng)的輸入信號有:開關(guān)(允許輸入及顯示)信號RST,系統(tǒng)時鐘信號CLK,按鍵信號(KEYIN[3..0])。如果將多塊組合可以構(gòu)成大屏幕顯示屏用于漢字、圖形、圖表等等的顯示,因此被泛用于機場、車站、碼頭、銀行及許多公共場所的指示、說明、廣告等場合。然后,按相同的方式選通第二行,寫第二行的字型碼……由此類推,直到寫完所有行的字型碼,完成一個字符的顯示。通過鍵盤掃描程序的行輸出與列輸入就可確認按鍵的狀態(tài),再通過鍵盤處理程序便可識別鍵值。 2)判斷閉合鍵所在的位置:在確認有鍵按下后,即可進入確定具體閉合鍵的過程。 鍵盤中的按鍵可分為數(shù)字鍵和功能鍵。鍵盤上的每個按鍵就是一個開關(guān),當某鍵被按下時,該按鍵的接點會呈現(xiàn)‘0’狀態(tài),反之為‘1’。KOUT[4..0]為鍵盤掃描后的對應的譯碼輸出;CP為時鐘CLK的四分頻后的輸出;Q[1..0]對按下的鍵值進行標志:“00”表示按下‘0’——‘9’之間的鍵值、“01”表示按下NEXT按鍵、“10”表示按下ENTER按鍵、“11”表示按下其它按鍵。use 。 q : out std_logic_vector (1 downto 0)。 architecture keyboard_arc of keyboard is signal counter : std_logic_vector(3 downto 0)。 signal clk1,ktest,kdown: std_logic。p1: process(rst,clk) begin if(rst=39。event and clk=39。 end process p1。139。) then counter=0000。) then if(ktest=39。) then counter=counter。 end process p2。 counter(1) amp。 when 1011=Y=11111。 when 001= case a is when 1110=Y=00001。 when others=null。 when 1011=Y=11111。 when 011= case a is when 1110=Y=00011。 when others=nu