#include "iom8v.h"
void uart_init(void) {
UCSRA = 0x02;
UCSRB = 0x18;
UCSRC = 0x06;
UBRRH = 0x00;
UBRRL = 0x19;
DDRD |= (1 << PD2);
PORTD &= ~(1 << PD2);
}
void uart_transmit(unsigned char i)
{
PORTD |= (1 << PD2);
UDR = i;
while (!(UCSRA & (1<<TXC)));
UCSRA |= (1 << TXC);
}
unsigned char uart_receive( void )
{
delayms();
PORTD &= ~(1 << PD2);
while (!(UCSRA & (1<<RXC)));
return UDR;
}
void delayms(void)
{
unsigned int i=0;
for (i=0;i<20;i++)
{
unsigned int i;
for (i=0;i<1140;i++);
}
}
void io_init(void) {
DDRB = 0xFF;
PORTB = 0xFF;
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0xE0;
PORTD = 0x1F;
}
void main(void) {
unsigned int temp = 0;
io_init();
uart_init();
while (1) {
temp = uart_receive();
PORTD = ~temp;
uart_transmit(temp);
}
}