[pic12f675] Этап 1. Помигать светодиодом

Дмитрий Филатов
Рассмотрим управление светодиодом типа АЛ102А при помощи микроконтроллера pic12f675.

Исходные данные
Использовался компилятор SDCC (ОС FreeBSD); программатор EXTRA-PIC; программа для прошивки - IC-Prog (ОС WinXP). Схема собиралась на беспаечной макетной плате.
Даташит на микроконтроллер pic12f675

Радиокомпоненты и приборы
- микроконтроллер pic12f675
- резистор сопротивлением 1 кОм на мощность 0.25 Вт
- светодиод типа АЛ102А
- источник стабилизированного питания напряжением +5 В

Электрическая принципиальная схема
Исходный код прошивки на языке C
Файл pic.c, компилятор SDCC

#include <pic12f675.h>

//Функция задержки
void delay_ms(long ms){
long i;
while(ms--)
for(i=0; i < 330; i++)
;
}

main(){
OSCCAL = 0x80; //Установить внутренний осциллятор на среднюю частоту
TRISIO = 0b11111011; //Установить GPIO2 на выход, остальные - на вход
GPIO = 0b00000000; //На всех GPIO установить логический ноль
CMCON = 0b00000111; //Отключить компаратор
ADCON0 = 0b00000000; //Отключить АЦП
ANSEL = 0b00000000; //Отключить аналоговые входы, все ножки установить как цифровые входы-выходы

while(1){
GPIO2 = 1; //Отправили на пин GP2 логическую 1
delay_ms(50); //Подождали
GPIO2 = 0; //Отправили логический 0
delay_ms(50);
GPIO2 = 1;
delay_ms(1000);
GPIO2 = 0;
delay_ms(250);
}
}

Команда компиляции
Для FreeBSD:
sdcc --use-non-free -mpic14 -p12f675 -o /home/ /home/pic.c
Примечание. В последней на момент написания статьи версии SDCC опция --use-non-free убрана, команда компиляции будет выглядеть так: sdcc -mpic14 -p12f675 -o /home/ /home/pic.c

Алгоритм прошивки
Программатор подключить к COM-порту компьютера при помощи прямого COM-COM кабеля (лучше сделать такой кабель самому), поместить МК в соответствующее гнездо программатора EXTRA-PIC, запустить программу-программатор IC-Prog и прочитать МК. В последней ячейке памяти находится шестнадцатеричная калибровочная константа. Её нужно запомнить. Открыть скомпилированную прошивку (файл *.hex) и при помощи шестнадцатеричного редактора программы-программатора отредактировать последнюю ячейку прошивки, внеся туда прочитанную ранее калибровочную константу. Выбрать: осциллятор IntOSC GP4, Bandgap - Default. Биты конфигурации: выключить все, включить только PWRT. Прошить МК.
2013-11-25