LIST P=16F628A ;Тип процессора
INCLUDE "P16F628A.INC" ;Присоединение файла описания
;Конфигурируем контроллер
__CONFIG _INTOSC_OSC_NOCLKOUT&_WDT_OFF&_LVP_OFF&_MCLRE_OFF&_PWRTE_ON&DATA_CP_OFF&_CP_OFF
ERRORLEVEL -302 ;Чтобы небыло сообщения про банки
CBLOCK 20H ;Блок РОН начинается с адреса 20Н
ENDC ;Конец блока
BANK0 MACRO ;Макрос перехода в банк 0
BCF STATUS,RP0 ;Сбрасываем бит банка
BCF STATUS,RP1 ;Сбрасываем бит банка
ENDM ;Конец макроса BANK0
BANK1 MACRO ;Макрос перехода в банк 1
BSF STATUS,RP0 ;Bit Set File
BCF STATUS,RP1 ;Bit Cleare File
ENDM
ORG 0 ;Установка текущего адреса на 0
GOTO START ;Идём на начало кода
ORG 4 ;Установка вектора прерывания
GOTO ISR ;Идем на начало подпрограммы прерывания
START MOVLW B'00000111' ;Data Sheet 10.0 COMPARATOR MODULE
MOVWF CMCON ;Отключаем компоратор
BANK1 ;Data Sheet 4.0 Memory Organization
MOVLW 0FFH ;В регистр WREG все единицы 1111 1111=0FFh
MOVWF TRISB ;Порт RB на вход
MOVLW 0 ;В регистр WREG все ноли
MOVWF TRISA ;Порт RA на выход
MOVLW B'00001000' ;Включаем подтягивоющие резисторы
MOVWF OPTION_REG ;(смотри Data Sheet 4.2.2.2 OPTION Register)
BANK0 ;Переходим в банк 0
MAIN MOVF PORTB,W ;Копируем значения порта RB в рабочий регистр WREG
MOVWF PORTA ;Из WREG в PORTA
GOTO MAIN ;Бесконечный цикл
ISR RETFIE ;Возврат из Interrupt Servis Routing
END ;Конец программы
НАЗАД Cи ATtiny2313 ASSEMBLER ATtiny2313 ДАЛЕЕ