Программируем pic16f73, pic16f74, pic16f76, pic16f77 на самодельном простом jdm программаторе – 5 проводков.
Инструкцию (даташит) по микроконтроллерам pic16f73, pic16f74, pic16f76, pic16f77 можно скачать – здесь.
1. Микроконтроллер PIC16F73
Вот такой микроконтроллер – PIC16F73 – обнаружил в схеме старого электрического счетчика – это микроконтроллер 8-Бит, PIC, 20МГц, 7КБ (4Кx14) Flash, c АЦП, 22 I/O [DIP-28]
Схему программатора брал с предыдущей моей записи: “https://gameforstreet.ru/pic-jdm-prostejshij-programmator-dlya-pic-mk/”
Схема программатора для него будет следующая:
В электросчетчике к ней был ещё прикреплён кварц на 4МГц – поэтому в программаторе к ножкам 9 и 10 присоединил и его. Но если микросхема новая, то программируем без кварца.
Скачать inc файл для создания hex файла из asm для Pic16f73 – скачать:
-Pic16f73.inc в zip архиве
-Pic16f73.inc в tar.gz архиве.
1.1. Зажигаем светодиоды на Pic16f73
Простая программа на ассемблере – на порте С светодиоды будут гореть через один. То есть светодиоды, подключённые к ножкам 11 (RC0), 13 (RC2), 15 (RC4), 17 (RC6) – будут гореть, а светодиоды на ножках 12 (RC1), 14 (RC3), 16(RC5), 18(RC7) – светиться не будут – это задаётся следующей строчкой movlw b’01010101′ (соответственно ножки стоят так: сRC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0) – значение 1 – светодиод на ножке светиться, а 0 – нет.
Схема подключения:
, кварц от 4 МГц до 20 МГц (так как поставил _HS_OSC) – внутренний резонатор поставить нельзя, так как в файле inc такой команды – нет, значит и его использовать – нельзя.
– конденсаторы по инструкции (даташит) – берутся для не керамического кварца следующие
То есть по 15 пФ, но я взял по 20 пФ, думаю можно в диапазоне 15-47 пФ.
INCLUDE <P16F73.INC> ERRORLEVEL -302 __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _BODEN_OFF org 0 Start BCF STATUS,RP0 ; select bank 0 CLRF PORTA ; porta=0 BSF STATUS,RP0 ; select bank 1 movlw b'00001000' movwf TRISA CLRF TRISC ; make PORTC pins all output BCF STATUS,RP0 ; select bank 0 movlw b'01010101' movwf PORTC ; set portc pins equal to 0 end
Скачать файлы hex asm inc для прошивки контроллера PIC16F73 :
– в формате zip.
– в формате tar.gz
1.2. Мигаем светодиодами на Pic16f73
Скачать файлы inc, asm, hex, c для мигания светодиодами на Pic16f73:
– в формате zip
– в формате tar.gz
Код на ассемблере (asm), светодиод будет мигать на ножках PORTA, то есть ножки со 2 по 7 (RA0-RA5):
INCLUDE <P16F73.INC> ERRORLEVEL -302 __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _BODEN_OFF Reg_1 EQU 22 Reg_2 EQU 23 Reg_3 EQU 24 org 0 Start BCF STATUS, RP0 ; BCF STATUS, RP1 ; Bank0 CLRF PORTA ; Initialize PORTA by BSF STATUS, RP0 ; Select Bank 1 MOVLW 0x07 ; Configure all pins MOVWF ADCON1 ; as digital inputs MOVLW 0x00 MOVWF TRISA BCF STATUS,RP0 ; select bank 0 movlw b'00000000' movwf PORTA ; set portc pins equal to 0 loop movlw b'11111111' movwf PORTA call Pause movlw b'00000000' movwf PORTA call Pause goto loop Pause movlw 0x173 movwf Reg_1 movlw 0x19 movwf Reg_2 movlw 0x6 movwf Reg_3 wr decfsz Reg_1, 1 goto wr decfsz Reg_2, 1 goto wr decfsz Reg_3, 1 goto wr nop return end
Также вот ещё один код на СИ для мигания на Pic16f73 – на его основе я и написал код выше на ассемблере, светодиод также будет мигать на ножках PORTA, то есть ножки со 2 по 7 (RA0-RA5):
#define _XTAL_FREQ 4000000 #include <pic16f73.h> #include <htc.h> #include <xc.h> __CONFIG(FOSC_HS & WDTE_OFF & PWRTE_OFF & CP_OFF & BOREN_OFF); char counter = 0; //Timer0 //Prescaler 1:256; TMR0 Preload = 61; Actual Interrupt Time : 49.92 ms //Place/Copy this part in declaration section void InitTimer0() { OPTION_REG = 0x87; TMR0 = 61; INTCON = 0xA0; } void interrupt isr(void) { if(TMR0IF) { TMR0IF = 0; TMR0 = 61; //Enter your code here if(++counter == 20) { PORTA = ~PORTA; } } } void main(void) { ADCON1 = 0x07; TRISA = 0x00; TRISB = 0x00; TRISC = 0x00; PORTA = 0x00; PORTB = 0x80; InitTimer0(); while(1) { } }
Схема подключения:
Видео:
“rutube.ru/video/e1817d34dc4200302dec2e1e7fd55941/”
2. Микроконтроллер PIC16F77
Схему программатора брал с предыдущей моей записи: “https://gameforstreet.ru/pic-jdm-prostejshij-programmator-dlya-pic-mk/”
Схема программатора для него будет следующая:
Примечание hex прошивка для pic16f73 стояла на схеме:
– скачать в zip формате.
– скачать в tar.gz формате.