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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ



РОМЕНСЬКИЙ КОЛЕДЖ

ДЕРЖАВНОГО ВИЩОГО НАВЧАЛЬНОГО ЗАКЛАДУ

«КИЇВСЬКИЙ НАЦІОНАЛЬНИЙ ЕКОНОМІЧНИЙ УНІВЕРСИТЕТ ІМЕНІ ВАДИМА ГЕТЬМАНА»



Спеціальність: 5.091504

«Обслуговування комп’ютерних та інтелектуальних систем та мереж»



Курсовий проект з предмету:

Мікропроцесорні системи



Тема: «Розробити схему електричну принципову годинника-будильника-термометра з ІЧ ПК»



РК КНЕУ. КП. 5.091504.





Виконав: студент гр. К 3-2

Катрич С. В.



Перевірив викладач

Шокота Т.А.







2007




		Зміст

		

		Вступ

			1	Загальний розділ

			1.1	Призначення проектуємого пристрою

			1.2	Технічні характеристики

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

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

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

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

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

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

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

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

			3.3	Розрахунок надійності пристрою

			4	Анотація

	5	Література




	Вступ

	

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

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

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

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

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

	Надзвичайно важливим кроком у розвитку електроніки вцілому було створення мікроконтролерів (МК) - керуючих пристроїв, виконаних на одному чи декількох кристалах.

	Мікроконтролери виконують функції логічного аналізу і керування (що дозволяє за рахунок виключення арифметичних операцій зменшити їхню апаратурну складність чи розвити функції логічного керування).

Архітектура МПС – розподіл функцій, що реалізуються системою на окремих її рівнях, та точне визначення меж між цими рівнями. Вона поєднує апаратні, мікропрограмні і програмні засоби обчислювальної техніки, визначає принцип організації МПС та функції її компонентів, зокрема процесора, пам’яті та ін. Архітектура МПС не відображає конструктивні особливості логічних структур і модулів та технологію їх виробництва.

Загальний архітектурний тип мікросистеми містить такі компоненти:

центральний процесор (ЦП);

схеми синхронізації;

пам’ять;

підсистема введення-виведення;

логіка управління шиною;

системна шина.

В мікросистемі роль центрального процесора виконує МП. Він дешифрує команди і управляє всіма подіями в системі, а також виконує всі арифметичні і логічні операції.

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

Пам’ять призначена для збереження даних та команд, які виконує ЦП. Вона складається з набору модулів, кожен з яких містить кілька тисяч комірок.

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

Системну шину утворює сукупність провідників по яких передаються дані від ЦП до пам’яті та пристроїв введення-виведення. Звичайно провідники шини об’єднуються в три групи:

лінії даних (для передачі інформації);

лінії адреси (вказують звідки або куди передається інформація);

лінії управління, (регулюють дії на шині).

Інтерфейс пам’яті утворює схеми для дешифрування адреси цільової комірки і буферизувати даних на шину (з шини), а також схеми виконання операцій зчитування і запису.

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


1 Загальний розділ

	

	1.1 Призначення проектуємого пристрою

	

	Визначення та поняття термінів, які використовуються у курсовому проекті:

		АЛП	– арифметико-логічний пристрій

		ЕОМ	– електронно-обчислювальна машина

		МП	– мікропроцесор

		МПК	– мікропроцесорний комплект

		ВІС	– великі інтегральні схеми

		ЦП	– центральний процесор

		МК	– мікроконтролер

		ОМК	– однокристальний мікроконтролер

		МПС	– мікропроцесорна система

		ОЗП	– оперативно-запам’ятовучий пристрій

		ДК	– дистанційне керування 



Місце та основні функції пристрою в архітектурі МПС.

Однокристальним мікроконтролером (ОМК) називають пристрій, виконаний конструктивно в одному корпусі ВІС, і містить усі компоненти МПС: процесор, пам'ять даних, пам'ять програм, програмовні інтерфейси. 

Для однокристальних мікроконтролерів характерні:

	система команд, орієнтована на виконання завдань керування і регулювання;

	алгоритми, що реалізуються на ОМК, мають багато розгалужень залежно від зовнішніх сигналів;

	дані, якими оперують ОМК, не повинні мати велику розрядність;

	схемна реалізація систем керування на базі ОМК нескладна і має невисоку вартість;

	універсальність і можливість розширення функцій керування значно нижчі, ніж у системах із однокристальними МП.

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

В даній роботі описується МК приладу, що призначений для індикації поточного часу, подачі звукового сигналу у визначений час та індикації температури в двох точках (в приміщенні та на подвір’ї) на проміжку -55…+99 ºС з точністю ±1 ºС. Час та температура виводяться почергово. Встановлення значення часу, спрацювання будильника, спалахування та вимикання індикатора здійснюється з ІЧ пульта дистанційного керування (ДК). Будильник подає звуковий сигнал з паузою 10 с, спочатку два коротких (приблизно по 0,1 с) одиночних, потім стільки ж здвоєних (з паузою 0,1 с), а після них – два зтроєних (з такою ж паузою). На протязі хвилини зтроєні сигнали подаються кожну секунду до тих пір, поки будильник не буде відключений. Існує функція Snooze (повторення сигнала через певний час), що дозволяє ще трохи поспати після першого сигналу. Якщо індикатор погашено, в момент спрацювання будильника він вмикається і до відключення чи переходу в режим Snooze показує поточний час. Передбачено короткий звуковий сигнал при натисненні кнопок пульта, індикацію (світлодіодом) при проходженні команд з пульта, резервне живлення при зникненні напруги в мережі (в цьому випадку будильник буде подавати безперервний сигнал).

Принципова схема заснована на мікроконтролері DD2 АТ89С4051. 1.2 Технічні характеристики

При створенні схеми електричної принципової розроблюваного пристрою було використано такі елементи як мікроконтролер АТ89С4051, мікросхеми КР1171СП47, FCP8583, SAA3010, PCF8583, DS1621, MC34063.

Розрахунок надійності строю представлено в відповідному розділі курсового проекту.

Характеристики мікроконтролера АТ89С4051:

АТ89С4051 – низьковольтний швидкодіючий 8-ми розрядний мікроконтролер, що використовує енергонезалежну технологію пам’яті Atmel що характеризуються також високою щільністю, має 4 кілобайти перепрограмованої пам’яті з можливістю 1000 циклів запису/стирання, 15 портів вводу/виводу, 2 16-бітових таймери/лічильники, послідовний порт та систему переривань, п’ятивекторну дворівневу систему переривань, дуплексний послідовний порт, презиційний аналоговий компаратор. Даний мікроконтролер підтримує режим Power-down, який зберігає вміст пам’яті але зупиняє генератори до наступного перезапуску (/відновлення роботи) апаратних пристроїв, а також Idle mode – режим, під час якого він зупиняє ЦПП, і підтримує роботу пам’яті, таймерів/лічильників, послідовним портом та системою переривань, для продовження роботи пристрою.

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





Рисунок 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 – Схема електрична принципова годинника-будильника-термометра



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

В якості виносних датчиків апаратури застосовано мікросхеми 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' 		; показник виведеної цифри

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

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

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

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

W_copy		equ  	H'22'

FSR_copy		equ  	H'23'

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

min10_al_1		equ  	H'25'

hour_al_1		equ  	H'26'

hour10_al_1		equ  	H'27'

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

min10_al_2		equ  	H'29'

hour_al_2		equ  	H'2A'

hour10_al_2		 equ  	H'2B'

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

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

EEP_Ind_2   		equ  	H'2E'

EEP_Ind_1   		equ  	H'2F'

Alarm_count 		equ  	H'30' 		; лічильник будильника

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

IntCount_H  		equ  	H'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



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

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

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

incf  			Reg1_min,	f

goto  Main_loop



clrf  			Reg1_min

movfw 		Reg2_min

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

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

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

goto  			Main_loop



clrf  			Reg1_min

clrf  			Reg2_min

goto  			Main_loop

 endm



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



INC_HOUR    macro Reg1_hour,Reg2_hour



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

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

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

goto 			$+5



movfw 		Reg2_hour

xorlw 			2

BZ    			$+D'14'



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

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

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

incf  			Reg1_hour,	f

goto  			Main_loop



clrf  			Reg1_hour

movfw 		Reg2_hour

xorlw 			2

BZ    			$+3

incf  			Reg2_hour,	f

goto  			Main_loop



clrf  			Reg1_hour

clrf  			Reg2_hour

goto  			Main_loop

 endm



; ------------- Підпрограма зменшення хвилин ---------------



DEC_MIN     macro Reg1_min,Reg2_min

local DEC_min10,Clr



movfw 		Reg1_min   		; зменшуєм хвилини

xorlw 			0

BZ    			DEC_min10

decf  			Reg1_min,f

goto  			Main_loop

DEC_min10   		movlw 9	 	; установлюєм число хвилин = 9

movwf 		Reg1_min   		; і зменшуєм десятки хвилин

movfw 		Reg2_min

xorlw 			0

BZ    			Clr

decf  			Reg2_min,	f

goto  			Main_loop

movlw 		5

movwf 		Reg2_min

goto  			Main_loop

 endm



 ; ------------- Підпрограма зменшення годин ---------------



DEC_HOUR    macro Reg1_hour,Reg2_hour

local Set_hour,Clr,If_hour10_1,If_hour10_2,Dec_hour10



movfw 		Reg1_hour   		; зменшуєм години

xorlw 			0

BZ    			Set_hour

decf  			Reg1_hour,	f

goto  			Main_loop

movfw 		Reg2_hour   		; якщо десятки годин = 0,

xorlw 			0	  		; установлюємо години рівні 3

btfss 			STATUS,	Z    

goto  			If_hour10_1 

movlw 		3

movwf 		Reg1_hour

goto  			Dec_hour10

If_hour10_1 		movfw Reg2_hour   	; якщо десятки годин = 1,

xorlw 			1	  		; установлюєм число годин = 9

btfss 			STATUS,	Z

goto  			If_hour10_2

movlw 		9

movwf 		Reg1_hour

goto  			Dec_hour10

If_hour10_2 		movlw 	9	; якщо десятки годин =  2,

movwf 		Reg1_hour   		; установлюємо години рівні 9

Dec_hour10  		movfw Reg2_hour   	; зменшуєм десятки годин

xorlw 			0

BZ    			Clr

decf  			Reg2_hour,	f

goto  			Main_loop 

Clr			movlw 	2

movwf 		Reg2_hour

goto  			Main_loop

 endm



 ; ------------- Підпрограма запису в EEPROM ---------------



EE_write    macro    Adress,Data



movlw 		Adress

movwf 		EEADR

movfw 		Data

movwf 		EEDATA

call  			Write_to_EEPROM

 endm



 ; ------------- Підпрограма читання EEPROM ---------------



EE_read     macro    Adress,Destination



movlw 		Adress  

movwf 		EEADR

call  			Read_from_EEPROM

movfw 		EEDATA

movwf 		Destination

 endm



 ; ------------------- ІНІЦІАЛІЗАЦІЯ ----------------------

PROGRAM

bsf   			STATUS,RP0   	; банк 1

clrf  			TRISA        		; порт А на вихід

movlw 		B'11110000'  		; RB7..RB4 - на вхід, RB3..RB0 - на вихід

movwf 		TRISB

movlw 		B'00001000'  		; відключений від таймеру

movwf 		OPTION_REG

bcf   			STATUS,	RP0   	; банк 0

clrf  			TIME_SET

clrf  			FLAGS

clrf  			FLAGS_2

clrf  			sec

clrf  			sec10

clrf  			min

clrf  			min10

clrf  			hour

clrf  			hour10

clrf  			SB_delay

clrf  			Bit_counter

clrf  			Alarm_count

clrf  			PORTB

clrf  			SB4_count

clrf  			IntCount_H

clrf  			IntCount_L



movlw 		B'00010001'

movwf 		PORTA

movlw 		H'16'        		; починаєм індикацію з десятків годин

movwf 		Ind_start

movfw 		Ind_start

movwf 		Fig_pointer

bsf   			FLAGS,PT     		; ввімкнення крапок на індикаторі

bsf   			FLAGS_2,	HL1 

movlw   		D'16'      		; запускаємо таймер номер 0

movwf   		TMR0

EE_read 		1,	TIME_SET 	; читаємо значення коэфіціэнту

movwf   		TIME_SET   		; корекції часу

EE_read 		2,	min_al_1   	; читаєм показпоказники обох

EE_read 		3,	min10_al_1 	; будильників з EEPROM

EE_read 		4,	hour_al_1

EE_read 		5,	hour10_al_1

EE_read 		6,	min_al_2

EE_read 		7,	min10_al_2

EE_read 		8,	hour_al_2

EE_read 		9,	hour10_al_2

movfw  		min_al_1     		; якщо в регістрах будильника

xorlw  			H'11'        		; були числа 0х11, тоді,

btfss  			STATUS,Z     		; він був вімкнений при останньому

bsf    			FLAGS,	Al_on	; записі в EEPROM 

movfw  		min_al_2

xorlw  			H'11'

btfss  			STATUS,	Z

bsf    			FLAGS_2,	Al_on2

bsf    			PORTB,	3      	; вмикаєм світлодіод

btfsc  			FLAGS,	Al_on

bcf    			PORTB,	3

btfsc  			FLAGS_2,	Al_on2

bcf    			PORTB,	3

bsf    			INTCON,	T0IE  	; дозволяєм переривання

bsf    			INTCON,	GIE

movlw  		H'E'			; ініціалізація регістрів для правельної індикації

movwf  		EEP_Ind_1   		; режим роботи EEPROM

movlw  		H'E'	

movwf  		EEP_Ind_2    

movfw  		TIME_SET     	; розбиваємо змінну TIME_SET

andlw  			B'00001111'  		; на 16-розрядні десятки та одениці

movwf  		EEP_Ind_4    		; одениці

movfw  		TIME_SET

movwf  		EEP_Ind_3    		; десятки

swapf  			EEP_Ind_3,	f

movlw  		B'00001111'

andwf  		EEP_Ind_3,	f	





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

 ;       ГОЛОВНИЙ ЦИКЛ ПРОГРАМИ

******************************************************************



movlw  H'21'	; задаємо верхню границю

movwf  		MaxInt_L      		; лічби переривань = 3873

movlw  		H'F'

movwf  		MaxInt_H

movfw  		TIME_SET      	; добавляєм TIME_SET до границі

bcf    			STATUS,	C      	; лічби переповнення таймера

addwf  		MaxInt_L,	f

btfsc  			STATUS,	C

incf   			MaxInt_H,	f

movfw  		IntCount_H    		; порівнюєм старший байт

xorwf  			MaxInt_H,	w

btfss  			STATUS,	Z

goto   			Main_loop

movfw  		IntCount_L    		; порівнюєм молотший байт

xorwf  			MaxInt_L,	w

btfss  			STATUS,	Z

goto   			Main_loop

goto   			ADD1s		; секунда пройшла



 ; ------- Процедура перекодування числа в семисегментний код --------



Table

        addwf   PCL,f

        retlw   B'00000010'     ; цифра 0

        retlw   B'10011110'     ; цифра 1

        retlw   B'00100100'     ; цифра 2

        retlw   B'00001100'     ; цифра 3

        retlw   B'10011000'     ; цифра 4

        retlw   B'01001000'     ; цифра 5

        retlw   B'01000000'     ; цифра 6

        retlw   B'00011110'     ; цифра 7

        retlw   B'00000000'     ; цифра 8

        retlw   B'00001000'     ; цифра 9

        retlw   B'11111110'     ; пусте місце (код 10h)

        retlw   B'11111100'     ; тире (код 11h)



 ;********************* Режим індикації секунд ***********************

Show_seconds



clrf   			SB4_count

btfsc  			FLAGS,Sec   		; якщо на індикаторі показані секунди 

goto   			Show_hour   		; повертаємся до нормального вигляду

movlw  		H'14'       

movwf  		Ind_start   

bsf    			FLAGS,	Sec

movwf  		SB_delay

goto   			Main_loop

Show_hour



movlw  		H'16'

movwf  		Ind_start

bcf    			FLAGS,Sec

movwf  		SB_delay

goto   			Main_loop



 ;***************** Добавляєм менути реального часу ******************



ADDmin_button

clrf    			sec

clrf    			sec10

INC_MIN min,	min10

goto    			Main_loop



 ;******************Добавляєм години реального часу ******************



ADDh_button

clrf     			sec

clrf     			sec10

INC_HOUR 		hour,	hour10

goto     		Main_loop



   END						; кінець програми




Рисунок 3.2.1 - Блок-схема роботи пристрою

3.3 Розрахунок надійності пристрою



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

Показники надійності:

		Безвідмовність.

		Довговічність.

		Ремонтопридатність.

		Збереження.

Безвідмовність – властивість безупинно зберігати працездатність до граничного стану, після настання, якого подальша експлуатація виробу економічно недоцільна.

Ремонтопридатність – пристосованість пристрою до попередження відмовлень, до можливості виявлення та усунення несправностей шляхом проведення ремонту і технічного обслуговування.

До термінів ремонтопридатності відносяться: відмовлення, збереження.

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

Відмовлення бувають:

Раптові (катастрофічні) – стрибкоподібна зміна параметрів робочого виробу.

Поступові (параметричні) – постійна зміна одного або декількох параметрів з часом, що виходять за припустимі межі.

Збереження – термін, протягом якого при дотриманні режимів збереження виріб зберігає працездатний стан.

Розрахунок надійності поділяється на три розділи:

Визначення значення інтенсивності відмовлення всіх елементів за принциповою схемою вузла пристрою.

Визначення значення імовірності безвідмовної роботи всієї схеми.

Визначення середнього наробітку до першого відмовлення. 

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

1.	Інтенсивність відмовлення всіх елементів визначається за формулою:

			(3.3.1)

де:

ni – кількість елементів у схемі;

i – інтенсивність відмовлень і-го елемента;

m – кількість типів елементів.

При розрахунку також потрібно враховувати інтенсивність відмовлень через пайки радіоелементів на друкованій платі.

Інтенсивність відмовлень елементів розраховуємо за формулою:

			(3.3.2)

де:

о – інтенсивність відмовлень елементів у режимі номінального навантаження;

Кe – експлуатаційний коефіцієнт;

Кр – коефіцієнт навантаження.

Усі ці параметри беруться з довідника з розрахунку надійності.

2.	Ймовірністю безвідмовної роботи називається ймовірність того, що за певних умов експлуатації в заданому інтервалі часу не відбудеться жодного відмовлення.

Ймовірність безвідмовної роботи визначається за формулою:

			(3.3.3)

де:

 - інтенсивність відмов всіх елементів;

t – час, (год).

За результатами розрахунків складається таблиця і графік.

3.	Середній наробіток до першого відмовлення – це час роботи пристрою до першої відмови.

Середній наробіток на відмовлення визначається за формулою:

			(3.3.4)

Розрахунок надійності пристрою приведено далі.


Анотація



Завданням даної курсової роботи є створення схеми електричної принципової годинника-будильника-термометра з ІЧ ПК. В ході виконання курсової роботи розроблено структурну та електричну принципову схему пристрою та програму тестування роботи пристрою, та проведено розрахунок надійності його роботи.

Виконання даної курсової роботи змусило повторити та закріпити вивчений протягом навчального року матеріал з предмету «Мікропроцесорні системи», а також звернутися до додаткової літератури та вивчити багато нового.


Література



	Бороволоков Э.П. Фролов В.В. «Радиолюбительские схемы» // К.: Кондор – 1995 – 6 с.

	Якименко Ю.І. Терещенко Т.О. Сокол Є.І. «Мікропроцесорна техніка» // К.: Кондор – 2004 – 24 с.

	Методичні вказівки щодо виконання курсової роботи.

	Вершинин О.Е. «Применение микропроцессоров для автоматизации технологических процессов» // Л.: Энергоатомиздат, 1986. 

		Самофалов К.Г., Викторов О.В., Кузняк А.К. «Микропроцессоры» // К.: Техника, 1986.