Product categories

Have You Seen

B0505S-1WR3 MORNSUN Isolated DC - DC Converter

B0505S-1WR3 MORNSUN Isolated DC - DC Converter

Mornsun B0505S-1WR3 DC-DC Isolated ConverterMORNSUN B0505S 1WR3 1 watt, 5 Volts Isolated DC to DC Po..

Rs.106.20 (inc GST)
Rs.90.00 + GST

SKU: 2969 | DAE663
Stock: 31
XL1509-Adj E1 Buck DC to DC Converter IC (SOP8L Package)

XL1509-Adj E1 Buck DC to DC Converter IC (SOP8L Package)

XL1509-Adj E1 Buck DC to DC Converter IC (SOP8L Package)XL1509-Adj E1 Buck DC to DC Converter IC, Ad..

Rs.25.96 (inc GST)
Rs.22.00 + GST

SKU: 3657 | DAF397
Stock: 100

12-bit HEX to BCD Convertor



This subroutine converts 12 bit hexadecimal number into its equivalent BCD number. Since the number to be converted is 12 bit total two bytes will be required to represent it. And the converted number will be maximum 4 byte but since the output is in BCD two memory locations will be used to store the final result. The number to be converted is stored in R6 (MSB) & R7 (LSB) whereas the converted BCD number is stored in R0 (MSB) & R1 (LSB).

First we work on the HEX LSB (R7) & convert it into BCD as stated in 8-bit HEX to BCD convertor. Then we check if the HEX MSB (R6) is 0 if not zero we add 256 to the BCD & decrement the HEX MSB (R6) until it becomes zero.

Hex to BCD:

mov r0,#00h

mov r1,#00h

clr c

mov a,r7

mov b,#100

//Divide LSB by 100

div ab

mov r0,a

//save the 100th place

mov a,b

mov b,#10

//Divide LSB by 10

clr c

div ab

swap a

orl a,b

mov r1,a

//save the units & tenth place

mov a,r6

cjne a,#00h,c1_hextobcd

//Check if the MSB is 0 if not then continue

ret

 

//Add 256 to the BCD number & decrement the HEX MSB by 1 until it becomes 0

 

c1_hextobcd:

clr c

mov a,r1

add a,#56h

da a

mov r1,a

jnc c2_hextobcd

clr c

mov a,r0

add a,#01h

da a

mov r0,a

c2_hextobcd:

clr c

mov a,r0

add a,#02h

da a

mov r0,a

djnz r6,c1_hextobcd

ret

.

Written by Administrator

Administrator

Administrator