7段數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設(shè)備,常用的BCD七段譯碼器如74系列的有7446、7447、7448、7449以及CD4511只能作十進(jìn)制BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是2進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在FPGA/CPLD中來實(shí)現(xiàn)。7段譯碼器輸出信號(hào)LED7S的7位分別接如圖3.1數(shù)碼管的7個(gè)段,高位在上,低位在下。例如當(dāng)LED7S輸出為“1101101”驅(qū)動(dòng)共陰級(jí)數(shù)碼管時(shí),數(shù)碼管的7個(gè)段:g、f、e、d、c、b、a分別接1、1、0、1、1、0、1;接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。7段譯碼器的仿真波形如圖3.2所示。注意,這里沒有考慮表示小數(shù)點(diǎn)的發(fā)光管,如果要考慮,需要增加段h,例1中的LED7S:OUTSTD_LOGIC_VECTOR(6 DOWNTO 0)應(yīng)改為…(7 DOWNTO 0) 。
- LIBRARY IEEE;
- USE IEEE.STD_LOGIC_1164.ALL;
- USE IEEE.STD_LOGIC_UNSIGNED.ALL;
- ENTITY lihao_015 IS
- PORT (CLK,RST,EN : IN STD_LOGIC;
- CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
- COUT : OUT STD_LOGIC );
- END;
- ARCHITECTURE behav OF lihao_015 IS
- BEGIN
- PROCESS(CLK, RST, EN)
- VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0);
- BEGIN
- IF RST = '0' THEN CQI := (OTHERS =>'0') ; --計(jì)數(shù)器異步復(fù)位,低電平有效
- ELSIF CLK'EVENT AND CLK='1' THEN --檢測(cè)時(shí)鐘上升沿
- IF EN = '1' THEN --檢測(cè)是否允許計(jì)數(shù)(同步使能)
- IF CQI < 15 THEN CQI := CQI + 1; --允許計(jì)數(shù), 檢測(cè)是否小于15
- ELSE CQI := (OTHERS =>'0'); --大于15,計(jì)數(shù)值清零
- END IF;
- END IF;
- END IF;
- IF CQI = 15 THEN COUT <= '1'; --計(jì)數(shù)大于15,輸出進(jìn)位信號(hào)
- ELSE COUT <= '0';
- END IF;
- CQ <= CQI; --將計(jì)數(shù)值向端口輸出
- END PROCESS;
- END;
復(fù)制代碼
51hei.png (6.71 KB, 下載次數(shù): 51)
下載附件
2020-11-16 21:31 上傳
全部資料51hei下載地址:
jishuqi.zip
(2.81 MB, 下載次數(shù): 10)
2020-11-16 20:24 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|