|
Отображение состояния выводов порта
Программные примеры для микроконтроллеров 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); //Бесконечная задержка
}
|
Файлы проекта можно скачать здесь:
|
|
|