Вы вошли на сайт, как Гость
Регистрация

Отображение состояния выводов порта

Программные примеры для микроконтроллеров PIC - MPLab IDE
(Отображение состояния выводов порта)

В примере представлена программа, которая опрашивает состояние выводов порта В (все выводы — входы) и передает соответствующую информацию через приемопередатчик USART по интерфейсу RS232.

Примечание: при компиляции проекта требуется добавить в проект следующие библиотеки: "16F877.h", "stdio.h".


#fuses HS, NOWDT
#use delay(clock=10000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,stream=RS232,bits=8)

void main() 
{
  unsigned char c, bit_mask;     //Переменные для счетчика выводов
                                 //и битовой маски проверки состояний
  port_b_pullups(TRUE);          //Активизируем внутренние подтягивающие
                                 //резисторы для порта В
  set_tris_b(0xFF);              //Все выводы порта В - входы
  bit_mask = 1;                  //Начинаем сопоставление с вывода 0
  for (c=0; c<8; c++)            //Просматриваем 8 разрядов порта В
  {
    if (input_b() & bit_mask)    //Сопоставляем значение регистра 
                                 //данных порта В с маской
      //Если в разряде, заданном маской, установлена лог. 1,...
      printf("Bit %d is high.\n", (int)c);
    else
      //Если в разряде, заданном маской, установлен лог. 0,...
      printf("Bit %d is low.\n", (int)c);
    bit_mask <<= 1;              //Сдвигаем 1 в маске влево для проверки
                                 //состояния следующего разряда
  }
  while(1);                      //Бесконечная задержка
}

Файлы проекта можно скачать здесь: