【正文】
when others = seg = 0000000。 d ? when 1110 = seg = 1111001。 b ? when 1100 = seg = 0111001。 9 ? when 1010 = seg = 1110111。 7 ? when 1000 = seg = 1111111。 5 ? when 0110 = seg = 1111101。 3 ? when 0100 = seg = 1100110。 1 ? when 0010 = seg = 1011011。 ? architecture a of display is ? begin ? process(data) ? begin ? case data is gfedcba ? when 0000 = seg = 0111111。 ? seg: OUT std_logic_vector(6 downto 0) gfedcba ? )。 ? Use 。 ? Use 。 ? 缺點是需要耗費大量的 IO端口資源。 ? 當 CPLD/FPGA有相當多的 IO端口資源,并且顯示的位數(shù)較少時(通常為 1~2位),可以直接使用靜態(tài)顯示的方式。 LED數(shù)碼管顯示控制電路 ? 靜態(tài)顯示方式 ? 動態(tài)顯示方式 ( 1) LED靜態(tài)顯示控制電路 ? 靜態(tài)顯示方式將每一個數(shù)碼管的段碼端 a~h連接到 CPLD/FPGA的 IO端口上,公共端接地(對于共陰極 LED)。(共陽極數(shù)碼管) ? 位碼應該接高電平。 ? 段碼按照 hgfedcba的順序, 應該為“ 00000110”。 位碼 段碼 舉例:位碼和段碼 例 1:顯示字符“ 1”。段碼的作用是控制數(shù)碼管顯示什么字符。位碼的作用是控制數(shù)碼管的亮滅。 ? 共陽極數(shù)碼管的公共端接電源,陰極( a到 h)接低,數(shù)碼管點亮。多個 LED的陰極連在一起的為共陰極數(shù)碼管,陽極連在一起的為共陽極數(shù)碼管。專題二 . 經(jīng)典模塊設計 —— LED數(shù)碼管顯示控制 電路設計 數(shù)碼管顯示原理 ? 數(shù)碼管的組成 : LED數(shù)碼管是由發(fā)光二極管構成的,常用的有 8段。 ? 數(shù)碼管的分類 :有共陰和共陽極兩種。 ? 共陰極數(shù)碼管的公共端接地,陽極( a到 h)接高電平,數(shù)碼管點亮。 數(shù)碼管的段碼和位碼 ? 數(shù)碼管的位碼就是提供給公共端的電平。 ? 數(shù)碼管的段碼就是提供給 a,b,c,d,e,f,g,h的電平。 ? 單個數(shù)碼管需要 9個端口來控制。(共陰極數(shù)碼管) ? 位碼應該接低電平。 例 2:顯示字符“ A”。 ? 段碼按照 hgfedcba的順序, 應該為“ 10001000”。每個數(shù)碼管需要 8個 IO口線, N個數(shù)碼管共需要 N 8條 IO口線。 ? 數(shù)碼管靜態(tài)顯示方式的優(yōu)點是連線簡單,軟件編程簡單。 8 N 靜態(tài)顯示的方式 CPLD/FPGA驅動 LED靜態(tài)顯示譯碼程序 ? Library ieee。 ? Use 。 ? Entity display is 共陰極數(shù)碼管段碼譯碼 ? port( ? data: IN std_logic_vector(3 downto 0)。 ? End display。 0 ? when 0001 = seg = 0000110。 2 ? when 0011 = seg = 1001111。 4 ? when 0101 = seg = 1101101。 6 ? when 0111 = seg = 0000111。 8 ? when 1001 = seg = 1100111。 A ? when 1011 = seg = 1111100。 c ? when 1101 = seg = 1011110。 E ? when 1111 = seg = 1110001。 全滅 ? end case。 ? end a。 靜態(tài)顯示應用舉例: ? 設計一個 4路獨立鍵盤輸入電路,讀取鍵盤的鍵值,并將鍵值在一位靜態(tài)共陰極 LED數(shù)碼管中顯示出來。 ? 輸出為 LED數(shù)碼管的段碼 SEG[6..0]。 le d a p pins tc lkr e s e tk e y 1k e y 2k e y 3k