Читайте также:
|
|
Розглянемо приклад, в якому необхідно ввести від 2-х незалежних датчиків аналогові сигнали постійного струму (U1 і U2), виконати порівняння їх між собою і за результатами порівняння здійснити:
У випадку, якщо U1 <= U2 управління передається фрагменту програми з адресою А1 і встановлюється в "1" прапорець FO;
У випадку, якщо U1 > U2 управління передається на фрагмент програми з адресою А2, прапорець FO встановлюється в "0", формуються дискретні керуючі сигнали, що змінюються від "0" до "1".
Для рішення даної задачі, якщо немає будь-яких обмежень, більш доцільно використати МК PIC16C71, бо цей мікроконтролер має вбудований 4-канальний АЦП. Для вводу двох напруг, що порівнюються, використовуються два аналогових канали (лінії AIN0 і AIN1 порту А). Переключення каналів здійснюється за допомогою зміни бітів CHS0 і CHS1 в регістрі ADCON0, що призначений для управління АЦП.
Структура регістра ADCON (адреса 08h в пам'яті даних) наступна:
7 0
ADCS1 | ADCS0 | CHS1 | CHS0 | GO/DONE | ADIF | ADON |
ADON – Включення АЦП:
ADON = 0: АЦП не працює і не споживає струму;
ADON = 1: АЦП працює і зайняв лінії введення/виведення.
ADIF - Прапорець переривання по закінченню перетворення:
встановлюється апаратно, коли перетворення закінчене;
скидається програмно.
GO:/DONE – Запуск АЦП (початок перетворення):
встановлюється програмно;
скидається апаратно, коли перетворення закінчене.
CHS1, CHS0 – Вибір аналогового каналу:
CHS1, CHS0 = 00: канал 0 (AIN0);
01: канал 1 (AIN1);
10: канал 2 (AIN2);
11: канал 3 (AIN3).
ADCS1, ADCS0 – Вибір частоти перетворення.
ADCS0, ADCS0 = 00: fosc/2;
01: fosc/8;
10: fosc/32;
11: fRC (частота від власного
RC-генератора).
Сигнал управління, що сформувався, видається через вивід RB1 порту В. Для порівняння двох восьмирозрядних кодів, що представляють собою результати перетворення сигналів U1 і U2, можна скористатися стандартною процедурою СОМР, розглянутою раніше.
З метою підвищення точності й стабільності роботи АЦП в даному випадку більш доцільно використовувати кварцовий ХТ-генератор.
На підставі початкового завдання і попередніх міркувань можна запропонувати функціональну схему і алгоритм робочої програми МКУ (див. рис. 6.1 і 6.2 відповідно).
Текст програми у відповідності з даним алгоритмом наведений нижче:
; Текст програми
LIST p = 16c71, r = HEX
TITLE "Z8"
Дата добавления: 2014-12-18; просмотров: 130 | Поможем написать вашу работу | Нарушение авторских прав |