Контрольная работа: Розробка мікроконтролерного пристрою на базі МК РІС 16С5х

Рис. 3.2 Підключення RC-ланцюга керування внутрішнім RС генератором

Для значень Rext, нижче 2.2 кОм, генератор може працювати нестабільно або не запускатися. При дуже великих значеннях Rext (наприклад, 1 МОМ), генератор стає чутливим до завад, витоків і вологості. Рекомендований діапазон значень Rext від 3 до 100 кОм. Хоча генератор дієздатний і при відсутності зовнішнього конденсатора (Сext = 0), для збільшення стабільності роботи рекомендується використовувати конденсатор ємністю понад 20 пФ. При малій ємності Сext, чи взагалі без цього конденсатора, частота генератора сильно залежить від монтажних ємностей. Розкид буде тим більший, чим більше величина резистора Rext (бо вплив струмів витоків на частоту RC генератора сильніший при більших значеннях Rext), і чим менша величина ємності Сext (бо в цьому випадку сильніше проявляється вплив монтажних ємностей). Тому ми вибираємо Rext рівним 100 кОм, а Сext рівним 20 пФ.

Згідно із технічним завданням МК має внутрішній сигнал "Скидання" по ввімкненню живлення, для цього достатньо просто об'єднати входи Vdd і (рис. 3.1), при поданні напруги на вхід Vdd відбудеться автоматичне скидання мікро контролера.

На виході контролера RA0 формуються послідовності управляючих сигналів, що далі поступають на об’єкт керування. Оскільки ТЗ не дає ніяких вимог щодо рівней вихідних сигналів, а необхідна затримка реалізується програмно, вони безпосередньо знімаються з виходу RA0 і поступають на об’єкт керування.


4. АЛГОРИТМ РОБОТИ МКП

Згідно із окресленими під задачами загальний алгоритм роботи програми буде складатися із наступних блоків (рис. 4.1):

Рис. 4.1 Загальна схема алгоритму роботи МКП

Блок ініціалізації МК передбачає настроювання відповідних бітів портів А і В на ввід/вивід і інші конфігурування МК.

Блок чекання події означає читання даних з входу RB0, аналізу і переходу до наступного блоку якщо отримано 1, або повернення до читання знов доки не отримано 1. Це можна проілюструвати наступним фрагментом блок-схеми (рис. 4.2):

Рис. 4.2 Блок чекання події

Блок формування керуючої послідовності сигналів реалізує в циклі формування скидання і встановлення в одиницю на виводі RА0, в результаті чого ми отримали послідовність імпульсів необхідної тривалості (рис. 4.3), що задається блоком затримки.

Рис. 4.3 Блок формування керуючої послідовності сигналів

Блок затримки представляє собою цикл із інкрементом спеціальної змінної, що триває 100 тактів(рис 4.4).

Рис. 4.4 Блок затримки.

Таким чином по приходу сигналу «Скидання» контролер починає виконувати свою програму, що містить ініціалізацію МК, обробку вхідних даних і видачу керуючої послідовності сигналів. У безупинному циклі роботи МК зчитує біт RВ0 порту В (значення D), і якщо поступила 1 формує на виході керуючу послідовність сигналів. Потім усе повторюється.

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


5. РОЗПОДІЛ ПАМ'ЯТІ ДАНИХ ТА ПРОГРАМ

5.1. Розподіл пам’яті даних

В ОМК PІC16С54 пам'ять даних розділяється на системні регістри та регістри користувачів. Розподілення системних регістрів у пам’яті даних відомо з специфікації ОМК і приводитися у файлі pіc16С54.іnc, однак ми не підключаємо цю бібліотеку навмисно, скільки нам потрібно лише визначити регістри портів В і А, що ми робимо вручну. У даної програмі використовується дві змінні, тобто два з регістри користувачів (VDEL і MASK), які займають область пам’яті по 1 байт, починаючи з адрес 0Dh і 0Еh.

5.1. Розподіл пам’яті програм

В ОМК PІC16С54 після скидання програма починає виконуватися з нульової адреси. Звичайно на початку програми розташовується команда goto – перехід на основну частину програми (пропуск обробника переривань). У нашій задачі переривання не використовуються, тобто немає обробнику переривань, однак ми пропускаємо ділянку в 100 адрес, оскільки основна частина програми займає невеликий розмір, а культура написання програм вимагає передбачати місце для можливо майбутнього обробника переривань. В програмі не використовуються функції, оскільки в цьому не має потреби, а тому програма займає суцільну ділянку пам'яті.


6. ТЕКСТ ПРОГРАМИ

Вихідний текст програми створювався в середовищі MPLAB v.5.12. Для створення тексту програми необхідно виконати наступні дії:

а) запустити оболонку MPLAB (mplab.exe);

б) у головному меню вибрати пункт Fіle/New;

в) набрати текст програми і зберегти його з розширенням asm (пункт меню Fіle/Save). Програма була збережена з ім'ям kkr.asm і додається на дискеті.

Для подальшої роботи з програмою необхідно виконати її трансляцію, а для цього необхідно в MPLAB створити проект:

а) вибрати пункт головного меню Project\New Project, задати ім'я проекту (nata.pjt). б) відкриється вікно Edіt Project, у якому треба натиснути на кнопку Add Node та підключити файл kkr.asm – у вікні з'явиться файл kkr.hex;

б) вибрати тип кристалу (MPLAB-SІM 16С54). У вкладці Tools перевірили, що стоїть режим MPLAB SІM (режим Sіmulator);

в) щоб виставити опції проекту, потрібно навести курсор на файл kkr.hex та натиснути на кнопку Node Propertіon. Виставити систему числення – шістнадцатиричну та усе підтвердити;

г) зберегти ще раз файл kkr.pjt. Тепер проект створений.

Текст програми має наступний вигляд:

;###################################;

;Створено: xxxxxxx # 8.06.2005 ;

К-во Просмотров: 263
Бесплатно скачать Контрольная работа: Розробка мікроконтролерного пристрою на базі МК РІС 16С5х