Пятница, Сентябрь 18, 2020

Шаблон P16F628a

Наш первый пример - это шаблон кода, который мы всегда будем использовать в других примерах.

Создадим новый проэкт с именем SHABLON. Создадим и подключем к проэкту новый файл с именем SHABLON.ASM. Набирите этот код сами. Нажмите клавишу F10 - код скомпилируется. Появится окно об отчёте о проделанной работе компилятора( если будут ошибки в коде сдесь будет описано где и какая). В папке SHABLON появится несколько файлов один из которых SHABLON.HEX - вот его нужно зашивать в микросхему программатором. Можете его открыть блокнотом и увидете так называемый дамп - шеснадцатитеричные цифры.

;Шаблон
            LIST        P=16F628A
            INCLUDE     P16F628A.INC ;Включение файла .INC
            ;Конфигурация контроллера
            __CONFIG    _INTOSC_OSC_NOCLKOUT&_WDT_OFF&_PWRTE_ON&_MCLRE_OFF&_LVP_OFF
            ERRORLEVEL  -302         ;Чтобы небыло сообщения про банки
            CBLOCK      20H          ;С адреса 20Н начало Регистров Общего Назначения
            ENDC                     ;Конец блока Регистров Общего Назначения
BANK0       MACRO                    ;Макрос Банка0
            BCF         STATUS,RP0   ;Скидываем бит выбора банка
            BCF         STATUS,RP1   ;Скидываем бит выбора банка
            ENDM                     ;Конец макроса
BANK1       MACRO                    ;Макрос Банка1
            BSF         STATUS,RP0   ;Подымаем бит выбора банка
            BCF         STATUS,RP1   ;Скидываем бит выбора банка
            ENDM                     ;Конец макроса
            ORG         0            ;Адрес начала кода
            GOTO        START        ;Идём на 0
            ORG         4            ;Адрес начала подпрограммы прерывания
            GOTO        ISR          ;Идём на 4
START       MOVLW       7            ;В WREG 0000 0111
            MOVWF       CMCON        ;Отключаем компаратор
            BANK1                    ;Переход в Банк1
            BANK0                    ;Переход в Банк0
MAIN        GOTO        MAIN         ;Основной цикл программы
ISR                                  ;Начало программы прерывания
            RETFIE                   ;Выход из программы прерывания
            END                      ;Конец программы


 

;Шаблон без коментариев
            LIST        P=16F628A
            INCLUDE     P16F628A.INC
            __CONFIG    _INTOSC_OSC_NOCLKOUT&_WDT_OFF&_PWRTE_ON&_MCLRE_OFF&_LVP_OFF
            ERRORLEVEL  -302
            CBLOCK      20H
            W_TEMP
            STATUS_TEMP
            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
            BANK0
MAIN       

            GOTO        MAIN
ISR         MOVWF       W_TEMP
            SWAPF       STATUS,W
            BCF         STATUS,RP0
            MOVWF       STATUS_TEMP   
                     
EXIT_ISR    SWAPF       STATUS_TEMP,W
            MOVWF       STATUS
            SWAPF       W_TEMP,F
            SWAPF       W_TEMP,W
            RETFIE
            END




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


 

Back to Top