Software projekti
 

KONVERZIJA

Postoje situacije kada je potrebno osmobitni broj (predstavljen sa a*10+b gde su a,b iz intervala (0,9), npr. 34=3*10+4 koji je u binarnom obliku 00100010, a u heksadecimalnom 22) pretvoriti tako da se u gornjoj polovini bajta (engl. nibble) nalazi cifra “a”, a u donjoj polovini bajta cifra “b”. To znači da se kao rezultat treba dobiti broj 34 heksadecimalno ili 0011 0100 binarno.
Potreba za gornjom konverzijom se javlja zbog ha-rdverske realizacije nekih perifernih uređaja (npr. četverocifreni segmentni displej). Jedan od načina te konverzije je i donji primer :

rez RMB 1

...
ldd #34 ; DX = 34
ldx #10 ; IX = 10
idiv ; IX = 34/10 = 3, DX = 4 (ostatak)
xgdx ; IX =4, DX = 3 (zamena vrednosti registara DX i IX)
rolb
rolb
rolb
rolb ; sadržaj registra BX se pomeri 4 mesta u levo

stab rez ; gornja polovina bajta u rez
xgdx ; DX = 4
orab rez ; DX = 0000 0100 ili 0011 0000 = 0011 0100 = 34 hex
stab rez ; sačuvati rezultat na memorijskoj lokaciji rez_bcd.

Ako bi se sabrali ciklusi potrebni za izvršavanje ovog programa dobili bi sledeći rezultat:

3+3+41+3+2+2+2+2+3+3+2+2=68 ciklusa

Znači 68 ciklusa je potrebno za izvršenje gornjeg koda tj. vreme izvršavanja je 68x500ns=34mS.

Napomena: Takt mikrokontrolera je 8 MHz a ciklus 500 nS.


Pročitajte više o ovoj temi
Bit po bit
Povezivanje ADC-a sa 68HC11
Serijski EEPROM, šta i kako
Kako upaliti sijalicu?
Pokrenimo štampač
Množenje celog i realnog broja
Povezivanje male tastature 
AD konverzija

C o p y r i g h t  1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji