- Підтримка мультізадатчіков шини;
- Швидкість пердачи даних до 400 кГц;
- Повністю програмований адресу на шині.
В
Малюнок 10. - Мікроконтролер ATMega8
Приймач (LPT-порт) представлений у вигляді роз'єму (рис. 11), який безпосередньо підключається до LPT-порту веденого пристрою. br/>В
Малюнок 11. - Зовнішній вигляд LPT-порту (DB-25)
Адаптер паралельного інтерфейсу являє собою набір регістрів, розташованих в просторі введення/виводу. Регістри порту адресуються щодо базової адреси порту, стандартними значеннями якого є 386h, 378h і 278h. Порт має зовнішню 8-бітну шину даних, 5-бітну шину сигналів стану і 4-бітну шину керуючих сигналів. br/>
4. Проектування програмного забезпечення
Код програми для мікроконтролера ATMega8 представлений у вигляді лістингу (з коментарями), який описаний нижче.
Лістинг програми:
/***************************************** ************ program was produced by theV1.25.9 Professional
type: ATmega8type: Applicationfrequency: 8,000000 MHzmodel: SmallSRAM size: 0Stack size: 256
****************************************** ***********/
# include /* Підключаються бібліотеки */
# include
# define RXB8 1/* Введені константи */
# define TXB8 0
# define UPE 2
# define OVR 3
# define FE 4
# define UDRE 5
# define RXC 7
# define FRAMING_ERROR (1 <
# define PARITY_ERROR (1 <
# define DATA_OVERRUN (1 <
# define DATA_REGISTER_EMPTY (1 <
# define RX_COMPLETE (1 <
// USART Receiver buffer
# define RX_BUFFER_SIZE 64/* Константа, визначальна розмін буфера приймача УСАПП */rx_buffer [RX_BUFFER_SIZE];/* Глобальна змінна */
# if RX_BUFFER_SIZE <256/* Вибирається тип змінних залежно від розміру буфера */char rx_wr_index, rx_rd_index, rx_counter;
# elseint rx_wr_index, rx_rd_index, rx_counter;
# endif
// This flag is set on USART Receiver buffer overflow rx_buffer_overflow;
// USART Receiver interrupt service routine [USART_RXC] void usart_rx_isr (void)/* Прийому даних на УСАПП */
{status, data; = UCSRA; ...