logo
Проектирование микропроцессорной системы управления (МКС)

3.4 Функция digit( )

Функция digit( ) выполняет обработку цифровых сигналов Х1-Х5, поступающих в МКС от двоичных датчиков. БСА обработки цифровой информации была приведена на рисунке 1.3.

Рассмотрим программную реализацию алгоритма на примере вычисления логической функции переменных

f() =X1 || (!X2) && (!(X3 ||X4 || X5)). Входные сигналы Х1-Х5 поступают на линии RC3-RC7 порта С, настроенные на ввод. Выходной сигнал Y1 вырабатывается на линии RE0 порта Е, настроенный на вывод. Для формирования одиночного управляющего импульса Y1 длительностью, к пример t1 = 40мкс, будем использовать библиотечную функцию задержки Delay_us.

/* Объявление глобальных переменных, используемых в функции */

sbitX1 atRC3_bit; //битовая переменная X1 на линии порта RC3

sbitX2 atRC4_bit; //битовая переменная X2 на линии порта RC4

sbitX3atRC5_bit; //битовая переменная X3 на линии порта RC5

sbitX4atRC6_bit; //битовая переменная X4 на линии порта RC6

sbitX5atRC7_bit; //битовая переменная X5 на линии порта RC7

sbitY1 atRE0_bit; //битовая переменная Y1 на линии порта RE0

voiddigit() //функция обработки цифровой информации

{

bitf; //битовая переменная для хранения результата

//вычисления логической функции

f() =X1 || (!X2) && (!(X3 || X4 || X5));//вычисление //логической функции

if(f==1) //если результат равен 1

{

Y1=1;

Delay_us(40);

Y1=0;

}

}