;В предыдущем примере мы передвигались по таблице числами от 0 до 9.Нам нужно преобразовать любое число в этот формат.Например число 1234=0000 0100 1101 0010 - нужно сначала вывести 1 потом 2,3 и 4.
LIST P=16F628A
INCLUDE P16F628A.INC
CBLOCK 20H
LED3:1,LED2:1,LED1:1,LED0:1
TEMPL:1,TEMPH:1
COUNT:1,MEM:1
ENDC
ORG 0
MAIN MOVLW B'00000100'
MOVWF TEMPH ;Загружаем старший байт
MOVLW B'11010010'
MOVWF TEMPL ;Загружаем младший байт
CALL BIN2BCD ;На выходе в LED0-LED3 наше число в BCD
GOTO MAIN
BIN2BCD MOVLW .16
MOVWF COUNT
CLRF LED0
CLRF LED1
CLRF LED2
CLRF LED3
LOOP8 RLF TEMPL,F
RLF TEMPH,F
RLF LED0,F
RLF LED1,F
DECFSZ COUNT,F
GOTO ADJDEC
SWAPF LED1,W
ANDLW 0FH
MOVWF LED3
MOVFW LED1
ANDLW 0FH
MOVWF LED2
SWAPF LED0,W
ANDLW 0FH
MOVWF LED1
MOVFW LED0
ANDLW 0FH
MOVWF LED0
RETURN
ADJDEC MOVLW LED0
MOVWF FSR
CALL ADJBCD
MOVLW LED1
MOVWF FSR
CALL ADJBCD
GOTO LOOP8
ADJBCD MOVLW 3
ADDWF INDF,W
MOVWF MEM
BTFSC MEM,3
MOVWF INDF
MOVLW 30H
ADDWF INDF,W
MOVWF MEM
BTFSC MEM,7
MOVWF INDF
RETLW 0
END
НАЗАД Cи ATtiny2313 ASSEMBLER ATtiny2313 ДАЛЕЕ