Buku-Mikrokontroler Menggunakan PIC.pdf

Embed Size (px)

Citation preview

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    1/53

    Pemograman Praktis Mikrokontroler

    Menggunakan PIC untuk Aplikasi Robot

    Oleh

    Dr. Riza Muhida

    Topics:

    1.  Anatomi Robot. (0.5 h)2.  Pengantar Mikrokontroler. (0.5 h)

    3.  Membuat Proyek Sederhana dengan PIC sperti: Lampu lalu Lintas,Sistem Keamanan, membaca data dari sensor. (1.5 h)

    4.  Bagaimana Mengontrol Motor Menggunakan Mikrokontroler. (0.5 h)

    International Islamic University Malaysia2008

    1

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    2/53

    Bab 1

    Anatomi Robot

    1.1 Sejarah dan Perkembangan Robot

    Kata robot pertama kali diperkenalakan oleh seorang penulis dari Czech yang bernamaKarel pada tahun 1921 dalam karya sastranya. Kata Robot berasal dari kata ‘robota’ yang berarti: pekerja sendiri.Sejarah robot bermula ketika sistem otomatis dibuat oleh Jacques de Vaucanson padatahun 1938, yang membuat bebek mekanik yang dapat memakan dan mencincang biiji bijian, membuka dan menutup sayapnya. Kemudian tahun 1796, Hisashine Tanaga diJepang berhasil membuat mainan mekanik yang dapat mnghidangkan the dan menulishuruf kanji. Lalu 1926, Nikola Tesla mendemintrasikan perahu bot yang dapat dikontroldengan radio. Tahun 1928, Makoto Nishimura membuat robot pertama di Jepang.

    Sejalan dengan perkembangan teknologi Elektronika, maka perkembangan robot ini

    melaju pesat, seprti tahun 1948, William Grey Walter membuat robot elektronikotomatis pertama dimana robot ini dapat merespon cahaya dan dapat melakukan kontakdengan objek dari luar. Pada tahun 1954, saat dimulainya zaman digital, sebuah robotdigital yang dapat deprogram ditemukan oleh George Devol.Pada abad modern ini sudah bermacam-macam robot yang dicipta dan digunakan sepertidalam industri, rumah sakit, transportasi, pendidikan dan kehidupan sehari-hari. Sepertirobot yang digunakan untuk mengecat mobil, robot yang digunakan untuk merakitkomponen elektronik dan juga humanoid robot yaiitu robot yang memiliki muka, yangmampu berjalan dan bertindak seperti manusia.

    1.2. Fungsi RobotAda beberapa fungsi robot, sehingga manusia memerlukan kehadirannya yaitu:

    1.  Meningkatkan Produksi, akurasi dan daya tahan. Robot ini banya digunakan diindustri.

    2.  Untuk tugas-tugas yang berbahaya, kotor dan beresiko. Robot ini digunakanketika manusia tidak mampu masuk ke daerah yang beresiko. Seperti RobotUntuk menjelajah planet, robot untuk mendeteksi limbah nuklir, robot militer dll.

    3.  Untuk pendidikan. Banyak robot yang digunakan untuk menarik pelajar belajarteknologi seprti robot Lego dll.

    4.  Untuk menolong manusia. Seperti di rumah untuk membersihkan rumah pakai penghisap debu otomatis, di rumah sakit untuk menghantar makanan, membantu

    operasi dll.

    1.3. Sifat Robot

    Beberapa sifat robot:1.  Tidak alamiah atau sesuatu yang dibuat.2.  Bisa merasai, memanipulasi dan berinteraksi dengan lingkungan yang diberikan.3.  Memiliki kemampuan untuk memilih berdasarkan kondisi lingkungan yang

    diberikan, hal ini karena adanya control otomatis dalam diri robot.

    2

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    3/53

    4.  Diprogram.5.  Bergerak.

    Kalau melihat sifat-sifat tersebut banyak benda yang bisa dimasukkan dalam robot.Seperti mesin cuci otomatis, escalator otomatis, pintu yang dapat membuka dan menutup

    sendiri. Tapi ada juga yang tidak dapat didefinisikan sebagai robot, seperti mobil (kecualimobil otomatis), mesin pemotong rumput, hair dryer dll, dimana alat-alat ini termasukmesin bukan robot. Dari karakteristik di atas semua robot adalah mesin, tapi tidak semuamesin adalah robot.

    1.4. Anatomi Robot

    Minimal ada 3 komponen penyususn robot, yaitu:1.  Adanya sensor, yaitu komponen yang dapat merespon kondosi lingkungan yang

    diberikan. Sensor ini bdapat berupa sensor cahaya, suara, suhu, tekanan dll.2.  Adanya Aktuator atau penggerak, yaitu komponen yang menhasilkan gerak

    mekanik, actuator ini dapat berupa motor, relay, pnematik atau hidrolik actuator.3.  Adanya Mikrokontroler. Sebagai pusat pemikir untuk memproses data dari sensordan memerintahkan actuator untuk bertindak.

    1.5 Perbandingan antara Robot dan Manusia

    Gambar 1-1. a dan 1-1.b menunjukkan perbandingan struktur antara robot dan manusia.Dimana manusia memungkinkan membuat sebuah robot yang hamper mirif dengandirinya.

    Gambar 1-1.aStruktur Tubuh Manusia

    Gambar 1-1.bStruktur Robot

    Terlihat pada gambar di atas pada robot terdapat Pengontrol yang berfungsi sama denganotak manusia, yang fungsinya untuk membaca data dari sensor kemudian data inidiproses dan memerintahkan aktuator (motor) untuk bergerak.

    3

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    4/53

    Untuk robot yang biasanya menjalankan untuk satu tugas maka blok diaram yangdimilikinya ditunjukkan dalam Gambar 1-2.

    Gambar 1-2. Blok Diagram dari proses kerja sebuah Robot

    Dari Blok diagram di atas terlihat bahwa semua proses yang ada pada dirobot diatur olehsebuah mikrokontroler, yang fungsinya hampir sama dengan otak pada tubuh manusia.

    4

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    5/53

    Bab 2

    Pengantar Mikrokontroler

    2.1. Pengantar

    Mikrokontroler disebut juga MCU atau μC adalah salah satu komponen elektronik atau

    IC yang memiliki beberapa sifat seperti komputer, yaitu: CPU (Central Processing Unit)atau unit pemprosesan terpusat, kode memori, data memori, I/O (port untuk input danoutput), bentuknya yang kecil dan harganya murah sehingga dapat dicangkokkan(embedded) di dalam berbagai peralatan rumah tangga, kantor, industri atau robot.

    Mikrokontroller dapat diprogram melalui program software yang dapat menulis,membaca dan dihapus isi mikrokontroler tersebut.Mikrokontroler sering digunakan dalam beberapa peralatan otomatik seperti pengontrolmesin di mobil, pengontrol jarak jauh, mesin cuci otomatis, pengkondisian udara (AC) peralatan perkantoran dll. Keuntungan dari penggunaan mikrokontroler yaitumemperkecil ukuran peralatan, mengurangi biaya dan konsumsi listrik.

    Ada banyak sekali jenis mikrokontroler di pasaran seperti yang ditunjukkan oleh table 2.1.di bawah ini.

    Tabel 2.1 Berbagai Jenis Mikrokontroler Di PasaranNo Merek atau nama Perusahaan Nama atau No. Seri Mikrokontroler

    1. AT-Tiny (Tini 11, Tini 12)ATmega (ATmega 8, ATmega8535)AT90SXXXX (AT90S1200, AT90S2313)

    2. Z8GP, eZ80, Z80P

    3. 6HC05, 6HC08, 6HCC11, 6HC12

    4. 8051, 8052

    5. Kinerja Rendah (Low End) (12 bit):12C508, 12C508, 12CR509AKinerja Menengah (Mid End)(14 bit):16C61, 16CR84, 16CE624, 16F628

    Kinerja Tinggi (High End)(16 bit)18C242, 18F242, 18F8525

    Setiap Mikrokontroler ada kelebihan antara satu dengan lainnya,Dalam buku ini ini peulisakan memperkenalkan PIC mikrokontroler, PIC adalah singkatan dari Programmable Interface Controller   atau disingkat dengan nama lain Programmable IntelligentComputer . PIC yang merupakan mikrokontroller produksi dari Microchip yang dapatmenggantikan fungsi dari ratusan IC atau transistor. PIC ini sangat populer dikalangan

    5

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    6/53

     pengembang dan penggiat (hobbyists) elektronika dikarenakan harganya yang murah,kemampuannya yang besar untuk berbagai aplikasi, juga tersedia banyaknya buku daninformasi tentangnya, kempuannya diprogram menggunakan serial port dan USB, juga program di dalamnya dapat diprogram berkali-kali menggunakan flash memori, selain itusoftware penunjangnya terdapat dalam open-source atau free-ware. Karena PIC ini

    mudah digunakan oleh siapa saja, sehingga banyak yang menggunakannya, hingga saatini jumlah PIC yang telah menjual lebih dari 6 milyar.

    PIC bisa berprilaku seperti kombinasi dari gerbang digital, timer, counter dll. Prilakukerja dari PIC tergantung kepada program yang kita berikan,

    Gambar 2.1 Menunjukkan beberapa keistimewaan yang dimiliki oleh PIC.

    Walaupun PIC sangat kecil dibandingkan dengan computer (PC) tetapi fungsi yangdimiliki PIC tidak kalah dengan komputer (PC). Tabel 2.1. menunjukkan perbandinganantara PIC dan computer.

    Tabel 2.2. Perbandingan antara PIC and KomputerItem PIC Komputer (PC)

    Program Firmware yaitu program yangdisisipkan dalam ROM danmenjadi bagian yang permanendalam komponen IC

    Software yaitu programuntuk mengoperasikankomputer

    Catu Daya 3 – 6 Volt DC 220 VacTobol Reset Tersedia TersediaI/O a.  LCD/LED/ 7 segment

     b.  Buzzer, speakerc.  Keypad, tombol switchd.  Serial, parallel, USB port

    a.  Monitor b.  Speakerc.  Keyboard/Moused.  Serial, parallel, USB

    6

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    7/53

    e.  ADC modulef.  PWM Module

    Porte.   –f.  -

    Kecepatan Prosesor Dibawah 40 MHz Beberapa GHzRAM Beberapa Bytes Beberapa Kbytes

    ROM Beberapa Bytes Beberapa KbytesRuang untukdata/program

    Flash, EEPROM (lectricallyerasable programmable read-only memory), ROMBeberapa Kbytes

    HarddiskGbytes

    Dengan ukurannya yang kecil, murah dan berdaya rendah memungkinkan PIC digunakanuntuk tugas-tugas sederhana dalam menggantikan komputer.

    Banyak Peralatan yang bekerja menggunakan Mikrokontroler seperti yang ditunjukkan

    dalam gambar 2-1.

    Gambar 2-1 Beberapa aplikasi penggunaan Mikrokontroler

    2.2. Cara menggunakan Mikrokontroller

    Cara penggunaan mikrokontroler adalah sangat mudah, setelah kita membeli sebuahmikrokontroler kosong dari pasar, lalu kita isi program di dalamnya menggunakansoftware programmer dan downloader, lalu mikrokontroler siap digunakan. Gambar 2.2Menunjukkan Proses penggunaan dari Mikrokontroller.

    7

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    8/53

     

    Gambar 2-2. Proses Pengunaan Mikrokontroler.

    2.3. Mengenal PIC 16F88

    Pada workshop ini akan diperkenalkan PIC16F88, mikrokontroller ini sangat kecil,hanyak memiliki 18 kaki (pin), harganya cukup murah, dan dapat diaplikasikan untuk proyek-proyek sederhana di sekolah atau proyek Robot.Gambar 2-3 menunjukkan configurasi dari kaki-kaki PIC16F88

    Gambar 2-3 Configurasi PIC16F88

    8

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    9/53

    Konfigurasi I/O Mikrokontroler dapat dilihat dari Datasheet Mikrokontroller tersebutyang disarikan sebagai berikut:

    1. Input Mikrokontroler dapat berupa digital atau analog.

    Kalau digital maka tegangan inputnya 0V untuk keadaan 0 dan 5V untuk keadaan 1.

    Kalau analog maka input range tegangannya adalah antara 0 sd 5V

    Output Mikrokontroler hanya digital yaitu tegangan outputnya 0V untuk keadaan 0 dan5V untuk keadaan 1

    Pin Input Analog (AN0-AN6):17, 18, 1, 2, 3, 12, 13Pin Input Digital:PORT A (RA0-RA4): 17, 18, 1, 2, 3PORT B (RB0-RB7): 6, 7,8, 9, 10,11, 12, 13

    Pin Output hanya digital:PORT A (RA0-RA4): 17, 18, 1, 2, 3PORT B (RB0-RB7): 6, 7,8, 9, 10,11, 12, 13

    Pin Mikrokontroler dapat menjadi Input atau Output tergantung Setting pada

    pemogramannya

    PIC adalah komponen semikonduktor yang termasuk golongan CMOS, Complementarymetal-oxide-semiconductor (CMOS) yaitu devais yang memiliki struktur fisika dari FieldEffect Transistor (Transistor yang dipengaruhi Medan) dimana transistor ini memiliki

    gerbang elektroda yang diletakkan di atas isolator oksida semikonduktor yangmenyusunnya. Karena termasuk CMOS transistor maka karekteristik tegangan input danout akan mengikuti gambar 2.4. Dimana pada PIC PORT akan mendeteksi input sebagai0 (LOW atau 0V) jika tegangan sinyal yang masuk adalah dari 0-1.5 V. Lalu akanmendeteksi input sebagai 1 (HIGH atau 5V) jika tegangan sinyal yang masuk adalah 3.5-5V. Untuk tegangan antara 1.5-3.5 V adalah tegangan yang tidak diperhatikan (don’ care)ini tergantung kepada tegangan sebelumnya. Untuk Output, PIC PORT akan memberikanoutput sebagai 0 (LOW atau 0V) dimana tegangan yang dikeluarannya 0-0,05 V. Danakan memberikan output sebagai 1 (HIGH atau 5V) dimana tegangan yang dikeluarannyamendekati 4.95-5 V..

    9

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    10/53

     Gambar 2.4. Karakteristik Tegangan Input dan Output dari PIC

    2.4. Menggunakan PIC

    Untuk menggunakan PIC ada beberapa software dan Hardware yang diperlukan, yaitu:1.  Software: PIC Compiler, yaitu software untuk menulis program lalu mengkompilasi program tersebut menjadi bahasa assembler dan bahasa mesin (hex file). Dalam bukuini kita menggunakan MikroC. Karena bahasa C adalah bahasa yang paling banyakdigunakan di dunia industri dan perguruan tinggi. MikroC adalah software produksi perusahaan Microelektronika. Software ini gratis untuk demo version dan dapat didownload pada:http://www.mikroe.com/en/compilers/mikroc/pic/download.htm.Dalam CD yang menyertai buku ini juga terdapat program ini. Dalam Demo versiontidak ada batas waktu penggunaan, hanya ada batasan maksimal file hex adalah 2kb.Untuk program robot yang digunakan untuk lomba, 2kb sudah mencukupi. Atau

    kalau tidak puas dengan fasilitas gratis 2kb, maka dapat membeli langsung Fullversion software tersebut. Untuk metode instalasi software MikroC bisa dibaca padalampiran 1 buku ini.

    2.  Software: Winpic800, yaitu software untuk mengirim hex file ke PIC, software inigratis dan bisa di download pada:http://www.winpic800.com/index.php?lang=enDalam CD yang menyertai buku ini juga terdapat program ini. Dengan menggunakansoftware ini kita bisa mengecek kondisi PIC, membaca program, menulis programdan menghapus program yang ada di PIC.Untuk metoda menginstalasi software Winpic800 ini bisa dibaca pada lampiran 1 buku ini.

    3. PIC Programmer

    , yaitu alat atau hardware untuk menuliskan program dari computerke PIC. Kebanyakan di pasaran saat ini untuk digunakan hardware ICSP (In CircuitSerial Programming) yaitu antar muka serial yang digunakan PC untuk mendownloadsuatu program kedalam program memori di PIC. Diagram pemogramanmenggunakan ICSP adalah ditunjukkan dalam gambar 2.4.

    4.  Rangkaian Dasar, adalah rangkaian minimal yang diperlukan agar PIC dapat bekerja.Rangkaian ini memerlukan PIC, Tombol Reset, Catu Daya 5 V dan Oscillator.Dengan adanya rangkaian dasar ini maka kita siap mengoperasikan PIC . Gambar 2.5Menunjukkan rangkaian dasar untuk mengopersionalkan PIC. Sedangkan Gambar 2.6

    10

    http://www.mikroe.com/en/compilers/mikroc/pic/download.htmhttp://www.winpic800.com/index.php?lang=enhttp://www.winpic800.com/index.php?lang=enhttp://www.mikroe.com/en/compilers/mikroc/pic/download.htm

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    11/53

    adalah rangkaian catu daya yang biasa diapakai untuk PIC.

    Gambar 2.4.a. Diagram hubungan antara PC, PIC programmer dan PIC Mikrokontroler

    Gambar 2.4.b. Rangkaian Programmer

    11

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    12/53

     

    Gambar 2.5 Rangkaian dasar untuk mengoperasikan PIC Mikrokontroler

       5   V

       9   V

    D1 1N1183

    IN

       G   N   DOUT

    2

       1

    3

    U2 LM7805C LED1 CQX35AR2 1k

       C   4   1  m

       C   3   1   0   0  n

     Gambar 2.6. Rangkaian Catu Daya 5V untuk PIC

    2.5. Hal-hal penting dalam menggunakan PIC

    1.  Arah soket PIC tidak boleh terbalik. Perhatikan no PIN dan kepala PIC. Perhatikangambar 2.7, pada kepala PIC sebelah kiri terdapat pin No. 1 lalu No 2 dan seterusnyamengikuti arah berlawanan jarum jam (Counter Clock Wise). Bila terbalik maka akan

    merusak PIC tersebut, ingat harga PIC16F88 perbuah sekitar Rp 30.000,-

    12

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    13/53

     Gambar 2.7 No urut pin di PIC16F88 bila dilihat dari atas

    2.  Matikan Switch (switch Off) atau putuskan hubungan ke catu daya ketika memasangPIC ke soketnya.

    3.  Karena tubuh kita memiliki listrik statik, maka sebaiknya sebelum menyentuh PICtempelkan tangan kita ke lantai atau badan computer.Diusahakan ketika memegangPIC kita tidak menyentuh kaki-kakinya. Pergunakan alat lain (tool) seperti obeng dan pinset ketika membuka PIC dari soketnya.

    4.  Input tegangan yang lebih dari 5V atau kurang dari 0 V untuk setiap port akanmerusak PIC secara permanen, cek dahulu tegangan yang akan kita hubungkan kePIC untuk menjaga keamanan.

    5.  Untuk menghemat baterei, sebaiknya ketika kita tidak menggunakan Rangkain PICkita, kita putuskan hubungan (atau matikan switch) ke baterai.

    2.6. Kit Mikrokontroler

    Untuk mempelajari Mikrokontroler diperlukan suatu alat yang disebut Kit.Kit yang dipersembahkan dalam Training ini adalah MINI18 PIC Training Kit yaitu Kituntuk Pendidikan (Educational Mini Microcontroller Kit). Yang didesain untukmemberikan dasar-dasar mikrokontroller (memogram , mengetes dan mengembangkan) beserta latihan mengerjakan beberapa proyek praktis.Kit ini terdiri dari Programmer dan Rangkaian Aplikasi.Kit ini menggunakan PIC16F88, Mikrokontroller ini dipilih karena termasuk yang murahdan lengkap untuk berbagai aplikasi. Terdapat 14 pin I/O juga ada fungsi ADC dan PWM.Sehingga cocok digunakan untuk dunia pendidikan dan lomba Robot.

    Gambar 2.8 Menunjukkan Kit yang akan kita gunakan, sedangkang pada gambar 2.9menunjukkan rangkaian aplikasi yang akan digunakan .

    13

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    14/53

     Gambar 2.8 MINI PIC Training Kit

    Gambar 2.9 Rangkiana Aplikasi dalam MINI PIC Training Kit

    Cara menggunakan Kit ini adalah dengan mencolokkan langsung Port Programmer keSerial Port di komputer seperti yang ditunjukkan adalam gambar 2.10.a dan 2.10 b

    14

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    15/53

     Gambar 1.10.a. Menghubungkan Programer ke Komputer

    Gambar 1.10.b Kit dihubungkan ke PC mendownload program dari komputer ke PIC

    Kemudian seteleah setelah selesai mendonload program maka PIC dicabut dariRangkaian Prograamer dan dipindahkan ke rangkaian Aplikasi.

    15

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    16/53

     

    Lalu sambungkan catu daya 9 V dan tekan Switch ON untuk menjalankan.

    2.7. Perintah Dasar Bahasa C dalam memprogram PIC

    Tidak semua perintah bahasa C yang akan kita gunakan untuk memprogram PIC,

     beberapa hal yang penting adalah:

    a. Deklarasi Variabel

    Bentuk umum pendeklarasian suatu variable adalah : Nama_tipe nama_variabel;Contoh :

    int x; // Deklarasi x bertipe integerchar y, huruf, nim[10]; // Deklarasi variable bertipe charfloat nilai; // Deklarasi variable bertipe floatdouble beta; // Deklarasi variable bertipe doubleint array[5][4]; // Deklarasi array bertipe integer

    char *p; // Deklarasi pointer p bertipe char

    b. Operator Penugasan

    Operator Penugasan (Assignment operator) dalam bahasa C berupa tandasama dengan (“=”). Contoh :nilai = 80;A = x * y;Artinya : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalianantara x dan y.

    c.Operator Aritmatika

    Bahasa C menyediakan lima operator aritmatika, yaitu :* : untuk perkalian/ : untuk pembagian+ : untuk pertambahan- : untuk pengurangan

    d. Operator Hubungan (Perbandingan)

    16

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    17/53

    Operator Hubungan digunakan untuk membandingkan hubungan antara dua buahoperand (sebuah nilai atau variable. Operator hubungan dalam bahasa C :

    d.1 .Operator Arti

    Contoh

    < Kurang dari x < y // x kurang dari y y // x lebih dari y>= Lebih dari sama dengan x >= y // x lebih dari sama dengan y== Sama dengan x == y // x sama dengan y!= Tidak sama dengan x != y // x tidak sama dengan y

    d.2. Operator Logika

    Jika operator hubungan membandingkan hubungan antara dua buah operand, makaoperator logika digunakan untuk membandingkan logika hasil dari operator-operatorhubungan. Operator logika ada tiga

    macam, yaitu :• && Logika AND (DAN)• || Logika OR (ATAU)• ! Logika NOT (INGKARAN)

    e. Pemilihan Pernyataan

    e.1. Struktur Kondisi if…. dan  if..else Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika kondisi yangdiperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan.

    Bentuk umumnya adalah sebagai berikut :

    if(kondisi) {…..}

    if(kondisi){pernyataan-1}else {pernyataan-2 }

    Contoh:if (m == 1) {x = x + 20} else {y = y – 10};

    // jika m=1 maka harga x baru=x+20, jika tidak maka harga y yang baru = y-10.

    e.2. Perulangan while

    Banyak digunakan pada program yang terstruktur. Perulangan ini banyak digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut selamakondisinya bernilai benar (true) atau 1 dan akan berhenti bila kondisinya bernilai salah.

    Bentuk umum dari pengulangan will ini adalah :

    17

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    18/53

    while(kondisi){ pernyataan};

    Contoh:int s, i;

    s = i = 0;

    while (i < 6) {s = s + 2;i = i + 1;

    }

    Kode ini akan menambah bilangan 2 untuk variabel s sebanyak 6 kali dan di akhir program s akan menjadi 12.

    e.3. Pengulangan do..while 

    Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanyasaja pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas

    sementara pada perulangan do....while, seleksi while berada di bawah batas perulangan.Jadi dengan menggunakan struktur do...while sekurangkurangnya akan terjadi satu kali perulangan.

    Bentuk umum:do {pernyataan} while(kondisi);

    Contoh:int s, i;s = i = 0;do {

    s = s + 2;i = i + 1;}

    while (i < 7);

    Kode ini akan menambah bilangan 2 untuk variabel s sebanyak 7 kali dan di akhir program s akan menjadi 14.

    2.8. Perintah-perintah Penting untuk Mikrokontroler

    a. Menegaskan suatu PORT sebagai Input atau OutputPORTB sebagai Output

    TRISB = 0 ;PORTB sebagai Input

    TRISB = 0;PIN B1 sebagai output saja

    TRISB.F1 = 0;

     b. Menegaskan nilai output suatu PORT

    18

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    19/53

    Nilai semua PORTB = 0 V (Keadaan 0)

    PORTB = 0 ;Nilai semua PORTB = 5 V (Keadaan 1)

    PORTB = 255; (Karena 255= 1111 1111 di binary)Nilai awal PIN B1 = 5 V saja

    PORTB.F1 = 1;

    c. PernyataanPernyataan tidak akan diproses oleh komputer hanya membantu untuk pembuat

    dan pembaca program.

    Menggunakan tanda // untuk satu baris pernyataan atau /*...pernyataan........*/

    untuk satu paragraf

    PORTB = 0; //Membuat nilai semua PORTB = 0

    d. Struktur ProgramUntuk setiap program perlu pernyatan memulai dengan pernyataan:

    void main()

    e. Loop (Pengulangan)Agar program kita diulang terus menerus oleh mikrokontroler maka perlu

    perintah:do //awal loop

    {….….}while(1) ; //akhir loop

    f. Mengecek Nilai digital inputNilai digital input yang masuk (0V atau 5 V) dapat dicek dengan perintahIf (pernyataan) {maka….}Contoh:jika nilai Port RA1 = 5 V maka Output pada Port RB1 akan 5 V.

    If (PORTA.F1 == 1) {PORTB.F1=1}

    g. Waktu Tunda (pause) yaitu membuat program sebelumnya bekerja dalam jangkawaktu tertentuUntuk menunggu 1 detik (1000 ms) maka perintahnya:

    Delay_ms(1000)

    g. Mengeset Apakah Konversi Analog ke Digital Aktif atau Pasif

    Untuk menggunakan agar Input Analog pada mikrokontroler aktif maka denganmengesetnya menggunakan perintah ADCON0:

    Kalau ingin fungsi ADC aktif, maka perintahnya:

    ADCON0 = 1;Kalau ingin fungsi ADC tidak aktif, maka perintahnya:

    ADCON0 = 0;

    19

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    20/53

    h. Mengeset apakah suatu input digital atau anlog dengan perintah ANSEL, perhatikan gambar 2.9, hanya pin yang berlabel AN saja yang dapat menggunakan fungsiini.Misalkan kita ingin mengeset AN0 sebagai analog, maka perintahknya:ANSEL.F0=1;

    Kalau ingin pin AN3 sebagai digital maka perintahnya:ANSEL.F3=0;Kalau semua pin analog digital maka perintahnya:ANSEL=0;

    2.9. Bilangan Desimal, Binari dan Hexadesimal

    Dalam Pemograman PIC MIkrokontroller ada beberapa cara penulisan bilangan1. Binari, yaitu bilangan yang terdiri dari 0 dan 1.2. Desimal, yaitu bilangan yang terdiri dari bilangan 0,1,2,3,4,5,6,7,8,9

    3. Bilangan Hexadesimal yang terdiri dari bilangan 0-9, A, B, C, D, E, F

    Tabel bilangan tersebut ditujukkan dalam Table 3.

    20

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    21/53

     Dalam pemograman kita bisa menentukan nilai suatu port dengan perintah sebagai berikut :

    Bilangan Operator Contoh Arti

    Binari 0b PORTB=0b00111111;  Nilai PORT B0=1,B1=1, B2=1, B3=1,B4=1, B5=1, B6=0,B7=0

    Hexadesimal 0x PORTB=0x0F ; 0F setara dengan00001111, jadi nilaiPORT B B0=1, B1=1,B2=1,B3=1,B4=0,B5=0,B6=0, B7=0

    Desimal PORTB =12 ; Nilai 12 setara dengan00001100 dalam binari,

    maka nilai PORT BB0=0,B1=0, B2=1,B3=1, B4=0,B5=0,B6=0, B7=0

    Kita juga dapat menentukan perintah perbit

    PORTB.F2=1 ;Yaitu nilai PORT B2=1 ;

    Mengkonversi bilangan dec, hex dan bin

    Untuk Mengkonversi antara decimal, binary dan hexadecimal dapat digunakan calculatorconverse pada microC.Caranya setelah membuka MikroC. Pada bagian bawah dari Windows MikroC akan kitadapatkan tab-tab: Messages, Find, Qconvertorseperti yang ditunjukkan oleh gambar 1.11.Kemudian klik Qconveror maka kita akan mendapatkan gambar 1.12. Denganmenuliskan salah satu kolom yang ada maka nilai bilangan lainnya bisa kita peroleh.Misalkan kita tulis 255 di decimal, maka akan kita peroleh FF di hexadecimal dan11111111 di binary.

    21

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    22/53

     

    Gambar 1.11 Windows di MikroC

    Gambar 1.12. Fasilitas QConvertor di MikroC

    22

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    23/53

    2.10. Proyek Pertama menggunakan PIC

    a. Persoalan

    Pada proyek ini kita akan menghidupkan LED dengan aturan sebagai berikut:1.  Pada satu detik pertama semua LED (Ada 6) yang ada di PORT B (RB0 hingga

    RB5) hidup semua.2.  Lalu satu detik berikutnya yang hidup hanya LED pada PORT B0, B2, B4. AtauLED Merah-Hijau-Kuning

    3.  Kemudian satu detik berikutnya yang hidup hanya LED pada PORT B1, B3 danB5. Atau LED Kuning-Hijau-Merah

    4.  Proses in berulang ke No. 1

    b. Rangkaian Elektronik

    Kita menggunakan rangkaian gambar 1.13

    Gambar 1.13 Rangkaian PIC dan LED

    Pada gambar 1.13 output PIC adalah 5V dan arus 10mA. Karena tegangan maksimalLED hanya 2.1 V, sehingga diperlukan tahanan 470 Ohm. Keterangan secara terperincitentang hubungan LED, Tegangan dan Tahanan di Jelaskan pada gambar 1.14.

    Gambar 1.14 Cara menghubungkan LED dengan Resistor (tahanan).

    23

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    24/53

    c. Algoritma dan Flow Chart

    lgoritma adalah urutan logis yang disusun secara sistematis untuk memecahkan masalah.

    1.  Mendefinisikan PORT yang akan kita pakai sebagai output

    GH (1) untuk pin di PORT B0-B5

    RT B0, B2, B4., lainnya LOW

    IGH untuk PORT B1, B3 dan B5.

     No. 3

    lowchart adalah pemaparan algoritma dalam bentuk gambar, yaitu diagram alir dari

    ablel. Menunjukkan beberapa symbol dalam Flowchart yang biasa digunakan

    imbol Arti

    APenulisannya bisa menggunakan Flow Chart atau dengan urutan biasa. Untuk persolan diatas algoritmanya yaitu.

    2.  Menentukan nilai awal untuk PORT yang akan kita pakai3.  Memulai Program4.  Membuat output HI5.  Tunggu satu detik atau 1000 ms.6.  Membuat Output HIGH untuk PO7.  Tunggu 1000 ms8.  Membuat Output H9.  Tunggu 1000 ms10. Mengulang lagi ke

    Falgoritma yang ada dengan menggunakaan symbol-simbol yang saling terhubung danmembentuk urutan penyelesaian masalah. Biasanya dengan flow chart proses pemograman akan mudah dimengerti.

    T S

     

    Terminator, fungsinya sebagai permulaan /akhir program.

    au arah alir fungsinya untukDiagram alir, atmenunjukkan arah aliran program.Preparation, fungsinya untuk prosesinisialisasi/pemberian harga awal atauuntuk perulangan/looping

    Proses, fungsinya untuk proses perhitungan/proses pengolahan data.

    Input data, fungsi untuk proses input data, parameter.

    Output data, output data, informasi

    Decision, perbandingan pernyataan, penyeleksian data yang memberikan pilihan untuk langkah selanjutnya

    24

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    25/53

     

    On page connector, penghubung bagian- bagian flowchart yang berada pada satuhalamanOff page connector, penghubung bagian- bagian flowchart yang berada pada

    halaman berbeda

    Gambar 21.13 menunjukkan Flowchart dari algoritma di atas adalah sebagai berikut:

    Gambar 1.15 Flowchart untuk mengatur LED di PORT B

    d. Menulis Program

    Langkah berikutnya adalah bagaimana menyusun algoritma di atas kedalam suatu program. Kita menggunakan program MikroC, pertama-tama kita aktifkan programMikroC, dari program yang ada di windows, Start> All Programs > Mikroelectronika >MikroC atau klik dobel dari ikon MikroC di desk top.

    25

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    26/53

     atau klik dobel dari ikon MikroC di desk top.

    Setelah itu program MikroC akan keluar. Dilanjutkan dengan Project Wizard dari Menu:Project

    Pilih New Project, maka akan keluar:

    26

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    27/53

     Pada Project Name: Tulislah nama project Anda misalkan PROYEK_PERTAMAKUIsilah Project Path, yaitu tempat/folder mana proyek itu akan disimpan Discription, anda bisa tulis juga bisa tidak (hanya pilihan)Pada Device, pilihlah PIC16F88 karena kita akan memakai devais tersebut.Pada Clock anda tuliskan 20.000000 (20 MHz)Klik default  untuk menggunakan konfigurasi default.Lalu klik OK untuk melanjutkan.

    Selanjutnya MikroC compiler akan menyiapkan satu proyek file dan source file yang

    masih kosong. Lalu anda bisa menulis program pada window editor.

    27

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    28/53

     Tulislah Program ini di pada window editor:

    /* Nama Program PROYEK_PERTAMAKUConnection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-HB6_SW1, B7-SW2A1-BuzzerA0=LDR*/void main(){

    PORTB = 0; //nilai awal PORTB=0TRISB = 0; //PORTB sebagai Output{do{PORTB = 0b00111111; //bilangan binari 00111111

    Delay_ms(1000);PORTB = 0b00101010; //bilangan binari 00101010Delay_ms(1000);PORTB = 0b00010101; //bilangan binari 00010101Delay_ms(1000);}while(1) ;

    }}

    Keterangan untuk Program di atas:

    Perintah Keteranganvoid main() Menunjukkan program Utama dimulai{ atau } Adalah tanda kurung yang memudahkan kita

    membagi/mengidentifikasi program dalam beberapa blok// atau /*…..*/ Adalah komen atau keterangan yang tidak akan dieksekusi

    oleh computerKalau // untuk satu baris saja, sedangkanKalau /* di awal paragraph dan */ diakhir paragraph dapatmembuat komen untuk satu paragraf atau banyak barissekaligus

    PORTB = 0b00000000;TRISB = 0b00000000;

    Kita memberikan nilai awal PORTB=0 Mengeset PORTBsebagai Output

    Dalam bahasa C, apabila angka dimulai dengan 0b maka inidiidentifikasi sebagai angka binary, karena PORTB ada 8PORT, maka dengan mengeset PORTB = 0b00000000 artinyaPORT B0 hingga B7 akan memiliki nilai awal 0.Untuk bilangan hexadecimal digunakan bilangan yang dimulai0x, sedangkan bilangan decimal biasa tidak menggunakan 0.Contoh yang bisa kita buat adalah:0xff akan sama nilainya dengan 0b11111111 juga akan samadengan 255 di bilangan desimal.

    28

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    29/53

    Dengan mengeset TRISX, maka kita dapat mengkondisikansuatu PORT itu akan menjadi input atau output, conthonya:TRISX = 0x00 membuat PORT X sebagai output dan TRISX= 0xff membuatnya menjadi Input. makes the port as inputs.Sebagian input dan sebagian output juga bisa diset, misalkanTRISA= 0b00001111 artinya PORTA pin A0,A1,A2,A3 segai

    input (karena set 1) dan pin A4,A5,A6,A7 sebagai output(karena set 0).

    do… while(1); Memerintahkan untuk memulai loop yang tak pernah berhenti.While (1) artinya jika kondisi TRUE atau 1, maka akankembali ke do lagi.

    PORTB = 0b00111111; Pada PORTB kita berikan outputB0=1,B1=1,B2=1,B3=1,B4=1,B5=1, B6=0, B7=0 Dibaca bitdari belakang

    Delay_ms(1000); Artinya pause atau tunda waktu selama 1000 ms atau 1 detik.Untuk waktu yang lama maka perlu dibuat kelipatan 1 menitatau Delay_ms(60000);

    e. Mengkompilasi ProgramSetelah anda tulis program di atas, lalu klik icon save atau dari menu File pilih save

    Setelah itu klik Compile Icon atau build project atau tekan Ctrl+F9 atau dari menuProject> Build

    29

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    30/53

     

    Maka MikroC akan mengkompilasi program tersebut, mengkompail artinya membuat

     program assembler , debugger dan hex file. Hex file akan digunakan oleh PIC.

    f. Mentrasfer Hex File ke PIC

    Menstransfer Hex file ke PIC dikenal juga dengan mendownload program ke PIC,caranya kita harus memiliki programmer hardware dan WinPIC800 software. Pertamakita panggil program WinPIC800 dengan cara klik doble icon program tersebut di

    desktop . Lalu kita hubungkan kabel antara Serial Port COM (RS232) di computerdengan rangkaian programmer. Setelah kita klik dobel program WinPic800 akan keluarwindows:

    30

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    31/53

     Pilihlah PIC pada pull down selection yaitu 16F88 seperti yang ditunjukkan pada gambardi atas.

    Lalu click untuk mengecek PIC dan juga kabel antara computer dan programmer.Setelah itu klik untuk menghapus semua program yang terdahulu dalam PIC.

    Setelah itu klik open File icon untuk memilih file hex yang akan dipindahkan kePIC.

    Lalu klik Open kemudian kembali ke window WinPic800

    Lalu klik untuk menulis/menstransfer semua program hex ke PIC.

    Setelah All Program selesai maka proses download hex file ke PIC sudah selesai,selanjutnya anda dapat memindahkan PIC yang telah di tulis itu kepada rangkaian PICLED di atas (gambar 1.16), lalu hubungkan batrei 9V ke batrei socket dan tekan switchON untuk menyalakan dkemudian anda akan melihat LED akan bergantian menyalaseperti yang anda programkan.

    31

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    32/53

     

    Gambar 1.16 Rangkaian Aplikasi.

    32

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    33/53

    Bab 3Membuat Proyek Sederhana dengan PIC

    A. Membuat Sistem Lalu Lintas untuk penyebrang Jalan

    Lampu lalu lintas adalah hal yang umum kita lihat di jalan sehari-hari, dan menggunakanPIC anda pun bisa membuatnya. Dengan mempelajari proyek ini anda akan tahu bagaimana membaca input digital, juga mengatur waktu untuk menghasilkan output yangdikendaki.

    1.Persoalan

    Sebuah penyebrangan Jalan sebagaii mana terlihat dalam gambar 3.1. Terdapat lampulalu lintas untuk penyebrang Jalan dan untuk mobil yang lewat. Pada setiap lampu lalulintas terdapat tombol yang kita beri nama Switch E0 dan E1.

    1.  Kondisi normal adalah : Lampu Untuk Mobil Hijau dan Lampu UntukPenyebrang Merah.

    2.  Ketika Penyebrang menekan salah satu switch maka lampu akan berubah:Lampu untuk Mobil: Kuning (2 Detik) Merah (7 detik)Lampu Untuk Penyebrang: Merah 2 detik Hijau (5 detik)kuning (2 detik).

    Gambar 3.1. Lampu Lalu Lintas Untuk Penyebrang Jalan

    2. Rangkaian Elektronik

    Untuk membuat Lampu Lalu Lintas dalam skala Lab atau skala kecil kita memerlukan 6 buah LED dengan warna Hijau, Kuning, Merah dan 2 buah Switch, serta PICmikrokontroler untuk mengontrol semuanya. Gambar diagram dari rangkaian elektrikyang diperlukan ditunjukkan di gambar 3.2.

    33

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    34/53

     Gambar 3.2. Rangkaian Elektronik untuk Proyek Lampu lalu lintas bagi PenyebrangJalan

    Terlihat bahwa 6 buah LED kita hubungkan dengan PIN B0 – B5, dan switch kitahubungkan dengan Pin E0 dan E1.

    3. Algoritma

    Untuk persolan di atas algoritmanya yaitu.1.  Mendefinisikan PORT yang akan kita pakai sebagai input dan output2.  Mengeset PORT E0 dan E1 sebagai pembaca input digital.3.  Menentukan nilai awal untuk PORT yang akan kita pakai4.  Memulai Program

    5.  Set Untuk kondisi normal: LED Merah Penyebrang ON dan LED Hijau Mobil ON6.  Jika Salah satu switch ditekan (Switch 1 atau Switch 2) maka:•  1. Set 2 detik pertama Lampu LED Merah Penyebrang ON dan Lampu LED

    Kuning Mobil ON•  2. Kemudian, Pada waktu 5 detik, Lampu LED Hijau Penyebrang ON dan

    Lampu LED Merah Mobil ON•  Set 2 detik terakhir, Lampu LED Kuning Penyebrang ON dan Lampu LED

    Merah Mobil ON6. Kembali Ke kondisi normal

    4. Menulis Program

    Gunakan Program Berikut dan tuliskan di MikroC, lalu lakukan kompilasi untukmembuat Hex file dan download ke PIC menggunakan PIC Programer. Kemudian tes program tersebut dan lihatlah apakah program yang anda buat berhasil?

    /* Nama Program SWITCH*Connection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-HB6_SW1, B7-SW2A1-Buzzer

    34

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    35/53

    A0=LDR*Warna Lampu Penyebrang Hijau=Port B2, Kuning=B1, Merah=B0**Warna Lampu Mobil Hijau=B5, Kuning=B4, Merah=B3**Switch Penyebrang ada di PORT B6 dan B7*/void main(){

    PORTB = 0; //nilai awal PORTB=0PORTA = 0; //nilai awal PORTA=0//SET PORT B sebagai INPUT atau OUTPUTTRISB.F0 = 0; //PORT B0 sebagai OutputTRISB.F1 = 0; //PORT B1 sebagai OutputTRISB.F2 = 0; //PORT B2 sebagai OutputTRISB.F3 = 0; //PORT B3 sebagai OutputTRISB.F4 = 0; //PORT B4 sebagai OutputTRISB.F5 = 0; //PORT B5 sebagai OutputTRISB.F6 = 1; //PORT B6 sebagai inputTRISB.F7 = 1; //PORT B7 sebagai input//SET PORT A1 SEBAGAI OUTPUTTRISA.F1 = 0;

    //Analog SelectionANSEL.F5 = 0; //Set AN5 sebagai digitalANSEL.F6 = 0; //Set AN6 sebagai digital{do{if((PORTB.F6==1) || (PORTB.F7==1)) //jika switch B6 atau B7 HIGH{/*Penyebrang (B2(M),B1(K),B0(M)): merah 2 detik lalu hijau 5 detik kemudian kuning 2 detik** Mobil (B5(H),B4(K),B3(M)): kuning 2 detik lalu merah 7 detik**Set 2 detik pertama B2 ON dan B4 ON */PORTB.F2 = 0;PORTB.F1 = 0;PORTB.F0 = 1; //P-Merah ON

    PORTB.F5 = 0;PORTB.F4 = 1; //M-Kuning ONPORTB.F3 = 0;Delay_ms(2000); //2 detik pertama//Set 5 detik,PORTB.F2 = 1; //P-Hijau ONPORTB.F1 = 0;PORTB.F0 = 0;PORTB.F5 = 0;PORTB.F4 = 0;PORTB.F3 = 1; //M-Merah ONDelay_ms(5000);//Set 2 detik terakhirPORTB.F2 = 0;

    PORTB.F1 = 1; //P-Kuning ONPORTB.F0 = 0;PORTB.F5 = 0;PORTB.F4 = 0;PORTB.F3 = 1; //M-Merah ONDelay_ms(5000);}else{

    35

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    36/53

      PORTB.F2 = 0;PORTB.F1 = 0;PORTB.F0 = 1; //P-Merah ONPORTB.F5 = 1; //M-Hijau ONPORTB.F4 = 0;PORTB.F3 = 0;}

    }while(1) ;

    }}

    B. Membuat proyek Sistem Keamanan di Rumah

    Sistem Keamanan di Rumah adalah sesuatu hal yang peling penting untuk setiap orang,karena kita tidak akan membiarkan rumah kita dicereboh oleh pencuri atau perampok.Untuk itu diperlukan suatu system yang mendeteksi kehadiran pencuri atau perampokdan melaporkannya secara cepat kepada kita dalam bentuk suara alarm. Dalam proyek inianda akan belajar cara membuat sistem kemanan rumah dan mengujinya.

    1. Persoalan

    Gambar 3.6. Menunjukkan sebuah rumah yang memiliki 2 alat pendeteksi atau sensorkehadiran pencuri. Yang pertama yaitu switch sentuh (micro switch) yang diletakkan di bawah keset dan yang kedua switch yang diletakkan di Jendela. Apabila pencurimenginjak keset atau membuka jendela akan mengaktifkan switch yang ada. Pada kesetkita buat suatu kondisi, apabila keset diinjak maka nilai output switch akan HIGH.Sedangkan pada jendela apabila jendela dibuka maka kondisi nilai switch akan LOW.Disini kita sudah mengeset kondisi switch yaitu normali open (NO) (dalam kondisinormal dua elektroda kontak di switch tidak terhubung atau dalam kondisi normal nilaitegangannya LOW) dan normali close (NC) (dalam kondisi Normal dua elektroda kontakterhubung atau dalam kondisi normal nilai tegangannya HIGH). Untuk melaporkankepada kita, maka kita gunakan lampu merah LED akan kelap-kelip dan buzzer akanakatif menghasilkan suara alarm.

    1.  Kondisi normal adalah : Switch di set LOW dan Switch di Jendela High, LampuLED menyala Hijau dan Buzzer Off.

    2.  Ketika Pencuri masuk dengan Jalan Menginjak Keset Atau Membuka Jendela,maka lampu LED merah akan menyala kelap kelip dan buzzer akan aktif.

    36

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    37/53

     

    Gambar 3.6 Sistem keamanan pada rumah

    2. Rangkaian Elektronik

    Untuk membuat Sistem keamanan rumah kita memerlukan 2 buah switch, yang kitaletakkan di Pin B6 dan B7 pada PIC, 2 buah LED berwarna hijau dan merah yang kita

    hubungkan di pin B3 (hijau) dan B0 (Merah) dan satu buah Buzzer yang kita hubungkandengan pin A2, serta sebuah PIC mikrokontroler untuk mengontrol semuanya. Gambardiagram dari rangkaian elektrik yang diperlukan ditunjukkan di gambar 3.7.

    Hubungan antara pin di PIC dan komponen yaitu:

    LED Hijau Pin B3LED Merah Pin B0Switch 1 Pin E6Switch 2 Pin E7Buzzer Pin A1

    37

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    38/53

    .

    Gambar 3.7. Diagram hubungan anatra PIC dan Komponen

    3. Algoritma

    Untuk persolan di atas algoritmanya yaitu.1.  Mendefinisikan PORT yang akan kita pakai sebagai input dan output2.  Menentukan nilai awal untuk PORT yang akan kita pakai3.  Mengeset PORT E0 dan E1 sebagai pembaca input digital.

    4.  Memulai Program5.  Set Untuk kondisi normal: LED Hijau selalu ON untuk Menyatakan sitem ready.6.  Jika Salah satu switch ditekan (Switch 1 atau Switch 2) maka:•  Lampu LED Merah menyala Kelap kelip dan Buzzer ON selama 10 detik.

    Kembali Ke kondisi normal

    4. Menulis Program

    Gunakan Program Berikut dan tuliskan di MikroC, lalu lakukan kompilasi untukmembuat Hex file dan download ke PIC menggunakan PIC Programer. Kemudian tes program tersebut dan lihatlah apakah program yang anda buat berhasil?

    /* Nama Program SWITCHConnection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-HB6_SW1, B7-SW2

     A1-Buzzer A0=LDR

    */void main(){

    PORTB = 0; //nilai awal PORTB=0PORTA = 0; //nilai awal PORTA=0

    38

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    39/53

      //SET PORT B sebagai INPUT atau OUTPUTTRISB.F0 = 0; //PORT B0 sebagai OutputTRISB.F1 = 0; //PORT B1 sebagai OutputTRISB.F2 = 0; //PORT B2 sebagai OutputTRISB.F3 = 0; //PORT B3 sebagai OutputTRISB.F4 = 0; //PORT B4 sebagai OutputTRISB.F5 = 0; //PORT B5 sebagai Output

    TRISB.F6 = 1; //PORT B6 sebagai inputTRISB.F7 = 1; //PORT B7 sebagai input//SET PORT A1 SEBAGAI OUTPUTTRISA.F1 = 0;//Analog Selection

     ANSEL.F5 = 0; //Set AN5 sebagai digital ANSEL.F6 = 0; //Set AN6 sebagai digital{do{if((PORTB.F6==1) || (PORTB.F7==1)) //jika switch B6 atau B7 ON{/*Maka Buzzer ON dan LED Merah Menyala Kelap Kelip */PORTA.F1 = 1; //PORTE Pin A1 High, Buzzer ON//LED Merah Kelap kelip

    PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFFDelay_ms(500);PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFFDelay_ms(500);PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFFDelay_ms(500);PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFF

    Delay_ms(500);PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFFDelay_ms(500);Delay_ms(500);PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFFDelay_ms(500);Delay_ms(500);PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFFDelay_ms(500);Delay_ms(500);PORTB.F0 = 1; //LED Merah ONDelay_ms(500);PORTB.F0 = 0; //LED Merah OFFDelay_ms(5000); //Buzzer ON selama 5 detik}else{PORTB.F2 = 1; //Kondisi normal LED Hijau ONPORTA.F1 = 0; //Buzzer OFF

    39

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    40/53

      }}while(1) ;

    }}

    C. Membaca Data Dari Sensor

    Membaca d ata dari sensor, mirip kita melakukan akusisi data menggunakanmikrokontrler. PIC16F88 dapat digunakan sebagai IC untuk melakukan akusisi datakarena memiliki Analog Digital Converter Port, ada 6 analog input yaitu pada PORTAN0 hingga AN5. RA0-RA4 terdapat AN0 hingga AN4, dan pada RB6 dan RB7 terdapatAN5 dan AN6. jika sinyal yang diterima oleh port ini berupa analog, maka oleh PIC sinyal inidokonversi menjadi nilai digital untuk diolah dalam proses selanjutnya. Dengan memiliki

    PORT Analog ini maka PIC dapat menerima output sinyal dari sensor. Selain itu yang perlu diingat adalah sinyal analog yang dapat diterima oleh PIC harus dalam jangkauantegangan 0-5 V, apabila sinyal tegangan dari sensor berada di luar jangkauan ini, makaharus dibuat rangkaian pengkondisian sinyal agar dapat berada pada 0 – 5 V. Selain ituPolaritas + dan – harus diperhatikan juga, kabel negative dari sensor harus dihubungkanke ground pada PIC input dan kabel postif dihubungkan ke PORT A0, A1, A2, A3, B6,dan B7Perintah Dasar ADC

    MikroC memiliki library (Kode pustaka) untuk menjalankan operasi ADC yaitu:

    1. Adc_ReadFungsi: Memulai membaca port analogPenulisan: Adc_Read(No_chanel_analog_port);

    2. ADCON1Fungsi: Mengaktifkan Konversi analog ke digitalPenulisan: ADCON1 = 0; Mengaktifkan ADC pada semua port analog

    Pengkonversi Analog ke Digital (Analog-Digital Converter)

    Disingkat dengan ADC, A/D atau A to D adalah suatu proses mengkonversi sinyal(tegangan) analog ke bilangan digital diskrit. ADC ini terdapat dalam IC ADC atau salahsatu bagian di IC yang mengkonversi sinyal kontinyu ke bilangan digital diskrit. Proses pengkonversian meliputi pencuplikan sinyal (sampling) kemudian mengubahnya menjadi bilangan digital yang akan diterima oleh komputer. Ada beberapa istilah yang perludiketahui ketika menggunakan ADC. Yang pertama adalah bit, yaitu singkatan dari binary digit, unit atau satuan terkecil dari penyimpanan informasi data dan komunikasidigital. Bilangan binary ini berupa 0 atau 1, Panjang Bit adalah jumlah bilangan binaryyang dapat diproses oleh suatu instrument, contohnya 10100011 memiliki panjang 8 bit.Sedangkan byte adalah koleksi atau jumlah dari bit. ADC memiliki batasan bit, yaitu

    40

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    41/53

     jumlah bit maksimal yang dapat diproses. Gambar 4.2. menunjukkan proses konversiyang terjadi.pada suatu ADC yang miliki 3 bit dan tegangan input dari 0 hingga 10 V.Untuk ADC yang mimiliki 3 bit maka bilangan binary minimal adalah 000 dan maksimal111. Jumlah bilangan binary dari 000 ke 111 adalah 23-1=7, yaitu 000, 001, 011, 100, 101,110, 111.

    Gambar 4.2. Proses Konversi dari analog ke digital

    Karena tegangan masukan ADC dari 0 hingga 10 V, kemudian ada 7 bilangan binarymaka tegangan dari 0 hingga 10 V dibagi 7 tingkatan, dan setiap peningkatan bilangan binary akan berkaitan dengan peningkatan tegangan input sebesar 1.25 V. Dalam ADC juga dikenal istilah resolusi yaitu nilai peningkatan terkecil bilangan binary yang dapatdibaca, untuk menghitung resolusi ini menggunakan rumus

    n

    V V Q

    2

    minmax −=   (4.1)

    dimana Vmax dan Vmin adalah tegangan maksimal dan minimal input ADC, dan n adalah

     jumlah bit ADC. Kalau kita gunakan rumus ini untuk menghitung resulusi ADC padagambar 4.2 maka akan kita dapatkan resolusi ADC ini adalah 25.1

    2

    0103

      =− . Maka computer

    akan meninterprestaikan setiap perubahan 1 digit bersesuaian dengan 1.25V. Apabila bilangan digital 110 ini setara dengan tegangan 8.75 V.Untuk latihan suatu PIC Mikrokontroler memiliki 8 bit ADC, ini berarti tingkatan digitaladalah dari 0 – 255. Jika kita set tegangan referensi adalah 5 V, maka 0 – 5 V bisadirepresentasikan sebagai 0-255 dalam format digital. Misalkan 5 V akan ditunjukkan

    41

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    42/53

    dengan 255, dan 2.5 V ditunjukkan dengan 128. Rumus untuk menghitung tagangandalam unit digital adalah

    )12(   −⎟⎟

     ⎠

     ⎞

    ⎜⎜

    ⎝ 

    ⎛ = n

    ref 

    in

    V  x , (4.2)

    dimana Vin  adalah tegangan masukan ke ADC, Vref   adalah tegangan referensi atau

    tegangan untuk skala full, n adalah bit ADC. Kalau kita hitung Resolusi ADC PIC 8 bitini adalah: 5/256=19.5 mV.

    Persoalan

    Pada bagian berikut kita akan mengambil data dari sensor LDR. LDR adalahoptoelektronik sensor, yang akan memberikan response terhadap cahaya. Denganmeningkatnya intensitas cahaya yang diterimanya maka tahanan yang ada pada LDRakan menurun. Dengan menggunakan rangkaian pembagi tegangan, maka perubahantahanan ini akan dikonversi menjadi tegangan listrik. Diagram dari sensor yang kitagunakan adalah ditunjukkan pada gambar 4.4.

    Gambar 4.4. Konfigurasi Sensor Cahaya

    Gambar 4.4. Menunjukkan Diagram Rangkaian listrik yang akan kita gunakan, yangterdiri dari 1 LDR sebagai sensor, terletak di PORT A0. Hasilnya kita ingin ditunjukkandengan perubahan hidup matinya LED di PORT B0 sampai B4.

    .

    Program untuk menyelesaikan soal di atas ditunjukkan di sini:

    /* Nama Program ADCConnection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-HB6_SW1, B7-SW2A1-BuzzerA0=LDR

    */

    42

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    43/53

    unsigned short input_a0;void main(){

    PORTB = 0; //nilai awal PORTB=0PORTA = 0; //nilai awal PORTA=0//SET PORT B sebagai INPUT atau OUTPUTTRISB.F0 = 0; //PORT B0 sebagai Output

    TRISB.F1 = 0; //PORT B1 sebagai OutputTRISB.F2 = 0; //PORT B2 sebagai OutputTRISB.F3 = 0; //PORT B3 sebagai OutputTRISB.F4 = 0; //PORT B4 sebagai OutputTRISB.F5 = 0; //PORT B5 sebagai OutputTRISB.F6 = 1; //PORT B6 sebagai inputTRISB.F7 = 1; //PORT B7 sebagai input//SET PORT A1 SEBAGAI OUTPUTTRISA.F1 = 0;//Analog SelectionANSEL.F5 = 0; //Set AN5 sebagai digitalANSEL.F6 = 0; //Set AN6 sebagai digitalANSEL.F0 = 1; //Set A1 sebagai analog input

    ADCON1 = 0; //Mengaktifkan ADC pada semua port analog{do{

    input_a0 = ADC_Read(0); // Dapatkan data analog dari A0PORTB = input_a0; //Nilai binari PORTB = data analog A0

    }while(1);}

    }

    Data yang diterima oleh PORT A0 adalah analog berkisar antara 0- 5V, kemudiandiconvert ke binari, lalu nilai binari ini bisa dilihat di nyala LED.

    43

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    44/53

    Lampiran 1

    Menginstal Software

    1.1. Cara Menginstal MikroC

    MikroC adalah software produksi dari mkroElektronika untuk mengetik program untukPIC dalam bahasa C dan juga mengkompilasi program tersebut menjadi bahasa Asemblerdan dalam format hex, cara menginstalasinya adalah sebagai berikut:

    1.  Click dobel (double click) pada file mikroC installer yang ada di folder software diCD atau download di http://www.mikroe.com/en/compilers/mikroc/pic/download.htm 

    2.  Lalu akan muncul instruksi sebagai berikut:

    Klik Next untuk melanjutkan proses instalasi3.  Lalu pilih tombol I accept the terms in the License Agreement .

    Kemudian tekan Next untuk melanjutkan4.  Akan muncul layer untuk instruksi berikutnya, lalu klik Next 

    44

    http://www.mikroe.com/en/compilers/mikroc/pic/download.htmhttp://www.mikroe.com/en/compilers/mikroc/pic/download.htm

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    45/53

     5.  Pilihlah folder di mana anda akan menginstal software ini, kalau anda setuju dengan

    default directory (directory yang diusulkan oleh software), anda bisa langsung klikInstall.

    6.  Lalu proses instalasi bermula

    7.  Lalu setelah selesai proses instalasi, berikutnya klik finish.

    45

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    46/53

     8.  Untuk instalasi Flash tidak disarankan karena harware programernya tidak sama

    dengan programmer kit yang kita gunakan. Sebaiknya klik No, tapi anda bolehmenginstal jika anda menghendakinya.

    9.  Setelah selesai proses instalisasi di atas, maka anda dapat menecek di start> All programs > Mikroelektronika > mikroC

    Juga anda akan dapatkan sebuah ikon sort cut di desktop PC anda.

    10. Proeses instalasi selesai maka anda siap menggunakan software ini.

    46

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    47/53

    1.2. Cara Menginstal Winpic800 

    1.  Click dobel (double click) pada file winpic800 installer yang ada di foldersoftware di CD atau download di http://www.winpic800.com/index.php?lang=en

    2.  Lalu akan muncul instruksi sebagai berikut:

    Pilih bahasa Inggris, selanjutnya klik Next3.  Lalu akan muncul jendela berikut.

    Pilihlah folder di mana anda akan menginstal software ini, kalau anda setuju

    dengan default directory (directory yang diusulkan oleh software), anda bisalangsung klik Install.

    4.  Lalu proses instalasi bermula.

    47

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    48/53

     5.  WinPic menannyakan apakah perlu membuat Shortcut di desktop, klik OK jika

    anda setuju.

    6.  Lalu proses instalasi akan berlanjut dengan menginstal Driver, lalu klik Next.

    7.  Proses Instalasi selanjutnya adalah mengeset hardware. Dengan memulai darimenu Windows Start>Programs>WinPic800 atau klik dobel pada shortcutWinPic800 di desktop.

    48

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    49/53

     

    8.  Lalu akan muncul Jendela seperti ini:

    9.  Mengeset Hardware: Pada Menu: Setting> Hardware, pilihlah JDM Programmer,karena rangkaian elektronik yang digunakan untuk programmer adalah jenis JDMProgrammer.

    Kemudian klik Save atau Apply edit

    10. Proses instalasi sudah selesai, selanjutnya, anda bisa memulai menggunakannya.

    49

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    50/53

     

    Ada beberapa menu seperti gambar di atas yang perlu diketahui , yaitu:

    Detect Device

    Untuk Mendeteksi PIC apakah ada atau tidak, kondisinya juga jenisnya. Apabila diklik menu ini akan keluar window hasildeteksi software Winpic terhadap PIC yang kita punyai sepertiini:

    Read All Untuk membaca Hex file yang ada di dalam PIC, data ini bisadicopy, dengan menu File>Save as.

    Window hasil membacanya akan terlihat sebagai berikut:

    50

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    51/53

     

    WriteProgram All

    Untuk menulis program Hex file ke PIC, hasilnya akanterlihat sebagai berikut:

    Verify All

    Untuk verifikasi apakah data yang sudah kita kirim dalam PIC

    sama dengan data yang terdapat pada hex file di winpic.

    Erase AllUntuk menghapus semua data/memori yang ada di dalam PIC

    51

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    52/53

     

    11. Untuk memulai WinPic, pertama sambungkan Kabel RS232 ke COM Port di

    computer dan ujung kabel lainnya sambungkan ke programmer yang ada di PapanRangkaian (Circuit Board) di Robot. Lalu klik menu Detect Device, kalau Ok,lalu klik menu Erase All.

    12. Lalu pilih File> Open atau klik , pilihlah hex file yang sudah anda buatsebelumnya dengan menggunakan mikroC

    Lalu Open, maka hex file itu akan dimuat di dalam jendela Winpic.

    52

  • 8/9/2019 Buku-Mikrokontroler Menggunakan PIC.pdf

    53/53

     

    13. Lalu click menu Program All, maka semua hex file tersebut sudah dimuat dalamPIC.

    Maka PIC anda bisa digunakan untuk menjalankan proyek anda.