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

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

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





ІТРЕ

Кафедра РЕПС















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

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

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



























Виконав:

студент групи РТЕ-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. Розробка апаратного забезпечення



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

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



		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 – 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р.







1