• Tidak ada hasil yang ditemukan

Pengaturan Alat – Alat Listrik Rumah Tangga Berbasis Mikrokontroller Atmega8535 Melalui Handphone

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pengaturan Alat – Alat Listrik Rumah Tangga Berbasis Mikrokontroller Atmega8535 Melalui Handphone"

Copied!
30
0
0

Teks penuh

(1)

DASAR TEORI

2.1 MODUL GSM

HP (

Handphone)

dengan fasilitas SMS-nya akan sangat berguna jika kita dapat

mengaplikasikannya ke dalam suatu sistem pengendali yang terintegrasi, dimana nantinya

pengendalian serta pengaksesan informasi keadaan lampu ruangan yang dilakukan oleh seseorang

dapat dilakukan via SMS.

Sekarang telah banyak alat pengendali lampu rumah jarak jauh menggunakan

remote

dengan media infra merah maupun gelombang lain, namun masih jarang yang dapat

mengendalikan peralatan lampu rumah jika berada di tempat yang jauh dengan memanfaatkan

fasilitas

provider

GSM. Maka perancangan pengendalian lampu jarak jauh ini mencoba

menggunakan fasilitas SMS pada telepon seluler, yang diharapkan dapat mengendalikan

(memadamkan/menyalakan) dan mendeteksi status lampu melalui jarak jauh dari daerah manapun

asal masih terjangkau sinyal operator GSM.

Global System for Mobile communication (GSM) adalah sebuah standar global untuk

komunikasi bergerak digital. GSM adalah nama dari sebuah group standarisasi telpon bergerak

selular di Eropa yang beroperasi pada daerah frekunensi 900 MHz. GSM saat ini banyak digunakan

di negara-negara di dunia.

Informasi sangat penting dalam suatu organisasi, informasi memperkaya penyajian,

pengetahuan, suatu yang penerimanya tidak tahu, Suatu sistem yang kurang mendapat informasi

akan menjadi luruh, kerdil dan akhirnya akan berakhir. Apakah sebenarnya informasi itu, sehingga

sangat penting artinya bagi suatu sistem. Informasi (

information

) dapat didefinisikan sebagi data

yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya.

(2)

Short Message Service

(SMS) adalah sebuah layanan yang banyak diaplikasikan pada

sistem komunikasi tanpa kabel (

wireless

), yang memungkinkan kita untuk melakukan pengiriman

pesan dalam bentuk alphanumeric antara terminal pelanggan dengan sistem eksternal seperti

e-mail, paging, voice e-mail, dan lain-lain. SMS mulai diperkenalkan di eropa sejak tahun 1991 dengan

adanya standardisasi dalam bidang wireless digital yang disebut

Global System for Mobile

Communication

(GSM). GSM adalah sistem pelopor seluler yang dikembangkan secara universal

oleh

European Telecomunication Standards Institute

(ETSI) dan dengan GSM inilah aplikasi SMS

dapat dijalankan.

Mekanisme dalam sistem SMS adalah melakukan pengiriman short message dari terminal

pelanggan ke terminal lain. Layanan SMS merupakan sebuah layanan yang bersifat nonreal time

dimana sebuah short message dapat di-submit ke suatu tujuan, tidak peduli apakah tujuan tersebut

aktif atau tidak. Bila dideteksi bahwa tujuan tidak aktif, maka sistem akan menunda pengiriman

ke tujuan hingga tujuan aktif kembali. Prinsip dasar sistem SMS akan menjamin delivery dari short

message hingga sampai tujuan. Kegagalan pengiriman yang bersifat sementara seperti tujuan tidak

aktif akan selalu teridentifikasi sehingga pengiriman ulang short message akan selalu dilakukan

kecuali bila aturan bahwa short message yang telah melampaui batas waktu tertentu harus dihapus

dan dinyatakan gagal dikirim.

(3)

Gambar 2.1 Modul GSM

2.2 RELAY

Relay berfungsi untuk menghubungkan atau memutus aliran arus listrik yang dikontrol dengan memberikan tegangan dan arus tertentu pada koilnya. Relay biasanya hanya mempunyai satu kumparan tetapi relay dapat mempunyai beberapa kontak. Dalam memutus atau menghubungkan kontak digerakkan oleh fluksi yang ditimbulkan dari adanya medan magnet listrik yang dihasilkan oleh kumparan yang melilit pada besi lunak. Contoh Gambar relay pin 8 pada Gambar 2.2

(4)

2.2.1 Prinsip Kerja Relay

Kontak Normally Open akan membuka ketika tidak ada arus mengalir pada kumparan, tetapi tertutup secepatnya setelah kumparan menghantarkan arus atau diberi tenaga. Kontak normally Close akan tertutup apabila kumparan tidak diberi tenaga dan membuka ketika kumparan diberi daya. Masing-masing kontak biasanya digambarkan sebagai kontak yang tampak dengan kumparan tidak diberi tanaga atau daya. Contoh relay elektromekanis pada Gambar 2.3 :

CR

(5)

lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.

2.3.1 Arsitektur Mikrokontroler AVR ATMega8535

AVR termasuk kedalam jenis mikrokontroler RISC (Reduced Instruction Set Computing) 8 bit. Berbeda dengan mikrokontroler keluarga MCS-51 yang berteknologi CISC (Complex Instruction Set Computing). Pada mikrokontroler dengan teknologi RISC semua instruksi dikemas dalam kode 16 bit (16 bits words) dan sebagian besar instruksi dieksekusi dalam 1 clock, sedangkan pada teknologi CISC seperti yang diterapkan pada mikrokontroler MCS-51, untuk menjalankan sebuah instruksi dibutuhkan waktu sebanyak 12 siklus clock.contoh arsitektur ATMega 8535 pada Gambar 2.4

Secara garis besar, arsitektur mikrokontroler ATMega8535 terdiri dari :

1.

32 saluran I/O (Port A, Port B, Port C dan Port D)

2.

10 bit 8 Channel ADC (Analog to Digital Converter)

3.

4 Channel PWM

4.

6 Sleep Modes : Idle, ADC Noise Reduction, Power-save, Power-Down, Standby and

Extended Standby

5.

3 buah timer/counter.

6.

Analog Compararator

7.

Watchdog timer dengan osilator internal

8.

512 byte SRAM

9.

512 byte EEPROM

10.

8 kb Flash memory dengan kemampuan Read While Write

11.

Unit interupsi (internal dan external)

12.

Port antarmuka SPI8535 “memory map”

(6)
(7)

2.3.2 Peta Memory ATMega8535

ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian yaitu : 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM internal.

Register untuk keperluan umum menempati space data pada alamat terbawah yaitu $00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter, fungsi fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada gambar 2.5 dibawah . Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.

(8)

Selain itu AVR ATmega8535 juga memilki memori data berupa EEPROM 8-bit sebanyak 512

byte. Alamat EEPROM dimulai dari $000 sampai $1FF.

2.3.3 Status Register

Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan

ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler. Contoh

status register pada gambar 2.6

Gambar 2.6 Status Register

Status Register ATMega8535

1. Bit7 --> I (Global Interrupt Enable), Bit harus di Set untuk mengenable semua jenis interupsi. 2. Bit6 --> T (Bit Copy Storage), Instruksi BLD dan BST menggunakan bit T sebagai sumber atau

tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit T dapat disalin kembali kesuatu bit dalam register GPR dengan menggunakan instruksi BLD.

3. Bi5 --> H (Half Cary Flag)

4. Bit4 --> S (Sign Bit) merupakan hasil operasi EOR antara flag -N (negatif) dan flag V (komplemen dua overflow).

5. Bit3 --> V (Two's Component Overflow Flag) Bit ini berfungsi untuk mendukung operasi matematis.

6. Bit2 --> N (Negative Flag) Flag N akan menjadi Set, jika suatu operasi matematis menghasilkan bilangan negatif.

7. Bit1 --> Z (Zero Flag) Bit ini akan menjadi Set apabila hasil operasi matematis menghasilkan bilangan 0.

(9)

2.3.4 Konfigurasi Pin Mikrokontroler AVR ATMEGA8535

Mikrokontroler ATMega8535 memiliki 40 pin untuk model

PDIP

, dan 44 pin untuk model

TQFP

dan

PLCC

. Contoh gambar IC Mikrokontroler ATMega 8535 pada gambar 2.7

Nama-nama pin pada mikrokontroler ini adalah :

1.

VCC : merupakan pin yang berfungsi sebagai pin masukan catu daya

2.

GND : merupakan pin ground.

3.

Port A (PA0...PA7) : merupakan pin I/O dan pin masukan ADC

4.

Port B (PB0

PB7) : merupakan akan pin I/O dua arah dan pin fungsi khusus, yaitu

sebagai Timer/Counter, komperator analog dan SPI.

5.

Port C (PC0

PC7) : merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,

komperator analog, input ADC dan Timer Osilator.

6.

Port D (PD0

PD7) : merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komperator

analog, interupsi eksternal dan komunikasi serial.

7.

RESET : merupakan pin yang digunakan untuk mereset mikrokontroler.

8.

XTAL1 dan XTAL2 : merupakan pin masukan clock eksternal.

(10)

Gambar 2.7 IC Mikrokontroler ATMEGA8535

Deskripsi pin-pin pada mikrokontroler ATMega8535 :

1. Port A

(11)

2. Port B

Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.

Tabel 2.1 Fungsi Pin-pin Port B

Port Pin

Fungsi Khusus

PB0 T0 = timer/counter 0 external counter input

PB1 T1 = timer/counter 0 external counter input

PB2 AIN0 = analog comparator positive input

PB3 AIN1 = analog comparator negative input

PB4 SS = SPI slave select input

PB5 MOSI = SPI bus master output / slave input

PB6 MISO = SPI bus master input / slave output

PB7 SCK = SPI bus serial clock

3. Port C

(12)

atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2.

4. Port D

Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.

Tabel 2.2 Fungsi Pin-pin Port D

Port Pin

Fungsi Khusus

PD0 RDX (UART input line)

PD1 TDX (UART output line)

PD2 INT0 ( external interrupt 0 input )

PD3 INT1 ( external interrupt 1 input )

PD4 OC1B (Timer/Counter1 output compareB match output)

PD5 OC1A (Timer/Counter1 output compareA match output)

PD6 ICP (Timer/Counter1 input capture pin)

(13)

5. RESET

RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset.

6. XTAL1

XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit.

7. XTAL2

XTAL2 adalah output dari inverting oscillator amplifier.

8. AVcc

Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.

9. AREF

AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.

10. AGND

(14)

2.4 Sensor Optocoupler

2.4.1 Pengertian Optocoupler

Optocoupler adalah suatu piranti yang terdiri dari 2 bagian yaitu transmitter dan receiver,

yaitu antara bagian cahaya dengan bagian deteksi sumber cahaya terpisah. Biasanya optocoupler

digunakan sebagai saklar elektrik, yang bekerja secara otomatis. Optocoupler atau optoisolator

merupakan komponen penggandeng (coupling) antara rangkaian input dengan rangkaian output

yang menggunakan media cahaya (opto) sebagai penghubung. Dengan kata lain, tidak ada bagian

yang konduktif antara kedua rangkaian tersebut. Optocoupler sendiri terdiri dari 2 bagian, yaitu

transmitter (pengirim) dan receiver (penerima).

1. Transmiter

Merupakan bagian yang terhubung dengan rangkaian input atau rangkaian kontrol. Pada

bagian ini terdapat sebuah LED infra merah (IR LED) yang berfungsi untuk mengirimkan sinyal

kepada receiver. Padatransmitter dibangun dari sebuah LED infra merah. Jika dibandingkan

dengan menggunakan LED biasa, LED infra merah memiliki ketahanan yang lebih baik terhadap

sinyal tampak. Cahaya yang dipancarkan oleh LED infra merah tidak terlihat oleh mata telanjang.

2. Receiver

(15)

Jika dilihat dari penggunaannya, optocoupler biasa digunakan untuk mengisolasi common rangkaian input dengan common rangkaian output. Sehingga supply tegangan untuk masing-masing rangkaian tidak saling terbebani dan juga untuk mencegah kerusakan pada rangkaian kontrol (rangkaian input). Contoh bentuk fisik sensor optocoupler pada gambar 2.8

Gambar 2.8 Bentuk fisik Sensor Optocoupler

Optocoupler merupakan gabungan dari LED infra merah dengan fototransistor yang

terbungkus menjadi satu chips. Cahaya infra merah termasuk dalam gelombang elektromagnetik

yang tidak tampak oleh mata telanjang. Sinar ini tidak tampak oleh mata karena mempunyai

panjang gelombang berkas cahaya yang terlalu panjang bagi tanggapan mata manusia. Sinar infra

merah mempunyai daerah frekuensi 1 x 1012 Hz sampai dengan 1 x 1014 GHz atau daerah

frekuensi dengan panjang gelombang 1µm

1mm. LED infra merah ini merupakan komponen

elektronika yang memancarkan cahaya infra merah dengan konsumsi daya sangat kecil. Jika diberi

prasikap maju, LED infra merah yang terdapat pada optocoupler akan mengeluarkan panjang

gelombang sekitar 0,9 mikrometer.

(16)

pada optocoupler tidak perlu lensa untuk memfokuskan cahaya karena dalam satu chip mempunyai

jarak yang dekat dengan penerimanya. Pada optocoupler yang bertugas sebagai penerima cahaya

infra merah adalah fototransistor. Fototransistor merupakan komponen elektronika yang berfungsi

sebagai detektor cahaya infra merah. Detektor cahaya ini mengubah efek cahaya menjadi sinyal

listrik, oleh sebab itu fototransistor termasuk dalam golongan detektor optik.

Fototransistor memiliki sambungan kolektor

basis yang besar dengan cahaya infra merah,

karena cahaya ini dapat membangkitkan pasangan lubang elektron. Dengan diberi prasikap maju,

cahaya yang masuk akan menimbulkan arus pada kolektor. Fototransistor memiliki bahan utama

yaitu germanium atau silikon yang sama dengan bahan pembuat transistor. Tipe fototransistor juga

sama dengan transistor pada umumnya yaitu PNP dan NPN. Perbedaan transistor dengan

fototransistor hanya terletak pada rumahnya yang memungkinkan cahaya infra merah

mengaktifkan daerah basis, sedangkan transistor biasa ditempatkan pada rumah logam yang

tertutup. Simbol optocoupler seperti terlihat pada Gambar 2.9

Gambar 2.9 Simbol Optocoupler

Kerugian atau keburukan dari optocoupler adalah pada kecepatan switchingnya. Hal ini

disebabkan karena efek dari area yang sensistif terhadap cahaya dan timbulnya efek kapasitansi

pada ‘junction’

-nya. Jika diperlukan kecepatan switching yang cukup tinggi maka optoisolator

(17)

2.4.2 Prinsip Kerja dari Rangkaian Optocoupler

Prinsip kerja dari rangkaian Optocoupler adalah sebagai berikut :

1.

Jika antara phototransistor dan LED terhalang maka phototransistor tersebut akan off

sehingga output dari kolektor akan berlogika high.

2.

Sebaliknya jika antara phototransistor dan LED tidak terhalang maka phototransistor

tersebut akan on sehingga output-nya akan berlogika low.

2.5 LCD (Liquid Crystal Display)

LCD berfungsi menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. LCD yang digunakan adalah jenis LCD M1632. LCDM1632 merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya rendah. M1632 adalah merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah.

Modul ini dilengkapi dengan mikrokontroler yang didisain khusus untuk mengendalikan LCD. Kegunaan LCD banyak sekali dalam perancangan suatu sistem dengan menggunakan mikrokontroler. LCD dapat berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler. Pada bab ini akan dibahas antarmuka LCD dengan mikrokontroler ATMega8535. Contoh LCD pada gambar 2.10 dibawah ini

(18)

Urutan pin (1), umumnya, dimulai dari sebelah kiri (terletak di pojok kiri atas) dan untuk LCD yang memiliki 16 pin, 2 pin terakhir (15 & 16) adalah anoda dan katoda untuk back-lighting. Dibawah ini table fungsi pin – pin LCD (Liquid Crystal Display) :

Tabel 2.3 Fungsi pin-pin pada Liquid Crystal Display

Sebagaimana terlihat pada kolom deskripsi (symbol and functions), interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8 bit dikirim ke LCD secara 4 atau 8 bit pada satu waktu. Jika mode 4 bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8 bit (pertama dikirim 4 bit MSB lalu 4 bit LSB dengan pulsa clock EN setiap nibblenya). Berikut adalah contoh LCD (2×16) yang umum digunakan :

(19)

Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high (1) dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus. Saat jalur lainnya sudah siap, EN harus diset ke 0 dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high (1). Ketika jalur RS berada dalam kondisi low (0), data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau 1, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf pada layar maka RS harus diset ke 1. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high (1), maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke 0. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), mereka dinamakan DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4 atau 8 bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting. Mode 8 bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data). Sedangkan mode 4 bit minimal hanya membutuhkan 7 bit (3 pin untuk kontrol, 4 untuk data). Aplikasi dengan LCD dapat dibuat dengan mudah dan waktu yang singkat, mengingat koneksi parallel yang cukup mudah antara kontroller dan LCD.

2.6 Transistor

Didalam pemakaiannya, transistor dipakai sebagai komponen saklar (switching) dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (cut off) yang ada pada karakteristik transistor.

(20)

V

BE

Gambar 2.12 Transistor Sebagai Saklar ON

Saturasi pada transistor terjadi apabila arus pada kolektor menjadi maksimum dan untuk mencari besar arus basis agar transistor saturasi adalah :

Imax =

Hubungan antara tegangan basis (VB) dan arus basis (IB) adalah :

IB =

, maka transistor akan saturasi dengan IC mencapai

maksimum.

(21)

data. Biasanya VCE (sat) hanya beberapa perpuluhan Volt, maupun pada arus kolektor sangat besar bisa melebihi 1 Ampere. Bagian dibawah knee (Saturation) pada Gambar 2.13 dikenal sebagai daerah saturasi.

Penjenuhan (Saturation)

Gambar 2.13 Karakteristik Daerah Saturasi Pada Transistor

Pada daerah penyumbatan, nilai resistansi persambungan kolektor emiter secara ideal sama dengan tidak terhitung atau terminal kolektor dan emiter terbuka (open). Keadaan ini menyebabkan tegangan (VCB) sama dengan tegangan sumber (Vcc). Tetapi pada kenyataannya Vcc pada saat ini kurang dari Vcc karena terdapat arus bocor dari kolektor ke emiiter. Dengan menganalogikakan transistor sebagai saklar, transistor tersebut dalam keadaan cut off seperti Gambar 2.14.

I

B

Gambar 2.14 Transistor Sebagai Saklar Off

(22)

IB =

hfe

I

C

IC = IB . hfe

IC = 0 . hfe

IC = 0

Hal ini menyebabkan VCE sama dengan Vcc dapat dibuktikan dengan rumus :

VCC = VC + VCE

VCE = Vcc – (Ic . Rc) VCE = VCC

2.7 Perangkat Lunak

2.7.1 Pemrograman Bahasa C

Pada perancangan program pada alat, program yang digunakan adalah pemrograman bahasa C. Berikut penjelasan dasar-dasar pemrograman bahasa C :

1. Tipe Data

(23)

Tabel 2.4 Tipe Data Tipe Data Ukuran Jangkauan Nilai

Bit 1 bit 0 atau 1

Char 1 byte -128 s/d 225 Unsigned Char 1 byte 0 s/d 225 Signed Char 1 byte -128 s/d 127 Int 2 byte -32.768 s/d 32.767 Short Int 2 byte -32.768 s/d 32.767 Unsigned Int 2 byte 0 s/d 65.535 Signed Int 2 byte -32.768 s/d 32.767

Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Unsigned Long Int 4 byte 0 s/d 4.294.967.295

Signed Long Int 4 byte -2.147.483.648 s/d 2.147.483.647 Float 4 byte 1.2*10-38 s/d 3.4*10+38

Double 4 byte 1.2*10-38 s/d 3.4*10+38

2. Konstanta dan Variabel

(24)

Deklarasi konstanta :

Const [tipe_data][nama_konstanta]=[nilai]

Contoh :

Const char konstantaku=0x10;

Deklarasi variabel :

[tipe_data][nama_variabel]=[nilai_awal]

Contoh :

Char variabelku;

Char variabelku=0x20;

Bit variabel_bit;

Bit variabel_bit=1;

Pada deklarasi variabel, [nilai_awal] bersifat operasional sehingga boleh diisi dan boleh tidak diisi. Nilai_awal merupakan nilai default variabel tersebut dan jika tidak diisi maka nilai defaultnya adalah 0 (nol). Beberapa variabel dengan tipe yang sama dapat dideklarasikan dalam satu baris seperti contoh berikut :

Char data_a, data_b, data_c;

3. Komentar

Komentar adalah tulisan yang tidak dianggap sebagau bagian dari tubuh program. Komentar digunakan untuk memberikan penjelasan, informasi ataupun keterangan-keterangan yang dapat membantu mempermudah dalam memahami kode program baik bagi si pembuat program maupun bagi orang lain yang membacanya. Komentar yang hanya satu baris ditulis dengan diawali ’//’ sedangkan komentar yang lebih dari satu baris diawali dengan ’/*’ dan diakhiri dengan ’*/’.

(25)

// Ini adalah komentar satu baris

/* Sedangkan yang ini adalah komentar

yang lebih dari satu baris*/

Selain dihunakan untuk memberikan keterangan program, komentar juga dapat digunakan untuk membantu dalam pengujian program yaitu dengan menon-aktifkan dan mengaktifkan kembali bagian program tertentu selama proses pengujian.

4. Pengarah Preprosessor

Pengarah preprosessor digunakan untuk mendefenisikan prosessor yang digunakan, dalam hal ini adalah untuk mendefenisikan jenis mikrokontroller yang digunakan. Dengan pengarah preprosesor ini maka pendeklarasian register-register dan penamaannya dilakukan pada file yang lain yang disisipkan dalam program utama dengan sintaks sebagai berikut :

# include <nama_preprosessor>

Contoh :

# include <mega8535.h>

5. Pernyataan

Pernyataan adalah satu buah instruksi lengkap berdiri sendiri.

PORTC = 0x0F;

Pernyataan diatas merupakan sebuah instruksi untuk mengeluarkan data 0x0F ke Port C.

Contoh sebuah blok pernyataan :

(26)

Operator aritmatika adalah beberapa operator yang digunakan untuk melakukan perhitungan aritmatika. Berikut adalah tabel operator aritmatika :

Tabel 2.5 Operator Aritmatika Operator Keterangan

+ Operator untuk operasi penjumlahan - Operator untuk operasi pengurangan * Operator untuk operasi perkalian

/ Operator untuk operasi pembagian % Operator untuk operasi sisa pembagian

7. Operator Logika

Operator logika digunakan untuk membentuk suatu logika atas dua buah kondisi atau lebih. Berikut ini adalah tabel operator logika :

Tabel 2.6 Operator Logika

Operator Keterangan

&& Operator untuk logika AND

Ι Ι Operator untuk logika OR

! Operator untuk logika NOT

Contoh :

(27)

Pernyataan diatas terdiri dari 2 buah kondisi yaitu a==b dan c!=d yang keduanya dihubungkan dengan logika && (AND). Jika logika yang dihasilkan benar maka perintah PORTC = 0xFF akan dikerjakan dan jika salah tidak akan dikerjakan.

8. Operator Penambahan dan Pengurangan

Operator penambahan dan pengurangan adalah operator yang digunakan untuk menaikkan atau menurunkan nilai sebuah variabel dengan selisih 1. Berikut adalah tabel operator penambahan dan pengurangan :

Tabel 2.7 Operator Penambahan dan Pengurangan

Operator Keterangan

++ Operator untuk penambahan nilai

variabel dengan 1

-- Operator pengurangan nilai variabel

dengan 1

Maka operator a++ akan mengubah variable a dari 1 menjadi 2 dan operator b—akan mengubah variable b dari 5 menjadi 4.

9. Pernyataan If

Pernyataan If digunakan untuk melakukan pengambilan keputusan terhadap dua buah kemungkinan yaitu mengerjakan suatu blok pernyataan atau tidak. Bentuk pernyataan If adalah :

if (kondisi)

(28)

// blok pernyataan yang akan dikerjakan

// jika kondisi if terpenuhi

}

Contoh :

if (PINA>0x80)

{

Dataku=PINA;

PORTC=0xFF;

}

Pernyataan if diatas akan mengecek apakah data yang terbaca pada Port A (PINA) nilainya lebih dari 0x80 atau tidak, jika ya maka variable dataku diisi dengan nilai PINA dan data 0xFF dikeluarkan ke PORT C. Apabila dalam blok pernyataan hanya terdapat satu pernyataan saja maka tanda { dan } dapat dihilangkan seperti :

if (PINA>0x80) PORTC=0xFF;

2.7.2 CodeVisionAVR

CodeVisionAVR merupakan salah satu software compiler yang khusus digunakan untuk mikrokontroller keluarga AVR. Meskipun CodeVisionAVR termasuk software komersial, namun kita tetap dapat menggunakannya dengan mudah karena terdapat versi evaluasi yang disediakan secara gratis walaupun dengan kemampuan yang dibatasi.

Dari bebarapa software kompiler C yang pernah digunakan, CodeVisionAVR merupakan yang terbaik jika dibandingkan dengan kompiler-kompiler yang lain karena memiliki beberapa kelebihan yang dimiliki oleh CodeVisionAVR antara lain :

(29)

2. Fasilitas yang disediakan lengkap (mengedit program, mengkompile program, mendownload program) serta tampilannya terlihat menarik dan mudah dimengerti

3. Mampu membangkitkan kode program secara otomatis dengan menggunakan fasilitas CodeWizardAVR

4. Memiliki fasilitas untuk mendownload program langsung dari CodeVisionAVR dengan menggunakan hardware khusus seperti Atmel STK500, Kanda System STK200+/300 dan bebarapa hardware lain yang telah didefenisikan oleh CodeVisionaAVR

5. Memiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek kode assemblernya, contoh AVRStudio

6. Memiliki terminal komunikasi serial yang terintegrasi dalam CodeVisionAVR sehingga dapat digunakan untuk membantu pengecekan program yang telah dibuat khususnya yang menggunakan fasilitas komunikasi serial USART. Berikut adalah tampilan codevisionAVR :

(30)

Gambar

Gambar 2.2 Relay 8 Pin
Gambar 2.3 Relay Elektromekanis
Gambar 2.4 Arsitektur ATMEGA8535
Gambar 2.5 Memori AVR ATMega8535
+7

Referensi

Dokumen terkait

Pembuatan website ini bertujuan untuk mempromosikan perusahaan atau toko elektronik sehingga dapat meningkatkan keuntungan, mempermudah konsumen untuk mendapatkan informasi

Melalui pembuatan program sederhana untuk perhitungan persamaan regresi yang digunakan sebagai media analisa kedua bahasa tersebut, maka akan dilakukan penganalisaan

Salah satu strategi yang dapat dilakukan dalam belajar bahasa adalah dengan mempelajari budaya.. Di antara sekian banyak wujud budaya, antara lain tempat bersejarah

Kias adalah merupakan salah satu sumber hukum yang menjadikan hukum Islam tidak sempit dan tidak kaku, sebab segala persoalan yang baru muncul dalam kehidupan

Hal ini pula yang menjadikan tingginya angka kematian ibu di Indonesia, menjadikan Indonesia sebagai negara yang angka kematian ibunya tertinggi di seluruh

Peneliti melakukan penelitian di Feni Collection karena Feni Collection adalah toko pakaian yang menjual pakaian wanita yang mempunyai koleksi model terbaru dan memberikan

Guru memberikan kesempatan kepada kelompok lain untuk bertanya mengenai materi yang di presentasekan namun tidak membimbing siswa dalam menyimpulkan hasil diskusi3.

Simpulan penelitian ini dinyatakan sebagai berikut. 1) Penggunaan model pembelajaran kooperatif tipe TAI memberikan prestasi belajar yang lebih baik daripada