Мигаем светодиодом на 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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *