Эта программа заставляет светодиод мигать с частотой 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


