Full Version : Dattalo's Binary to BCD (PIC ASM)
avr >>PIC 8051 ZILOG ARM TI H8 ETC >>Dattalo's Binary to BCD (PIC ASM)


Admin3- 04-18-2006
PIC Microcontoller Radix Math Method
Binary to BCD half-packed 8 bit to 3 digit

CODE


;********************************
;binary_to_bcd - 8-bits
;
;Input
;  bin  - 8-bit binary number
; A1*16+A0
;Outputs
; hundreds - the hundreds digit of the BCD conversion
; tens_and_ones - the tens and ones digits of the BCD conversion
binary_to_bcd:

       CLRF    hundreds
       SWAPF   bin, W  ;w  = A0*16+A1
       ADDWF   bin, W  ;w  = A0+A1
       ANDLW   00001111b ;w  = A0+A1 % 16
       SKPNDC   ;if A0+A1 > 16
        ADDLW  0x16  ;  w  += 16
       SKPNDC   ;if w % 16 > 10
        ADDLW  0x06  ;  w  += 6
       ADDLW   0x06  ;w  += 6
       SKPDC   ;if w < 10
        ADDLW  -0x06  ;  w  -= 6

       BTFSC   bin,4
        ADDLW   0x16 - 1 + 0x6
       SKPDC
        ADDLW  -0x06

       BTFSC   bin, 5
        ADDLW  0x30

       BTFSC   bin, 6
        ADDLW  0x60

       BTFSC   bin, 7
        ADDLW  0x20

       ADDLW   0x60
       RLF     hundreds, F
       BTFSS   hundreds, 0
        ADDLW  -0x60

       MOVWF   tens_and_ones
       BTFSC   bin,7
        INCF   hundreds, F






Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.