Jumat, 02 Maret 2012

Contoh Program Komunikasi Serial dengan BASCOM AVR

Mungkin komunikasi serial sudah tidak asing lagi di telinga yang sudah hobi bermain mikrokontroler, dimana prinsip dari komunikasi serial yaitu dimana komunikasi ini pengiriman data dilakukan per bit, data dikirim dengan bentuk pulsa listrik kontinyu yang disebut bit. Data dikirim satu bit demi satu bit secara berurutan melalui kanal komunikasi yang telah ditentukan. Sehingga jika dicermati, komunikasi serial lebih lambat dibandingkan komunikasi paralel yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh komunikasi serial ialah mouse, scanner, system akuisisi data yang terhubung ke port COM1/COM2, dan masih banyak lagi termasuk mikrokontroler.


Didalam mikrokontroler, untuk dapat berkomunikasi serial dengan PC, membutuhkan suatu konverter yang biasa kita kenal RS232, dan jika ingin mengetahui sejenak tentang RS232 ini, bisa kembali membaca pada postingan yang lalu tentang Rangkaian RS232. Selain RS232 tersebut karena penggunaannya masuk ke port serial, ada juga beberapa device yang menggunakan port USB dengan sebuah device yang biasa kita kenal USB to Serial TTL Converter. Jika dalam berkomunikasi serial ingin melalui port USB untuk konverter tersebut, Anda bisa membaca postingan saya tentang Cara Membuat USB to Serial TTL Converter untuk piranti pendukung dalam berkomunikasi serial ini.


Karena saya sudah pernah memposting tentang RS232 dan USB to Serial TTL Converter, sehingga tidak perlu lagi saya membahas mengenai hal tersebut. Disini, ada sebuah contoh pemrograman komunikasi serial mikrokontroler atmega32 dengan BASCOM AVR. Dimana dalam program ini, hanya membaca penekanan tombol pada hypeterminal dengan menampilkannya di LCD 16x2. Dalam pemrograman ini hanya membaca penekakan tombol A dan B saja, jika mikrokontroler mendapatkan input data A, maka akan menampilkannya di layar LCD tersebut. Untuk source code tersebut ada dibawah ini :


 
Komunikasi Serial ATMEGA32 dengan BASCOM AVR :

$regfile = "m32def.dat"
$crystal = 12000000
$baud = 9600

Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcdbus = 4
Config Lcd = 16 * 2
Cursor Off
Cls

Dim Tombol As Byte

Terima_data:
Do 

Tombol = Inkey()
Select Case Tombol
  Case "A" :
   Cursor Off
   Locate 1 , 1
   Lcd "Tes Serial"
   Locate 2 , 1
   Lcd "Tombol A ditekan"
  Case "B" :
   Cursor Off
   Locate 1 , 1
   Lcd "Tes Serial"
   Locate 2 , 1
   Lcd "Tombol B ditekan"
  End Select
Loop

Mudah bukan?

Untuk komunikasi serial tidak jauh berbeda dengan program biasa, hanya ada sedikit tambahan, yaitu untuk kecepatan baudrate ($baud), penekanan tombol (Inkey() atau Waitkey()), dan dapat mengirim kembali penekanan tombol (Print).


 
Membutuhkan USB to Serial TTL Converter (USB langsung ke RX,TX, GND mikrokontroler)?

Klik tab di atas berlabel "Produk"




Artikel Terkait Lainnya :


5 comments:

$regfile = "m32def.dat"
$crystal = 12000000
$baud = 9600

di proteus kq g' jalan ya, tpi lw crystal diganti 8000000 kq isa jalan,. Apa masalahnya ya...??

8000000 berarti memakai fasilitas crystal internal mas :)

mohon bantuannya mas.

saya mau bikin program dengan 1 buah input berupa tombol atau push button dengan satu buah output misal led .
untuk menyalakan led tersebut push button harus ditekan 2 x ,

bagaimana programnya ,mohon bantuannya.?

pakai bahasa apa ya mas? basic kah? dan mikro apa ya?

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites