8421碼
8421碼是中國(guó)大陸的叫法,8421碼是BCD代碼中最常用的一種。在這種編碼方式中每一位二值代碼的1都是代表一個(gè)固定數(shù)值,把每一位的1代表的十進(jìn)制數(shù)加起來,得到的結(jié)果就是它所代表的十進(jìn)制數(shù)碼。由于代碼中從左到右每一位的1分別表示8,4,2,1,所以把這種代碼叫做8421代碼。每一位的1代表的十進(jìn)制數(shù)稱為這一位的權(quán)。8421碼中的每一位的權(quán)是固定不變的。
十進(jìn)制
600,3/5,-7.99……看著這些耳熟能詳?shù)臄?shù)字,你有沒有想太多呢?其實(shí)這都是全世界通用的十進(jìn)制,即1.滿十進(jìn)一,滿二十進(jìn)二,以此類推……2.按權(quán)展開,第一位權(quán)為10^0,第二位10^1……以此類推,第N位10^(N-1),該數(shù)的數(shù)值等于每位位的數(shù)值*該位對(duì)應(yīng)的權(quán)值之和。
8421碼轉(zhuǎn)換十進(jìn)制程序
8421碼十進(jìn)制計(jì)數(shù)器:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY GKY07P10 IS
PORT(clk,reset:IN STD_LOGIC;
q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END GKY07P10;
ARCHITECTURE struc OF GKY07P10 IS
SIGNAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(clk)
BEGIN
IF(clk‘EVENT AND clk=’1‘)THEN
IF reset=’1‘THEN q_temp《=“0000”;
ELSIF q_temp=“1001”THEN
q_temp《=“0000”;
ELSE
q_temp《=q_temp+1;
END IF;
END IF;
END PROCESS;
q《=q_temp;
END struc;
從狀態(tài)‘0000’到狀態(tài)‘1001’,然后再跳回‘0000’,異步復(fù)位要立即復(fù)位。
分頻器:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY GKY07P13 IS
PORT(clk,clear:IN STD_LOGIC;
clk_out:OUT STD_LOGIC);
END GKY07P13;
ARCHITECTURE struc OF GKY07P13 IS
SIGNAL temp:INTEGER RANGE 0 TO 11;
BEGIN
p1:PROCESS(clear,clk)
BEGIN
IF clear=‘0’ THEN
temp《=0;
ELSIF clk‘EVENT AND clk=’1‘ THEN
IF temp=11 THEN
temp《=0;
ELSE
temp《=temp+1;
END IF;
END IF;
END PROCESS p1;
p2:PROCESS(temp)
BEGIN
IF temp《6 THEN
clk_out《=’0‘;
ELSE
clk_out《=’1‘;
END IF;
END PROCESS p2;
END struc;
很重要的一個(gè)器件,但是設(shè)計(jì)難度并不很高,首先是模為12的計(jì)數(shù),然后是占空比50%。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LED IS
PORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
b:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END LED;
ARCHITECTURE LEDarch OF LED IS
BEGIN
PROCESS(a)
BEGIN
CASE a IS
WHEN“0000” =》 b 《= “1111110”; --0
WHEN“0001” =》 b 《= “0110000”; --1
WHEN“0010” =》 b 《= “1101101”; --2
WHEN“0011” =》 b 《= “1111001”; --3
WHEN“0100” =》 b 《= “0110011”; --4
WHEN“0101” =》 b 《= “1011011”; --5
WHEN“0110” =》 b 《= “1011111”; --6
WHEN“0111” =》 b 《= “1110000”; --7
WHEN“1000” =》 b 《= “1111111”; --8
WHEN“1001” =》 b 《= “1111011”; --9
WHEN OTHERS =》 b 《=“0000000”;
END CASE;
END PROCESS;
END;
-
代碼
+關(guān)注
關(guān)注
30文章
4788瀏覽量
68611 -
8421碼
+關(guān)注
關(guān)注
1文章
8瀏覽量
4045
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論