landasan teori - Universitas Sumatera Utara

advertisement
BAB II
LANDASAN TEORI
Landasan teori sangat membantu untuk dapat memahami suatu sistem. Selain dari
pada itu dapat juga dijadikan sebagai bahan acuan didalam merencanakan suatu
system. Dengan pertimbangan hal-hal tersebut, maka landasan teori merupakan bagian
yang harus dipahami untuk pembahasan selanjutnya. Pengetahuan yang mendukung
perencanaan dan realisasi alat meliputi remote kontrol, mikrokontroler ATMega 8535,
sensor TSOP 1738, LCD dan program.
2.1.
Remote Kontrol
Remote TV adalah suatu pengontrol, yang fungsinya untuk merubah dan
meng-set TV yang dapat digunakan untuk merubah saluran TV seperti ingin melihat
saluran ( RCTI, SCTV, INDOSIAR, ANTV, TRANS TV, dll ). Adapun untuk
meng-set TV tersebut, seperti contoh untuk meng-set dalam VCD atau DVD,
semua itu di kontrol oleh Remote TV, yang tentunya semua itu
tidak-lah
semudah yang dibayangkan, yang hanya menekan tombol Remote, dalam hal
pengerjaan Tugas Akhir ini penulis menggunakan Remote TV Sony.
Pada remote kontrol terdapat dua bagian yang utama yaitu : bagian transmiter
dan bagian receiver. Bagian transmitter dalam hal ini menggunakan remote yang
Universitas Sumatera Utara
sudah jadi, yaitu remote untuk TV. Sedangkan bagian penerimanya dibangun dari
dioda infra merah, filter, dan penguat sinyal/amplifier.
2.1.1.
Rangkaian Receiver
Untuk dapat mengambil data yang dipancarkan oleh remote maka harus dibuat
rangkaian penerima yang terdiri dari op-amp, IC 74LS04 (inverter), multitune variable
resistor, IR diode (receiver) dan beberapa komponen penunjang. Rangkaian
receivernya dapat dilihat pada gambar 2. Penggunaan dari op-amp ini untuk mengatur
penguatan dari sinyal yang diterima oleh IR diode. Sinyal yang diterima oleh IR diode
ini akan dimasukkan rangkaian high pass filter (C dan R). Kombinasi nilai dari C dan
R ini diperoleh dengan menggunkanan rumus :
Sinyal yang keluar dari rangkaian high pass filter dikuatkan dua kali. Rangkaian
penguat 1 adalah non-inverting amplifier dengan menggunakan op-amp LM358.
Kemudian output dari rangkaian penguat 1 dikuatkan sekali lagi dengan penguatan
non inverting amplifier juga dengan op-amp LM358. Sinyal yang keluar dari
rangkaian penguat 2 ini masih mengandung sinyal carrier. Untuk itu sinyal carriernya
perlu dihilangkan dengan cara menambahkan rangkaian low pass filter (R dan C).
Universitas Sumatera Utara
Penggunaan rangkaian high pass filter dan low pass filter ini untuk membatasi
frekuensi yang diterima, sinyal yang berada di bawah 159.23 Hz dan di atas 7.24 kHz
tidak dilewatkan. Dengan rangkaian low pass filter tersebut maka sinyal carrier dari
remote TV Sony tidak akan dilewatkan Kemudian sinyal itu disempurnakan dengan
menambahkan rangkaian comparator dengan mengunakan op-amp tipe LM339.
Komparator ini berfungsi jika tegangan yang masuk kurang dari tegangan referensinya
maka outputnya akan low sebaliknya jika tegangan yang masuk melebihi tegangan
referensi maka outputnya akan high. Output dari LM339 ini akan dimasukkan IC
74LS04 sebagai inverter.
Gambar 2. 2 Rangkaian Receiver Remote
Universitas Sumatera Utara
2.1.2.
Remote Kontrol TV Sony
Remote Control dibagi menjadi 3 menurut jenis pengkodeannya :
1. Pulses coded
Jenis ini mengatur panjang pulsanya, sehingga pulsanya divariasi untuk
menunjukkan data itu berlogic high atau low. Yang dijadikan variasi adalah pulsa
highnya. Metode ini dipakai oleh remote Sony.
Gambar 2. 3 Pulses Coded
2. Space coded
Metode ini juga mengatur panjang pulsanya untuk menunjukkan data tersebut
berlogic low atau high. Tetapi yang diatur adalah lebar pulsa lownya. Jenis ini
diterapkan oleh remote Panasonic.
Gambar 2. 4 Space Coded
Universitas Sumatera Utara
3. Shift coded
Metode ini yang paling berbeda diantara kedua metode di atas. Metode ini
menggunakan prinsip perbedaan fase untuk menunjukkan data yang dikirim berlogic
low atau high. Metode pengiriman data ini diterapkan oleh remote Philips.
Gambar 2. 5 Shift Coded
2.1.3.
Prinsip – prinsip Dasar Remote TV Sony
Prinsip Dasar dari Remote TV Sony adalah menggunakan frekuensi carrier
sekitar 36–40 kHz. Untuk membangkitkan sinyal dengan frekuensi 40 kHz tidak sulit
tetapi untuk menerima sinyal dengan frekuensi 40 kHz itu membutuhkan filters
dengan menggunakan sensor IR, sehingga penguatan sinyal, dan menghilangkan
sinyal carrier data yang diterima benar-benar valid. Remote yang digunakan dalam hal
ini adalah remote TV Sony. Format data dari remote Sony terdiri dari 12 bits data.
Data yang dikirimkan pertama kali adalah header selanjutnya baru data.
Remote Sony ini memiliki karakteristik yaitu memiliki periode (1T)=550
µs. Untuk remote Sony memiliki header high 4T dan low 1T, untuk logic 1 memiliki
pulsa high sepanjang 2T dan low 1T, dan untuk logic 0 memiliki pulsa high 1T
dan low 1T. Ini merupakan format aslinya sedangkan jika mengamati sinyal yang
dikirimkan remote melalui IR modul kebalikannya karena pada IR modul ada
Universitas Sumatera Utara
inverternya. Berikut contoh bentuk gambar pulsa dari header, logic 1 dan logic 0
dari remote TV Sony yang sebenarnya ( belum melalui gerbang inverter ).
Gambar 2. 6 Pulsa Remote Sony
2.1.4.
Cara kerja remote Sony
Cara kerja Remote TV erat kaitannya dengan saluran TV. Apakah televisi
tersebut dalam keadaan ON atau OFF, maupun dalam perpindaan saluran televisi
pada penekanan tombol, dan adapun fungsi – fungsi tombol beserta data yang
dikirimkan dari Remote TV Sony ke Rangkaian Penerima ( Receiver ), data yang
dikirimkan dapat dilihat dari tabel fungsi – fungsi dan data yang dikirimkan oleh
remote TV Sony, dan ternyata data yang dikirimkan berbeda – beda, hal ini di
rancang untuk membedakan tombol yang satu dengan tombol yang lainnya.
2.2.
Mikrokontroler ATMega8535
Mikrokontroler, sesuai namanya adalah suatualat atau komponen pengontrol
atau pengendali yang berukuran mikro atau kecil. Sebelum ada mikrokontroler,
telah ada terlebih dahulu muncul mikroprosesor. Bila dibandingkan dengan
Universitas Sumatera Utara
mikroprosesor, mikrokontroler jauh lebih unggul karena terdapat berbagai alasan,
diantaranya :
1. Tersedianya I/O
I/O dalam mikrokontroler sudah tersedia sementara pada mikroprosesor
dibutuhkan IC tambahan untuk menangani I/O tersebut. IC I/O yang dimaksud adalah
PPI 8255.
2. Memori Internal
Memori merupakan media untuk menyimpan program dan data sehingga
mutlak harus ada. Mikroprosesor belum memiliki memori internal sehingga
memerlukan IC memori eksternal. Dengan kelebihan-kelebihan di atas, ditambah
dengan harganya yang relatif murah sehingga banyak penggemar elektronika yang
kemudian beralih kemikrokontroler. Namun demikian, meski memiliki berbagai
kelemahan, mikroprosesor tetap digunakan sebagai dasar dalam mempelajari
mikrokontroler. Inti kerja dari keduanya adalah sama, yakni sebagai pengendali suatu
sistem.
Mikrokontroler merupakan komputer di dalam chip yang digunakan untuk
mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas
biaya. Secara harfiahnya bisa disebut “pengendali kecil“ dimana sebuah sistem
elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung
Universitas Sumatera Utara
seperti IC TTL dan CMOS dapat direduksi / diperkecil dan akhirnya terpusat serta
dikendalikan oleh mikrokontroler ini. Dengan menggunakan mikrokontroler ini maka:
1. Sistem elektronik akan menjadi lebih ringkas.
2. Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari
sistem adalah perangkat lunak yang mudah dimodifikasi.
3. Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak.
Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi komponen
IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan
tinggi atau sekedar menambah jumlah saluran input dan output (I/O). dengan
kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer
karena mikrokontroler sudah mengandung beberapa bagian yang langsung
bisa dimanfaatkan, misalnya port paralel, port serial, komparator,
konversi digital ke analog (DAC), konversi analog ke digital (ADC), dan
sebagainya hanya menggunakan Minimum System yang tidak rumit atau
kompleks.
Mikrokontroler adalah otak dari suatu sistem elektronika seperti halnya
mikroprosesor sebagai otak komputer. Namun mikrokontroler memiliki nilai tambah
karena didalamnya sudah terdapat memori dan sistem input/output dalam suatu
kemasan IC. Mikrokontroler AVR (Alf and Vegard’s RISC processor) standar
memiliki arsitektur 8-bit, dimana semua instruksi dikemas dalam kode 16- bit dan
sebagian besar instruksi dieksekusi dalam satu siklus clock. Berbeda dengan instruksi
MCS-51 yang membutuhkan 12 siklus clock karena memiliki arsitektur CISC (seperti
komputer).
Universitas Sumatera Utara
Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga
ATTiny, keluarga AT90Sxx, keluarga ATMega dan AT89RFxx. Pada dasarnya yang
membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari
segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
Oleh karena itu, dipergunakan salah satu AVR produk Atmel, yaitu ATMega 8535.
Selain mudah didapatkan dan lebih murah ATMega 8535 juga memiliki fasilitas
yang lengkap. Untuk tipe AVR ada 3 jenis yaitu ATTiny, AVR klasik, dan ATMega.
Perbedaannya hanya pada fasilitas dan I/O yang tersedia serta fasilitas lain
seperti ADC, EEPROM, dan lain sebagainya. Salah satu contohnya adalah ATMega
8535. Memiliki teknologi RISC dengan kecepatan maksimal 16 MHz membuat
ATMega 8535 lebih cepat bila dibandingkan dengan varian MCS51. Dengan fasilitas
yang lengkap tersebut menjadikan ATMega 8535 sebagai mikrokontroler yang
powerfull. Adapun blok diagramnya sebagai berikut :
Gambar 2. 7 Blok Diagram ATMega8535
Universitas Sumatera Utara
Dari gambar tersebut dapat dilihat bahwa ATMega 8535 memiliki bagian
sebagai berikut :
1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, Port D.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. Watchdog Timer dengan osilator internal.
6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.
8. Unit interupsi internal dan eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
11. Antarmuka komparator analog..
12. Port USART untuk komunikasi serial.
Kapabiltas detail dari ATMega 8535 adalah sebagai berikut :
1. Sistem mikroprosesor 8 bit bebrbasis RISC dengan kecepatan maksimal 16
MHz.
2. Kapabiltas memori flash 8 Kb, SRAM sebesar 512 byte, dan EEPROM
(Electrically Erasable Programmable Read Only Memory) sebesar 512
byte.
3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.
4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5. Enam pilihan mode sleep menghemat penggunaan daya listrik.
Universitas Sumatera Utara
2.3.
Konfigurasi PIN ATMega8535
Mikrokontroler ATMega8535 mempunyai jumlah pin sebanyak 40 buah,
dimana 32 pin digunakan untuk keperluan port I/O yang dapat menjadi pin
input/output sesuai konfigurasi. Pada 32 pin tersebut terbagi atas 4 bagian (port), yang
masing-masingnya terdiri atas 8 pin. Pin-pin lainnya digunakan untuk keperluan
rangkaian osilator, supply tegangan, reset, serta tegangan referensi untuk ADC. Untuk
lebih jelasnya, konfigurasi pin ATMega8535 dapat dilihat pada gambar 2.7.
Gambar 2. 8 Konfigurasi Pin ATMega8535
Berikut ini adalah susunan pin-pin dari ATMega8535;

VCC merupakan pin yang berfungsi sebagai pin masukkan catu daya

GND merupakan pin ground

Port A (PA0..PA7) merupakan pin I/O dua arah dan pin masukan ADC
Universitas Sumatera Utara

Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Timer/Counter, Komparator Analog, dan SPI

Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
TWI, Komparator Analog, dan Timer Oscilator

Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu
Komparator Analog, Interupsi Iksternal dan komunikasi serial USART

Reset merupakan pin yang digunakan untuk mereset mikrokontroler

XTAL1 dan XTAL2 merupakan pin masukkan clock eksternal (osilator
menggunakan kristal, biasanya dengan frekuensi 11,0592 MHz).
2.4.
Peta Memori ATMega8535
ATMega8535 memiliki dua jenis memori yaitu Program Memory dan Data
Memory ditambah satu fitur tambahan yaitu EEPROM Memory untuk penyimpan
data.
2.4.1.
Program Memory
ATMEGA 8535 memiliki On-Chip In-System Reprogrammable Flash Memory
untuk menyimpan program. Untuk alasan keamanan, program memory dibagi menjadi
dua bagian, yaitu Boot Flash Section dan Application Flash Section. Boot Flash
Section digunakan untuk menyimpan program Boot Loader, yaitu program yang harus
dijalankan pada saat AVR reset atau pertama kali diaktifkan.
Universitas Sumatera Utara
Application Flash Section digunakan untuk menyimpan program aplikasi yang
dibuat user. AVR tidak dapat menjalakan program aplikasi ini sebelum menjalankan
program Boot Loader. Besarnya memori Boot Flash Section dapat deprogram dari 128
word sampai 1024 word tergantung setting pada konfigurasi bit di register BOOTSZ.
Jika Boot Loader diproteksi, maka program pada Application Flash Section juga
sudah aman.
Gambar 2. 9 Peta Memori Program
2.4.2.
Data Memory
Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535.
Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk Register
File dan I/O Memory sementara 512 likasi address lainnya digunakan untuk internal
data SRAM. Register file terdiri dari 32 general purpose working register, I/O register
terdiri dari 64 register.
Universitas Sumatera Utara
Gambar 2. 10 Peta Memori Data
2.4.3.
EEPROM Data Memory
ATMEGA 8535 memiliki EEPROM 8 bit sebesar 512 byte untuk menyimpan
data. Loaksinya terpisah dengan system address register, data register dan control
register yang dibuat khusus untuk EEPROM. Alamat EEPROM dimulai dari $000
sampai $1FF.
Gambar 2. 11 EEPROM Data Memory
2.4.4.
Status Register (SREG)
Status register adalah register berisi status yang dihasilkan pada setiap operasi
yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti
CPU mikrokontroler.
Universitas Sumatera Utara
Gambar 2. 12 Status Register ATMega 8535

Bit 7 – I : Global Interrupt Enable
Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan.
Bit ini akan clear ketika ada interrupt yang dipicu dari hardware, setelah
program interrupt dieksekusi, maka bit ini harus di set kembali dengan
instruksi SEI.

Bit 6 – T : Bit Copy Storage
Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau
tujuan dalam operasi bit.

Bit 5 – H: Half Carry Flag

Bit 4 – S : Sign Bit
Bit S merupakan hasil exlusive or dari Negative Flag N dan Two’s
Complement Overflow Flag V.

Bit 3 – V : Two’s Complement Overflow Flag
Digunakan dalam operasi aritmatika

Bit 2 – N : Negative Flag
Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.

Bit 1 – Z : Zero Flag
Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set.
Universitas Sumatera Utara

Bit 0 – C : Carry Flag
Jika suatu operasi menghasilkan Carry, maka bit ini akan set.
2.5.
Sensor TSOP 1738
Pada sensor ini, logika yang digunakan logika high, setela logika low sesaat
dan itulah yang dijadikan sebagai data, sehingga dengan mengatur lebar pulsa high (1)
tersebut dengan suatu nilai tertentu dan menjadikan nilai tersebut sebagai datanya,
maka pengiriman data dapat dilakukan.
Gambar 2. 13 Sensor TSOP 1738
IC ini mempunyai karakteristrik yaitu akan mengeluarkan logika high (1) atau
tegangan ± 4,5 volt pada outputnya jika IC ini mendapatkanpancaran sinar infra merah
dengan frekuensi antara 38 – 40 Khz, dan IC ini akan mengeluarkan sinya Low (0)
atau tegangan ± 0.109 volt.
jika pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz berhenti,
namun logika low tersebut hanya sesaat yaitu sekitar 1200µs. Setelah itu, outputnya
kan kembali menjadi high. Sifat inilah yang dimanfaatkan sebagai pengiriman data.
Output dari IC ini dihubungkan ke P3.7 pada Mikrokontroler. Sehingga setiap kali IC
Universitas Sumatera Utara
ini mengeluarkan logika low atau high pada outputnya, maka mikrokontroler dapat
langsung mendeteksinya.
2.6.
Liquid Crystal Display (LCD) 2x16
Kegunaan LCD banyak
sekali
dalam perancangan suatu system dengan
menggunakan mikrokontroler. LCD (Liquid Crystal Display) dapat berfungsi untuk
menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu
pada aplikasi mikrokontroler. Pada praktek proyek ini, LCD yang digunakan adalah
LCD 16 x 2 yang artinya lebar display 2 baris 16 kolom dengan 16 Pin konektor.
Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain:
VCC (Pin 1)
Merupakan sumber tegangan +5V.
GND 0V (Pin 2)
Merupakan sambungan ground.
VEE (Pin 3)
Merupakan input tegangan Kontras LCD.
RS Register Select (Pin 4)
Merupakan Register pilihan 0 = Register Perintah, 1 = Register Data.
R/W (Pin 5)
Merupakan read select, 1 = read, 0 = write.
Universitas Sumatera Utara
Enable Clock LCD (Pin 6)
Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data.
D0 – D7 (Pin 7 – Pin 14)
Merupakan Data Bus 1 -7
Anoda ( Pin 15)
Merupakan masukan tegangan positif backlight
Katoda (Pin 16)
Merupakan masukan tegangan negatif backlight
Gambar 2. 14 LCD 2 x 16
Display karakter pada LCD diatur oleh pin EN, RS dan RW. Jalur EN
dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sebuah data
sedang
dikirimkan.
Untuk
mengirimkan
data
ke
LCD,
maka
melalui
program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS
dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan
tunggu dan berikutnya di set.
Universitas Sumatera Utara
2.7.
Bahasa Pemograman ATMega8535
Pemrograman mikrokontroler ATmega8535 dapat menggunakan low level
Language (assembly) dan high level language (C, Basic, Pascal, JAVA,dll)
tergantung compiler yang digunakan (Widodo Budiharto, 2006). Bahasa Assembler
mikrokontroler AVR memiliki kesamaan instruksi, sehingga jika pemrograman satu
jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai
pemrograman keseluruhan mikrokontroler jenis mikrokontroler AVR. Namun
bahasa assembler relatif lebih sulit dipelajari dari pada bahasa C.
Untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama
serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan
dibanding bahasa assembler yaitu independent terhadap hardware serta lebih mudah
untuk menangani project yang besar. Bahasa C memiliki keuntungan- keuntungan
yang dimiliki bahasa assembler (bahasa mesin), hampir semua operasi yang dapat
dilakukan oleh bahasa mesin, dapat dilakukan dengan bahasa C dengan penyusunan
program yang lebih sederhana dan mudah. Bahasa C terletak diantara bahasa
pemrograman tingkat tinggi dan assembly (Agus Bejo,2007).
2.8.
Dasar Pemrograman ATMega8535 dengan Bahasa C
2.8.1.
Pendahuluan
C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa
tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi
(bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi
Universitas Sumatera Utara
mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk membuat
program pada berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin,
sebab setiap perintahnya sangat bergantung pada jenis mesin.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada
tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program dalam
bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan pengembangan
program. Program yang ditulis dengan bahasa C mudah sekali dipindahkan dari satu
jenis program ke bahasa program lain. Hal ini karena adanya standarisasi bahasa C
yaitu berupa standar ANSI ( American National Standar Institut) yang dijadikan acuan
oleh para pembuat kompiler.
2.8.2.
Pengenal Pada Bahasa C
Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk
menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus.
Pemberian pengenal pada program harus memenuhi syarat-syarat di bawah ini:
1. Karakter pertama tidak menggunakan angka;
2. Karakter kedua berupa huruf, angka, garis bawah,;
3. Tidak menggunakan spasi;
4. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap
berbeda;
5. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator
dari bahasa C.
Universitas Sumatera Utara
Contoh menggunakan pengenal yang diperbolehkan:
1. Nama
2. _nama
3. Nama2
4. Nama_pengenal
Contoh penggunaan pengenal yang tidak diperbolehkan:
1. 2nama
2. Nama+2
3. Nama pengenal
2.8.3.
Tipe Data
Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari
tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif
sedangkan signed menyebabkan nilai tipe data bernilai negatif dan memungkinkan
data bernilai positif. Perbedaan nilai tipe data dapat kita lihat pada tabel di bawah ini.
Tabel 2. 1 Tipe Data
Pemodifikasi Tipe
Persamaan
Jangkauan Nilai
Signed char
Char
-128 s/d 127
Signed int
Int
-32.768 s/d 32.767
Signed short int
Short, signed short
-32.768 s/d 32.767
Signed long int
Long, long int, signed
long
-2.147.483.648 s/d
2.147.483.647
Unsigned char
Tidak ada
0 s/d 255
Unsigned int
Unsigned
0 s/d 65.535
Universitas Sumatera Utara
Unsigned short int
Unsigned short
0 s/d 65.535
Unsigned long int
Unsigned long
0 s/d 4.294.967.295
Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil
program,
#include <mega.8535>
#include <delay.h>
Void main (void)
{
int a, b;
// pengenal
unsigned d, e;
a = 50;
b = 40;
d = 50;
e = 40;
PORTC
DDRC
PORTB
DDRB
=
=
=
=
0x00;
0Xff; //set PORTC sebagai output
0x00;
0Xff; // set PORTB sebagai output
While(1)
{
PORTB = a – b;
PORTC = d – e;
delay_ms(100);
};
}
Program di atas akan memberikan data di PORTB = 10 (desimal) sedangkan
PORTC = -10 (desimal) karena PORT mikrokontroler tidak dapat mengeluarkan nilai
negatif maka PORTB dan PORTC akan memiliki keluaran 0x0A tapi pada
kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut
disimpan dalam memori.
Universitas Sumatera Utara
Pada program di atas terdapat tulisan //set
PORTB sebagai output
yang berguna
sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari program.
Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu dengan
mengawali komentar dengan tanda “ // “ ( untuk komentar yang hanya satu baris ) dan
mengawali komentar dengan tanda “ /* “ dan mengakhiri komentar dengan tanda “ */
“.
Contoh:
// ini adalah komentar
/* ini adalah komentar
Yang lebih panjang
Dan lebih panjang lagi */
2.8.4.
Header
Header digunakan untuk menginstruksikan kompiler untuk menyisipkan file
lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis
mikrokontroler yang kita gunakan (pada software Code Vision AVR). File-file yang
ber akhiran .h disebut file header.
File header yang digunakan untuk mendefinisikan jenis mikrokontroler yang
digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register
yang terdapat program difungsikan untuk jenis mikrokontroler apa yang digunakan (
pada software Code Vision AVR ).
Contoh:
#include <mega8535.h>
#include<delay.h>
#include <stdio. h>
Universitas Sumatera Utara
2.8.5.
Operator Aritmatika
Operator aritmatika digunakan untuk melakukan proses perhitungan
matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada
tabel di bawah ini:
Tabel 2. 2 Operator Aritmatika
Operator
Keterangan
+
Operator untuk penjumlahan
-
Operator untuk pengurangan
*
Operator untuk perkalian
/
Operator untuk pembagian
%
Operator untuk sisa bagi
Contoh penggunaan operator aritmatika dapat dilihat di bawah ini,
#include < mega8535.h>
#include <delay.h>
void main (void)
{
unsigned char a, b;
a = 0x03;
b = 0x05;
DDRC 0XFF; // PORTC digunakan sebagai output
while (1)
{
PORTC = (a * b);
delay_ms(500);
}
}
Universitas Sumatera Utara
2.8.6.
Operator Pembanding
Operator pembanding digunakan untuk membandingkan 2 data atau lebih.
Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika salah.
Operator pembanding dapat kita lihat pada tabel di bawah ini:
Tabel 2. 3 Operator Pembanding
Operator Contoh Keterangan
2.8.7.
==
x = = y Benar jika kedua data bernilai sama
!=
x != y
Bernilai benar jika kedua data tidak sama
>
x>y
Bernilai benar jika nilai x lebih besar dari pada y
<
x<y
Bernilai jika x lebih kecil dari y
>=
x >= y
Bernilai jika x lebih besar atau sama dengan y
<=
x <= y
Bernilai benar jika x lebih kecil atau sama dengan y
Operator Logika
Operator logika digunakan untuk membentuk logika dari dua pernyataan atau
lebih. Operator logika dapat dilihat pada tabel di bawah ini:
Tabel 2. 4 Operator Logika
Operator Keterangan
&&
Logika AND
||
Logika OR
!
Logika NOT
Universitas Sumatera Utara
Contoh program:
#include < mega8535.h>
#include <delay.h>
void main (void)
{
DDRC = 0XFF; // sebagai output
DDRA = 0X00; // sebagai input
while (1)
{
If ( PINA.0 == 1 )|| (PINA.1 == 1 ){
PORTC = 0XFF;
delay_ms(500);
PORTC = 0X00;
Delay_ms(500);
}
else{
PORTC = 0x00;
delay_ms(500);
}
}
}
Penjelasan program:
Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan
mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang
waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC
akan mengeluarkan logika 0x00.
2.8.8.
Operator Bitwise
Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan
operator logika adalah pada operator logika akan menghasilkan pernyataan benar atau
salah sedangkan pada operator bitwise akan menghasilkan data biner. Operator
bitwise dapat dilihat pada tabel di bawah ini:
Universitas Sumatera Utara
Tabel 2. 5 Operator Bitwise
Operator Keterangan
&
Operasi AND level bit
|
Operasi OR level bit
^
Operasi XOR level bit
~
Operator NOT level bit
>>
Operator geser kanan
<<
Operator geser kiri
Contoh program:
#include <mega8535.h>
#include <delay.h>
void main (void)
{
unsigned char a,b,c;
DDRC = 0xff; //portc sebagai output
while (1)
{
a = 0x12;
b = 0x34;
c = a & b;
PORTC = c;
delay_ms(500);
};
}
Penjelasan program:
a = 0x12 =
0001 0010
b = 0x32 =
0011 0000
------------------------a & b = 0x10 = 0001 0000
2.8.9.
Operator Penugasan dan Operator Majemuk
Operator ini digunakan untuk memberikan nilai atau manipulasi data sebuah
variabel. Operator penguasa dapat kita lihat pada tabel di bawah ini:
Universitas Sumatera Utara
Tabel 2. 6 Operator Penugasan
Operator
=
+=
-=
*=
/=
%=
Keterangan
Memberikan nilai variabel
Menambahkan nilai variabel
Mengurangi nilai variabel
Mengalikan nilai variabel
Membagi nilai variable
Memperoleh sisa bagi
Contoh:
a += 2 ; artinya nilai variabel a berubah menjadi a = a + 2
b *= 4; artinya nilai variabel b berubah menjadi b = b * 4
selain operator penugasan di atas juga ada operator penugasan yang berkaitan dengan
operator bitwise seperti pada tabel di bawah ini:
Tabel 2. 7 Operator Majemuk
Operator Contoh
Arti
&=
x &= 1
Variabel x di AND kan dengan 1
|=
x |= 1
Variabel x di OR kan dengan 1
~=
x ~= 1
x = ~ (1) ; x = 0xFE
^=
x ^= 1
Variabel x di XOR kan dengan 1
<<=
x <<= 1 Variabel x digeser kiri 1 kali
>>=
x >>= 1 Variabel x digeser kanan 1 kali
Universitas Sumatera Utara
2.8.10.
Operator Penambahan dan Pengurangan
Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel
dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini:
Tabel 2. 8 Operator Penambahan dan Pengurangan
Operator
++
--
Keterangan
Penambahan 1 pada variable
Pengurangan
Contoh:
a
b
a
b
= 1;
= 2;
++;
--;
Penjelasan:
Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan
operator B— akan mengubah variabel b dari 2 menjadi 1.
2.8.11.
Pernyataan If dan If Bersarang
Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih
pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar
maka akan di jalankan instruksi pada blok nya, sedangkan jika pernyataan tidak benar
maka instruksi yang pada blok lain yang dijalankan ( sesuai dengan arah programnya).
Universitas Sumatera Utara
Bentuk pernyataan IF adalah sebagai berikut:
1. Bentuk sederhana
if (kondisi){
Pernyataan_1;
Pernyataan_2;
............;
}
2. Pernyataan else
if (kondisi)
{
Pernyataan_1;
............;
}
else
{
Pernyataan_2;
............;
}
3. If di dalam if
Pernyataan ini sering disebut nested if atau if bersarang. Salah satu
bentuknya adalah sebagai berikut:
if (kondisi1)
Pernyataan_1;
else if (kondisi2)
pernyataan_2;
else if (kondisi3)
pernyataan_3;
else
pernyataan;
contoh program:
if ( PINA.0 = =1)
{
PORTC = 0xff;
}
else
{
PORTC = 0x00;
}
Penjelasan program:
Jika PINA.0 diberi input logika 1 maka PORTC akan mengeluarkan logika
0xff, jika yang pernyataan yang lain maka PORTC akan mengeluarkan logika 0x00.
Universitas Sumatera Utara
2.8.12.
Pernyataan Switch
Pernyataan switch digunakan untuk melakukan pengambilan keputusan
terhadap banyak kemungkinana. Bentuk pernyataan switch adalah sebagai berikut :
Switch (ekspresi)
{
case nilai_1
: pernyataa_1;break;
case nilai_2
: pernyataan_2;break;
case niai_3 : pernyataan_3;break;
…
Defaut
: pernyataan_default;break;
}
Pada pernyataanswitch,masing-masing pernyataan (pernyataan_1 sampai
dengan pernyataan_default) dapat berupa satu atau beberapa perintah dan tidak perlu
berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai sama
dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama dengan
nilai_2, pernyataan_3 akan dikerjakan jika ekspresi bernilai sama dengan nilai_3 dan
seterusnya. Pernyataan_default bersifat opsional, artinya boeh dikerjakan apabila
nilai ekspresi tidak ada yang sama satupun dengan salah satu nilai_1, nilai_2, nilai_3
dan seterusnya. Setiap akhir dari pernyataan harus diakhiri dengan break, karena ini
digunakan untuk keuar dari pernyataan swich.
Contoh :
Switch (PINA)
{
case 0xFE
case 0xFD
}
: PORT=0x00;break;
: PORT=0xFF;break;
Pernyataan di atas berarti membaca port A, kemudian datanya (PINA) akan
dicocokan dengan nilai case. Jika PINA bernilai 0xFE maka data 0x00 akan
dikeluarkan ke port C kemudian program keluar dari pernyataan switch tetapi jika
Universitas Sumatera Utara
PINA bernilai 0xFD maka data 0xFF akan dikeluarkan ke port C kemudian
program keluar dari pernyataan switch.
2.8.13.
Pernyatan While
Pernyataan while digunakan untuk menguangi sebuah pernyataan atau blok
kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk
pernyataan while adalah sebagai berikut :
while (kondisi)
{
// sebuah pernyataan atau blok pernyataan
}
Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka
tanda { dan } bias dihilangkan.
Contoh :
unsigned char a=0;
…..
while (a<10)
{
PORT=a;
a++;
}
Pernyataan di atas akan mengeluarkan data a ke port C secara berulang-ulang.
Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a mencapai 10 maka
pengulangan selesai.
Universitas Sumatera Utara
2.8.14.
Pernyataan Do..While
Pernyataan do…while hamper sama dengan pernyataan while, yaitu
pernyataan yang digunakan untuk menguangi sebuah pernyataan atau blok pernyataan
secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan
while adalah sebagai berikut :
do
{
// sebuah pernyataan atau b;ok pernyataan
} while (kondisi).
Yang membedakan antara pernyataan while dengan do..while adalah bahwa
pada pernyataan while pengetesan kondisi dilakukan terlebih dahulu, jika kondisi
terpenuhi maka barulah blok pernyataan dikerjakan. Sebaliknya pada pernyataan
do…while blok pernyataan dikerjakan terebih dahulu setelah itu baru diakukan
pengetesan kondisi, jika kondisi terpenuhi maka dilakukan pengulangan pernyataan
atau blok pernyataan lagi. Sehingga dengan demikian pada pernyataaan do..while blop
pernyataan pasti akan dikerjakan minimal satu kali sedangkan pada pernyataan
whilebok pernyataan beum tentu dikerjakan.
2.8.15.
Pernyataan For
Pernyataan for juga digunakan untuk melakukan pengulangan sebuah
pernyataan atau blok pernyataan, tetapi berapa kali jumah pengulangannya dapat
ditentukan secara lebih spesifik. Bentuk pernyataan for adalah sebagai berikut :
for
(nilai_awal ; kondisi ; perubahan)
{
// sebuah pernyataan atau blok pernyataan
}
Universitas Sumatera Utara
Nilai_awal adaah nilai inisial awa sebuah variabel yang didefenisikan
terebih dahuu untuk menentukan niai variabel pertama kai sebelum penguangan.
Kondisi merupakan pernyataan pengetesan untuk mengontrol pengulangan,
jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan akan diulang terus
sampai pernyataan kondisi tidak terpenuhi (salah).
Perubahan adalah pernyataan yang digunakan untuk melakukan perubahan
niai variabel baik naik maupun turun setiap kali pengulangan dilakukan.
Contoh :
unsigned int a;
for ( a=1, a<10, a++)
{
PORT=a;
}
Pertama kali nilai a adalah 1, kemudian data a dikeluarkan ke port C.
selanjutnya data a dinaikkan (a++) jika kondisi a<10 masih terpenuhi maka data a
akan terus dikeluarkan ke port C.
2.9.
Software ATMega8535 Editor dan Simulator
2.9.1.
Software ATMega8535 Editor
Instruksi - instruksi yang merupakan bahasa C tersebut dituliskan pada sebuah
editor, yaitu Code Vision AVR. Tampilannya seperti berikut ini:
Universitas Sumatera Utara
Gambar 2. 15 Tampilan Code Vision AVR
2.9.2.
Melakukan
Software Downloader
download
program
ke
mikrokontroler
dapat
menggunakan
ponyprog2000. Tampilannya seperti di bawah ini:
Gambar 2. 16 Tampilan Ponyprog2000
Universitas Sumatera Utara
2.10.
Software Desain PCB (Printed Circuit Board) Eagle 4.13r
Untuk mendesain PCB dapat digunakan software EAGLE 4.13r yang dapat didownload di internet secara gratis . Tampilan software EAGLE 4.13r dapat dilihat
pada gambar 2.4 dibawah ini :
Gambar 2. 17 Tampilan software EAGLE 4.13r
Cara menggunakan software
ini terlebih dahulu yang dikerjakan adalah
mendesain skematik rangkaian, setelah itu memindahkannya ke dalam bentuk board
dan mendesain tata letak komponen sesuai keinginan tetapi harus sesuai jalur
rangkaian nya agar rangkaian dapat berfungsi sesuai dengan skematiknya. Setelah itu
didesain layout PCB nya , barulah siap di-print dan di-transfer ke PCB. Pada proses
pentransferan layout ke PCB dapat digunakan kertas Transfer Paper.
Universitas Sumatera Utara
BAB III
PERANCANGAN ALAT DAN PROGRAM
3.1.
Perancangan Alat
3.1.1.
Diagram Blok Rangkaian
Gambar3. 1 Diagram Blok
Universitas Sumatera Utara
Penjelasan dari masing-masing blok adalah sebagai berikut:
1. Fungsi remote sony adalah penghasil clock yang akan di pancar kan mengenai
sensor TV. Clok yang dipancarkan berbeda-beda datanya sesuai dengan
tombol apa yang di tekan pada remote TV.
2. Sensor TSOP 1738, berfungsi untuk menerima kode-kode scan tombol dari
remote TV yang digunakan.
3. ATmega8535
adalah mikrokontroler CMOS 8-bit daya-rendah berbasis
arsitektur RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu
siklus clock, ATmega8535 mempunyai throughput mendekati 1 MIPS per
MHz membuat disainer sistem untuk mengoptimasi komsumsi daya versus
kecepatan proses.
4. Rangkaian driver lampu AC sebagai penggerak dari peralatan listrik (lampu)
agar dapat dikontrol oleh mikrokontroller.
5. Lampu Utama dan motor DC (kipas) digunakan sebagai beban yang akan
dikontrol oleh remote.
6. Rangkaian driver motor DC sebagai penggerak dari peralatan listrik (kipas)
agar dapat dikontrol oleh mikrokontroller.
7. LCD berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks,
atau menampilkan menu pada aplikasi mikrokontroler.
Universitas Sumatera Utara
3.1.2.
Rangkaian Power Supply
Power supply digunakan untuk member tegangan pada alat.
Gambar3. 2 Rangkaian Power Supply
3.1.3.
Rangkaian Mikrokontroler ATMega8535
ATmega8535 adalah mikrokontroler CMOS 8-bit daya-rendah berbasis arsitektur
RISC yang ditingkatkan. Kebanyakan instruksi dikerjakan pada satu siklus clock,
ATmega8535 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer
sistem untuk mengoptimasi komsumsi daya versus kecepatan proses.
Universitas Sumatera Utara
Gambar3. 3 Rangkaian Skematik Minimum Mikrokontroler ATMega 8535
3.1.4.
Rangkaian LCD (Liquid Crystal Disply) 2x16
LCD adalah suatu display dari bahan cairan Kristal yang berfungsi menampilkan
suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi
mikrokontroler.
Gambar3. 4 Rangkaian LCD
3.1.5.
Rangkaian Sensor TSOP 1738
Sensor TSOP 1738 digunakan sebagai penerima / receiver remote kontrol dari TV
atau VCD. Rangkaiannya tampak seperti dibawah ini:
Universitas Sumatera Utara
Gambar3. 5 Rangkaian Sensor TSOP 1738
3.1.6.
Perancangan Perangkat Lunak
Perancangan perangkat lunak sistem kontrol ruangan dengan menggunakan remote
TV berbasis Mikrokontroller ATMega 8535 ini didasarkan pada semua kemungkinan
kejadian yang harus dikerjakan oleh perangkat keras. Pembuatan perangkat lunak ini
berdasarkan pada pengendali utamanya yaitu mikrokontroler 8535.
Diagram alir (flowchart) program utama perancangan dan pembuatan sistem
pengontrolan ruangan menggunakan Remote TV berbasis Mikrokontroller ATMega
8535 adalah sebagai berikut:
Universitas Sumatera Utara
Universitas Sumatera Utara
Gambar3. 6 Diagram alir (Flowchart)
Program dimulai dari start, dan dilanjutkan dengan inisialisasi untuk
memetakan memori dan port yang dipakai pada program dan pengambilan data dari
Universitas Sumatera Utara
Download