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