資源描述:
《七段數(shù)碼顯示譯碼器設(shè)計(jì)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、七段數(shù)碼顯示譯碼器設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模簩W(xué)習(xí)7段數(shù)碼顯示譯碼器設(shè)計(jì),學(xué)習(xí)VHDL的多層次設(shè)計(jì)方法。二、實(shí)驗(yàn)原理:七段數(shù)碼管由8個(gè)(a,b,c,d,e,f,g,dp)按照一定位置排列的發(fā)光二極管構(gòu)成,通常采取共陰極或者共陽極的設(shè)計(jì),將8個(gè)二極管的同一極接在一起,通過分別控制另外的8個(gè)電極的電平,使二極管導(dǎo)通(發(fā)光)或截止(不發(fā)光)。七段數(shù)碼顯示譯碼器的功能就是根據(jù)需要顯示的字符,輸出能夠控制七段數(shù)碼管顯示出該字符的編碼。三、實(shí)驗(yàn)內(nèi)容:1)用VHDL設(shè)計(jì)7段數(shù)碼管顯示譯碼電路,并在VHDL描述的測試平臺下對譯碼器進(jìn)行功能仿真,給出仿真的波形
2、。---------------------------------------------------------------------程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSMGISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0));END;ARCHITECTUREONEOFSMGISBEGINPROCESS(A)BEGINCASEAISWHEN"0000"=>LED7S<="
3、0111111";WHEN"0001"=>LED7S<="0000110";WHEN"0010"=>LED7S<="1011011";WHEN"0011"=>LED7S<="1001111";WHEN"0100"=>LED7S<="1100110";WHEN"0101"=>LED7S<="1101101";WHEN"0110"=>LED7S<="1111101";WHEN"0111"=>LED7S<="0000111";WHEN"1000"=>LED7S<="1111111";WHEN"1001"=>LED7S<="1101111"
4、;WHEN"1010"=>LED7S<="1110111";WHEN"1011"=>LED7S<="1111100";WHEN"1100"=>LED7S<="0111001";WHEN"1101"=>LED7S<="1011110";WHEN"1110"=>LED7S<="1111001";WHEN"1111"=>LED7S<="1110001";WHENOTHERS=>NULL;ENDCASE;仿真波形:1)數(shù)碼管顯示電路設(shè)計(jì)利用以上設(shè)計(jì)的譯碼器模塊,設(shè)計(jì)一個(gè)8位的顯示電路。利用時(shí)分復(fù)用的方式快速輪流點(diǎn)亮8個(gè)數(shù)碼管,在視覺上形成8
5、個(gè)數(shù)碼管同時(shí)顯示的效果(盡管實(shí)際上同一時(shí)間只有一個(gè)數(shù)碼管被點(diǎn)亮)。要實(shí)現(xiàn)以上功能,就必須按照一定時(shí)鐘節(jié)拍,輪流使譯碼器輸出所需要字符的編碼;同時(shí)控制數(shù)碼管的公共電極電平,輪流點(diǎn)亮數(shù)碼管。備注:在新試驗(yàn)箱中可酌情減少位數(shù)實(shí)現(xiàn),新試驗(yàn)箱中管腳查閱教材中附錄。程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYVHDL42ISPORT(CLK:INSTD_LOGIC;S:OUTSTD_LOGIC_VECTOR(2DOWNTO0);D:
6、INSTD_LOGIC_VECTOR(3DOWNTO0);A:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDVHDL42;ARCHITECTUREONEOFVHDL42ISSIGNALC:STD_LOGIC_VECTOR(2DOWNTO0);BEGINP1:PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENIFC<"111"THENC<=C+1;ELSEC<="000";ENDIF;ENDIF;S<=C;ENDPROCESSP1;P2:PROCESS(D)BEGINCASEDI
7、SWHEN"0000"=>A<="0111111";WHEN"0001"=>A<="0000110";WHEN"0010"=>A<="1011011";WHEN"0011"=>A<="1001111";WHEN"0100"=>A<="1100110";WHEN"0101"=>A<="1101101";WHEN"0110"=>A<="1111101";WHEN"0111"=>A<="0000111";WHEN"1000"=>A<="1111111";WHEN"1001"=>A<="1101111";WHEN"1010"=>A<="11
8、10111";WHEN"1011"=>A<="1111100";WHEN"1100"=>A<="0111001";WHEN"1101"=>A<="1011110";WHEN"1110"=>A<="1111001";WHEN"1111"