Anda di halaman 1dari 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 Malaysia


2008

1
Bab 1
Anatomi Robot

1.1 Sejarah dan Perkembangan Robot

Kata robot pertama kali diperkenalakan oleh seorang penulis dari Czech yang bernama
Karel 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 pada
tahun 1938, yang membuat bebek mekanik yang dapat memakan dan mencincang biiji
bijian, membuka dan menutup sayapnya. Kemudian tahun 1796, Hisashine Tanaga di
Jepang berhasil membuat mainan mekanik yang dapat mnghidangkan the dan menulis
huruf kanji. Lalu 1926, Nikola Tesla mendemintrasikan perahu bot yang dapat dikontrol
dengan 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 elektronik
otomatis pertama dimana robot ini dapat merespon cahaya dan dapat melakukan kontak
dengan objek dari luar. Pada tahun 1954, saat dimulainya zaman digital, sebuah robot
digital yang dapat deprogram ditemukan oleh George Devol.
Pada abad modern ini sudah bermacam-macam robot yang dicipta dan digunakan seperti
dalam industri, rumah sakit, transportasi, pendidikan dan kehidupan sehari-hari. Seperti
robot yang digunakan untuk mengecat mobil, robot yang digunakan untuk merakit
komponen elektronik dan juga humanoid robot yaiitu robot yang memiliki muka, yang
mampu berjalan dan bertindak seperti manusia.

1.2. Fungsi Robot


Ada beberapa fungsi robot, sehingga manusia memerlukan kehadirannya yaitu:
1. Meningkatkan Produksi, akurasi dan daya tahan. Robot ini banya digunakan di
industri.
2. Untuk tugas-tugas yang berbahaya, kotor dan beresiko. Robot ini digunakan
ketika manusia tidak mampu masuk ke daerah yang beresiko. Seperti Robot
Untuk menjelajah planet, robot untuk mendeteksi limbah nuklir, robot militer dll.
3. Untuk pendidikan. Banyak robot yang digunakan untuk menarik pelajar belajar
teknologi 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
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 (kecuali
mobil otomatis), mesin pemotong rumput, hair dryer dll, dimana alat-alat ini termasuk
mesin bukan robot. Dari karakteristik di atas semua robot adalah mesin, tapi tidak semua
mesin 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 sensor
dan 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 dengan
dirinya.

Gambar 1-1.a Gambar 1-1.b


Struktur Tubuh Manusia Struktur Robot

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

3
Untuk robot yang biasanya menjalankan untuk satu tugas maka blok diaram yang
dimilikinya 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 oleh
sebuah mikrokontroler, yang fungsinya hampir sama dengan otak pada tubuh manusia.

4
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 dan
output), 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 pengontrol
mesin di mobil, pengontrol jarak jauh, mesin cuci otomatis, pengkondisian udara (AC)
peralatan perkantoran dll. Keuntungan dari penggunaan mikrokontroler yaitu
memperkecil 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 Pasaran


No 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, 12CR509A
Kinerja 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 peulis
akan memperkenalkan PIC mikrokontroler, PIC adalah singkatan dari Programmable
Interface Controller atau disingkat dengan nama lain Programmable Intelligent
Computer. PIC yang merupakan mikrokontroller produksi dari Microchip yang dapat
menggantikan fungsi dari ratusan IC atau transistor. PIC ini sangat populer dikalangan

5
pengembang dan penggiat (hobbyists) elektronika dikarenakan harganya yang murah,
kemampuannya yang besar untuk berbagai aplikasi, juga tersedia banyaknya buku dan
informasi tentangnya, kempuannya diprogram menggunakan serial port dan USB, juga
program di dalamnya dapat diprogram berkali-kali menggunakan flash memori, selain itu
software penunjangnya terdapat dalam open-source atau free-ware. Karena PIC ini
mudah digunakan oleh siapa saja, sehingga banyak yang menggunakannya, hingga saat
ini jumlah PIC yang telah menjual lebih dari 6 milyar.

PIC bisa berprilaku seperti kombinasi dari gerbang digital, timer, counter dll. Prilaku
kerja 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 yang
dimiliki PIC tidak kalah dengan komputer (PC). Tabel 2.1. menunjukkan perbandingan
antara PIC dan computer.

Tabel 2.2. Perbandingan antara PIC and Komputer


Item PIC Komputer (PC)
Program Firmware yaitu program yang Software yaitu program
disisipkan dalam ROM dan untuk mengoperasikan
menjadi bagian yang permanen komputer
dalam komponen IC
Catu Daya 3 6 Volt DC 220 Vac
Tobol Reset Tersedia Tersedia
I/O a. LCD/LED/ 7 segment a. Monitor
b. Buzzer, speaker b. Speaker
c. Keypad, tombol switch c. Keyboard/Mouse
d. Serial, parallel, USB port d. Serial, parallel, USB

6
e. ADC module Port
f. PWM Module e.
f. -
Kecepatan Prosesor Dibawah 40 MHz Beberapa GHz
RAM Beberapa Bytes Beberapa Kbytes
ROM Beberapa Bytes Beberapa Kbytes
Ruang untuk Flash, EEPROM (lectrically Harddisk
data/program erasable programmable read- Gbytes
only memory), ROM
Beberapa Kbytes

Dengan ukurannya yang kecil, murah dan berdaya rendah memungkinkan PIC digunakan
untuk 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 sebuah
mikrokontroler kosong dari pasar, lalu kita isi program di dalamnya menggunakan
software programmer dan downloader, lalu mikrokontroler siap digunakan. Gambar 2.2
Menunjukkan Proses penggunaan dari Mikrokontroller.

7
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
Konfigurasi I/O Mikrokontroler dapat dilihat dari Datasheet Mikrokontroller tersebut
yang 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 dan
5V untuk keadaan 1

Pin Input Analog (AN0-AN6):


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

Pin Output hanya digital:


PORT A (RA0-RA4): 17, 18, 1, 2, 3
PORT 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, Complementary


metal-oxide-semiconductor (CMOS) yaitu devais yang memiliki struktur fisika dari Field
Effect Transistor (Transistor yang dipengaruhi Medan) dimana transistor ini memiliki
gerbang elektroda yang diletakkan di atas isolator oksida semikonduktor yang
menyusunnya. Karena termasuk CMOS transistor maka karekteristik tegangan input dan
out akan mengikuti gambar 2.4. Dimana pada PIC PORT akan mendeteksi input sebagai
0 (LOW atau 0V) jika tegangan sinyal yang masuk adalah dari 0-1.5 V. Lalu akan
mendeteksi 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 memberikan
output sebagai 0 (LOW atau 0V) dimana tegangan yang dikeluarannya 0-0,05 V. Dan
akan memberikan output sebagai 1 (HIGH atau 5V) dimana tegangan yang dikeluarannya
mendekati 4.95-5 V..

9
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 buku
ini kita menggunakan MikroC. Karena bahasa C adalah bahasa yang paling banyak
digunakan di dunia industri dan perguruan tinggi. MikroC adalah software produksi
perusahaan Microelektronika. Software ini gratis untuk demo version dan dapat di
download pada:
http://www.mikroe.com/en/compilers/mikroc/pic/download.htm.
Dalam CD yang menyertai buku ini juga terdapat program ini. Dalam Demo version
tidak 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 Full
version software tersebut. Untuk metode instalasi software MikroC bisa dibaca pada
lampiran 1 buku ini.
2. Software: Winpic800, yaitu software untuk mengirim hex file ke PIC, software ini
gratis dan bisa di download pada:
http://www.winpic800.com/index.php?lang=en
Dalam CD yang menyertai buku ini juga terdapat program ini. Dengan menggunakan
software ini kita bisa mengecek kondisi PIC, membaca program, menulis program
dan 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 computer
ke PIC. Kebanyakan di pasaran saat ini untuk digunakan hardware ICSP (In Circuit
Serial Programming) yaitu antar muka serial yang digunakan PC untuk mendownload
suatu program kedalam program memori di PIC. Diagram pemograman
menggunakan 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.5
Menunjukkan rangkaian dasar untuk mengopersionalkan PIC. Sedangkan Gambar 2.6

10
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
Gambar 2.5 Rangkaian dasar untuk mengoperasikan PIC Mikrokontroler
5V
9V

D1 1N1183 U2 LM7805C LED1 CQX35A


R2 1k
2 3
IN OUT
GND

C4 1m
C3 100n
1

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. Perhatikan
gambar 2.7, pada kepala PIC sebelah kiri terdapat pin No. 1 lalu No 2 dan seterusnya
mengikuti arah berlawanan jarum jam (Counter Clock Wise). Bila terbalik maka akan
merusak PIC tersebut, ingat harga PIC16F88 perbuah sekitar Rp 30.000,-

12
Gambar 2.7 No urut pin di PIC16F88 bila dilihat dari atas

2. Matikan Switch (switch Off) atau putuskan hubungan ke catu daya ketika memasang
PIC ke soketnya.
3. Karena tubuh kita memiliki listrik statik, maka sebaiknya sebelum menyentuh PIC
tempelkan tangan kita ke lantai atau badan computer.Diusahakan ketika memegang
PIC 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 akan
merusak PIC secara permanen, cek dahulu tegangan yang akan kita hubungkan ke
PIC untuk menjaga keamanan.
5. Untuk menghemat baterei, sebaiknya ketika kita tidak menggunakan Rangkain PIC
kita, 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 Kit
untuk Pendidikan (Educational Mini Microcontroller Kit). Yang didesain untuk
memberikan 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 murah
dan 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.9
menunjukkan rangkaian aplikasi yang akan digunakan .

13
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 ke
Serial Port di komputer seperti yang ditunjukkan adalam gambar 2.10.a dan 2.10 b

14
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 dari
Rangkaian Prograamer dan dipindahkan ke rangkaian Aplikasi.

15
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 integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int 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 tanda
sama dengan (=). Contoh :
nilai = 80;
A = x * y;
Artinya : variable nilai diisi dengan 80 dan variable A diisi dengan hasil perkalian
antara 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
Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah
operand (sebuah nilai atau variable. Operator hubungan dalam bahasa C :

d.1 .Operator Arti


Contoh
< Kurang dari x < y // x kurang dari y
<= Kurang dari sama dengan x <= y // x kurang dari sama dengan y
> Lebih dari x > 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, maka
operator logika digunakan untuk membandingkan logika hasil dari operator-operator
hubungan. 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 yang
diperiksa 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 selama
kondisinya bernilai benar (true) atau 1 dan akan berhenti bila kondisinya bernilai salah.

Bentuk umum dari pengulangan will ini adalah :

17
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, hanya
saja 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 Output


PORTB sebagai Output
TRISB = 0 ;
PORTB sebagai Input
TRISB = 0;
PIN B1 sebagai output saja
TRISB.F1 = 0;

b. Menegaskan nilai output suatu PORT

18
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. Pernyataan
Pernyataan 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 Program
Untuk 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 input
Nilai digital input yang masuk (0V atau 5 V) dapat dicek dengan perintah
If (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 jangka
waktu tertentu
Untuk 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 dengan
mengesetnya menggunakan perintah ADCON0:
Kalau ingin fungsi ADC aktif, maka perintahnya:
ADCON0 = 1;
Kalau ingin fungsi ADC tidak aktif, maka perintahnya:
ADCON0 = 0;

19
h. Mengeset apakah suatu input digital atau anlog dengan perintah ANSEL,
perhatikan gambar 2.9, hanya pin yang berlabel AN saja yang dapat menggunakan fungsi
ini.
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 bilangan


1. 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
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 dengan
00001111, jadi nilai
PORT B B0=1, B1=1,
B2=1,B3=1,B4=0,B5=0,
B6=0, B7=0
Desimal PORTB =12 ; Nilai 12 setara dengan
00001100 dalam binari,
maka nilai PORT B
B0=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 calculator
converse pada microC.
Caranya setelah membuka MikroC. Pada bagian bawah dari Windows MikroC akan kita
dapatkan tab-tab: Messages, Find, Qconvertorseperti yang ditunjukkan oleh gambar 1.11.
Kemudian klik Qconveror maka kita akan mendapatkan gambar 1.12. Dengan
menuliskan 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 dan
11111111 di binary.

21
Gambar 1.11 Windows di MikroC

Gambar 1.12. Fasilitas QConvertor di MikroC

22
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. Atau
LED Merah-Hijau-Kuning
3. Kemudian satu detik berikutnya yang hidup hanya LED pada PORT B1, B3 dan
B5. 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 maksimal
LED hanya 2.1 V, sehingga diperlukan tahanan 470 Ohm. Keterangan secara terperinci
tentang hubungan LED, Tegangan dan Tahanan di Jelaskan pada gambar 1.14.

Gambar 1.14 Cara menghubungkan LED dengan Resistor (tahanan).

23
c. Algoritma dan Flow Chart

Algoritma adalah urutan logis yang disusun secara sistematis untuk memecahkan masalah.
Penulisannya bisa menggunakan Flow Chart atau dengan urutan biasa. Untuk persolan di
atas algoritmanya yaitu.

1. Mendefinisikan PORT yang akan kita pakai sebagai output


2. Menentukan nilai awal untuk PORT yang akan kita pakai
3. Memulai Program
4. Membuat output HIGH (1) untuk pin di PORT B0-B5
5. Tunggu satu detik atau 1000 ms.
6. Membuat Output HIGH untuk PORT B0, B2, B4., lainnya LOW
7. Tunggu 1000 ms
8. Membuat Output HIGH untuk PORT B1, B3 dan B5.
9. Tunggu 1000 ms
10. Mengulang lagi ke No. 3

Flowchart adalah pemaparan algoritma dalam bentuk gambar, yaitu diagram alir dari
algoritma yang ada dengan menggunakaan symbol-simbol yang saling terhubung dan
membentuk urutan penyelesaian masalah. Biasanya dengan flow chart proses
pemograman akan mudah dimengerti.

Tablel. Menunjukkan beberapa symbol dalam Flowchart yang biasa digunakan

Simbol Arti
Terminator, fungsinya sebagai permulaan /
akhir program.
Diagram alir, atau arah alir fungsinya untuk
menunjukkan arah aliran program.
Preparation, fungsinya untuk proses
inisialisasi/pemberian harga awal atau
untuk 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
On page connector, penghubung bagian-
bagian flowchart yang berada pada satu
halaman
Off 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 program
MikroC, dari program yang ada di windows, Start> All Programs > Mikroelectronika >
MikroC atau klik dobel dari ikon MikroC di desk top.

25
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
Pada Project Name: Tulislah nama project Anda misalkan PROYEK_PERTAMAKU
Isilah 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
Tulislah Program ini di pada window editor:

/* Nama Program PROYEK_PERTAMAKU


Connection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-H
B6_SW1, B7-SW2
A1-Buzzer
A0=LDR
*/
void main()
{
PORTB = 0; //nilai awal PORTB=0
TRISB = 0; //PORTB sebagai Output
{
do
{
PORTB = 0b00111111; //bilangan binari 00111111
Delay_ms(1000);
PORTB = 0b00101010; //bilangan binari 00101010
Delay_ms(1000);
PORTB = 0b00010101; //bilangan binari 00010101
Delay_ms(1000);
}
while(1) ;
}
}

Keterangan untuk Program di atas:

Perintah Keterangan
void 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 computer
Kalau // untuk satu baris saja, sedangkan
Kalau /* di awal paragraph dan */ diakhir paragraph dapat
membuat komen untuk satu paragraf atau banyak baris
sekaligus
PORTB = 0b00000000; Kita memberikan nilai awal PORTB=0 Mengeset PORTB
TRISB = 0b00000000; sebagai Output
Dalam bahasa C, apabila angka dimulai dengan 0b maka ini
diidentifikasi sebagai angka binary, karena PORTB ada 8
PORT, maka dengan mengeset PORTB = 0b00000000 artinya
PORT B0 hingga B7 akan memiliki nilai awal 0.
Untuk bilangan hexadecimal digunakan bilangan yang dimulai
0x, sedangkan bilangan decimal biasa tidak menggunakan 0.
Contoh yang bisa kita buat adalah:
0xff akan sama nilainya dengan 0b11111111 juga akan sama
dengan 255 di bilangan desimal.

28
Dengan mengeset TRISX, maka kita dapat mengkondisikan
suatu 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, misalkan
TRISA= 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 akan
kembali ke do lagi.
PORTB = 0b00111111; Pada PORTB kita berikan output
B0=1,B1=1,B2=1,B3=1,B4=1,B5=1, B6=0, B7=0 Dibaca bit
dari belakang
Delay_ms(1000); Artinya pause atau tunda waktu selama 1000 ms atau 1 detik.
Untuk waktu yang lama maka perlu dibuat kelipatan 1 menit
atau Delay_ms(60000);

e. Mengkompilasi Program
Setelah 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 menu
Project> Build

29
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. Pertama
kita panggil program WinPIC800 dengan cara klik doble icon program tersebut di

desktop . Lalu kita hubungkan kabel antara Serial Port COM (RS232) di computer
dengan rangkaian programmer. Setelah kita klik dobel program WinPic800 akan keluar
windows:

30
Pilihlah PIC pada pull down selection yaitu 16F88 seperti yang ditunjukkan pada gambar
di 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 ke
PIC.

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 PIC
LED di atas (gambar 1.16), lalu hubungkan batrei 9V ke batrei socket dan tekan switch
ON untuk menyalakan dkemudian anda akan melihat LED akan bergantian menyala
seperti yang anda programkan.

31
Gambar 1.16 Rangkaian Aplikasi.

32
Bab 3
Membuat 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 menggunakan
PIC anda pun bisa membuatnya. Dengan mempelajari proyek ini anda akan tahu
bagaimana membaca input digital, juga mengatur waktu untuk menghasilkan output yang
dikendaki.

1.Persoalan

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

1. Kondisi normal adalah : Lampu Untuk Mobil Hijau dan Lampu Untuk
Penyebrang 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 detikHijau (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 PIC
mikrokontroler untuk mengontrol semuanya. Gambar diagram dari rangkaian elektrik
yang diperlukan ditunjukkan di gambar 3.2.

33
Gambar 3.2. Rangkaian Elektronik untuk Proyek Lampu lalu lintas bagi Penyebrang
Jalan

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

3. Algoritma

Untuk persolan di atas algoritmanya yaitu.


1. Mendefinisikan PORT yang akan kita pakai sebagai input dan output
2. Mengeset PORT E0 dan E1 sebagai pembaca input digital.
3. Menentukan nilai awal untuk PORT yang akan kita pakai
4. Memulai Program
5. Set Untuk kondisi normal: LED Merah Penyebrang ON dan LED Hijau Mobil ON
6. 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 ON
6. Kembali Ke kondisi normal

4. Menulis Program
Gunakan Program Berikut dan tuliskan di MikroC, lalu lakukan kompilasi untuk
membuat 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-H
B6_SW1, B7-SW2
A1-Buzzer

34
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=0
PORTA = 0; //nilai awal PORTA=0
//SET PORT B sebagai INPUT atau OUTPUT
TRISB.F0 = 0; //PORT B0 sebagai Output
TRISB.F1 = 0; //PORT B1 sebagai Output
TRISB.F2 = 0; //PORT B2 sebagai Output
TRISB.F3 = 0; //PORT B3 sebagai Output
TRISB.F4 = 0; //PORT B4 sebagai Output
TRISB.F5 = 0; //PORT B5 sebagai Output
TRISB.F6 = 1; //PORT B6 sebagai input
TRISB.F7 = 1; //PORT B7 sebagai input
//SET PORT A1 SEBAGAI OUTPUT
TRISA.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 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 ON
PORTB.F3 = 0;
Delay_ms(2000); //2 detik pertama
//Set 5 detik,
PORTB.F2 = 1; //P-Hijau ON
PORTB.F1 = 0;
PORTB.F0 = 0;
PORTB.F5 = 0;
PORTB.F4 = 0;
PORTB.F3 = 1; //M-Merah ON
Delay_ms(5000);
//Set 2 detik terakhir
PORTB.F2 = 0;
PORTB.F1 = 1; //P-Kuning ON
PORTB.F0 = 0;
PORTB.F5 = 0;
PORTB.F4 = 0;
PORTB.F3 = 1; //M-Merah ON
Delay_ms(5000);
}
else
{

35
PORTB.F2 = 0;
PORTB.F1 = 0;
PORTB.F0 = 1; //P-Merah ON
PORTB.F5 = 1; //M-Hijau ON
PORTB.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 perampok
dan melaporkannya secara cepat kepada kita dalam bentuk suara alarm. Dalam proyek ini
anda akan belajar cara membuat sistem kemanan rumah dan mengujinya.

1. Persoalan

Gambar 3.6. Menunjukkan sebuah rumah yang memiliki 2 alat pendeteksi atau sensor
kehadiran pencuri. Yang pertama yaitu switch sentuh (micro switch) yang diletakkan di
bawah keset dan yang kedua switch yang diletakkan di Jendela. Apabila pencuri
menginjak keset atau membuka jendela akan mengaktifkan switch yang ada. Pada keset
kita 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 kondisi
normal dua elektroda kontak di switch tidak terhubung atau dalam kondisi normal nilai
tegangannya LOW) dan normali close (NC) (dalam kondisi Normal dua elektroda kontak
terhubung atau dalam kondisi normal nilai tegangannya HIGH). Untuk melaporkan
kepada kita, maka kita gunakan lampu merah LED akan kelap-kelip dan buzzer akan
akatif menghasilkan suara alarm.
1. Kondisi normal adalah : Switch di set LOW dan Switch di Jendela High, Lampu
LED 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
Gambar 3.6 Sistem keamanan pada rumah

2. Rangkaian Elektronik
Untuk membuat Sistem keamanan rumah kita memerlukan 2 buah switch, yang kita
letakkan 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 hubungkan
dengan pin A2, serta sebuah PIC mikrokontroler untuk mengontrol semuanya. Gambar
diagram dari rangkaian elektrik yang diperlukan ditunjukkan di gambar 3.7.

Hubungan antara pin di PIC dan komponen yaitu:

LED Hijau Pin B3


LED Merah Pin B0
Switch 1 Pin E6
Switch 2 Pin E7
Buzzer Pin A1

37
.

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 output
2. Menentukan nilai awal untuk PORT yang akan kita pakai
3. Mengeset PORT E0 dan E1 sebagai pembaca input digital.
4. Memulai Program
5. 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 untuk
membuat 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-H
B6_SW1, B7-SW2
A1-Buzzer
A0=LDR

*/
void main()
{
PORTB = 0; //nilai awal PORTB=0
PORTA = 0; //nilai awal PORTA=0

38
//SET PORT B sebagai INPUT atau OUTPUT
TRISB.F0 = 0; //PORT B0 sebagai Output
TRISB.F1 = 0; //PORT B1 sebagai Output
TRISB.F2 = 0; //PORT B2 sebagai Output
TRISB.F3 = 0; //PORT B3 sebagai Output
TRISB.F4 = 0; //PORT B4 sebagai Output
TRISB.F5 = 0; //PORT B5 sebagai Output
TRISB.F6 = 1; //PORT B6 sebagai input
TRISB.F7 = 1; //PORT B7 sebagai input
//SET PORT A1 SEBAGAI OUTPUT
TRISA.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 ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(500);
PORTB.F0 = 1; //LED Merah ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(500);
PORTB.F0 = 1; //LED Merah ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(500);
PORTB.F0 = 1; //LED Merah ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(500);
PORTB.F0 = 1; //LED Merah ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(500);
Delay_ms(500);
PORTB.F0 = 1; //LED Merah ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(500);
Delay_ms(500);
PORTB.F0 = 1; //LED Merah ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(500);
Delay_ms(500);
PORTB.F0 = 1; //LED Merah ON
Delay_ms(500);
PORTB.F0 = 0; //LED Merah OFF
Delay_ms(5000); //Buzzer ON selama 5 detik
}
else
{
PORTB.F2 = 1; //Kondisi normal LED Hijau ON
PORTA.F1 = 0; //Buzzer OFF

39
}
}
while(1) ;

}
}

C. Membaca Data Dari Sensor

Membaca d ata dari sensor, mirip kita melakukan akusisi data menggunakan
mikrokontrler. PIC16F88 dapat digunakan sebagai IC untuk melakukan akusisi data
karena memiliki Analog Digital Converter Port, ada 6 analog input yaitu pada PORT
AN0 hingga AN5. RA0-RA4 terdapat AN0 hingga AN4, dan pada RB6 dan RB7 terdapat
AN5 dan AN6.
jika sinyal yang diterima oleh port ini berupa analog, maka oleh PIC sinyal ini
dokonversi 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 jangkauan
tegangan 0-5 V, apabila sinyal tegangan dari sensor berada di luar jangkauan ini, maka
harus dibuat rangkaian pengkondisian sinyal agar dapat berada pada 0 5 V. Selain itu
Polaritas + dan harus diperhatikan juga, kabel negative dari sensor harus dihubungkan
ke ground pada PIC input dan kabel postif dihubungkan ke PORT A0, A1, A2, A3, B6,
dan B7
Perintah Dasar ADC

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

1. Adc_Read
Fungsi: Memulai membaca port analog
Penulisan: Adc_Read(No_chanel_analog_port);

2. ADCON1
Fungsi: Mengaktifkan Konversi analog ke digital
Penulisan: 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 salah
satu 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 perlu
diketahui ketika menggunakan ADC. Yang pertama adalah bit, yaitu singkatan dari
binary digit, unit atau satuan terkecil dari penyimpanan informasi data dan komunikasi
digital. Bilangan binary ini berupa 0 atau 1, Panjang Bit adalah jumlah bilangan binary
yang 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
jumlah bit maksimal yang dapat diproses. Gambar 4.2. menunjukkan proses konversi
yang 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 maksimal
111. 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 binary
maka 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 dapat
dibaca, untuk menghitung resolusi ini menggunakan rumus
V V
Q = max n min (4.1)
2
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 pada
gambar 4.2 maka akan kita dapatkan resolusi ADC ini adalah 10 3 0 = 1.25 . Maka computer
2
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 digital
adalah dari 0 255. Jika kita set tegangan referensi adalah 5 V, maka 0 5 V bisa
direpresentasikan sebagai 0-255 dalam format digital. Misalkan 5 V akan ditunjukkan

41
dengan 255, dan 2.5 V ditunjukkan dengan 128. Rumus untuk menghitung tagangan
dalam unit digital adalah
V n
x = in (2 1) , (4.2)
Vref

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 bit
ini adalah: 5/256=19.5 mV.

Persoalan
Pada bagian berikut kita akan mengambil data dari sensor LDR. LDR adalah
optoelektronik sensor, yang akan memberikan response terhadap cahaya. Dengan
meningkatnya intensitas cahaya yang diterimanya maka tahanan yang ada pada LDR
akan menurun. Dengan menggunakan rangkaian pembagi tegangan, maka perubahan
tahanan ini akan dikonversi menjadi tegangan listrik. Diagram dari sensor yang kita
gunakan adalah ditunjukkan pada gambar 4.4.

Gambar 4.4. Konfigurasi Sensor Cahaya

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

.
Program untuk menyelesaikan soal di atas ditunjukkan di sini:

/* Nama Program ADC


Connection: LED B0-M, B1-K, B2-H, B3-M, B4-K, B5-H
B6_SW1, B7-SW2
A1-Buzzer
A0=LDR

*/

42
unsigned short input_a0;
void main()
{
PORTB = 0; //nilai awal PORTB=0
PORTA = 0; //nilai awal PORTA=0
//SET PORT B sebagai INPUT atau OUTPUT
TRISB.F0 = 0; //PORT B0 sebagai Output
TRISB.F1 = 0; //PORT B1 sebagai Output
TRISB.F2 = 0; //PORT B2 sebagai Output
TRISB.F3 = 0; //PORT B3 sebagai Output
TRISB.F4 = 0; //PORT B4 sebagai Output
TRISB.F5 = 0; //PORT B5 sebagai Output
TRISB.F6 = 1; //PORT B6 sebagai input
TRISB.F7 = 1; //PORT B7 sebagai input
//SET PORT A1 SEBAGAI OUTPUT
TRISA.F1 = 0;
//Analog Selection
ANSEL.F5 = 0; //Set AN5 sebagai digital
ANSEL.F6 = 0; //Set AN6 sebagai digital
ANSEL.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 A0
PORTB = input_a0; //Nilai binari PORTB = data analog A0
}
while(1);
}
}

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

43
Lampiran 1
Menginstal Software

1.1. Cara Menginstal MikroC


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

1. Click dobel (double click) pada file mikroC installer yang ada di folder software di
CD 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 instalasi


3. Lalu pilih tombol I accept the terms in the License Agreement.

Kemudian tekan Next untuk melanjutkan


4. Akan muncul layer untuk instruksi berikutnya, lalu klik Next

44
5. Pilihlah folder di mana anda akan menginstal software ini, kalau anda setuju dengan
default directory (directory yang diusulkan oleh software), anda bisa langsung klik
Install.

6. Lalu proses instalasi bermula

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

45
8. Untuk instalasi Flash tidak disarankan karena harware programernya tidak sama
dengan programmer kit yang kita gunakan. Sebaiknya klik No, tapi anda boleh
menginstal 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
1.2. Cara Menginstal Winpic800
1. Click dobel (double click) pada file winpic800 installer yang ada di folder
software 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 Next


3. 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 bisa
langsung klik Install.
4. Lalu proses instalasi bermula.

47
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 dari


menu Windows Start>Programs>WinPic800 atau klik dobel pada shortcut
WinPic800 di desktop.

48
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 JDM
Programmer.

Kemudian klik Save atau Apply edit

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

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

Untuk Mendeteksi PIC apakah ada atau tidak, kondisinya juga


Detect Device jenisnya. Apabila diklik menu ini akan keluar window hasil
deteksi software Winpic terhadap PIC yang kita punyai seperti
ini:

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

Window hasil membacanya akan terlihat sebagai berikut:

50
Untuk menulis program Hex file ke PIC, hasilnya akan
Write
terlihat sebagai berikut:
Program All

Untuk verifikasi apakah data yang sudah kita kirim dalam PIC
Verify All
sama dengan data yang terdapat pada hex file di winpic.

Untuk menghapus semua data/memori yang ada di dalam PIC


Erase All

51
11. Untuk memulai WinPic, pertama sambungkan Kabel RS232 ke COM Port di
computer dan ujung kabel lainnya sambungkan ke programmer yang ada di Papan
Rangkaian (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 buat
sebelumnya dengan menggunakan mikroC

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

52
13. Lalu click menu Program All, maka semua hex file tersebut sudah dimuat dalam
PIC.

Maka PIC anda bisa digunakan untuk menjalankan proyek anda.

53

Anda mungkin juga menyukai