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