Мигаем светодиодом на pic16f628 (asm)

Эта программа заставляет светодиод мигать с частотой 2 Гц. Используется внутренний RC-генератор с частотой 4 МГц. Написана на языке ассемблер.

Схема подключения:

Скачать hex,asm,inc и др. для прошивки pic16f628 (также в папке с архивами присутствует программа mpasmwin – позволяющая создавать hex файлы из asm, её можно запускать как в Windows, так и на Linux при помощи wine):
– скачать в zip архиве.
– скачать в tar.gz архиве.

Код на ассемблере:


        LIST P=16F628, R=DEC    ; Use the PIC16F628 and decimal system 

        #include "P16F628.INC"  ; Include header file 

        __config  _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON 

        CBLOCK 0x20             ; Declare variable addresses starting at 0x20
          Loop1,Loop2 
        ENDC 
; 
; ----------- 
; INITIALIZE 
; ----------- 
; 
        ORG    0x000           ; Program starts at 0x000 
 
        CLRF   PORTA           ; Initialize port A 
        CLRF   PORTB           ; Initialize port B 
 
        BSF    STATUS,RP0      ; RAM bank 1 
 
        CLRF   TRISA           ; All pins port A output 
        CLRF   TRISB           ; All pins port B output 

        BCF    STATUS,RP0      ; RAM bank 0 
; 
; ------------------------ 
; FUNCTION OF PORT A PINS 
; ------------------------ 
; 
        MOVLW    7 
        MOVWF    CMCON         ; Comparators off, all pins digital I/O 
; 
; ---------- 
; MAIN LOOP 
; ---------- 
; 
Main    BSF     PORTA,2        ; Turn on LED connected to RA2 
        CALL    delay 
        BCF     PORTA,2        ; Turn off LED connected to RA2 
        CALL    delay 
        GOTO    Main 
; 
; --------------- 
; DELAY 250 MSEC 
; --------------- 
; 
delay   MOVLW   250 
        MOVWF   Loop1 
Outer   MOVLW   200 
        MOVWF   Loop2 
Inner   NOP 
        NOP 
        DECFSZ  Loop2,F 
        GOTO    Inner          ; Inner loop = 5 usec. 
        DECFSZ  Loop1,F 
        GOTO    Outer 
        RETURN 

        END

——————————–

Примечание 1:

RA4 (контакт 3) имеет открытый сток. Он не может подавать питание на внешнюю цепь. Если к этому контакту подключен светодиод, он должен быть подключен следующим образом: катод светодиода к контакту 3, анод светодиода к резистору, резистор к +5 В.

——————————-

Примечание 2:

Параметр _INTRC_OSC_NOCLKOUT PIC использует внутренний RC-генератор с частотой 4 МГц. Это означает, что RA6 и RA7 доступны для ввода-вывода.

В регистр CMCON загружается значение 7 для всех выводов порта A, чтобы они работали как цифровые входы/выходы.

Функция сброса вывода 4 (RA5) может быть отключена, а вывод настроен как входной. Это делается путём указания _CLRE_OFF в строке _config.

Все порты можно переключить, заменив основную петлю следующими строками:

;
; ----------
; MAIN LOOP
; ----------
; Apply 2 Hz to all ports
Main MOVLW b'01010101'
MOVWF portA
MOVWF portB
CALL delay
MOVLW b'10101010'
MOVWF portA
MOVWF portB
CALL delay
GOTO Main

Добавить комментарий