konvertering hex til BCD

V

vicky29

Guest
hej folk
Kan nogen hjælpe mig ud til, hvordan man konverterer et hexadecimalt tal til BCD format.for fx: Jeg har en tæller, der tæller 504. Hex det er 1F8h. nu, hvad der vil være sin BCD-kode?
please help
tak

 
Hvis 504 er decimal, konvertere 5 og 0 og 4 til fire bit binære tal og snor dem sammen.0101 0000 0100 er svaret.Eller uden mellemrum 010100000100

 
hejBCD-kode for hvert nummer er helt som decimal og does't afhænge
på hex dataformat, betyder det, at når du har nummer 504 i decimal, er det BCD-kode er 4 bit for cifret 4, 4 bit for ciffer 0 og 4 bit for ciffer 5 (og BCD har ikke tal på mere end 9), så i hver 8 bit register, har du 2 BCD numre, så dit nummer vil blive
0000'0101 0000'0100Masoud
 
Salam,Hex2BCD Converter bruger 8.051

Kode:

;

;************************************************* ***************************

;

; Beskrivelse:

; Konverter Værdi i Acc Fra Hex Til BCD.

;

; Adgangskrav:

, ACC er værdifuld i Binary til at konvertere til BCD

;

; On Exit:

, ACC Har Entry værdi konverteret til BCD

;

; Påvirkede:

; PSW.CY, PSW.Z, PSW.P, Acc

;

; Stack:

, 1 byte, men herunder ikke der bruges af Called Rutiner

;

; Kommentarer:

; Værdier større end 99 vil ikke fungere korrekt.

;

;************************************************* ***************************UTIL_BINTOBCD proc

push b; Gem B

mov b, # 10: Divider 10

div AB; Do Divide

swap a; Flyt resultat for High Of A

ORL a, b, eller i Remainder

pop b; Recover B

ret; Return To Caller

endproc
 
tak for svar, men hvis jeg har en 16bit værdi eller en 32 bit værdi i dette tilfælde, hvordan koden skal skrives med 8.051 microcontroller.bevirke, at værdien i programmering vil blive hexadecimal. antage værdien i hex er 2ED (h) så, hvordan man konverterer denne til BCD form.

 
Salam,

Du vil finde en kode her

http://www.piclist.com/techref/microchip/math/radix/index.htm

i PIC men du kan konvertere den til 8.051, fordi det med enkle Bitvis instruktioner

Farvel

 
garg29 skrev:

antage værdien i hex er 2ED (h) så, hvordan man konverterer denne til BCD form.
 
i det pågældende program 16 bit hex konvertere til BCD.Jeg dont kende den algoritme nøjagtigt, men resultatet er ret skal alle time.if du har noget problem, du kan spørge mig ...
Beklager, men du skal logge ind for at se denne vedhæftede fil

 
Det lader til, at mange mennesker har problemer med BCD.

BCD står for Binary Coded Decimal.Som vi alle ved decimaltal har spænder fra 0 til 9, thanslated til binære det er 0b0000 til 0b1001.Som decimaltegn ciffer fylder ikke mere end 4 bits enhver 8 bit variabel (eller opret) kan indeholde to decimaler i det to 4-bit bidder kaldet nibbles.

Hvis du tager nogle datablade for RTC chips, det er den måde at holde timer, minutter Secinds i kun 3 bytes.

HTH

 

Welcome to EDABoard.com

Sponsor

Back
Top