;BINARY TO ASCII, 16 BIT TO 3DIGITS (0.. 999) ;by Nikolai Golovchenko ;Binary to decimal conversion (0.. 999) ; ;Input: NumH: NumL ;Output Hund: Tens: Ones ; ;If Input > 999 Output will roll over, e. g. ;for input= 5678 output= 678. ; ; ;Size: 34 instructions ;Execution time (max) including return: ;22+ 5* 9- 1+ 5* 6- 1+ 4* 3- 1+ 2 = 108 cycles ; ;5- July- 2000 by Nikolai Golovchenko bin2dec999 movf NumH, w addlw 241 addwf NumH, w movwf Hund ;b_ 2 = 2a_ 2 - 15 addwf Hund, w addwf Hund, w addlw 253 movwf Tens swapf NumL, w andlw 0x0F addwf Tens, f addwf Tens, f ;b_ 1 = 6a_ 2 + 2a_ 1 - 48 addwf NumH, w sublw 251 movwf Ones addwf Ones, f addwf Ones, f addwf Ones, f movf NumL, w andlw 0x0F addwf Ones, f ;b_ 0 = a_ 0 - 4( a_ 2 + a_ 1) - 20 movlw 10 bin2dec999a ;9 cycles max addwf Ones, f decf Tens, f skpc goto bin2dec999a bin2dec999b ;6 cycles max addwf Tens, f decf Hund, f skpc goto bin2dec999b bin2dec999c ;3 cycles max addwf Hund, f skpc goto bin2dec999c return -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads