Светим и мигаем светодиодом на pic18f25k20 (подойдёт для pic18fx5k20) 3В

Микроконтроллер pic18f25k20 – работает от 3 В (1.8-3.6 В), поэтому на свой самодельный JDM программатор на вход питания к pic18f25k20 поставил стабилитрон на 3 В.
Прошиваем микроконтроллер pic18fx5k20 самодельным JDM программатором (“gameforstreet.ru/pic-jdm-prostejshij-programmator-dlya-pic-mk/”) и программой winpicpgm_v1570 (скачать можно здесь gameforstreet.ru/proshivaem-pic-v-linux/”) на Linux и Windows.
Программировать будем на С в MPLAB X IDE на Linux.

Схема программатора для прошивки микроконтроллеров на 3 В:

Как установить MPLAB X IDE 5.35 на Linux Rosa Fresh R12:
“rutube.ru/video/3a48602b8d5ca8e23c0bcd4c483c52ed/”
“web.archive.org/web/20200724202813/https://www.microchip.com/development-tools/pic-and-dspic-downloads-archive”
@xc8-v2.05@
“disk.yandex.ru/d/A_HAnG7ksiG80w”
@xc8-v2.10@
“disk.yandex.ru/d/Yw4YFmq-lr9XRw”
@mplab5.35@
“disk.yandex.ru/d/dI3Z36N89NjfEA”

Давайте сначала просто зажжём светодиоды на pic18f25k20 код на С будет следующий (светодиоды будут гореть на ножках RC0,RC1,RC2,RC3,RC4,RC5 – так как PORTC = 0b00111111):

#include <xc.h>
/* 
* CONFIG1H @ 0x300001 
* 
* Internal oscillator with I/O function on RA6 & RA7 
*/ 
#pragma config FOSC = INTIO67 
/* 
* CONFIG2L @ 0x300002 
* 
* Brown Out Reset disabled 
* Power Up Timer enabled 
*/ 
#pragma config BOREN = OFF, PWRT = ON 
/* 
* CONFIG2H @ 0x300003 
* 
* Watchdog Timer disabled 
*/ 
#pragma config WDTEN = OFF
/* 
* CONFIG4L @ 0x300006
* 
* Low Voltage Programming disabled 
* Reset on stack over/underflow disabled 
*/ 
#pragma config LVP = OFF, STVREN = OFF 
#define _XTAL_FREQ 16000000 
void main(void) 
{ 
     OSCCON = 0b01110000; //16MHz Fosc 
     PORTC = 0b00111111; //PORTC RC0-RC5 led on
     TRISC = TRISC & 0b11000000; //RC0 output drivers enabled 
}

Скачать файлы hex и с – зажигаем светодиоды на ножках RC0-RC5:
– скачать в формате tar.gz
– скачать в формате zip

Теперь давайте заставим светодиод мигать.
Код для мигания светодиода на ножке RC0 на С:

#include <xc.h>
/* 
* CONFIG1H @ 0x300001 
* 
* Internal oscillator with I/O function on RA6 & RA7 
*/ 
#pragma config FOSC = INTIO67 
/* 
* CONFIG2L @ 0x300002 
* 
* Brown Out Reset disabled 
* Power Up Timer enabled 
*/ 
#pragma config BOREN = OFF, PWRT = ON 
/* 
* CONFIG2H @ 0x300003 
* 
* Watchdog Timer disabled 
*/ 
#pragma config WDTEN = OFF
/* 
* CONFIG4L @ 0x300006
* 
* Low Voltage Programming disabled 
* Reset on stack over/underflow disabled 
*/ 
#pragma config LVP = OFF, STVREN = OFF 

#define _XTAL_FREQ 16000000 
void main(void) 
{ 
     OSCCON = 0b01110000; //16MHz Fosc 
     PORTC = 0x00; //clear PORTC latch можно записать ещё так PORTC = 0b00000000;
     TRISC = TRISC & 0b11111110; //RC0 output drivers enabled 

while(1) 
{ 
PORTC = PORTC ^ 0b00000001; //toggle LED 
/* 
* 1/2 second flash rate 
*/ 

for(char i = 0; i < 10; i++)
 { 
__delay_ms(49); 
} 
} 
}

Здесь параметр OSCCON = 0b01110000 отвечает за частоту мигания, в инструкции (даташит) к pic18f25k20 на странице 28 можно посмотреть как можно установить разную частоту работы внутреннего генератора, так:
OSCCON = 0b01110000; – 16 МГц
OSCCON = 0b01100000; – 8 МГц
OSCCON = 0b01000000; – 2 МГц
OSCCON = 0b00110000; – 1 МГц
OSCCON = 0b00100000; – 500 кГц
OSCCON = 0b00010000; – 250 кГц
OSCCON = 0b00000000; – 31 кГц (поэтому если не прописать параметр OSCCON в main, то частота микроконтроллера будет – 31 кГц)

Скачать файлы hex и с – мигаем светодиодом на ножке RC0 на pic18f25k20:
– скачать в формате tar.gz
– скачать в формате zip

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