Я пытаюсь создать простой счетчик на плате PIC16F628A, который будет иметь два входа, один для увеличения значения, один для уменьшения и значения будут отображаться на 7-сегментном дисплее , после того как я закончу эту часть, мне в конечном итоге захочется реализовать это на втором 7-сегментном дисплее и использовать его в качестве электронного замка, поэтому любые дальнейшие рекомендации будут оценены. Я написал свой код, но при попытке компиляции я получаю эти коды ошибок: Counter.asm: 32: Ошибка [116] Адрес этикеток дублированы или различные во втором проходе: «CMCON»Справка по программированию ПИК. Создание счетчика, но у меня есть некоторые ошибки в моем коде
LIST P=16f628A, R=Dec
__FUSES _XT_OSC & _WDT_OFF & _CP_OFF & _PWRTE_ON
include "P16f628A.inc"
CBLOCK 0x20
W_TEMP
STATUS_TEMP
COUNTER
FLAGS
FILTR1
FILTR2
ENDC
#DEFINE ST_BT1 FLAGS,0
#DEFINE ST_BT2 FLAGS,1
MIN EQU .0 ;minimum counter value
MAX EQU .15 ;maximum counter value
T_FILTR EQU .255
CMCON
movlw 0x07
movwf CMCON
;reset
ORG 0x00
GOTO start
ORG 0x04
CLRF INTCON
RETURN
DISP7
MOVF COUNTER,W
ANDLW B'0001111'
ADDWF PCL,F
;
RETLW b'11101110' ;digit 0
RETLW b'00101000' ;digit 1
RETLW b'11001101' ;digit 2
RETLW b'01101101' ;digit 3
RETLW b'00101011' ;digit 4
RETLW b'01100111' ;digit 5
RETLW b'11100111' ;digit 6
RETLW b'00101100' ;digit 7
RETLW b'11101111' ;digit 8
RETLW b'00101111' ;digit 9
RETLW b'10101111' ;A
RETLW b'11100011' ;B
RETLW b'11000110' ;C
RETLW b'11101001' ;D
RETLW b'11000111' ;E
RETLW b'10000111' ;F
start
BCF STATUS,RP0
MOVLW B'00000111'
MOVWF CMCON
BSF STATUS,RP0
MOVLW B'00000110'
MOVWF TRISA
MOVLW B'00000000'
MOVWF TRISB
MOVLW B'10000000'
MOVWF OPTION_REG
MOVLW B'00000000'
MOVWF INTCON
BCF STATUS,RP0
CLRF PORTA
CLRF PORTB
CLRF FLAGS
MOVLW MIN
MOVWF COUNTER
GOTO DISPUP
MAIN
MOVLW T_FILTR
MOVWF FILTR1
MOVWF FILTR2
CHECK_BUTTON1
BTFSC PORTA,1 ;is button 1 pressed
GOTO BUTTON1_RELEASED
;yes
DECFSZ FILTR1,F
GOTO CHECK_BUTTON1
BTFSS ST_BT1
GOTO DEC
GOTO CHECK_BUTTON2
BUTTON1_RELEASED
BCF ST_BT1
CHECK_BUTTON2
BTFSC PORTA,2
GOTO BUTTON2_RELEASED
DECFSZ FILTR2,F
GOTO CHECK_BUTTON2
BTFSS ST_BT2
GOTO INC
GOTO MAIN
BUTTON2_RELEASED
BCF ST_BT2
GOTO MAIN
DEC
BSF ST_BT1
MOVF COUNTER,W
XORLW MIN
BTFSC STATUS,Z
GOTO MAIN
DECF COUNTER,F
GOTO DISPUP
INC
BSF ST_BT2
MOVF COUNTER,W
XORLW MAX
BTFSC STATUS,Z
GOTO MAIN
INCF COUNTER,F
GOTO DISPUP
DISPUP
CALL DISP7
MOVWF PORTB
GOTO MAIN
END
Могли бы вы прокомментировать свой код? Это нам очень помогло. –
Я не уверен, что вы имеете в виду, код, который я включил в мой вопрос, это мой код? Спасибо, что посмотрели на это для меня! – whatareyoulookingat