From Regulus Berdin
;Increment/Decrement routines for packed BCD
;
;6 digit bcd in bcd1:bcd2:bcd3:...(lsb:msb)
;
;
cblock 0x0c
tmp
bcd1:3
endc
inc_bcd:
movlw bcd1
movwf FSR
movlw 3 ;adjust for number of digits
movwf tmp
iloop movlw 0x67
addwf INDF
movlw 0x60
skpdc
movlw 0x66
skpc
subwf INDF
skpz
goto iquit
incf FSR
decfsz tmp
goto iloop
iquit retlw 0
dec_bcd:
movlw bcd1
movwf FSR
movlw 3 ;adjust for number of digits
movwf tmp
dloop movlw 1
subwf INDF
addwf INDF,w
movlw 0x6
skpnc
movlw 0x66
skpndc
subwf INDF
xorlw 0x66
skpz
goto dquit
incf FSR
decfsz tmp
goto dloop
dquit retlw 0
The routines can accomodate to any number of BCD digits, just change the movlw 3.
| file: /Techref/microchip/math/incdec/packedBCD-RB.htm, 1KB, , updated: 2009/2/13 15:35, local time: 2025/10/26 05:49,
216.73.216.188,10-3-157-36:LOG IN
|
| ©2025 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://ecomorder.com/techref/microchip/math/incdec/packedBCD-RB.htm"> PIC Microcontoller, Math Method, Increment / Decrement packed BCD, Regulus Berdin </A> |
| Did you find what you needed? |
Welcome to ecomorder.com! |
|
Ashley Roll has put together a really nice little unit here. Leave off the MAX232 and keep these handy for the few times you need true RS232! |
.