by Djula Djarmati
;********************************************************************************************** ;CONVERT 10-BIT BINARY TO THREE DECIMAL DIGITS (28 cycles, 25 program memory) ;Input word: Digits+1:Digits ;Output digits: Digits+2:Digits+1:Digits ;Trashes: PRODH, PRODL ;********************************************************************************************** Bin_To_Dec_999 movlw d'41' ;Multiply by 0.01 (41/4096) mulwf Digits+1 ; movff PRODL, Digits+2 ; mulwf Digits ; movf PRODH, w ; addwf Digits+2, w ; mullw 0x10 ;Lose the lower 8 bits and shift movf PRODH, w ;result 4 bits left (divide by 4096) movwf Digits+2 ;Save result mullw d'100' ;and then multiply it by 100 movf PRODL, w ; subwf Digits, f ;Subtract from original movf PRODH, w ;to get subwfb Digits+1, f ;remainder movf Digits, w ;Split remainder (0-99) to two decimals mullw D'205' ; movlw D'32' ;Multiply by 0.1 mulwf PRODH ;(205/256 * 32/256) movf PRODH, w ; movwf Digits+1 ;Save result mullw D'10' ;and then multiply it by 10 movf PRODL, w ;Subtract from original subwf Digits, f ;Save remainder return ;Done
file: /Techref/microchip/math/radix/b2bu-10b3d-mullw-dd.htm, 2KB, , updated: 2011/3/6 17:07, local time: 2024/11/19 05:55,
3.135.220.163:LOG IN
|
©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://linistepper.com/techref/microchip/math/radix/b2bu-10b3d-mullw-dd.htm"> PIC Microcontoller Radix Math Method 10bit to BCD unpacked 3 digit in 25 inst 28 cycles by Djula Djarmati </A> |
Did you find what you needed? |