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
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
Have something to add? Share your thoughts — no account required.
Ask the community — no account required