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

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

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


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


ІТРЕ


Кафедра РЕПС


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

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


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


Виконав:


студент групи РТЕ-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 що йому відповідає), що забезпечить на виході ЦАП значення функції найближче до необхідного. Номери відліків та відповідний для них код представлені (для випадку повної амплітуди та тривалості) у таблиці. Період дискретизації визначається після написання програми і визначення тривалості її виконання. З часу дискретизації визначається к-ть відліків.

































































0


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. Розробка апаратного забезпечення


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


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


3.
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.3.
Інтерфейс ОЗП та ПЗП


Оскільки для розробки ми вибрали МК, у складі якого є ПЗП і ОЗП (див. додаток 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
– 10010
= FFFF16
- 6416
­ = FF9716


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


FF9716
– 416
= FF9316


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


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


FFFF16
– 20010
– 416
= FFFF16
– С816
­ - 416
= FF3316


FFFF16
– 40010
- 416
= FFFF16
- 19016
­ – 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, #<T0_H ;timer initialization


mov TL0, #<T0_L ;


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, #<Count ;


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, #00000011b ;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, #<Count ;


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 <T0_H, #FFh ;set delay


mov <T0_L, #97h ;


jmp End_t ;


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


mov <T0_H, #FFh ;set delay


mov <T0_L, #33h ;


jmp End_t ;


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


mov <T0_H, #FEh ;set delay


mov <T0_L, #6Bh ;


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, #01100110b ;"4"


jmp End_d


L2: mov A, #11011010b ;"2"


jmp End_d


L1: mov A, #01100000b :"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, #00000011b ;keyboard state


mov R3, A ;Ind choice


mov R4, #<Count ;counter


mov R5, A ;counter


mov R6, #01 ;A


mov R7, #01 ;T


mov TH0, #<T0_H ;timer initialization


mov TL0, #<T0_L ;


mov TMOD, #00010001b ;Timer mode


mov IP, #00000010b ;Interupt priority


mov IE, #00000010b ;Interupt enable


mov TCON, #00010000B ;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 (http://www.semiconductors.philips.com/acrobat/datasheets/89C52_89C54_89C58_5.pdf)


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


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


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

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:2576
Символов:22843
Размер:44.62 Кб.