Вроде bin_to_dec рабочий.
- Код: Выделить всё
;********************************************************************
;;=========================================================================
;; Преобразование 10-разрядного двоичного числа
;; в 3-разрядное двоично-десятичное неупакованное число
;; resH:resL - двоичное число
;; r18:r17:r16 - десятичное
bin_to_dec:
ser r18
bin_to_dec1: inc r18
subi resL, 100
sbci resH, 0
brcc bin_to_dec1; вычитаем еще раз (нет заема)
subi resL, -100
sbci resH, 0
ser r17
bin_to_dec2: inc r17
subi resL, 10
brcc bin_to_dec2
subi resL, -10
ser r16
bin_to_dec3: inc r16
subi resL, 1
brcc bin_to_dec3
subi resL, -1
ret
;*************************************************************************
;*************************************************************************
;*************************************************************************
LCD_Write:
;преобразовать десятичный код в ASCII
ldi temp1,0x30 ;Смещение для ASCII кода
add r18,temp1 ;r2
add r17,temp1 ;r3
add r16,temp1 ;r4
;*************************************************************************
;запись в lcd
ldi r16,0x45 ;;;;;;;;;;
rcall LCD_SetAddressDD ;запись в LCD ;;;;;;;;;;;
mov temp1,r2 ;;;;;;;;;;;
rcall LCD_WriteData ;;;;;;;;;;;
mov temp1,r3 ;;;;;;;;;;;;
rcall LCD_WriteData ;;;;;;;;;;
mov temp1,r4 ;;;;;;;;;;;;;;
rcall LCD_WriteData ;;;;;;;;;;
mov temp1,r5 ;;;;;;;;;;;;
rcall LCD_WriteData ;;;;;;;;
mov temp1,r6 ;;;;;;;;;;
rcall LCD_WriteData ;;;;;;;;;;;;;
;************************************************************************
reti