Пристрій контролю за рівнем аналогових сигналів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

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

Національний технічний університет "Харківський політехнічній інститут"

Кафедра обчіслювальної технікі та програмування

УДК 681.3

Інв №

ПРІСТРІЙ КОНТРОЛЮ ЗА РІВНЯМІ АНАЛОГОВИХ СІГНАЛІВ
Альбом ДОКУМЕНТІВ курсового проекту по дісціпліні
" Проектування мікроконтролерніх пристрою їв "

XXXXXXXXXXXXX.421.012. ДКП

ІЗЮМ 2006





Формат
Зона
Поз.
Позначення

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

Кол. аркушів

Примітка

Документація
Загальна
А4
XXXXXXXXX.421.012 ТЗ
Технічне
завдання
А4
XXXXXXXXX.421.012 ПЗ
Пояснювальна
Записка
А4
XXXXXXXXX.421.012 Е1
Схема
електрична
структурна
А4
XXXXXXXXX.421.012 Е3
Схема
електрична
принципова
А4
XXXXXXXXX.421.012 ПЕ
Перелік
елементів

XXXXXXXXXXXXX.421.012 ВП

Змін
Літ
№ докум
Підпис
Дата
ПРІСТРІЙ КОНТРОЛЮ ЗА РІВНЯМІ АНАЛОГОВИХ СІГНАЛІВ

Відомість проекту

Літ
Лист
Листів
Розробник
Xxxxxxxxx.
До
2
2
Перевір
Xxxxxxxxx

НТУ "XXX"

Кафедра XXX

Утв.
Xxxxxxxxx.

Анотація
У даному курсовому проекті розроблено прістрій контролю за рівнямі аналогових сігналів. Розробка виконан на ОМК та МС ТТЛ-логікі малого щаблі інтеграціі. У пояснювальній запісці пріведені необхідні обгрунтовувань, розрахунки та опису принципом дії Як пристрою вцілому, так І Його окремих функціональніх блоків та вузлів.
Альбом ДОКУМЕНТІВ курсового проекту крім пояснювальної записки вміщує такоже чертежи структурної та прінціпової схем пристрою.

Анотація
У даному курсовому проекті розроблено пристрій контролю за рівнями аналогових сигналів. Розробка виконана на ОМК і МС ТТЛ - логіки малого ступеня інтеграції. У пояснювальній записці наведені необхідні роз'яснення, розрахунки й описи принципу дії як пристрою в цілому, так і його окремих функціональних блоків і вузлів.
Альбом документів курсового проекту крім пояснювальної записки вміщує також креслення структурної та принципової схем пристрою.

Annotation
In given semester project is designed device of the checking for level analog signal. The Development was run for CPU and MS TTL - a logic small degree to integrations. In expository note brought necessary explanations, calculations and descriptions of the principle of the action as device as a whole, so and its separate functional block and nodes.
The Album course project document except expository note contains also drawing structured and principle schemes device.

Технічне завдання
Розробити пристрій контролю за рівнями аналогових сигналів
Складові частини пристрою:
Вхідні сигнали повільно змінюються в часі аналогові сигнали постійного струму (Ui) від декількох джерел (4 датчика).
Обробка вхідних сигналів
Порівняти рівні вхідних сигналів з двома уставками (нижнім UП1 і верхнім Uп2 пороговими рівнями), що зберігаються у вигляді констант K1i і K2i в пам'яті даних мікроконтролера, і за результатами порівняння здійснити:
1) Включити зелений світлодіодний індикатор, якщо K1i <Ui <K2i.
2) Включити червоний світлодіодний індикатор, сформувати та подати на звуковий випромінювач (динамік) послідовність імпульсних сигналів із заданою частотою (Fз) і скважностью 2, якщо K1i> Ui> K2i.
· Діапазон зміни вхідних
сигналів (Ui), В 0,1 - 5
· Нижній пороговий рівень UП1,
відповідний константі K1i, У 0,9
· Верхній пороговий рівень Uп2,
відповідний константі K2i, У 2,4
· Частота послідовності імпульсних
сигналів, що подаються
на звуковий випромінювач Fз, Гц 3730
Вихідні сигнали:
рівні сигналів і виведені їх на 4 - розрядний 7 - сегментний світлодіодний або рідкокристалічний індикатор (РКІ) у вигляді десяткових чисел з помилкою не більше + .20 мВ.
Здійснювати динамічну індикацію обраного каналу з заданою частотою оновлення всіх розрядів індикатора Fо.ж
· Частота оновлення всіх розрядів
індикатора Fо, Гц-44 Гц.
система управління:
Вибір індикованих каналу здійснюється вручну за допомогою 4 кнопок із залежною фіксацією.
Напруги живлення
Напруга живлення пристрою, В ---- 5
Умови експлуатації
Температурний діапазон: +5 ... +40 ос.
Відносна вологість: 40%.
Елементна база в якості елементної бази використовувати мікросхеми ТТЛ (ТТЛШ) малої і середньої ступені інтеграції.

Комплектність конструкторської документації:

Конструкторська документація повинна містити такі документи:
- Відомість проекту
- Технічне завдання
- Пояснювальну записку
- Схему електричну структурну
- Схему електричну функціональну
- Перелік елементів
Термін здачі
Здати до 1 квітня 2006 року.

Реферат
Даний документ являє собою пояснювальну записку обсягом 25 аркушів. У пояснювальній записці представлено 1 таблиця, 8 рисунків використано 10 джерел літератури.
Ключові слова: мікроконтролери, АНАЛОГОВИЙ СИГНАЛ, ПЕРЕТВОРЕННЯ ІНФОРМАЦІЇ, ДІНАМІК, СВІТЛОДІОДНИЙ ІНДИКАТОР.
У даному курсовому проекті розроблено пристрій контролю за рівнем аналогових сигналів. Розробка виконана на мікроконтролері та мікросхемах ТТЛ-логіки малого ступеня інтеграції. в пояснювальній записці приведені необхідні обгрунтування, розрахунки й описи принципу дії як пристрою в цілому, так і його окремих функціональних блоків і вузлів.
Альбом документів курсового проекту крім пояснювальній записки містить також: специфікацію, технічне завдання, перелік елементів, креслення структурної та принципової схем пристрою.

Зміст
Введення
1. Вибір і обгрунтування основних технічних рішень.
1.1. Деталізація вихідного ТЗ і постановка задачі (використання блочно-ієрархічного підходу при розробці даного пристрою).
1.2. Джерела інформації (вхідних сигналів).
1.3. Приймачі інформації (вихідних сигналів).
1.4. Можливі шляхи (варіанти) рішення поставленої задачі.
1.5. Можливі варіанти структурних схем та їх порівняльний аналіз.
1.6. Обгрунтування вибору структурної схеми.
1.7. Обгрунтування вибору типу ОМК для вирішення поставленого завдання.
2. Структурна схема пристрою та її опис.
2.1. Структурна схема.
2.1.1. Призначення окремих функціональних блоків.
2.2. Опис принципу дії і загальний алгоритм роботи.
2.3. Розробка функціональних схем і блок-схем алгоритмів роботи окремих блоків.
3. Розробка функціональної та принципової схем пристрою.
3.1. Опис принципової схеми пристрою.
3.2. Опис принципових схем окремих пристроїв.
4. Розрахунок споживаної потужності і визначення вимог до джерел живлення.
5. Розрахунок часових параметрів.
6. Розробка та налагодження робочої програми (управління).
6.1. Блок-схема (и) алгоритму (ів) та її (їх) опис (я).
6.2. Структура програми.
6.3. Текст програми (вноситься у додаток!).
6.4. Технологія налагодження програми.
6.4.1. Компіляція (з роздруківкою всіх файлів, отриманих під час компіляції: obj, lst, erl, sym).
6.4.2. Моделювання.
7. Висновок.
8. Список використаної літератури.

Введення
Однокристальні мікроконтролери (ОМК) дозволяють суттєво розширити інтелектуальні можливості різного роду пристроїв і систем. Вони являють собою, по суті, спеціалізовані однокристальних мікроЕОМ, що містять для зв'язку із зовнішнім середовищем вбудовані периферійні вузли та пристрої, набір яких багато в чому визначає їх функціональні можливості і області застосування.
Вони стали сьогодні одним з найпоширеніших елементів програмованої логіки. Більше двох третин світового ринку мікропроцесорних засобів в даний час складають саме однокристальні мікроконтролери.
До структури ОМК сімейства PIC закладено багато різних функціональних особливостей, які роблять їх найбільш високопродуктивними, мікропотребляющімі, перешкодозахищеними, програмованими користувачем 8-ми бітними мікроконтролера. Завдяки цим особливостям ОМК сімейства PIC можуть обробляти апаратно-програмним способом як дискретні, так і аналогові сигнали, а також формувати різного роду сигнали, що управляють, а також здійснювати зв'язок між собою і ЕОМ, що знаходиться на більш високому ієрархічному рівні в системі.
Існує два принципово різних підходи до проектування цифрових пристроїв: використання принципу схемної логіки або використання принципу програмованої логіки.
Слід мати на увазі, що найвище швидкодія досягається в процесорах, в яких управляє пристрій будується з використанням системної логіки, а операційний пристрій виконується у вигляді пристрою, спеціалізованого для вирішення конкретного завдання.
Ми будемо використовувати мікроконтроллер фірми Microchip з вбудованим АЦП, і на його основі розробляти пристрій контролю за рівнями вхідних аналогових сигналів.

1.В ибгр та обгрунтування основних технічних рішень.
1.1 Деталізація вихідного ТЗ і постановка задачі (використання блочно-ієрархічного підходу при розробці даного пристрою).
Поставлену задачу можна розбити на 3 завдання:
1. Завдання прийому вхідних даних.
2. Завдання обробки вхідних даних і прийняття рішення.
3. Видача керуючого сигналу на об'єкти індикації.
У свою чергу задача прийому вхідних даних містить в собі 3 завдання малої розмірності:
1) Прийом аналогового сигналу;
2) цикл роботи АЦП;
3) запис у РОН.
Завдання обробки вхідних даних і прийняття рішення реалізується на основі 2 підзадач:
1) читання двох констант (верхній і нижній межа) з ПЗУ;
2) порівняння констант з РОН.
Завдання видачі керуючого сигналу на об'єкт управління містить у собі 3 задачі малої розмірності:
1) Перетворення інформації про рівні вхідного аналогового сигналу у форму придатну для видачі на РКІ
2) Здійснення керування динамічною індикацією із заданою частотою оновлення;
3) Подача сигналу на зелений світлодіод в тому випадку, або ж подача сигналу на червоний світлодіод і на динамік (з певною в ТЗ частотою) залежно від прийнятого рішення.
Відповідно до блочно-ієрархічним принципом це розбиття вихідної задачі на ряд більш простих завдань можна представити наступною структурою (див. рис. 2.1).
Завдання Керування об'єктом
прийом
вхідних
даних
обробки вхідних даних і прийняття рішення
видача керуючого сигналу
Цикл роботи АЦП
Читання порту ОМК
Запис у РОН
Читання сталих із ПЗУ
Порівняння констант з даними в РОН
Управління динамічної
індикацією
Перетворення інф. про ур. вх. аналогового сигналу у форму придатну для видачі на РКІ
Подача сигналу на світлодіоди і
динамік в зав. від
прийнятого рішення


Малюнок 1.1 Розбиття загальної задачі на ряд підзадач.
1.2 Джерела інформації (вхідних сигналів)
Джерелами інформації можуть служити будь-які пристрої, що видають плавно змінюються в часі аналогові сигнали рівень яких лежить в межах 0-5 В (рівні ТТЛ).
1.3 Приймачі інформації (вихідних сигналів)
Приймачами інформації служать семисегментні світлодіодні індикатори, світлодіоди і динамік.
1.4 Можливі шляхи (варіанти) рішення поставленої задачі
Всі МКУ розробляються за допомогою програмних і апаратних способів реалізації.
Переваги апаратної реалізації полягають в тому, що:
а) використання спеціальних БІС спрощує розробку і забезпечує високу швидкодію системи в цілому;
б) зменшується час на розробку і налагодження пристрою.
Переваги програмної реалізації такі;
а) менша вартість і споживана потужність системи;
б) менша кількість компонент у системі, а значить вище надійність системи в цілому;
в) час життя системи значно вище в порівнянні з апаратною реалізацією;
г) можливість простої модифікації системи (шляхом перепрограмування).
Не дивлячись на те, що чисельно переваг програмної реалізації більше, ніж у апаратної, бувають випадки, де без апаратної частини просто не обійтися. Але не в цьому завданню.
Глобальне завдання обробки вхідних даних і прийняття рішення буде реалізована програмним шляхом, так як саме для цього призначений мікроконтроллер. Якщо ж вхідні дані обробляти апаратно (зібрати схему на жорсткій логіці), тоді ТЗ втрачає свій сенс, у ньому обумовлено спроектувати мікроконтролерних пристроїв, а значить для МК залишиться тільки завдання формування видачі вихідного сигналу. Хоча це завдання не можна назвати занадто вже проста, і здійснити її рішення на жорсткій логіці було б важко і дорого.
І навіщо намагатися щось реалізувати апаратно, якщо можна без особливих зусиль досягти того ж результату, використовуючи мікроконтроллер. Тому обробкою вхідних сигналів буде займатися МК під управлінням відповідної програми.
До того ж чим менше елементів буде в проектованому пристрої тим воно буде надійніше і дешевше.

1.5. Можливі варіанти структурних схем та їх порівняльний аналіз
Для реалізації даного пристрій можна запропонувати наступні варіанти:
1) на мікроконтролері з вбудованим АЦП;
2)
НД
СД
УС
2
11
Блок індикації
CPU



рис. 1.5.1 Структурна схема пристрою на мікроконтролері з вбудованим АЦП.
де:
ВС - вхідний аналоговий сигнал,
СД - сигнали даних для індикації (у тому числі звуковий),
УС - сигнали управління індикацією
3) зовнішній АЦП + 3 портовий мікроконтроллер без АЦП
14
НД
СД
ЦС
2
11
Блок індикації
CPU
АЦП


рис. 1.5.2 Структурна схема пристрою на мікроконтролері із зовнішнім АЦП.
де:
ВС - вхідний аналоговий сигнал,
СД - сигнали даних для індикації (у тому числі звуковий),
УС - сигнали управління індикацією
4) зовнішній АЦП + компоратор + дешевий 2 портовий
Кі1
мікроконтроллер.
АЦП
Блок компораціі
14


НД

14
14
СД
УС
2
11
Блок індикації
CPU
Кі2
ФК


рис. 1.5.3 Структурна схема пристрою на мікроконтролері із зовнішнім АЦП і блоком компораціі.
де:
ВС - вхідний аналоговий сигнал,
СД - сигнали даних для індикації (у тому числі звуковий)
УС - сигнали управління індикацією
ФК - прапор компораціі (результат порівняння)
Кі1, Кі2 - константи нижнього і верхнього порогових рівнів
1.6 Обгрунтування вибору структурної схеми
Враховуючи всі аспекти, розглянуті в п.1.4 ПЗ, ми вибираємо 1 варіант реалізації (на мікроконтролері з вбудованим АЦП).
1.7. Обгрунтування вибору ОМК для розв'язуваної задачі
Для вирішення даної задачі необхідний МК, який містить у собі наступні характеристики відповідно до ТЗ:
1) Вбудований АЦП з розрядністю 8р.
2) має 1 ліній для введення аналогового сигналу
3) має 14 ліній виводу (8 - вхідні дані для семисегментні світлові індикатори, 3 - для вибору індикатора, 2-для світлодіодів та 1 - для динаміка);
4) дозволяє використовувати кварцовий і зовнішній генератор;
5) має в наявності ПЗУ;
6) буде доступним і порівняно недорогим.
7) мати достатню швидкодію
Ще одним важливим моментом є наявність документації на МК, щоб правильно його запрограмувати.
Враховуючи всі вимоги, нами був обраний мікроконтроллер PIC16C72, так як він найбільшою мірою задовольняє всім вищесказаним умов.
Але оскільки оцінити потрібне швидкодію без написання програми важко, можливо, нам доведеться замінити його на мікроконтроллер того ж сімейства 16с7х але більш швидкодіючий.

2. Структурна схема пристрою та її опис
2.1Структурная схема
Після обгрунтування вибору структурної схеми пристрою зупиняємося на схемі з мікроконтролером з вбудованим АЦП. Структурна схема приведена на малюнку 2.1.
НД
СД
УС
2
11
Блок індикації
CPU


рис. 2.1 Структурна схема пристрою на мікроконтролері з вбудованим АЦП.
де:
ВС - вхідний аналоговий сигнал,
СД - сигнали даних для індикації (у тому числі звуковий),
УС - сигнали управління індикацією
2.1.1 Призначення окремих функціональних блоків
Блок ЦПУ призначений для перетворення вхідного аналогового сигналу в цифрове представлення, порівняння цього значення з константами і залежно від результату порівняння здійснювати управління пристроєм індикації, попередньо перетворивши інформацію про рівні аналогового вхідного сигналу у форму придатну для блоку індикації.
Блок індикації призначений для виведення інформації про рівні вхідного аналогового сигналу, у вигляді десяткових чисел, з заданими кількістю знакомест і частотою оновлення даних. Крім того блок індикації з допомогою двох світлодіодів і динаміка інформує чи потрапляє рівень сигналу в область, обмежену константами Кі1 і Кі2.
2.2 Опис принципу дії і загальний алгоритм роботи
Аналоговий сигнал, що поступає на вхід АЦП мікроконтролера, перетворюється в цифрове подання. Потім мікроконтроллер порівнює рівень вхідного сигналу з двома константами, що зберігаються в ПЗУ, і в залежності від результату порівняння подає сигнали на динамік і світлодіоди, по лініях СД. Крім того мікроконтроллер перетворює інформацію про рівні аналогового вхідного сигналу у форму придатну для блоку індикації, ця інформація передається по лініях СД.
Оновлення інформації на блоці індикації цілком залежить від МК, воно відбувається з заданою частотою 44 Гц. По лініях УС, від мікроконтролера в блок індикації, передаються сигнали, призначені для вибору знакоместа.

2.3 Функціональна схема пристрою та її короткий опис

C2
Rs
+5 B
8
Світло
Світлодіод
PB0-
PB7
PA0
PA1
PA2
jlbjl
CPU
RA0 RB0-
RB7
Vcc
RC0-OSC1 RC1
RC2
OSC2 RC3
RC4
2
одіод
PB0-
PB7
PA0
PA1
PA2
jlbjl
НД
Динамік
PB0-
PB7
PA0
PA1
PA2
jlbjl
НД
XTAL
C1
0 B
ВХ PB7
PA0
PA1
PA2
jlbjl
НД




Малюнок 3.1 Функціональна схема МКУ


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

4. Розрахунок споживаної потужності і визначення вимог до джерел живлення.
4.1 Розрахунок споживаних струмів
Розрахунок споживаних струмів зводиться до того, що необхідно визначити сумарне споживання струму усіма мікросхемами, тобто:
(4.1)
де Iобщ - загальний струм, споживаний пристроєм,
Ik - струм, споживаний k-тій мікросхемою,
m - загальне число мікросхем,
n - число мікросхем даного типу.
* За умови індикації «8». Оскільки у нас динамічна індикація, то одночасно горить лише один індикатор, тому загальний споживаний струм дорівнює 35 mA (теж саме і зі світлодіодами).
Отримуємо загальний струм споживання:
I заг = 25 + 35 + 10 + 25 = 95 mA
4.2 Розрахунок споживаної потужності
Розрахунок споживаної потужності зводиться до того, що необхідно визначити потужність споживану пристроєм, тобто:
(4.2)
де Робщ - загальна споживана потужність,
Uпит - напруга живлення, Iобщ - загальний струм споживання.

Приймаються споживану потужність не більше 0,5 Вт.

4.3 Розрахунок надійності
Інтенсивність відмов l характеризується відношенням числа виробів на одиницю часу до числа виробів, що продовжують залишатися справними до початку аналізованого проміжку часу:
(4.3)
де m - число виробів, які відмовили за час t,
N - число справно працюючих виробів до початку проміжку часу.
Інтенсивність відмов елементів наступна:
мікросхеми - 0.85 × 10 -6-1),
резистори - 0.9 × 10 -6-1),
конденсатори - 1.4 × 10 -6-1).
Тоді,
-1)

Оскільки не врахована інтенсивність відмови деяких елементів приймемо що напрацювання на відмову складе близько 35 000 годин. Таку надійність пристрою можна вважати прийнятною.

5. Розрахунок часових параметрів
За ТЗ розроблювальний пристрій має проводити динамічну індикацію з частотою 44Гц. І, в певній ситуації, звукову індикацію, з частотою послідовності імпульсних сигналів 3730 Гц.
Для дотримання поставлених у ТЗ умов нам буде потрібно виконувати процедуру динамічної індикації через час t ді = 22727 мкс, а процедуру звукової індикації через час t зи = 268 мкс.
Нам відомо що швидкість виконання однієї команди, при використанні PIC16C72, тактируемого від кварцу 4МГц, займає чотири такту (не рахуючи goto і т.п.), тобто швидкість виконання середньостатистичної команди дорівнює 1 МГц. Значить наша процедура динамічної індикації повинна спрацьовувати кожні 22727 командних циклів мікроконтролера, а процедура звукової індикації кожні 268 командних циклів.
Крім того нам відомо, що АЦ перетворення в обраному нами мікроконтролері (PIC16C72) тривати не більше 20 мкс.
Ці дані будуть потрібні при налагодженні таймерів і затримок у програмі.

6. Розробка та налагодження робочої програми.
Можливо запропонувати наступні варіанти вирішення поставленої задачі:
1. Написати програму яка в безперервному циклі Виробляє АЦП перетворення, переклад результату в семисегментний код, і здійснює динамічну індикацію.
Переваги: ​​легко написати програму (не складний алгоритм)
Недоліки: важче вираховувати затримки для забезпечення динамічної та звукової індикації із заданою частотою. Через не постійного часу виконання процедури перетворення в семисегментний код, не вийти забезпечити точну частоту оновлення.
2. Написати програму яка в безперервному циклі Виробляє АЦП перетворення, переклад результату в семисегментний код. Складає результати в буффер. За перериваннях таймерів відбувається динамічна і звукова індикація.
Переваги: ​​даний підхід забезпечить точну частоту звукової та динамічної індикації. Не потрібно підбирати затримки для індикацій. Можна частіше знімати дані з АЦП і виводити їх пізніше, а це зменшує ймовірність того, що ми пропустимо різка зміна рівня вхідного сигналу.
Недоліки: розробка програми ускладнитися за рахунок використання таймерів та переривань від них. Крім того потрібно якимось чином організувати буфер для зберігання результатів АЦП.
Враховуючи все вищесказане, ми вибираємо 2 варіант, тому що на наш погляд він більше пристосований для вирішення поставленого завдання.

6.1. Блок-схеми алгоритмів та їх опис

6.2. Структура програми
Мікроконтролер виконує наступні функції:
- Прийом аналогового сигналу;
- АЦП перетворення;
- Перетворення результату АЦП в семисегментний код;
- Прийняття рішення про вихід рівня вхідного сигналу за порогові рівні.
- Висновок перетворених значень на світлодіодні індикатори (здійснення динамічної індикації із заданою частотою)
- Видача сигнальних повідомлень на світлодіоди і динамік.
Програма містить наступні ділянки програми:
INIT - робить переклад всіх портів і регістрів пристрою в початковий стан;
MAIN - основна програма;
IRQTMR1 - підпрограма обробки переривання від таймера1 (для динамічної індикації)
IRQTMR2 - підпрограма обробки переривання від таймера2
(Для звукової індикації)
INDICATION - підпрограма поновлення стану індикатора;
BINTOSEVEN - підпрограма перекладу числа із двійкового коду в семисегментний код.
SOUNDINDICATION - підпрограма звукової індикації
6.3. Текст програми.
Текст програми приведений у додатку А.
6.4. Технологія налагодження програми
При розробці та налагодженні програми була використана безкоштовна програма Mplab надається фірмою Microchip.
MPLAB - це інтегроване середовище розробки (IDE) для сімейства мікроконтролерів PICmicro фірми Microchip Technology Incorporated. MPLAB дозволяє писати, налагоджувати та оптимізувати програми для Ваших розробок. MPLAB включає текстовий редактор, симулятор (віртуальний відладчик), менеджер проектів і підтримує емулятори (внутрішньосхемного отладчики) MPLAB-ICE і PICMASTER, програматори PICSTART Plus і PRO MATE II та інші засоби та інструменти розробок фірми Microchip і інших фірм.
Інструментальні засоби MPLAB, організовані як спадаючі меню і які визначаються швидкі клавіші, дозволяють:
- Ассембліровать, компілювати вихідний текст;
- Налагоджувати логіку роботи, спостерігаючи за допомогою симулятора або, в реальному часі, з емулятором MPLAB-ICE;
- Переглядати змінні у вікнах перегляду;
- Програмувати кристали з допомогою програматорів PICSTART Plus або PRO MATE II
- І багато чого іншого.
Так як MPLAB не коректно працює з АЦП, налагодження програми виконувалась шляхом заміни результату АЦП числами, які не виходили за порогові значення (заданими константами К1 і К2) і на числа які:
а) менше нижньої межі;
б) більше верхньої межі.
6.5. Технологія налагодження програми
6.5.1. Компіляція (з роздруківкою всіх файлів, отриманих під час компіляції: obj, lst, erl, sym)
У ході компіляції був отриманий об'єктний модуль і НЕХ - файл придатний для прошивки в пам'ять мікроконтролера.
Наведемо фрагменти файлів отриманих під час компіляції:
Файл KURSOV.lst:
MPASM 02.50.02 Intermediate KURSOV.ASM 4-20-2006 9:09:06 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 list p = 16C72
00002 # include <P16C72.inc>
00001 LIST
00002; P16C72.INC Standard Header File, Version 1.01 Microchip Technology, Inc.
00249 LIST
00003
00000020 00004 TMP EQU 20H
00000021 00005 K1 EQU 21H
00000022 00006 K2 EQU 22H
00007
00000023 00008 SOTNI EQU 23H
00000024 00009 DESYATKI EQU 24H
00000025 00010 EDINICI EQU 25H
00011
00000028 00012 SAVEW EQU 28H
00000030 00013 SAVEW2 EQU 30H
00000029 00014 SAVESTATUS EQU 29H
00000031 00015 SAVESTATUS2 EQU 31H
00016
00000026 00017 SV EQU 26H; STACK VERTEX
00000027 00018 SP EQU 27H; STACK POINTER
00019
00020
00000032 00021 DINAMIK EQU 32H
00022
00000033 00023 CT EQU 33H; FOR DELAY
00024
00025; STK 40h-5Eh; STACK ADDRES FOR TEN BCD TRIADS
00026
Warning [205]: Found directive in column 1. (ORG)
0000 00027 ORG 0x00; processor reset vector
0000 28B5 00028 GOTO Start; go to beginning of program
00029
00030
00031; ------------- IRQ
Warning [205]: Found directive in column 1. (ORG)
0004 00032 ORG 0x04; обробка переривання здійснюється за 9 циклів (4,5 мкс)
0004 1C0C 00033 BTFSS PIR1, TMR1IF; аналіз
0005 2818 00034 goto IRQTMR2; джерела переривання
00035
0006 00036 IRQTMR1; обробник переривання від таймера
00037 ;------ PUSH REGISTERS ---------
0006 00A8 00038 MOVWF SAVEW
0007 0803 00039 MOVF STATUS, W
0008 00A9 00040 MOVWF SAVESTATUS
0009 0804 00041 MOVF FSR, W
000A 00A6 00042 MOVWF SV
00043 ;------------------------------
000B 1010 00044 BCF T1CON, TMR1ON; TIMER STPR
000C 3038 00045 MOVLW B'00111000 '
000D 008E 00046 MOVWF TMR1L
000E 30A7 00047 MOVLW B'10100111 '
000F 008F 00048 MOVWF TMR1H
MPASM 02.50.02 Intermediate KURSOV.ASM 4-20-2006 9:09:06 PAGE 2
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0010 1410 00049 BSF T1CON, TMR1ON; TIMER ON
0011 100C 00050 BCF PIR1, TMR1IF; скидання прапора переповнення від таймера
0012 2116 00051 CALL INDICATION
00052
00053 ;------ POP REGISTERS ---------
0013 0826 00054 MOVF SV, W
0014 0084 00055 MOVWF FSR
0015 0829 00056 MOVF SAVESTATUS, W
0016 0083 00057 MOVWF STATUS
0017 0828 00058 MOVF SAVEW, W
00059 ;------------------------------
---------------------------------
---------------------------------
Файл KURSOV.err:
Warning [205] D: \ MPLAB \ KURSOV.ASM 27: Found directive in column 1. (ORG)
Warning [205] D: \ MPLAB \ KURSOV.ASM 32: Found directive in column 1. (ORG)
Warning [203] D: \ MPLAB \ KURSOV.ASM 83: Found opcode in column 1. (Retfie)
Warning [205] D: \ MPLAB \ KURSOV.ASM 86: Found directive in column 1. (ORG)
Message [302] D: \ MPLAB \ KURSOV.ASM 107: Register in operand not in bank 0. Ensure that bank bits are correct.
Message [302] D: \ MPLAB \ KURSOV.ASM 109: Register in operand not in bank 0. Ensure that bank bits are correct.
Message [302] D: \ MPLAB \ KURSOV.ASM 111: Register in operand not in bank 0. Ensure that bank bits are correct.
Message [302] D: \ MPLAB \ KURSOV.ASM 167: Register in operand not in bank 0. Ensure that bank bits are correct.
Message [302] D: \ MPLAB \ KURSOV.ASM 168: Register in operand not in bank 0. Ensure that bank bits are correct.
Warning [203] D: \ MPLAB \ KURSOV.ASM 322: Found opcode in column 1. (RETURN)
Warning [203] D: \ MPLAB \ KURSOV.ASM 399: Found opcode in column 1. (RETURN)
Warning [203] D: \ MPLAB \ KURSOV.ASM 419: Found opcode in column 1. (RETURN)
Warning [203] D: \ MPLAB \ KURSOV.ASM 434: Found opcode in column 1. (RETURN)
Warning [205] D: \ MPLAB \ KURSOV.ASM 438: Found directive in column 1. (END)
Файл KURSOV.hex:
: 02000000B52821
: 080008000C1C1828A8000308D5
: 10001000A9000408A600101038308E00A7308F0009
: 1000200010140C10162126088400290883002808C3
: 100030008C1C2628B0000308B1001211003091007A
: 0E00400012158C105C21310883003008090075
: 0C01540082073F3406345B344F346634BD
: 100160006D347D3407347F346F3403138316FF30CE
: 10017000850000308600003087008312FF30A00029
: 10018000A501A301A401B201850186018701073001
: 100190008700FF30B3007830A2002D30A10040303E
: 1001A0008400A700A60038308E00A7308F00900191
: 1001B00010140C108B170B1783160C148C1483124D
: 1001C000C1309F001F1534211F19E4287F309E0085
: 1001D0001E08A000FF30B300000000000000000077
: 1001E000000000000000000000000000000000000F
: 1001F00000000000000000000000B30BEC2803101A
: 1002000021082002031C0D29031020082202031CD0
: 100210000D29121187150712DF2807168711920181
: 100220008C101211FC3091001215DF282708840071
: 1002300000080710860067210714840A0008871049
: 10024000860067218714840A000807118600672149
: 100250000715840A03105E300402031C3129403064
: 1002600084000408A7000800A301A401A501A30AB3
: 100270006430A00203183729A3036430A007A40A3E
: 100280000A30A00203183F29A4030A30A00720085F
: 10029000A500AA208000840A2408AA208000840ADD
: 1002A0002308AA208000840A03105E300402031C85
: 1002B0005B29403084000800031001303202031C27
: 1002C0006429B20387120800B20A87160800FF30BB
: 1002D000B30000000000000000000000000000006B
: 0602E000B30B69290800C0
: 00000001FF

6.5.2. Моделювання
Моделювання проводилося в інтегрованому середовищі розробки MPLAB (коротко в розділі 6.5 цього документа).
Для перевірки стану регістрів ми використовували вікно «watch», а для підрахунку часу виконання процедур в програмі були розставлені breakpoint'и і використовувалося вікно «stopwatch».
В результаті моделювання встановлено працездатність програми. досліджено вийшли тимчасові характеристики:
Процедура BINTOSEVEN-в гіршому випадку (при перетворенні рівня 5В) - 99 мкс.
Процедура INDICATION-7694 мкс
Інтервал між викликами INDICATION - 22741 мкс (44Гц)
Інтервал між викликами SOUNDINDICATION - 268 мкс (3731Гц)
Дані тимчасові характеристики повністю задовольняють ТЗ.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1) В. В. Скороделов "Проектування пристроїв на однокристальних мікроконтролерах з RISC-архітектурою". Ч1, Ч2, Навчальний посібник.
2) Угрюмов Є. П. Проектування елементів і вузлів ЕОМ. М.: Вища школа, 1991.
3) Шило В. Л. Популярні цифрові мікросхеми. М.: Радіо і зв'язок, 1988.
4) Тулі М. Довідковий посібник з цифрової електроніки. М.: "Вища школа", 1990.
5) Бірюков С.А. "Застосування інтегральних мікросхем серії ТТЛ". М.: "Патріот", 1992.
6) Застосування інтегральних мікросхем в електронній обчислювальній техніці. Довідник (за ред. Б. І. Файзулаева,-М, Радіо і зв'язок, 1989)
7) ГОСТ 2.102-68. Види і комплектність конструкторської докуметації. М.: 1988.
8) ГОСТ 2.708-81. Правила виконання електричних схем цифрової обчислювальної техніки. М.: 1988.
9) Розробка та оформлення конструкторської документації. РЕА. Довідник (за ред. Е. Г. Романичева - М.: Радіо і зв'язок, 1989)
10) Ю. В. Новіков, О. А. Калашников "Розробка пристроїв сполучення". Видавництво "ЕКОМ", Москва, 1998р. 355 з.

Висновок
У даному проекті був розроблений пристрій контролю за рівнями аналогових сигналів.
Цей пристрій призначений для вимірювання рівнів вхідних аналогових сигналів, перевірки потрапляння рівня в певні межі і відображення на цифровому табло поточного значення рівня сигналу.
Пристрій реалізований на однокристальним мікроконтролері типу PIC16С71.
Застосування в пристрої даного однокристального мікроконтролера призвело до економії елементів, можливості змінюючи програму роботи в широких межах коригувати алгоритм обробки даних. Також покращилися вагогабаритні параметри.
Пристрій має такі характеристики:
Споживана потужність не більше 0,5 Вт;
Напрацювання на відмову близько 35000 годин;
Рівні вхідних сигналів 0-5 В.
Промоделювати роботу програми і проаналізувавши, отримані при моделюванні, тимчасові характеристики можемо сказати що пристрій повністю задовольняє вимогам, поставленим у ТЗ.
В якості покращення можна запропонувати доопрацювати пристрій, а конкретніше додати можливість контролю за рівнями аналогових сигналів, рівень яких вище 5В.
В якості рішення можна запропонувати поставити на вході АЦП дільник рівня і враховувати його коефіцієнт розподілу в програмі (для перекладу результату відображення в семисегментний код).
При такому підході вийти повноцінний вольтметр постійного струму.



Позначення
Найменування
Кількість
Конденсатори
С1
K50-6-20 мкФ - 16В
1
С2-С3
МРТ-111-20 пФ ± 10%-63В
2
С4
КМ - 6 - 9 - 0,47 + - 10% ожо 464. 023 ТУ
1
Мікросхеми
DD1
PIC16С72
1
HG
АЛС324А
3
Кварц
ZQ1
4 МГц
1
Роз'єми
ХТ1
СНТ 4
1
Телефон
BF1
ТОН-2
1
Кнопки
SA1
П2К
1
Резистори
R1
ОМЛТ 0,125 - 300 Ом
1
R2-R11
ОМЛТ 0,125 - 1,2 КОм
10

Додаток А

Текст програми:
list p = 16C72
# Include <P16C72.inc>
TMP EQU 20H
K1 EQU 21H
K2 EQU 22H
SOTNI EQU 23H
DESYATKI EQU 24H
EDINICI EQU 25H
SAVEW EQU 28H
SAVEW2 EQU 30H
SAVESTATUS EQU 29H
SAVESTATUS2 EQU 31H
SV EQU 26H; STACK VERTEX
SP EQU 27H; STACK POINTER
DINAMIK EQU 32H
CT EQU 33H; FOR DELAY
; STK 40h-5Eh; STACK ADDRES FOR TEN BCD TRIADS
ORG 0x00; processor reset vector
GOTO Start; go to beginning of program
; ------------- IRQ
ORG 0x04; обробка переривання здійснюється за 9 циклів (4,5 мкс)
BTFSS PIR1, TMR1IF; аналіз
goto IRQTMR2; джерела переривання
IRQTMR1; обробник переривання від таймера
;------ PUSH REGISTERS ---------
MOVWF SAVEW
MOVF STATUS, W
MOVWF SAVESTATUS
MOVF FSR, W
MOVWF SV
;------------------------------
BCF T1CON, TMR1ON; TIMER STPR
MOVLW B'00111000 '
MOVWF TMR1L
MOVLW B'10100111 '
MOVWF TMR1H
BSF T1CON, TMR1ON; TIMER ON
BCF PIR1, TMR1IF; скидання прапора переповнення від таймера
CALL INDICATION
;------ POP REGISTERS ---------
MOVF SV, W
MOVWF FSR
MOVF SAVESTATUS, W
MOVWF STATUS
MOVF SAVEW, W
;------------------------------
IRQTMR2
BTFSS PIR1, TMR2IF; аналіз
goto RET
T2BREAK
;------ PUSH REGISTERS ---------
MOVWF SAVEW2
MOVF STATUS, W
MOVWF SAVESTATUS2
;------------------------------
BCF T2CON, TMR2ON; TIMER2 STOP
MOVLW B'00000000 '
MOVWF TMR2
BSF T2CON, TMR2ON; TIMER2 ON
BCF PIR1, TMR2IF; скидання прапора переповнення від таймера
CALL SOUNDINDICATION
;------ POP REGISTERS ---------
MOVF SAVESTATUS2, W
MOVWF STATUS
MOVF SAVEW2, W
;------------------------------
RET
retfie; повернення з переривання
ORG 0xAA
TOSEVEN
addwf PCL, F; W + PC -> PC
retlw b'00111111 '; .. FEDCBA = "0"
retlw b'00000110 '; ..... CB. = '1 '
retlw b'01011011 ';. G.ED.BA = '2'
retlw b'01001111 ';. G.. DCBA = '3'
retlw b'01100110 ';. GF .. CB. = '4 '
retlw b'01101101 ';. GF.DC.A = '5'
retlw b'01111101 ';. GFEDC.A = '6'
retlw b'00000111 '; ..... CBA = '7'
retlw b'01111111 ';. GFEDCBA = '8'
retlw b'01101111 ';. GF.DCBA = '9'
Start
BCF STATUS, 6
BSF STATUS, 5; BANK1
MOVLW B'11111111 '; INITA
MOVWF TRISA
MOVLW B'00000000 '; INITB
MOVWF TRISB
MOVLW B'00000000 '; INITC
MOVWF TRISC

BCF STATUS, 5; BANK 0
;--------------------------- INIT VAR
;----------------- TESTS
MOVLW B'11111111 '
MOVWF TMP
;----------------------
; CLRF TMP
CLRF EDINICI
CLRF SOTNI
CLRF DESYATKI
CLRF DINAMIK
CLRF PORTA
CLRF PORTB
CLRF PORTC
MOVLW B'00000111 '
MOVWF PORTC

MOVLW B'11111111 '
MOVWF CT
MOVLW .120
MOVWF K2
MOVLW .45
MOVWF K1
;--------------------------- INIT STACK
MOVLW 0x40
MOVWF FSR
MOVWF SP
MOVWF SV
;--------------------------- INIT TIMER1
MOVLW B'00111000 '
MOVWF TMR1L
MOVLW B'10100111 '
MOVWF TMR1H
;------------------------------- INIT TIMER 2
; --------------------------- RUN TIMER1
CLRF T1CON
BSF T1CON, TMR1ON; TIMER ON
BCF PIR1, TMR1IF
BSF INTCON, GIE
BSF INTCON, PEIE
BSF STATUS, 5; BANK1
BSF PIE1, TMR1IE
BSF PIE1, TMR2IE
; MOVLW B'00000001 '
; MOVWF PIE1
MAIN
;--------------------------------------------- ADC --- ---------
BCF STATUS, 5; BANK0
MOVLW B'11000001 '
MOVWF ADCON0
BSF ADCON0, 2; START CONV
CALL BINTOSEVEN
LOOP
BTFSC ADCON0, 2
GOTO LOOP
;---------------------------- TEST VALUES
; MOVLW B'1100100 '; POADAET
; MOVLW B'0000000 '; NIJE
MOVLW B'1111111 '; VISHE
MOVWF ADRES
;---------------------------
MOVF ADRES, W
MOVWF TMP
; DELAY ;---- 5106-CYCLES 1CYCLE = 1us
MOVLW .255
MOVWF CT
D2
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ CT, 1
GOTO D2
COMP
; ----------------- COMPARE -----------
; K1 <ADC <K2????
;---- K1 <ADC? ----------
BCF STATUS, 0
MOVF K1, W
SUBWF TMP, 0; ADFRES-K1
BTFSS STATUS, 0; ЯКЩО ADRES <ki, ТО ПЕРЕЙТИ НА NO (ІНАКШЕ ПРО
; ПРОПУСТИТИ СЛІД КОМАНДУ)
GOTO NO
;---- ADC <= K2? --------
BCF STATUS, 0
MOVF TMP, W
SUBWF K2, 0; ADFRES-K1
BTFSS STATUS, 0; ЯКЩО ADRES> ki, ТО ПЕРЕЙТИ НА NO (ІНАКШЕ ПРО
; ПРОПУСТИТИ СЛІД КОМАНДУ)
GOTO NO
; YES
;--------------- TIMER 2 STOP
BCF T2CON, TMR2ON; TIMER STOP
BSF PORTC, 3
BCF PORTC, 4
GOTO MAIN
NO
;--------------- TIMER2 ON WITH IMMIDIATLY IRQ
BSF PORTC, 4
BCF PORTC, 3

CLRF T2CON
BCF PIR1, TMR2IF; скидання прапора переповнення від таймера
BCF T2CON, TMR2ON; TIMER2 STOP
MOVLW B'11111100 '
MOVWF TMR2
BSF T2CON, TMR2ON; TIMER2 ON

;------------------------------------------------- -
GOTO MAIN
; -------------------- DYNAMIC INDICATION PROCEDURE
INDICATION
;----------- RESTORE SP VALUE -----------
MOVF SP, W
MOVWF FSR
;---------------------------------------
MOVF INDF, W
BCF PORTC, 0
MOVWF PORTB
CALL DELAY
BSF PORTC, 0
INCF FSR, F
MOVF INDF, W
BCF PORTC, 1
MOVWF PORTB
CALL DELAY
BSF PORTC, 1
INCF FSR, F
MOVF INDF, W
BCF PORTC, 2
MOVWF PORTB
CALL DELAY
BSF PORTC, 2
INCF FSR, F
;------------------- CALCULATE SP (STACK POINTER)
;---- 5Eh <FSR? ----------
BCF STATUS, 0
MOVLW 0x5E
SUBWF FSR, 0; ADFRES-K1
BTFSS STATUS, 0; ЯКЩО FSR <70h, ТО ПЕРЕЙТИ НА NO (ІНАКШЕ ПРОПРОПУСТІТЬ СЛІД КОМАНДУ)
GOTO SPFSRNO
MOVLW 0x40
MOVWF FSR
SPFSRNO
;------------ PUSH SP VALUE ----------
MOVF FSR, W
MOVWF SP
RETURN
;---------------------- BINARY TO SEVENSEGMENTS GODE CONVERTION
BINTOSEVEN
; ----------- MUL x2 --------------
clrf SOTNI
clrf DESYATKI
clrf EDINICI
; RLF TMP, 1
; BTFSS STATUS, 0;
; GOTO M1
;
; MOVLW .2
; MOVWF SOTNI
; MOVLW .5
; MOVWF DESYATKI
; MOVLW .6
; MOVWF EDINICI
M1
;----------- Convert bin to bcd -------------
; Clrf SOTNI
pr0
incf SOTNI, f; розряд сотень
movlw .100
subwf TMP, f
btfsc STATUS, 0
goto pr0
decf SOTNI, f
movlw .100
addwf TMP, F
; Clrf DESYATKI
pr1
incf DESYATKI, F; розряд десятків
movlw .10
subwf TMP, F
btfsc STATUS, 0
goto pr1
decf DESYATKI, F
movlw .10
addwf TMP, F
; Clrf EDINICI
movf TMP, W
movwf EDINICI
;----------- Convert bcd to seven segments code -------------
TTTT
CALL TOSEVEN
MOVWF INDF
INCF FSR, F
MOVF DESYATKI, W
CALL TOSEVEN
MOVWF INDF
INCF FSR, F
MOVF SOTNI, W
CALL TOSEVEN
MOVWF INDF
INCF FSR, F
;------------------- CALCULATE SV (STACK VERTEX)
;---- 5Eh <FSR? ----------
BCF STATUS, 0
MOVLW 0x5E
SUBWF FSR, 0; ADFRES-K1
BTFSS STATUS, 0; ЯКЩО FSR <70h, ТО ПЕРЕЙТИ НА NO (ІНАКШЕ ПРОПРОПУСТІТЬ СЛІД КОМАНДУ)
GOTO SVFSRNO
MOVLW 0x40
MOVWF FSR
SVFSRNO
RETURN
;---------------------- SOUND INDICATION PROCEDURE
SOUNDINDICATION
BCF STATUS, 0
MOVLW 0x1
SUBWF DINAMIK, 0; ADFRES-K1
BTFSS STATUS, 0; ЯКЩО FSR <70h, ТО ПЕРЕЙТИ НА NO (ІНАКШЕ ПРОПРОПУСТІТЬ СЛІД КОМАНДУ)
GOTO DIN
DECF DINAMIK, F
BCF PORTC, 5
RETURN
DIN
INCF DINAMIK, F
BSF PORTC, 5
RETURN
DELAY ;---- 2555-CYCLES 1CYCLE = 1us
MOVLW .255
MOVWF CT
D1
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ CT, 1
GOTO D1
RETURN
END
Додати в блог або на сайт

Цей текст може містити помилки.

Комунікації, зв'язок, цифрові прилади і радіоелектроніка | Курсова
195.6кб. | скачати


Схожі роботи:
Приймач аналогових сигналів з амплітудною модуляцією
Розробка структурної схеми аналого-цифрового інтерфейсу Підсистема збору аналогових сигналів
Розробка структурної схеми аналого цифрового інтерфейсу Підсистема збору аналогових сигналів
Розробка структурної схеми аналого цифрового інтерфейсу Підсистема збору аналогових сигналів
Ступінь конформності у людей з різним рівнем суб`єктивного контролю
Радіоприймальний пристрій для прийому сигналів типу F3EH
Пристрій контролю інтенсивності руху через міст
Проектування аналогових пристроїв
Аналіз та моделювання цифрових і аналогових схем
© Усі права захищені
написати до нас