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;

}

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. saran saya lebih baik menggunakan AVR. kalau tetap menggunakan AT89S silahkan anda coba belajar dgn simulator uvi51, disitu banyak contoh2nya termasuk serial komunikasi. di sini: https://pccontrol.wordpress.com/2011/05/20/belajar-microcontroller-dengan-simulator/

  4. 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…

  5. 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 .

  6. 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

  7. 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 :-)

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

  9. Fachrul Budi Permana

    ok mas, sy tunggu yah

  10. ok , minta tolong simpan di 4share ya , biar yg lain bisa liat juga :-)

  11. Fachrul Budi Permana

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

    Tolong Mas yah

  12. 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.

  13. 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

  14. kurang kurung tutup } sebelum void cek_perintah()
    program lengkapnya sudah saya kirim ke email mas Wawan

  15. 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

Leave a reply to pccontrol