二進制碼轉換為十進制碼_第1頁
二進制碼轉換為十進制碼_第2頁
二進制碼轉換為十進制碼_第3頁
二進制碼轉換為十進制碼_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

二進制碼轉換為十進制(BCD)碼轉換原理對于一個8位二進制碼bn-1bn-2......b1b0,,其在十進制編碼方式下的值為Nr>=Jbx2i=b次2^+白次2"心+…冷x2\加2./ i fi—l 1 Vi=0把上式寫出套乘的形式:^d={-{[(^-ix2+^_2)x2+^_3]x2+-}x2+51}x2+ft()式中的每項乘2,相當于將寄存器中的二進制碼左移1位,這就意味著利用移位寄存器可以完成二進制與8421BCD的轉換。[2]在移位的過程中,當現態(tài)Sn<5時,次態(tài)不變。當現態(tài)Sn=5、6、7時,左移一次,其次態(tài)Sn+1將會超過9,對于一個BCD碼來說,這樣的狀態(tài)屬于禁用狀態(tài)。而當Sn=8、9時,左移1位,則會向高1位的BCD碼輸入一個進位的信號,由于二進制和BCD碼權不一致,當發(fā)生進位時,雖然碼元只是左移1位,但次態(tài)Sn+1將減少6。基于上面這兩種情況,在B/BCD轉換時需要對轉換結果加以校正。校正過程如下:當Sn>=5時,我們讓Sn先加上3,然后再左移1位,次態(tài)Sn+1=2(Sn+3)=2Sn+6,正好補償由于進位而減少的數值,并且向后一個變換單元送入一個進位信號,這個方法叫“加3移位法”。注意:現態(tài)和次態(tài)都是指BCD碼,即用4位二進制表示的1位BCD碼。我們對Sn=8、9時舉個例子:BCD碼的1000(8)乘以2為0001_0110(16),但是左移后變?yōu)?001_0000,減少了6。所以需要加上6,這里的方法是加3左移一位,相當于加上6。轉換方法首先,先了解二進制與BCD碼的位數對應關系,比如一個8位二進制碼,可以表示的最大十進制數為255,轉換成BCD碼為0010_0101_0101,共需12位,其中每4位組成一個BCD單元,有三個BCD單元,分別表示百位(hundreds)、十位(tens)和個位(units)。n位二進制碼轉換成D位BCD碼的n~D對應關系表見表1。表1n~D對應關系

戳I-34—67—9](>-14-£6517-19630-23724-26827-29930J011引■—推口40-43掃44-461447-網3S1654-563757-59】&6。「6364-56以8位二進制轉換為3位BCD碼為例,轉換步驟是:將待轉換的二進制碼從最高位開始左移BCD的寄存器(從高位到低位排列),每移一次,檢查每一位BCD碼是否大于4,是則加上3,否則不變。左移8次后,即完成了轉換。需要注意的是第八次移位后不需要檢查是否大于5。注意:為什么檢查每一個BCD碼是否大于4,因為如果大于4(比如5、6),下一步左移就要溢出了,所以加3,等于左移后的加6,起到十進制調節(jié)的作用。表2給出了一個二進制碼11101011轉換成8421BCD碼的時序。表2B/BCD時序時鐘麟沖曲!位結果《耕他方向一>輸入的m通制碼旺夠碼底位RCI)碼次島-位藏Q碼最低位0000oaw(MW1HGIQI1E0(W0000ami110301120(Woooo001110101100(50(WOOIH03011修正(m>,■5001!UJIG[)10114(WO0100MlI5omoOOlfl3001on修11;awno聞HOCan6cmaiot1000H燎止i*H1013H7(Muim\am1慘IEoroiorni毋iiJ0101s0019OOH0101結果(十制)235Verilog代碼/*功能:8位二進制轉3位BCD碼輸入參數:輸入時鐘clk,輸入二進制數據dat輸出參數:個位units,十位tens,百位hundreds備注:二進制轉BCD碼的實現方法很多,本例采用的是“加3移位法”本例實現的是8位二進制轉3位BCD碼的例子,例如輸入2'b11111111(255),輸出0010_0101_0101(BCD)*/moduleBIN_to_BCD(clk,dat,units,tens,hundreds);inputclk;input[7:0]dat;〃二進制輸入數據output[3:0]units;output[3:0]tens;output[3:0]hundreds;reg[3:0]units_r,tens_r,hundreds_r;//BCD數據輸出寄存器reg[7:0]dat_r;reg[11:0]temp;〃中間寄存器integeri;assignunits=units_r;assigntens=tens_r;assignhundreds=hundreds_r;always@(posedgeclk)begindat_r=dat;temp=0;for(i=0;i<7;i=i+1)〃循環(huán)7次,注意不是8次,因為第八次不需要修正begintemp={temp[10:0],dat_r[7]};//左移一位if(temp[3:0]>4'd4)〃大于4,加三temp[3:0]=temp[3:0]+4'd3;if(temp[7:4]>4'd4)〃大于4,加三temp[7:4]=temp[7:4]+4'd3;if(temp[11:8]>4'd4)〃大于4,加三temp[11:8]=temp[11:8]+4'd3;dat_r=dat_r<<1;〃最高變?yōu)樵瓉韉at_r的第六位{hundreds_r,tens_r,units_r}={temp[10:0],dat[0]};//最后一次(第8次)不用修正endendendmodule波形仿真報告說明KSSna?|| 231.67n* 214岸巾 SIaL End二回1-iV.□ 隊讓園L?3曰MlUIEKru克L44..Di&a 泗pmMD.pnsKC.Ot■.部MilrnrrmiiinwiirnmrrnniTntmirframwwnTMiirnrrniirMiMaoESS海■弟IX;|2ud『JSSII圖1輸入二進制1111_1111(255)的波形仿真報告分析綜合報告說明Family堿IIEFS570T1C0C5Timin直Model$JfinelMettimmg:r?q.uif30/57Q(5%)T。taJ.pins21/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論