Программатор собираем по следующей схеме – PIC JDM – простейший программатор для PIC МК.
А программируем с помощью бесплатной программы – WimPic800.
Микросхема PIC16F690:
Скачать инструкцию (даташит) по PIC16F690 – можно здесь.
Схема соединения программатора с микросхемой PIC16F690:
Для программирования микросхемы PIC16F690 Вам понадобится файл hex – его можно создать из asm файла с помощью программы MPASMWIN.
также вам понадобиться файл с расширением inc – скачать PIC12F629.INC можно – здесь в формате zip и в формате tar.gz
Перед конвертацией в hex – создайте папку и закиньте в нее asm и inc файл.
Вот несколько примеров кода для программирования на PIC16f690
————————–
Пример 1:
Кухонный Таймер
Скачать hex (можно сразу же прошивать в микросхему) файл Кухонного Таймера можно – здесь:
Скачать в zip формате.
Скачать в tar.gz формате.
Скачать asm файл Кухонного Таймера можно – здесь:
Скачать в zip формате.
Скачать в tar.gz формате.
Кухонный таймер – это таймер, который позволяет установить время в минутах до 63 минут. Когда время истекает, раздается звуковой сигнал. Мы используем микроконтроллер PIC16f690. Оставшееся время отображается в двоичном формате с помощью светодиодов. Есть 6 светодиодов для минут (контакты 14-19) и 5 светодиодов для секунд (контакты 2,3,5,6,7). Контакт 11 соединен с зуммером. Контакт 10 соединен с кнопкой, которая позволяет пользователю добавить минуту к таймеру.
Для секунд наиболее значимым битом является вывод 7, а для минут наиболее значимым битом является вывод 14. Второй индикатор считает до 30, а затем возвращается к нулю в двоичном формате. Таймер начинается с одной минуты, и можно нажать кнопку, чтобы добавить к таймеру еще несколько минут.
Код сборки для таймера – kitimer2.asm . Минуты отображаются в двоичном формате на выводах 19 -> 14, причем младшим значащим битом является вывод 19. Секунды отображаются на выводах 7,6,5,3,2, причем младший значащий бит равен 2. Резистор 10 Ком на выводе 10 используется в качестве “подтягивающего” резистора для кнопки. Когда кнопка нажата, вывод 10 заземляется, что приводит к “нулю”.
Видео по программированию вышеуказанного примера:
“https://rutube.ru/video/45245bd8213528dbac3ae4bc5dc2f3b5/”
_________________________
Пример 2:
Мигаем светодиодами на портах С:
Скачать asm файл можно – здесь:
Скачать в формате zip.
Скачать в формате tar.gz.
Asm код:
#include <p16F690.inc> __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF) org 0 Start BSF STATUS,RP0 ; select bank 1 CLRF TRISC ; make PORTC pins all output BCF STATUS,RP0 ; select bank 0 CLRF PORTC ; set portc pins equal to 0 volts loop BSF PORTC, 0 ; set pin c0 equal to 5 volts call Pause BCF PORTC, 0 ; set pin C0 equal to 0 volts 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
——————————
Пример: Последовательная передача UART на pic16f690
Про данный пример писал в своей предыдущей статье – здесь-“https://gameforstreet.ru/lekciya-3/”
Также
“https://gameforstreet.ru/uart-pic16f690/”
“https://rutube.ru/video/d099e9d2a33dfd968be2df321f113167/”