Смекни!
smekni.com

Система съема данных с оптопар (стр. 2 из 2)

//! enable and initialize the uart

void uart0Init(uint16_t baud, uint8_t mode, uint8_t fifomode)

{

// set port pins for UART0

PINSEL0 = (PINSEL0 & ~U0_PINMASK) | U0_PINSEL;

U0IER = 0x00; // disable all interrupts

U0IIR; // clear interrupt ID

U0RBR; // clear receive register

U0LSR; // clear line status register

// set the baudrate

U0LCR = ULCR_DLAB_ENABLE; // select divisor latches

U0DLL = (uint8_t)baud; // set for baud low byte

U0DLM = (uint8_t)(baud >> 8); // set for baud high byte

// set the number of characters and other

// user specified operating parameters

U0LCR = (mode & ~ULCR_DLAB_ENABLE);

U0FCR = fifomode;

}

int uart0SendByte(int data)

{

while(!(U0LSR & ULSR_THRE)) // wait for TX buffer to empty

continue; // also either WDOG() or swap()

U0THR = (uint8_t)data;

return (uint8_t)data;

}

int uart0GetByte(void)

{

if(U0LSR & ULSR_RDR) // check if character is available

return U0RBR; // return character

return -1;

}

void uart1Init(uint16_t baud, uint8_t mode, uint8_t fifomode)

{

// set port pins for UART1

PINSEL0 = (PINSEL0 & ~U1_PINMASK) | U1_PINSEL;

U1IER = 0x00; // disable all interrupts

U1IIR; // clear interrupt ID

U1RBR; // clear receive register

U1LSR; // clear line status register

// set the baudrate

U1LCR = ULCR_DLAB_ENABLE; // select divisor latches

U1DLL = (uint8_t)baud; // set for baud low byte

U1DLM = (uint8_t)(baud >> 8); // set for baud high byte

// set the number of characters and other

// user specified operating parameters

U1LCR = (mode & ~ULCR_DLAB_ENABLE);

U1FCR = fifomode;

}

int uart1SendByte(int data)

{

while(!(U1LSR & ULSR_THRE)) // wait for TX buffer to empty

continue; // also either WDOG() or swap()

U1THR = (uint8_t)data;

return (uint8_t)data;

}

int uart1GetByte(void)

{

if(U1LSR & ULSR_RDR) // check if character is available

return U1RBR; // return character

return -1;

}


5 Рекомендации по разработке программных и аппаратных диагностических средств для проверки работоспособности устройства

Для диагностики работоспособности данного устройства можно использовать как аппаратные, так и программные средства. Данные средства должны иметь возможность производить отладку с помощью модуля Trace Macrocell.

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


Заключение

В данном курсовом проекте было разработано устройство считывания данных с оптопар и передачи данных по RS485. Встроены часы реального времени позволяют ставить временные метки для измеренных данных.

Использование внешнего кварцевого генератора обеспечивает высокую стабильность измерения временных интервалов поступающих от оптопары.

В ходе проектирования устройства были рассмотрены основные принципы построения устройств на микроконтроллерах LPC2000 от Philips. А так же изучены аппаратные возможности данных микроконтроллеров.

Научились по описаниям работы или временным диаграммам функционирования устройств составлять алгоритмы тех или иных блоков программ.

В целом по разработанному курсовому проекту можно заметить, что использование микроконтроллеров LPC2000 позволяет строить недорогие и производительные микроконтроллерные системы не использую внешнее периферийное оборудование (аналоговый компаратор, аппаратный тайме и др.).