| 
 All about PIC microcontrollers
 
 Within these pages, you can find many useful pieces of code mostly in assembly for the Microchip PIC micro controller family. A lot of people have spend many hours trying to put the bits and bytes together. If the code is NOT written by a member of the PCB Heaven community, then a link will be added above the code with the original website that this code was found.
 Because the code is copied to our servers, you should know that:
 
 
 
The responsible web master of the website that the code is taken, has been informed and he has agreed to copy the codeAll emails from the above contact have been kept as records but due to personal privacy cannot be shown in public. The author of the code is always clearly indicated above the code. In some cases the author is unknown. If you happen to be the author of the code or you know the person who wrote it, please inform us by email and it will be added ASAP. We would personally like to send the credits to all the people that managed to write some very interesting code and publish it, and special thanx to the people that originally hosted those code snippets and gave us the permission to copy them.
 
 
 View code
 Binary to BCD
 unpacked, 24 bit to 4 digits
 Author: Oliver Broad
 This code was originally located @ http://www.piclist.com
 
 
 Follow this link to go back
 
 
 | ; Code is based on the fact that a bcd number may be multiplied ; by two by a simple bit shift followed by a BCD fixup. The
 ; fixup is greatly simplified by performing it BEFORE the shift,
 ; which is why 3 and 30H are used instead of 6 and 60H.
 
 
 LIST P=16C73
 INCLUDE P16C73.INC
 CBLOCK  20H
 R3,R2,R1,R0        ;MUST START ON BINARY XXXXX000.
 COUNT, LBYTE, MBYTE, HBYTE
 ENDC
 ORG     0
 MAIN    MOVFW   PORTB
 MOVWF   LBYTE
 MOVFW PORTB
 MOVWF MBYTE
 MOVFW   PORTB
 MOVWF   HBYTE
 CALL    BIN2BCD
 GOTO    MAIN
 BIN2BCD MOVLW   18H
 MOVWF   COUNT
 CLRF    R0
 CLRF    R1
 CLRF    R2
 CLRF    R3
 BCF     STATUS,C
 GOTO    BIN2BC2
 BIN2L   MOVLW   R3
 MOVWF   FSR
 BCDADJ  MOVLW   03H
 ADDWF   INDF,F
 BTFSS   INDF,3
 SUBWF   INDF,F
 MOVLW   30H
 ADDWF   INDF,F
 BTFSS   INDF,7
 SUBWF   INDF,F
 INCF    FSR,F
 BTFSS   FSR,2
 GOTO    BCDADJ
 BIN2BC2 RLF     LBYTE,F
 RLF  MBYTE,F
 RLF     HBYTE,F
 RLF R3,F
 RLF     R2,F
 RLF     R1,F
 RLF     R0,F
 DECFSZ  COUNT,F
 GOTO    BIN2L
 RETLW   0
 END
 | 
 Follow this link to go back
 
 
 
 
 
 
 | 
 
 
 
 |  HOT in heaven! 
 
   | 
 
 |