Solar Home System,,Renewable Enrgy for Better life - KARYA PENS UNTUK BANGSA

Jumat, 13 September 2013

Program Komunikasi Serial

CONTOH PROGRAM MIKROKONTROLLER KOMUNIKASI SERIAL DENGAN 2 ATMEGA 128

Keterangan Push Button :
Ø  PB1 untuk motor gerak CW
Ø  PB2 untuk motor gerak CCW
Ø  PB3 untuk stop
TRANSMITTER DENGAN RECIEVER if
·         TRANSMITTER :
#include <mega128.h>
#include <stdio.h>
#define CW PINA.0
#define CCW  PINA.3
#define STOP PINA.6
#define ON 1

void main(void)
{         
PORTA=0x00;
DDRA=0x00;
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: Off
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 9600
UCSR0A=0x00;
UCSR0B=0x08;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;

while (ON)
      {
        if(CW==ON)
        { putchar('1');putchar(13);}
        if(CCW==ON)
        { putchar('2');putchar(13);}
        if(STOP==ON)
        {putchar('3');putchar(13);}
      };
}

·         RECIEVER : 
#include <mega128.h>
#include <stdio.h>
#define CW PORTA.0
#define CCW PORTA.2
#define  ON 1
#define OFF 0
void main(void)
{
PORTA=0x00;
DDRA=0xff;
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: Off
// USART0 Mode: Asynchronous
// USART0 Baud rate: 9600
UCSR0A=0x00;
UCSR0B=0x10;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;
while (ON)
      {
        a=getchar();
        if(a=='1')
        {CW=ON;CCW=OFF;}
        if(a=='2')
        {CW=OFF;CCW=ON; }
        if(a=='3')
        {CW=OFF;CCW=OFF;}
      };
}
TRANSMITTER DENGAN RECIEVER SWITCH CASE
·         TRANSMITTER :
#include <mega128.h>
#include <stdio.h>
#define CW PINA.0
#define CCW  PINA.3
#define STOP PINA.6
#define ON 1

void main(void)
{         
PORTA=0x00;
DDRA=0x00;
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: Off
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 9600
UCSR0A=0x00;
UCSR0B=0x08;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;

while (ON)
      {
        if(CW==ON)
        { putchar('1');putchar(13);}
        if(CCW==ON)
        { putchar('2');putchar(13);}
        if(STOP==ON)
        {putchar('3');putchar(13);}
      };
}

·         RECIEVER : 
#include <mega128.h>
#include <stdio.h>
#define CW PORTA.0
#define CCW PORTA.2
#define  ON 1
#define OFF 0
void main(void)
{
int a;
PORTA=0x00;
DDRA=0xff;
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: Off
// USART0 Mode: Asynchronous
// USART0 Baud Rate: 9600

UCSR0A=0x00;
UCSR0B=0x10;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;
while (ON)
      {
        a=getchar();
        switch(a)
             {
            case'1':CW=ON;CCW=OFF;break;
             case'2':CW=OFF;CCW=ON;break;
             case'3':CW=OFF;CCW=OFF;break;
      };
}

0 komentar:

Posting Komentar