Розробка цифрового генератора напруги на базі мікроконтролера PIC16F877

Докладний опис складових електричної схеми. Характеристика мікроконтролера PIC16F877. Рідкокристалічний індикатор МТ12864А. Призначення виводів рідкокристалічного індикатора. Цифро-аналоговий перетворювач MCP 4921. Алгоритм роботи цифрового генератора.

Рубрика Коммуникации, связь, цифровые приборы и радиоэлектроника
Вид курсовая работа
Язык украинский
Дата добавления 20.09.2011
Размер файла 1,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

УКРАЇНСЬКИЙ ДЕРЖАВНИЙ ХІМІКО-ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ

Кафедра АВП

КУРСОВИЙ ПРОЕКТ

з дисципліни: Мікропроцесорні системи

на тему: Розробка цифрового генератора напруги на базі мікроконтролера PIC16F877

Виконав (ла) студент (ка) 3-МС-38

Різник О.С.

Керівник: Гомілко І.В.

Дніпропетровськ

2011

Формат

Зона

Позначення

Найменування

Кільк.

Примітка

Документація знову розроблена

А4

А 11. 22. АТХ. 00. Е1

Схема електрична структурна

1

А4

А 11. 22. АТХ. 00. Е3

Схема електрична принципова

1

А4

А 11. 22. АТХ. 00. ПЗ

Пояснювальна записка

1

А4

А. 11. 22. АТХ. 00. ПЕ

Перелік елементів

1

РЕФЕРАТ

Проект складається з :

· пояснювальної записки

· креслень електричних принципової та структурної схем

· блок-схеми програми

Пояснювальна записка містить :

· Аркушів - 28

· Ілюстрацій - 6

· Таблиць - 4

· Літературних джерел - 5

КЛЮЧОВІ СЛОВА : мікроконтролер, резистор, конденсатор, цифро-аналоговий перетворювач, цифровий генератор напруги, кварцовий генератор, рідкокристалічний індикатор, змінний резистор, клавіатура.

Розробили цифровий генератор напруги на базі мікроконтролера PIC16F877, який дозволяє генерувати прямокутні та трикутні імпульси з вибором стандартних або необхідних параметрів. Представлено алгоритм роботи пристрою, його електричну та принципову схеми.

Зміст

Вступ

1. Докладний опис складових електричної схеми

1.1 Мікроконтролер PIC16F877

1.2 Рідкокрісталічний індикатор МТ12864А

1.3 Цифро-аналоговий перетворювач MCP 4921

1.4 Клавіатура

2. Алгоритм роботи та його опис

Список літератури

ВСТУП

Протягом останніх 20 років методам проектування цифрових пристроїв приділялася зростаюча увага, і в даний час вони входять до навчальних програм більшості університетів і політехнічних інститутів. Спочатку при проектуванні використовувалися дискретні компоненти, але в останні 20 років стали широко застосовуватися схеми з малим і середнім рівнями інтеграції. Це дозволило спростити процес проектування і звести його до задачі складання пристроїв з інтегральних схем. З появою великих інтегральних схем з'явилася можливість розробляти мікропроцесори. З появою у світі однокристальних мікропроцесорів нового сімейства створеного американською фірмою Microchiр - мікроконтролери PIC. Що робіть PIC таким Привабливий для масових виробів? Практично ідеальне поєднання високої швидкодії, низького енергоспоживання, високого ступеня інтеграції пам'яті і периферійних пристроїв у малому корпусі і при всьому цьому - низької ціни.

Одними із широко застосовуваних елементів не тільки аналогової, але і цифрової техніки є генератори імпульсів різної форми. Вони використовуються в блоках управління, введення і виведення ЦВМ, в приладах телеметричних систем та централізованого контролю, в апаратурі зв'язку, радіонавігаційної та радіолокаційної апаратури, для пристроїв автоматики, дискретного управління або перевірки роботи окремих вузлів схеми, в цифрових і цифро-аналогових вимірювальних приладах і т.д. У переважній більшості випадків від такого генератора не потрібні рекордні параметри. Сучасна елементна база дозволяє створити дуже простий і недорогий генератор, що володіє в той же час досить непоганими параметрами. В даній роботі ми розглянемо створення такого приладу на основі мікроконтролера PIC.

1. Докладний опис складових електричної схеми

1.1 Мікроконтролер PIC16F877

Характеристика мікроконтролера:

* Високошвидкісна RISC архітектура

* 35 інструкцій

* Всі команди виконуються за один цикл, крім інструкцій переходів, виконуваних за два цикли

* Тактова частота:

- DC - 20МГц, тактовий сигнал

- DC - 200нс, один машинний цикл

* До 8к x 14 слів FLASH пам'яті програм

До 368 x 8 байт пам'яті даних (ОЗУ)

До 256 x 8 байт EEPROM пам'яті даних

* Сумісність за виводами з PIC16C73B/74B/76/77

* Система переривань (до 14 джерел)

* 8-рівневий апаратний стек

* Прямий, непрямий і відносний режим адресації

* Скидання по включенню живлення (POR)

* Таймер скидання (PWRT) і таймер очікування запуску генератора (OST) після включення живлення

* Сторожовий таймер WDT з власним RC генератором

* Програмована захист пам'яті програм

* Режим енергозбереження SLEEP

* Вибір параметрів тактового генератора

* Високошвидкісна, енергозберігаюча CMOS FLASH / EEPROM технологія

* Повністю статична архітектура

* Програмування в готовому пристрої

(Використовується два виводи мікроконтролера)

* Низьковольтний режим програмування

* Режим внутрішньосхемного налагодження (використовується два виводи мікроконтролера)

* Широкий діапазон напруг живлення від 2.0В до 5.5В

* Підвищена навантажувальна здатність портів вводу / виводу (25мА)

* Мале енергоспоживання:

- <0.6 мА@3.0В, 4.0МГц

- 20мкА@3.0В, 32кГц

- <1мкА в режимі енергозбереження

Характеристика периферійних модулів:

* Таймер 0: 8-розрядний таймер / лічильник з

8-розрядним програмованим предделителя

* Таймер 1: 16-розрядний таймер / лічильник з можливістю підключення зовнішнього резонатора

* Таймер 2: 8-розрядний таймер / лічильник з

8-розрядним програмованим предделителя і вихідним дільником

* Два модуля порівняння / захоплення / ШІМ (CCP):

- 16-розрядний захоплення (максимальна роздільна здатність 12.5нс)

- 16-розрядне порівняння (максимальна роздільна здатність 200нс)

- 10-розрядний ШІМ

* Багатоканальне 10-розрядне АЦП

* Послідовний синхронний порт MSSP

- Ведучий / ведений режим SPI

- Ведучий / ведений режим I2C

* Послідовний синхронно-асинхронний приймач USART з підтримкою детектування адреси

* Ведений 8-розрядний паралельний порт PSP з підтримкою зовнішніх сигналів-RD,-WR,-CS (Тільки в 40/44-виводних мікроконтролерах)

* Детектор зниженої напруги (BOD) для скидання по зниженню напруги харчування (BOR)

Конденсатор С3 призначений для усунення високочастотних пульсацій по живленню. Він повинен бути багатошаровим, керамічним і мати ємність не менше 0,1 мкФ, а також монтуватися як можна ближче до корпусу мікросхеми.

Контролер працює під керуванням ZQ1, який призначений для тактування. Конденсатори С1 і С2 служать для полегшення запуску кварцового генератора ZQ1 і вибираються в залежності від типу резонатора і частоти.

RC ланцюжок (R4C7), приєднаний до виводу , утворює зовнішню схему скидання, яка потрібна якщо напруга живлення при включенні росте повільно.

Конденсатор C4 заряжается через резистор R7 и при достижении на нем напряжения питания на вход перестает подаваться сигнал сброса, микроконтроллер запускается. Номиналы элементов цепочки подобраны таким образом, чтобы время сброса было 1 мс. Ключ предназначен для осуществления принудительного сброса.

1.2 Рідкокристалічний індикатор МТ12864А

Такі графічні індикатори, навіть найпростіші, дуже зручні для різних радіоаматорських додатків і конструкцій, дають справжню «свободу творчості» на відміну, наприклад: від індикаторів на HD44780 і HT1611/1613 та інших прив'язаних до символів записаних в ОЗУ і місцем на індикації.

Рідкокристалічний модуль МТ12864А складається з БІС контролера управління КБ1013ВГ6, виробництва ВАТ «Ангстрем» (аналогічний KS0108 фірми «Samsung») і рк панелі. Модуль оснащений вбудованим підсвічуванням, причому існує можливість живлення підсвічування від джерела живлення без включення додаткових елементів.

Модуль розбитий на два кристали, кожен по 64х64 крапки, кристали повністю ідентичні. Кожній світної точки на кристалі відповідає логічна одиниця в осередки ОЗУ. Отже, ОЗУ кожного кристала є 64Х64 комірки пам'яті. У індикаторі два кристали, тоді 64х2х64 = 128х64 це все ОЗУ індикатора. Що й відображено в його назві.

Модуль може:

- приймати команди з шини даних (перелік команд нижче)

- Записувати дані в ОЗУ по шині даних

- читати дані з ОЗУ на шину даних

- читати стан службових біт на шину даних, для визначення стану індикатора

Як звертатися до пам'яті? Для цього необхідно розглянути, як вона організована. Нагадаємо, що індикатор складається з двох однакових кристалів і звернення до них теж однакове. Треба тільки вибрати потрібний кристал.ОЗУ кристалів представлена на рисунку. На рисунку (рис. ) показано відповідність між адресою ОЗУ і конкретною точкою виведеної на індикацію

Розглянемо ОЗУ кристалів, для конкретного уявлення, виберемо 1 кристал (лівий).Поле кристала розбите на 64 стовпця і 64 рядки. Рядки об'єднані по 8 в одну сторінку. Сторінки призначаються зверху вниз. Тобто в кристалі 8 сторінок по 8 рядків. У кожній сторінці в одному стовпці можна записати 1 байт інформації, відповідно, логічна одиниця - темна точка, логічний нуль світла осередок.

Верхній рядок кожної сторінки призначений для запису молодшого біта записуваного байта інформації.

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

Рис.1.2.1 ОЗУ кристалів

Тобто в будь-який час можна вказати номер стовпця і сторінки, «перескочити». Якщо більше не вказано де виводити інформацію контролер індикатора почне далі інкрементувати лічильник номер стовпця.

Призначення виводів індикатора вказано у табл.1.2.1

Табл.1.2.1 Призначення виводів рідкокристалічного індикатора

Познач.

Призначення

1

GND

Спільний контакт

2

VCC

Живлення модуля (цифрова частина)

3

VO

Вхід питання РК панелі

4

AO

Вибір регістру даних / команд

5

RD/WR

Читання / Запис

6

E

Строб дозволу читання / запису

7

DBO

Шина даних 0-й розряд

8

DB1

Шина даних 1-й роряд

9

DB2

Шина даних 2-й розряд

10

DB3

Шина даних 3-й розряд

11

DB4

Шина даних 4-й розряд

12

DB5

Шина даних 5-й розряд

13

DB6

Шина даних 6-й розряд

14

DB7

Шина даних 7-й розряд

15

E1

Вибір першого кристала (рівнем лот. 1)

16

E2

Вибір другого кристал (рівнем лот. 1)

17

RES

Сигнал початкової установки

18

VEE

Вихід DC-DC перетворювача

19

+

+ Живлення підсвічування

20

-

- Живлення підсвічування

Розглянемо детальніше призначення виводів.

Виводи 1 і 2 - живлення модуля. Тут розглядаємо живлення при 5В. А можна і при 3В.

Виводи 3 і 18 повинні бути з'єднані змінним резистором з опором від 10-22 кОм, (регулюється кут повороту рідких кристалів), використовуються для регулювання контрастності модуля.

Вивід 4 (А0) використовується для вибору що буде записуватися в модуль з шині даних, команда для модуля або дані для ОЗУ.

Вивід 5 (RD / WR) рівень на цьому виводі визначає, буде проводиться запис в ОЗУ або читання з ОЗУ модуля.

Вивід 6 (Е) перепад на цьому виводі напруги з високого на низький рівень, є командою для запису в ОЗУ індикатора або читання даних з ОЗУ перебуваючих у цей момент на шині даних.

Виводи 7-14, (D0-D7) це і є восьмирозрядна шина даних.

Виводи 15 і 16 (Е1; Е2), високий рівень на одному з цих виводів визначає до якого кристалу індикатора будемо звертатися і управляти.

Е1-лівий кристал

Е2-правий кристал

Вивід 17 (RES), призначений для загального скидання модуля, зазвичай використовується при початковій ініціалізації.

Висновки 19 і 20 визначають полярність підключення живлення для світлодіодного підсвічування модуля. Якщо використовується для живлення модуля 5В., То для включення підсвічування достатньо подати цю напругу на виводи.

Команди модуля МЕЛТ 12864 представлені у таблиці 1.2.2

Таблиця 1.2.2 Команди модуля МЕЛТ 12864

Команда

RD/W

AO

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DBO

Функція

Включає або вимикає РКІ, незалежно від даних в

зкранном ОЗУ і внутрішнього стану

Display ON/OFF

0

0

0

0

1

1

1

1

1

0/1

"1"- ввімкнути дисплей

"0"- вимкнути дисплей

Display TART Line

0

0

1

1

Display START Line

(0...63)

Визначає рядок ОЗУ, яка буде відображатися у верхній частин РКІ (Стартова строка РКІ).

Set Page

0

0

1

0

1

1

1

Page (0...7)

Встановлює сторінку ОЗУ (стор. 0 ... 7)

Set Address

0

0

0

1

Column address (0...63)

Встановлює адресу стовпця

Читання режиму стану:

BUS

1

модуль зайнятий внутрішньою обробкою

Status Read

1

0

BUSY

0

ONN/OFF

RESET

0

0

0

0

0

модуль готовий до роботи із зовнішнім ІП

ON/OFF

1

РКІ вимкнено

0

РІ ввімкнено

RESET

1

стан скидання

0

нормальний стан

Write Display Data

0

1

Write Data

Запис даних в ОЗУ модуля

Ці команди вибирають ОЗУ за раніше заданою адресою, після чого адреса стовпця інкрементується

Read Display Data

1

1

Read Data

Читання даних з ОЗУ модуля

Виконати команду «включити РКІ», зачекати щонайменше 10мкс або прочитати стан біта BUSY (0 - індикатор готовий до роботи)

2. Задіяти вивід порту контролера, при включенні, з нього подати низький рівень на вивід RES (скидання) індикатора. Через «читання» опитати індикатор про його стан, біт 4, RESET. (при скиданні, індикатор виконує команду «вимкнути РКІ»). Виконати команду «включити РКІ», зачекати щонайменше 10мкс

3. Вивід RES підключений до шини живлення. Програмно виконується команда «вимкнути РКІ», затримка 1мкс, команда «включити РКІ», затримка 10мкс.

Читання і запис в даних в ОЗУ модуля. Розглядаємо тільки один кристал.

Вибираємо потрібний кристал, установкою високого рівня на висновках Е1 або Е2 модуля.

Читання і запис в ОЗУ модуля здійснюється по сторінках. Кожна сторінка представляє 64 байти (64х8 біт або 64х1байт). Для читання чи запису байта даних:

- Встановити (команда Set Page) номер сторінки ОЗУ обраного кристала

- Встановити (команда Set Address) номер стовпця усередині сторінки

- Встановити / прочитати байт даних в ОЗУ / з ОЗУ

Нагадую, що модуль підтримує безперервну послідовність операцій читання або запису: після запису (або читання) одного байта даних лічильник стовпа автоматично збільшується на 1. (Інкрементується) і модуль готовий до наступної операції запису (читання) без попередньої установки сторінки ОЗУ або номера стовпця. Лічильник стовпця рахує тільки всередині однієї попередньо обраної сторінки. При досягненні адреси стовпця 63 наступним значенням лічильника буде0. Це процес зручний при безперервному заповненні даними однієї сторінки, тому що не вимагає попередніх установок. Але якщо потрібно відобразити наприклад вертикальну лінію в різних сторінках ОЗУ, але в одному стовпці, треба перед кожним записом даних вказувати номер вибраного стовпця і сторінку.

Вертикальне зміщення інформації, що відображається

Модуль дозволяє здійснювати плавний зсув картинки на РКІ по вертикалі зміною номера першої відображається рядка. Виконується за допомогою команди «Display START Line. Ця команда встановлює номер самого верхнього відображаємого рядка. Номер може бути в інтервалі від 0 до 63, що відповідає інтервалу від першого рядка нульової сторінки ОЗУ до останнього рядка сьомої сторінки.

Цей режим розширює можливості застосування індикатора.

Можна в залежності від поставленого завдання вийти як би за межі видимої частини зображення, розширити картинку. Можна реалізувати режим «рядкового розгорнення» без зворотного ходу променя.

При деяких умовах можна отримати «третій колір» на зображення, якщо в цьому є необхідність. Але цей режим в програмному виконання повинен бути ретельно продуманий.Загальний алгоритм грунтується на знаменитих 24 кадрах.

Тобто якщо зміну картинки на індикаторі робити зі швидкістю 24 кадру в секунду і через кадр, наприклад, лінію виводити на індикацію, то око не встигає відстежити ці зміни і з'являється третій колір "сірий" лінії. Тимчасові параметри цього режиму не важко підрахувати. Зміна кадрів (картинок зображення) повинна відбуватися через 41,5 мС. PIC16F877A добре підходить завдяки тому, що графічний модуль для відображення даних на своєму екрані повинен отримати велику кількість байтів даних. А у контролерів середнього сімейства 8Кб ОЗУ.

Якщо необхідно, щоб у індикатора «загорілися » всі крапки, потрібно 128х8 байт або 1кбайт ОЗУ. Звичайно, такий режим дуже малоймовірний, але зате зрозуміло які потрібні ресурси. І це теж не головне, PIC16F877A має багато вбудованих периферійних модулів, які зручно застосовувати спільно з графічним індикатором і велика кількість висновків використовуваних як вх / вих .. МТ12864А не підтримує 4-х розрядний інтерфейс вводу даних, тільки 8 розрядний. Тому потрібно буде, як мінімум дванадцять виводів мікроконтролера.

Виводи 3 і 18 з'єднані змінним резистором з опором від 10-22 кОм, (регулюється кут повороту рідких кристалів), використовуються для регулювання контрастності модуля.

1.3 Цифро-аналоговий перетворювач MCP 4921

Особливості:

* Розрядність 12 біт

* ± 0,2 LSB DNL (тип)

* ± 2 LSB INL (тип)

Один або два канали

* Rail-to-Rail Output

* Інтерфейс SPI ™ з 20 МГц

* Робота подвійного ЦАП

* Швидкий час встановлення 4.5 мкс

* Вибір єдності або 2x посилення виходу

* Режим множника 450 кГц

* Зовнішній вхід VREF

* Напруга від 2,7 до 5 В з однополярним живленням

* Розширений температурний діапазон: -40…+125 ° C

ЕЛЕКТРИЧНІ ХАРАКТЕРИСТИКИ

Оцінки абсолютного максимуму

VDD - 6,5

Всі входи і виходи w.r.t - AVSS

-0.3V до VDD +0,3 В

Поточний струм на вводах ± 2 мА

Поточний струм при подачі напруги на виводах ± 50 мА

Поточний струм на виводах ± 25 мА

Температура зберігання - 65 ° C до +150 ° C

Температура навколишнього середовища при роботі - 55 °C до +125 °C

Захист від електростатичного розряду на всі висновки - ? 4 кВ (HBM), ? 400 (MM)

Максимальна температура з'єднання (TJ) -+ 150 ° C

Додатки

· Встановлення зсуву

* Калібрування датчика

* Множник/дільник з цифровим управлінням

* Портативні прилади (з живленням від батарей)

* Мотор зворотного зв'язку управління

Microchip Technology Inc MCP4921 - це 12 бітний ЦАП з опціонально подвійною буферизацією виведення і SPI інтерфейсом, з напругою живлення 2,7 - 5,5 В, з низьким енергоспоживанням, низьким DNL??. MCP4921 ЦАП, забезпечує високу точність і низькі шумові характеристики для промислового застосування, де потрібно калібрування або компенсації сигналів (таких як температура, тиск і вологість). MCP4921 доступні в розширеному діапазоні температур і PDIP, SOIC, TSSOP MSOP корпусах.

MCP4921 пристрої використовують резистивно-строкову архітектуру, з властивою їй перевагою низької помилки DNL, ??низький коефіцієнт температурного коефіцієнта метрики і швидкого врегулювання часу. Цей пристрій реалізує свою роботу в розширеному діапазоні температур. MCP4921 включає подвійну буферизацією входів, дозволяючи одночасне оновленя через контактний LDAC.

Цей пристрій також включають скидання по включенню живлення (POR) ланцюга для забезпечення надійного живлення.

Позитивний вхід живлення (VDD). VDD - позитивний вхід живлення. Вхідна потужність живлення в порівнянна з AVSS і може варіюватися від 2,7 до 5.5В.

Chip Select (CS). CS - вхід вибору чипу, який вимагає активного низькою

сигналу для вмикання послідовного годинника і функцій даних.

Serial Clock Input (SCK). SCK - SPI сумісний вхід послідовного годинника.

Serial Data Input (SDI).SDI сумісний вхід для послідовних даних.

Вхід засувки ЦАП (LDAC.) LDAC (Ввід синхронізації засувки ЦАП) переклади

Засувка входу ЦАП (LDAC.) LDAC (засувка входу ЦАП синхронізації вводу) передача уведення регістрів засувки ЦАП при низькому логічному рівні.

Hardware Shutdown Input (SHDN)

SHDN вхід апаратного вимкнення, який потребує активного низького вхідного сигналу для налаштування ЦАП в його малопотужному режимі очікування.

DACx виходи (VOUTA, VOUTB).

ЦАП підсилює сигнал на виводах в діапазоні AVSS - VDD.

DACX входи напруги (VREFA, VREFB)

VREFA і VREFB - входи напруги посилання ЦАП.

Аналоговий сигнал на ці виводи використовується для установки опорної напруги на рядок ЦАП. Вхідний сигнал може варіюватися від AVSS до VDD.

Analog Ground (AVSS) - аналогове заземлення.

Опис роботи клавіатури та елементів, які входять до її складу наведений у розділі “ Алгоритм роботи та його опис”

2. Алгоритм роботи та його опис

цифровий генератор напруга мікроконтролер

При запуску цифрового генератора напруги відбувається послідовне виконання розглянутих у блок-схему дій. Розглянемо більш детально кожен з пунктів.

Ініціалізація індикатора 12864А. На початку відбувається очищення PORT B, потім установка нульового та першого бітів цього регістра в одиницю, що призводить до ввімкнення кристалів. Після відбувається запис команд "Ввімкнути індикатор", "Вимкнути індикатор" і затримка 13 мкс.

Ініціалізація мікроконтролера. Відбувається налаштування PORT D, PORT B вивід, PORT A на ввід за допомогою регістрів TRIS A, TRIS B, TRIS D, STATUS, а також конфігурація PORT C і PORT E приймаючих участь в з'єднанні мікроконтролера з цифро-аналоговим перетворювачем.

Сканування кнопок клавіатури . Для зчитування стану кнопок досить з'єднати їх між входом і нульовою шиною. Вхід притягнутий до високого логічного рівня обмежувальним резистором, величина опору якого 10 кОм (може доходити до 100 кОм, чим забезпечується мале споживання струму). Ми обрали резистор 10 кОм для виключення впливу потужних перешкод від, наприклад, двигунів. Наведення на високоомний вхід будуть значно більшими, ніж на низькоомний. Коли контакти кнопки розімкнуті, на вході буде високий логічний рівень, при замиканні контактів - низький.

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

За допомогою шести кнопок відбувається вибір сигналу, а потім вибір шпаруватості, періоду, амплітуди сигналу. При цьому, якщо не вибираються значення амплітуди, шпаруватості і періоду, то при натисканні "введення" використовуються стандартні значення, які зберігаються в змінних. Кнопками "вправо", "вліво" відбувається вибір розряду обраного параметра, кнопками "вгору", "вниз" - вибір цифри кожного розряду і кнопками "ввід", "скасувати" - введення параметра і перехід до подальшого параметру або скасування для корекції попереднього.

Вивід на РКІ. При виведенні на РКІ спочатку відбувається перехід до першого кристалу, потім по черзі запис у його сторінки, далі перехід на другий кристал, запис у його сторінки і почерговий вивід сторінок першого кристала, потім другого.

Останнім етапом здійснюється передача напруг на цифро-аналоговий перетворювач за допомогою SPI режиму модуля MSSP

Модуль провідного синхронного послідовного порту (MSSP) може використовуватися для зв'язку з периферійними мікросхемами або іншими мікроконтролера. Периферійними мікросхемами можуть бути:

EEPROM пам'ять, зсувні регістри, драйвери РКІ, АЦП і ін Модуль MSSP може працювати в одному з двох режимах:

* Послідовний периферійний інтерфейс (SPI);

* Inter-Integrated Circuit.

Розглянемо використовуваний нами режим SPI

В SPI режимі можливе одночасний синхронний прийом/передача 8-розрядних даних. Модуль MSSP підтримує чотири режими SPI з типовими використанням трьох виводів мікроконтролера:

* Вхід послідовних даних (SDI);

* Вихід послідовних даних (SDO);

* Тактовий сигнал (SCK).

Додатково може бути задіяний четвертий вивід для роботи в режимі веденого.

* Вибір веденого (-SS).

При ініціалізації SPI необхідно визначити параметри роботи бітами SSPCON<5:0>, SSPSTAT<7:6>.

Керуючі біти визначають наступні параметри роботи:

· Провідний режим (SCK вихід);

· Ведений режим (SCK вхід);

· Полярність тактового сигналу (пасивний рівень SCK);

· Фаза вибірки вхідних даних (в середині або кінці передачі біта);

· Активний фронт тактового сигналу (передній, задній);

· Частота тактового сигналу (тільки у провідному режимі);

· Режим вибору веденого (тільки в режимі веденого).

На рис.9-1 наведена структурна схема модуля MSSP в SPI режимі.

Для включення модуля MSSP необхідно встановити біт SSPEN (SSPCON><5) у '1'. Для скидання або переналаштування режиму SPI рекомендується скинути біт SSPEN в '0', виконати зміни параметрів роботи, а потім знову встановити біт SSPEN в '1'. Після включення MSSP в режимі SPI виводи SDI, SDO, SCK, -SS використовуються послідовним портом. Для коректної роботи послідовного порту біти регістрів TRIS повинні бути налаштовані наступним чином:

· SDI, автоматично управляється SPI модулем;

· SDO, біт TRISC> <5 повинен бути скинутий в '0';

· SCK (провідний режим), біт TRISC<3> = 0;

· SCK (ведений режим), біт TRISC<3> = 1;

· -SS, біт TRISA<5> = 1, в регістрі ADCON1 вивід RA5 повинен бути налаштований як цифровий порт введення/виводу .

Будь-яка небажана функція послідовного порту може бути виключена, налаштовуючи відповідні біти регістрів напрямки даних TRIS.

Режим ведучого SPI

Провідний шини може ініціалізувати передачу даних у будь-який момент, оскільки він генерує тактовий сигнал, і визначає коли ведений повинен передати дані згідно з використовуваним протоколом (див. Рис.9-2).

У режимі веденого дані передаються/прийняті після їх запису/читання з регістра SSPBUF. Якщо у SPI режимі потрібно тільки приймати дані, вивід SDO може бути заблокований (налаштований як вхід). Дані з виводу SDI послідовно зсуваються в регістр SSPSR з встановленою швидкістю. Кожен прийнятий байт завантажується в регістр SSPBUF (як нормально отриманий байтів) з формуванням переривань і впливом на відповідні біти статусу. Ця функція може бути корисною при реалізації "монітора шини".

Полярність тактового сигналу встановлюється бітом CKP (SSPCON><4), що дозволяє отримати різні методи передачі даних (див. Рис.9-2). Дані завжди передаються старшим бітом вперед. У провідному режимі частота тактового сигналу вибирається програмно:

FOSC/4 (або TCY);

FOSC/16 (або 4 x TCY);

FOSC/64 (або 16 x TCY);

Вихід таймера TMR2 / 2.

Максимальна частота передачі даних 48,5 Мгц при тактовій частоті мікроконтролера 20МГц.

Біт CKE визначає за яким фронту тактового сигналу необхідно виконувати прийом даних. Параметри вхідних даних встановлюються бітом SMP. Після завантаження прийнятих даних в регістр SSPBUF встановлюється прапор переривань SSPIF в '1'.

Рис 2.2 - Алгоритм формування прямокутних імпульсів

Рис. 2.3 - Алгоритм формування трикутних імпульсів

Рисунок 2.4 - Алгоритм роботи, основна програма

Рис. 2.5 - Алгоритм роботы РКІ

Список літератури

1. Microchip Technology Inc. Datasheet PIC16F87X. - Москва, 2002. - 183 с.

2. Microchip Technology Inc. Datasheet MCP4921/4922. - California, 2004. - 40 с.

3. Тавернье К. PIC-микроконтроллеры. Практика применения. - Москва, 2004. - 270 с.

4. Справочник по среднему семейству микроконтроллеров PICmicro - Москва, 2002. - 601 с.

5. http://chipmk.ru/ - Об использования графического индикатора, на основе контроллера KS0108, отечественной фирмы МЭЛТ - МТ12864А.

Размещено на Allbest.ru


Подобные документы

  • Розробка термометра на базі мікроконтролера Atmega 8535. Визначення температури через аналогово-цифрове перетворення. Принципова схема пристрою. Варіанти з'єднання ліній портів з сегментами індикатора. Алгоритм роботи мікроконтролера у пристрої.

    курсовая работа [1,8 M], добавлен 11.08.2012

  • Схема інтелектуального давача, побудованого на базі мікропроцесорного пристрою. Побудова контролера клавіатури та семисегментного індикатора. Ввід інформації з клавіатури. Вивід інформації на восьмисегментний індикатор. Робота аналого-цифрового пристрою.

    курсовая работа [707,6 K], добавлен 05.02.2013

  • Аналіз умов та можливостей використання мікропроцесора для керування аналого-цифровим перетворювачем (АЦП). Особливості функціональної схеми АЦП на базі мікроконтролера та програмного забезпечення для функціонування цифрового обчислювального пристрою.

    курсовая работа [707,8 K], добавлен 30.06.2010

  • Загальні відомості про цифро-аналоговий перетворювач (ЦАП) призначений для перетворення числа у вигляді двійкового коду у напругу або струм, пропорційний значенню цифрового коду. Класифікація схем ЦАП. Системи прямого цифрового синтезу сигналів.

    курсовая работа [4,2 M], добавлен 29.06.2010

  • Огляд принципів роботи та будови аналого-цифрового перетворювача, його функціональна та електрична принципова схема. Призначення паралельного порту, опис інтерфейсу Cetronics. Розробка програмного забезпечення. Оцінка техніко-економічного рівня приладу.

    дипломная работа [763,5 K], добавлен 09.06.2010

  • Розробка цифрового дозиметра з трьома режимами вимірювання з виводом значення вимірювання на дисплей. Аналіз мікроконтролера для керування його роботи, функціональна схема на базі мікроконтролера та програмного забезпечення для роботи дозиметра.

    курсовая работа [2,4 M], добавлен 18.06.2010

  • Огляд сучасних систем телемеханіки та їх елементної бази. Розробка передавального напівкомплекту кодоімпульсної системи телемеханіки та принципової електричної схеми, розрахунок параметрів аналого-цифрового перетворювача, побудова діаграми роботи.

    курсовая работа [217,0 K], добавлен 28.09.2011

  • Переваги, недоліки, принципи побудови та функціонування рідкокристалічних індикаторів; типові схеми їх взаємодії з мікроконтролерами. Розробка друкованої плати та системи з використанням рідкокристалічного індикатора; розрахунок параметрів АЦП та ЦАП.

    курсовая работа [1,4 M], добавлен 29.01.2013

  • Обробка аналогового сигналу, розробка схеми, необхідної для коректного під’єднання до аналогового цифрового перетворювача (АЦП). АЦП як пристрій, який перетворює аналоговий сигнал на вході у цифровий сигнал на виході. Вибір датчика, опис роботи системи.

    курсовая работа [1,7 M], добавлен 16.09.2010

  • Функціональна схема мікроконтролера ATMega8. Розробка робота на базі мікроконтролера ATMega8 з можливістю керування електродвигунами за допомогою програми. Функціональна і принципова схеми пристрою з вибором додаткових елементів, алгоритм його роботи.

    курсовая работа [1,3 M], добавлен 08.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.