Смекни!
smekni.com

Розробка схеми електричної принципової годинника-будильника-термометра з ІЧ ПК (стр. 2 из 3)

Рисунок 1.2.1 – Зображення корпусу мікроконтролеру АТ89С4051

Структурна схема мікроконтролера АТ89С4051 зображена нарисунку 1.2.2.

Рисунок 1.2.2 – Структурна схема мікроконтролера АТ89С4051

На схемі зображено: регістр адрес пам’яті, пам’ять RAM, Flash-пам’ять, регістр В, Арифметико-логічний пристрій (АЛП), буфер даних, вказівник стеку, програмний регістр адрес, програмний лічильник, інкрементор, порти драйверів, аналоговий компаратор, схеми управління і синхронізації, регістр інструкцій, блок переривання, серійний порт і блоки таймеру.

1.3 Розробка і обґрунтування схеми електричної структурної

Структурна схема пристрою зображена на рисунку 1.3.

Рисунок 1.3 – Структурна схема розроблюваного пристрою

На структурній схемі пристрою (див. рисунок 1.3) зображено наступні функціональні блоки: мікроконтролер, який забезпечує керування роботою всіх пристроїв схеми; блок живлення що забезпечує безперебійне живлення всіх компонентів схеми; індикатори, які відображають час та температуру; блок датчиків який призначений для знімання показників температури та синхронізації пристрою з блоком керування до якого входить пульт ДК; блок управління часом що забезпечує організацію управління часом.


2 Спеціальний розділ

2.1 Вибір і обґрунтування елементної бази

Схема електрична принципова створюваного пристрою зображена на рисунку 2.1.1. Користуючись даною схемою, дамо коротку її характеристику та обґрунтування вибору елементів, що входять до неї.

Рисунок 2.1.1 – Схема електрична принциповагодинника-будильника-термометра

Основою створюваного пристрою є мікроконтролер DD2 AT89C4051, який керує роботою всіх вузлів. До його складу входить енергозалежна пам’ять програм (4кб), ОЗП (128 байт), 2 таймери, система переривань та ін. (див. пункт 1.2). Для надійного запуску та захисту мікроконтролера від збоїв по напрузі використано мікросхему КР1171СП47 (DA1), яка забезпечує затримку на своєму виході низький рівень при напрузі живлення менше 4.7 В.

Табло пристрою складається з п’яти світлодіодних цифрових індикаторів типу SA08-11GWA. Індикація статична. Для зниження яскравості свічення в коло живлення індикаторів включено діоди VD5 іVD6.

Для керування вузлом індикації використано три виводи мікроконтролера:P1.2, (14);P1.3, (15);P1.4, (16).

МС 74HC595 являє собою 8-бітгний регістр з послідовним входом і паралельним виходом.

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

Для подачі звукових сигналів застосовано електромагнітний випромінювач НСМ1606Х з вбудованим генератором, що працює на частоті 2200 Гц.

Батарея GB1 служить для живлення мікросхеми годинника та звуковипромінювача при відсутності живлення в мережі.

Для прийому сигналів керування пульта ДК використано інтегральний приймач ІЧ-діапазону SFH 506-36. Ця мікросхема дуже чутлива до перешкод в колі живлення, тому до неї включено фільтр VD4C8C9.

Живиться пристрій від стабілізованого перетворювача напруги на основі мікросхеми MC 34063. Принципову схему ІЧ пульту ДК зображено на рисунку 2.1.2.

Рисунок 2.1.2 – Схема електрична принциповагодинника-будильника-термометра

Пульт керування виконано на базі малогабаритного калькулятора. В якості передавача використано мікросхему SAA3010 яка працює в системі ІЧ ДК RC5. В режимі очікування SAA3010 спожива незначний струм що робить експлуатацію пульту дуже зручною.

В якості виносних датчиків апаратури застосовано мікросхеми DS1621

2.2 Принцип роботи окремих ВІС з використанням часових діаграм та алгоритмів роботи

Часові діаграми машинних циклів читання зовнішньої пам’яті програм показано на рисунку 2.2.1.

Рисунок 2.2.1 – діаграми машинних циклів читання зовнішньої пам’яті програм

При виконанні команди MOVX, сигнал ALE формується у другому машинному циклі лише один раз.

2.3 Принцип роботи пристрою згідно схемиелектричної принципової

Схема електрична принципова зображена на рисунку 2.1.1 пункту 2.1.

Описуваний пристрій призначений для індикації поточного часу, подачі звукових сигналів в заданий час та індикації температури в двох точках в інтервалі від -55˚ до +99˚ С з точністю

˚ С. Час і температура відображаються по черзі на протязі 10, 1 та 2 секунд відповідно. Встановлення показань годинника, часу спрацювання будильника, відключення будильника, ввімкнення і вимкнення індикатора проводяться з ІЧ пульта ДК.

Будильник подає звукові сигнали з паузою 10 с: спочатку – два коротких одиночних, потім – стільки ж здвоєних, а після них – два строєних. По закінченні хвилини вбудовані сигнали подаються в кожну секунду до тих пір, доки будильник не буде вимкнено. Якщо індикатор вимкнено, в момент спрацювання будильника він вмикається і до відключення або переходу в режим Snooze показує поточний час. Передбачений короткий звуковий відклик у відповідь на натиснення кнопок пульту.

Мікроконтролер DD2 AT89C4051 керує роботою всіх вузлів. До його складу входить енергозалежна пам’ять програм, ОЗП, 2 таймери, система переривань та ін. Для надійного запуску та захисту мікроконтролера від збоїв по напрузі використано мікросхему КР1171СП47 (DA1), яка забезпечує затримку на своєму виході низький рівень при напрузі живлення менше4.7 В.

Табло пристрою складається з п’яти світлодіодних цифрових індикаторів типу SA08-11GWA. Індикація статична. Для зниження яскравості свічення в коло живлення індикаторів включено діоди VD5 іVD6.

Для керування вузлом індикації використано три виводи мікроконтролера:P1.2, (14);P1.3, (15);P1.4, (16).

МС 74HC595 являє собою 8-бітгний регістр з послідовним входом і паралельним виходом.

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

Для подачі звукових сигналів застосовано електромагнітний випромінювач НСМ1606Х з вбудованим генератором, що працює на частоті 2200 Гц.

Батарея GB1 служить для живлення мікросхеми годинника та звуковипромінювача при відсутності живлення в мережі.

Для прийому сигналів керування пульта ДК використано інтегральний приймач ІЧ-діапазону SFH 506-36. Ця мікросхема дуже чутлива до перешкод в колі живлення, тому до неї включено фільтр VD4C8C9.


3 Експлуатаційний розділ

3.1 Ініціалізація програмуємих ВІС

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

Програма ініціалізації і програма тестування пристрою наведена в пункті 3.2.

3.2 Тест перевірки окремих вузлів або пристроїв

Програма за якою працює мікропроцесор мовою асемблера АТ89С4051 має наступний вигляд:

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

ORG 0

Goto PROGRAM

sec equ H'11' ; секунди

sec10 equ H'12' ; Десяткисекунд

min equ H'13' ; минути

min10 equ H'14' ; Десяткиминут

hour equ H'15' ; години

hour10 equ H'16' ; Десяткигодин

Indicator equ H'17' ; 7-сегментнийкоддлязагрузкиврегістр DD2

Bit_counter equ H'18' ; лічильникбітів, загруженнихврегістр DD2

FLAGS equ H'19' ; різніпрапорці

FLAGS_2 equ H'1F'

Fig_pointer equ H'1B' ; показниквиведеноїцифри

TEMPequH'1C' ; для тимчасового збереження вмісту порту A

Ind_startequH'1D' ; адреса комірки, яка першою виводиться на індикатор

SB_delay equ H'1E' ; часова затримка

STATUS_copy equ H'21' ; копії вмісту регістрів

W_copyequH'22'

FSR_copyequH'23'

min_al_1 equ H'24' ; регістри першого будильника

min10_al_1 equH'25'

hour_al_1 equH'26'

hour10_al_1 equH'27'

min_al_2 equH'28' ; регістридругогобудильника

min10_al_2 equH'29'

hour_al_2 equH'2A'

hour10_al_2 equH'2B'

EEP_Ind_4 equH'2C' ; регістридляіндикації

EEP_Ind_3 equH'2D' ; режимуроботизEEPROM

EEP_Ind_2 equH'2E'

EEP_Ind_1 equH'2F'

Alarm_countequH'30' ; лічильникбудильника

SB4_countequH'31' ; лічильникчасунатисканнянакнопкуSB2

IntCount_HequH'32' ; лічильникпереповненнятаймеруномер 1

IntCount_L equ H'33' ; лічильник переповнення таймеру номер 2

MaxInt_H equ H'34' ; верхня границя лічильника переривань

MaxInt_L equ H'35' ; визначає секундну затримку

TIME_SET equ H'36' ; коефіцієнт корекції часу

; ------------- Підпрограма яка добавляє хвилини ---------------

INC_MIN macro Reg1_min,Reg2_min

movfwReg1_min ; якщо кількість менут = 9 то

xorlw 9 ; обнуляємо менути і прибавляємо десятки менут

BZ $+3 ; інакше прибавляємо менути та виходимо з підпрограми

incfReg1_min, f

gotoMain_loop

clrf Reg1_min

movfw Reg2_min

xorlw 5 ; якщо кількість десятків менут = 5,

BZ $+3 ; обнуляємо менути та взагалі та виходимо з підпрограми

incf Reg2_min, f ; інакше прибавляємо десятки менут

gotoMain_loop

clrfReg1_min

clrfReg2_min

gotoMain_loop

endm

; ------------- Підпрограма яка прибавляє години ---------------

INC_HOURmacroReg1_hour,Reg2_hour

movfwReg1_hour ; якщокількістьгодин = 3, топеревіряємочи

xorlw 3 ; число десятків годин = 2, якщо так то

btfss STATUS, Z ; обнуляємо години взагалі (перехід із 23 годин в 00)

goto $+5

movfwReg2_hour

xorlw 2

BZ $+D'14'

movfwReg1_hour ; якщочислогодин = 10, прибавляєм

xorlw 9 ; десятки годин і скидаємо одениці

BZ $+3 ; інакше прибавляєм одениці годин та виходимо із підпрограми