www.andyluv_xxx

New Member
Mình đang làm bài tập liên quan tới giao tiếp nối tiếp giữa vi điều khiển AVR với máy tính.


các bạn có ai thông thạo vấn đề này thì giúp mình với.


Mình dã viết đi viết lại rùi mà nó vẫn không chạy, chẳng hiểu tại sao cả.


các bạn xem đoạn code này hộ mình xem có sai chỗ nào không thì bảo mình nhé.


Thanks!!!!!!
HTML Code: #include
#ifndef RXB8
#define RXB8 1
#endif
#ifndef TXB8
#define TXB8 0
#endif
#ifndef UPE
#define UPE 2
#endif
#ifndef DOR
#define DOR 3
#endif
#ifndef FE
#define FE 4
#endif
#ifndef UDRE
#define UDRE 5
#endif
#ifndef RXC
#define RXC 7
#endif

//Khai bao bien
unsigned char temp;


// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char data;
data=UDR;
if(data=13)
{
PORTB=data;
}
}


char uart_rx()
{//Nhan mot byte
while(UCSRA.7==0)
{};
return UDR;
}

// Standard Input/Output functions

// Declare your global variables here

void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xff;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0xFE;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
temp=uart_rx();
PORTA=temp;
}
}

 

Các chủ đề có liên quan khác

Top