Пристрій для дозування часу процедур на МК АТ89С2051
Міністерство освіти і науки, молоді і спорту України
Вінницький технічний коледж
Спеціальність 5.05010201
Пристрій для дозування часу процедур на МК АТ89С2051
Пояснювальна записка
до курсового проекту
з предмету «Мікропроцесорні системи»
Виконав: студент групи 4ОК1
Яланський Д.А.
Прийняв: Непийвода М.В
Вінниця 2012
АНОТАЦІЯ
Дана робота присвячена розробці пристрою для дозування часу процедур на МК АТ89С2051. Проводиться аналіз можливостей використання даного проекту в різних сферах, а також розробка функціональної схеми та програмного забезпечення дя функціонування пристрою. У додатках наводяться граф-схема алгоритму, лістинги програм.
ЗМІСТ
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ…………………………………
ВСТУП…………………………………………………………………
- АНАЛІЗ ТЕХНІЧНОГО ЗАВДАННЯ………………………………..7
- РОЗРОБКА СХЕМИ ПРИСТРОЮ…………………………………...8
- Вибір мікроконтролера та огляд його архітектури……….............8
- Розробка функціональної схеми…………………………......11
- Вибір додаткових елементів схеми……………………….....12
- РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ………………......13
- Розробка алгоритму функціонування пристрою…………...13
- Організація пам’яті та розподіл адресного простору………15
- Розробка програми, що керує роботою мікроконтролера…16
- МОДЕЛЮВАННЯ РОБОТИ………………………………………...17
ВИСНОВКИ…………………………………………………………
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ…………………………………..19
ДОДАТКИ……………………………………………………………
ПЕРЕЛІК УМОВНИХ СКОРОЧЕНЬ
МК – мікроконтролер
АЛП – арифметико-логічний пристрій
ПЗП – постійний запам’ятовуючий пристрій
ОЗП – оперативний запам’ятовуюсий пристрій
БК – блок керування
ЕОМ – електронно-обчислювальна машина
МП – мікропроцесор
ВСТУП
Ми живемо в час, коли для розробки пристроїв, замість великої кількості мікросхем, використовують мікроконтролер. Завдяки своїй функціональності, використання даного елементу є дуже зручним для створення пристроїв. Одним з таких проектів є пристрій для дозування часу процедур
В сучасному світі, світі, в якому з кожним роком науково-технічний прогрес стрімко розвивається, пристрої для дозування часу процедур набули широкого використання. Пристрій для дозування часу процедур – це таймер, що вимірює інтервали часу. Здебільшого під таймерами маються на увазі пристрої, що відмірюють заданий інтервал часу з моменту запуску.
Широкого застосування набули таймери зворотного відліку часу, розроблений спеціально для використання в медицині – таймери для дозування часу терапевтичних процедур. Користувач може задати певний інтервал часу, який потрібен для процедури, що виконується в даний момент.
Дана робота присвячена розробці такого пристрою на МК AT89C2051.
1 АНАЛІЗ ТЕХНІЧОГО ЗАВДАННЯ
Функціональні можливості пристрою для дозування часу процедур на мікроконтролері AT89C2051:
- Робоча напруга: 5...10 В
- Межа вимірювання – 1с. до 99 год.
- Спосіб відтворення цифр –2-х розрядний 7-сегментий індикатор
- Робоча частота – 5-10 МГц
- Робота пристрою починається з натискання на кнопку „Старт”
Мета завдання створити таймер для дозування часу процедур. При цьому забезпечити простоту і зручність керування й індикації при мінімальній ціні таймера.
2 РОЗРОБКА ФУНКЦІОНАЛЬНОЇ СХЕМИ
2.1 Вибір мікроконтролера та огляд його архітектури
Сучасні радіоелектронні пристрої побудовані на МК. Це дозволяє спростити схему радіоелектронного пристрою, зробити її більш універсальною, що дозволяє змінюючи програму МК покращувати її споживчі та експлуатаційні характеристики.
МК AT89C2051 8-розрядний КМОП мікроконтроллер з Flash ПЗП фірми Atmel.
Особливості:
- Сумісність з приладами сімейства MCS-51
- Ємність Flash пам'яті, що перепрограмовується: 2 Кбайт, 1000 циклів стирання / запис
- Діапазон робочих напруг від 2,7 В до 6 В
- Повністю статичний прилад - діапазон робочих частот від 0 Гц до 24 МГц
- Дворівневе блокування пам'яті програм
- 15 програмованих ліній введення / виводу
- 16 лютого-розрядних таймера / лічильника подій
- Шість джерел сигналу переривання
- Вбудований аналоговий компаратор
Опис: AT89C2051 розроблений за технологією КМОП. Мікроконтролер оснащений Flash програмованим і стираючим ПЗП, а також сумісний за системою команд і за виводами зі стандартними приладами сімейства MCS-51. Обсяг Flash ПЗП - 2 Кбайта, ОЗП - 128 байтів. Має 15 ліній введення / виведення, один 16-розрядний таймер / лічильника подій, повнодуплексний порт (UART) п'ять векторних дворівневих переривань, вбудований прецизійний аналоговий компаратор, вбудовані генератор і схему формування тактової послідовності. Напруга програмування Flash пам'яті - 12 В і її вміст може бути захищений від несанкціонованих запису / зчитування. Є можливість очищення
Flash пам'яті за одну операцію і можливість зчитування вбудованого коду ідентифікації. Струм споживання в активному режимі на частоті 12 МГц не перевищує 15 мА при 6 В і 5,5 мА при напрузі живлення 3 В. В пасивному режимі споживання не перевищує 5 мА і 1мА. У стоповому режимі струм споживання не перевищує 100 мкА і 20 мкА при напрузі живлення 6 В і 3 В, відповідно. Мікроконтролер AT89C2051 орієнтований на використання в якості вбудованого керуючого контороллера.
Також в даного мікроконтролера є декілька модифікацій. Основні з них наведені в таблиці 2.1.
Таблиця 2.1 – Можливі модифікації МК AT89C2051
Можливі модифікації (Ordering Information) | ||||
Частота |
Напруга |
Найменування |
Корпус |
Температура |
12 MHz |
2.7V to 6.0V |
AT89C2051-12PC |
DIP-20 |
Commercial |
AT89C2051-12SC |
SOIC-20 | |||
AT89C2051-12PI |
DIP-20 |
Industrial | ||
AT89C2051-12SI |
SOIC-20 | |||
AT89C2051-12PU (NoPb) |
DIP-20 | |||
AT89C2051-12SU (NoPb) |
SOIC-20 | |||
24 MHz |
4.0V to 6.0V |
AT89C2051-24PC |
DIP-20 |
Commercial |
AT89C2051-24SC |
SOIC-20 | |||
AT89C2051-24PI |
DIP-20 |
Industrial | ||
AT89C2051-24SI |
SOIC-20 | |||
AT89C2051-24PU (NoPb) |
DIP-20 | |||
AT89C2051-24SU (NoPb) |
SOIC-20 | |||
На рисунку 2.1 наведена структурна схема МК АТ89С2051.
Рисунок 2.1 – Структурна схема МК АТ90С2051
2.2 Розробка функціональної схеми
Для розробки функціональної схеми ставилась задача забезпечити простоту і зручність керування та індикації при мінімальних фінансових митратах на деталі.
Індикатори із спільним анодом. Їх ввімкнення через ключі забезпечує хорошу яскравість цифр. Також важливу роль в схемі відіграє реле, що спрацьовує відразу після запуску підрахунку часу. По закінченні витримки часу реле відпускає. Включення реле дублюється світлодіодом.
Якщо встановлено час 2 і більше хвилин, то остання хвилина індикується в секундах. Якщо встановлено час 2 години і більше, то останню годину індикується в хвилинах, а остання хвилина в секундах. Таким чином можлива установка часу в трьох діапазонах: 1-99 секунд, 1-99 хвилин і 1-99 годин.
Функціональна схема приладу наведена на рисунку 2.2.
Рисунок 2.2 - пристрою для дозування часу процедур на МК АТ89С2051.
2.3Вибір додаткових елементів
Крім мікроконтролера в пристрій входять додаткові елементи.
Одними з них є 2 семисегментний індикатори зі спільним анодом для відображення молодшого та старшого розрядів встановленого часу. Семисигментний індикатор - найбільш проста реалізація індикатора, який може відображати арабські цифри.
5 перемикачів:
- «RESET»;
- вибір режиму (секунди, хвилини, години);
- збільшення встановленого часу на одиницю молодшого розряду;
- зменшення встановленого часу на одиницю молодшого розряду;
- «START».
Важливим елементом схеми є реле, що спрацювує після запуску підрахунку. Ввімкнене реле дублюється світлодіодом і відпускає по завершенню операції.
Транзистори і резистори
в схемі формують транзисторні ключі,
через які увімкнені
.
3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
3.1 Розробка
алгоритму функціонування
Пристрій для дозування часу процедур працює за алгоритмом, який наведено в додатку Б.
Спочатку вмикаємо таймер, натисканням скидаємо таймер кнопкою «RESET», потім вибираємо режим: якщо секунди, то точки блимають часто, якщо хвилини, то точки блимають рідко, якщо годинник, то зовсім не світяться. Потім натисканнями набираємо на індикаторах потрібний час. Коли потрібний час встановлено, натискаємо "Старт". Далі очікуємо завершення операції. При бажанні встановити новий час відліку - скидаємо таймер кнопкою «RESET», якщо ні – вимикаємо прилад.
3.2 Організація пам’яті та розподіл адресного простору
Пам'ять даних відокремлена від пам'яті програм. У цій області можлива адресація 64К зовнішнього ОЗП. При зверненні до зовнішньої пам'яті даних ЦП мікроконтролера генерує відповідні сигнали читання (RD ) або запису (WR ), взаємодія з внутрішньою пам'яттю даних здійснюється на командному рівні, при цьому сигнали RD і WR не виробляються.
Зовнішня пам'ять програм і зовнішня пам'ять даних можуть комбінуватися шляхом поєднання сигналів RD і PSEN за схемою "логічного 1" для здобуття строба зовнішньою пам'яті (программ/данных).
Ніжні 128 байт внутрішньої пам'яті даних (lower 128) присутні на всіх кристалах MCS-51 і показані на рис. Перші 32 байти є 4 банки (Register Bank) по 8 регістрів (R7...R0). Регістри R0 і R1 в будь-якому з банків можуть використовуватися як регістри непрямої адресації.
Наступні за регістровими банками 16 байт утворюють блок побітово-адресованого простору. Набор інструкцій MCS-51 містить широкий вибір операцій над бітами, а 128 біт в цьому блоці адресуються прямо і адреси мають значення від 00Н до 7FH. Всі байти в нижній 128-байтовій половині пам'яті можуть адресуватися як прямо, так і побічно.
Верхня 128 байтная половина пам'яті ОЗП (upper 128) в мікросхемі I-8051 відсутня але є у версіях кристалів з 256 байтами ОЗУ. В цьому випадку область "Upper 128" доступна лише при непрямій адресації. Область SFR (Special Function Register) доступна лише при прямій адресації.
Розміщення регістрів спеціальних функцій в просторі SFR показане на рисунку. Вони включають регістри портів, таймери, засоби управління периферією і так далі.
Для 16 адрес в просторі SFR є можливість як байтової, так і бітової адресації. Для регістрів, що є побітово-адресованими, шістнадцятирична адреса закінчується на "0Н" або на "8Н". Бітові адреси в цій області мають значення від 80Н до FFH.
3.3 Розробка
програми, що керує роботою
AVR Studio надає розробникові повне управління виконанням програми AVR- мікроконтроллера за рахунок використання вбудованої в мікроконтроллер налагоджувальної системи внутрішньосхемного емулятора або автономного симулятора AVR-инструкций. AVR Studio підтримує виконання програм на Асемблері, що відкомпілювалися ассемблером корпорації Atmel, а також програм на Сі, що відкомпілювалися програмами сторонніх виробників.
AVR Studio працює під операційними системами Microsoft Windows XP/Vista/7. Всі необхідні команди можуть бути виконані в AVR Studio, як на рівні вихідної коди так і на дезассемблированном рівні. Користувач може запустити програму на виконання виконати програму покроково як з переходом до обробки підпрограм, так і без, виконати крок назад, виконати програму до позиції курсора, зупинити програму, а також скинути поточний сеанс виконання програми. Крім того користувач може встановити необмежене число точок переривання за адресою пам'яті програм і до двох точок переривань по зверненню до адрес пам'яті даних, які альтернативно можуть утворювати маску
адрес пам'яті даних переривання виконання програми.
Лістинг програми мовою асемблера в додатку А.
4 МОДЕЛЮВАННЯ РОБОТИ
Моделювання даного пристрою виконується в програмі моделювання Proteus 7 Professional. Proteus Professional - пакет програм для автоматизованого проектування електронних схем. Пакет являє собою систему схемотехнічного моделювання, що базується на основі моделей електронних компонентів прийнятих в PSpice. Відмінною рисою пакета Proteus Professional є можливість моделювання роботи програмованих пристроїв: мікроконтролерів, мікропроцесорів, DSP та інше. Додатково в пакет Proteus Professional входить система проектування друкованих плат. Proteus Professional може симулювати роботу наступних мікроконтролерів: 8051, ARM7, AVR, Motorola, PIC, Basic Stamp. Бібліотека компонентів містить довідкові дані.
Рисунок 4.1 – Результати моделювання
ВИСНОВКИ
В роботі було розроблено пристрій для дозування часу процедур на МК АТ90С2051.Даний пристрій має широкий спектор використання, зокрема в медицині (при проведені терапевтичних процедур). Слід зазначити, що даний проект являється дуже актуальним і, при певних ускладненнях функціональної схеми, на його основі можна виготовити більш складний, багато-функціональний пристрій.
- Карцев А. А. Арифметика цифровых машин. – М.: Наука, 1969. – 576 с.
- Стахов А.П. Коды золотой пропорции. – М.: Радио и связь,1984.-152 с.
- Офіційна web-сторінка “Телесистеми“ [Електронний ресурс] – Режим доступу: http://www.telesys.ru , вільний. – Загл. з екрана. – Мова рос., англ.
- Офіційна web-сторінка РефератOFF.ru [Електронний ресурс] – Режим доступу: http://manual.referatoff.ru/
011104-1.html, вільний. – Загл. з екрана. – Мова рос. - Долгий А. Розробка і налагодження пристроїв на МК. - Радіо, 2001, № 6, с. 24-26; № 7, с. 19-21
- Зелепукін С. мікроконтролерних регулятор температури МРТ-1. - Радіо, 2001, № 9, с. 21, 22
Додатки
Додаток А
Лістинг програми
для мікроконтролера мовою
.include"2051def.inc"
.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def ResCnt=R21
.cseg
.org 0
rjmp Reset ;вектори преривань
rjmp INT_0
rjmp INT_1
rjmp Timer1_capt1
rjmp Timer1_comp1
rjmp Timer1_OVF1
rjmp Timer0_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_TX
rjmp ANA_COMP
;Reset:
INT_0:
INT_1:
Timer1_capt1:
;Timer1_comp1:
Timer1_OVF1:
Timer0_OVF0:
UART_RX:
UART_UDRE:
UART_TX:
ANA_COMP:
reti
;*****************************
; ІНИЦІАЛІЗАЦІЯ
;*****************************
Reset:
ldi Temp1,0 ;затримка запуску після скидання
ldi Temp2,0
l_res:
dec Temp1
brne l_res
dec Temp2
brne l_res
inc ResCnt ;інкремент лічильника скидань
ldi Temp,0b11111111
out DDRB,Temp
ldi Temp,0b01000000
out TIMSK,Temp
ldi Temp,0b00000011
out TCCR1B,Temp
ldi Temp,0x4C
out OCR1AH,Temp
ldi Temp,0x4B
out OCR1AL,Temp
ldi Temp,RamEnd ;встановлення вказівників стеку
out SPL,Temp
ldi Temp1,0 ;ініціалізація індикатора
ldi Temp,0 ;обнулення таймера
out TCNT1H,Temp
out TCNT1L,Temp
sei ;дозволити переривання
;*****************************
; ОСНОВНИЙ ЦИКЛ
;*****************************
Inf: rjmp Inf ;
;*****************************
; ОБРОБНИК ПРЕРИВАНЬ КОМПАРАТОРА
;*****************************
Timer1_comp1:
ldi Temp,0 ;обнулення таймера
out TCNT1H,Temp
out TCNT1L,Temp
SelectArray:
andi ResCnt,0b00000011
cpi ResCnt,0
brne Tst1
ldi ZH,High(Array0*2)
ldi ZL,Low(Array0*2)
rjmp ReadArray
Tst1: cpi ResCnt,1
brne Tst2
ldi ZH,High(Array1*2)
ldi ZL,Low(Array1*2)
rjmp ReadArray
Tst2: cpi ResCnt,2
brne Tst3
ldi ZH,High(Array2*2)
ldi ZL,Low(Array2*2)
rjmp ReadArray
Tst3: ldi ZH,High(Array3*2)
ldi ZL,Low(Array3*2)
rjmp ReadArray
ReadArray:
ldi Temp,0
add ZL,Temp1
adc ZH,Temp
lpm
mov Temp,R0
cpi Temp,0
breq Init
inc Temp1
rjmp Output
Init: ldi Temp1,0
rjmp SelectArray
Output: out PortB,Temp
reti
Додаток Б
Алгоритм функціонування пристрою
ні так
так ні