• Tidak ada hasil yang ditemukan

SISTEM PENAMPIL PESAN PADA TELEVISI BERBASIS MIKROKONTROLER AVR ATMEGA32

N/A
N/A
Protected

Academic year: 2019

Membagikan "SISTEM PENAMPIL PESAN PADA TELEVISI BERBASIS MIKROKONTROLER AVR ATMEGA32"

Copied!
198
0
0

Teks penuh

(1)

BERBASIS MIKROKONTROLER

AVR ATMEGA32

TUGAS AKHIR

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik pada

Program Studi Teknik Elektro

Fakultas Teknik Universitas Sanata Dharma

Disusun Oleh :

BAKRI SUSANTO

NIM : 035114020

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2007

(2)

BASED ON AVR ATMEGA32

MICROCONTROLLER

FINAL PROJECT

Presented as Partial Fulfillment of the Requirements

to Obtain the SARJANA TEKNIK Degree

in Electrical Engineering

of Sanata Dharma University

By :

BAKRI SUSANTO

Student Number : 035114020

ELECTRICAL ENGINEERING STUDY PROGRAM

ELECTRICAL ENGINEERING DEPARTMENT

ENGINEERING FACULTY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2007

(3)
(4)
(5)

“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini

tidak memuat karya atau bagian karya orang lain,

kecuali yang telah disebutkan dalam kutipan dan daftar pustaka,

sebagaimana layaknya karya ilmiah.”

Yogyakarta, 9 Juli 2007

Bakri

Susanto

(6)

Keberhasilan perlu dikejar dengan semangat dan kerja keras.

Orang biasa belajar sedikit dari keberhasilan

tetapi belajar banyak dari kegagalan.

Tak seorang pun akan sukses dan tetap sukses

tanpa bekerja sama dengan orang lain.

(Benyamin Franklin)

Orang yang paling lemah adalah

orang yang tidak mampu mencari sahabat-sahabat

tetapi orang yang lebih lemah lagi adalah

Orang yang mendapatkan beberapa sahabat

tetapi menyia-nyiakannya.

(Imamali)

Kupersembahkan Tugas Akhir ini untuk:

Bapaku yang di surga,

Segenap keluargaku , dan

Teman-teman seperjuangan

(7)

AVR ATMEGA32

Bakri Susanto

035114020

Intisari

Komunikasi dapat dilakukan melalui berbagai media. Media-media

komunikasi antara lain telepon, radio, televisi, dan lain-lain. Melalui media

komunikasi, sebuah pesan dapat disampaikan kepada orang lain, misalnya melalui

televisi. Televisi merupakan suatu perangkat untuk menampilkan gambar dan suara.

Akan tetapi, karena kemampuan televisi untuk mereproduksi gambar, teks dan grafik

maka televisi menjadi sangat bermanfaat dan pemakaiannya jauh lebih banyak.

Berdasarkan alasan inilah, maka dibuat suatu alat yang dapat berfungsi untuk

menampilkan pesan pada televisi dengan menggunakan mikrokontroler.

Dalam penelitian ini mikrokontroler yang digunakan adalah mikrokontroler

AVR ATmega32 dari Atmel. Mikrokontroler ini mempunyai memori dan kecepatan

yang cukup untuk membangkitkan sinyal video hitam putih pada televisi. Standar

sinyal video yang digunakan adalah NTSC dengan frekuensi kerangka 30 Hz.

Resolusi tampilan adalah 128 (horizontal) x 100 (vertikal)

pixel

.

Alat ini terdiri dari 2 bagian, yaitu bagian perangkat keras dan bagian

perangkat lunak. Bagian perangkat keras terdiri dari rangkaian antarmuka

mikrokontroler, televisi, dan keyboard. Sedangkan bagian perangkat lunak merupakan

program untuk membangkitkan sinyal video hitam putih.

Alat ini telah dicoba dan terbukti mampu menampilkan karakter berupa angka

maupun huruf ke layar televisi. Alat ini mampu menampilkan 16 karakter dalam satu

baris horizontal dengan ukuran karakter 5x7. Untuk ukuran karakter yang lebih besar,

jumlah karakter yang dapat ditampilkan dalam satu baris menjadi berkurang. Alat ini

dapat membaca masukan yang berasal dari

keyboard

.

Kata kunci

: sinyal video, aplikasi mikrokontroler AVR

(8)

MICROCONTROLLER

Bakri Susanto

035114020

Abstract

Communication can be done through various media. Communication medias

are telephone, radio, television, etc. Through communication media, a message can

be informed to another people for example through television. Television is a device

to display image and sound. But, because of television ability to reproduce picture,

text and graphic, so television become very useful and it more use now. Based on this

reason, a device that can display messages on television using microcontroller is

being made.

In this research, the microcontroller that is being used is ATmega32 AVR.

This microcontroller has enough memory and speed to generate black and white

television video signal. The standard of video signal has been used is NTSC with

frame frequency 30 Hz. The display resolution is 128 (horizontal) by 100 (vertical)

pixel.

This device consists of two parts which are hardware and software. The

hardware contains microcontroller interface circuit, television, and keyboard. The

software is to generate black and white video signal.

This device has been tested and proven can display character in form of

numbers or letters to television screen. This device can display 16 characters in a row

with 5x7 sized characters. For larger characters, the number of characters that can be

displayed in a row is less. This device can receive inputs from keyboard.

Keywords

: video signal, AVR microcontroller application

(9)

Puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa yang telah

melimpahkan rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan tugas

akhir berjudul “Sistem Penampil Pesan Pada Televisi Berbasis Mikrokontroler AVR

ATmega32”.

Tugas akhir ini merupakan salah satu syarat untuk memperoleh gelar Sarjana

Teknik pada Jurusan Teknik Elektro Universitas Sanata Dharma Yogyakarta.

Penulisan tugas akhir ini didasarkan pada hasil-hasil yang penulis dapatkan selama

proses perancangan, pembuatan, pengujian dan pengembangan alat.

Penulisan tugas akhir ini tidak lepas dari bantuan berbagai pihak. Oleh karena

itu, penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:

1.

Bapak Djoko Untoro Suwarno, S.Si., M.T. selaku pembimbing I yang telah

meluangkan waktu, tenaga dan pikirannya untuk membimbing penulis.

2.

Bapak Ir. Tjendro selaku pembimbing II yang dengan senang hati memberikan

saran, ide, dukungan dan semangat.

3.

Bapak Damar Wijaya, S.T, M.T. atas bantuannya dalam peminjaman kartu kredit

untuk pembelian

software

CodeVision AVR.

4.

Bapak Alexius Rukmono, S.T. dan teman-teman dari CV. E-tech Mandiri yang

telah memberitahu rangkaian

downloader

untuk AVR.

5.

Bapak Pius Yozy Merucahyo, S.T., M.T. dan Bapak Petrus Setyo Prabowo, S.T.

sebagai dosen penguji saat ujian kolokium yang telah memberikan tambahan ide

dan revisi pada skripsi penulis.

6.

Ibu Wiwien Widyastuti, S.T, M.T. dan Bapak Ir. Iswanjono, M.T. sebagai dosen

penguji saat ujian pendadaran yang telah memberikan revisi pada skripsi penulis.

7.

Bapak dan Ibu dosen yang telah banyak memberikan pengetahuan dan bimbingan

kepada penulis selama kuliah di Universitas Sanata Dharma.

8.

Bapak Aris Sukardjito dan seluruh karyawan/wati Sekretariat Fakultas Teknik

Universitas Sanata Dharma.

9.

Kedua orang tua penulis yang telah memberikan semangat dan doa yang tak

pernah putus sehingga penulis dapat menyelesaikan tugas akhir ini.

(10)

yang telah memberikan semangat baik material maupun spiritual.

11.

Temanku Opang yang telah bersedia meminjamkan kameranya, memberikan

saran, dukungan dan ide kepada penulis.

12.

Teman-teman kontrakan : Sungkit, Andreas, Manto, Topan dan Boboto yang telah

menemani penulis dalam suka maupun duka.

13.

Teman-teman kost Tasura 52 : Njoo, Jerry, Aweng, Hartono, Jigo, Jimbong,

Anton, Aan atas kebersamaannya selama penulis kuliah di Universitas Sanata

Dharma.

14.

Laboran Teknik Elektro : mas Hardi, mas Suryono, mas Mardi, mas Broto dan

mas Yusuf.

15.

Teman-teman mahasiswa jurusan Teknik Elekro yang telah banyak membantu :

Jeffry, Widyono, Suryo, Denis, Winarto, Cecep, Merry, Yohe, Inggit dan semua

pihak yang tidak dapat penulis sebutkan satu per satu.

Penulis menyadari bahwa masih banyak kelemahan dan kekurangan dari

penulisan tugas akhir ini. Oleh karena itu segala kritik dan saran yang bersifat

membangun sangat penulis harapkan.

Akhir kata penulis berharap agar skripsi ini dapat bermanfaat bagi penulis

maupun pembaca semuanya.

Yogyakarta, 31 Juli 2007

Penulis

Bakri

Susanto

(11)

HALAMAN JUDUL

………...

i

HALAMAN PERSETUJUAN PEMBIMBING ………..

iii

HALAMAN PENGESAHAN

... iv

PERNYATAAN KEASLIAN KARYA

……….

v

MOTO DAN PERSEMBAHAN

………...

vi

INTISARI

………..

vii

ABSTRACT ………...

viii

KATA PENGANTAR

……….

ix

DAFTAR ISI

………...

xi

DAFTAR GAMBAR

………. xiv

DAFTAR TABEL

………. xvi

DAFTAR LAMPIRAN

………. xvii

BAB I. PENDAHULUAN

………

1

1.1

Latar Belakang Masalah ……….. 1

1.2

Tujuan dan Manfaat Penelitian ……… 2

1.3

Batasan Masalah ………... 2

1.4

Metodologi Penelitian ………. 3

1.5

Sistematika Penulisan ……….. 3

BAB II. DASAR TEORI

……….

4

2.1 Televisi ……….... 4

2.1.1 Elemen-elemen

Gambar

………. 4

2.1.2 Pemayaran

Horizontal dan Vertikal ………... 5

2.1.3 Garis-garis Setiap Kerangka ……… 7

2.1.4 Frekuensi Kerangka ……… 7

2.1.5 Frekuensi Medan ……… 7

2.1.6 Frekuensi Pemayaran Horizontal dan Vertikal ……….. 8

2.1.7 Waktu untuk Garis Horizontal ……… 8

2.2 Sinyal Video ……… 9

2.3 Konverter Digital ke Analog ………... 10

(12)

2.4.1 Pendahuluan

……… 11

2.4.2 Arsitektur ATmega32 ………. 12

2.4.3 Fitur ATmega32 ……….. 13

2.4.4 Konfigurasi Pin ATmega32 ……… 13

2.4.5 Peta Memori ……… 14

2.4.6 Status Register (SREG) ……….. 16

2.4.7 Mode

Sleep

………. 17

2.4.8 Interupsi

……….. 18

2.4.9 I/O Port ………... 18

2.4.10

Timer/Counter

1 ………. 19

2.5 Keyboard IBM PC ……… 22

2.5.1 Tata

Kerja

Keyboard

PC ………. 22

2.6 Pemrograman Mikrokontroler ATmega32 ……….. 25

2.6.1 Struktur Program dalam Bahasa C ………. 26

2.6.2 Tipe Data dalam Bahasa C ………. 27

2.6.3 Variabel

………..

28

2.6.4 Operator pada Bahasa C ………. 28

2.6.4.1 Operator Aritmatika ……… 28

2.6.4.2 Operator

Bitwise

(Manipulasi Bit) ………. 29

2.6.4.3 Operator Relasi ……… 29

2.6.4.4 Operator Logika ……….. 30

2.6.5 Percabangan dan Perulangan ……….. 30

2.6.5.1 Percabangan Bersyarat (

Conditional Branch

) ………. 30

2.6.5.2 Perulangan

………...

31

2.6.5.2.1 Struktur

Perulangan

For

……….. 31

2.6.5.2.2 Struktur

Perulangan

While

dan

Do-while

………... 31

2.6.6

Compiler

………. 32

BAB III. PERANCANGAN ALAT

………...

33

3.1 Perancangan Perangkat Keras ……….. 33

3.1.1 Rangkaian Mikrokontroler ATmega32 ………... 33

3.1.1.1 Rangkaian Osilator Mikrokontroler ATmega32 …………. 33

3.1.1.2 Rangkaian

Reset

……….

34

(13)

3.2 Perancangan Perangkat Lunak ………. 36

3.2.1

Preprocessor Directive

& Variabel Global ………. 37

3.2.2 Rutin Utama ……… 39

3.2.2.1 Mode F1 ……….. 40

3.2.2.2 Mode F2 ……….. 41

3.2.2.3 Mode F3 ……….. 43

3.2.3 Sub Rutin Interupsi ………. 43

3.2.4 Sub Rutin Untuk Menampilkan Titik ………. 46

3.2.5 Sub Rutin Untuk Menampilkan Garis ……… 46

3.2.6 Sub Rutin Untuk Menampilkan Karakter ………... 47

3.2.6.1 Karakter Generator 3x5 ……….. 48

3.2.6.2 Karakter Generator 5x7 ……….. 49

3.2.7 Sub Rutin Pengambilan

Scan Code

Keyboard

………... 49

3.2.8

Look Up Table

……… 52

BAB IV. HASIL DAN PEMBAHASAN

………. 56

4.1 Hasil Akhir Perancangan ………. 56

4.2 Pengamatan Sinyal Keyboard ………. 55

4.3 Pengamatan Sinyal Video ……… 58

4.4 Pengujian dan Pembahasan Resolusi Tampilan ……….. 59

4.5 Pengujian dan Pembahasan Program ……….. 63

4.5.1 Sub Rutin Interupsi ………. 63

4.5.2 Sub Rutin Untuk Menampilkan Titik ………. 64

4.5.3 Sub Rutin Untuk Menampilkan Garis ……… 66

4.5.4 Sub Rutin Untuk Menampilkan Karakter ………... 68

4.5.5 Sub Rutin Untuk Pengambilan

Scan Code

Keyboard

………. 69

4.5.6 Program Utama ………... 69

4.6 CodeVision AVR ………. 70

BAB V. KESIMPULAN DAN SARAN

……….. 73

5.1 Kesimpulan

……….

73

5.2 Saran ……… 73

DAFTAR PUSTAKA

………... 74

LAMPIRAN

(14)

Gambar 2.1

Pembuatan (reproduksi) sebuah gambar dengan meniru (duplikasi)

elemen-elemen gambar ………... 5

Gambar 2.2

Pemayaran linear horizontal ………... 6

Gambar 2.3 Sinyal video ……… 9

Gambar 2.4

Konverter digital ke analog ……… 10

Gambar 2.5 Blok diagram ATmega32 ………... 12

Gambar 2.6 Pin ATmega32 ……… 14

Gambar 2.7 Konfigurasi memori data AVR ATmega32 ………... 15

Gambar 2.8 Memori program AVR ATmega32 ……… 15

Gambar 2.9 Status register ATmega32 ……….. 16

Gambar 2.10 Register MCUCR ……… 17

Gambar 2.11 Blok diagram dari

Timer/Counter

1 ………... 19

Gambar 2.12 Register TCCR1A ……….. 20

Gambar 2.13 Register TCCR1B ……….. 22

Gambar 2.14

Keyboard

PC bagian utama ……… 23

Gambar 2.15

Keyboard

PC bagian tambahan ……….. 24

Gambar 2.16 Struktur penulisan program dalam bahasa C ……….. 26

Gambar 2.17 Bentuk dasar penulisan

if

dan

if…else

……….. 30

Gambar 2.18 Bentuk dasar penulisan

for

………. 31

Gambar 2.19 Bentuk dasar penulisan

while

dan

do-while

……… 31

Gambar 3.1 Diagram blok rangkaian ………. 33

Gambar 3.2 Rangkaian osilator ……….. 34

Gambar 3.3 Rangkaian reset ……….. 34

Gambar 3.4 Rangkaian video DAC ……… 35

Gambar 3.5 Rangkaian antarmuka

keyboard

dengan ATmega32 ………. 36

Gambar 3.6 Konektor pada

keyboard

……… 36

Gambar 3.7 Susunan bit-bit tampilan ……… 37

Gambar 3.8

Flowchart

rutin utama ………... 39

Gambar 3.9

Flowchart

mode F1 ……… 40

Gambar 3.10

Flowchart

mode F2 ……… 41

(15)

Gambar 3.13

Flowchart

sub rutin interupsi ……….. 44

Gambar 3.14 Sinyal data dan

clock

dari

keyboard

PC ……….. 50

Gambar 3.15

Flowchart

pengambilan

scan code

………. 50

Gambar 4.1 Alat penampil pesan pada televisi ……….. 56

Gambar 4.2

Scan code

untuk tombol ‘a’ ……… 56

Gambar 4.3

Scan code

untuk tombol ‘Tab’ ………... 57

Gambar 4.4

Scan code

untuk tombol ‘Caps Lock’ ………. 57

Gambar 4.5

Scan code

untuk tombol ‘Enter’ ………. 58

Gambar 4.6 Sinyal video ……… 58

Gambar 4.7 Pengujian resolusi tampilan ……… 62

Gambar 4.8 Letak koordinat (13,3) ……… 65

Gambar 4.9 v

ideo_pt

(13,3,1) ……… 66

Gambar 4.10 Garis horizontal, vertikal, dan diagonal ………. 67

Gambar 4.11

Codevision compiler control panel

……… 68

Gambar 4.12 Karakter generator 5x7 dan 3x5 ………. 68

Gambar 4.13 Tampilan mode F1 ………. 69

Gambar 4.14 Tampilan mode F2 ………. 70

Gambar 4.15 CodeVision AVR ………... 70

Gambar 4.16 Tampilan CodeVision AVR ………... 71

Gambar 4.17 Informasi hasil kompilasi ………... 72

(16)

Tabel 2.1 Bit pemilih mode sleep ………. 17

Tabel 2.2 Macam sumber interupsi pada AVR ATmega32 ………. 18

Tabel 2.3 Konfigurasi

setting

untuk port I/O ……… 18

Tabel 2.4 Konfigurasi bit

CompareOutput Mode Non PWM

………... 20

Tabel 2.5 Konfigurasi bit

Compare Output Mode Fast PWM

……….. 20

Tabel 2.6 Konfigurasi bit

Compare Output Mode Phase Correct and Frequency

Correct PWM

………... 21

Tabel 2.7 Mode operasi

Timer/Counter

1 ……….... 21

Tabel 2.8 Konfigurasi bit sumber

clock

……… 22

Tabel 2.9 Tipe data dalam bahasa C ………. 27

Tabel 2.10 Operator aritmatika ………... 28

Tabel 2.11 Operator bitwise (manipulasi bit) ………. 29

Tabel 2.12 Operator relasi ……….. 29

Tabel 3.1

Look up table

……… 52

(17)

Lampiran I

Perancangan Tampilan Mode F1 ………. LI

Lampiran II

Gambar Rangkaian ……….. LII

Lampiran III

Daftar ASCII ………... LIII

Lampiran IV

Listing Program .………... LIV

Lampiran V

Datasheet

……….

LV

(18)

PENDAHULUAN

1.1

Latar Belakang Masalah

Komunikasi bisa dilakukan dengan berbagai cara. Ada komunikasi langsung

di mana satu atau beberapa orang saling bertemu di tempat atau waktu yang sama,

kemudian mereka saling berkomunikasi entah dengan berbicara maupun dengan

bahasa isyarat. Di samping itu, komunikasi juga bisa dilakukan secara tidak langsung

yaitu melalui suatu media, misalnya radio, televisi, telegraf dan lain-lain.

Kebutuhan akan komunikasi membuat manusia mengembangkan teknologi

penampil. Salah satu contohnya yaitu teknologi penampil atau layar yang semakin

berkembang seiring dengan kebutuhan masyarakat saat ini. Ada beberapa penampil

yang sudah merambah dunia teknologi diantaranya layar CRT (

Cathode Ray Tube

),

layar LCD (

Liquid Crystal Display

), dan Dot Matrix. Layar CRT biasa digunakan

pada televisi, monitor komputer, osiloskop dan lain-lain. Layar LCD banyak

digunakan pada laptop. Selain pada laptop, layar LCD sekarang juga sudah digunakan

pada televisi dan monitor komputer. Sedangkan Dot Matrix banyak digunakan pada

kalkulator. Dot Matrix merupakan dioda dengan kemasan khusus yang dapat

memancarkan cahaya bila dialiri arus listrik.

Tujuan dari komunikasi adalah untuk menyampaikan informasi atau pesan

kepada orang lain. Suatu pesan dapat disampaikan kepada orang lain melalui

teknologi penampil yang sudah ada. Televisi merupakan salah satu sarana komunikasi

yang menggunakan teknologi penampil. Pada mulanya, televisi hanya digunakan

untuk menyiarkan program-program berita dan hiburan dari suatu stasiun televisi.

Akan tetapi karena kemampuan televisi yang dapat mereproduksi gambar, bahan teks,

dan informasi visual maka televisi telah menjadi begitu bermanfaat sehingga

pemakaiannya sekarang jauh lebih banyak. Misalnya suatu permainan video (

video

game

), dapat dihubungkan ke penerima televisi. Ide yang sama juga diterapkan untuk

menggunakan penerima televisi sebagai alat untuk menampilkan pesan dengan

menggunakan mikrokontroler.

(19)

1.2

Tujuan dan Manfaat Penelitian

Tujuan dari penelitian ini adalah untuk membuat sebuah peralatan yang dapat

berfungsi untuk mengirim pesan melalui layar televisi.

Manfaat yang akan dicapai dari hasil penelitian adalah memberikan pilihan

baru kepada masyarakat untuk menampilkan informasi melalui layar televisi, sebagai

literatur atau referensi tentang

interfacing

mikrokontroler dengan televisi. Selain itu,

proyek penelitian ini juga bermanfaat sebagai literatur mengenai bahasa C sebagai

salah satu bahasa pemrograman mikrokontroler selain asembler.

1.3

Batasan Masalah

Proyek penelitian yang akan dilakukan ini mempunyai batasan-batasan

sebagai berikut :

a.

Sinyal video yang dibangkitkan adalah sinyal video hitam putih.

b.

Resolusi tampilan adalah 128 bit horizontal x 100 bit vertikal.

c.

Jumlah garis dalam satu medan adalah 262 dengan frekuensi 60 Hz. Sehingga

waktu untuk satu garis pemayaran akan sama dengan 63,61

μ

s.

d.

Input berasal dari

keyboard

PC dengan tombol-tombol yang digunakan adalah F1,

F2, F3, Tab, Spasi, Enter, angka 0 sampai 9, dan huruf a sampai z.

e.

Karakter yang ditampilkan hanya huruf besar.

f.

Karakter yang dapat ditampilkan ke layar televisi mempunyai dua tipe yaitu

karakter 5x7 dan karakter 3x5.

g.

Jumlah karakter dalam satu baris maksimal 16.

h.

Terdapat 3 mode masukan yaitu F1, F2, dan F3.

i.

Mode F1 merupakan mode masukan khusus dengan tampilan tetap.

j.

Mode F2 merupakan mode

editing

.

User

dapat menulis pesan yang akan

ditampilkan melalui

keyboard

maksimal 7 baris dan bisa disimpan. Pesan yang

diketikkan tidak akan langsung tertampil pada televisi tetapi diproses terlebih

dahulu di dalam mikrokontroler.

k.

Mode F3 digunakan untuk melihat pesan yang tersimpan di dalam mode F2.

l.

Jumlah tampilan untuk masing-masing mode adalah satu.

m.

Mikrokontroler yang digunakan adalah mikrokontroler dari keluarga AVR, yaitu

jenis ATmega32.

(20)

1.4

Metodologi Penelitian

Adapun metodologi-metodologi yang dilakukan penulis untuk melakukan

penelitian adalah sebagai berikut :

a.

Mengumpulkan referensi dan literatur dari perpustakaan dan internet.

b.

Membuat

downloader

untuk mikrokontroler ATmega32.

c.

Membuat rangkaian

interfacing

antara mikrokontroler dengan televisi dan

keyboard

.

d.

Membuat program.

e.

Menguji alat.

f.

Menulis laporan.

1.5

Sistematika Penulisan

Penulisan

laporan

penelitian tugas akhir ini terdiri dari lima bab yang

masing-masing bab berisi tentang :

BAB I

merupakan pendahuluan yang berisi latar belakang masalah, tujuan dan

manfaat penelitian, batasan masalah, metodologi penelitian, dan

sistematika penulisan.

BAB

II

berisi dasar teori tentang televisi, sinyal video,

keyboard

dan

mikrokontroler yang digunakan dalam perancangan serta bahasa

pemrogramannya.

BAB III

berisi tentang penjelasan perangkat keras dan perangkat lunak dalam

pembuatan sistem penampil pesan ke layar televisi.

BAB IV

memuat hasil akhir perancangan dan pembahasan mengenai hasil

penelitian yang telah dilaksanakan.

BAB V

berisi ringkasan hasil penelitian yang telah dilakukan dan saran yang

berisi ide-ide untuk perbaikan atau pengembangan terhadap penelitian

(21)

DASAR TEORI

2.1

Televisi

Kata televisi tersusun dari 2 kata, yaitu “

tele

” dan “

vision

”. Televisi berarti

“melihat dari jauh”. Pada mulanya, televisi dimaksudkan sebagai suatu cara lain untuk

menyiarkan program-program berita dan hiburan. Pada sistem siaran televisi,

informasi visual yang dilihat pada layar diubah menjadi sinyal listrik yang dikirimkan

ke penerima. Perubahan-perubahan listrik yang sesuai dengan perubahan-perubahan

dalam nilai cahaya membentuk sinyal yang dapat dilihat (

video signal

). Pada pesawat

penerima (

receiver

), sinyal yang dapat dilihat ini digunakan untuk menyusun kembali

bayangan pada layar tabung gambar. Pada televisi monokrom (

monochrome

), gambar

direproduksi dalam warna hitam dan putih dengan bayangan abu-abu. Pada televisi

berwarna, semua warna alamiah ditambahkan sebagai gabungan dari warna merah,

hijau, dan biru dalam bagian utama gambar.

Televisi merupakan suatu sistem untuk mereproduksi gambar diam seperti

adegan. Akan tetapi, gambar-gambar yang diperlihatkan satu di atas yang lainnya

cukup cepat sehingga memberikan ilusi gerakan. Satu kerangka gambar sendiri

hanyalah sekelompok daerah yang kecil dari cahaya dan gambar. Rincian yang lebih

mendalam mengenai gambar pada televisi diuraikan dalam subbab-subbab berikut:

elemen-elemen gambar, pemayaran horizontal dan vertikal, frekuensi kerangka

(

frame

) dan medan (

field

), frekuensi pemayaran horizontal dan vertikal.

2.1.1 Elemen-Elemen Gambar

Pada dasarnya sebuah gambar diam adalah suatu susunan dari banyak daerah

gelap dan terang yang kecil. Dalam cetakan foto, butir-butir perak halus memberikan

perbedaan dalam cahaya, yang diperlukan untuk memproduksi citra (bayangan). Bila

sebuah gambar dicetak, terdapat banyak titik-titik tercetak hitam kecil yang

membentuk citra. Dengan melihat pada pandangan yang diperbesar, dapat terlihat

bahwa gambar tercetak tersebut tersusun dari daerah-daerah elementer kecil hitam dan

putih.

(22)

Setiap daerah kecil dari cahaya merupakan sebuah rincian gambar atau elemen

gambar. Untuk singkatnya, ini disebut

pixel

. Semua elemen secara bersama-bersama

mengandung informasi visual pada layar. Jika elemen-elemen ini ditransmisikan dan

direproduksi dalam tingkat cahaya atau bayangan yang sama seperti yang asli dan

pada posisi yang sesuai, maka gambar direproduksi.

Sebagai suatu contoh, misalkan bahwa kita ingin mentransmisikan sebuah

citra dari sebuah silang hitam pada suatu dasar putih, di sebelah kiri pada gambar 2.1

ke bagian kanan gambar. Gambar dibagi dalam daerah-daerah elementer berwarna

hitam dan putih. Elemen gambar dalam dasar hitam adalah putih dan

pixel-pixel

yang

membentuk silang adalah hitam. Bila tiap elemen gambar ditransmisikan ke sisi kanan

gambar dan direproduksi dalam posisi semula dengan bayangan hitam atau putih, citra

direproduksi.

Citra

(bayangan)

Reproduksi

Gambar 2.1 Pembuatan (reproduksi) sebuah gambar dengan meniru

(duplikasi) elemen-elemen gambar

2.1.2

Pemayaran Horizontal dan Vertikal

Gambar televisi dipayar dalam deretan garis-garis horizontal yang berurutan,

satu di bawah yang lain. Pemayaran ini memungkinkan suatu sinyal video untuk

mencakup keseluruhan gambar. Pada suatu saat, sinyal video hanya dapat

memperlihatkan satu variasi. Guna memiliki satu sinyal video untuk semua variasi

cahaya, semua rincian gambar dipayar dalam tingkatan waktu yang berurutan.

Pemayaran membuat reproduksi gambar televisi berbeda dengan reproduksi

gambar pada cetakan foto. Dalam sebuah foto, keseluruhan gambar direproduksi pada

suatu waktu. Dalam televisi, gambar dikumpulkan kembali garis demi garis dan

(23)

televisi dapat muncul dengan struktur garis yang terpotong-potong dalam

segmen-segmen diagonal dan kerangka-kerangka bergulung ke atas atau ke bawah layar.

Gambar televisi dipayar dalam cara yang sama seperti membaca sebuah

halaman buku untuk meliput semua kata dalam satu garis dan semua garis dalam satu

halaman. Dimulai dari bagian atas kiri pada gambar 2.2, semua elemen gambar

dipayar dalam barisan yang berurutan dari kiri ke kanan dan dari atas ke bawah, satu

garis pada satu saat. Metode ini disebut pemayaran linear horizontal (

horizontal linear

scanning

). Ini digunakan dalam tabung gambar pada pesawat penerima untuk

mengumpulkan kembali gambar yang direproduksi.

Atas

Kiri

Berkas pemayaran

Kanan

Gambar 2.2 Pemayaran linear horizontal

Bawah

Urutan untuk pemayaran semua elemen gambar adalah sebagai berikut.

1.

Berkas elektron menyapu satu garis horizontal, meliputi semua elemen gambar

pada garis tersebut.

2.

Pada ujung tiap-tiap garis, berkas kembali dengan cepat ke bagian kiri untuk

memulai pemayaran garis horizontal berikutnya. Waktu untuk kembali ini disebut

pengulangan jejak (

retrace

) atau

flyback

. Tidak ada informasi gambar yang

dipayar selama pengulangan jejak sebab pada periode ini, tabung gambar

dikosongkan. Jadi pengulangan jejak haruslah cepat karena pengulangan jejak

(24)

3.

Bila berkas telah kembali ke sebelah kiri, posisi vertikalnya menurun sehingga

berkas tersebut akan memayar garis berikutnya ke bawah dan tidak mengulangi

garis yang sama. Ini dilakukan oleh gerak pemayaran vertikal dari berkas, yang

diberikan sebagai tambahan bagi pemayaran horizontal.

Sebagai akibat pemayaran vertikal, semua garis horizontal miring sedikit arah

ke bawah dari atas ke bawah. Bila berkas berada di bawah, pengulangan jejak vertikal

mengembalikan berkas ke atas untuk memulai kembali urutan pemayaran.

2.1.3

Garis-Garis Setiap Kerangka

Jumlah garis-garis pemayaran untuk satu gambar lengkap sebaiknya adalah

besar agar mencakup jumlah elemen-elemen gambar paling banyak, dan berarti lebih

terperinci. Akan tetapi, faktor-faktor lain membatasi pemilihan, dan ini telah

distandarkan. Untuk NTSC, jumlah garis-garis pemayaran pada satu gambar lengkap

adalah sebesar 525 garis.

2.1.4

Frekuensi Kerangka

Perhatikan bahwa berkas bergerak dengan lambat ke arah bawah sewaktu

memayar secara horizontal. Gerak pemayaran vertikal ini diperlukan agar garis-garis

tidak akan dipanyar satu di atas yang lainnya. Pemayaran horizontal menghasilkan

garis-garis dari kiri ke kanan, sedangkan pemayaran vertikal menyebabkan garis-garis

untuk mengisi kerangka dari atas ke bawah.

Waktu untuk satu kerangka lengkap dengan 525 garis pemayaran adalah 1/30

detik. Maka laju pengulangan gambar sama dengan 30 kerangka setiap detik.

2.1.5

Frekuensi Medan

Laju pengulangan gambar sebesar 30 kerangka setiap detik ternyata masih

belum cukup cepat untuk mengatasi kedipan pada level-level cahaya yang dihasilkan

oleh layar tabung gambar. Oleh karena itu, setiap kerangka dibagi menjadi dua

bagian, sehingga 60 pandangan adegan disajikan ke mata selama tiap detik. Setiap

kelompok atau bagian tersebut disebut dengan medan (

field

).

Laju pengulangan medan-medan adalah 60 setiap detik, karena dua medan

(25)

pandangan gambar diperlihatkan selama 1 detik. Laju pengulangan ini adalah cukup

tepat untuk menghilangkan kedipan

(flicker)

.

2.1.6

Frekuensi Pemayaran Horizontal dan Vertikal

Laju medan sebesar 60 Hz merupakan frekuensi pemayaran vertikal. Ini

adalah laju kecepatan pada mana berkas elektron menyelesaikan siklus gerak

vertikalnya dari atas ke bawah dan kembali lagi ke atas. Dengan demikian,

rangkaian-rangkaian defleksi vertikal untuk tabung gambar beroperasi pada 60 Hz. Waktu dari

setiap siklus pemayaran vertikal untuk satu medan adalah 1/60 detik.

Jumlah garis-garis pemayaran horizontal di dalam sebuah medan adalah

setengah dari jumlah 525 garis untuk sebuah kerangka lengkap, sebab satu medan

mengandung setiap garis lainnya. Ini memberikan 262

1

/

2

garis horizontal untuk setiap

medan vertikal.

Karena waktu untuk satu medan adalah 1/60 detik dan karena setiap medan

mengandung 262

1

/

2

garis, jumlah garis-garis setiap detik adalah :

262

1

/

2

×

60 = 15.750 Hz

Atau dengan mengalikan laju kerangka sebesar 30 Hz dengan 525 garis untuk satu

kerangka diperoleh jumlah garis-garis setiap detik sama dengan 15.750 Hz.

Frekuensi 15.750 Hz ini adalah kecepatan berkas elektron untuk

menyelesaikan siklus gerak horizontalnya dari kiri ke kanan dan kembali lagi ke kiri.

Dengan demikian rangkaian-rangkaian defleksi horizontal untuk tabung gambar

bekerja pada 15.750 Hz.

2.1.7

Waktu Untuk Garis Horizontal

Waktu untuk setiap garis pemayaran horizontal (

H

) adalah 1/15.750 detik.

Dalam mikrodetik :

Waktu

H

=

μ

750

.

15

000

.

000

.

1

detik = 63,5

μ

detik (pendekatan)

Waktu dalam mikrodetik ini menunjukkan bahwa sinyal video untuk

elemen-elemen gambar dalam garis-garis horizontal dapat memiliki frekuensi-frekuensi

tinggi, yakni dalam orde megahertz. Jika terdapat lebih banyak garis, waktu

pemayaran akan lebih singkat yang menghasilkan frekuensi-frekuensi video yang

(26)

2.2

Sinyal Video

Dalam suatu sinyal video, amplitudo tegangan dan arus berubah terhadap

waktu, sama seperti sinyal audio. Tetapi sinyal video berhubungan dengan informasi

visual. Sebuah contoh sinyal video diperlihatkan pada gambar 2.3.

Gambar 2.3 Sinyal video

[8]

Sinyal video ini memperlihatkan informasi gambar untuk empat garis

pemayaran horizontal. Setiap garis dimulai dengan sebuah pulsa sinkronisasi

horizontal. Setelah pulsa sinkronisasi horizontal, sinyal video mengandung informasi

gambar berupa level-level tegangan di antara 0,3 volt dan 1 volt. Level-level tegangan

di antara 0,3 volt dan 1 volt ini akan mengontrol intensitas warna yang dipancarkan ke

layar televisi. Untuk sinyal video hitam putih berarti hanya ada dua level tegangan

untuk informasi gambarnya yaitu 0,3 volt dan 1 volt. Tegangan 0,3 volt akan

menghasilkan warna hitam dan tegangan 1 volt akan menghasilkan warna putih.

Perlu diingat bahwa untuk menampilkan satu gambar lengkap dalam satu

medan dibutuhkan 262

1

/

2

garis pemayaran horizontal. Untuk tujuan praktisnya,

1

/

2

garis yang terakhir dapat dihilangkan sehingga setiap medan akan mempunyai 262

garis pemayaran horizontal. Akan tetapi dari 262 garis pemayaran horizontal tersebut,

hanya 242 garis yang mengandung informasi gambar. 20 garis pemayaran terakhir

digunakan untuk sinkronisasi vertikal. Sinkronisasi vertikal bertujuan untuk

mengembalikan berkas pemayaran ke atas layar untuk memulai kembali urutan

pemayaran medan berikutnya. Selama sinkronisasi vertikal, tidak ada informasi

(27)

2.3

Konverter Digital ke Analog

Pengubah digital ke analog (

digital to analog converter

, DAC) menerima

masukan digital pararel dan mengubahnya ke nilai tegangan yang disajikan masukan

biner. Teknik pengubahan digital ke analog yang paling sederhana adalah

menggunakan jaringan pembagi resistif.

Dalam tugas akhir ini, proses pengubahan digital ke analog dibutuhkan untuk

mengubah sinyal video digital yang dibangkitkan oleh mikrokontroler menjadi sinyal

video analog yang dapat diterima oleh televisi. Adapun rangkaian DAC yang

digunakan tampak seperti gambar 2.4.

Masukan

digital

Gambar 2.4 Konverter digital ke analog

Dengan 2 masukan digital yaitu V1 dan V2, akan dihasilkan empat level

tegangan dari 00 sampai 11. Akan tetapi, karena untuk membangkitkan sinyal video

hitam putih ke televisi hanya membutuhkan tiga level tegangan yaitu level

sinkronisasi, level warna hitam, dan level warna putih maka terdapat satu kondisi

masukan yang tidak terpakai.

Level tegangan analog yang dihasilkan dapat dihitung dengan menggunakan

rumus pembagi tegangan. Sebagai contoh, tegangan masukan digital untuk logika ‘0’

adalah 0 volt dan logika ‘1’ adalah 5 volt maka :

Untuk masukan V2 =1 dan V1 = 0

V

R

R

R

R

Vout

*

5

2

//

1

3

3

+

=

Untuk masukan V2 =1 dan V1 = 1

V

R

R

R

R

R

Vout

*

5

3

2

//

1

2

//

1

(28)

2.4 Mikrokontroler

ATmega32

2.4.1 Pendahuluan

Mikrokontroler adalah suatu mikroprosesor

plus

. Mikrokontroler adalah otak

dari suatu sistem elektronika, seperti halnya mikroprosesor sebagai otak komputer.

Nilai plus bagi mikrokontroler adalah terdapatnya memori dan port

input/output

dalam suatu kemasan IC yang kompak. Kemampuannya yang

programmable

, fitur

yang lengkap, dan juga harga yang terjangkau memungkinkan mikrokontroler

digunakan pada berbagai sistem elektronis.

Salah satu mikrokontroler yang sedang berkembang adalah mikrokontroler

AVR (

Alf and Vegard’s Risc processor

) dari Atmel. Mikrokontroler AVR memiliki

arsitektur RISC 8 bit, di mana semua instruksi dikemas dalam kode 16 bit dan

sebagian besar instruksi dieksekusi dalam satu siklus

clock

, berbeda dengan instruksi

MCS51 yang membutuhkan 12 siklus

clock

. Tentu saja itu terjadi karena kedua jenis

mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC

(

Reduced Instruction Set Computing

), sedangkan seri MCS51 berteknologi CISC

(

Complex Instruction Set Computing

). Secara umum, AVR dapat dikelompokkan

menjadi 4 kelas, yaitu ATtiny, keluarga AT90Sxx, keluarga ATmega, dan

AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori,

peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, semua

keluarga mikrokontroler AVR bisa dikatakan hampir sama.

AVR memiliki register keperluan umum (GPR,

General Purpose Register

)

sebanyak 32 register. Semua operasi aritmatika dan logika dilakukan pada GPR.

Memori data yang tersedia pada AVR ada yang mencapai 64 KB dan dapat dialamati

baik secara langsung maupun tidak langsung menggunakan instruksi

Load/Store

. Pada

pengalamatan tidak langsung, bagian lain GPR digunakan sebagai

pointer

(penunjuk)

pengalamatan tidak langsung. GPR dan register I/O juga dipetakan pada bagian

bawah memori data dan dapat diakses menggunakan instruksi-instruksi

Load/Store

.

Semua mikrokontroler AVR memiliki jenis memori program

Flash

yang dapat

diprogram ulang. Hal ini sangat cocok untuk pengembangan sistem maupun bagi para

hobbist yang gemar memodifikasi dan membuat proyek-proyek baru. Selain itu,

semua mikrokontroler AVR memiliki memori EEPROM yang terintegrasi dalam

(29)

Meskipun terdapat banyak seri mikrokontroler AVR, namun yang akan

digunakan untuk proyek penelitian ini adalah ATmega32. Seri ATmega32 dipilih

karena mikrokontroler ini cukup cepat dalam melaksanakan instruksi untuk

membangkitkan sinyal video dan memiliki kapasitas memori program dan data yang

besar serta fasilitas yang lengkap.

2.4.2 Arsitektur ATmega32

Gambar 2.5 Blok diagram ATmega32

Mikrokontroler AVR memiliki model arsitektur Harvard, di mana memori dan

bus untuk program dan data dipisahkan. Dalam arsitektur AVR, seluruh 32 register

umum yang ada terhubung langsung ke ALU prosesor. Hal inilah yang membuat

AVR begitu cepat dalam mengeksekusi instruksi. Dalam satu siklus

clock

, terdapat

(30)

Dari 32 register yang ada, terdapat enam buah regiser yang dapat digunakan

untuk pengalamatan tidak langsung 16 bit sebagai register

pointer

. Register tersebut

memiliki nama khusus, yaitu X,Y, dan Z. Masing-masing terdiri dari sepasang

register. Register-register khusus tersebut adalah R26:R27 (register X), R28:R29

(register Y), R30:R31 (register Z).

2.4.3 Fitur

ATmega32

Mikrokontroler ATmega32 memiliki fitur-fitur utama antara lain sebagai

berikut:

a)

131 macam instruksi.

b)

32 x 8 bit

General Purpose Register

.

c)

Kecepatan maksimal 16 MHz.

d)

Memori program

Flash

32 KB.

e)

Memori data SRAM 2 KB.

f)

Memori EEPROM 1024

byte

.

g)

Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan PortD.

h)

Dua buah

Timer/Counter

8 bit.

i)

Satu buah

Timer/Counter

16 bit.

j)

Watchdog Timer

dengan osilator internal.

k)

Port USART untuk komunikasi serial.

l)

Port antarmuka SPI.

m)

Antarmuka komparator analog.

n)

ADC 10 bit sebanyak 8 saluran.

o)

PWM sebanyak 4 saluran.

p)

Unit interupsi internal dan eksternal.

2.4.4 Konfigurasi Pin ATmega32

Konfigurasi pin ATmega32 dapat dilihat pada gambar 2.6. Dari gambar

tersebut dapat dijelaskan konfigurasi pin ATmega32 sebagai berikut:

a.

VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.

b.

GND merupakan pin ground.

(31)

d.

Port B (PB0..PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu

Timer/Counter

, komparator analog, dan SPI.

e.

Port C (PC0..PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,

komparator analog, dan

Timer Oscilator

.

f.

Port D (PD0..PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu

komparator analog, interupsi eksternal, dan komunikasi serial.

g.

RESET merupakan pin yang digunakan untuk mereset mikrokontroler.

h.

XTAL1 dan XTAL2 merupakan pin masukan

clock

eksternal.

i.

AVCC merupakan pin masukan tegangan untuk ADC.

j.

AREF merupakan pin masukan tegangan referensi DC.

Gambar 2.6 Pin ATmega32

2.4.5 Peta

Memori

AVR ATmega32 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 2048

byte

SRAM Internal.

Register 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

hingga $5F. Register tersebut merupakan register yang khusus digunakan untuk

mengatur fungsi terhadap berbagai

peripheral

mikrokontroler, seperti kontrol register,

(32)

secara lengkap dapat dilihat pada lampiran L8. Alamat memori berikutnya digunakan

untuk SRAM 2048

byte

, yaitu pada lokasi $60 sampai dengan $85F. Konfigurasi

memori data ditunjukkan pada gambar berikut.

Gambar 2.7 Konfigurasi memori data AVR ATmega32

Memori program yang terletak dalam

Flash

PEROM tersusun dalam word

atau 2

byte

karena setiap instruksi memiliki lebar 16 bit atau 32 bit. AVR ATmega32

memiliki 16 K

byte

X 16 bit

Flash

PEROM dengan alamat mulai dari $000 sampai

$3FFF. AVR tersebut memiliki 14 bit

Program Counter

(PC) sehingga mampu

mengalamati isi

Flash

.

(33)

Selain itu, ATmega32 juga memiliki memori data berupa EEPROM sebanyak

1024

byte

. Untuk melakukan akses terhadap EEPROM, terdapat tiga register penting

yang berhubungan dengan EEPROM. Register tersebut adalah EEAR (

EEPROM

Address Register

), EEDR (

EEPROM Data Register

), dan EECR (

EEPROM Control

Register

).

2.4.6 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.

Gambar 2.9 Status register ATmega32

a.

Bit 7 – I:

Global Interrupt Enable

Bit harus diset untuk meng-

enable

interupsi. Setelah itu, diaktifkan interupsi mana

yang akan digunakan dengan cara meng-

enable

bit kontrol register yang

bersangkutan secara individu. Bit akan di-

clear

apabila terjadi suatu interupsi

yang dipicu oleh

hardware

, dan bit tidak akan mengizinkan terjadinya interupsi,

serta akan diset kembali oleh instruksi RETI.

b.

Bit 6 – 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 ke suatu

bit dalam register GPR menggunakan instruksi BLD.

c.

Bit 5 – H:

Half Carry Flag

d.

Bit 4 – S:

Sign Bit

Bit-S merupakan hasil operasi EOR antara flag-N (negatif) dan flag V

(komplemen dua

overflow

).

e.

Bit 3 – V:

Two’s Complement Overflow Flag

(34)

f.

Bit 2 – N:

Negative Flag

Apabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan diset.

g.

Bit 1 – Z:

Zero Flag

Bit akan diset bila hasil operasi yang diperoleh adalah nol.

h.

Bit 0 – C:

Carry Flag

Apabila suatu operasi menghasilkan

carry

, maka bit akan diset.

2.4.7 Mode

Sleep

Mode

sleep

dapat diatur melalui register MCUCR yang terdapat pada

mikrokontroler ATmega32 mulai bit ke 4 sampai bit ke 7.

Gambar 2.10 Register MCUCR

a.

Bit 7 – SE:

Sleep Enable

Bit SE harus diset untuk membuat mikrokontroler masuk ke dalam mode

sleep

,

ketika instruksi

SLEEP

dieksekusi.

b.

Bit 6…4 – SM2…SM0:

Sleep Mode Selects Bits 2,1, and 0

Bit pemilih mode

sleep

.

(35)

2.4.8 Interupsi

Interupsi adalah kondisi yang membuat CPU berhenti dari rutinitas yang

sedang dikerjakan (rutin utama) untuk mengerjakan rutin lain (rutin interupsi).

ATmega32 memiliki 21 sumber interupsi yang ditunjukkan pada tabel 2.2.

Tabel 2.2 Macam sumber interupsi pada AVR ATmega32

2.4.9

I/O Port

Port I/O pada mikrokontroler ATmega32 dapat difungsikan sebagai

input

ataupun

output

dengan keluaran

high

atau

low

. Untuk mengatur fungsi port I/O

sebagai

input

ataupun

output

, perlu dilakukan penyetingan pada DDR dan Port.

Berikut tabel pengaturan port I/O:

Tabel 2.3 Konfigurasi

setting

untuk Port I/O

DDR bit = 1

DDR bit = 0

Port bit = 1

Output High

Input pull-up

(36)

2.4.10 Timer/Counter 1

Timer/Counter

1 adalah 16-bit

timer/counter

yang memungkinkan program

pewaktuan lebih akurat. Berbagai fitur dari

Timer/Counter

1 adalah:

Desain 16 bit (juga memungkinkan 16 bit PWM)

Dua buah

compare

unit

Dua buah register pembanding

Satu buah input

capture

unit

Timer dinolkan saat

match compare

(

auto reload

)

Dapat menghasilkan gelombang PWM dengan

glitch-free

Periode PWM yang dapat diubah-ubah.

Pembangkitan frekuensi

Empat buah sumber interupsi (TOV1, OCF1A, OCF1B, dan ICF1)

(37)

Pengaturan pada

Timer/Counter

1 diatur melalui register TCCR1A

Gambar 2.12 Register TCCR1A

Penjelasan untuk setiap bit:

a.

Bit 7: 6 – COM1A1:0 :

Compare Ouput Mode

untuk

channel

A

Bit 5: 4 – COM1B1:0 :

Compare Output Mode

untuk

channel

B

Bit COM1A1:0 dan COM1B1:0 mengontrol kondisi pin

Output Compare

(OC1A dan OC1B). Jika salah satu atau kedua bit pada register COM1A1:0 ditulis

menjadi satu, maka kaki pin OCIA tidak berfungsi normal sebagai port I/O. Begitu

juga pada register COM1B1:0. Fungsi pada pin OC1A dan OC1B tergantung pada

seting bit pada regiser WGM13:0 diset sebagai mode PWM atau mode non-PWM.

Tabel 2.4 Konfigurasi bit

Compare Output Mode non PWM

(38)

Tabel 2.6 Konfigurasi bit

Compare Output Mode Phase Correct

dan

Frequency Correct PWM

b.

Bit 3 – FOC1A :

Force Output Compare

untuk

channel

A

Bit 2 – FOC1B :

Force Output Compare

untuk

channel

B

c.

Bit 1:0 – WGM11:0 :

Waveform Generation Mode

Dikombinasikan dengan bit WGM13:2 yang terdapat pada register TCCR1B, bit

tersebut mengontrol urutan pencacah dari

counter

, sumber maksimum (TOP) nilai

counter

, dan tipe gelombang yang dibangkitkan. Mode yang dapat dilakukan antara

lain mode normal, mode

Clear Timer on Compare Match

(CTC) dan tiga tipe mode

PWM. Setingan mode dapat dilihat pada tabel berikut.

Tabel 2.7 Mode operasi

Timer/Counter

1

(39)

Pengaturan

Timer

1 juga diatur oleh register TCCR1B

Gambar 2.13 Register TCCR1B

a.

Bit 7 – ICNC1 :

Input Capture Noise Canceler

b.

Bit 6 – ICES1 :

Input Capture Edge Select

c.

Bit 5 :

Reserved Bit

d.

Bit 4:3 – WGM1 1:3 :

Waveform Generation Mode

e.

Bit 2:0 :

Clock Select

Ketiga bit tersebut berfungsi untuk mengatur sumber

clock

yang digunakan pada

Timer/Counter

1. Pengaturan sumber

clock

dapat dilihat pada tabel di bawah ini.

Tabel 2.8 Konfigurasi bit sumber

clock

2.5 Keyboard

IBM

PC

Keyboard

IBM PC merupakan sarana

input

yang sangat murah, hanya dengan

2 utas kabel catu daya sistem berbasis mikrokontroler dengan mudah bisa dilengkapi

dengan 101 tombol untuk mengisikan teks maupun angka.

2.5.1 Tata Kerja Keyboard PC

Setiap kali salah satu tombol

keyboard

ditekan atau dilepas,

keyboard

akan

mengirim kode ke

host

(

host

adalah komputer kalau

keyboard

dihubungkan ke PC,

atau berupa mikrokontroler kalau

keyboard

dihubungkan ke peralatan berbasis

(40)

Scan code

tombol

‘s’

adalah

1B

(angka heksadesimal setara dengan angka

biner 00011011). Ketika tombol

‘s’

ditekan

keyboard

akan mengirim

1B

, jika tombol

‘s’

ditekan terus maka

keyboard

akan mengirimkan

1B

berikutnya terus menerus,

sampai ada tombol lain yang ditekan atau tombol

‘s’

tadi dilepas.

Keyboard

juga mengirim kode saat ada satu tombol yang lepas, kodenya

adalah

F0

(angka heksadesimal setara dengan angka biner 11110000), jadi kalau

tombol

‘s’

tadi dilepas

keyboard

akan mengirim

F0

dan

1B

.

Kode-kode tersebut dikirim

keyboard

secara seri, artinya dikirim satu bit demi

satu bit. Misalnya

1B

(00011011) dikirimkan dengan cara: mula-mula dikirim ‘1’,

sesaat kemudian ‘1’ lagi dan menyusul ‘0’ sampai akhirnya terkirim sebanyak 8 bit

yang berbentuk 00011011 (dikirim dari bit yang paling kanan kemudian bergeser satu

per satu sampai yang paling kiri).

Masing-masing tombol memiliki

scan code

sendiri, termasuk tombol

‘shift’

,

tombol

‘ctrl’

, dan lain-lain. Jadi jika tombol

‘ctrl’

ditekan bersama dengan

‘s’

maka

scan code

yang terkirim adalah

14

(

scan code

untuk

‘ctrl’

) dan

1B

(

scan code

untuk

‘s’

). Terserah

host

untuk meng-interpretasi

scan code

itu sebagai apa yang merupakan

tugas program dalam mikrokontroler untuk mengenal

scan code

tersebut.

Scan code

disusun sebagai kode 8 bit, bisa dipakai untuk membedakan 256

macam kode, sedangkan

keyboard

PC hanya punya 101 tombol, sehingga kode 8 bit

ini cukup untuk semua tombol. Tombol di

keyboard

PC dikelompokkan menjadi 2

bagian, yaitu bagian utama dan bagian tambahan. Bagian utama dinyatakan dengan

scan code

1

byte

, sedangkan bagian tambahan diwakili dengan beberapa

byte

scan

code

yang selalu diawali dengan

E0

. Misalnya tombol

‘ctrl’

kiri diwakili dengan

14

sedangkan tombol

‘ctrl’

kanan diwakili dengan

E0 14

.

(41)

Gambar 2.15

Keyboard

PC bagian tambahan

Pada gambar 2.14 dan gambar 2.15 memperlihatkan

scan code

masing-masing

tombol

keyboard

PC.

Scan code

tidak berupa kode

ASCII

(

American Standart Code

for Information Interchange

) yang biasa dipakai mewakili huruf, dan ditentukan

secara acak, sehingga setelah diterima

host

(PC atau mikrokontroler),

scan code

harus

dirubah menjadi kode

ASCII

dengan memakai cara ‘pencarian tabel’.

Komunikasi antara

keyboard

dan

host

adalah komunikasi dua arah.

Keyboard

mengirim

scan code

ke

host

,

host

bisa mengirim perintah untuk mengatur kerja dari

keyboard

. Kode perintah untuk

keyboard

tidak sebanyak

scan code

. Kode perintah

untuk

keyboard

(dalam heksadesimal) antara lain:

1.

ED Perintah untuk menyalakan/memadamkan lampu indikator di

keyboard

.

Setelah menerima perintah ED dari

host

,

keyboard

akan menjawab dengan

FA sebagai tanda perintah itu telah dikenali (ACK-

acknowledge

) dan

menunggu 1

byte

perintah lagi dari

host

untuk menentukan lampu

indikator yang mana yang perlu dinyalakan/dipadamkan.

1

byte

perintah susulan tersebut akan diartikan sebagai berikut: bit 0

dipakai untuk mengatur lampu indikator

Scroll Lock

, bit 1 untuk

Num

Lock

dan bit 2 untuk

Caps Lock

, bit-bit lainnya diabaikan.

2.

EE

Dipakai

host

untuk memeriksa apakah

keyboard

masih aktif. Setelah

menerima perintah EE dari

host

,

keyboard

akan menjawab dengan EE

(42)

3.

F0

Ada

keyboard

yang dilengkapi 3 set

scan code

, perintah ini dipakai untuk

memilih

scan code

yang ingin dipakai. Setelah menerima F0 dari

host

,

keyboard

akan menjawab dengan FA sebagai tanda perintah itu telah

dikenali (ACK-

acknowledge

) dan

host

menjawab 1

byte

lagi (nilainya 1, 2,

atau 3) untuk memilih set

scan code

. Jika

byte

yang dikirimkan nilainya 0,

keyboard

akan menjawab dengan nomor set

scan code

yang saat itu

dipakai.

4.

F3

Dipakai untuk mengatur kecepatan tanggapan

keyboard

(

Typematic Repeat

Rate

). Setelah menerima perintah F3 dari

host

,

keyboard

akan menjawab

dengan FA sebagai tanda perintah itu telah dikenali (ACK-

acknowledge

)

dan

host

menjawab 1

byte

nilai kecepatan tanggapan

keyboard

yang

dikehendaki.

5.

F4

Digunakan untuk mengaktifkan kembali

keyboard

. Setelah menerima

perintah ini

keyboard

akan menjawab dengan FA (ACK-

acknowledge

).

6.

F5

Digunakan untuk menonaktifkan

keyboard

. Setelah menerima perintah ini

keyboard

akan menjawab dengan FA (ACK-

acknowledge

).

7.

FE

Dipakai untuk meminta

keyboard

mengirim ulang

scan code

terakhir yang

dikirim.

8.

FF

Perintah untuk me-reset

keyboard

.

Selain perintah dari

host

,

keyboard

juga mempunyai kode-kode lain selain

scan code

yang dikirimkan ke

host

, yaitu sebagai berikut.

1.

FA

Artinya ACK (

acknowledge

), yaitu jawaban dari

keyboard

bahwa perintah

dari

host

telah dikenali dengan baik.

2.

AA

Berarti

keyboard

selesai memeriksa diri dan siap bekerja setelah diberi

catu daya.

3.

EE

Berarti

keyboard

masih aktif.

4.

FE

Artinya meminta

host

mengulang perintah terakhir yang dikirim.

5.

FF/00 Berarti terjadi kesalahan pada

keyboard

.

2.6 Pemrograman

Mikrokontroler ATmega32

Program sumber (

source program

) untuk mikrokontroler dapat dituliskan

(43)

yang dituliskan menggunakan bahasa

Basic

untuk mikrokontroler. Untuk

menghasilkan kode yang dapat dijalankan pada mikrokontroler,

source program

harus dikompilasi menggunakan program yang sesuai.

Setiap bahasa memiliki kelebihan dan kekurangannya masing-masing. Bahasa

asembler dituliskan dengan detail setiap langkah yang dijalankan, sehingga

penulisannya relatif lebih panjang. Namun demikian, program asembler sangat cocok

dalam hal efisiensi penggunaan memori program. Di sisi lain, bahasa C memiliki

kemudahan dalam penulisan program, namun terkadang kode yang dihasilkan akan

menggunakan memori program yang besar.

2.6.1 Struktur Program dalam Bahasa C

Struktur dari program C dapat dilihat sebagai kumpulan dari sebuah atau lebih

fungsi-fungsi. Dimana masing-masing fungsi tersebut mempunyai nama. Fungsi

utama yang harus ada di program C sudah ditentukan namaya, yaitu

main()

.

Pada gambar 2.16 merupakan struktur atau pola penulisan program dalam

bahasa C.

penulisan file-file pustaka

main()

{

statement-statement;

………

}

fungsi_fungsi_lain ()

{

statement-statement;

………

}

(44)

2.6.2 Tipe Data dalam Bahasa C

Di dalam bahasa pemrograman komputer, data yang digunakan umumnya

dibedakan menjadi data numerik (bilangan) dan data karakter (huruf dan kata). Data

numerik dibedakan lagi menjadi data numerik integer (bilangan bulat) dan data

numerik pecahan. Data numerik pecahan dapat dibedakan lagi menjadi data numerik

pecahan ketepatan tunggal (32 bit) dan data numerik pecahan ketepatan ganda (64

bit). Bahasa pemrograman komputer membedakan data ke dalam beberapa tipe data

ini untuk tujuan supaya operasi data menjadi efisien dan efektif.

Bahasa C menyediakan lima macam tipe data dasar, yaitu tipe data

integer

(data numerik bulat yang dideklarasikan dengan

int

),

floating point

(data numerik

pecahan ketepatan tunggal yang dideklarasikan dengan

float

),

double precision

(data

numerik pecahan ketepatan ganda yang dideklarasikan dengan

double

), karakter

(dideklarasikan dengan

char

) dan kosong (dideklaraskan dengan

void

). Lima data ini

dapat dikombinasikan dengan perintah pengubah (modifier)

signed

,

unsigned

,

long

,

dan

short

. Hasil dari kombinasi tipe data ini dapat dilihat pada tabel 2.9.

Tabel 2.9 Tipe data dalam bahasa C

Jangkauan Nilai

Tipe Lebar

Dari Sampai

dengan

bit 1

bit

0

1

char

signed char

-128

127

unsigned char

8 bit

0

255

int

short int

signed int

-32768

32768

unsigned int

16 bit

0

65535

long int

signed long int

-2147483648

2147483647

unsigned long int

0

4294967295

float

32 bit

(45)

Pengubah

signed

berarti nilai variabel dapat mempunyai tanda, sehingga dapat

bernilai positif maupun negatif. Terlihat pada tabel 2.9 di atas bahwa

int

dan

signed

int

mempunyai nilai jangkauan yang sama, sehingga sebenarnya pengubah

signed

tidak perlu untuk

int

,

char

, dan

long int

, karena

default

dari tipe ini sudah

signed

.

2.6.3 Variabel

Variabel digunakan untuk memesan tempat di memori (RAM) saat mewakili

suatu nilai di dalam proses program. Nilai variabel ini dapat diubah-ubah

sewaktu-waktu.

Semua variabel yang akan digunakan dalam pemrograman perlu terlebih

dahulu di deklarasikan (memesan tempat dalam memori) terlebih dahulu. Bentuk

umum dari deklarasi variabel sebagai berikut:

tipe nama_nama variabel;

2.6.4 Operator pada Bahasa C

Operator merupakan simbol yang biasa dilibatkan dalam program untuk

melakukan sesuatu operasi atau manipulasi. Bahasa C memiliki operator jauh lebih

banyak daripada bahasa-bahasa pemrograman lainnya. Berikut ini adalah beberapa

operator yang digunakan dalam pemrograman.

2.6.4.1

Operator Aritmatika

Bahasa C menyediakan sejumlah operator aritmatika seperti pada tabel 2.10

di bawah ini.

Tabel 2.10 Operator aritmatika

Operator Keterangan

* Perkalian

/ Pembagian

%

Sisa pembagian (modulus)

+ Penjumlahan

(46)

2.6.4.2

Operator Bitwise (Manipulasi Bit)

Operator-operator

bitwise

digunakan untuk memanipulasi bit-bit dari nilai data

yang ada di memori. Karena bahasa C memang dimaksudkan untuk dapat beroperasi

secara level rendah, seperti halnya bahasa mesin, maka operator

bitwise

ini sangat

diperlukan keberadaannya. Seluruh operator

bitwise

hanya bisa dikenakan pada

operand

bertipe integer atau karakter. Operator-operator ini dapat dilihat pada tabel

2.11.

Tabel 2.11 Operator bitwise

Operator Keterangan

<<

Geser bit ke kiri

>>

Geser bit ke kanan

&

Bitwise AND (dan)

|

Bitwise OR (atau)

^

Bitwise XOR

~

Bitwise NOT (komplemen)

2.6.4.3

Operator Relasi

Operator relasi biasa digunakan untuk membandingkan dua buah nilai.

Keseluruhan operator relasi dapat dilihat pada tabel 2.12.

Tabel 2.12 Operator relasi

Operator Keterangan

= =

Sama dengan (bukan penugasan)

!=

Tidak sama dengan

> Lebih

dari

< Kurang

dari

>=

Lebih dari atau sama dengan

<=

Kurang dari atau sama dengan

Ungkapan ini memberikan nilai benar atau salah. Hasil ungkapan berupa :

‰

0 kalau ungkapan bernilai salah

(47)

2.6.4.4 Operator Logika

Operator logika biasa digunakan untuk menghubungkan dua buah ungkapan

kondisi menjadi sebuah ungkapan kondisi. Operator-operator ini berupa :

‰

&& (operator logika dan)

‰

| | (operator logika atau)

‰

! (operator logika bukan)

2.6.5

Percabangan dan Perulangan

Sebuah program dapat berjalan secara berurutan maupun tidak (dengan kata

lain menggunakan percabangan). Program yang menggunakan percabangan dapat

melalui penyeleksian kondisi (melalui syarat-syarat tertentu), namun tidak menutup

kemungkinan penulisan program percabangan dilakukan tanpa penyeleksian kondisi.

2.6.5.1 Percabangan Bersyarat (Conditonal Branch)

Untuk pecabangan bersyarat, dapat digunakan statement

if

dan

if…else

.

Bentuk dasar dari

if

dan

if…else

dapat dilihat pada gambar 2.17.

Pernyataan-pernyataan

(

statement

yang berada di dalam blok

if

) akan

dijalankan apabila ungkapan atau kondisi di dalam kurung bernilai benar. Begitu juga

dengan perintah

Gambar

Gambar 2.2 Pemayaran linear horizontal
Gambar 2.3 Sinyal video [8]
Gambar 2.6 Pin ATmega32
Gambar 2.7 Konfigurasi memori data AVR ATmega32
+7

Referensi

Dokumen terkait

[r]

KITA JUGA HARUS BERSEDIA MENERIMA PELBAGAI RINTANGAN DALAM MENEGAKKAN BUDAYA INTEGRITI DI KALANGAN MASYARAKAT UMPAMANYA, AGENDA KITA MUNGKIN DITENTANGI OLEH PIHAK

Total and marketable green chile yields were higher for both daily and 3-day drip irrigation than for alternate row furrow irrigation in 1995 and 1996 regardless of infestation,

Digital Repository Universitas Jember... Digital Repository

Pada bagian ini dijabarkan strategi yang akan diterapkan dalam rangka pelembagaan (institusionalisasi) industri yang dibangun sedemikian rupa dapat mendorong

Hal ini dilakukan untuk menelaah kesesuaian antara RKA-SKPD dengan kebijakan umum APBD, prioritas dan plafon anggaran, prakiraan maju yang telah disetujui pada tahun

Terima kasih untuk (Alm) ayahanda yang selalu membuat saya termotivasi hingga akhirnya saya menjadi sarjana, terima kasih atas limpahan kasih sayang serta cinta kasih

It also correlates positively with few cardiovascular risk factors, such as C-reactive protein (CRP) (15), fibrinogen, F2-isoprostane, and inversely related with the