8051- BCD



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "#aciaty" <aciaty1_at_nospam_alpha.net.pl>
Subject: 8051- BCD
Date: Sat, 21 Oct 2000 17:45:42 +0200


Witam!

Posze o przeslanie jakis zrodel z konwersja liczby do BCD, jej mnozeniem
dzieleniem i przesuwaniem .

Slac na priv: aciaty1_at_nospam_alpha.net.pl

Z gory dzieki.
#aciaty




Poprzedni Następny
Wiadomość
Spis treści
From: "Scoobie" <NOSPAMscoobie_at_nospam_apator.torun,pl>
Subject: Re: 8051- BCD
Date: Mon, 23 Oct 2000 11:58:18 +0200


Posze o przeslanie jakis zrodel z konwersja liczby do BCD, jej
mnozeniem
dzieleniem i przesuwaniem .

a propos bin -> bcd...
czy jest coś krótszego od poniższego podejścia (przykład dla
chara):
(testbit(zmienna, który_bit) = 1 <=> który_bit w zmiennej = 1)

unsigned char bin2bcd(unsigned char a)
{
unsigned char b;
b=a&15;
if (b>9) b+=6;
if (testbit(a, 4)) b+=22;
if ((b&15)>9) b+=6;
if (testbit(a, 5)) b+=50;
if ((b&15)>9) b+=6;
if (testbit(a, 6)) b+=100;
if ((b&15)>9) b+=6;
return b;
};

Jakoś nic prostszego nie przychodzi mi do głowy (mnożenie i
dzielenie odpada).
Scoobie


Poprzedni Następny
Wiadomość
Spis treści
From: "QmX" <kumex_at_nospam_poczta.fm>
Subject: Re: 8051- BCD
Date: Fri, 27 Oct 2000 07:57:32 +0200


Użytkownik "#aciaty" <aciaty1_at_nospam_alpha.net.pl> napisał w wiadomości
news:8su5tb$qkh$1_at_nospam_news.tpi.pl...
Witam!
Posze o przeslanie jakis zrodel z konwersja liczby do BCD,

Do konwersji BIN->BCD uzywam zawziecie takiej procedury (asembler):

BIN_BCD:
;Procedura konwersji liczby 8-bitowej BIN na BCD (3-cyfrowa).
;WEJSCIE: ACC - liczba binarna do przekodowania.
;WYJSCIE: ACC - liczba w postaci BCD (cyfry dziesiatek i
jednosci),
; B - cyfra setek

MOV B,#100 ;dzielenie przez 100 (cyfra setek)
DIV AB ;podziel
PUSH ACC ;przechowaj cyfre setek
MOV A,B ;wpisz reszte z dzielenia przez 100 do ACC
MOV B,#10 ;dzielenie przez 10 (cyfra dziesiatek)
DIV AB ;podziel
SWAP A ;przestaw cyfre dziesiatek na gorna tetrade
ORL A,B ;zloz cyfre dziesiatek i jednosci
POP B ;odtworz cyfre setek
RET
;<<<<<<<<< dlugosc procedury: 18 bajtow!

Wlasciwie, to mam tego wiecej, ale jakos zal oddawac komus za nic
swoja prace...
("nic" nie musi oznaczac pieniedzy :))))

Pozdrawiam,
QmX.




Poprzedni Następny
Wiadomość
Spis treści
From: jfox_at_nospam_friko6.onet.pl (J.F.)
Subject: Re: 8051- BCD
Date: 27 Oct 2000 08:12:06 GMT


On Fri, 27 Oct 2000 07:57:32 +0200, QmX <kumex_at_nospam_poczta.fm> wrote:
Użytkownik "#aciaty" <aciaty1_at_nospam_alpha.net.pl> napisał w wiadomości
;[...] dlugosc procedury: 18 bajtow!

Wlasciwie, to mam tego wiecej, ale jakos zal oddawac komus za nic
swoja prace...
("nic" nie musi oznaczac pieniedzy :))))

Beerware, pizzaware ?

J.


Poprzedni Następny
Wiadomość
Spis treści
From: "QmX" <kumex_at_nospam_poczta.fm>
Subject: Re: 8051- BCD
Date: Fri, 27 Oct 2000 14:16:50 +0200


Uzytkownik "J.F." <jfox_at_nospam_friko6.onet.pl> napisal w wiadomosci
news:slrn8vie6k.8e4.jfox_at_nospam_mars.planconsult.com.pl...
Wlasciwie, to mam tego wiecej, ale jakos zal oddawac komus za nic
swoja prace...
("nic" nie musi oznaczac pieniedzy :))))

Beerware, pizzaware ?

Oooo! Wlasnie to! ;-)))

QmX.
-)))