Предыдущая Следующая

//очистка экрана ЖКИ

{

UART0rx_byte();

1cd_pro_dat а(rx_byt е, i); i++;

if (i > 16) {

i = 0;

lcd_clear(); }

}

//функция-обработчик прерывания от TIMERO ---------------------------------

static void Timerlnterrupt() {

opros_kn0(); //опрос кнопки 0 opros_knl(); //опрос кнопки 1 opros_kn2(); //опрос кнопки 2 opros_kn3(); //опрос кнопки 3 static U8 old_state;

//генерация импульсной последовательности формирования -U для питания ЖКИ if (old_state==OFF) {

OUT_U_LCD_UP; old_state=ON; }

else {

0UT_U_LCD_D0WN; old_state=OFF; }

TOIR = Oxff; }

//Инициализация и запуск TIMERO void TIMEROinitstart!) {

TOTCR = 0; TOCCR = 0; TOEMR = 0; Т0РС = 0; T0MR0 = PCLK/1000; TOMCR = 3; TOTCR = 1; }

//----------------

//начать импульс -U ЖКИ

//закончить импульс -U ЖКИ

// Сброс линии прерывания от Таймера 0

//Отключить Таймер 0 (первый бит регистра!) //Запретить все типы захвата //Запретить все типы совпадения //Предделитель не делит (коэффициент деления =1). //Считать до этого значения. Выходная частота таймера 1000 Гц //Сброс и прерывание от MR0 (регистр совпадения 0). //Включить Таймер 0 (первый бит регистра!)

Начальная инициализация и настройка модуля UART0 в программе производятся функцией UARTOinit(baudrate), где baudrate — желаемая скорость обмена данными через UART0 в бодах, выбираемая разработчиком из набора стандартных значений. Эта скорость задана в программе равной 115200 бит/с. Помимо скорости обмена, функция задает и другие параметры обмена через UART0:8 бит данных в посылке, 1 стоповый бит, отсутствие бита четности.

Нажимая на кнопку «0», пользователь может производить выбор значения байта данных из некоторого подмножества и одновременно его передачу через UART0. Символ, которому соответствует ASCII-код выбранного байта, при передаче отображается в нижней строке ЖКИ. Передачу байта данных через UART0 осуществляет функция UART0tx_byte(U8 txjbyte). Когда вся нижняя строка ЖКИ заполняется переданными символами данных, функция очищает ее для отображения следующих передаваемых данных. При нажатии на кнопку «1» производится передача через UART0 последовательности из нескольких символов данных «0123456789АВС», при этом на ЖКИ ничего не отображается. Все передаваемые из микроконтроллера LPC2000 символы должны отображаться в приемном окне терминальной программы на компьютере. Вид окна терминальной программы Terminal, при обмене данными с отладочной платой через UART, изображен на Рис. 33.5.

В приеме данных через UART0 основная программа функции mainQ не участвует:. Обработка приема возлагается на функцию-обработчик прерывания по приему байта через UARTO UARTOInterrupt(). Эта же функция обеспечивает и индикацию символа, которому соответствует ASCII-код принятого байта в верхней строке ЖКИ. Когда вся строка заполняется принятыми символами данных, функция очищает ее для отображения следующих поступающих данных. В функции UARTOInterruptO, в свою очередь, производится вызов функции UARTOrxJbyteQ, производящей чтение приемного буфера UART0 и возвращающей его содержимое.


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz