Top Banner
Interface remote tv sony dengan TSOP 1738 berbasis atmega 16……. Untuk membaca data tombol remote TV sony. Kita dapat membuat alat reciver remote sony dengan tampilan LCD berbasis atmega 16. Rangkaian sebagai berikut….. PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/IN T2 3 PB3/AIN1/O C0 4 PB4/SS 5 PB5/M O SI 6 PB6/MISO 7 P B 7/SCK 8 RESET 9 X TA L2 12 X TA L1 13 PD0/RXD 14 PD 1/TXD 15 PD2/IN T0 16 PD3/IN T1 17 PD4/O C1B 18 PD5/O C1A 19 PD6/IC P1 20 PD7/O C2 21 PC 0/SC L 22 PC1/SDA 23 PC 2/TC K 24 PC3/TM S 25 PC4/TD O 26 PC5/TD I 27 PC 6/TO SC1 28 PC 7/TO SC2 29 P A 7/ADC 7 33 P A 6/ADC 6 34 P A 5/ADC 5 35 P A 4/ADC 4 36 P A 3/ADC 3 37 P A 2/ADC 2 38 P A 1/ADC 1 39 P A 0/ADC 0 40 AREF 32 AVCC 30 U1 A TM E G A 16 C1 47uf R1 4k7 X1 CRYSTAL C2 22p C3 22p D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LC D 1 LM 016L RV1 50K 1 2 3 TSO P 1738 A. Universal remote control TV SONY Remote sony memiliki feature 12-bit, 15-bit and 20- bit versions of the protocol exist (12-bit described here). 5-bit address and 7-bit command length (12-bit protocol) . Untuk modulasi lebar pulsa saat “high” atau “low” adalah :
37

Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Oct 23, 2015

Download

Documents

Drmat Rmat II
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Interface remote tv sony dengan TSOP 1738 berbasis atmega 16…….

Untuk membaca data tombol remote TV sony. Kita dapat membuat alat reciver

remote sony dengan tampilan LCD berbasis atmega 16.

Rangkaian sebagai berikut…..

PB0/T0/XCK1

PB1/T12

PB2/AIN0/INT23

PB3/AIN1/OC04

PB4/SS5

PB5/MOSI6

PB6/MISO7

PB7/SCK8

RESET9

XTAL212XTAL113

PD0/RXD 14

PD1/TXD 15

PD2/INT0 16

PD3/INT1 17

PD4/OC1B 18

PD5/OC1A 19

PD6/ICP1 20

PD7/OC2 21

PC0/SCL 22

PC1/SDA 23

PC2/TCK 24

PC3/TMS 25

PC4/TDO 26

PC5/TDI 27

PC6/TOSC1 28

PC7/TOSC2 29

PA7/ADC733PA6/ADC634PA5/ADC535PA4/ADC436PA3/ADC337PA2/ADC238PA1/ADC139PA0/ADC040

AREF 32

AVCC 30

U1

ATMEGA16

C147uf

R14k7

X1CRYSTAL

C2

22p

C3

22p

D7

14D

613

D5

12D

411

D3

10D

29

D1

8D

07

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD1LM016L

RV1

50K

123

TSOP 1738

A. Universal remote control TV SONY

Remote sony memiliki feature 12-bit, 15-bit and 20-bit versions of the

protocol exist (12-bit described here). 5-bit address and 7-bit command length (12-bit

protocol). Untuk modulasi lebar pulsa saat “high” atau “low” adalah :

Gambar data dikirimkan 7 bit command dan 5 bit anddres.

(sumber: www.sbprojects.com)

Dengan protokol diatas, data LSB dikirimkan pertama kali, pulsa diawali dengan

start bit selama 2.4ms, kemudian diikuti standard low 0.6ms. data dikirimkan 7-bit

command dan 5-bit address.

Page 2: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Gambar 19. Modulasi lebar pulsa pada saat high ke low.

(sumber: www.sbprojects.com)

Dari gambar diatas, terlihat bahwa yang membedakan logika high dan low adalah

lebar pulsa. Lebar pulsa low adalah 600us dan pulsa high bernilai lebih dari itu (1.2ms)..

Untuk membaca data tombol remote TV sony. penulis menggunakan alat reciver

remote sony dengan tampilan LCD berbasis atmega 16. Data tombol remote TV sony

dapat dilihat pada table

B. LCD (Liquid Crystal Display)

LCD (Liquid Crystal Display) atau dapat dibahasa Indonesia-kan sebagai tampilan

Kristal Cair adalah suatu jenis media tampilan yang menggunakan kristal cair sebagai

penampil utama. LCD bisa memunculkan gambar atau tulisan dikarenakan terdapat

banyak sekali titik cahaya (piksel) yang terdiri dari satu buah kristal cair sebagai sebuah

titik cahaya. Walau disebut sebagai titik cahaya, namun kristal cair ini tidak memancarkan

cahaya sendiri. Sumber cahaya di dalam sebuah perangkat LCD adalah lampu berwarna

putih di bagian belakang susunan kristal cair tadi.Titik cahaya yang jumlahnya puluhan

ribu bahkan jutaan inilah yang membentuk tampilan citra. Kutub kristal cair yang dilewati

arus listrik akan berubah karena pengaruh polarisasi medan magnetik yang timbul dan

oleh karenanya akan hanya membiarkan beberapa warna diteruskan sedangkan warna

lainnya tersaring.

Dalam menampilkan karakter untuk membantu menginformasikan proses dan

control yang terjadi dalam suatu program kita sering menggunakan LCD juga. Yang sering

Page 3: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

digunakan dan paling mudah untuk dipelajari adalah LCD dengan banyak karakter 16x2.

Maksudnya semacam fungsi tabel di MicrosoftOffice. 16 menyatakan kolom dan 2

menyatakan baris.Bila kita beli di pasaran, LCD 16x2 masih kosongan, maksudnya

kosongan yaitu butuh driver lagi supaya bisa dikoneksikan dengan sistem minimum dalam

suatu mikrokontroler. Driver yang disebutkan berisi rangkaian pengaman, pengatur tingkat

kecerahan backligt maupun data, serta untuk mempermudah pemasangan di

mikrokontroler (portable-red). Contoh LCD 16x2 dapat dilihat seperti gambar 20.

Gambar 20. Bentuk Fisik LCD 16x2

(Sumber: www.gravitecth.us)

Sedangkan untuk konfigurasi pin-nya dapat dilihat seperti Gambar 21.

Gambar 21. Konfigurasi Pin dari LCD

Modul LCD memiliki karakteristik sebagai berikut:

Page 4: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

1. Terdapat 16 x 2 karakter huruf yang bisa ditampilkan.

2. Setiap huruf terdiri dari 5x7 dot-matrix cursor.

3. Terdapat 192 macam karakter.

4. Terdapat 80 x 8 bit display RAM (maksimal 80 karakter).

5. Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit.

6. Dibangun dengan osilator lokal.

7. Satu sumber tegangan 5 volt.

8. Otomatis reset saat tegangan dihidupkan.

9. Bekerja pada suhu 0°C sampai 55°C

Fungsi pin yang terdapat pada LCD ditunjukkan seperti pada tabel 5.

Tabel 6. Konfigurasi Pin dari LCD

NO Nama Pin Fungsi

1 VSS Groud voltage2 VCC +5V3 VEE Contrast voltage 4 RS Register select

0 = Instruction Register1 = Data Register

5 R/W Read/Write,to choosen write or read mode 0 = write mode1 = read mode

E Enable0 = strast to lach data to LCD character1 = disable

7 DB0 Data bit ke-0 (LSB)8 DB1 Data bit ke-19 DB2 Data bit ke-210 DB3 Dat bit ke-311 DB4 Data bit ke-412 DB5 Dat bit ke-513 DB6 Data bit ke-614 DB7 Data bit ke-7 (MSB)15 BPL Back Plane Light16 GND Ground voltage

(Heri andrianto,2008)Secara umum setiap pinnya didefinisikan sebagai berikut :

a. .Pin 1 : Ground

b. Pin 2 : Vcc

Page 5: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

c. Pin 3 : VEE (contrast)

d. Pin 4 : RS (Register Select).

0 = Instruction Register. 1 = Data Register

e. Pin 5 : R/W (Read / Write mode).

0 = Write Mode. 1 = Read Mode

f. Pin 6 : En (Enable).

0 = start to latch data to LCD. 1 = Disable

g. Pin7-14 : DB0 - DB7 (Data Bus)

h. Pin 15 : Back Light (+)

i. Pin16 : Back Light (-)

Display karakter pada LCD diatur oleh pin EN, RS dan RW. Jalur EN dinamakan

Enable. Jalur ini digunakan untuk memberitahu LCD bahwa kita sedang mengirimkan

sebuah data. 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 untuk sejumlah waktu tertentu (sesuai

dengan datasheet dari LCD tersebut) dan berikutnya set EN ke logika low “0” lagi. Jalur

RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap perintah

atau instruksi khusus (seperti clear screen, posisi kursor, dll). Ketika RS berlogika high

“1”, data yang dikirim adalah data text yang akan ditampilkan pada display LCD. Sebagai

contoh, untuk menampilkan huruf “T” pada layar LCD maka RS harus diset logika high

“1”. Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka

informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”,

maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi

umum pin RW selalu diberi logika low ”0”. Setiap pemberian logika RS, EN, dan R/W

membutuhkan waktu sekitar 15ms.

Page 6: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

C. Mikrokontroler ATmega 16

AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis

arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi

dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter

fleksibel dengan compare mode, interrupt internal dan eksternal, serial UART,

programmable Watchdog Timer, dan mode power saving, ADC dan PWM internal. AVR

juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori

program untuk ulang dalam sistem menggunakan hubungan serial SPI. (Solikhul Hadi,

2008:1)

ATMega 16 salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai

macam fungsi. Pada mikrokontroler AVR sudah terdapat oscillator internal dan ADC.

Selain itu AVR memiliki Power-On Reset, yaitu tidak perlu adanya tombol reset dari luar,

karena hanya cukup mematikan supply, maka secara otomatis AVR akan melakukan reset.

ATmega16 dilengkapi dengan 32 jalur I/O yang dapat digunakan untuk

mengakses data dari luar dan mengeluarkan data. Komponen ATmega16 dibuat dengan

konfigurasi pin dan set intruksinya sesuai dengan standar industri dari keluarga

mikrokontroler ATmega16.

1. Konfigurasi Pin ATmega 16

Page 7: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Gambar 3. Konfigurasi kaki (pin) ATmega 16

(www.atmel.com)

ATmega 16 memiliki 40 pin yang masing-masing pin memiliki fungsi yang

berbeda-beda baik sebagai port maupun sebagai fungsi lainya. Fungsi dari masing-

masing pin pada ATmega 16 adalah sebagai berikut:

a. VCC

VCC berfungsi sebagai masukan catu daya.

b. GND

GND merupakan Ground. Referensi nol suplai tegangan digital.

c. Port A

Port A yaitu pin nomor 33 sampai 40 (PA0..PA7) merupakan port I/O 8-bit

dengan resistor pull-up internal tiap pin. Buffer port D memiliki kapasitas menyerap

dan menyatu. Fungsi lain dari pin ini adalah sebagai input ADC.

d. Port B

Port B yaitu pin nomor 1 sampai 8 (PB0..PB7). Port I/O dua arah

(bidirectional) 8-bit dengan resistor pull-up internal tiap pin. Buffer port B memiliki

kapasitas menyerap dan menyatu. Fasilitas khusus dari port B ini adalah adanya In-

Page 8: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

System Programming, yaitu PB5 sebagai MOSI, PB6 sebagai MISO, PB7 sebagai

SCK. Seperti dapat dilihat pada tabel berikut.

Tabel 2. Fungsi Khusus Port B ATmega 16

Port Pin Fungsi Alternatif

PB7 SCK (SPI Bus Serial Clock)

PB6 MISO (SPI Bus Master Input/Slave Output)

PB5 MOSI (SPI Bus Master Output/Slave Input)

PB4 SS (SPI Slave Select Input)

PB3 AIN1 (Analog Comparator Negativ Input) OC0 (Timerl Counter0 Output Compare Match Output)

PB2 AIN0 (Analog Comparator Positiv Input) INT2 (External Interrupt 2 input)

PB1 T1 (Timer/Counter1 External Counter Input)

PB0 T0 T1 (Timer/Counter0 External Counter Input) XCK (USART External Clock Input/Output)

(Atmel Corporation 2002).

e. Port C

Port C yaitu pin nomor 22 sampai 29 (PC0..PC7). Port I/O dua arah

(bidirectional) 8-bit dengan resistor pull-up internal tiap pin dan pin fungsi

khusus.Buffer port C memiliki kapasitas menyerap dan menyatu.

Tabel 3. Fungsi Khusus Port C ATmega 16

Port Pin Fungsi Alternatif

PC7 TOSC2 (Timer Oscillator Pin2)

PC6 TOSC1 (Timer Oscillator Pin1)

PC5 TD1 (JTAG Test Data In)PC4 TDO (JTAG Test Data Out)

PC3 TMS (JTAG Test Mode Select)

PC2 TCK (JTAG Test Clock)

PC1 SDA (Two-wire Serial Bus Data Input/Output Line)PC0 SCL (Two-wire Serial Bus Clock Line)

Page 9: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

(Atmel Corporation 2002)

f. Port D

Port D yaitu pin nomor 14 sampai 21 (PD0..PD7). Port I/O dua arah

(bidirectional) 8-bit dengan resistor pull-up internal tiap pin. Buffer port D

memiliki kapasitas menyerap dan menyatu.Fasilitas khusus dari port D ini yakni

PD0 sebagai RXD, PD1 sebagai TXD. Seperti dapat dilihat pada tabel berikut:

Tabel 4. Fungsi Khusus Port D ATmega 16

Port Pin Fungsi Alternatif

PD7 OC2 (Timer/Counter2 Output Compare Match Output)

PD6 ICP (Timer/Counter1 Input Capture Pin)PD5 OC1A (Timer/Counter1 Output Compare A Match Output)PD4 OC1B (Timer/Counter1 Output Compare B Match Output)

PD3 INT1 (External Interrupt 1 Input)

PD2 INT0 (External Interupt 0 Input)

PD1 TXD (USART Output Pin)

PD0 RXD (USART Input Pin)

(Atmel Corporation ,2002)

g. RESET

Fungsi pin ini adalah untuk mereset mikrokontroler ATmega 16. Sinyal LOW

pada pin ini dengan lebar minimum 1,5µs akan membawa mikrokontroler pada

kondisi RESET meskipun clock tidak sedang berjalan. Sinyal dengan lebar kurang

dari 1,5µs tidak menjamin terjadinya reset.

h. AREF

Pin analog untuk tegangan referensi ADC.

i. XTAL 1

Merupakan pin input penguat inverting oscillator dan input clock Eksternal.

Page 10: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

j. XTAL 2

Merupakan pin output dari penguat inverting oscillator.

k. AVCC

AVCC adalah pin suplai tegangan untuk ADC. Pin ini harus dihubungkan

dengan VCC, meskipun ADC tidak digunakan, jika ADC digunakan VCC harus

dihubungkan ke AVCC melalui low-pass filter untuk mengurangi noise. (Atmel

Corporation: 2003).

1. Arsitektur Mikrokontroler AVR RISC

Page 11: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Gambar 4. Arsitektur Mikrokontroler AVR RISC

(www.atmel.com)

Dari gambar di atas, AVR menggunakan arsitektur Harvard dengan

memisahkan antara memori dan bus untuk program dan data untuk memaksimalkan

kemampuan dan kecepatan. Instruksi dalam memori program dieksekusi dengan

pipelining single level. Dimana ketika satu instruksi dieksekusi, instruksi berikutnya

diambil dari memori program.

Konsep ini mengakibatkan instruksi dieksekusi setiap clock cycle. CPU terdiri

dari 32x8 bit general purpose register yang dapat diakses dengan cepat dalam satu

clock cycle, yang mengakibatkan operasi Arithmetic Logic Unit (ALU) dapat dilakukan

dalam satu cycle. Pada operasi ALU, dua operand berasal dari register, kemudian

operasi dieksekusi dan hasilnya disimpan kembali pada register dalam satu clock cycle.

Operasi aritmatik dan logic pada ALU akan mengubah bit-bit yang terdapat pada Status

Register (SREG). Proses pengambilan instruksi dan pengeksekusian instruksi berjalan

secara parallel.

Gambar 3. Proses pengambilan dan pengeksekusian instruksi secara parallel.

(Atmel Corporation ,2002)

Page 12: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

2. Blok Diagram ATmega 16

Page 13: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Gambar 5. Blok Diagram ATmega 16

(www.atmel.com)

3. General Purpose Register AVR

Page 14: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Gambar 6. General Purpose Register AVR

(www.atmel.com)

Gambar di atas menunjukan struktur 32 general purpose register yang

terdapat dalam CPU, masing-masing register ditentukan juga dalam alamat memori

data, dipetakan ke dalam 32 lokasi pertama data user. Walaupun tidak secara fisik

diimplementasikan sebagai lokasi SRAM, namun pengaturan ini memberikan

flexsibilitas dalam mengakses register, seperti registerpointer X,Y, dan Z dapat diset

menuju index dari registerfile manapun.

4. Stack Pointer

Stack utamanya digunakan untuk menyimpan data sementara, untuk

menyimpan variable local dan untuk menyimpan return address setelah interrupt dan

pemanggilan subrutin. Stack Pointer selalu menunjuk ke puncak stack. Stack

diimplementasikan mulai dari lokasi memori tertinggi ke lokasi memori terendah,

sehingga perintah PUSH akan mengurangi Stack Pointer.

Page 15: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Gambar 7. Stack Pointer

(www.atmel.com)

Berikut ini program inisialisasi awal stack pointer yang ditulis dalam bahasa assembler

MAIN: LDI R16, LOW (RAMEND)

OUT SPL, R16

LDI TMP, HIGH (RAMEND)

OUT SPH, R16

5. Peta Memori ATmega 16

Terdapat tiga kelompok memori dalam mikrokontroler ATmega16 yaitu:

a. Memori program (Memory FLASH)

Memori FLASH merupakan blok dari memori FLASH yang dimulai dari

lokasi 0×000. Memori FLASH merupakan memori non-volatile dan digunakan

untuk menyimpan kode eksekusi dan konstanta, karena kode-kode tersebut akan

digunakan kembali meskipun mikrokontroler tidak terhubung ke catu daya. Non-

volatile yaitu kode yang disimpan dalam memori tidak hilang meskipun

mikrokontroler tidak dialiri listrik,  ruang memori antara 16 bit pada setiap lokasi

untuk menangani instruksi mesin yang khususnya single-16 bit word. Untuk

keamanan program, memori program, flash dibagi ke dalam dua bagian, yaitu bagian

program Boot dan aplikasi. Bootloader adalah program kecil yang bekerja pada saat

start up time yang dapat memasukan seluruh program aplikasi ke dalam memori

prosesor.

Page 16: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Gambar 8. Peta Memori Program AVR ATmega 16

(www.atmel.com)

b. Memori Data (SRAM)

Memori data AVR ATmega 16 terbagi menjadi 3 bagian, yaitu 32 buah register

umum, 64 buah register I/O dan 1 Kbyte SRAM internal.

1) Register-Register

Register umum menempati 32 sel terendah dalam data memori.

Register ini kebanyakan digunakan seperti data penyimpanan dalam kalkulator

yang mana hanya disimpan sementara. Terkadang digunakan u ntuk menyimpan

variabel lokal, variabel global, dan terkadang sebagai pengarah ke memori yang

digunakan oleh prosesor. Prosesor menggunakan 32 register kerja sebagaimana

program dieksekusi.

2) Register I/O

Page 17: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Setiap register memberikan akses ke register kontrol atau ke register

data I/O peripheral yang berada dalam mikrokontroler. Programmer lebih sering

menggunakan I/O register untuk mengantarmuka ke peripheral I/O  dari

mikrokontroler. Setiap register I/O memiliki nama, sebuah alamat I/O, dan alamat

SRAM.

3) SRAM

Bagian SRAM dari memori digunakan untuk menyimpan variabel

yang tidak dapat disimpan kedalam register dan untuk menyimpan prosesor

stack.

Gambar 9. Peta Memori Data AVR ATmega 16

(www.atmel.com)

c. Memori Data (EEPROM)

ATmega 16 terdiri dari 512 byte memori data EEPROM 8 bit. Bagian

memori EEPROM adalah area memori baca/tulis yang non volatile, ini biasanya

digunakan untuk menyimpan data yang tidak boleh hilang saat catu daya dilepas

(mikrokontroler dimatikan) dan dipasang kembali (mikrokontroler dinyalakan).

Page 18: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Ruang EEPROM dimulai dari 0×000 dan ke nilai maksimum tergantung spesifikasi

mikrontroler yang digunakan.

6. Timer

Timer/counter adalah fasilitas dari ATmega 16 yang digunakan untuk

perhitungan pewaktuan. Beberapa fasilitas chanel dari timer counter antara lain counter

channel tunggal, pengosongan data timer sesuai dengan data pembanding, bebas -

glitch, tahap yang tepat Pulse Width Modulation (PWM), pembangkit frekuensi, event

counter external.

Gambar 10. Blok diagram timer/counter

(www.atmel.com)

A. Pemrograman Bahasa C

Bahasa C adalah bahasa mesin tingkat tinggi. Dimana dapat dengan mudah untuk

melakukan pemrograman terhadap mikrokontroler. Dengan instruksi-instruksi yang

mudah dipahami dan mudah diakses. Secara umum pemrograman mikrokontroler terdiri

atas empat blok, yaitu :

1. Header,

2. Deklarasi kostanta global,

3. Fungsi dan atau prosedur ( biasa di bawah program utama),

Page 19: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

4. Program utama.

Secara umum, pemrograman C paling sederhana dapat dilakukan dengan hanya

menuliskan program utamanya saja. Beberapa peraturan yang ada dalam bahasa C adalah:

1. Header

Header berisi include file (.hex), yaitu library (pustaka) yang akan digunakan

dalam pemrograman. Perhatikan contoh dibawah ini:

#include <mega16.h>

#include <delay.h>

#incude <stdio.h>

2. Tipe Data

Berikut ini adalah tabel tipe-tipe variabel data yang dapat digunakan di compiler

Code Vision AVR:

Tabel 7. Type Data

Type Size (Bits) Range

Bit 1 0,1

Char 8 -128 to 127

unsigned char 8 0 to 255

signed char 8 -128 to 127

Int 16 -32768 to 32767

short int 16 -23768 to32767

unsigned int 16 0 to 65535

signed int 16 -32768 to 32767

long int 32 -2147483648 to 2147483647

unsigned long int 32 0 to 4294967295

Page 20: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

unsigned long int 32 0 to 4294967295

signed long int 32 -2147483648 to 2147483647

Float 32 ±1.175e-38 to ±3.402e38

Double 32 ±1.175e-38 to ±3.402e38

(Heri andrianto,2008:21)

3. Konstanta

Penulisan konstanta adalah sebagai berikut:

a. Integer atau long integer dapat ditulis dengan format decimal (contoh 1234), biner

dengan awalan 0b (contoh 0b101001), heksadesimal dengan awalan 0x (contoh 0xff)

atau oktal dengan awalan 0 (contoh 0777).

b. Unsigned integer ditulis dengan diakhiri U (contoh 10000U).

c. Long integer ditulis dengan diakhiri L (contoh 99L).

d. Unsigned long integer ditulis dengan diakhiri UL (contoh 99UL).

e. Floating point ditulis dengan diakhiri F (contoh 1.234F).

Karakter konstanta harus ditulis dalam tanda kutip (contoh ‘a’), sedangkan

konstanta string harus dalam tanda kutip dua (contoh “Saya Belajar C”).

4. Label, Variabel, Fungsi

Identifikasi label, variabel dan fungsi dapat berupa huruf (A…Z, a…z) Dan

angka (0…9), juga karakter underscore (_). Meskipun begitu identikasi hanya bias

dimulai dengan huruf atau karakter underscore. Yang lebih penting lagi, identifikasi ini

Page 21: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Case is significant, yaitu huruf besar dan kecil berbeda. Misal Variable1 tidak sama

dengan variabel1. Identifikasi bisa memuat sebanyak 32 karakter.

5. Komentar

Komentar diawali dengan tanda ’/*’ dan diakhiri dengan ‘*/’. Perhatikan

contoh dibawah:

/* ini komentar */

6. Reserved Keywords

Berikut ini adalah daftar kata baku yang tidak bias dipakai (reserfed keywords)

untuk label, identifikasa atau variable:

Break flash signed do int typedef

Bib float sizeof double interrupt union

Case for sfrb eeprom long unsigned

Char funcused sfrw else register void

const goto static enum return volatile

continue if struct extern short while

default inline witch

7. Operator

Berikut ini beberapa operator yang digunakan pada bahasa pemrograman C

adalah:

a. Operator Kondisi

Operator kondisi menyediakan operator yang dimaksudkan untuk menyatakan

kondisi. Operator kondisi dilihat pada Tabel 7.

Tabel 8. Operator Kondisi

Operator Kondisi Keterangan.

Page 22: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

< Lebih kecil

<= Lebih kecil atau sama dengan

> Lebih besar

>= Lebih besar sama dengan

= = Sama dengan

!= Tidak sama dengan

a. Operator Aritmatika

Operator untuk operasi aritmatika yang tergolong operator binary seperti

yang terdapat pada Tabel 8.

Tabel 9. Operator Aritmatika

(Heri Andrianto:

2008)

b. Operator Logika

Merupakan operasi boolean yang terdiri dari AND, OR, NOT.

Tabel 10. Operator logika

Operator logika Keteranagan

! Bolehan NOT

&& Bolehan AND

|| Bolehan OR

Operator aritmatika keteranagan

+ Penjumlahan

- Penguranagan

* Perkalian

/ Pembagian

% Sisa hasil bagi

Page 23: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

(Heri Andrianto: 2008)

c. Operator Bitwise

Tabel 11. Operator bitwise

Operator bitwise Keteranagan

~ Komplemen Bitwise

& Bitwise AND

| Bitwise OR

^ Bitwise Exclusive OR

>> Right Shift

<< Left Shift

(Heri Andrianto: 2008)

d. Operasi assignment

Tabel 12. Operasi assignment.

Operator assignment

Keterangan

= Untuk memasukan nilai

+ = Untuk menambahkan nilai dari keadaan semula

- = Untuk mengurangi nilai dari keadaan semula

*= Untuk mengkalikan nilai dari keadaan semula

/= Untuk melakukan pembagian nilai dari bilanagan semula

%= Untuk memasukan nilai sisa hasil dari pembagian bilangan semula

<<= Untuk memasukan shift left

>>= Untu memasukan shift right

&= Untuk memasukan bitwise AND

^= Untuk memasukan bitwise OR

\= Untuk memasukan bitwise XOR

Page 24: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

(Heri Andrianto: 2008)

8. Konversi Pola ( % )

Karakter % dipakai sebagai operator konversi pola. Konversi pola akan

sangat berguna pada saat kita menampilkan hasil ke LCD.

a. %d menampilkan bilangan bulat positif.

Contoh: Sprintf (buf,”angka%d”,14);

b. %o menampilkan bilangan octal bulat.

c. %x menampilkan bilangan heksadesimal bulat.

d. %u menampilkan bilangan decimal tanpa tanda.

e. %f menampilkan bilangan pecahan.

f. %i menampilkan bilangan integer.

g. %c menampilkan karakter yang ditunjukkan bilangan ASCII.

9. Memasukkan Bahasa Assembly

Sering disebut juga dengan in-line assembly. Pemrograman dengan bahasa C ini

masih dapat memasukkan bahasa assembly ke dalam program C. Struktur

penulisannya juga mudah, yaitu:

#asm //dimulai dengan #asm

nop// blok bahasa assembly

nop//

#endasm // diakhiri dengan #endasm

….

Atau

Page 25: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

….

#asm(“nop\nop\nop”)

….

10. Pernyataan kendali lainnya

a. Break

Pernyataan ini akan menghentikan dan menyebabkan keluar dari suatu blok

program.

b. Continue

Pernyataan ini akan menyebabkan kendali melakukan kembali proses

perulangan dari awal.

c. Goto – label

Pernyataan ini akan melakukan loncatan ke label yang dituju.. .(Heri Andrianto:

2008)

B. ISIS Proteus

Proteus adalah sebuah software yang memiliki kemampuan simulasi rangkaian

elektronik dan simulasi terhadap firmware pada embedded system seperti

mikrokontroler. Proteus memiliki labcenter elektronik yang menyediakan macam alat

ukur, mulai dari oscilloscope, frequency counter, spectrum analyzer, multimeter, signal

generator komponen baik pasif, aktif maupun embedded system (uP) dengan jumlah

yang tidak terbatas.

C. ARES (Avenced Routing and Editing Software)

ARES (Avenced Routing and Editing Software) merupakan software yang

digunakan untuk mendesain layout PCB. Software ini merupakan salah satu modul dari

Page 26: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Proteus Sistem. Pada software ini dilengkapi perangkat untuk mendesain PCB dengan

beragam tool yang disediakan. (Cholis Syarifudin: 2011). Tool yang penting dalam

menggambar layout PCB seperti Gambar 27.

Gambar 27. Simbol pada Ares

Package merupakan tool yang digunakan dalam pengambilan komponen

sedangkan trace digunakan untuk menggabungkan atau membuat jalur antar komponen.

List progam

lib remote tv soni. TSOP1738slamet harimukti***********************************************************/unsigned int nilai,count, code, pulse_count; unsigned char data[15]; bit tanda;void timer0_init();// External Interrupt 0 service routineinterrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here tanda=~tanda; if(tanda==1) { MCUCR=0x03; //rissing edge timer0_init(); //timer0 on, nilai=0, mulai mencacah } else { TCCR0=0; //timer0 off, berhenti mencacah count=TCNT0; //simpan nilai timer0 MCUCR=0x02; //falling edge if(pulse_count>0){ data[pulse_count]=count; if(data[pulse_count] >9) //9*0.0853=0.7677ms { code = code | (1 << (pulse_count-1)); } else { code = code & ~(1 << (pulse_count-1)); };

Page 27: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

pulse_count=pulse_count+1; //sinyal pertama tanda=1 if(pulse_count==12) //jumlah data = 8 bit { nilai=code; nilai=nilai&0b0000111111111111; code= pulse_count=0; }; } else //verifikasi start bit atau start pulse (2.4 ms long) {

if(count >= 28) // pulse = 2.4ms maka adalah sinyal start bit (28*0.08533ms = 2.3892ms) { pulse_count=pulse_count+1; } else { delay_ms(20); // tunda 20ms } }; }; } //timer0 initvoid timer0_init(){ //8-bit timer for measuring delay between IR pulses TCNT0 = 0; //reset the timer TCCR0 = 0x05; //CLK / 1024 0.0853ms}void remot_init(){ tanda=0; MCUCR=0x02; GICR |= 0x40; // Global enable interrupts #asm(“sei”)}void remot_off(){ tanda=0; MCUCR=0x00; GICR = 0x00; // Global enable interrupts #asm(“cli”)}

Page 28: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16
Page 29: Interface Remote Tv Sony Dengan TSOP 1738 Berbasis Atmega 16

Tabel 5. Data pada tombol remote sony.Tombol Kode Remote Tombol Kode Remote

MUTING 148 JUMP 187

DISPLAY 186 TEXT CLR 171

POWER 149 + (R) 1009

TEXT 191 SELECT/MENU 244

VIDEO 165 A/B 151

TV 184 - (L) 1008

1 126 PIC MODE 228

2 129 WAKE UP 188

3 130 SLEPP 182

4 131 VOL + 106

5 132 VOL - 147

6 133 PROGR + 144

7 134 PROGR - 145

8 135 -/-- 157

9 136 0 137

(hasil dari pengamat)