Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Функціональний генератор інфранизької частоти на базі мікропроцесорної системи

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Виходячи із перелічених вимог вибираємо мікроконтролер Intel 8051. Мікроконтролер працює на частоті від 3,5 до 33МГц, тривалість машинного циклу — 12 тактів. Отже при тактовій частоті 24 МГц час між машинними циклами становить 0,5 мкс. В даному мікроконтролері команди виконуються за 1, 2 або 4 машинних цикли. Отже, при виборі періоду дискретизації 50 мкс МК виконує 100 машинних циклів. Звідси… Читати ще >

Функціональний генератор інфранизької частоти на базі мікропроцесорної системи (реферат, курсова, диплом, контрольна)

Функціональний генератор інфранизької частоти на базі мікропроцесорної системи

Міністерство освіти і науки України.

Національний університет «Львівська політехніка» .

ІТРЕ.

Кафедра РЕПС.

КУРСОВА РОБОТА.

з дисципліни «Цифрові пристрої та мікропроцесори».

на тему: «Функціональний генератор інфранизької частоти на базі мікропроцесорної системи».

Виконав:

студент групи РТЕ-4.

П. Ю. Гайчук.

Прийняв:

ас. каф. РЕПС.

В. В. Мінзюк.

Львів — 2003.

Вступ.

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

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

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

Технічне завдання.

До виконання курсової роботи згідно варіанту 2 задано розробити апаратну частину та програму на мові асемблера для мікропроцесорної системи, що реалізує наступні функції:

формує за допомогою ЦАП вихідну напругу, згідно з заданим законом.

U (t) = А*exp (-а*t/Т) = 14*exp (- 2 t / 0.002) = 14 exp (- t / 0.001).

опитує клавіатуру, перша клавіша якої вибирає період повторення функції з ряду T, 2T, 4T, а друга задає амплітуду вихідної напруги з ряду А, А/2, А/4,.

виводить на два семисегментні індикатори інформацію про період повторення: цифри 1, 2, 4 відповідають Т, 2 Т, 4 Т, та про амплітуду: цифри 1, 2, 4, що відповідають А, А/2, А/4.

Крім того задано тип індикації - динамічна.

Задано наступні параметри сигналу:

амплітуда, А = 14 В,.

період Т = 2 мс.

коректуючий коефіцієнт, а = 2.

1. Програмна реалізація функції часу.

Для програмної реалізації функції часу нам необхідно визначити, які значення повинна набувати функція в окремі дискретні моменти часу, та код (восьмирозрядний двійковий, або десятковий від 0 до 255 що йому відповідає), що забезпечить на виході ЦАП значення функції найближче до необхідного. Номери відліків та відповідний для них код представлені (для випадку повної амплітуди та тривалості) у таблиці. Період дискретизації визначається після написання програми і визначення тривалості її виконання. З часу дискретизації визначається к-ть відліків.

255.

1.

243.

2.

231.

3.

219.

4.

209.

5.

199.

6.

189.

7.

180.

8.

171.

9.

163.

10.

155.

11.

147.

12.

140.

13.

133.

14.

127.

15.

120.

16.

115.

17.

109.

18.

104.

19.

99.

20.

94.

Таблиця 1. Відліки.

2. Розробка апаратного забезпечення.

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

Тому вибір МП-комплекту робився з міркувань мінімальної кількості ІМС (простоти апаратної реалізації) при достатній швидкодії і розумному співвідношені ціна/функціональність.

1. Вибір МП комплекту.

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

Виходячи із перелічених вимог вибираємо мікроконтролер Intel 8051. Мікроконтролер працює на частоті від 3,5 до 33МГц, тривалість машинного циклу — 12 тактів. Отже при тактовій частоті 24 МГц час між машинними циклами становить 0,5 мкс. В даному мікроконтролері команди виконуються за 1, 2 або 4 машинних цикли. Отже, при виборі періоду дискретизації 50 мкс МК виконує 100 машинних циклів. Звідси робимо висновок, що швидкодії мікроконтролера достатньо.

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

Внутрішня структура мікроконтролера представлена в додатку 1.

3.2. Вибір шинного інтерфейсу.

При розробці апаратної частини з метою спрощення реалізації в якості зовнішніх шин будемо застосовувати не системні шини мікроконтроллера, а порти вводу-виводу.

Оскільки ми не застосовуємо зовнішні системні шини, то набір шин буде наступним:

8-ми розрядна шина даних (застосовується для передачі даних від МК до ЦАП),.

8-х розрядна шина даних (застосовується для передачі даних на ІП),.

шина керування (застосовується для подачі сигналів І1, І2, та зчитування сигналів від кнопок: S1(«Т»), S2(«А») та Rst).

Інтерфейс ОЗП та ПЗП.

Оскільки для розробки ми вибрали МК, у складі якого є ПЗП і ОЗП (див. додаток 1), зовнішніх пристроїв ОЗП та ПЗП ми не використовуватимемо.

В даному МК області ПЗП і ОЗП розділені між собою, причому для них застосовуються різні методи адресації (рис. 2).

Рис. 2. Структурна схема МК.

В даній роботі, ми використовуватимо внутрішній ПЗП МК, РЗП та ОЗП.

3.4. Підключення ЦАП.

Для реалізації портів вводу-виводу будемо застосовувати вбудовані порти МК. Для підєднання ЦАП використовується порт P2, до якого безпосредньо підєднано ІМС ЦАП.

3.5. Підключення іникаторів.

Для реалізації індикації застосуємо ІМС АЛС324Б, які являють собою семисегментний індикатор.

Таким чином для індикації нам необхідно використати вихідний восьмирозрядний порт. Для цієї мети використаємо порт Р1. Для керування індикацією використаємо порт Р0.

3.6. Розрахунок вихідного підсилювача.

Амплітуда вихідної напруги складає 14 В. На виході ЦАП при вхідному коді 255 та опорній напрузі 14 В буде напруга 14 В. Тому вихідне підсилення не потрібне.

3.7. Остаточна електрична принципова схема.

При складанні електричної принципової схеми враховуючи усі схемні рішення вибрані у попередніх пунктах одержуємо схему зображену у додатку 2.

4. Розробка програмної частини.

Програмна частина складається з головної програми ініціалізації та підпрограми обробки переривання від таймера-лічильника Т0.

4.1. Головна програма ініціалізації.

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

4.2. Підпрограма обробки переривання.

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

При реалізації підпрограми обробки нажаття першої клавіші застосовано алгоритм показаний на рис. 3, для другої - рис. 4.

Рис. 3. Підпрограма обробки нажаття другої клавіші.

Рис. 4. Підпрограма обробки нажаття першої клавіші.

4.4. Програма на мові асемблера.

Згідно вище приведеного опису написано програму на мові асемблера для мікроконтролера Intel 8051. Лістинг програми приведений у додатку 3.

Після написання програми визначаємо, що в найгіршому випадку час виконання п.п. обробки переривання від таймера не перевищує 100 машинних циклів, тобто 100 мкс. Тому вибираємо цей час, як період дискретизації сигналу.

Враховуючи, що таймер в МК Intel 51 рахує машинні цикли шляхом інкрементування вираховуємо число, необхідне за забезпечення затримки в 50 мкс. Прийнятий час дискретизації займе 100 машинних циклів, тому для того, щоб за цей час відбулось переповнення необхідно в таймер занести число:

FFFF16 — 10 010 = FFFF16 — 6416 = FF9716.

Крім того необхідно врахувати час ініціалізації таймерів при кожному перериванні (4 цикли):

FF9716 — 416 = FF9316.

Результат такої дискретизації показаний на мал.1.

Для часу дискретизації 2 Т та 4 Т це значення буде відповідно рівне:

FFFF16 — 20 010 — 416 = FFFF16 — С816 — 416 = FF3316.

FFFF16 — 40 010 — 416 = FFFF16 — 19 016 — 416 = FE6B16.

Призначення використаних регістрів:

R1.

Лічильник переривань для динамічної індикації.

R2.

Попередній стан кнопок.

R3.

Вибір індикатора.

R4.

Віднімаючий лічильник відліків.

R5.

Додаючий лічильник відліків.

R6.

Амплітуда сигналу.

R7.

Період сигналу.

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

5. Висновки.

В результаті виконання роботи розроблено принципову електричну схему та програму на мові асемблера функціонального генератора інфранизької частоти на базі мікроконтролера Intel 8051.

Через дискретність часових відліків похибка, котра зумовлює зміну періоду повторення сигналу становить не більше, як половину часу дискретизації. тобто 25 мкс, що відповідає 0.3%.

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

Таким чином можна стверджувати, що усі вимоги технічного завдання виконано.

Додаток1.

Додаток 3. Лістинг програми.

.SPACES ON.

.LIST ON.

.GLOBALS ON.

.LLCHAR _.

.DATA.

.ORG 30H.

T0_H DB 0FFh.

T0_L DB 97h.

Count DB 20.

.CODE.

.ORG 00H.

AJMP Reset.

Пiдпрограма обробки переривань по таймеру T0 :

Частота кварцевого резонатора — 24 МГц.

Перiод тактовоi частоти — 0,5 мксек.

Переривання вiдбуваються з частотою — 0,05 мсек.

.ORG 0BH.

IntT0: mov TH0, #.

mov TL0, #.

mov A, #LOW (Signal), load data.

add A, R5 ,.

movp A, @A ,.

mov B, R6 ,.

div AB, calculate Voltage.

mov P2, A ,.

inc R5 ,.

djnz R4, Ind, decrement counter.

clr A ,.

mov R5, A ,.

mov R4, #.

Ind: djnz R1, kbd, dinamic indication.

mov R1, #80, Find = 500 Hz.

mov A, R3 ,.

mov P0, #00 ,.

jz Ind_T ,.

mov R3, #00 ,.

mov A, R6 ,.

call Decode, convert binary to.

mov P1, A, 7-segment.

mov P0, #02, Out.

jmp kbd ,.

Ind_T: mov R3, #01, show T.

mov A, R7 ,.

call Decode, convert binary to 7-segment code.

mov P1, A, Out.

mov P0, #01, turn on indicator.

kbd: mov A, P3, check keyboard.

anl A, #11b, mask.

mov R1, A ,.

xrl A, R2 ,.

jz Exit2, no change.

jb ACC.0, check_T, key1 chenged.

mov A, R2 ,.

jb ACC.1, Exit3 ,.

mov A, R6 ,.

jb ACC.0, A1 ,.

jb ACC.1, A2 ,.

mov R6, #01, set A=A0.

jmp End_a ,.

A2: mov R6, #04, set A=A0/4.

jmp End_a ,.

A1: mov R6,#02, set A=A0/2.

End_a: mov R5, #00, reset counter.

mov R4, #.

jmp Exit2 ,.

check_T:mov A, R2 ,.

jb ACC.0, End_t ,.

mov A, R7 ,.

jb ACC.0, T1 ,.

jb ACC.1, T2 ,.

mov R7, #01, set T=1.

mov.

mov.

jmp End_t ,.

T2: mov R7, #04, set T=4.

mov.

mov.

jmp End_t ,.

T1: mov R7, #02, set T=2.

mov.

mov.

End_t: mov R5, #00, reset counter.

mov R4, #20 ,.

Exit3: mov A, R1, save kbd status.

mov R2, A ,.

Exit2: reti ,.

Decode: jb ACC.0, L1.

jb ACC.1, L2.

mov A, #110 0110b ," 4″ .

jmp End_d.

L2: mov A, #1 101 1010b ," 2″ .

jmp End_d.

L1: mov A, #110 0000b :" 1″ .

End_d: ret.

MAIN PROGRAM.

Reset: mov IE, #00, interapts disable.

clr A.

mov R0, #7FH, Clear memory.

S1: mov @R0, A ,.

djnz R0, S1 ,.

mov P0, A, Indication control.

mov P1, A, Indication information.

mov P2, A, AЦП.

mov R1, #80, counter.

mov R2, #11b, keyboard state.

mov R3, A, Ind choice.

mov R4, #.

mov R5, A, counter.

mov R6, #01, A.

mov R7, #01, T.

mov TH0, #.

mov TL0, #.

mov TMOD, #1 0001b, Timer mode.

mov IP, #10b, Interupt priority.

mov IE, #10b, Interupt enable.

mov TCON, #1 0000B, Timer control.

setb EA, All interapts enable.

Loop: jmp Loop.

Signal:

DB.

255.

243.

231.

219.

209.

DB.

199.

189.

180.

171.

163.

DB.

155.

147.

140.

133.

127.

DB.

120.

115.

109.

104.

99.

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

1. DATA SHEET 80C51 8-bit microcontroller family. Philips Semiconductor, 1999 (internet.

2. Система команд микроконтроллера INTEL 8051: Методические указания к лабораторной работе № 2 по курсу «Цифровые устройства и микропроцессоры"/ В. А. Добряк, В. К. Рагозин. Екатеринбург: Изд-во УГТУ, 1999.

3. Взаимодействие мікроконтролера INTEL 8051 с объектами управления: Методические указания к лабораторной работе № 4 по курсу «Цифровые устройства и микропроцессоры"/ В. А. Добряк, В. К. Рагозин. Екатерин-бург: Изд-во УГТУ, 1999.

4. Функціональний генератор інфранизької частоти на базі МП-системи: Методичні вказівки дол курсової роботи з дисципліни «Цифрові пристрої і мікропроцесори» для студентів спеціальності 2301 «Радіотехніка» /Укл. Ю.І.Шаповалов, В.А.Новіков, В. Г. Протасевиич, Львів, ЛПІ, 1993р.

Показати весь текст
Заповнити форму поточною роботою