Передача данных через USART

June 28, 2014 by admin Комментировать »

Вновь, не мудрствуя лукаво, проведём компьютерный эксперимент по отправке символа через USART Вот простейшая программа:

#include <pic16f887h>

#include &quotdelay_20h&quot

typedef unsigned int wrd

wrd at 0x2007 CONFIG1 = 0x2FF2

void main(void) {

SPBRG = 21      //скорость передачи 57600, 8, NONE, 1 SYNC = 0        //асинхронный режим

SPEN = 1        //разрешить работу USART

BRGH = 1        //высокая скорость

TXEN = 1        //разрешить передачу

for (;) {

TXREG = 1;     //символ единицы в буфер передачи DELAY_S(1)      //пауза в 1 секунду

}

}

И можно посмотреть на результат:

Рис 527 Компьютерная проверка программы

Аналогично проверим работу приёмника Она не намного сложнее:

#include <pic16f887h>

#include &quotdelay_20h&quot

typedef unsigned int wrd

wrd at 0x2007 CONFIG1 = 0x2FF2

char rec_dat = 0      //переменная для приёма void main(void) {

TRISD = 0       //порт для проверки операции приёма PORTD = 0

SPBRG = 21      //скорость 56700 SYNC = 0        //асинхронный приём

SPEN = 1        //разрешить работу USART

BRGH = 1        //высокая скорость

CREN = 1        //разрешить приём

for (;) {

rec_dat = RCREG //запишем в переменную принятый символ if (rec_dat == 1) RD0 = 1 //если «1», то включить RD0 else RD0 = 0                //если нет, то выключить RD0

}

}

И аналогично посмотрим на результат:

Рис 528 Проверка приёма символов

Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты