Курсовая работа: Проектирование удаленного устройства индикации

unsigned char data; unsigned char tmphead;

data = UDR;

tmphead = ( USART_RxHead + 1 );

USART_RxHead = tmphead; /* СохранитьновыйиндексV

if < tmphead == USART_RxTail )

(

/* Ошибка! Буфферприемникапереполнен */

)

USART_RxBuf[tmphead] = data; /* Сохранитьполученныеданныевбуффере */

}


3.3 Проектированиепроцедурвводаинформации

Вводинформациивразрабатываемоеустройствоосуществляется черезУСАППпопротоколуRS-4 85. Какужеотмечалось, прием данныхвпрограммепроисходитпопрерываниюотУСАПП, обработчик которогопомещаетпринятыйбайтвОуферприемника. Вглавной программе, длятого, чтобыможнобылоанализироватьэтотбуфери читатьданныеуженепосредственноизнего, необходимапроцедура, котораябудетдоставатьданныеизбуфератакимобразом, чтобы первымипоступалибайты, попавшиевбуферраньшевсех. Это делаетпроцедураUSART_Receive(), котораясначалаждет поступленияданныхвбуфер, азатемпоодномубайтудостаетих оттуда.

BYTE USART_Receive( void )

1

unsigned char tmptail;

while ( USARTJixHead == USART_RxTail )

;

tmptail = USART_RxTail + 1; USART_RxTail = tmptail; return USART_RxBuf[tmptail];

f

3.4 Проектированиепроцедурвыводаинформации

ВыводинформациивнашемустройствеосуществляетсянаLCD-дисплей. Основнойпроцедурой, котораяотображаетстроки поступившихданныхнадисплее - этопроцедураAutoWriteMode(), котораяпосутиуправляетдисплеем, выводянанего последовательносимволы, хранящиесявглобальноммассиве OutString[], врежимеавтозаписи, Приэтомнамнеобходимотолько менятьадреспозиции, вкоторуювыводятсяданные.

WORD AutoWriteMode(WORD Address, BYTE NumBytes)

{

SetAddressPointer(Address); SendCommanct{SET_DATA_AUTO_HRITE_COMMAND);

forfint i = 0; i < NumBytes; i++) {

AutoWrite(OutString[i]);

Address++; }

SendCommand(AUTO_RESET_COMMAND); return Address; }

3.5 Проектирование процедур управления периферийными устройствами

К-во Просмотров: 425
Бесплатно скачать Курсовая работа: Проектирование удаленного устройства индикации