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

2016-07-30СтудИзба

Описание файла

Документ из архива "Розробка схеми електричної принципової годинника-будильника-термометра з ІЧ ПК", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48895"

Текст 2 страницы из документа "48895"

Для подачі звукових сигналів застосовано електромагнітний випромінювач НСМ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

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5138
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее