Jumat, 27 April 2012

Belajar Mikrocontroller - Latihan Output Dasar

Mikrocontroller bekerja berdasarkan perintah atau intruksi yang disebut program. Jadi program merupakan kumpulan intruksi atau perintah yang disimpan di lokasi memory mikrocontroller. Untuk membuat program mikrocontroller dibutuhkan software yang mampu mengkompilasi bahasa pemprograman menjadi bahasa mesin. Banyak sekali software yang khusus membuat program untuk mikrocontroller di artikel ini saya menggunakan Bascom AVR sebagai kompilernya dan bahasa yang digunakan yaitu Basic. Untuk rangkaian elektronikanya saya  menggunakan  software Proteus - ISIS sebagai simulatornya. Software Proteus - ISIS ini sangat berguna terutama bagi orang yang baru belajar memprogram mikrocontroller dan dapat meminimalisir kesalahan sebelum mempraktekannya langsung ke rangkaian PCB aslinya. Sebagai awal latihan saya coba membuat fungsi output dimana mikrocontroller diprogram untuk mengeluarkan tegangan positif di port yang dipilih atau mengeluarkan taraf logika 1. 
Komponen yang diperlukan dalam latihan ini yaitu: 
  1. 1 buah mikrocontroller type Atmega 16  
  2. 2 buah dioda led warna kunung
  3. 1 buah crystal 10MHz
  4. 2 buah capasitor @22pF
  5. 1 buah capasitor 10nF
  6. 1 buah resistor 10K
  7. 2 buah resistor 200 Ohm
  8. 1 buah tombol
Software yang digunakan untuk latihan ini yaitu:
    1. Bascom AVR sebagai kompiler ( Download Bascom AVR ) 
    2. Proteus - ISIS  untuk simulasi ( Donwload Proteus ) 
    Ada 3 langkah pokok untuk memulai latihan memprogram mikrocontroller dasar yang akan diterangkan dalam  artikel ini.
    Langkah membuat rangkaian elektronik di Proteus-ISIS
    Buka program Proteus-ISIS pastikan software tesebut sudah terinstal di komputermu. Cari komponen dengan cara klik tool Component Mode yang ditandai lingkaran merah kemudian klik tombol P yang ditandai lingkaran hijau lihat Gambar.1.   


    Gambar.1


    Pada jendela Pick Device dibagian Category pilih kategori komponen yang diperlukan lihat Gambar.2, kemudian pada Sub-Category pilih keluarga komponennya lihat Gambar.3 dan bagian Results doble klik pada type mikrocontroller yang dipilih lihat Gambar.4. Untuk komponen resistor dan kapasitor pilih Generic dibagian Sub-Category, untuk tombol pilih Switches & Relay dibagian Category dan untuk crystal pilih Miscellaneous dibagian Category

    Gambar.2

    Gambar.3
    Gambar.4

    Setelah komponen dipilih, dibagian Devices terlihat daftar komponen yang diperlukan, sedangkan untuk memasukan power dan ground klik tool Terminals Mode yang diberi lingkaran merah lihat Gambar.5. Kemudian rangkai sesuai dengan Gambar.6. Pilih port yang akan digunakan untuk output, dalam contoh latihan ini saya menggunakan PortC. Kedua led dihubungkan ke PortC.0 untuk Led.1 dan PortC.1 untuk Led.2.


    Gambar.5

    Gambar.6

    Video tutorialnya

    Langkah membuat program di Bascom AVR
    Buka program Bascom AVR pastikan program tersebut sudah terinstal di komputermu. Klik tool Create a new file (Ctrl+N) kemudian tulis program atau sintak seperti Gambar.7.
    Gambar.7

    Pada Gambar.7 bagian pertama ini merupakan komentar yang berisi informasi nama program, type mikrocontroller, frekuensi clock dan apa saja yang ingin kita tulis termasuk nama kita sebagai programer. Cara penulisan komentar harus diawali tanda petik ( ' ) dan komentar tidak termasuk program yang akan dieksekusi atau dijalankan, sifatnya hanya untuk memberi informasi atau keterangan tentang program yang kita tulis.
    Pada Gambar.7 bagian kedua ini merupan deklarasi mikrocontroller yang berisi mengenai type mikrocontroller yang kita gunakan [ Cara penulisannya : $regfile =  "m16def.dat" ] apabila type mikrocontrollernya berbeda dengan yang ada di rangkaian elektronikanya maka program tidak akan bekerja. Kemudian frekuensi clock dalam satuan Hertz, dalam latihan ini kita menggunakan frekuensi 10MHz tapi penulisan programnya menjadi 10000000 [ Cara penulisannya : $crystal = 10000000 ] dan baud rate atau kecepatan transfer data dalam satuan bit per detik [ Cara penulisannya : $baud = 9600 ] digunakan pada saat melakukan komunikasi serial dengan komputer. Deklarasi mikrocontroller ini wajib dan harus ditulis diawal penulisan program karena program yang kita buat tidak akan dimengerti oleh mikrocontroller apabila deklarasinya tidak disertakan.
    Pada Gambar.7 bagian ketiga ini merupakan konfigurasi port yang akan kita gunakan. Dalam mikrocontroller terdapat empat buah port diantaranya PortA, PortB, PortC dan PortD setiap port mempunyai delapan pin yaitu PortA.0 - PortA.7, PortB.0 - PortB.7, PortC.0 - PortC.7 dan PortD.0 - PortD.7. Untuk setiap pin mempunyai fungsi khusus seperti ADC, RXD, TXD, INT0, INT1 dan masih banyak lagi, tapi diartikel ini  tidak akan membahas dulu fungsi tersebut. Dari ke empat port kita gunakan PortC.0 dan PortC.1 sebagai output yang langsung dihubungkan ke dua buah dioda led dimana PortC.0 dihubungkan ke LED.1 dan PortC.1 dihubungkan ke LED.2 [ Cara penulisannya : Config PORTC.0 = Output dan Config PORTC.1 = Output ]. Untuk mempermudah dalam penulisan program, kita bisa mengganti nama portnya dengan nama komponen yang terhubung ke port tersebut dengan perintah Alias [ Cara penulisannya : Led_1 Alias PORTC.0 dan Led_2 Alias PORTC.1 ]
    Pada Gambar.7 bagian keempat ini merupakan program utama dimana dalam program tersebut kita memasukan atau menulis perintah yang harus dikerjakan oleh mikrocontroller yaitu mengeluarkan tegangan positif atau taraf logika 1 di port yang sudah dikonfigurasikan sebelumnya secara terus-menerus. Diawali dengan perintah "Do", ini merupakan awal dari perintah pengulangan dan diakhiri dengan perintah "Loop", ini merupakan perintah untuk mengulang kembali program utama. Kemudian diantara perintah "Do" dan "Loop" kita tulis statement dengan perintah "Set" [ Cara penulisannya : Set Led_1 artinya PortC.0 akan bersetatus logika 1 atau mengeluarkan tegangan positif dan Set Led_2 artinya PortC.1 akan bersetatus logika 1 atau mengeluarkan tegangan positif ]
    Simpan program tersebut di folder yang telah dibuat sebelumnya untuk menyimpan file Bascom AVR dan Proteus - ISIS, usahakan dalam satu folder untuk mempermudah pencarian filenya. Setelah menyimpan file program Bascom AVR'nya kemudian kita cek apakah program yang kita tulis sudah benar sintaknya atau ada kesalahan. Untuk mengeceknya kita gunakan tool Check Syntax (Ctrl+7) yang ditandai kotak warna merah lihat Gambar.8. Apabila ada kesalahan dalam penulisan syntaxnya maka akan ada jendela Errors dibagian bawah lembar kerja lihat Gambar.9. Untuk mengetahui letak kesalahannya, dibagian jendela Errors doble klik pesan yang disampaikan maka akan ditunjukkan letak kesalahannya dengan garis berwarna merah lihat Gambar.10 dari contoh tersebut tidak terdapat huruf " " dibagian Output. Perbaiki kesalahannya kemudian klik lagi tool  Check Syntax (Ctrl+7). Setelah proses cek sintaknya selesai dan tidak ada lagi kesalahan maka sekarang kita akan mengkompilasi program yang kita tulis tersebut untuk merubahnya menjadi format ".Hex" . Cara mengkompilasinya yaitu dengan mengklik tool Compile Program (F7) yang ditandai kotak warna hijau lihat Gambar.8. Hasil kompilasi secara otomatis disimpan di folder tempat file Bascom AVR kita dibuat, dengan nama file yang sama cuma formatnya yang berbeda.
    Gambar.8
    Gambar.9
    Gambar.10
    Langkah medownload file hasil kompilasi ke mikrocontroller di Proteus - ISIS
    Buka kembali file yang berisi rangkaian elektronik di Proteus - ISIS. Letakkan pointer di komponen mikrocontrollernya lalu doble klik atau klik kanan kemudian pilih Edit Properties maka akan muncul jendela Edit Component  lihat  Gambar.11.

    Gambar.11


    Untuk  medownload atau memasukan program yang sudah dikompilasi di Bascom AVR, tinggal klik folder yang dilingkari warna merah kemudian cari file hasil kompilasi yang berformat ".Hex" tadi dijendela Select File Name dan klik Open. Dibagian Program File akan terlihat nama file  dari program yang sudah dikompilasi tadi kemudian klik Ok dan proses download pun selesai. Langkah selanjutnya yaitu memulai simulasi dengan mengklik tombol Play dibawah kiri lembar kerja Proteus - ISIS lihat Gambar.12 dan hasil simulasinya bisa dilihat di Gambar.13. Disini jelas terlihat dioda led  berwarna kuning  menyala.

    Gambar.12

    Gambar.13
    Dari pembahasan di atas tadi hanya contoh intruksi atau perintah sederhana yang dimasukkan kedalam mikrocontroller. Sekarang kita akan coba membuat program baru ( masih menggunakan rangkaian elektronika yang sama ) yaitu kita akan menambah perintah atau intruksi dimana mikrocontroller akan menghidup matikan kedua dioda led tersebut dengan delay tertentu sehingga kelihatan berkedip. Yang perlu dirubah hanya program utamanya saja yang terletak diantara "Do" dan "Loop" yaitu dengan menambah perintah "Waitms" lihat Gambar.14.

    Gambar.14
    Penjelasan Gambar.14 sebagai berikut :
    1. Intruksi pertama yaitu mikrocontroller akan menyalakan Led_1 dan Led_2 selama 100ms
    2. Intruksi kedua yaitu mikrocontroller akan mematikan Led_1 dan Led_2 selama 100ms
    3. Intruksi ketiga yaitu mikrocontroller akan menyalakan Led_1 dan mematikan Led_2 selama 100ms
    4. Intruksi keempat mikrocontroller akan mematikan Led_1 dan Led_2 selama 100ms
    5. Intruksi kelima mikrocontroller akan mematikan Led_1 dan menyalakan Led_2 selama 100ms
    6. Intruksi keenam mikrocontroller akan mematikan Led_1 dan Led_2 selama 100ms

    Proses diatas akan terus diulang dalam program utama sehingga kedua dioda led berkedip.

    Setelah merubah atau menambah statement di program utama jangan lupa untuk mengkompilasi kembali dengan mengklik Compile Program (F7) , karena kalau tidak dikompilasi kembali mikrocontroller tidak akan menjalankan program yang baru tersebut . Untuk lebih jelas  bisa dilihat di video tutorial berikut.                   
                           Video tutorialnya
            
                        
                                         SEMOGA BERMANFAAT!

    10 komentar:

    1. Thanks gan
      bermanfaat niih :)

      BalasHapus
    2. tutorial mudah di pahami dan di praktekan baut yg baru belajar mikro seperti saya,makasih banyak master,di tunggu tutorial yg lain

      BalasHapus
    3. Saya mau tanya, pin vcc nya bebas ? Tdk trkoneksi ke supply kah ?

      BalasHapus
    4. mantap mas.... dilanjut dong mas trutorial yang lain untuk pemula seperti saya............ semoga sukses y mas..........

      BalasHapus
    5. kog data set nya gak bisa berjalan ia padahal benar

      BalasHapus
    6. nyimak gan,sangat bermanfaat buat pengetahuan dasar pemrograman

      BalasHapus
    7. Trimakasih byk Mas Gan. Mulai ada pencerahan nih

      BalasHapus