數(shù)字電路:設(shè)計(jì)《BIN 到 BCD 碼的轉(zhuǎn)換電路》
要求:輸入4位二進(jìn)制碼(0~15),輸出為?BCD碼,BCD碼用數(shù)碼管顯示。
常識(shí):
十進(jìn)制數(shù)是人們常用的數(shù)字。
而在數(shù)字電子技術(shù)、計(jì)算機(jī)技術(shù)中,卻常用二進(jìn)制代碼來(lái)表示數(shù)字。
最常見(jiàn)的二進(jìn)制碼是?8421?碼,它可以方便的進(jìn)行加減乘除運(yùn)算,而不需要進(jìn)行什么轉(zhuǎn)換。
計(jì)算的結(jié)果,通常還是?8421?碼。
把計(jì)算的結(jié)果,顯示出來(lái),就要照顧大多數(shù)人的水平。
因?yàn)榇蠖鄶?shù)人,只是學(xué)過(guò)十進(jìn)制,讓他們看二進(jìn)制的數(shù)字,有點(diǎn)勉為其難。
用二進(jìn)制的代碼,代表十進(jìn)制數(shù)字,稱為?BCD?碼。
在?BCD?碼中,只用?0000~1001,代表?0~9。
它們的對(duì)應(yīng)關(guān)系如下表所示。
----------------------------------------
?十進(jìn)制數(shù)?|??二進(jìn)制碼??|?????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位二進(jìn)制碼0~15,對(duì)應(yīng)的?BCD碼是?8?位二進(jìn)制數(shù)。
4位二進(jìn)制碼0~9,和?BCD碼的關(guān)系,非常簡(jiǎn)單,幾乎沒(méi)有什么變化。
4位二進(jìn)制碼10~15,就應(yīng)該加上6,才能變成?BCD碼。
這就是說(shuō),要進(jìn)行轉(zhuǎn)換,關(guān)鍵是要判斷4位二進(jìn)制碼是否大于9,大于就加6,否則就不加。
這個(gè)過(guò)程稱為《十進(jìn)制調(diào)整》。
-------------------------------
電路設(shè)計(jì):
設(shè)計(jì)這樣的轉(zhuǎn)換電路,需要使用一個(gè)加法器芯片,可以選用?74LS283。
283?的功能如下。
兩個(gè)加數(shù):A3A2A1A0、B3B2B1B0,各自都是四位二進(jìn)制數(shù)。
低位進(jìn)位:C0,一位二進(jìn)制數(shù)。
相加過(guò)程的豎式:
?????A3A2A1A0
?+???B3B2B1B0
?+?????????C0
--------------
?C4??S3S2S1S0
百度的排版太差了!字符的位置,對(duì)不齊。
把上面的豎式,復(fù)制到記事本再看,就能看清楚它們的關(guān)系了。
把4位二進(jìn)制碼當(dāng)做一個(gè)加數(shù)A3A2A1A0;0或6,當(dāng)做另一個(gè)加數(shù)B3B2B1B0。
是否大于?9,可用兩個(gè)與門(mén)、一個(gè)或門(mén),來(lái)判斷。
或門(mén)輸出的0、1,送到B2B1,即可形成?0000?或?0110。
變換出來(lái)的?BCD碼,可以用七段碼譯碼器芯片(74LS48)和共陰數(shù)碼管來(lái)顯示。
做而論道設(shè)計(jì)的電路如下:
圖中的左邊,4位二進(jìn)制碼是?1101,右邊的顯示是?13。
-------------------------------
用硬件來(lái)實(shí)現(xiàn)這個(gè)轉(zhuǎn)換,有些浪費(fèi)資金了,用單片機(jī)的軟件編程,就省錢(qián)了。
寫(xiě)上:DA???A,這一條指令,即可完成二進(jìn)制代碼到BCD碼的轉(zhuǎn)換。