Ahoj napsal jsem program, který má spočítat nuly na vstupech RA0 až RA3 a podle toho určit jestli se vypíšou všude na PORTB( RB0 až RB7) nuly nebo jedničky. (Když tam jsou 4 nuly tak je všude 1 na PORTB, když jich je méně tak 0)
Na vstupech RA0 až RA3 mám tlačítka, po zmáčknutí tam přivedu 5V(logická 1) jelikož ubude nula tak by se měly objevit na PORTB (RB0 až RB7) všude nuly.
V emulaci MPLAB program funguje(musím na RB0 až RB3 nuly a jedničky natavit ručně), ale po nahrátí na čip se nic neděje.
Nevím kde je chyba a prosím o pomoc.
http://www.imgup.cz/images/2016/11/15/Vystrizek1.png
[code]LIST P=16F628A
INCLUDE<P16F628A.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _MCLRE_OFF & _BODEN_OFF & _LVP_OFF & _INTRC_OSC_NOCLKOUT
RAMOFF EQU 0X0C
NULY EQU RAMOFF+5
ORG 0X00
BNK0 MACRO
BCF STATUS,RP0
BCF STATUS,RP1
ENDM
BNK1 MACRO
BSF STATUS,RP0
BCF STATUS,RP1
ENDM
BNK1
MOVLW B’11111111’
MOVWF TRISA
MOVLW B’00000000’
MOVWF TRISB
BNK0
NOP
NOP
NOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START
MOVLW 0 ;Vynuluji nuly
MOVWF NULY
; Počítání nul ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BTFSC PORTA,0
GOTO $+2
INCF NULY
BTFSC PORTA,1
GOTO $+2
INCF NULY
BTFSC PORTA,2
GOTO $+2
INCF NULY
BTFSC PORTA,3
GOTO $+2
INCF NULY
;…
;Když budou 4 nuly na PORTA (0 až 3) tak dám všude na PORTB jedničky, když jich bude míň bude na PORTB všude nula
MOVLW 3
SUBWF NULY
DECFSZ NULY
CALL DAL
MOVLW B’11111111’
MOVWF PORTB
GOTO START
DAL
MOVLW B’00000000’
MOVWF PORTB
GOTO START
END[/code]