I am a rookie in assembly programming and I am currently doing a project using a temperature sensor on MPLAB and it's values to be displayed on a LCD.
In order to convert the raw values (0 to 255 based on the output voltage) from the sensor to the LCD I need to do an affine function (8x+1000)/100. But here is the problem, since my microprocessor is in 8 bit, I cannot divide by 100.
Here is the code :
MOVLW d'50'
MOVWF CAN_Val_Brut;----------------------------------MULTIPLICATION
clrf CAN_Val_Dec
clrf CAN_Val_Decp1
movlw .8
movwf mpy_cnt
movlw .8
bcf STATUS,C
mpy rrf CAN_Val_Brut,f
btfsc STATUS,C
addwf CAN_Val_Decp1,f
rrf CAN_Val_Decp1,f
rrf CAN_Val_Dec,f
decfsz mpy_cnt,f
goto mpy
;-------------------------------------------------------------ADDITION
;------Je met 1000 dans a et aplus1----
movlw .3;00000011
movwf aplus1
movlw .232;11101000
movwf a
movf a,w
addwf CAN_Val_Dec,f
btfsc STATUS,C
incf CAN_Val_Decp1,f
movf aplus1,w
addwf CAN_Val_Decp1,f
;-----------------------------------------------DIVISION
movlw .8
movwf dvy_cnt
movlw .100
bcf STATUS,C
dvy
btfsc STATUS,C
addwf CAN_Val_Decp1,f
rlf CAN_Val_Decp1,f
rlf CAN_Val_Dec,f
decfsz dvy_cnt,f
goto dvy
If someone have a code for 2x8bits division I am glad to take a look :)
Thank you for your help !