Четверг, Сентябрь 24, 2020

Мигающий светодиод PIC ASM

;При нажатии на кнопку-светодиод начинает мигать,если отпустить-тухнет.            
            LIST        P=16F628A
            INCLUDE     P16F628A.INC
            __CONFIG    _INTOSC_OSC_NOCLKOUT&_WDT_OFF&_PWRTE_ON&_MCLRE_OFF&_LVP_OFF
            ERRORLEVEL  -302
            CBLOCK      20H
            J
            K
            ENDC
BANK0       MACRO
            BCF         STATUS,RP0
            BCF         STATUS,RP1
            ENDM
BANK1       MACRO
            BSF         STATUS,RP0
            BCF         STATUS,RP1
            ENDM
            ORG         0
            GOTO        START
            ORG         4
            GOTO        ISR
START       MOVLW       7
            MOVWF       CMCON
            BANK1
            BSF         TRISB,0            ;Порт Б бит 0-вход
            BCF         TRISA,0            ;Порт А бит 0-выход
            BCF         OPTION_REG,NOT_RBPU;Вкл. pullup
            BANK0
MAIN        BSF         PORTA,0            ;Выкл.светодиод
            BTFSC       PORTB,0            ;Кнопка нажата?
            GOTO        MAIN               ;Нет
            BCF         PORTA,0            ;Да.Вкл.светодиод
            CALL        DELAY              ;Задержка
            BSF         PORTA,0
            CALL        DELAY
            GOTO        MAIN
            GOTO        MAIN
DELAY       MOVLW       .100
            MOVWF       J
LOOPJ       MOVLW       .255
            MOVWF       K
LOOPK       DECFSZ      K,F                ;Отнимаем 1-цу от К и сохраняем в К
            GOTO        LOOPK
            DECFSZ      J,F
            GOTO        LOOPJ
            RETURN
ISR         
            RETFIE
            END




НАЗАД                  Assembler AVR                  Си AVR                  ДАЛЬШЕ


 

Back to Top