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

{

PINSEL0_bit.P0_0 = 0x01; //линию РО.О сделать выходом TXDO UARTO

PINSELO_bit.Р0_1 = 0x01; //линию РОЛ сделать входом RXDO UARTO

U0LCR_bit.DLAB = 1; //разрешить запись в настройки делителя UARTO

UODLL = 14745600/(16*baudrate); // задание мл. байта скорости обмена U0DLM = ((14745600/(16*baudrate)) » 8); // задание ст. байта скорости обмена U0LCR_bit.DLAB = 0; //разрешить обращение к буферам UART0

U0LCR_bit.WLS = 0x03; //длина символа 8 битов

U0LCR_bit.SBS=l; //1 стоповый бит

U0FCR_bit.FCRFE = 1; //разрешить буфер FIFO с уровнем триггера 1 символ

U0FCR_bit.RFR = 1; //сбросить приемный буфер FIFO

U0FCR_bit.TFR = 1; //сбросить передающий буфер FIFO

U0IER_bit.RDAIE = 1; //разрешить прерывание по приему данных в буфер

}

//Функция передачи байта через UART0

void UART0tx_byte(U8 tx_byte)

{

while (U0LSR_bit.THRE == 0); //когда буфер передатчика будет пуст UOTHR = tx_byte; //запись в буфер передачи UART0 (начать передачу)

}

//Функция приема байта через UART0

U8 UART0rx_byte()

{

while (U0LSR_bit.DR==0);

rx_byte = UORBR; //чтение буфера приема UARTO, сброс этим прерывания

return rx_byte;

}

„------------_„---------------------------------------------------------

Файл uart.h

//-----------------------------------------------------------------------:

//Заголовки и определения обслуж модуля UART0

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

tinclude "hardware.h" //подключение специальных заголовков и определений //Объявление функции инициализации модуля UART0 void UART0init(U16);

//Объявление функции передачи байта через UART0 void UART0tx_byte(U8);

//Объявление функции приема байта через UART0 U8 UART0rx_byte();

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

Файл main.c программы обслуживания UART0

//------------------------------_-----------------------------------------

// Основная программа обслуживания UART0

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

#include <iolpc2129.h> // подключение стандартных заголовков и определений tinclude "hardware.h" // подключение специальных заголовков и определений

#include "uart.h" // подключение специальных заголовков и определений

volatile extern U8 flagn_kn0, flagn_knl, flagn_kn2, flagn_kn3;

static U8 j=63; static U8 simw=' //---------------

//адрес в ОЗУ ЖКИ (адрес индикации) //индицируемый на ЖКИ символ

void main(void) {

CPUinit();

_disable_interrupt()

INTERRUPTSinit(); TIMEROinitstart();

_enable_interrupt();

delay(1000000); lcd_init(); delay(lOOOOOO); lcd_clear,Jj) ;

UARTOinit(115200); A_LEDl_OFF; A_LED2_OFF; while(1) {

if (flagn_kn0==l) {

flagn_kn0=0;

j++;

if (j > 79) {

j = 64; lcd_clear() }

simw++;

if (simw > ' z') lcd_pro_data(simw, UARTOtx_byte(simw)

}


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



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