با سلام
من می خواهم بین دو میکرو با یوزارت ارتباط برقرار کنم به صورتی که فرستنده مقدار پورت a را برای گیرنده بفرستد و گیرنده هم اون را در پورت b نشان دهد
برنامه خیلی ساده است در پروتئوس هم خوب جواب میده ولی روی برد مشکل داره
بوادریت را هم یکسان تعریف کردم
فرکانس اسیلاتور داخلی 8 مگ هست
گیرنده
من می خواهم بین دو میکرو با یوزارت ارتباط برقرار کنم به صورتی که فرستنده مقدار پورت a را برای گیرنده بفرستد و گیرنده هم اون را در پورت b نشان دهد
برنامه خیلی ساده است در پروتئوس هم خوب جواب میده ولی روی برد مشکل داره
بوادریت را هم یکسان تعریف کردم
فرکانس اسیلاتور داخلی 8 مگ هست
کد:
#include <avr/io.h> #include <util/delay.h> void usart_init (void) { UBRRH =0; UCSRB = (1<<TXEN); UCSRC = (1<<UCSZ1)|(1<<UCSZ0)|(1<<URSEL); UBRRL = 0x33; } void usart_send (unsigned char ch) { while ( (UCSRA & (1<<TXC))); UDR = ch; } int main(void) { _delay_ms(500); unsigned char i; DDRB=0x00; DDRD=(1<<1); PORTD=(1<<1); PORTB=0xFF; usart_init(); while(1) { usart_send(i); i=PINB; } return 0; }
گیرنده
کد:
#include <avr/io.h> #include <util/delay.h> int main(void) { _delay_ms(500); DDRB = 0xFF; UBRRH =0; UCSRB =(1<<RXEN); UCSRC = (1<<UCSZ1)|(1<<UCSZ0)|(1<<URSEL); PORTD=(1<<0); UBRRL =0x33; while(1){ while (!(UCSRA & (1<<RXC))); PORTB = UDR; } return 0; }
دیدگاه