Komunikasi Serial RS232 Mikrokontroler ATMega8535 Dengan Komputer

Just a little share…

Setelah cari referensi dari buku dan browsing, akhirnya saya berhasil juga mencoba dan mempraktekkan sendiri Komunikasi Serial RS232 Mikrokontroler ATMega8535 Dengan Komputer, dan kali ini saya akan sedikit berbagi pengetahuan ringan mengenai contoh komunikasi antara mikrokontroler dengan PC melalui Port Serial, pada contoh yang saya akan jelaskan yaitu menggunakan rangkaian RS232 (IC MAX232 dari Maxim) dengan Mikrokontroler ATMega 8535. Berikut rangkaian skematik yang sudah saya buat.

Komunikasi Serial

Skematik RS232

Pin 15 dan Pin 16 pada gambar maksudnya yaitu pin pada IC Max232 nya. sedangkan untuk JP1, Pin 1 dihubungkan pada PORTD.0 atau RXD, dan Pin2 dihubungkan pada PORTD.1 atau RXD ada mikrokontroler, mikrokontroler yang saya gunakan disini yaitu ATMega8535. kalo udah dibuat rangkaiannya, maka langkah selanjutnya yaitu menghubungkan konektor DB9 ke Port serial komputer, dan jangan lupa, hubungkan juga Supply tegangan sebesar 5 Volt pada vcc, dan Ground pada rangkaian RS232 dengan ground pada mikrokontroler.

Langah selanjutnya yaitu membuat Program yang nantinya akan di masukkan ke mikrokontroler, disini saya ambil contoh dengan menggunakan CodeVisionAVR yang kalo ga salah sich berbasis bahasa C katanya, he..

Pertama, buatkan project baru di CVAVRnya, pada tampilan CodeWizardAVR, pilih chip “ATMega8535“, dan settingan clocknya 11.059200MHz, ini merupakan contoh dari saya, mungkin settingan tersebut dapat disesuaikan dengan Tipe chip dan Crystal yang digunakan masing-masing. kemudian aktifkan fitur Tranceiver dan Receiver pada tab USART, atur settingan USART dengan Baudrate 9600 dan settingan lainnya seperti berikut.

kemudian atur salah satu PORT sebagai output, misalnya PORTA.

nah, kayaknya cukup segitu settingan yang perlu dilakukan untuk mengetest komunikasi antara mikrokontroler dengan komputer, selajutnya di generate dan simpan dengan nama project sesuai keinginan, asal ketiga proses penyimpanan file ketika generate sibeeri nama yang sama.

setelah itu, ketikan :

PORTA=UDR;

pada bagian while(1){

};

sehingga menjadi :

################

while (1)

{ // Place your code here PORTA=UDR; }; }

###############

kemudian, downloadkan program tersebut ke mikrokontroler, pastinya di compile dulu donk…

Hubungkan 7 buah LED pada PORTA(contoh pengaturan port yang saya setting sebagai output adalah PORTA) kalo udah berhasil download, lakukan pengaturan terminal pada CodeVision dengan memilih menu “Setting-Terminal”, lakukan pengaturan baudrate dan Com sesuai dengan pengaturan baudrate pada saat membuat program pada CodeWizardAVR diatas.

disini saya contohkan Com yang saya pilih yaitu Com1, karena pada komputer saya serial port fisiknya memiliki alamat pada COM1.

untuk melihatnya, dapat memaui cara masuk ke “Device Manager ” masing-masing, yaitu pada Menu Grup “PORTS (COM & LPT)”.

kemudian, klik simbol hyper terminal pada Code Vision, (simbol ke 4 di gambar)

dan ketikkan sembarang tombol di keyboard komputer,  jika rangkaian yang dibuat telah benar, maka lampu LED akan menyala secara acak, sesuai tombol yang ditekan pada keyboard (urutan LED yang menyala sesuai bilangan hexa pada tombol keyboard, kata sumber lain sich gitu..).

atau dengan mengetikkan bilangan hexa pada text box “Hex  Code” di terminal CodeVision dan tekan tombol “Send” di sebelahnya.

jika LED pada rangkaian tidak menyala, maka check kembali rangkaian RS232nya, coba juga check kabel menuju DB9 atau Port Serialnya, saya sudah coba buat sendiri rangkaiannya dan berhasil.

Selamat mencoba…

ini code yang di generate dari CodeVisionAVR:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

/***************************************************** This program was produced by the CodeWizardAVR V2.03.9 Standard Automatic Program Generator © Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : Version : Date : 06/05/2012 Author : AY Company : Comments: Chip type : ATmega8535 Program type : Application AVR Core Clock frequency: 11,059200 MHz Memory model : Small External RAM size : 0 Data Stack size : 128 *****************************************************/

#include <mega8535.h>

// Standard Input/Output functions #include <stdio.h>

// Declare your global variables here

void main(void) { // Declare your local variables here

// Input/Output Ports initialization // Port A initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTA=0x00; DDRA=0xFF;

// Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00;

// Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00;

// Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// 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=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;

// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;

while (1) { // Place your code here PORTA=UDR; }; }

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Saya baru belajar mikrokontroler, jadi pastinya banyak kesalahan atau kekurangan dalam tulisan diatas, mohon dikoreksi saja.

Terima kasih telah membaca tulisan Komunikasi Serial RS232 Mikrokontroler ATMega8535 Dengan Komputer.

Semoga bermanfaat, salam…

Leave a Reply

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