Algorytm konwersji bin - bcd na 8051

Sep 23, 2003 4 Replies

Witam , szukam algorytmu który pozwoli mi przekszta³ciæ 32 ( b±dz 24 ) bitow± liczbe w kodzie binarnym na BCD w uP 8051



Za wszelk± pomoc wielkie dziêki .



PZDR K.M



Prosty ale d³ugi to dzielenie przez dziesiêæ i umieszczanie reszty w tablicy

1)

m- wymiar tablicy

void binbcd_8(unsigned char hg) { char i; for (i=0;i<m ;i++) { bcd[i]=hg%10; hg=hg/10; } }

2) Drugi sposób konwersji to metoda przesuniêæ i korekcji wyniku - najszybszy . Metoda jest stosowana w uk³adach arytmetycznych. Np. liczby 0x 9 nie wymaga korekcji, ale liczby >= 0xA trzeba dodaæ 0x6 , to jest 0x10.

Radek

U¿ytkownik "K.M" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:bkqb35$8ci$ snipped-for-privacy@atlantis.news.tpi.pl...

A moze ktos zna kod zrodlowy tego algorytmu w asemblerze?

Pozdrawiam M.

A moglbys podac algorytm w C ?

Robert

B_BCD: ;ZAMIENIA LICZBE BIN W R4-R3 NA BCD W R6-R5 CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,#16 B_BCD1: MOV A,R3 ADD A,ACC ;X2 MOV R3,A MOV A,R4 ADDC A,ACC MOV R4,A MOV A,R5 ADDC A,ACC DA A MOV R5,A MOV A,R6 ADDC A,ACC DA A MOV R6,A DJNZ R7,B_BCD1 RET

Pozdrawiam Jacek Studziñski

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required