Contoh Code untuk Komunikasi Serial (Rs232) Atmega8535

#include <mega8535.h>

#include <delay.h>

#include <stdio.h>

#include <lcd.h>

#include <string.h>

char rx_buffer[16];

unsigned char ir,ada_data;

void cek_perintah();

char *cmds[] = {“ON0”, “ON1”, “ON2″,”ON3″}; //artinya cmds[0]=”0N0″, cmds[1]=”ON1” dst…

#define ON0 0

#define ON1 1

#define ON2 2

#define ON3 3

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm

// USART Receiver interrupt service routine

interrupt [USART_RXC] void usart_rx_isr(void)

{

char r_char;

r_char=UDR;

rx_buffer[ir] = r_char;

if (ir++ == 8 .) //

{

rx_buffer[ir]=0x00;

ir=0;

}

cek_perintah();

ada_data=1; //indikator status aza

}

//========================int usart============================================

// Declare your global variables here

void main(void){

// 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=0x98;

UCSRC=0x86;

UBRRH=0x00;

UBRRL=0x4D;

// LCD module initializationlcd_init(16);

lcd_gotoxy(0,0);

lcd_putsf(“komunikasi”);

// Global enable interrupts

#asm(“sei”)

while (1)

{

ir=0;

//======================================

if (ada_data == 1) cek_perintah();

//===========================================

//tampilkan data yg diterima di LCD

lcd_gotoxy(0,0);

lcd_puts(rx_buffer);

}

}  //ralat tambahan.

void cek_perintah() {

int i; char cmd; char cmdStr[50];

strcpy(cmdStr, rx_buffer);

// BANDINGKAN perintah yg diterima (cmdstr) dengan array cmds[]

cmd = -1;

for (i = 0; i < 4; i++)

{ if (!strcmp(cmdStr, cmds[i]))

{ cmd = i;

break;

}

}

switch(cmd) {

case ON0:

lcd_gotoxy(0,1);

lcd_putsf(“LAMPU 0 ON”);

delay_ms(10);

break;

case ON1:

lcd_gotoxy(0,1);

lcd_putsf(“LAMPU 1 ON”);

delay_ms(10);

break;

case ON2:

lcd_gotoxy(0,1);

lcd_putsf(“LAMPU 2 ON”);

delay_ms(10);

break;

case ON3:

lcd_gotoxy(0,1);

lcd_putsf(“LAMPU 3 ON”);

delay_ms(10);

break;

}

ada_data=0;

}

Advertisements

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis untuk pemula.

Posted on 01/06/2011, in Contoh-contoh Aplikasi. Bookmark the permalink. 15 Comments.

  1. mas saya juga coba saat saya hilangkan tanda bintang sebelum cmds eror tadinya 25 jadi 1 tapi tetep aja erornya itu jg knp y?

  2. mas kalo koneksikan dengan matllab atau sms ada yang mudah buat belajar g

  3. Mas..saya masih pemula nih…mau nanya dong…..Contoh Code untuk Komunikasi Serial (Rs232) menggunakan AT89S.. gimn ya..??….klu boleh c contoh programnya menggunakan assembler aja…??….buat belajar…

  4. mas boleh minta tolong ga??
    kalo komunikasi buat ATmega 16 codingnya gmna ya mas..??
    tolong ya mas buat tugas akhir nihh
    hehe

    email saya muhamadandriyansyah@ymail.com
    terimakasih buat bantuannya mas

    • semua coding keluarga atmega sama,
      apalagi (khususnya) coding untuk atmega8535 , atmega16 dan atmega32 alamat portnya sama ,jumlah pin nya sama, arsitekturnya sama . cuma beda kapasitas memory .

  5. boleh minta program lengkapnya ndak mas, tolong kirim ke email say dunk zays_03@yahoo.co.id
    ..buat belajar nih :) trims ya

    • sy ga nyimpan , maklum windoes sy sering di format karena sering kena virus. tapi itu mudah kok. coba aja dibuat dulu bertahap , yg ga ngerti tanya lagi :-)

  6. Fachrul Budi Permana

    ok mas, sy tunggu yah

  7. Fachrul Budi Permana

    Mas bisa tolong kirim prograram lengkapnya ke email sy mas budhye@gmail.com

    Tolong Mas yah

  8. Udah tak coba and berhasil write to microcontroller, tapi hasilnya tidak muncul tulisan lampu ON dan , setelah aku coba kirim commmand ON1 ke micronya tampilan di LCD cuman diem aja nggak ada perubahan cuman huruf paling depan hilang satu character, untuk mengirim commandnnya aku pake program yang ada di blog ini juga yang pake C#, kenapa ya

    • saran saya: lakukan dgn bertahap.
      buat program yg sederhana dulu untuk mengecek fungsi LCD dan komunikasi , untuk memastikan fungsi komunikasi & display berjalan. kalau sudah bisa berjalan kembangkan program tsb sedikit demi sedikit sambil ditest di rangkaian dgn mengikuti contoh dari blog ini.

  9. Saya udah coba coding nya tapi ada error “must declare first in block” untuk coding yang “void cek_perintah() {” padahal kalau tak lihat semua nya udah bener, bagaimana cara perbaikinya ya ?

    please reply

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: