Проблемы начались с малого, уже этот код не компилируется, причем MPASM и MPLAB выдают совершенно разные ошибки.
Код: Выделить всё
LIST P=16F84A
;---------------------------------------------------------
PORTA EQU 5
PORTB EQU 6
TRISB EQU 86H
TRISA EQU 85H
OPTREG EQU 81H
STATUS EQU 3
CARRY EQU 0
RP0 EQU 5
PCL EQU 2
INTCON EQU 0BH
TMR0 EQU 01H
FSR EQU 04H
FSR_B EQU 0FH
;---------------------------------------------------------
SEC EQU 0CH
MIN EQU 0DH
HOUR EQU 0EH
;---------------------------------------------------------
D_CH1 EQU 10H
D_CH2 EQU 11H
D_CH3 EQU 12H
D_CH4 EQU 13H
D_CH5 EQU 14H
;---------------------------------------------------------
CLRF PORTA
CLRF PORTB
;---------------------------------------------------------
BSF STATUS,5
CLRF TRISA
CLRF TRISB
BCF STATUS,5
;---------------------------------------------------------
BCF OPTREG,5
BSF INTCON,5
BSF INTCON,7
CLRF TMR0
;---------------------------------------------------------
;---------------------------------------------------------
ORG 0
GOTO MAIN
;---------------------------------------------------------
ORG 4
GOTO INT
;---------------------------------------------------------
INT MOVF FSR,0
MOVWF FSR_B
CLRF TMR0
INCF SEC,1
MOVF FSR_B,0
MOVWF FSR
RETFIE
;---------------------------------------------------------
MAIN CALL MOD
MOVLW B'00000001'
MOVWF PORTA
MOVLW D_CH1
MOVWF PORTB
MOVLW B'00000010'
MOVWF PORTA
MOVLW D_CH2
MOVWF PORTB
MOVLW B'00000100'
MOVWF PORTA
MOVLW D_CH3
MOVWF PORTB
MOVLW B'00001000'
MOVWF PORTA
MOVLW D_CH4
MOVWF PORTB
MOVLW B'00010000'
MOVWF PORTA
MOVLW D_CH5
MOVWF PORTB
GOTO MAIN
;---------------------------------------------------------
MOD MOVF SEC,0
MOVWF D_CH1
RETURN
;---------------------------------------------------------
END
Прочитал даташит по контролеру, самоучитель Корабельникова, несколько исходников часов и таймеров, но запутался ещё больше, нигде не нашёл как таймером отмерять 1 сек.


