|   Войти

Пример простейшей программы для PIC16F84A

Эта программа включает некоторые светодиоды, подключенные к ножкам порта A и порта B, как показано на схеме:

Текст программы:

      list p=16f84a  ; Указываем компилятору тип процессора

      #include <p16F84A.inc> ; указываем компилятору файл с информацией о регистрах и константах

      bsf     STATUS,RP0  ; Устанавливаем бит RP0 регистра STATUS (т.е. делаем бит RP0 равным 1). Таким образом, переходим на страницу памяти №1. На этой странице расположены регистры TRISA и TRISB.

      movlw   B'00000000' ; Отправляем в рабочий регистр W двоичное число 00000000

      movwf   TRISA          ; Отправляем двоичное число 00000000 из рабочего регистра в регистр TRISA. Так как все биты теперь равны нулю, все ножки порта А установлены, как выходы. 0 – означает выход, а 1- вход.

      movlw   B'00000000'  ;Отправляем в рабочий регистр W двоичное число 00000000

      movwf   TRISB           ; Отправляем двоичное число 00000000 из рабочего регистра в регистр TRISB. Так как все биты теперь равны нулю, все ножки порта B установлены, как выходы. 0 – означает выход, а 1- вход.

      bcf     STATUS,RP0   ; сбрасываем (обнуляем) бит RP0 регистра STATUS. Таким образом, переходим на страницу памяти №0.

      movlw   B'00000100'  ; отправляем в рабочий регистр двоичное число 00000100

      movwf   PORTA         ; отправляем двоичное число 00000100 из рабочего регистра в порт А. В результате будет установлен бит №2 (отсчет ведется от 0) порта A, и соответствующий светодиод будет гореть.

      movlw   B'10011000' ; отправляем в рабочий регистр двоичное число 10011000

      movwf   PORTB        ; отправляем двоичное число 10011000 из рабочего регистра в порт B. Таким образом, будут установлены биты №3, №4 и №7 порта B, и соответствующие светодиоды будут гореть.

LOOP                                ; метка LOOP

        goto   LOOP              ; переход на метку LOOP. Это бесконечный цикл. Программа зацикливается и больше ничего не делает.

END                                   ; конец программы