Головна
Банківська справа  |  БЖД  |  Біографії  |  Біологія  |  Біохімія  |  Ботаніка та с/г  |  Будівництво  |  Військова кафедра  |  Географія  |  Геологія  |  Екологія  |  Економіка  |  Етика  |  Журналістика  |  Історія техніки  |  Історія  |  Комунікації  |  Кулінарія  |  Культурологія  |  Література  |  Маркетинг  |  Математика  |  Медицина  |  Менеджмент  |  Мистецтво  |  Моделювання  |  Музика  |  Наука і техніка  |  Педагогіка  |  Підприємництво  |  Політекономія  |  Промисловість  |  Психологія, педагогіка  |  Психологія  |  Радіоелектроніка  |  Реклама  |  Релігія  |  Різне  |  Сексологія  |  Соціологія  |  Спорт  |  Технологія  |  Транспорт  |  Фізика  |  Філософія  |  Фінанси  |  Фінансові науки  |  Хімія

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

Курсова робота

"Програмно керований генератор лінійно наростаючої напруги наднизької частоти на мікроконтролері"

Зміст

Введення

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 Гц. Після блоку опитування кнопок слід блок генерування сигналу.

Генерація лінійно наростаючої напруги відбувається за наступним принципом. Спочатку на вхід ЦАП подається значення амплітуди збільшене на одиницю, потім порівнюється з максимальним значенням, якщо амплітуда не досягло максимального значення амплітуди, то значення знову збільшується на одиницю і подається на вхід ЦАП. Якщо ж значення досягло максимальної амплітуди, то викликається підпрограма формування тимчасової затримки. Після цього на вхід ЦАП подається цифровий код, рівний нулю, потім знову викликається підпрограма тимчасової затримки і відбувається перехід на мітку блоку опитування кнопок. Перед блоком генерування сигналу 6 і 7 біти регістра GIMSK встановлюються в нуль, щоб натискання кнопки регулювання амплітуди не впливало на частоту імпульсів.

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

У підпрограмі формування тимчасової затримки виконуються наступні кроки. Спочатку в регістр TCNT0 записується значення константи freq. Розраховується воно за наступним алгоритмом. Період імпульсу ділимо на число рівне максимальному значенню амплітуди, потім множимо на тактову частоту МК, якщо отримане число більше 255, то ділимо його на коефіцієнт предделенія. Потім з 255 віднімаємо отримане число і записуємо значення в регістр TCCR1B. Після чого викликається команда sleep, переводить МК в режим Idle Mode, в якому ядро не виконує ніяких операцій. Після того, як таймер відлічує потрібне число тактів, він викликає переривання, що виводить МК з режиму Idle Mode, і наступною командою в регістр TCCR0 записується 0, тобто таймер-лічильник вимикається.

Підпрограма перевірки прапора зайнятості РКІ потрібна для того, щоб визначити момент, коли РКІ вільний і готовий до виконання чергової команди. Послідовність перевірки прапора зайнятості наступна. Спочатку порт А МК, підключений до шини даних РКІ, настроюється як вхід, і до нього підключаються підтягує резистори. Потім вихід R / W РКІ встановлюється в 1, що налаштовує шину даних РКІ на запис в порт МК. Потім, відповідно до тимчасової діаграмою сигналів РКІ, витримується затримка в 1 мкс, для якої потрібні 4 команди nop. Після них сигнал E встановлюється в 1, витримується затримка ще в 0.5 мкс і значення шини даних записується в тимчасовий регістр temp МК. Потім сигнал E скидається в 0 і опитується 7-й біт регістра temp, що містить значення прапора зайнятості. Якщо він дорівнює 1, то йде повернення на мітку команди установки R / W в 1, якщо ні, то йде команда виходу з підпрограми.

Підпрограма записи команд в РКІ містить наступні кроки. Спочатку порт А налаштовується на висновок інформації. Потім встановлюються в 0 сигнали RS (по шині даних передаються команди) і R / W (шина даних РКІ налаштована на прийом інформації з порту МК). Після чого витримується час 0.5 мкс, і сигнал E встановлюється в 1. Потім витримується час 1 мкс і в шину даних через порт А записується значення команди з константи comm. Після цього сигнал E скидається в 0, і йде вихід з підпрограми.

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

Коди відображуваних символів зберігаються в EEPROM за наступним принципом. Оскільки зміна цифрового коду амплітуди імпульсу здійснюється з кроком 5 (приблизно 0.1 В), а максимальне значення цифрового коду дорівнює 255, то кількість значень амплітуди одно 46 (разом з нульовим значенням). На РКІ відображаються ціла, десяткова і сота частини значень амплітуди. Тому в перші 46 байта EEPROM записуються коди цілої частини амплітуди, в другі 46 байта - коди десяткової частини амплітуди, і в третій 46 байта - коди сотої частини. Сама ж підпрограма читання з EEPROM містить в собі команди запису адреси зчитуваного байта в регістри EEARH і EEARL, установки нульового біта регістра EECR в 1 (дозвіл читання з EEPROM) і читання значення коду з регістра даних EEDR в константу symbol.

Підпрограма індикації поточної амплітуди сигналу використовує підпрограми перевірки прапора зайнятості РКІ, а також записи команд і даних в РКІ. Її можна умовно розділити на блоки очищення екрана, індикації цілої частини значення амплітуди, індикації десяткового дробу, десяткового і сотої частини значення амплітуди, а також індикації пробілу і букви V. У результаті значення амплітуди за замовчуванням виводиться на РКІ у вигляді «2.45 V». Кожен з блоків (крім блоків індикації точки, пробілу і букви V) містить виклик підпрограми читання прапора зайнятості, читання коду символу з EEPROM, індикації символу на РКІ. Після блоків виводу цілою і десяткової частини значення адреси збільшується на 46.

Підпрограми зменшення та збільшення амплітуди діють за таким принципом. Спочатку поточна амплітуда порівнюється зі значеннями 0 (при зменшенні амплітуди) і 255 (при збільшенні амплітуди). Якщо поточна амплітуда не дорівнює цим значенням, то в ПП зменшення амплітуди відбувається зменшення значення константи amplitude на 5, зменшення константи адреси на одиницю і виклик ПП індикації амплітуди, а в ПП збільшення амплітуди відбувається відповідно збільшення значення amplitude на 5, збільшення константи address на одиницю і виклик ПП індикації амплітуди. Блок-схема алгоритму наведена на кресленні, доданому до пояснювальної записки.

Вихідний код програми наведено нижче.

; ************************************************** ****

; Генератор сигналу лінійно наростаючої напруги наднизької частоти з керованою частотою і амплітудою

; Виконав студент

; ************************************************** ****

include «C: \ VMLAB \ include \ 8515def.inc»

def temp = r16

def ConstFF = r17

def Const0 = r18

def amplitude = r19

def freq = r20

def max_ampl = r21

def Const5 = r22

def address = r23

def comm = r24

def symbol = r25

reset:

rjmp start

rjmp minus

rjmp plus

reti

reti

reti

reti

reti

reti

reti

reti

reti

start:

; ініціалізація стека

ldi temp, high (RAMEND)

out SPH, temp

ldi temp, low (RAMEND)

out SPL, temp

; привласнення значень констант

ldi ConstFF, $ FF

ldi Const0, $ 00

ldi Const5, 5

ldi amplitude, 0

ldi freq, 155

ldi max_ampl, 125

ldi amplitude, 0

; настройка портів вводу-виводу

out DDRC, ConstFF

out PORTD, ConstFF

out DDRB, ConstFF

sei

; ініціалізація таймер-лічильника T0 і режиму Idle Mode

ldi temp, 2

out TIMSK, temp

ldi temp, 0b00101010

out MCUCR, temp

ldi temp, 0b11000000

out GIMSK, temp

; ініціалізація індикатора РКІ

rcall bf_check

ldi comm, 0b00001111

rcall command

ldi comm, 0b00111000

rcall bf_check

rcall command

ldi address, 25

rcall display_ampl; індикація амплітуди за замовчуванням

main :; опитування кнопок

ldi temp, 0b11000000

out GIMSK, temp

sbis PIND, 4

rjmp mm1

sbis PIND, 5

rjmp mm2

sbis PIND, 6

rjmp mm3

sbis PIND, 7

rjmp mm4

gener :; генерація пили

out GIMSK, Const0

out PORTC, amplitude

cpse amplitude, max_ampl

rjmp gen1

rjmp gen2

gen1:

inc amplitude

rcall delay

rjmp gener

gen2: ldi amplitude, 0

rjmp main

; вибір значення частоти

mm1: ldi freq, 156

rjmp gener

mm2: ldi freq, 206

rjmp gener

mm3: ldi freq, 222

rjmp gener

mm4: ldi freq, 231

rjmp gener

; підпрограма тимчасової затримки

delay:

out TCNT0, freq

ldi temp, 0b00001011

out TCCR0, temp

sleep

out TCCR0, Const0

ret

display_ampl :; підпрограма індикації амплітуди

rcall bf_check

ldi comm, 1; виклик команди

rcall command; очищення екрана

; висновок цілої частини значення амплітуди

rcall read_EEPROM

rcall bf_check

rcall data

; висновок десяткового дробу

ldi symbol, $ 2E

rcall bf_check

rcall data

; висновок десяткової частини значення амплітуди

ldi temp, 46

add address, temp

rcall read_EEPROM

rcall bf_check

rcall data

; висновок сотої частини значення амплітуди

ldi temp, 46

add address, temp

rcall read_EEPROM

rcall bf_check

rcall data

ldi temp, 92

sub address, temp

; висновок пробілу і букви V

rcall bf_check

ldi symbol, $ 20

rcall data

ldi symbol, $ 56

rcall bf_check

rcall data

ret

command :; підпрограма записи команди в РКІ

out DDRA, ConstFF

out PORTB, Const0

nop

nop

sbi PORTB, 2

nop

nop

nop

out PORTA, comm

cbi PORTB, 2

ret

data :; підпрограма запису коду символу в РКІ

out DDRA, ConstFF

ldi temp, 1

out PORTB, temp

nop

nop

sbi PORTB, 2

nop

nop

out PORTA, symbol

nop

nop

nop

cbi PORTB, 2

ret

bf_check :; підпрограма перевірки прапора зайнятості

out DDRA, Const0

out PORTA, ConstFF

bf:

ldi temp, 2

out PORTB, temp

nop

nop

nop

nop

sbi PORTB, 2

nop

nop

in temp, PINA

cbi PORTB, 2

sbrc temp, 7

rjmp bf

ret

read_EEPROM :; підпрограма читання коду символу з EEPROM

out EEARH, Const0

out EEARL, address

ldi temp, 1

out EECR, temp

in symbol, EEDR

ret

minus :; зменшення амплітуди

ldi temp, 25

cpse max_ampl, temp

rjmp min1

rjmp min2

min1:

sub max_ampl, Const5

dec address

rcall display_ampl

; тут треба підкрутити частоту

min2:

reti

plus :; збільшення амплітуди

cpse max_ampl, ConstFF

rjmp pl1

rjmp pl2

pl1:

add max_ampl, Const5

inc address

rcall display_ampl

; тут треба підкрутити частоту

pl2:

reti

eseg

db $ 30, $ 30, $ 30, $ 30, $ 30, $ 31, $ 31

db $ 31, $ 31, $ 31, $ 31, $ 31, $ 31, $ 31, $ 31, $ 32, $ 32, $ 32, $ 32, $ 32

db $ 32, $ 32, $ 32, $ 32, $ 32, $ 33, $ 33, $ 33, $ 33, $ 33, $ 33, $ 33, $ 33

db $ 33, $ 33, $ 34, $ 34, $ 34, $ 34, $ 34, $ 34, $ 34, $ 34, $ 34, $ 34, $ 35

db $ 35, $ 36, $ 37, $ 38, $ 39, $ 30, $ 31

db $ 32, $ 33, $ 34, $ 35, $ 36, $ 37, $ 38, $ 39, $ 30, $ 31, $ 32, $ 33, $ 34

db $ 35, $ 36, $ 37, $ 38, $ 39, $ 30, $ 31, $ 32, $ 33, $ 34, $ 35, $ 36, $ 37

db $ 38, $ 39, $ 30, $ 31, $ 32, $ 33, $ 34, $ 35, $ 36, $ 37, $ 38, $ 39, $ 30

db $ 39, $ 39, $ 38, $ 38, $ 38, $ 38, $ 38

db $ 37, $ 37, $ 37, $ 37, $ 37, $ 36, $ 36, $ 36, $ 36, $ 36, $ 35, $ 35, $ 35

db $ 35, $ 35, $ 34, $ 34, $ 34, $ 34, $ 34, $ 33, $ 33, $ 33, $ 33, $ 33, $ 32

db $ 32, $ 32, $ 32, $ 32, $ 31, $ 31, $ 31, $ 31, $ 31, $ 30, $ 30, $ 30, $ 30

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

db $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00

На початку програми за допомогою діректів.def регістрів загального призначення присвоюються певні, осмислені імена, з метою полегшення читання коду надалі. Потім, після мітки reset йде блок опису підпрограм обробки переривань. У нашому випадку таких підпрограм 2 - підпрограми зменшення та збільшення амплітуди (minus і plus). Після мітки start починається основна програма. Перші 4 команди після неї инициализируют стек (записують у старший і молодший байти покажчика стека SPH і SPL адреси кордону оперативної пам'яті, тим самим під область стека відводиться все адресний простір ОЗУ). Потім за допомогою команд ldi в використовувані Рони завантажуються необхідні значення. Після присвоєння значень РОНам (константам) за допомогою команд out в регістри введення-виведення записуються значення настройки портів. Командами

out DDRA, ConstFF і out DDRC, ConstFF порти A і С налаштовуються на вихід, командою out PORTD, ConstFF до порту D підключаються підтягує резистори. Далі, командою sei дозволяються переривання на загальному рівні. Далі, командами ldi temp, 2 і out TIMSK, temp

в регістрі TIMSK встановлюється в 2-й біт, що дозволяє переривання в порівнянні від першого таймер-лічильника. Наступними двома командами в регістр MCUCR записується значення 0b00101010. Установка п'ятого біта регістра дозволяє використання режиму зниженого енергоспоживання, а значення 4-го біта, рівне 0, задає тип режиму - Idle Mode. 3-й і 1-й біти, встановлені в 1, задають зовнішнє переривання по передньому фронту сигналу (по відпускання кнопки). Далі, запис значення 0b11000000 в регістр GIMSK дозволяє зовнішні переривання INT0 і INT1.

У блоці ініціалізації РКІ з допомогою команд rcall викликаються підпрограми опитування прапора зайнятості, записи команд в РКІ та індикації амплітуди за замовчуванням.

У блоці опитування кнопок використовуються команди sbis, пропускають наступну за ними команду, якщо опитуваний біт порту встановлено у 1 (кнопка не було натиснуто). В іншому випадку відбувається перехід за відповідною мітці, де командами ldi в константу freq завантажуються необхідне значення. У блоці генерації командами out в порт С, підключений до входу ЦАП, завантажуються значення амплітуди і нульові значення, що задають 2 полупериода імпульсу.

5. Результати емуляції програми в пакеті VMLAB

Малюнок - Меандр з частотою 5 Гц

Малюнок Меандр з частотою 10 Гц

Малюнок - Меандр з частотою 15 Гц

Малюнок - Меандр з частотою 20 Гц

6. Аналіз тимчасових співвідношень і оцінка похибок

За допомогою результатів, отриманих при емуляції програми в середовищі VMLAB, можна оцінити частоту отриманих сигналів. У першому режимі період меандру виявляється рівним 200 мс, як наслідок його частота дорівнює 5 Гц і не відрізняється від заданої в ТЗ. У другому режимі період меандру дорівнює 100 мс, а частота сигналу - 10 Гц, яка також не відрізняється від заданої. У третьому режимі період меандру дорівнює 68.0 мс, а його частота дорівнює f = 1000 / 68.0 = 14.7 Гц. Вона відрізняється від заданої частоти 15 Гц на 0.03 Гц, і в даному випадку відносна похибка частоти сформованого сигналу дорівнює:

е = 0.03 / 15 = 0.002 = 0.2%

Отримана відносна похибка менше заданої в ТЗ - 0.5%, отже, необхідна точність отриманого значення частоти досягнута.

У 4-му режимі період меандру дорівнює 50 мс, а його частота - 20 Гц, яка не відрізняється від заданої.

Що стосується 1-го, 2-го і 4-го режимів, то похибка значення частоти є, але вона менше похибки вимірювання частоти сигналу засобами програми VMLAB.

Висновки

У виконання курсового проекту була розроблена схема генератора лінійно наростаючої напруги, а також був складений алгоритм і текст програми функціонування МК. Отримане пристрій володіє наступними характеристиками:

- Частота сигналу встановлюється в 4 фіксованих значення

(5, 10, 15 і 20 Гц) 4-ма кнопками. Похибка значення частоти не перевищує 0.5%;

- Амплітуда сигналу змінюється в межах від 0.5 до 5 Вольт 2-ма кнопками збільшення та зменшення амплітуди через 0.1 Вольт;

- Індикація амплітуди здійснюється за допомогою РКІ на базі контролера HD44780.

Перевірка працездатності пристрою емулюватися в програмі VMLAB, що дозволяє описати схему електричну принципову пристрої, ввести текст програми функціонування пристрою, а також здійснити візуальний контроль над генерируемим сигналом і перевірку роботи пристрою в різних режимах.
Проектування перетворювача струму в напругу
Міністерство освіти і науки України Вінницькій національний технічний університет Інститут автоматики, електроніки та комп'ютерних систем управління Факультет автоматики та комп'ютерних систем управління Кафедра метрології та промислової автоматики Проектування перетворювача струму

Проектування мережі абонентського доступу на основі технології VDSL
Міністерство освіти і науки України Харьківський національний університет радіоелектроніки Кафедра «Телекомунікаційні системи та мережі» ПОЯСНЮВАЛЬНА ЗАПИСКА До курсового проекту по курсу: «Багатофункціональні системи абонентського доступу до мереж зв'язку» на тему: «Проектування мережі

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

Проектування цифрового фільтра верхніх частот
Зміст 1. Введення 2. Аналіз задачі та її формалізація 3. Розробка загального алгоритму функціонування фільтра 4. Синтез операційного вузла (вибір і обгрунтування апаратної частини пристрою) 5. Синтез керуючого вузла (розробка програми на мові мікропроцесора) 6. Оцінка швидкодії пристрою 7.

Проектування пристрою, що виконує задані функції перетворення цифрової інформації
Зміст 1 Мета курсового проектування 2 Завдання курсового проектування 3 Розрахункова частина курсового проектування 1 Мета курсового проектування Метою курсового проекту є вирішення комплексного завдання, що охоплює основні розділи дисципліни «Цифрова електроніка» і полягає у виконанні схемотехнічного

Проектування складних логічних структур на МДП-транзисторах
Білоруський державний університет інформатики і радіоелектроніки КАФЕДРА РЕМ РЕФЕРАТ НА ТЕМУ: Проектування складних логічних структур на МДП-транзисторах МІНСЬК, 2009 За схемотехнической реалізації ЛЕ двоступеневої логіки, що виконуються на біполярних транзисторах поділяється на: - Диодно-транзисторні

Проектування зв'язного радіопередавача з частотною модуляцією
Міністерство освіти Російської Федерації Уральського державного ТЕХНІЧНИЙ УНІВЕРСИТЕТ КАФЕДРА ВЧСРТ Проектування зв'язного радіопередавача з частотною модуляцією КУРСОВИЙ ПРОЕКТ Пояснювальна записка 200700 000000 006 ПЗ Підпис Дата П.І.Б. Керівник _ Студент _ Група Р-485 Номер залікової книжки

© 2014-2022  8ref.com - українські реферати