Blog Fisika Inovatif SMA Doro Pekalongan merupakan wadah untuk memberikan bimbingan online kepada siswa-siswi maupun khalayak umum yang masih awam baik bimbingan konsep fisika murni maupun fisika terapan untuk mendalami inovasi Fisika khususnya di bidang Elektronika Digital Otomasi dan Robotika tingkat dasar untuk dikembangkan di dunia masing-masing....


Friday, 29 March 2013

Serial Interface Atmega16 Via PC Dengan Visual Basic

Agar dapat mengontrol Peralatan Rumah Tangga Maupun yang lain Diperlukan Program interface yang dapat berkomunikasi antara PC/Laktop dengan mikrokontroler. Berikut ini hasil desain program visual basic yang saya rancang untuk mengetahui nilai dari ADC0-ADC7 dan mengatur nyala mati LED dari PA.1 - PD.7 (28 pin Port. Program ini juga memberi informasi ke PC lewat serial komunikasi kondisi masing-masing PortA hingga PortD. Nilai ADC0-ADC7 disertai animasi shape yang menyatakan nilai prosentase dari ADC
 
 
Gambar tampilan program Serial Interface Visual Basic




Fungsi String Visual Basic



Dalam Visual Basic terdapat banyak fungsi yang digunakan untuk mengolah data bertipe string. Berikut ini adalah penjelasan tentang fungsi-fungsi string yang sering digunakan.
  • LCase(x) , digunakan untuk mengubah semua huruf dalam string x menjadi kecil semua. Contoh:
    s = LCase("Aku Bisa") , maka nilai s adalah "aku bisa"

  • UCase(x) , digunakan untuk mengubah semua huruf dalam string x menjadi besar semua. Contoh:
    s = LCase("Aku Bisa") , maka nilai s adalah "AKU BISA"

  • Left(x,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari kiri sebanyak n. Contoh:
    VB 6.0, s = Left("Aku Bisa", 3)
    VB .NET, s = Strings.Left("Aku Bisa", 3)
    maka nilai s adalah "Aku"

  • Right(x,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari kanan sebanyak n. Contoh:
    VB 6.0, s = Right("Aku Bisa", 3)
    VB .NET, s = Strings.Right("Aku Bisa", 3)
    maka nilai s adalah "isa"

  • Mid(x,m,n) , digunakan untuk mengambil karakter dari string x yang dimulai dari karakter ke m sebanyak n. Contoh:
    s = Mid("Aku Bisa", 2, 2) , maka nilai s adalah "ku"

  • LTrim(x) , digunakan untuk menghapus karakter spasi di bagian kiri dari string x.
    Contoh: s = LTrim("     Aku Bisa     ") , maka nilai s adalah "Aku Bisa     "

  • RTrim(x) , digunakan untuk menghapus karakter spasi di bagian kanan dari string x.
    Contoh: s = RTrim("     Aku Bisa     ") , maka nilai s adalah "     Aku Bisa"

  • Trim(x) , digunakan untuk menghapus karakter spasi di bagian kiri dan kanan dari string x. Contoh:
    s = Trim("     Aku Bisa     ") , maka nilai s adalah "Aku Bisa"

  • Len(x) , digunakan untuk menghitung jumlah karakter dari string x. Contoh:
    s = Len("Aku Bisa") , maka nilai s adalah 8.

  • String(n,x) , digunakan untuk membuat karakter x sebanyak n. Contoh:
    VB 6.0,  s = String(10, "A")
    VB .NET, s = New String("A", 10)
    maka nilai s adalah "AAAAAAAAAA"

  • Space(n) , digunakan untuk membuat karakter spasi sebanyak n. Contoh:
    s = Space(10) , maka nilai s adalah "          "

  • Asc(x) , digunakan untuk mengetahui nilai ASCII dari karakter x. Contoh:
    s = Asc("A") , maka nilai s adalah 65

  • Chr(x) , digunakan untuk mengetahui karakter dari nilai ASCII x. Contoh:
    s = Chr(65) , maka nilai s adalah "A"

  • InStr(x,n) , digunakan untuk mengetahui posisi karakter n didalam string x. Contoh:
    s = InStr("Aku Bisa", "u") , maka nilai s adalah 3

  • StrComp(x,y,n) , digunakan untuk membandingkan string x dan string y berdasarkan n. Jika n bernilai 0 maka akan dibandingkan secara case-sensitive, sedangkan jika n bernilai 1 maka akan dibandingkan secara biasa. Contoh:
    s = StrComp("Aku", "aku", 0) , maka nilai s adalah -1
    s = StrComp("Aku", "aku", 1) , maka nilai s adalah 0
    Khusus untuk fungsi ini, jika menghasilkan nilai 0 maka dianggap sebagai True, dan jika menghasilkan nilai selain 0 maka dianggap False.

  • StrConv(x,n) , digunakan untuk mengubah huruf dalam string x berdasarkan nilai n. Contoh:
    s = StrConv("Aku Bisa", 1) , maka nilai s adalah "AKU BISA"
    s = StrConv("Aku Bisa", 2) , maka nilai s adalah "aku bisa"
    s = StrConv("aku bisa", 3) , maka nilai s adalah "Aku Bisa"

  • StrReverse(x) , digunakan untuk membalikkan posisi huruf dalam string x. Contoh:
    s = StrReverse("Aku Bisa") , maka nilai s adalah "asiB ukA"

  • Replace(x,m,n) , digunakan untuk menggantikan karakter m dalam string x dengan karakter n. Contoh:
    s = Replace("Kamu Juga Bisa", "a", "o") , maka nilai s adalah "Komu Jugo Biso"

  • Split(x,n)(i) , digunakan untuk memecah string x berdasarkan karakter n dengan penomoran i. Contoh:
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(0) , maka nilai s adalah "Kuda"
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(1) , maka nilai s adalah "Kerbau"
    s = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")(4) , maka nilai s adalah "Macan"

  • Join(x,n) , digunakan untuk menggabungkan rangkain string x yang dihubungkan dengan string n. Contoh:
    VB6, s = Join(Array("Hani", "Indah", "Budi", "Herman"), " & ")
    VB.NET, s = Join(New Object() {"Hani", "Indah", "Budi", "Herman"}, " & ")
    maka nilai s adalah "Hani & Indah & Budi & Herman"



Fungsi-fungsi diatas juga dapat djadikan fungsi lain diantaranya adalah :
  1. Mengecek keberadaan string dalam string. Misalnya Anda ingin memeriksa ada tidaknya string "a" dalam string "anda berhasil", maka kodenya adalah :
    If CBool(InStr("anda berhasil", "a")) Then
    'jika ada
    Else
    'jika tidak ada
    End If
  2. Menghitung karakter tertentu dalam string. Misalnya Anda ingin menghitung karakter "a" dalam string "anda berhasil", maka kodenya adalah :
    t = "anda berhasil"
    s = Len(t) - Len(Replace(t, "a", ""))
    maka nilai s adalah 3

  3. Menghitung jumlah kata dalam string. Misalnya Anda ingin menghitung jumlah kata dalam string "anda berhasil", maka kodenya adalah :
    s = UBound(Split("anda berhasil", " ")) + 1
    maka nilai s adalah 2

  4. Menghilangkan karakter tertentu dalam string. Misalnya Anda ingin menghilangkan karakter "a" dalam string "anda berhasil", maka kodenya adalah :
    s = Replace("anda berhasil", "a", "")
    maka nilai s adalah "nd berhsil"

  5. Mengisi variabel array dinamis dengan string. Contoh kodenya sebagai berikut :
    Dim Binatang() As String
    Binatang = Split("Kuda,Kerbau,Sapi,Kambing,Macan", ",")
    maka variabel Binatang memiliki 5 index (0-4) dengan rincian:
    nilai Binatang(0) = "Kuda"
    nilai Binatang(1) = "Kerbau"
    nilai Binatang(2) = "Sapi"
    nilai Binatang(3) = "Kambing"
    nilai Binatang(4) = "Macan"

Sunday, 10 March 2013

Modul Proteus77


Proteus professional 7.7 merupakan kelompok software elektronik yang digunakan untuk membantu para desainer dalam merancang dan mensimulasikan suatu rangkaian elektronik. Software ini memiliki dua fungsi sekaligus dalam satu paket, paket satu sebagai software untuk menggambar skematik dan dapat disimulasikan yang diberi nama ISIS. Paket kedua digunakan sebagai merancang gambar Printed Circuits Board (PCB) yang diberi nama ARES. Secara langsung, pengubahan dari skematik ke PCB dapat dilakukan dalam software Proteus Prof 7.7 ini. Proteus Prof ISIS memiliki versi yang selalu diperbarui, mulai dari versi 7.0 sampai dengan 7.10. Setiap kenaikan versi memiliki penambahan akan library komponen yang dapat diambil dan digunakan dalam penggambaran atau perancangan. Sebagai perancang rangkaian elektronik terlebih dahulu menggunakan ISIS sebagai media yang memudahkan dalam peranangan dan simulasi. Banyaknya library dari Proteus Prof. 7.7 ISIS membuat software ini dikatakan software simulasi lengkap, yaitu dari komponen-komponen pasif, Analog, Trasistor, SCR, FET, jenis button/tombol, jenis saklar/relay, IC digital, IC penguat, IC programmable (mikrokontroller) dan IC memory. Selain didukung dengan kelengkapan komponen, juga didukung dengan kelengkapan alat ukur seperti Voltmeter, Ampere meter, Oscilloscope, Signal Analyzers, serta pembangkit Frekuensi. Kelengkapan fitur yang disediakan ini menjadikan Proteus Prof. 7.7 ISIS menjadi salah satu software simulasi elektronik terbaik.

Setelah  program proteus terisntall bukalah dengan mengklik icon isis, kemudian akan tampil seperti pada gambar dibawah ini:


Klik huruf (P) yang merupakan  “Pick device” untuk mengambil komponen apa saja yang dibutuhkan:


Nah disini tempat untuk mengambil komponen yang dibutuhkan dalam perancangan simulasi…
Caranya sangat mudah tinggal menulis komponen yang kita butuhkan pada list keyword… sebagai contoh kita ingin merancang mikrokontroler Atmega16 dengan LED
List komponen yang dibutukan…
  • mikrokontroler Atmega16  ketik saja keywordnya dengan “Atmega16” maka komponen ATmega16 akan diload dan siap digunakan..lalu klik ok.
  • sama halnya dengan cara mengambil komponen mikro…untuk mengambil LED kita juga hanya dengan cara menuliskan keywordnya dengan “LED” .
catatan : untuk kasus simulasi komponen yang kita reload adalah library dengan  kondisi “active” agar saat disimulasikan seolah-olah LED tersebut mengeluarkan cahaya  sesuai dengan warna led yang kita gunakan….
ini hasil reload komponen….

Setalah itu kita tinggal rancang susunan komponen, seperti gambar berikut :


 Catatan: untuk rancangan cristal mikro dan rangkaian reset mikro gak perlu dirancang lagi (tinggal diinputkan saja) dan pencatuan mikro juga begitu.. secara default  vcc dan ground mikro telah terdefinisikan oleh software proteus ini… sebagai contoh pada rancagaan LED disusun  dengan kondisi common anode dimana anode led terhubung oleh vcc, label vcc tersebut haruslah kita buat sendiri dengan cara  klik pada “wire label” lalu isi label dengan “vcc”, begitu juga sebaliknya untuk membuat grounding… dgn menuliskan “gnd”. Oiya rangkaian LED nya jika dirancang pada real sistem harus dipasang resistor (470Ω) gunanya untuk membatasi arus yang melewati LED (sebesar 10mA).
Nach selain itu kita juga harus mengetahui.. fungsi tools laenya… seperti gambar berikut:

Tidak semua tools saya jelaskan sebagian tools lainnya sampai sekarang ada juga yang belum saya pake, tapi yang sedikit ini sudah cukup untuk bermain-main dengan PROTEUS, nah Untuk lebih jelasnya sebagai berikut:
  1. List komponent … tools ini digunakan untuk melihat list komponent yang kita gunakan pada rancangan kita, untuk menambahkan komponen klik dulu  tools ini setelah itu baru klik pick device (P).
  2. Junction dot…kalo tools yang ini berguna untuk memberi tanda penghubung suatu wire (kabel), jika ada dua wire dan ingin kita hubungkan nach gunakan tools ini, begitu juga untuk kondisi sebaliknya jika kita ingin menghilangkan sambungan kabel tersebut maka kita tinggal klik juntion dot pada sambungan kabel tersebut agar sambungannya menjadi terputus.
  3. Label wire…untuk tools yang ini penting untuk digunakan sebab kita tinggal memberi label pada wire tersebut apakah terhubung vcc ataukah gnd
  4. Bus…tools ini digunakan untuk rancangan jalur yang menggunakan jalur bus D0-D7 sehingga sangat hemat pengkabelan.
  5. Instant edit mode…nich tools digunakan untuk mengedit komponen yang kita rancang, contoh kita menggunakan mikro, untuk mendonload file .hex dari pemrograman kompiler kita gunakan tools ini atau dengan cara klik kanan pada komponen (setelah komponen berwarna merah) klik kiri maka box edit komponent akan muncul seperti gambar berikut ini:

Nah disini kita tinggal memasukkan nilai clock frekuensi dari mikro atau cristal luar mikro sebagai contoh 12Mhz dan disini juga tempat mendonload file .hex dengan cara klik icon folder pada program file dan browse file hexa yang akan  kita masukkan  kedalam mikrokontroler…
6.   Simulation graph… nach ni tools untuk mensimulasikan grapik sinyal analog,digital, frekuensi, distorsi,fourier.dan lain sebagainya.
7.   Tape recorder… apa lagi tools yang satu ini… ane belum pernah menggunakan ni tools… dari bahasanya jika diterjemahkan sebagai perekam.. mungkin mirip ma perekam radio tape kali…hehe….
8.   Generator… nach kalo tools yang ini mau gak mau sering  kita gunakan, Generator berarti pembangkit… jadi tools ini digunakan untuk pembangkit  berbagai macam sinyal baik analog maupun digital dengan berbagai macam bentuk  sinus, segitiga, denyut  dan sebagainya bahkan secript program untuk menghasilkan kondisi sinyal tertentu.
9.   Virtual instrument… tools yang ini merupakan virtual alat pengukuran seperti osiloskop, virtual terminal, ac/dc voltmeter, ac/dc ammeter, dan sebagainya… nah jika pada rancangan kita ingin mengetahui tegangannya berapa, arusnya berapa, atau bentuk sinyal keluaranya seperti apa, maka gunakan tools ini,…

Jika rangkaian sudah jadi dan telah dimasukkan file hexa maka simulasi dapat kita jalankan dengan mengklik tombol play di bagian bawah dan mengakhirinya dengan klik tombol stop.
Semoga informasi ini bermanfaat :) 

Download : Proteus77

Saturday, 9 March 2013

Rangkaian Dasar LED

RANGKAIAN DASAR LED

Tujuan : Setelah melaksanakan modul ini siswa diharapkan dapat :
  • Mengetahui dasar-dasar menyalakan LED
      LED (Light Emitting Diode) adalah semikonduktor (diode) yang dapat mengeluarkan cahaya. Terdapat berbagai macam warna LED, yaitu merah, hijau, oranye, kuning, dan biru, serta dalam berbagai bentuk. Seperti juga diode, LED juga merupakan komponen yang akan aktif (menyala) jika dialiri arus pada arah tertentu, dan tidak untuk arah arus sebaliknya. Gambar 1-1 menunjukkan bentuk fisik LED beserta simbolnya. Kaki yang lebih panjang adalah anode, yang akan dihubungkan dengan kutub +, dan kaki yang lebih pendek adalah katode, yang akan dihubungkan dengan kutub – .
 Ingat KNAP : Katode (ke) Negatif, Anode (ke) Positif.

Gambar 1-1 Komponen LED beserta simbolnya

Gambar 1-2 menunjukkan rangkaian untuk menyalakan LED, anode terhubung dengan kutub positif catu daya dan katode terhubung dengan resistor dan ground. Fungsi resistor pada rangkaian yang melibatkan LED adalah sebagai pembagi tegangan dan pembatas arus. Untuk menyalakan LED hanya diperlukan tegangan 3 volt dan arus sebesar 1 – 10 mA, sedangkan arus yang dapat diberikan catu daya (dengan tegangan berkisar 5-9V) cukup besar. Jika tegangan dan arus yang masuk LED tidak dibatasi, maka LED akan rusak. Resistor dapat diletakkan pada sisi katode maupun anode dari LED. 
      Pada semua rangkaian LED jangan lupa untuk selalu diberikan resistor sebagai pembatas arus dan tegangan
Gambar 1.2 Rangkaian Untuk Menyalakan LED

Gambar 1.3 Rangkaian Dasar LED Pada Breadboard


Membuat USB Downloader

Membuat USB Downloader untuk Mikrokontroler AVR Atmega8/16/32/8535




Downloader yang menggunakan port paralel ( yang pinnya 25 buah) memang hanya membutuhan sedikit biaya, namun sekarang kebanyakan orang sudah beralih ke laptop dimana port paralel sudah sudah jarang ditemui lagi . Alternatifnya yaitu menggunakan port USB. USB downloader dibuat dengan komponen utama yaitu atmega8,Sebelumnya membuatnya sediakan berikut ini:

Software:
  • Deeptrace ( untuk membuat pcb atau kalau malas buat pcb pake pcb bolong)
  • PonyProg ( untuk mendownload program)
  • Downloader yang menggunakan port paralel
  • Download Drivernya disini
Komponen elektronik
  1. AVR atmega8
  2. kristal 12 MHz
  3. kapasitor 22pF
  4. konektor USB dan kabel USB
  5. soket IC 14pin 2 buah
  6. resistor 10k, 68ohm atau 100 ohm, 2k2, 1K
  7. elko 10 uF/16 V dan kapasitor 100nF
  8. LED 3 buah
  9. housing 5 pin dan 4 pin
  10. Dioda zener 3.6 volt 2 buah
Rangkai komponen diatas sesuai rangkain berikut ini:



rangkaian di pcbnya:

C1, C2       =  22pF        
C3              = 10µF          
C4              = 100nF       
D1, D2       =  Z-Diode 3V9           
IC1             =  ATMEGA8                        
LED1          =  LED               
LED2          =  LED              
Q1              = 12Mhz   
R1, R2        = 68 Ohm       
R3              = 2,2 kOhm        
R4, R5        = 470 Ohm          
R6              = 10 kOhm             
R7              = 1 kOhm                     
X1              = USB     


     Rangkai komponen elektronik seperti gambar rangkaian diatas, setelah selesai program terlebih dahulu Atmega8 dengan program yang  didownload disini,  menggunakan downloader paralell. 

Atur fusbitnya seperti gambar berikut :

Jika men-downloadnya sudah, pasangkan ATMEGA 8 ke soket, kemudian masukan tancapkan kabel usb ke komputer. Jika benar akan muncul tampilan seperti ini.


Sebentar lagi akan minta driver, next next next aja, kemudian pilih folder tempat win-driver berada.

Kemudian tinggal menunggu finish.Jika sudah finish, lepas kembali kabel usbnya,sesudah itu, masukan kembali kabel usb. Ketika dimasukan akan ada suara, seperti suara ketika kita memasukkan flash disk. Lihat led, led ada yang hidup (led power) dan ada yang mati (led untuk tanda busy).Sekarang USB downloader sudah jadi langka selanjutnya kita memerlukan software untuk menggunakan downloader ini, salah satu yang bisa digunakan yaitu Khazama, khazama saya pilih karena software ini memiliki ukuran yang kecil, dan kecepatan ketika memprogram mikrokontroler lebih tinggi daripada software yang lain seperti extreme burner avr, ataupun avrdude. Anda pun bisa menggunakan semua software tersebut untuk downloader USB ini. Untuk mendownload Khazama klik disini. Berikut Tampilan khazama
Menurut pengalaman saya mikrokontroler yang akan kita program menggunakan downloader USB ini harus menggunakan kristal external (misalnya kristal 12 Mhz) dan fuse bitnya diatur agar mikrokontroler mengunakan external clock (pengaturannya sama seperti diatas tadi). Ketika saya coba tanpa memkai kristal, USB downloader ini ternyata tidak bisa dipakai. Sedangkan untuk pengaturan fuse bit ini dilakukan dengan menggunakan downloader paralel menggunakan software ponyprog.
Cara menggunakannya:
  • Hubungkan USB downloader yang kita buat tadi kekomputer
  • Hubungkan downloader dengan mikrokontroler
  • Buka khazama, pilih file, klik load flash file to buffer, 
  • pilih file hex yang akan diisikan ke mikro, 
  • setelah itu klik command dan pilih write flash buffer to chip, jika berhasil akan muncul seperti ini:
Jika mikrokontroler yang akan didownload menggunakan usb downloader ini tanpa memakai kristal, terlebih dahulu ubah setingan fuse bit pada mikrokontroler target dengan setingan fuse bit seperti dibawah ini

Selamat Mencoba .....

Downloader Menggunakan Parallel Printer Port

Downloader Twin AVR Dan AVRdude

TwinAVR 1.1.0.2 adalah software downloader chip mikrokontroler AVR yang bersifat freeware oleh Roland Walter (www.rowalt.de/mc/).
system operasi Windows 3.x,9x,Me,Windows NT/2000/xp (dengan driver LPT)

format file : Biner, Generic HEX, dan intel HEX
file program biner ".bin"
File program Generic/intel HEX ".hex"

gambar rangkaian twin AVR/AVRdude

Instalasi Twin AVR

    Program twinAVR merupakan program aplikasi siap pakai, tidak diinstall ke dalam operasi. Namun, untuk pengguna Ms XP/W2000 perlu mengisntall driver LPT dengan cara :
1. Copy UserPort.sys ke windows\system32\drivers
2. Buka UserPort.exe
3. Klik "Update" klik "Start" hingga ok
4. Siap digunakan

  Kanda System STK200+/300.

Berikut adalah rangkaian downloader AVR menggunakan port parallel (biasa disebut LPT). Downloader ini support dengan Codevision AVR dan Ponyprog,  serta mendukung Atmega8535, Atmega8, Atmega16, dan Atmega32. (mungkin mendukung beberapa jenis Atmega lainnya). Downloader parallel ini biasa disebut Kanda System STK200+/300.


CATATAN: dikarenakan tidak menggunakan IC buffer jadi disarankan agar kabel yang berasal dari port parallel ke mikrokontroler tidak terlalu panjang, yaitu sekitar maksimal 0,5 meter, karena dikhawatirkan terjadi drop tegangan dan data yang dikirimkan menjadi rusak.

Cara mensetting di CodeVision adalah sebagai berikut:
SETTING PROGRAMMER pilih Kanda System STK200+/300 dengan Port LPT1:378h

Cara mensetting di Ponyprog adalah sebagai berikut:
SETUP → INTERFACE SETUP → PARALLEL → pilih AVR ISP I/O → LPT1 → OK

Tuesday, 5 March 2013

Bahasa Pemrograman Mikrokontroler

      Mikrokontroler AVR (Alf and Vegard's Risc processor) standar memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga ATtiny, keluarga ATSOSxx, keluarga ATMega, dan AT86RFxx. Pada dasamya, yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya.
      Mikrokontroler AVR ATmega16 adalah salah satu dari keluarga ATmega dengan populasi pengguna cukup besar. Memiliki memori flash 16k dan 32 jalur input output, serta dilengkapi dengan ADC 8 kanal dengan resolusi 10-bit dan 4 kanal PWM. Sebuah chip dengan fitur cukup lengkap untuk mendukung beragam aplikasi, termasuk robotik.
      Pemrograman mikrokontroler AVR (Atmega16) menggunakan beberapa bahasa program seperti bahasa Basic, C atau Assembler. Untuk bahasa basic kita gunakan Software Bascom AVR sedang bahasa C dan Assembler kita gunakan WinAVR. Program aplikasi yang kita susun dalam software setelah di kompilasi akan dihasilkan file dengan ekstensi heksa. File heksa inilah yang akan kita tuliskan ke memori flash mikrokontroler AVR melalui sebuah alat yang disebut Downloader. Rangkaian Downloader ada yang sederhana dan dapat kita buat sendiri. Anda juga dapat mendownload di internet skema PCB Downloader kemudian membuatnya sendiri. Pada postingan berikutnya akan saya bahas secara khusus mengenai Downloader.

Pemrograman Dengan Bascom AVR

       Pada umumnya bahasa yang dipergunakan untuk memprogram mikrokontroler adalah bahasa Assembly. Bahasa Assembly adalah bahasa pemrograman tingkat menengah, dimana program yang dibuat lebih mendekati bahasa mesin, sehingga pemenfaatan memori dapat dilakukan secara optimal, namun di sisi lain pemrogramannya menjadi relatif sulit. Karena bahasa yang dipergunakan Bascom, yaitu Basic, adalah bahasa tingkat tinggi, maka pemrograman menggunakan Bascom sangatlah mudah untuk dipelajari. Sintaksnya tidak jauh berbeda dari Basic pada umumnya, misalnya do-loop, for-next, while-wend, goto, gosub dan sebagainya. Selain itu Bascom dilengkapi dengan fungsifungsi khusus, misalnya LCD untuk menampilkan karakter pada LCD, PRINT untuk mengirimkan karakter ke PC melalui kabel RS232, SHIFTIN dan SHIFTOUT untuk komunikasi serial sinkron dan lain sebagainya. Fungsi-fungsi khusus tersebut jika dituliskan dalam bahasa Assembly akan menjadi lebih panjang dan rumit, terutama karena kita harus mengetahui register-register yang ada pada mikrokontroler.

Kontruksi bahasa BASIC pada BASCOM-AVR
Setiap bahasa pemprograman mempunyai standar penulisan program. Konstruksi dari  program bahasa BASIC harus mengikuti aturan sebagai berikut:
$regfile = "header"
'inisialisasi
'deklarasi variabel
'deklarasi konstanta
Do
'pernyataan-pernyataan
Loop
end
Pengarah preprosesor
$regfile = "m16def.dat" merupakan pengarah pengarah preprosesor bahasa BASIC yang memerintahkan untuk meyisipkan file lain, dalam hal ini adalah file m16def.dat yang berisi deklarasi register dari mikrokonroller ATmega 16, pengarah preprosesor lainnya yang sering digunakan ialah sebagai berikut:
$crystal = 12000000  'menggunakan crystal clock 12 MHz
$baud = 9600             'komunikasi serial dengan baudrate 9600
$eeprom                     'menggunakan fasilitas eeprom

Karakter Pada Bascom


Karakter pada Bascom dipergunakan untuk membentuk label, keyword, variabel, dan operator, yang kesemuanya akan membentuk suatu program. Pada dasarnya karakter pada Bascom terdiri dari karakter huruf (A-Z) dan karakter angka (0-9). Beberapa karakter pada Bascom yang dipergunakan secara khusus terdapat pada tabel 2-1.


Tipe Data


Setiap variabel pada Bascom mempunyai tipe data yang menunjukkan kapasitas dan jenis data yang dapat disimpan pada variabel tersebut. Hal ini berpengaruh pada seberapa besar memori yang diperlukan untuk menyimpan variabel tersebut. Tabel 2-2 menunjukkan tipe data pada Bascom beserta ukuran dan rentangnya.

Variabel

     Variabel adalah simbol yang digunakan untuk mewakili suatu nilai. Variabel digunakan sebagai tempat penyimpanan data atau penampung data sementara. Variabel numerik hanya dapat diisi nilai numerik (bit, byte, integer, word, long, dan single). Isi dari suatu variabel numerik dapat berupa :
· Suatu nilai konstan
       A = 5
       C = 1.1
· Nilai variabel numerik lain
       A = B
· Nilai yang didapat dengan mengkombinasikan variabel, konstan, dan operator
      Temp = A + 5
Pada Bascom terdapat beberapa aturan mengenai penamaan suatu variabel, yaitu :
· Nama suatu variabel maksimum terdiri atas 32 karakter dan dapat berupa huruf ataupun angka.
· Karakter pertama variabel haruslah berupa huruf.
· Nama variabel tidak boleh menggunakan kata-kata yang dipergunakan Bascom sebagai perintah, pernyataan, register dan operator (misal AND, OR, DIM, P1 TIMER0 dan lain sebagainya)
Sebelum digunakan suatu variabel haruslah dideklarasikan terlebih dahulu tipe data yang dipergunakan dengan menggunakan pernyataan DIM
      DIM A As Byte
      DIM Nama1 As Byte, Nama2 As Integer
      DIM Kata As String*10
Selain menggunakan DIM, variabel dapat juga ditentukan tipe datanya menggunakan
     DEFBYTE, DEFINT, DEFBIT, dan DEFWORD
     DEFBYTE A
     DEFWORD B;C;D
Suatu variabel dapat mempunyai nama lain atau alias. Umumnya alias digunakan untuk mengganti variabel standar dengan nama yang lebih mudah diingat. Hal ini akan berguna pada saat membuat program yang panjang dan kompleks, jika terdapat perubahan penggunaan pin atau port, cukup diganti pada pernyataan Alias.
     Saklar1 Alias PB.0
     LED1 Alias PD.0

Konstanta

Konstanta adalah variabel yang mempunyai nilai konstan selama program dijalankan. Untuk mendeklarasikan suatu konstanta dapat digunakan dua cara, yaitu menggunakan Dim atau Const
      Dim A As Const 5
      Dim B1 As Const &B1001
      Const Cbyte = &HF
      Const Cint = -1000
      Const Csingle = 1.1
      Const Cstring = "tes"

Larik

Larik atau array adalah kumpulan variabel dengan nama dan tipe data yang sama. Untuk membedakan satu variabel dengan variabel lainnya digunakan indeks. Indeks haruslah berupa angka dengan tipe data byte, integer atau word, dengan nilai minimal 1 (bukan 0). Pendeklarasian larik mirip seperti variabel biasa, hanya ditambahkan jumlah komponen lariknya.
      Dim a(10) as byte

Sistem Bilangan

Pada pemrograman mikrokontroler terdapat 3 sistem bilangan yang sering digunakan, yaitu desimal (basis 10), biner (basis 2), dan heksadesimal (basis 16). Cara penulisan bilangan pada Bascom disesuaikan dengan sistem bilangan yang digunakan,
yaitu :
· Untuk bilangan desimal tidak didahului angka ataupun huruf lain
· Untuk bilangan biner didahului dengan &B
· Untuk bilangan heksadesimal didahului dengan &H
      Contoh : 240 (bilangan desimal), &B11110000 (bilangan biner), &HF0 (bilangan heksadesimal)

Operator

Operator digunakan untuk melakukan operasi terhadap bilangan. Pada Bascom operator dibedakan menjadi operator aritmetik, operator relasional, dan operator logika. Operator aritmatik adalah operator yang digunakan dalam kalkulasi, yaitu + (penjumlahan), - (pengurangan), * (perkalian, / (pembagian), \ (pembagian integer), MOD (modulo = sisa dari pembagian). Operator relasional digunakan untuk membandingkan dua nilai, yang memberikan hasil benar (1) atau salah (0) dan dapat digunakan untuk membuat keputusan.


Operator logika digunakan untuk menguji suatu pola bit tertentu, manipulasi bit atau operator Boolean. Misal operator AND dapat digunakan untuk mengabaikan semua bit dalam suatu byte kecuali satu bit untuk memantau status bit tersebut


Pernyataan Bersyarat

Pada Bascom terdapat beberapa pernyataan bersyarat yang sering digunakan yaitu If – Then, If – Then – Elseif, dan Select – Case

Syntaksis If – Then

   If <syarat> Then
   <Pernyataan 1>
   <Pernyataan 2>
   Else
   <Pernyataan 3>
   <Pernyataan 4>
   End If

Sintaksis If – Then – Elseif

    If <syarat1> Then
    <Pernyataan 1>
    <Pernyataan 2>
    Elseif <syarat2>Then
    <Pernyataan 3>
    <Pernyataan 4>
    Else
   <Pernyataan 5>
   <Pernyataan 6>
   End If

Sintaksis Select – Case

     Select Case < Variabel>
     Case < Nilai 1> : <Pernyataan 1>
     Case < Nilai 2> : <Pernyataan 2>
     Case Else : <Pernyataan 3>
     End Select

Pernyataan Perulangan (Loop)

Loop adalah suatu perulangan terhadap perintah atau instruksi sampai mencapai keadaan tertentu (jumlah perulangan tersebut dapat diketahui). Fungsi dari loop sendiri banyak sekali, dan dapat menghemat dalam penulisan program karena program yang sama dapat dilakukan dengan beberapa perintah dan kemudian diulang-ulang. Terdapat 3 pernyataan perulangan yaitu Do-Loop, While-Wend, dan For-Next.

Sintaksis Do – Loop

     Do
     <Pernyataan 1>
     <Pernyataan 2>
     Loop

Sintaksis While – Wend

     While <Syarat>
     <Pernyataan 1>
     <Pernyataan 2>
     Wend

Sintaksis For – Next

     FOR <Variabel> = <Nilai Awal> TO/DOWNTO <Nilai Akhir>
     <Pertambahan/Pengurangan>
     <Pernyataan 1>
     <Pernyataan 2>
     Exit

Semoga bermanfaat..

Download : BascomAVR 2.0.7.3

Monday, 4 March 2013

Sistem Minimum (Sismin) Atmega 16

Minimum sistem merupakan suatu perangkat sistem yang dapat digunakan untuk belajar mikrokontroler. Perangkat ini memiliki komponen sederhana berupa IC Atmega 16 , external kristal, tombol reset dan sumber tegangan 5 volt. Agar dapat berhubungan dengan perangkat luar sismin ini dilengkapi dengan header port input/output. Dengan perangkat sismin atmega 16 ini anda dapat belajar memrogram IC Atmega 16 untuk membuat aplikasi-aplikasi mikrokontroler seperti mengontrol lampu/LED, alat-alat rumah tangga bahkan robot.

Skema Sismin ATmega16

  gambar skema sismin ATmega16 (proteus77)

PCB sismin ATmega16

gambar skema board sismin ATmega 16

Tampak atas

tampak atas sismin ATmega16

     Pada gambar skema board diatas terdapat terminal mosi,miso,sck, reset dan GND. Kelima terminal ini nantinya dihubungkan ke perangkat Downloader. Downloader berfungsi untuk membaca dan menulis program dari dan ke mikrokontroler. File yang dibaca atau ditulis oleh downloader berekstensi heksa. File heksa tersebut dihasilkan oleh software pemrograman mikrokontroler.
     Nah jika anda telah memiliki rangkaian sismin ATmega 16 seperti di atas saatnya anda untuk berlatih memprogram IC tersebut. Ada beberapa jenis software Pemrograman IC mikrokontroler yang dapat digunakan dan akan di bahas pada postingan berikutnya. Sekian semoga bermanfaat...

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews