Программируем pic16f690 на самодельном программаторе и схемы

Программатор собираем по следующей схеме – PIC JDM – простейший программатор для PIC МК.
А программируем с помощью бесплатной программы – WimPic800.

Микросхема PIC16F690:

Скачать инструкцию (даташит) по PIC16F690 – можно здесь.

Схема соединения программатора с микросхемой PIC16F690:

Для программирования микросхемы PIC16F690 Вам понадобится файл hex – его можно создать из asm файла с помощью программы MPASMWIN.

Asm файлы можно редактировать обычным блокнотом. А чтобы создать из asm файла hex – воспользуйтесь программой 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/”

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