要求:輸入4位二進位製碼(0~15),輸出為 bcd碼,bcd碼用數碼管顯示。
題目常識:
十進位制數是人們常用的數字。
而在數字電子技術、計算機技術中,卻常用二進位制**來表示數字。
最常見的二進位製碼是 8421 碼,它可以方便的進行加減乘除運算,而不需要進行什麼轉換。
計算的結果,通常還是 8421 碼。
把計算的結果,顯示出來,就要照顧大多數人的水平。
因為大多數人,只是學過十進位制,讓他們看二進位制的數字,有點勉為其難。
用二進位制的**,代表十進位制數字,稱為 bcd 碼。
在 bcd 碼中,只用 0000~1001,代表 0~9。
它們的對應關係如下表所示。
----------------------------------------
十進位制數 | 二進位製碼 | bcd 碼
----------+------------+----------------
0 | 0000 | 0000 0000
1 | 0001 | 0000 0001
2 | 0010 | 0000 0010
3 | 0011 | 0000 0011
4 | 0100 | 0000 0100
5 | 0101 | 0000 0101
6 | 0110 | 0000 0110
7 | 0111 | 0000 0111
8 | 1000 | 0000 1000
9 | 1001 | 0000 1001
10 | 1010 | 0001 0000
11 | 1011 | 0001 0001
12 | 1100 | 0001 0010
13 | 1101 | 0001 0011
14 | 1110 | 0001 0100
15 | 1111 | 0001 0101
----------------------------------------
可以看出:
4位二進位製碼0~15,對應的 bcd碼是 8 位二進位制數。
4位二進位製碼0~9,和 bcd碼的關係,非常簡單,幾乎沒有什麼變化。
4位二進位製碼10~15,就應該加上6,才能變成 bcd碼。
這就是說,要進行轉換,關鍵是要判斷4位二進位製碼是否大於9,大於就加6,否則就不加。
這個過程稱為《十進位制調整》。
-------------------------------
電路設計:
設計這樣的轉換電路,需要使用乙個加法器晶元,可以選用 74ls283。
283 的功能如下。
兩個加數:a3a2a1a0、b3b2b1b0,各自都是四位二進位制數。
低位進製:c0,一位二進位制數。
相加過程的豎式:
a3a2a1a0
+ b3b2b1b0
+ c0
--------------
c4 s3s2s1s0
把上面的豎式,複製到記事本再看,就能看清楚它們的關係了。
把4位二進位製碼當做乙個加數
a3a2a1a0
;0或6,當做另乙個加數
b3b2b1b0
。 是否大於 9,可用兩個與門、乙個或門,來判斷。
或門輸出的0、1,送到b2b1,即可形成 0000 或 0110。
變換出來的 bcd碼,可以用七段碼解碼器晶元(74ls48)和共陰數碼管來顯示。
做而論道設計的電路如下:
圖中的左邊,4位二進位製碼是 1101,右邊的顯示是 13。
-------------------------------
用硬體來實現這個轉換,有些浪費資金了,用微控制器的軟體程式設計,就省錢了。
寫上:da a,這一條指令,即可完成二進位制**到bcd碼的轉換。
Verilog HDL 與數位電路設計
王冠,黃熙,王鷹 編著 2006年 機械工業出版社 第1章 概述 1.1 什麼是hdl 1.2 verilog hdl概述 1.3 verilog hdl 與 vhdl的比較 1.4 system verilog 1.5 小結 verilog hdl是由phil moorby於1983年首創,198...
Homework 數位電路設計,顯示學號後四位
問題 在7段led的4位顯示屏上,顯示學號的後4位。思路 下文中的 指的是 布林加,即 或 利用cp clock pulse 來產生0 7的二進位制,然後通過解碼器,得到0 7的輸出 利用同餘關係 mod 4 得到l1 l2 l3 l4,來決定哪個燈亮 如 埠0或4為真時,l1燈亮 l1 0 4 列...
數位電路設計之verilog的門級描述
使用verilog的數位電路設計,一般會有電晶體級的描述 門級描述 rtl 行為描述。我們接觸得比較多的就是後面兩種,前兩種更少涉及。現在就說一下門級描述吧!門級描述就是使用各種邏輯門對組合邏輯進行描述。舉個栗子 與或非門 這裡的and,or等都是verilog的原語,原語有點像c語言的函式。mod...