اطلاعیه

Collapse
No announcement yet.

ارتباط wireless با ای سی های HMR433 , HMT433 و atmega8

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ارتباط wireless با ای سی های HMR433 , HMT433 و atmega8

    سلام

    میکروهای فرستنده و گیرنده را باید چطور برنامه نویسی کنم تا اطلاعات درستی دریافت کنم ؟ چون هر برنامه ای می نویسم همش قاطی پاتی نشون میده رو ال سی دی و.

    چیکار باید بکنم که این نویز مویز تو کار مدار تاثیر نذاره ؟


    ممنون
    ده روز مهر گردون افسانه است و افسون نيکي بجاي ياران فرصت شمار يارا

    آسايش دو گيتي تفسير اين دو حرفست با دوستان مروت با دشمنان مدارا

    #2
    پاسخ : ارتباط wireless با ای سی های HMR433 , HMT433 و atmega8

    برنامه های فرستنده و گیرنده رو می ذارم ، اگه می شه ببینید کجاش مشکل داره : ( قراره که فرستنده دو تا عدد بفرسته و گیرنده با دریافت هر کردم از اونا یه عبارتی رو ال سی دی نشون بده و اگه هیچ کدوم نبودند ERROR نشون بده .

    برنامه فرستنده :

    #include <mega8.h>
    #include <delay.h>

    #define SYNC 0xAA
    #define LEDON 0x11
    #define LEDOFF 0x22

    void USART_Send(int data);
    void SEND_Packet(int pack);

    void main(void)
    {

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: Off
    // USART Transmitter: On
    // USART Mode: Asynchronous
    // USART Baud Rate: 1200
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    UBRRH=0x01;
    UBRRL=0xA0;

    delay_ms(1000);

    while(1)
    {
    SEND_Packet(LEDON);
    delay_ms(1000);
    SEND_Packet(LEDOFF);
    delay_ms(1000);
    }
    }

    void SEND_Packet(int pack)
    {
    USART_Send(SYNC);
    USART_Send(pack);
    }

    void USART_Send(int data)
    {
    while (UCSRA==0);
    UDR=data;
    }

    برنامه گیرنده

    #include <mega8.h>
    #include <delay.h>
    #include <lcd.h>

    #define SYNC 0xAA
    #define LEDON 0x11
    #define LEDOFF 0x22;

    #asm
    .equ __lcd_port=0x18 ;PORTB
    #endasm

    char on[]="LEDON";
    char off[]="LEDOFF";
    char er[]="ERROR";
    int synch,cmd,i=1;

    // USART Receiver interrupt service routine
    interrupt [USART_RXC] void usart_rx_isr(void)
    {

    if(i==1)
    {synch=UDR;i=0;}
    else
    { i=1;
    cmd=UDR;
    if(synch==SYNC)
    { if(cmd==LEDON)
    lcd_puts(on);

    else
    lcd_puts(er);
    }
    }
    }



    void main(void)
    {

    // USART initialization
    // Communication Parameters: 8 Data, 1 Stop, No Parity
    // USART Receiver: On
    // USART Transmitter: Off
    // USART Mode: Asynchronous
    // USART Baud Rate: 1200
    UCSRA=0x00;
    UCSRB=0x90;
    UCSRC=0x86;
    UBRRH=0x01;
    UBRRL=0xA0;

    lcd_init(16);
    lcd_clear();

    while(1);
    }

    ده روز مهر گردون افسانه است و افسون نيکي بجاي ياران فرصت شمار يارا

    آسايش دو گيتي تفسير اين دو حرفست با دوستان مروت با دشمنان مدارا

    دیدگاه

    لطفا صبر کنید...
    X