Розробка схеми визначника телефонного номера на базі мікроконтролера PIC16F84
Призначення проектуємого пристрою та технічні характеристики. Розробка й обґрунтування схеми електричної структурної схеми визначника телефонного номера. Принцип роботи ВІС з використанням часових діаграм та алгоритмів роботи. Тест надійності пристрою.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 26.03.2009 |
Размер файла | 190,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
РОМЕНСЬКИЙ ПОЛІТЕХНІЧНИЙ ТЕХНІКУМ
Спеціальність: 5.091504 «Обслуговування комп'ютерних та інтелектуальних систем та мереж»
КУРСОВИЙ ПРОЕКТ
З предмету «Мікропроцесорні системи»
Тема «Розробити схему електричну принципову визначника телефонного номера на базі мікроконтролера PIC16F84»
Перевірив: Виконав:
викладач студент групи К 3-1
2008 р.
Зміст
Вступ
1. Загальний розділ
1.1 Призначення проектуємого пристрою
1.2 Технічні характеристики
1.3 Розробка й обґрунтування схеми електричної структурної
2. Спеціальний розділ
2.1 Вибір і обґрунтування елементної бази
2.2 Принцип роботи окремих ВІС з використанням часових діаграм та алгоритмів роботи
2.3 Принцип роботи пристрою згідно схеми електричної принципової
3 Експлуатаційний розділ
3.1 Ініціалізація програмуємих ВІС
3.2 Тест перевірки окремих вузлів або пристроїв
3.3 Розрахунок надійності пристрою
Анотація
Література
ВСТУП
Мікропроцесори й мікропроцесорні системи являються в наш час найбільш масовими засобами обчислювальної техніки.
Поява мікропроцесорних ВІС дозволило через їхню дешевизну, малих габаритів, маси, потужності споживання й властивості програмування функцій вирішити проблему розробки малого числа БІС для великої кількості застосувань, впровадити обчислювальну техніку в ті області, у яких раніше вона не використовувалася.
Для обробки аналогових і цифрових сигналів розроблена велика номенклатура мікросхем, серед яких можна відзначити генератори, підсилювачі, аналого-цифрові і цифро-аналогові перетворювачі, модулятори, компаратори, перемикачі струму і напруги, елементи вибірки і збереження, фільтри, процесорні елементи, пристрої керування введенням-виведенням, програмуємі послідовні і паралельні інтерфейси, котролери прямого доступу до пам'яті, магістральні прийомопередавачі, блоки мікропрограмного керування, пріоритетного переривання, запам'ятовуючі пристрої, багатофункціональні синхронізуючі пристрої, програмуємі таймери і т.д. Більшість перерахованих схем і пристроїв є функціональними складовими частинами мікропроцесорних комплектів, у значній мірі визначаючи архітектуру мікро-ЕОМ. Однак практично будь-яка мікро-ЕОМ крім основних функціональних ВІС містить і значне число мікросхем середнього і малого ступеня інтеграції.
Останні роки відзначені масовим наповненням ринку різною автоматизованою апаратурою всілякого призначення самої різноманітної складності від пластикової платіжної картки до холодильника, автомобіля й складних пристроїв. Це стало можливим завдяки мікроконтролерам. Мікроконтролери входять в усі сфери життєдіяльності людини, їхня насиченість у нашому оточенні росте з року в рік.
Те що здавалося нам 5 років тому казкою зараз цілком можливо завдяки стрімкому розвитку технології виробництва електронних компонентів.
З'являються фірми, які виробляють мікроконтролери: ATMEL, INTEL, ZILOG, MICROCHIP, scenix, здається можна продовжувати нескінченно. Кожна з перерахованих має більш як 100 видів різних за призначенням мікроконтролерів, а кожний мікроконтролер не менш 200 сторінок технічних описів і характеристик англійською мовою. Вибери свій девіз сучасного суспільства.
Засоби розробки програмного забезпечення для мікроконтролерів у кожної фірми свої, а що стосується мов програмування звичайно асемблер самий старий, добрий, всім зрозумілий, ну і ще перелічимо деякі: C, PASCAL, JAVA, DELPHI, C++ знову можна продовжувати нескінченно.
Раніше потрібно було б використати 50 мікросхем серії наприклад К155ХХ а зараз - один PIC16F84, в якому просто в подарунок ПЗП, ОЗП, таймер, система переривань, аналогово-цифравой перетворювач, вбудований генератор, і все це в корпусі із 20 ніжками.
У даному проекті буде розроблений визначник телефонного номеру на базі мікроконтролера PIC16F84, буде написана програма і розглянуті інструментальні засоби.
1. Загальний розділ
У курсовій роботі прийняті наступні скорочення:
АРП - автоматичний регулятор підсилення
ЦП - центральний процесор
МА - магістраль адреси
МД - магістраль даних
МК - мікроконтролер
ПЗП - постійний запам'ятовуючий пристрій
КМДН - комплементарні польові транзистори із структурою метал-діелектрик-напівпровідник
1.1 Призначення проектує мого пристрою
Пристрій зібраний на контролері PIC16F84 і мікросхемі К561ЛА7. Конденсатор С4 необхідний для усталеної роботи при розряді елементів живлення. Пристрій розрахований на абонентську лінію з напругою 60V. Можливо, при використанні на АТС зі значенням напруги 48V, прийде збільшити опір резистора R12 до 56кОм, а резистора R14 до 16кОм. Конденсатор С6 необхідний для усунення перешкод. Стан елемента DD1.3 повинне змінюватися при знятті трубки з будь-якого телефонного апарата підключеного до лінії, а зміна стану елемента DD1.4 відбувається тільки при наявності на лінії викличного сигналу . Елементи DD1.1 і DD1.2 використовуються як компаратор. Конденсатор С5 з робочою напругою не менш 200V. Резистор R8 необхідний для захисту входу елемента DD1.1. Резистор R10 разом із вхідною ємністю елемента DD1.2 являє собою RC-Фільтр. У тому випадку, якщо рівень вихідного сигналу недостатній для чіткого визначення номера (при роботі на "глухих" АТС) можна зменшити опору резисторів R6 & R7 до 56кОм. Значення ємності конденсатора C1 і резисторів R1-R5 не повинні змінюватися більш ніж на 30%.
Увага! Для правильної роботи програми, при записі її в контролер PIC16F84 варто дозволити роботу WDT (сторожовий таймер) і PWRT (таймер скидання). Особливості пристрою й рекомендації зі складання Пристрій харчується від 2-х батарей типу АА, R6 або UM-3 напругою 1,5V. Вимикач живлення не передбачений, тому що контролер у вільне від роботи час перебуває в режимі SLEEP і практично не споживає енергії. Для підключення до телефонної лінії використовується проведення з розніманням RJ-11, що виходить із отвору для антени на корпусі телефону. Полярність підключення до телефонної лінії значення не має.
1.2 Технічні характеристики
Проектована схема має наступні основні технічні характеристики:
Напруга живлення пристрою V 3
Струм живлення в режимі SLEEP µA~1
Струм живлення в робочому режимі mA~2
Струм нагрузки на лінію АТС µA, не більше 120
Частота сигнала запроса АОН Hz500
Напруга на лінії АТС без нагрузки V60
Елементна база :
Мікросхема К561ЛА7 має наступні основні технічні характеристики:
Напруга живлення ........................................ 3...15
Вихідна напруга низького рівня при впливі перешкоди: при Uп = 10 В..................................................... ?2,9
В при Uп = 5 В......................................................... ?0,95
Вихідна напруга високого рівня при впливі перешкоди при Uп = 10 В…. ?7,2
Струм живлення при Uп = 15 В .......................... ? 5 мкА
Вхідний струм низького (високого) рівня
Струм живлення при Uп = 15 В ........................ ?0,3 мкА
Вихідна напруга низького рівня при: при Uп = 10В...................... ?1,3 мА
при Uп = 5 В....................................................... ?0,51 мА
Вихідна напруга високого рівня при: при Uп = 10 В................... ?1,3 мА
при Uп = 5 В; ивых = 4,6 В.................................... ?0,51 мА
при Uп = 5 В; t/Bb|X = 2,5 В................................... ?1,6 мА
Час задержки поширення при включенні (вимиканні): при Uп = 10 В.......... ?80 нс
при Uп = 5 В....................................................... ?60 нс
Вхідна емкість............................................... ? 11 пФ
Мікросхема РІС16С84 має наступні основні технічні характеристики:
Корпус позначається:
P - обичний пластмасовий DIP
SO -300 mil SOIC
Частота генератора: 0 ---> 10mHz
Обсяг адресуємо пам'яті …………………. …………….До 1Кбайт.
Ємність ПЗУ …………………………………………… байт;
Ємність ОЗУ ……………………………………………. Кбайт.
навантажувальна здатність……………………………..25мА
макс. струм що втікає…………………………………..20 мА
Споживаний струм,…………………………………….. 160 мА
команди складаються з одного слова………………….14 біт
команда виконуються за 1 цикл ………………………..400 нс - 10 Мгц
команди переходу……………………………………….800 нс
Интервал рабочих температур………………………… -55 ... +125С Температура зберігання………………………………… -65 ... +150С
Напруга на любій ножкі відносно Vss …………….…..-0.6...Vdd +0.6 В
Интервал робочих температур ……………….………..55 ... +125С
Температура зберігання.………………………………..-65 ... +150С
Vss…………………………………………………..……..0 ... +7.5 В
Напруга на /MCLR відносно Vss ……………………….0...+14 В
Общая рассеиваемая мощност…………………………. 800 мВт
Макс. ток в ножку Vss …………… …………… ………150 мА
Макс. ток в ножку Vdd …………………………………100 мА
Макс. ток в любую ножку ввода …………………….. +/- 500 мкА
Макс. втікающий ток (люба ножка Вивода) ……….....25 мА
Макс. вытекающий ток (любая ножка Вывода) ………20 мА
Макс. сумарный вытекающий ток порта_А ………….80 мА
Макс. сумарный вытекающий ток порта_В …………. 50 мА
Макс. сумарный втекающий ток порта_А ………….. 50 мА
Макс. сумарный втекающий ток порта_В…………….100 мА
1.3 Розробка й обґрунтування схеми електричної структурної
Відповідно до розробки спеціалізованих прстроїв для різних блоків мікроконтролера структурна схема проєктуємого пристрою може бути представлена як сукупність функціональних блоків, з'єднаних між собою відповідно до вимог інтерфейсів(рисунок 1.1).
У блоксхемі приведена схема обробки інформації яку здійснює мікроконтролер.Обмін інформацією між мікроконтролером й іншими блоками здійснюється по системній шині.
Рисунок 1.1 Структурна схема мікроконтролера
Системна шина містить у собі три магістралі: адреси, даних і керування.
Магістраль адреси (МА) служить для передачі коду адреси, по якому проводиться звертання до пристроїв пам'яті, введення-виведення й інших зовнішніх пристроїв, підключених до мікропроцесора. Оброблювана інформація і результати обчислень передаються по магістралі даних (МД), Магістраль керування (МК) передає керуючі сигнали на всі блоки мікроконтролера, набудовуючи на потрібний режим пристрої, що беруть участь у виконуваній команді.
Використання в мікро-ЕОМ трьох магістралей забезпечує високу швидкодію і спрощує процес обчислень.
PІС16F84 відноситься до сімейства КМОП мікроконтролерів. Відрізняється тим від попередніх моделей тим, що має внутрішню 1K x 14 біт память EEPROM для програм, 8-бітові дані й 64байт EEPROM пам'яті даних. При цьому відрізняються низькою вартістю й високою продуктивністю. Всі команди складаються з одного слова (14 біт шириною) і виконуються за один цикл (400 нс при 10 МГЦ), крім команд переходу, які виконуються за два цикли (800 нс). PІС16F84 має переривання, що спрацьовує від чотирьох джерел, і восьмирівневий апаратний стек. Периферія містить у собі 8-бітний таймер/лічильник з 8-бітним програмувальним попереднім дільником (фактично 16 - бітний таймер) і 13 ліній двунаправленного вводу/виводу вводу/виводу. Висока наванта-жувальна здатність (25мА макс. струм, що втікає, 20 мА макс. струм, що випливає) ліній PІС16F84 ставиться до сімейства КМОП мікроконтролерів. Відрізняється тим, що має внутрішнє 1K x 14 біт пам'яті EEPROM для програм, 8-бітові дані й 64байт EEPROM пам'яті даних. При цьому відрізняються низькою вартістю й високою продуктивністю. Всі команди складаються з одного слова (14 біт шириною) і виконуються за один цикл (400 нс при 10 МГЦ), крім команд переходу, які виконуються за два цикли (800 нс). PІС16F84 має переривання, що спрацьовує від чотирьох джерел, і восьми-рівневий апаратний стек. Периферія містить у собі 8-бітний таймер/лічильник з 8-бітним програмувальним попереднім дільни-ком (фактично 16 - бітний таймер) і 13 ліній двунаправленного уведення/висновку. Висока навантажувальна здатність (25 мА макс. струм, що втікає, 20 мА макс. струм, що випливає) ліній уведення/висновку спрощують зовнішні драйвери й, тим самим, зменшується загальна вартість системи. Розробки на базі контро-лерів PІC16F84 підтримується асемблером, програмним симуля-тором, внутрісхемним емулятором (тільки фірми Mіcrochіp) і программатором.
Серія PІC16F84 підходить для широкого спектра розробницької діяльності. Наявність ПЗУ дозволяє підбудовувати параметри в прикладних програмах (коди передавача, швидкості двигуна, частоти приймача й т.д.). Малі розміри корпусів, як для звичайного, так і для поверхневого монтажу, робить серію мікроконтролерів придатної для портативних додатків. Низька ціна, економічність, швидкодія, простота використання й гнучкість вводу/виводу робить PІC16F84 привабливим навіть у тих областях, де раніше не застосовувалися мікроконтролери. Убудований автомат програмування EEPROM кристала PІC16F84 дозволяє легко підбудовувати програму й дані під конкретні вимоги. Схеми виконані по п-МОП технології, вхідні і вихідні сигнали відповідають рівням роботи ТТЛ-схем. Частотомір побудована на базі мікроконтролера РІC16F84, працює з тактовою частотою до 4 Мгц. Схеми програмуються за допомогою фіксованого набору команд МК РІС16F84 MPASM.
Архітектура мікроконтролера - функціональні можливості апара-турних електронних засобів мікроконтролера, які використовуються для представлення даних, машинних операцій, опису алгоритмів і процесів обчислень.
Архітектура поєднує апаратурні, мікропрограмні і програмні за-соби обчислювальної техніки і дозволяє чітко виділити те, що при створенні конкретної мікропроцесорної системи і використанні мож-ливостей мікроконтролера повинен бути реалізований користувачем програмним способом.
2. СПЕЦІАЛЬНИЙ РОЗДІЛ
2.1 Вибір і обґрунтування елементної бази
PIC16F84 відноситься до сімейства КМОП мікроконтролерів. Всі команди складаються із одного слова (14 біт шириною) і виконуються за один цикл (400 нс при 10 МГц), крім команд переходу, які виконуються за два цикла (800 нс). PIC16F84 має переривання, що спрацьовують від чотирьох джерел, і восьмирівневий апаратний стек. Перефірія включає в себе 8-бітний таймер/лічильник з 8-бітним програмуємим попереднім дільником (фактично 16-бітний таймер) і 13 ліній двунаправленого вводу/виводу. Висока навантажувальна здатність (25 мА макс. втікаючий струм, 20 мА макс. витікаючий струм) ліній вводу/виводу спрощує зовнішні драйвери і, тим самим, зменшується загальна вартість системи. Розробки на базі контролерів PIC16F84 підтримуються асемблером, програмним симулятором, внутрішньо схемним модулятором (тільки фірми Microchip) і програматором.
Серія PIC16F84 підходить для широкого спектра конструкцій від схем високорівневого управління автомобільними електричними двигунами до економічних віддалених прийомопередавачів, показывающих приборов и связных процессоров. Наявність ПЗП дозволяє подстраивать параметри в прикладних програмах (коди передавача, швидкості обертання двигуна, частоти приймача та ін.). Малі розміри корпусів, як для звичайного, так і для поверхневого монтажу, робить цю серію МК придатной для портативних додатків. Низька ціна, економічність, швидкодія, простота використання і гибкость вводу/виводу робить PIC16F84 привабливим навіть в тих областях, де раніше не застосовувалися мікроконтролери. Наприклад, таймери, заміна жорсткої логіки у великих системах, співпроцесори. Слідує додати, що вбудований автомат програмування EEPROM кристалу PIC16F84 дозволяє легко налагоджувати програму і дані під конкретні потреби навіть після завершення асемблювання і тестування. Ця можливість може бути використана як для тиражування, так і для занесення калібровочних даних вже після кінцевого тестування.
Структурна схема МК зображена на Рис 2.1.1.
Рисунок 2.1.1 Структурна схема МК PIC18F84
Архітектура основана на концепції роздільних шин і ділянок пам'яті для даних і для команд (Гарвардська архітектура). Шина даних і пам'ять даних (ОЗП) - мають ширину 8 біт, а програмна шина і програмна пам'ять (ПЗП) мають ширину 14 біт. Така концепція забезпечує просту, але потужну систему команд, розроблену так, що бітові, байтові і регістрові операції працюють з високою швидкістю і з перекриттям по часу вибірки команд і циклів виконання. 14-бітна ширина программної пам'яті забезпечує вибірку 14-бітної команди за один цикл. Двоступеневий конвеєр забезпечує одночасну вибірку і виконання команди. Всі команди виконуються за один цикл, виключаючи команди переходу. В PIC16F84 програмна пам'ять об'ємом 1К х 14 розміщена всередині кристалу. Виконуєма програма може знаходитись тільки у вбудованому ПЗП.
Умовно графічне позначення МК зображене на Рис 2.1.2.
Рисунок 2.1.2 Умовно графічне позначення МК PIC16F84.
Таблиця 2.1.1
Номер вивода |
Позначення |
Тип |
Функціональне призначення |
||
Нормальный режим |
Режим запису EEPROM |
||||
1, 2, 18 |
RA0 - RA3 |
Вхід/Вихід |
Двонаправлені лінії вводу/виводу. Вхідні рівні ТТЛ. |
- |
|
3 |
RA4/RTCC |
Вхід/Вихід |
Вхід через тригер Шмитта. Ножка порта ввода/вывода с открытым стоком или вход частоты для таймера/счетчика RTCC |
- |
|
6 |
RB0/INT |
Вхід/Вихід |
Двунаправленная линия порта ввода/вывода или внешний вход прерывания. Уровни ТТЛ. |
- |
|
7 - 11 |
RB1 - RB5 |
Вхід/Вихід |
Двунаправленные линии ввода/вывода. Уровни ТТЛ. |
- |
|
12 |
RB6 |
Вхід/Вихід |
Двунаправленные линии ввода/вывода. Уровни ТТЛ. |
Вход тактовой частоты для EEPROM |
|
13 |
RB7 |
Вхід/Вихід |
Двунаправленные линии ввода/вывода. Уровни ТТЛ. |
Вход/выход EEPROM данных. |
|
4 |
/MCLR/Vpp/ |
Вхід |
Низкий уровень на этом входе генерирует сигнал сброса для контроллера. Активный низкий. Сброс контроллера. |
Для режима EEPROM - подать Vpp. |
|
16 |
OSC1 /CLKIN |
Вхід |
Для подключения кварца, RC или вход внешней тактовой частоты. |
- |
|
15 |
OSC2 /CLKOUT |
Вхід |
Генератор, вихід тактової частоти в режимі RC генератора, в інших випадках - для підключення кварцу. |
- |
|
14 |
Vdd |
- |
Напруга живлення |
Напруга живлення |
|
5 |
Vss |
- |
Загальний |
Загальний |
Область ОЗП організована як 128 х 8. До комірок ОЗП можна адресоватися прямо або косвенно, через регістр покажчик FSR (04h).Це також відноситься і до EEPROM пам'яті даних-констант.
В регістрі статуса (03h) є біти вибору сторінок, які дозволяють звертатися до чотирьох сторінок майбутніх модифікацій цього кристалу. Але для PIC16F84 пам'ять даних існує тільки до адресу 02Fh. Перші 12 адресів використовуються для розміщення регістрів спеціального призначення. Регістри з адресами 0Ch-2Fh можуть бути використані, як регістри загального призначення, які представляють собою статичне ОЗП. Деякі регістри спеціального призначення продубльовані на обох сторінках, а деякі розташовані на сторінці 1 окремо. Коли встановлена сторінка 1, то звертання до адресів 8Ch-AFh фактично адресує сторінку 0. До регістрів можна адресуватися прямо або косвенно. В обох випадках можна адресувати до 512 регістрів.
Watchdog таймер представляє собою повністю незалежний вбудований RC, який не потребує ніяких зовнішніх кіл. Він буде працювати, навіть коли основний генератор буде зупиненим, як це відбувається при виконанні команди SLEEP. Таймер виробляє сигнал скидання. Вироблення таких скидань може бути заборонена шляхом запису нуля в спеціальний біт конфігурації WDTE. Ця операція виконується на етапі програмування мікросхеми.
Мікросхема К561ЛА7.
Рисунок 2.1.3 Умовно графічне позначення К561ЛА7.
Призначення виводів: 1-вхід Х2; 2-вхід Х1; 3-вихід Y1; 4-вихід Y2; 5-вхід ХЗ; 6-вхід Х4; 7-загальний; 8-вхід Х6; 9 -- вхід Х5; 10 -- вихід YЗ; 11 -- вихід Y4; 12 -- вхід X7; 13--вхід Х8; 14 -- напруга живлення.
2.2 Принцип роботи окремих мікросхем з використанням
тимчасових діаграм
Конвеєрна вибірка команд мікроконтролером і виконання команд
Вхідний тактовий сигнал (вхід OSC1) внутрішньою схемою мікро контролера ділиться на чотири неперекриваючихся такти Q1, Q2, Q3, Q4. Внутрішній лічильник команд збільшується на одиницю при кожному такті Q1, а вибірка команд із пам'яті програм на кожному такті Q4. Декодування і виконання команди виконується з такту Q1 до Q4. Цей процес показаний на Рис. 2.2.1.
Рис. 2.2.1 Діаграма циклів виконання команд
Цикл виконання команди складається із чотирьох тактів Q1, Q2, Q3 і Q4. Вибірка наступної команди і виконання поточної зміщені по часу таким чином виконання команди виконується за один цикл. Якщо команда змінює лічильник команд PC (наприклад команда GOTO) то необхідно два машинних циклу для виконання команди.
Цикл вибірки команди починається із збільшення лічильника команд PC в такті Q1. В циклі виконання команди, код завантаженої команди, поміщається в регістр команд IR на такті Q1. Декодування і виконання команди виконується в тактах Q1, Q2 і Q4. Операцій із пам'яті даних читається в такті Q2, а результат виконання команди записується в такті Q4.
2.3 Принцип роботи пристрою згідно схеми принципової.
Рисунок 3.1 схема електрична структурна.
Пристрій призначений для автоматичної передачі будь-якого абонентського номера (при вихідному дзвінку) на АОН абонента, якому ви дзвоните. Інформація передається методом безинтервального пакета в коді 2 з 6. частоти, Що Кодують: 700, 900, 1100, 1300, 1500 і 1700Hz. Номер видається тільки по запиту Аона, тобто, якщо в абонента, якому ви подзвонили, немає визначника номера, то інформація не посилає. Робота пристрою можлива тільки в тому випадку, коли ваш власний номер за якимись причинами не визначається (у цьому випадку ви чуєте після з'єднання запити АОН).
3 Експлуатаційний розділ
3.1 Ініціалізація програмуємих БІС
Конфігурація портів МК:
- RB0 - RB2, RB7, RA0 - RA4 - вихід;
- RB4 - RB6 - вхід.
Програма ініціалізації мікросхеми виконує налагодження портів вводу/вивду мікросхеми та встановлює параметри дільника та входів мікросхеми по яким буде виконуватися переривання. Також налагоджується переривання по таймеру. Всі інші переривання забороняються.
Код програми:
BEGIN ; Ініціалізація контролера
CLRF STATUS ; очистка регістра STATUS
BCF INTCON, GIE ; глобальна заборона переривань
BSF STATUS, RP0 ; сторінка 1 ОЗП
CLRF TRISA ; всі лінії на вивод
MOVLW b'11110000'
MOVWF TRISB ; напрямок ліній порта B
MOVLW B'01000000' ; налагодження преддільника
MOVWF OPTION_REG
BCF STATUS, RP0 ; сторінка 0 ОЗП
MOVLW B'00101000' ; дозвіл переривань по таймеру і
; RB4-RB7
MOVWF INTCON
GOTO $ ; зациклюємо назавжди
Алгоритм роботи програми
Алгоритм роботи програми ініціалізації показаний на рис. 3.1.1. Він складається із трьох кроків.
Рис 3.1.1 Алгоритм роботи програми
За алгоритмом МК спочатку викликає “вектор сбросу”, який знаходиться в комірці з адресом 0000H. В цій комірці знаходиться виклик підпрограми ініціалізації командою CALL BEGIN.
Програма ініціалізації встановлює в 0 всі байти регістра STATUS. Цим же вона виконує вибір нульової сторінки ОЗП. Далі виконується заборона переривань так, як переривання ще не налагоджені. Далі виконується вибір першої сторінки ОЗП і вказується напрямок роботи портів вводу/виводу.
Наступним кроком є налагодження регістра OPTION_REG, в який записується '01000000'. Це означає, що преддільник використовувати не будемо. Наступною командою виконується вибір нульової сторінки ОЗП.
Головною командою є налагодження системи переривань МК. За переривання відповідає регістр INTCON. Вміст цього регістра показаний на Рис 3.1.2.
GIE |
EEIE |
TOIE |
INTE |
RBIE |
TOIF |
INTF |
RBIF |
Рис 3.1.2 Структура регістра INTCON.
Регістр INTCON складається із таких бітів:
- RBIF - флаг переривання по зміні рівня сигналу на входах RB7-RB4 PORTB.
- INTF - флаг зовнішнього переривання INT.
- TOIF - флаг переривання по переповненню TMR0.
- RBIE - біт дозволу переривання по зміні рівня сигналу на
- входах RB7-RB4 PORTB.
- INTE - біт дозволу зовнішнього переривання INT.
- TOIE - біт дозволу переривання по переповненню TMR0.
- EEIE - біт дозволу переривання запису в EEPROM.
- GIE - біт глобального дозволу переривань.
В коді виконується запис слова '00101000' в цей регістр. Це означає, що ми дозволяємо переривання по зміні рівня сигналу на входах RB7-RB4 PORTB і переривання по переповненню TMR0.
На наступному і останньому крокі виконується зациклення основної програми. Подальшу роботу МК виконує налагоджена система переривань.
3.2 Тест перевірки окремих вузлів або пристроїв
LIST p=16F84
__CONFIG 03FF1H
; значення задержки
; могуть бути от 1 до 255
T1 equ .67 ; грубо
T2 equ .221 ; точно
IndF equ 00h ; Доступ до пам'яті через FSR
Timer0 equ 01h ; TMR0
OptionR equ 01h ; Option (RP0=1)
PC equ 02h ; лічильника команд
Status equ 03h ; Status
FSR equ 04h ; Регістр косвенной адресації
PortA equ 05h ; Port A
TrisA equ 05h ; Tris A - RP0=1
PortB equ 06h ; Port B
TrisB equ 06h ; Tris B - RP0=1
EEData equ 08h ; EEPROM Data
EECon1 equ 08h ; EECON1 - RP0=1
EEAdr equ 09h ; EEPROM Address
EECon2 equ 09h ; EECON2 - RP0=1
IntCon equ 0Bh ;
Count equ 0Eh ; временний лічильника
Count1 equ 0Fh ; іще один
LED0 equ 010h ;
LED1 equ 011h ;
LED2 equ 012h ;
LED3 equ 013h ; ячейки
LED4 equ 014h ; індикатора
LED5 equ 015h ;
LED6 equ 016h ;
LED7 equ 017h ;
Temp equ 018h ; временний регістр
LEDIndex equ 019h ; указатель LED
TimerL equ 01ah ; молодший байт лічильника частоти
TimerM equ 01bh ; середній байт лічильника частоти
TimerH equ 01ch ; старший байт лічильника частоти
; Результат в
W equ 0 ; акумуляторі
F equ 1 ; регістрі
; Flag bits:
CF equ 0 ; Carry
DC equ 1 ; DC
ZF equ 2 ; Zero
RP0 equ 5
org 2100h
; частота ПЧ по з мовчанню
DE 008h,064h,070h ; 5.5 мгц
DE 0h,0h,0h
org 0
goto Start
; Перевірка та ініціалізація порта А
clrf PortA ; RA0..RA3 = 0
bsf Status,RP0
movlw b'00010011'
movwf TrisA ; RA0,RA1,RA4 input
bcf Status,RP0 ;
movf PortA,w
andlw b'00000011'
return
; Перекодування двійковогого кода в код LCD
Bin2LCD
bcf Status,0 ; clear the carry bit
movlw .24
movwf Count
clrf LED3
clrf LED2
clrf LED1
clrf LED0
loop16
rlf TimerL,f
rlf TimerM,f
rlf TimerH,f
rlf LED0,f
rlf LED1,f
rlf LED2,f
rlf LED3,f
decfsz Count,f
goto adjDEC
swapf LED3,w
andlw 0Fh
movwf LED7
movfw LED3
andlw 0Fh
movwf LED6
swapf LED2,w
andlw 0Fh
movwf LED5
movfw LED2
andlw 0Fh
movwf LED4
swapf LED1,w
andlw 0Fh
movwf LED3
movfw LED1
andlw 0Fh
movwf LED2
swapf LED0,w
andlw 0Fh
movwf LED1
movfw LED0
andlw 0Fh
movwf LED0
return
adjDEC
movlw LED0
movwf FSR
call adjBCD
movlw LED1
movwf FSR
call adjBCD
movlw LED2
movwf FSR
call adjBCD
movlw LED3
movwf FSR
call adjBCD
goto loop16
adjBCD
movlw 3
addwf 0,W
movwf Count1
btfsc Count1,3
movwf 0
movlw 30
addwf 0,W
movwf Count1
btfsc Count1,7
movwf 0
retlw 0
; Перекодуровання BCD -> 7 сегментний код
LCDTable
addwf PC,F ; W + PC -> PC
retlw b'00111111' ; ..FEDCBA = '0'
retlw b'00000110' ; .....CB. = '1'
retlw b'01011011' ; .G.ED.BA = '2'
retlw b'01001111' ; .G..DCBA = '3'
retlw b'01100110' ; .GF..CB. = '4'
retlw b'01101101' ; .GF.DC.A = '5'
retlw b'01111101' ; .GFEDC.A = '6'
retlw b'00000111' ; .....CBA = '7'
retlw b'01111111' ; .GFEDCBA = '8'
retlw b'01101111' ; .GF.DCBA = '9'
retlw b'01110001' ; .GFE...A = 'F'
;Головна програма
Start
bsf Status,RP0
movlw b'00010000' ; RA0..RA3 outputs
movwf TrisA ; RA4 input
movlw b'00000000' ; RB0..RB7 outputs
movwf TrisB
clrwdt ;
movlw b'00100111' ; Prescaler -> Timer0,
movwf OptionR ; 1:256, Виставляю дільник частоти
bcf Status,RP0 ;
clrf Count ; указателі
clrf LEDIndex
clrf LED0 ; індикатори
clrf LED1
clrf LED2
clrf LED3
clrf LED4
clrf LED5
clrf LED6
clrf LED7
clrf TimerL ; ячейка счота
clrf TimerM ; ячейка счота
clrf TimerH ; ячейка счота
; Перекодурованя bin => BCD => код для индикаторів
Go
bcf EECon1,2 ; заборона запису
movlw 0
movwf EEAdr
bsf Status,RP0
bsf EECon1,0
bcf Status,RP0 ;
movf EEData,w
movwf IF_H
movlw 1
movwf EEAdr
bsf Status,RP0
bsf EECon1,0
bcf Status,RP0 ;
movf EEData,w
movwf IF_M
movlw 2
movwf EEAdr
bsf Status,RP0
bsf EECon1,0
bcf Status,RP0 ;
movf EEData,w
movwf IF_L
call Bin2LCD
; Регистры LED0..LED7 заповнені значеннями, готовимося
міряти й відображать
clrf IntCon ; обнуління біта переповнення
clrf TimerH ; старший байт виміру
clrf Timer0 ; собственно таймер
clrf LEDIndex ; указатель цифри
movlw .60 ; начальне значення лічильника
movwf Count ; 60 -> Count
; Начало мірять й індикації: RA3 set input
movlw b'00000000' ; 0 в усі порти
movwf PortA
bsf Status,RP0
movlw b'00011000' ; RA0..RA2 output,RA3..RA4 input
movwf TrisA ; RA4 input
bcf Status,RP0 ;
LEDCycle movlw LED0
addwf LEDIndex,W ; LED1 + LEDIndex -> W
movwf FSR ; W -> FSR
movf IndF,W ; LED(0..6) -> W
call LCDTable ; W -> семисегментний код
movwf Temp ; точка есть?
movlw 5
bsf Status,ZF
subwf LEDIndex,W
btfss Status,ZF
goto NoDot
bsf Temp,7
NoDot movf Temp,W
movwf PortB ; вывод цифри в PortB
movf LEDIndex,W ; LEDIndex -> W
movwf PortA ; вивід позиції в PortA
; Проверка TMR0 на переполнение
btfss IntCon,2
goto DoNothing
incf TimerH,F
bcf IntCon,2
goto O_K
DoNothing nop
nop
nop
; The first timing loop
O_K
movlw T1
movwf Temp
Pause
decfsz Temp,F
goto Pause
incf LEDIndex,F
movlw 7 ; is 7th?
bcf Status,ZF
subwf LEDIndex,W
btfss Status,ZF
goto LEDCycle ; след. цифра
nop
clrf LEDIndex
decfsz Count,F
goto LEDCycle ; next 7xLED
nop
; The second timing loop
movlw T2
movwf Temp
EndPause
decfsz Temp,F
goto EndPause
nop
; Завершение міряти
Nx
clrw
movwf PortB ; RB0..RB7 = 0
movwf PortA ; RA0..RA3 = 0
bsf Status,RP0
movlw b'00010000'
movwf TrisA ; RA4 input
bcf Status,RP0 ;
nop
nop
; Послідня перевірка TMR0 на переповнення
btfss IntCon,2
goto Analyse
bcf IntCon,2
incf TimerH,F
; Аналіз вмісту попереднього дільника
Analyse
nop
movf Timer0,W ; средний байт лічильника
movwf TimerM ; TMR0 -> TimerM
clrf TimerL
CountIt
incf TimerL,F
bsf PortA,3 ; _| false impulz
nop
bcf PortA,3 ; |_
nop
movf Timer0,W ; actual Timer0 -> W
bcf Status,ZF
subwf TimerM,W
btfsc Status,ZF
goto CountIt
incf TimerL,F
comf TimerL,F
incf TimerL,F
incf TimerL,F ; молодший байт лічильника
goto KeyQuery
minusIF
comf IF_L,f
incf IF_L,f
btfsc Status,ZF
decf IF_M,f
comf IF_M,f
btfsc Status,ZF
decf IF_H,f
comf IF_H,f
movf IF_L,w
addwf TimerL,f
btfss Status,CF
goto min11
incf TimerM,f
btfss Status,ZF
goto min11
incf TimerH,f
min11
movf IF_M,w
addwf TimerM,f
btfsc Status,CF
incf TimerH,f
movf IF_H,w
addwf TimerH,f
btfsc Status,CF ; результат від'ємний?
goto Go1 ; ні
btfsc Status,CF ; а не нуль?
goto Go1 ; ні
comf TimerL,f ; перетворення
incf TimerL,f
btfsc Status,ZF
decf TimerM,f
comf TimerM,f ; від'ємного
btfsc Status,ZF
decf TimerH,f
comf TimerH,f ; результату
Go1
movlw 0
movwf KeyWait
goto Go
plusIF
movf IF_L,w
addwf TimerL,f
btfss Status,CF
goto pl11
incf TimerM,f
btfss Status,ZF
goto pl11
incf TimerH,f
pl11
movf IF_M,w
addwf TimerM,f
btfsc Status,CF
incf TimerH,f
movf IF_H,w
addwf TimerH,f
goto Go1
Edt
clrf IntCon ; очистити всі біти
movlw 0ah
movwf LED7 ; признак режиму
movlw b'00000000' ;
movwf PortA
bsf Status,RP0
movlw b'00010000' ; RA0..RA3 вивод,RA4 вводу
movwf TrisA ;
bcf Status,RP0 ;
clrf LEDIndex ; указатель цифри
EdtCycle
movlw LED0
addwf LEDIndex,W ; LED1 + LEDIndex -> W
movwf FSR ; W -> FSR
movf IndF,W ; LED(0..6) -> W
call LCDTable ; W -> семисегментный код
movwf Temp ; точка есть?
movlw 5
bsf Status,ZF
subwf LEDIndex,W
btfss Status,ZF
goto NoDot1
bsf Temp,7
NoDot1
movf Temp,W
movwf PortB ; вивід цифри в PortB
movf LEDIndex,W ; LEDIndex -> W
movwf PortA ; вивід позиції в PortA
; Timing loop
movlw .255
movwf Temp
Pause1
decfsz Temp,F
goto Pause1
incf LEDIndex,F
btfss LEDIndex,3
goto EdtCycle ; следуюча цифра
clrf LEDIndex
goto FunOff
NextFun
movlw 0 ; вихід із цикла редактування
movwf KeyWait
goto Edt ; next 8xLED
end
3.3 Розрахунок надійності пристрою
Надійність - властивість пристрою виконувати задані функції в заданих режимах і умовах застосування, обслуговування, ремонту, збереження, транспортування на протязі необхідного інтервалу часу.
Показники надійності:
Безвідмовність.
Довговічність.
Ремонтопридатність.
Збереження.
Безвідмовність - властивість безупинна зберігати працездатність до настання граничного стану, після настання, якого подальша експлуатація виробу економічно недоцільна.
Ремонтопридатність - пристосованість пристрою до попередження відмовлень, до можливості перебування несправностей, усунення їх, перебування причин шляхом проведення ремонту і технічного
обслуговування.
До термінів ремонтопридатності відносяться: відмовлення,збереження.
Відмовлення - подія, що полягає в повній чи частковій утраті
працездатності ТЕЗа.
Відмовлення бувають:
Раптові (катастрофічні) стрибкоподібна зміна параметрів робочого виробу.
Поступові (параметричні) - постійна зміна одного чи декількох
параметрів з часом, що виходять за припустимі межі.
Збереження термін, протягом якого при дотриманні режимів збереження виріб зберігає працездатний стан.
Розрахунок надійності поділяється на три розділи:
Визначення значення інтенсивності відмовлення всіх елементів за принциповою схемою ТЕЗа.
2. Визначення значення імовірності безвідмовної роботи всієї схеми.
3. Визначення середнього наробітку До першого відмовлення.
1. Інтенсивність відмовлення всіх елементів визначається по формулі:
nі- кількість елементів у схемі;
і- інтенсивність відмовлень і-го елемента;
m - кількість типів елементів.
При розрахунку також потрібно враховувати інтенсивність відмовлень через пайки радіоелементів на друкованій платі.
Інтенсивність відмовлень елементів розраховуємо за формулою:
про- інтенсивність відмовлень елементів у режимі номінального навантаження;
Кэ - експлуатаційний коефіцієнт;
Кр - коефіцієнт навантаження.
Усі ці параметри беруться з довідника з розрахунку надійності.
2. Ймовірністю безвідмовної роботи називається ймовірність того,що за певних умов експлуатації в заданому інтервалі часу не відбудеться жодного відмовлення.
Ймовірність безвідмовної роботи визначається по наступній
формулі:
і=общ.;
t - час, година.
За результатами розрахунків складається таблиця і графік.
3 Середній наробіток до першого відмовлення - це математичне чекання часу роботи виробу до першого відмовлення.
Середній наробіток на відмовлення визначається по формулі:
Анотація
У даній курсовій роботі була розроблена схема електрична принципова визначника телефонного номеру на мікроконтролері.
Спроектована схема електрична принципова пристрою, структурна та загальна схема, виконано опис всіх ВІС, що використовувалися у пристрої, приведено їхні технічні характеристики та структурні схеми.
Була написана програма ініціалізації і програма обробника переривань від таймера та портів вводу-виводу, вказані алгоритми роботи програми.
Виконаний розрахунок надійності, який показує, що пристрій може працювати до першої відмови в середньому.
Література
1. К.Г. Самофалов Микропроцессоры -Киев: Техника, 1989.
Микропроцессоры и микропроцессорные комплекты интегральных микросхем. Справочник. / Под ред. В.А. Шахнова . - М.: " Радио исвязь", 1988.
Микропроцессоры, архитектура и проектирование микро-ЭВМ, Организация вычислительных процессов. - М.: Высшая школа,1986.
Микропроцессоры. Средства сопряжения. Контролирующие иинформационно-управляющие системы. / Под ред. Л.Н. Преснухина . - М.: Высшая школа, 1986.
Микропроцессоры. В 3-х книгах. Учеб, для ВТУЗов. / Под ред. Л.Н. Преснухина, М.: Высшая школа, 1986.
Микропроцессоры и микро-ЭВМ в системах автоматического управления: справочник. -Л.: Машиностроение, 1987.
"Микропроцессорные средства и системы". № 6, 1988.
http://www.microchip.ru:8101/
http://www.paguo.ru/
http://www.disall.narod.ru/picpro.htm
http://www.chipnews.ru/html.cgi/arhiv/index.htm
Подобные документы
Створення схеми електричної принципової МР-3 програвача – приставки до ПК, структурної та загальної схеми. Призначення проектуємого пристрою. Принцип роботи окремих ВІС. Розробка програми тестування роботи пристрою, розрахунок надійності його роботи.
курсовая работа [527,4 K], добавлен 24.03.2009Створення схеми електричної принципової годинника-будильника-термометра з ІЧ ПК. Призначення проектуємого пристрою. Розробка структурнї та електричної принципової схеми пристрою та програми тестування роботи пристрою, розрахунок надійності його роботи.
курсовая работа [935,6 K], добавлен 23.03.2009Опис великої інтегральної схеми пристрою множення. Аналіз розв’язків поставленої задачі, розробка принципової електричної схеми, логічної моделі і тесту перевірки, розрахунок швидкодії. Тестування з використанням пакету прикладних програм OrCAD 9.1.
курсовая работа [5,0 M], добавлен 22.02.2010Розробка структурної та принципипової схеми мікропроцесорної системи, їх структура и головні елементи. Розробка програми мікропроцесора, а також пристрою для блоку воду-виводу, схеми дешифратора. Інтерфейс і закономірності зв’язку в комп’ютером.
курсовая работа [639,9 K], добавлен 09.09.2015Опис результату розробки архітектури пристрою та його структурної схеми на рівні міжрегістрових передач. Система для виконання тестування пристрою, результати його симуляції у формі часових діаграм. Cинтез розробленої VHDL-моделі пристрою в ПЛІС.
курсовая работа [1,2 M], добавлен 03.03.2015Склад, особливості, технічні характеристики та архітектура вибраного мікроконтролера. Проектування керуючого автомату на мікроконтролері для пристрою світлових ефектів, побудова його принципової електричної схеми та розробка програмного забезпечення.
курсовая работа [422,1 K], добавлен 27.02.2013Розробка структурної схеми. Опис основних елементів мікропроцесора. Вибір підходящої структури процесорного елемента та його опис. Реалізація пристрою управління. Розробка мікропрограми та загальний алгоритм виконання процесором команди SBR Rm, B.
контрольная работа [83,6 K], добавлен 04.06.2009Характеристики вузлів системи автоматичного закривання жалюзі. Розробка схеми електричної функціональної. Блок-схема алгоритму роботи пристрою. Середовище розробки програмної частини пристрою. Основні компоненти розробки програмної частини системи.
курсовая работа [1,0 M], добавлен 06.12.2014Таблиця істинності логічних функцій пристрою, який необхідно синтезувати. Отримання логічних функцій пристрою та їх мінімізація за допомогою діаграм Вейча. Побудова та аналіз структурної схеми пристрою в програмі AFDK з логічними елементами до 3-х входів.
курсовая работа [320,4 K], добавлен 03.05.2015Розробка алгоритмів виконання арифметичних операцій для систем числення в різних кодах з оцінкою точності. Проектування цифрового автомату в булевих базисах з використанням логічних елементів. Складення структурної схеми комбінаційних цифрових автоматів.
курсовая работа [264,6 K], добавлен 10.09.2012