Мпульсів заданої тривалості

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

Для рішення даної задачі необхідно:

1) Вибрати лінії (розряди) порту А і В для вводу сигналів від датчика і виводу імпульсних сигналів (наприклад, RB0 – на ввід, а RA0 – на вивід);

2) Заборонити всі переривання;

3) Здійснити опитування стану датчика;

4) Проаналізувати його (наприклад, перевіривши біт, що сигналізує про стан датчика, тобто визначити, відбулася в поточному циклі опитування подія в об'єкті управління або ні – чи був зафіксований черговий перехід з "0" в "1)";

5) Організувати процедуру передачі управління на дві підпрограми в залежності від рівня сигналу, отриманого від датчика;

6) Сформувати позитивний імпульсний сигнал (IMPULS) заданої тривалості у випадку, якщо, наприклад, стан датчика дорівнює "1" (D = 1). Для організації затримки (DELAY) можна використати:

· одну або декілька холостих команд NOP;

· програмний лічильник, працюючий, наприклад, в декрементному режимі. При цьому в лічильник заноситься константа, лічильник декрементується. Онулення лічильника є сигналом закінчення часового інтервалу;

· внутрішній таймер-лічильник (TMRO);

· зовнішній (додатковий) таймер-лічильник у випадку, якщо TMRO з будь-якої причини використати неможливо;

7) Організувати процедуру «очікування події», що полягає в безперервному опитуванні датчика і аналізі його стану.

На підставі попередніх міркувань можна запропонувати варіант функціональної схеми і блок-схеми алгоритму (БСА) робочої програми мікроконтролерного устаткування (МКУ).

Функціональна схема і БСА робочої програми МКУ наведені відповідно на рис. 5.1 і. 5.2. На рис. 5.3 і 5.4 наведені БСА підпрограм, що входять в загальний алгоритм робочої програми. Дані підпрограми цілком можуть вважатися стандартними, бо вони використовуються достатньо часто при реалізації різноманітних функцій управління і обробки даних в МКУ.

 
 

C1


Рис. 5.1. Функціональна схема приладу прийому сигналу

 

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

На підставі блок-схем алгоритмів і розподілу пам'яті даних можна розпочати написання вхідного тексту робочої програми. Варіант тексту програми, що дозволяє реалізувати всі функції, закладені у вхідному технічному завданні, наведений нижче:

 

; Текст програми

LIST p = 16C84, r = HEX

Title ‘Z1’