КУРСОВАРОБОТА
"Програмнокерований генератор лінійнонаростаючої напруги наднизькоїчастоти на мікроконтролері "
Зміст
Введення
1 Огляданалогічних пристроїв
2 Обгрунтуванняобраного варіанта технічного рішення
3 Розробкапринципової схеми пристрою
4 Розробкаалгоритму і програми функціонування пристрою
5 Результатиемуляції програми в пакеті VMLAB
6 Аналізчасових співвідношень і оцінка похибок
Висновки
Введення
У наш час в сфері радіоелектроніки знаходять широке застосуваннятакі пристрої, як мікроконтролери, що представляють собою мікропроцесорнусистему, реалізовану у вигляді інтегральної мікросхеми. У мікроконтролерможливо записати будь-яку програму-прошивку, визначальну алгоритмфункціонування пристрою на базі мікроконтролера, що дозволяєвикористовувати мікроконтролери практично у всіх пристроях, де використовуєтьсяобробка цифрових сигналів. В якості ілюстрації можливостей застосуваннямікроконтролерів при проектуванні радіотехнічних пристроїв, в даномукурсовому проекті наводиться приклад проектування лінійно наростаючоїгенератора із змінною частотою від 5 до 20 Гц з кроком 5 Гц, а також здискретно мінливою амплітудою від 0.5 до 5 Вольт, підстроювання якоїздійснюється двома кнопками. Індикація амплітуди генерованих сигналівздійснюється за допомогою ЖКИ.
1. Огляд аналогічних пристроїв
Перш, ніж приступити до розгляду проектування генератора наоснові МК, наведемо короткий огляд аналогічних варіантів реалізації генераторалінійно наростаючої напруги. Крім МК, генератор імпульсів можнареалізувати на базі звичайного двухтранзісторного симетричного мультивібратора.Переваги такого варіанту полягають у відсутності необхідності писати програмудля МК, недоліки ж полягають в тому, що в аналогових генераторах важчедомогтися ідеальної форми фронтів імпульсу, а також забезпечити найбільш точнупідстроювання частоти внаслідок розкиду номіналів елементів схеми генератора.Індикація амплітуди за допомогою ЖКИ несе ускладнення такої схеми і неминучістьзастосування мікроконтролера з АЦП. Ще один варіант полягає у використаннілогічних елементів, з'єднаних послідовно в неінвертуючий підсилювач ізастосуванні RC-ланцюжка для створення позитивного зворотного зв'язку. Недоліктакої схеми полягає у її ускладненні в порівнянні з мультивібратором, апитання з індикацією вирішується шляхом ще більшого ускладнення пристрою. Нарешті,схема генератора на базі МК має незаперечні переваги: ​​простотою(Генерування і керування індикацією здійснюється за допомогою однієїмікросхеми), хорошою формою генерується сигналу, а також широкимиможливостями по точної підстроювання частоти і амплітуди сигналу.
2. Обгрунтування обраного варіанту технічного рішення
У даній роботі для реалізації генератора на базі МК будутьвикористані такі елементи, як мікроконтролер, ЦАП, ЖКИ і керуючікнопки. Необхідність використання ЦАП викликана тим, що амплітуду сигналівпроектованого генератора можна буде змінювати. ЦАП ж дозволяє формуватисигнали довільної форми шляхом подачі цифрового коду миттєвого значеннянапруги сигналу на його вхід. В якості РКІ використовується індикатор на базіконтролера HD44780, який є фактично промисловим стандартом і набазі якого проводяться більшість ЖКИ. В якості МК обрана модельAT90S8515 (AVR-мікроконтролер сімейства Classic фірми Atmel). Будучивипущеним кілька років тому, такий МК має невелику вартість, але в йогоскладі є всі необхідні для розробки генератора компоненти (4 8-розряднихПВВ, 8-розрядний таймер-лічильник, ядро ​​з робочими частотами до 16 МГц).
3. Розробка принципової схеми пристрою
Як вже було сказано вище, основними компонентами схеми генераторає мікроконтролер, ЦАП, ЖКИ і керуючі кнопки. ЦАП має 8 входів, наякі подається цифровий код сигналу, і вихід, з якого знімається аналоговийсигнал. В даному випадку було вирішено підключити входи ЦАП до 8-розрядному порту Смікроконтролера. Керуючі кнопки діляться на 2 кнопки регулювання амплітудиі 4 кнопки установки частоти. Кнопки регулювання амплітуди були підключені довиходам 2 і 3 порти D, які є входами зовнішніх переривань INT0 і INT1.Кнопки установки частоти підключені до виводів 4, 5, 6 і 7 порту D.
ЖКИ підключається до мікроконтролера 11-ма виводами. 8 з нихє шиною даних і підключаються до порту А. Решта 3 виведенняє керуючими: висновок RS визначає, що передається по 8-розрядній шині:команди або дані (коди відображаються символів) і підключений він до нульовоговиходу порту В, висновок R/W визначає режим читання/запису шини даних, іпідключається до першого виходу порту В, по висновку Е подаються стробирующиеімпульси, які супроводжують процеси читання або запису, підключений вихід Е висновку2 порти В. Також у МК є висновки XTAL1 і XTAL2, до яких підключаєтьсякварцовий резонатор. Схема генератора електрична принципова приведена накресленні, що додається до пояснювальної записки. Проектний файл програми VMLAB,описує схему пристрою електричну принципову, наведено вдодатку А.
4. Розробка алгоритму та програми функціонування пристрою
Алгоритм головної програми можна умовно розділити на 3 частини:блок ініціалізації МК і ЖКИ, блок опитування кнопок і блок генерування сигналу.Крім того, в даній програмі будуть використовуватися допоміжніпідпрограми, алгоритми яких будуть розглянуті трохи пізніше.
У блоці ініціалізації можна виділити такі основні частини, якпривласнення значень оголошеним константам, настройка портів вводу-виводу,ініціалізацію переривань, а також команди ініціалізації РКІ та індикаціїамплітуди за замовчуванням. Налаштування ПВВ здійснюється шляхом присвоєнняпевних значень регістрів введення-виведення - DDRX (відповідає за тип порту -вхід, або вихід) і PORTX (дозволяє програмним шляхом підключати підтягаючірезистори).
Дозвіл переривань відбувається на двох рівнях: загальному рівні(Установкою в 1 прапора I регістру SREG) і місцевому рівні. У даній програмівикористовуються два види переривань: зовнішні INT0 і INT1, і переривання попорівнянні від першого таймер-лічильник. Зовнішні переривання дозволяються шляхом установкив 1 6-го і 7-го бітів регістра GIMSK, а переривання по переповненню нульового таймер-лічильникдозволяється установкою в 2-го біта регістра TIMSK (регістра маскуванняпереривань). Команди ініціалізації РКІ виконують включення РКІ і очищенняекрану, налаштування виду курсора, вказівка ​​кол-ва рядків, рівного двом і установкурозрядності шини даних (8-розрядна шина, в нашому випадку).
У блоці опитування кнопок опитуються 4, 5, 6 і 7 висновки порту D, дояких підключені кнопки управління частотою. (Кнопки регулювання амплітудипідключені до виводів зовнішніх переривань, обробка яких буде розглянутапізніше.) Опитування кнопок відбувається шляхом перевірки відповідного висновкупорту на нульовий стан (коли кнопка не натиснута, на її виводі стоїть В«1В»,внаслідок наявності підтягаючих резисторів). Якщо кнопка натиснута, відбуваєтьсяперехід на відповідну позначку, в якій встановлюються значення констант,які будуть записані в регістр лічильник TCNT0 таймер-лічильник. Якщо ж ненатиснута жодна з кнопок, то в регістри порівняння завантажуються значення позамовчуванням, відповідні частоті 10 Гц. Після блоку опитування кнопок слідблок генерування сигналу.
Генерація лінійно наростаючої напруги відбувається за наступнимпринципом. Спочатку на вхід ЦАП подається значення амплітуди збільшене наодиницю, потім порівнюється з максимальним значенням, якщо амплітуда недосягла максимального значення амплітуди, то значення знову збільшується наодиницю і подається на вхід ЦАП. Якщо ж значення досягло максимальноїамплітуди, то викликається підпрограма формування тимчасової затримки. Післяцього на вхід ЦАП подається цифровий код, що дорівнює нулю, потім знову викликаєтьсяпідпрограма тимчасової затримки і відбувається перехід на мітк...