Контакти

Принцип роботи проблискового маячка з мікро контролером pic. Найпростіша схема на мікроконтролері. Приклади зміни значень в пам'яті мікроконтролера PIC12F629

Отже, прийшов час вивчати мікроконтролери, а потім і їх програмувати, а так же хотілося збирати пристрої на них, схем яких зараз в інтернеті ну просто море. Ну знайшли схему, купили контролер, завантажили прошивку ... .а прошивати то чем ??? І тут перед радіоаматором, початківцям освоювати мікроконтролери, постає питання - вибір програматора! Хотілося б знайти оптимальний варіант, За показником універсальність - простота схеми - надійність. «Фірмові» програматори і їх аналоги були відразу виключені в зв'язку з досить складною схемою, Що включає в себе ті ж мікроконтролери, які необхідно програмувати. Тобто виходить «замкнене коло»: що б виготовити програматор, необхідний програматор. Ось і почалися пошуки і експерименти! На початку вибір припав на PIC JDM. Працює даний програматор від com порту і живиться від туди ж. Був випробуваний даний варіант, впевнено запрограмував 4 з 10 контролерів, при харчуванні окремому ситуація покращилася, але не на багато, на деяких комп'ютерах він взагалі відмовився що або робити та й захисту від «дурня» в ньому не передбачено. Далі був вивчений програматор Pony-Prog. В принципі, майже те ж саме що і JDM.Программатор «Pony-prog», представляє дуже просту схему, з живленням від когось порту комп'ютера, в зв'язку з чим, на форумах, в Інтернеті, дуже часто виникають питання по збоїв при програмуванні того , або іншого мікроконтролера. В результаті, вибір був зупинений на моделі «Extra-PIC». Подивився схему - дуже просто, грамотно! На вході стоїть MAX 232 перетворює сигнали послідовного порту RS-232 в сигнали, придатні для використання в цифрових схемах з рівнями ТТЛ або КМОП, що не перевантажує по току COM-порт комп'ютера, так як використовує стандарт експлуатації RS232, не представляє небезпеки для COM-порта.Вот перший плюс!
Працездатний з будь-якими COM-портами, як стандартними (± 12v; ± 10v) так і з нестандартними COM-портами деяких моделей сучасних ноутбуків, що мають знижені напруги сигнальних ліній, аж до ± 5v - ще плюс! Підтримується поширеними програмами IC-PROG, PonyProg, WinPic 800 (WinPic800) і іншими - третій плюс!
І харчується це все від свого власного джерела живлення!
Було вирішено - треба збирати! Так в журналі Радіо 2007 №8 був знайдений доопрацьований варіант цього програматора. Він дозволяв програмувати мікроконтролери в двох режимах.
Відомі два способи перекладу мікроконтролерів PICmicro в режим програмування:
1.При включеному напрузі живлення Vcc підняти напругу Vpp (на виведення -MCLR) від нуля до 12В
2. При вимкненому напрузі Vcc підняти напругу Vpp від нуля до 12В, потім включити напругу Vcc
Перший режим - в основному для приладів ранніх розробок, він накладає обмеження на конфігурацію виведення -MCLR, який в цьому випадку може служити тільки входом сигналу початкової установки, А в багатьох мікроконтролерах передбачена можливість перетворити цей висновок в звичайну лінію одного з портів. Це ще один плюс даного програматора. Схема його приведена нижче:

крупніше
Все було зібрано на макетке і випробувано. Всі прекрасно і стійко працює, глюків помічено не було!
Була отрисовать печатка для цього програматора.
depositfiles.com/files/mk49uejin
все було зібрано у відкритий корпус, фото якого нижче.




Кабель був виготовлений самостійно з відрізка восьмижильного кабелю і стандартних комовскіх Роз'єм, ніякі нуль модемні тут не покатають, попереджаю відразу! До збірки кабелю слід поставитися уважно, відразу позбудетеся від головного болю надалі. Довжина кабелю повинна бути не більше півтора метрів.
фото кабелю


Отже, програматор зібраний, кабель теж, настала черга перевірки всього цього господарства на предмет працездатності, пошук глюків і помилок.
Спершу наперво встановлюємо програму IC-prog, яку можна завантажити на сайті розробника www.ic-prog.com, Розпакуйте програму в окремий каталог. У утворився катали повинні перебувати три файли:
icprog.exe - файл оболонки програматора.
icprog.sys - драйвер, необхідний для роботи під Windows NT, 2000, XP. Цей файл завжди повинен знаходитися в каталозі програми.
icprog.chm - файл допомоги (Help file).
Встановили, тепер треба б її налаштувати.
Для цього:
1. (Тільки для Windows XP): Правою кнопкою клацніть на файлі icprog.exe. «Властивості» \u003e\u003e вкладка «Сумісність» \u003e\u003e Встановіть «галочку» на «Запустити програму в режимі сумісності з:" \u003e\u003e виберіть «Windows 2000».
2.Запустіте файл icprog.exe. Виберіть «Settings» \u003e\u003e «Options» \u003e\u003e вкладку «Language» \u003e\u003e встановіть мову «Russian» і натисніть «Ok».
Погодьтеся з твердженням «You need to restart IC-Prog now» (натисніть «Ok»). Оболонка програматора увімкнеться знову.
Налаштування "\u003e\u003e« Программатор

1.Перевірте установки, виберіть використовуваний вами COM-порт, натисніть "Ok".
2.Далі, "Налаштування" \u003e\u003e "Опції" \u003e\u003e виберіть вкладку "Загальні" \u003e\u003e встановіть "галочку" на пункті "Увімкнути. NT / 2000 / XP драйвер "\u003e\u003e Натисніть" Ok "\u003e\u003e якщо драйвер до цього не був устновлено на вашій системі, у вікні" Confirm "натисніть" Ok ". Драйвер встановиться, і оболонка програматора увімкнеться знову.
Примітка:
Для дуже "швидких" комп'ютерів можливо буде потрібно збільшити параметр "Затримка вводу / виводу". Збільшення цього параметра збільшує надійність програмування, однак, збільшується і час, що витрачається на програмування мікросхеми.
3. »Налаштування" \u003e\u003e "Опції" \u003e\u003e виберіть вкладку «I2C» \u003e\u003e встановіть «галочки» на пунктах: «Включити MCLR як VCC» і «Включити запис блоками». Натисніть «Ok».
4. «Налаштування» \u003e\u003e «Опції» \u003e\u003e виберіть вкладку «Програмування» \u003e\u003e зніміть «галочку» з пункту: «Перевірка після програмування» і встановіть «галочку» на пункті «Перевірка при програмуванні». Натисніть «Ok».
Ось і налаштували!
Тепер би нам протестувати вибору програм в місці з IC-prog. І тут все просто:
Далі, в програмі IC-PROG, в меню, запустіть: Налаштування \u003e\u003e Тест Програматори

Перед виконанням кожного пункту методики тестірванія, не забувайте встановлювати все «поля» в початкове положення (всі «галочки» зняті), як показано на малюнку вище.
1. Встановити «галочку» в поле «Увімкнути. Вихід Даних », при цьому, в поле« Вхід Даних »повинна з'являтися« галочка », а на контакті (DATA) роз'єму X2, має встановитися рівень лог. «1» (не менше +3,0 вольт). Тепер, замкніть між собою контакт (DATA) і контакт (GND) роз'єму X2, при цьому, відмітка в полі «Вхід Даних» повинна пропадати, поки контакти замкнуті.
2. При установці «галочки» в поле «Увімкнути. Тактирования », на контакті (CLOCK) роз'єму X2, повинен встановлюватися рівень лог. «1». (Не менше +3,0 вольт).
3. При установці «галочки» в поле «Увімкнути. Скидання (MCLR) », на контакті (VPP) роз'єму X3, повинен встановлюватися рівень + 13,0 ... +14,0 вольт, і світитися світлодіод D4 (зазвичай червоного кольору) .Якщо перемикач режимів поставити в положення 1 то буде світиться світлодіод HL3
Якщо при тестуванні, будь-якої сигнал не проходить, слід ретельно перевірити весь шлях проходження цього сигналу, включаючи кабель з'єднання з COM-портом комп'ютера.
Тестування каналу даних програматора EXTRAPIC:
1. 13 висновок мікросхеми DA1: напруга від -5 до -12 вольт. При установці «галочки»: від +5 до +12 вольт.
2. 12 висновок мікросхеми Da1: напруга +5 вольт. При установці «галочки»: 0 вольт.
3. 6 висновок мікросхеми DD1: напруга 0 вольт. При установці «галочки»: +5 вольт.
3. 1 і 2 висновок мікросхеми DD1: напруга 0 вольт. При установці «галочки»: +5 вольт.
4. 3 висновок мікросхеми DD1: напруга +5 вольт. При установці «галочки»: 0 вольт.
5. 14 висновок мікросхеми DA1: напруга від -5 до -12 вольт. При установці «галочки»: від +5 до +12 вольт.
Якщо все тестування пройшло успішно, то програматор готовий до експлуатації.
Для підключення мікроконтролера до программатору можна використовувати відповідні панельки або ж зробити адаптер на основі ZIF панельки (з нульовим зусиллям притиснення), наприклад як тут radiokot.ru/circuit/digital/pcmod/18/.
Тепер кілька слів про ICSP - внутрісхемний програмування
PIC-контролерів.
При використанні ICSP на платі пристрою слід передбачити можливість підключення програматора. При програмуванні з використанням ICSP до программатору повинні бути підключені 5 сигнальних ліній:
1. GND (VSS) - загальний провід.
2. VDD (VCC) - плюс напруга живлення
3. MCLR "(VPP) - вхід скидання мікроконтролера / вхід напруги програмування
4. RB7 (DATA) - двонаправлена \u200b\u200bшина даних в режимі програмування
5. RB6 (CLOCK) Вхід синхронізації в режимі програмування
Решта висновки мікроконтролера не використовуються в режимі внутрисхемного програмування.
Варіант підключення ICSP до мікроконтролеру PIC16F84 в корпусі DIP18:

1.Лінія MCLR "розв'язується від схеми пристрою перемичкою J2, яка в режимі внутрисхемного програмування (ICSP) розмикається, передаючи висновок MCLR в монопольне управління программатору.
2.Лінія VDD в режимі програмування ICSP відключається від схеми пристрою перемичкою J1. Це необхідно для виключення споживання струму від лінії VDD схемою пристрою.
3.Лінія RB7 (двунаправленная шина даних в режимі програмування) ізолюється по току від схеми пристрою резистором R1 номіналом не менше 1 кОм. У зв'язку з цим максимальний впадає / стікає струм, який забезпечувався б цією лінією буде обмежений резистором R1. При необхідності забезпечити максимальний струм, резистор R1 необхідно замінити (як у випадку c VDD) перемичкою.
4.Лінія RB6 (Вхід синхронізації PIC в режимі програмування) так само як і RB7 ізолюється по току від схеми пристрою резистором R2, номіналом не менше 1 кОм. У зв'язку з цим максимальний впадає / стікає струм, який забезпечувався б цією лінією буде обмежений резистором R2. При необхідності забезпечити максимальний струм, резистор R2 необхідно замінити (як у випадку з VDD) перемичкою.
Розташування висновків ICSP у PIC-контролерів:


Ця схема тільки для довідки, висновки програмування краще уточнити з даташіта на мікроконтролер.
Тепер розглянемо прошивку мікроконтролера в програмі IC-prog. Будемо розглядати на прикладі конструкції ось від сюди rgb73.mylivepage.ru/wiki/1952/579
Ось схема пристрою


ось прошивка
Прошиваємо контролер PIC12F629. Даний мікроконтролер для своєї роботи використовує константу osccal - являє собою 16-ти ковий значення калібрування внутрішнього генератора МК, за допомогою якого МК вичитує час при виконанні своїх програм, яка записана в останній комірці даних піку. Підключаємо даний мікроконтролер до программатору.
Нижче на сріншоте червоними цифрами показана послідовність дій в програмі IC-prog.


1. Вибрати тип мікроконтролера
2. Натиснути кнопку «Читати мікросхему»
У вікні «Програмний код» в самій останній комірці буде наша константа для даного контролера. Для кожного контролера константа своя ! Чи не зітріть її, запишіть на папірець і наклейте її на мікросхему!
йдемо далі


3. Натискаємо кнопку «Відкрити файл ...», вибираємо нашу прошивку. У вікні програмного коду з'явиться код прошивки.
4. Спускаємося до кінця коду, на останній комірці тиснемо правою клавішею миші і вибираємо в меню «правити область», в поле «Шістнадцяткові» вводимо значення константи, яку записали, натискаємо «ОК».
5. Натискаємо «програмувати мікросхему».
Піде процес програмування, якщо все пройшло успішно, то програма виведе відповідне повідомлення.
Витягуємо мікросхему з програматора і вставляємо в зібраний макет. Включаємо харчування. Натискаємо кнопку пуск.Ура працює! Ось відео роботи мигалки
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
З цим розібралися. А ось що робити якщо у нас є файл вихідного коду на асемблері asm, а нам потрібен файл прошивки hex? Тут необхідний компілятор. і він є - це Mplab, в цій програмі можна як писати прошивки так і компілювати. Ось вікно компілятора


встановлюємо Mplab
Знаходимо у встановленій Mplab програму MPASMWIN.exe, зазвичай знаходиться в папці - Microchip - MPASM Suite - MPASMWIN.exe
Запускаємо її. У вікні (4) Browse знаходимо наш исходник (1) .asm, у вікні (5) Processor вибираємо наш мікроконтролер, натискаємо Assemble і в тій же папці де ви вказали исходник з'явиться ваша прошівка.HEX Ось і все готово!
Сподіваюся ця стаття допоможе початківцям в освоєнні PIC контролерів! Успіхів!


Це пристрій не блищить особливою оригінальністю, але може кому і стати в нагоді. Ідея така, маємо 3 входу: стопи, лівий і правий поворотники, а також дві світлодіодні смужки зліва і справа по 8 світлодіодів. При натисканні на педаль гальма - обидві смужки блимають різними ефектами, доповнюючи основні ліхтарі стопів. Коли включений скажімо правий поворотник - в такт йому по правій смузі пробігає вогник, якщо включений лівий - то по лівій смузі. Коли включена аварійка - блимають всі світлодіоди в матриці синхронно з аварійкою.

Додатково є ще один вхід - "мигалка". Особливого призначення йому немає, просто шкода було ніжку PICа кидати в повітрі. При подачі на цей вхід сигналу 12В, все світлодіоди матриці швидко блимають, можна застосувати наприклад при включенні ліхтарів заднього ходу.

для правильної роботи пристрою світлодіоди повинні бути розташовані так, як показано на малюнку вище. 1-й діод по схемі це ближній до корпусу пристрою, 8-й СД - це крайній світлодіод на лінійці. Відповідно позначені леви і праві лінійки.

Це пристрій можна розмістити за заднім склом автомобіля або на спойлері. Світлодіоди, звичайно, повинні бути червоними! Ніякої налагодження пристрою не потрібно, запускається воно відразу. У режимі очікування споживання струму мізерно мало, тому для акумулятора абсолютно не страшно.









файл:
Розмір:
вміст:

mk_stop_2.rar
48.9 КБ
малюнок друкованої плати (LAY) і файл прошивки мікроконтролера (HEX)

Дана схема являє собою простий світлодіодний стробоскоп, Побудований на мікроконтролері PIC12f629. У стробоскопи є 4 перемички за допомогою яких можна вибрати один з варіантів роботи світлодіода.

Є такі режими: інтервал між імпульсу (30 мсек і 10 мсек), частота повторень (1, 2, 3 і 4 с), створення одинарних або подвійних спалахів.

Оскільки вихід мікроконтролера PIC12F629 здатний витримати максимальне навантаження в районі 25 мА, то в схему стробоскопа включений транзистор, здатний розвантажити вихід мікроконтролера і збільшити струм, що проходить через світлодіод. Цей транзистор має максимальний струм колектора 100 мА, достатній для харчування більшості типів 5 мм світлодіодів.

Резистор R4 виконує роль обмежувача струму для світлодіода. При харчуванні стробоскопа в 5 вольт і падінні напрузі на світлодіоді в 1,8 вольта, ток протікає через світлодіод обмежений 47 мА.

Вхідна напруга не повинна перевищувати 5 вольт. Схема світлодіодного стробоскопа здатна працювати і при 3 вольт, але потрібно буде зменшити опір резистора R4. Слід врахувати, при розрахунку резистора R4, що деякі світлодіоди створюють падіння напруги до 3 вольт, зокрема білий світлодіод і деякі сині і зелені світлодіоди.

Тривалість імпульсу, інтервал і режим стробоскопа можуть бути обрані користувачем за допомогою блок перемичок. Як вже було сказано вище, в схемі реалізовано два режими: поодинокі спалахи і подвійні (пауза між подвійними спалахами становить за замовчуванням - 175 мсек).

Інтервал між серією спалахів вимірюється від кінця одного імпульсу групи до початку наступної групи.

Вибір режиму роботи світлодіодного стробоскопа

Час тривалості імпульсу, інтервал і подвійний режим все налаштовується шляхом редагування значення в EEPROM мікроконтролера PIC12F629, до його прошивки. Це значно спрощує редагування значень, оскільки не потрібно повторно компілювати вихідний код програми. Просто необхідно прошити HEX в пам'ять мікроконтролера.

Приклади зміни значень в пам'яті мікроконтролера PIC12F629

Зміна тривалості спалаху. Припустимо, ви хочете отримати тривалість імпульсу спалаху (замість 30 мсек за замовчуванням) 40 мсек. Тоді значення, яке потрібно записати в EEPROM визначається наступним чином: 40 мсек / 1 мсек \u003d 40. Тепер переведемо 40 в шістнадцяткову систему, отримаємо 28, яке і потрібно записати в 00 адреса EEPROM.

Розрахуємо зміну інтервалу між подвійними спалахами на 0,2 сек (замість 175 мсек за замовчуванням). Для цього 200 мсек / 1 мсек \u003d 200. Переводимо в шістнадцяткову систему отримаємо C8 яке записуємо в адресу 02.

Щоб змінити інтервал між серією спалахів на 1,3 сек (замість 1 сек за замовчуванням) потрібно зробити наступне: 1,3 сек / 100 мсек \u003d 13. Переводимо в шістнадцятковий вид отримуємо 0D. Дане значення прописуємо на адресу 03 EEPROM.

Необхідно зауважити, що 255 це максимальне значення, яке можна прописати в одну адресу пам'яті.

Найпростіший спосіб перевести число з десяткової в шістнадцяткову систему (наприклад, число 40), це в пошуковику google.com набрати: 40 to HEX. Отримаємо відповідь: 0x28. Приставка 0x в результаті просто вказує нам, що значення наведено в шістнадцятковій системі.

У схемі стробоскопа можна застосувати мікроконтролер як PIC12F629, так і PIC12F675.

Модифікація схеми світлодіодного стробоскопа (азбука Морзе - SOS)

Це модифікована версія стробоскопа, що дозволяє в системі азбуки Морзе організувати світлову передачу сигналу SOS. Довжина точки може бути встановлена \u200b\u200bв одному з чотирьох періодів, а час між двома послідовностями 'SOS' також може бути скоригована.

PIC мікроконтролери, мають Гарвардської архітектурою і виробляються фірмою Microchip Technology Inc. Назва PIC є скороченням від англійської фрази peripheral interface controllers -в переводи на великий і могутній "контролери інтерфейсу периферії". PIC контролери під маркою Microchip випускають 8-, 16- і 32-бітові мікроконтролери, а також цифрові сигнальні контролери DSC. Мікроконтролери PIC мають такі значимі плюси: хороша спадкоємність різних сімейств: повна програмна сумісність і загальні засоби розробки, в тому числі безкоштовне середовище IDE MPLAB, загальні бібліотеки, загальні стеки популярних протоколів передачі, сумісність по периферії, висновків, годує напруженням. Номенклатура контролерів налічує понад 500 різних видів зі всілякими варіантами периферії, різними розмірами пам'яті, продуктивністю, кількістю висновків, діапазонами живлячих напруг, робочими температурами і т.п.


Розглянемо найпростіший контролер сери ПІК PIC16C84 або PIC16F84.

Наявність FLASH-пам'яті, дозволяє перепрограмувати його за лічені секунди. Кількість циклів перезапису мікроконтролера 1000. З його 18 висновків 13 можна використовуватися як розряди введення - виведення загального призначення. Коли вони прошиті на висновок, то допускають струм рівня логічної одиниці "1" до 20мА і ток рівня логічного нуля "0" до 25мА (більш ніж достатній для підключення, наприклад, світлодіодів). Це дає возможноть розробляти на цьому контролері прості і дешеві електронні пристрої і робить його ідеальним кандидатом для бажаючих вивчити і зрозуміти принципи роботи з PIC мікро контролером. Цокольовка висновків 8 бітних мікроконтролерів показана нижче:


Контакти RA * і RB * - це введення і виведення, пов'язані з регістрами контролера PORTA і PORTB відповідно (висновок RA4 можна застосовувати як вхід внутрішнього таймера, а RB0 - використовувати в ролі джерела переривань). VDD і VSS - харчування (+ Uпит і GND). Серія мікроконтролерів 16x84 працює в широкому інтервалі напруг, але зазвичай VSS приєднаний до 0 В, а VDD - +5 В. Висновок головного скидання / MCLR зазвичай приєднаний до VDD (безпосередньо або через опір), т.к МК містить надійну схему скидання при подачі напруги живлення. Контакти OSC1 і OSC2 приєднуються до генератора тактової частоти і можуть бути налаштовані для різних його типів, включаючи режими резонатора і RC-генератора. Проста схема, із застосуванням контролера PIC 16C84 представлена \u200b\u200bна малюнку нижче:


Схема, крім мікросхеми, має тільки RC-генератор і один висновок RB4 підключений до світлодіоду. До нього є дивовижно коротка (з 6 слів) програма для MPASM на асемблера - миготіння світлодіода.

Наберіть цей код в будь-якому текстовому редакторі, збережіть з розширенням ASM (LIGHTS.ASM), потім проассембліруйте його за допомогою програми MPASM (використовуйте команду "MPASM LIGHTS.ASM") для отримання HEX файлу, який можна залити за допомогою програматора в мікроконтролер.

Подавши харчування на схему, світлодіод буде блимати.

се що потрібно знати про микроконтроллере PIC16F628A, щоб успішно збирати радіолюбительські конструкції на ньому, багато довідкової документації і цікавих схем.

Отже, ми визначилися і зважилися зібрати нашу першу саморобку на мікроконтролері, залишилося тільки зрозуміти як його запрограмувати. Тому нам знадобиться програматор PIC, А зібрати його схему можна і своїми руками, розглянемо для прикладу кілька простих конструкцій.

Ця фірмова і безкоштовна утііта є відмінною середовищем розробки і налагодження програм для всіх мікроконтролерів сімейства PIC, що випускаються компанією Microchip Technology. MPLAB складається з окремих додатків, але пов'язаних один з одним і складається з компілятора з мови асемблер, текстового редактора, Симулятора роботи прошивки контролера, Крім того можна використовувати компілятор з Сі.

Автором Таверньє К. піднесена технічна інформація про програмні засоби розробки на базі PIC-мікроконтролерів. В додатках є колекція схемних і програмних рішень на PIC-мікроконтролерах, реалізовані типові інтерфейси. У книзі розписано дуже багато прикладів програмної реалізації самих різних функцій: організація переривань, підпрограми розширеній арифметики, арифметики з плаваючою комою і т.д. Для закріплення теорії на практиці даються нескладні пристрої, в тому числі годинник-будильник і багатоканальний цифровий вольтметр.

Харчування і тактирование PIC-мікроконтролерів
Розробка додатків. Який мікроконтролер потрібно вибрати
Схемні рішення інтерфейсів мікроконтролерів
Управління світлодіодами і оптронами, реле, цифровими інікаторамі, АЦП
Взаємодія з периферією по послідовному інтерфейсу
Беззнаковое множення 8-розрядних чисел
Знакове і беззнаковое множення 16-розрядних чисел
Ділення, додавання і віднімання 16-розрядно чисел
Операції з плаваючою комою
Перетворення двійковій-десяткових кодів в двійкові
Готові схемотехнічні рішення: годинник-будильник, реалізація інтрерфейса і2ц, вольтметр зі світлодіодною індикацією
Управління кроковими двигунами

Що таке мікроконтролер і як він працює
Система команд PIC16F84A
Що таке програма і правила її складання. Приклад створення програми автоколебательного мультивибратора. Директиви.
Інтегроване середовище проектування MPLAB IDE і робота в ній
Приклад створення програми
Робота в симуляторі. налагодження програми
Приклад розробки програми з відходом в переривання
Організація обчислюється переходу.
Робота з EEPROM пам'яттю даних
Як працює цифровий компаратор
Циклічний зсув. операція множення
Введення в принцип побудови підпрограми динамічної індикації. непряма адресація
Перетворення двійкових чисел в двійковій-десяткові. Остаточне формування тексту підпрограми динамічної індикації
Принцип рахунку. Робота з таймером TMR0. Принцип установки груп команд рахунки в текст програми

Всі чотири книги, крім того в архів додані всі вихідні описуваних програм і інша додаткова довідкова інформація. В архіві також ви знайдете вихідні тексти програм і «прошивки» контролерів. Довідкові матеріали на всі мікроконтролери розглянуті у всіх чотирьох книгах (PIC12c67x PIC16c432 PIC16c433 PIC16c505 PIC16c54_58 PIC16c554_558 PIC16c620_622 PIC16c623_625 PIC16c62B_72A PIC16c63a_65b_73b_74b PIC16c64x_66x PIC16c6x PIC16c717_77x PIC16C71xx PIC16c72 PIC16c72_77 PIC16c745_765 PIC16c77x PIC16c781_782 PIC16c92x PIC16F630_676 PIC16f7x PIC16f84a PIC16f85_86 PIC16F87xA PIC16hv540 PIC16Lc74b PIC17c4x PIC17c752_756 PIC17c7xx PIC17LC752P16 PIC18c601_801 PIC18cXX8)
Введення в CAN 2.0 інтерфейс
Модуль CAN в мікроконтролерах PIC
Програмна реалізація I2C інтерфейсу і короткий його огляд
Мікросхеми KeeLoq з технологією "стрибаючого коду"
Універсальна послідовна шина USB в мікроконтролерах PIC і програмне забезпечення для роботи з USB
Модулі х-розрядного АЦП в мікроконтролерах PIC
Рекомендації по роботі з АЦП в мікроконтролерах PIC
А також софт для програмування описаних в книгах PIC-мікроконтролерів IC-Prog і PonyProg2000

До питань налагодження розробники відносяться по-різному. Одні вважають, що досить уважно проаналізувати вихідний текст програми, перевірити формування сигналів на висновках МК, і можна виправити всі помилки. Інші використовують набори спеціальних підпрограм, які викликаються в контрольних точках і видають певним способом (наприклад, виведенням на індикатор або послідовний канал зв'язку) інформацію про стан ресурсів МК. До речі на цьому заснована технологія ICD (In-Circuit Debugger - внутрісхемний налагодження), що реалізується в деяких МК фірм Motorola і Microchip. Але при будь-якому з вищевказаних способів налагодження виникає одна істотна проблема - необхідність перепрограмування МК після внесення в програму навіть незначних змін. Особливо ця проблема актуальна для однократно програмованих МК. Правда в останньому випадку налагодження можна вести, скажімо, на МК з FLASH-пам'яттю, але все одно час, що витрачається на програмування досить велика і часом досягає декількох хвилин. Крім того, МК, як правило, потрібно витягти з отлаживаемой схеми, підключити до програматора, а потім вставити назад. Ті, хто мав справу з програмуванням на ПК, особливо відчувають різницю. Наприклад, при програмуванні в середовищі Borland C ++ 3.1 (BC ++) для запуску налагоджують програму досить натиснути комбінацію клавіш Ctrl + F9, і через кілька секунд вона вже буде працювати (якщо звичайно не містить помилок). Хотілося б отримати подібний результат і при написанні керуючих програм МК. І це можливо завдяки застосуванню ВСЕ, що представляє собою програмно-апаратний засіб, здатне заміщати собою емульований МК в реальному пристрої, З яким його з'єднують кабелем зі спеціальною емуляціонной головкою. Використання такого емулятора нічим не відрізняється від використання реального МК, за винятком того, що модифікована програма перезавантажується під ВСЕ майже миттєво.

Лекція 1 - вступна

Microchip давно відома вітчизняним електронникам завдяки широко поширеною лінійці дешевих 8-бітних мікроконтролерів, які знайшли величезну застосування в різних пристроях терморегуляторів, приладів малої автоматизації, сенсорів і т.п. Щоб не відстати від своїх основних конкурентів, Microchip в 2007 році представила електронну світу свої нові 32-бітові мікроконтролери сімейства PIC32.

У лінійці PIC32MX є величезна кількість пристроїв від PIC32MX1 ** до PIC32MX7 ** з різним об'ємом пам'яті (від 16 КБ флеша і 4096 байт ОЗУ до 512 КБ флеша і 131 КБ ОЗУ), периферійними можливостями і корпусними виконанням. Загалом, присутні моделі практично для будь-якої програми.

Повний варіант лекції з описом типового підключення МК і прикладом його програмування можна взяти тут:

Лекція 2 - Мікроконтролери сімейства PIC32. Робота з таймерами.

За допомогою таймерів реалізовують відлік часу, організовують переривання, формують сигнали з широтно-імпульсною модуляцією і т.п. У контролерах PIC-32 є два типи таймерів - таймери A (по суті, він ніби як і один - TMR1) і таймери типу B (TMR2, TMR3, TMR4, TMR5). Всі таймери 16-розрядні, тактуються від зовнішнього або внутрішнього джерела і викликають переривання.

Лекція 3 - Мікроконтролери PIC32 - переривання. Це якесь зовнішнє або внутрішнє подія, що вимагає від контролера негайної реакції на нього. При цьому виконання поточного програмного коду на час завершується, МК зберігає значення службових регістрів і входить в обробник переривання, потім обробляє це переривання, а по виходу з нього відновлює службові регістри і знову повертається до місця виконання коду.

МК серії PIC16 фірми Microchip здатні виконувати нескладні арифметичні команди з 8-розрядними операндами, т.к їх ядро \u200b\u200bсаме 8-розрядний. Але в деяких проектах необхідно набагато більше обчислювальних ресурсів, Тому в таких моменти знадобиться використання спеціальної бібліотеки арифметичних операцій. Представлена, за посиланням вище бібліотека дозволить виконати множення, ділення, віднімання і додавання 16-бітних чисел, ви зможете конвертувати числа в різні форми, Перевірити парність, звести число в квадрат і ще технічна купка корисних дрібниць.

У новорічні свята, та й не тільки, виникає велика потреба в світловий ілюмінації.

Цей пристрій можна назвати по-різному: лампою настрою, RGB-світильником, новорічної лампою, світлодіодним маяком та ін. Як його використовувати - підкаже фантазія.

Ось схема кольорового RGB-світильника на мікроконтролері PIC12F629 (або PIC12F675). Для збільшення клікніть по зображенню.

Зовнішній вигляд зібраного RGB-світильника.

Відео роботи світильника в режимі "лампи настрою" (Mood Lamp).

Схема пропонованого пристрою досить проста, але має безліч режимів роботи. Ось лише деякі з них:

    Повільна зміна кольорів. Зелене, червоне і синє світіння різної інтенсивності змішуються, що дозволяє отримати плавний перебір кольорів веселки;

    Швидке почергове миготіння червоним, зеленим і синім кольором;

    Плавне збільшення білого світіння і потім 4 спалаху. Потім йде повторення циклу;

    Почергове різке спалахування і повільне згасання основних кольорів (синього, червоного, зеленого). Після цикл повторюється.

    Рівне світіння червоним;

    Рівне світіння синім;

    Рівне світіння зеленим;

    Миготіння синім;

    Прискорена зміна кольорів;

    Рівне біле світіння;

    Рівне біле світіння зі зниженою яскравістю;

    Рівне біле світіння з мінімальною яскравістю;

    Рівне світіння фіолетовим (червоний + синій);

    Рівне світіння помаранчевим (червоний + зелений).

Це основні режими роботи світильника. Всі інші є варіантами плавної зміни кольорів веселки з різною швидкістю.

Щоб оцінити по достоїнству всю багату палітру режимів і працездатність пристрою краще спочатку його зібрати на беспаечное макетної платі. Так званої, "хлібної дошці" (Breadboard).

Щоб світіння від різних світлодіодів змішувалося і утворювало рівний відтінок кольору, світлодіоди потрібно розміщувати як можна ближче один до одного. Також після макетування схеми можна взяти білий аркуш формату А4, згорнути його в циліндр і закріпити на всі боки скріпками. Одержаний паперовий циліндр встановлюємо на беспаечное макетну плату - закриваємо світлодіоди. В результаті у нас вийде своєрідний матовий плафон. Ось що з цього може вийти.

Мікроконтролер перед запаюванням в плату потрібно "прошити". Про те, як це зробити, я вже розповідав на сторінках сайту. Чим прошивати - окреме питання. Якщо нема чим, то спочатку потрібно зібрати самостійно USB програматор мікроконтролерів PIC або купити вже готовий. Він ще не раз стане в нагоді.

Під час прошивки PIC12F629 або PIC12F675 потрібно звернути увагу на калібровану константу. Не зайвим буде спочатку вважати ( "Read") Дані з чистого мікроконтролера і записати абикуди на бумажіну значення константи. Після прошивання мікроконтролеру потрібно перевірити чи відповідає значення константи в осередку 0x3FF вважалося раніше значенням. Якщо воно відрізняється, то міняємо константу. Про те, що таке калібрувальна константа я вже розповідав.

Список необхідних радіодеталей для збірки RGB-світильника.

Назва позначення Параметри / Номінал Марка або тип елемента
мікроконтролер DD1 8-бітний мікроконтролер PIC12F629 або PIC12F675
інтегральний стабілізатор DA1 на вихідну напругу 5 вольт 78L05, MC78L05ACP (будь-аналог)
MOSFET-транзистори VT1 - VT3 - 2N7000 або КП501А ( Увага! У КП501А інша цокольовка!)
напівпровідниковий діод VD1 (Не обов'язковий) 1N4148, 1N4007 або аналог
світлодіоди HL1 - HL4 червоного кольору світіння будь-які яскраві діаметром 5 мм.
HL5 - HL7 зеленого кольору світіння
HL8 - HL10 синього кольору світіння
резистори R1 120 Ом МЛТ, МОН (на потужність розсіювання - 0,125 Вт)
R2, R3 68 Ом
конденсатори С2 220 нФ (0,22 мкФ) Керамічні багатошарові або будь-які аналоги
С3 100 нФ (0,1 мкФ)
електролітичний конденсатор C1 47 мкФ * 16 вольт будь-який алюмінієвий (К50-35 або зарубіжні аналоги)
кнопка SB1 - будь-яка тактова кнопка (наприклад, KAN0610-0731B)
джампер J1 (не встановлюється) -

Після подачі живлення пристрій починає працювати відразу. Натисканням кнопки SB1 можна перемикати режим роботи RGB-світильника. Кнопку можна натискати хоч до безкінечності - перемикання режимів відбувається по колу.

Друковану плату легко виготовити за допомогою маркера для плат. Так робив я. Якщо маркера для плат немає, то можна застосувати "олівцем" метод або цапонлак. Чи вмієте робити плати ЛУТ'ом - ще краще.

Ну, а якщо немає нічого з перерахованого, а зробити саморобку дуже хочеться, то замість склотекстоліти можна використовувати товстий картон, шматок тонкого пластику або фанери. Загалом, все те, на чому можна змонтувати схему навісним монтажем. З'єднання можна виконати мідним дротом зі зворотного боку підстави.

Зараз таку пораду здасться дикістю, але коли я тільки починав займатися електронікою, то пробував всякі способи монтажу схем. В ті недалекі часи витратні матеріали та деталі купували на радіоринках, які були тільки у великих містах. Про замовлення радіодеталей онлайн ми могли тоді тільки мріяти.

Пояснення до схеми.

Транзистори 2N7000 можна замінити на КП501А. Але варто врахувати, що у КП501А інша цокольовка! Ось така.

Захисний діод VD1 годі й впаивать в схему. Він служить для захисту схеми при неправильному підключенні харчування - переполюсовке. Якщо такий захист не потрібна, то діод VD1 теж не потрібен.

Резистори можна підібрати з номіналами, близьким до вказаних на схемі (стандартне допустиме відхилення ± 20%). Я, наприклад, встановлював R1 на 130 Ом, а R2, R3 - 82 Ом.

Для живлення схеми потрібно стабілізований блок живлення з вихідною напругою 12 вольт. Підійде, наприклад, регульований блок живлення, схема якого описана. Також для живлення пристрою можна використовувати



Сподобалася стаття? поділіться їй