Perancangan Receiver Dan Transmiter Infra Merah Keyboard Decoder Pada Display Matriks Berbasis Mikrokontroler At89c2051

(1)

TUGAS AKHIR

LIDYA M SIAGIAN

NIM : 052408073

PROGRAM STUDI D-III FISIKA INSTRUMENTASI

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2008


(2)

DAFTAR ISI

PERSETUJUAN…….………i

PERNYATAAN………..ii

PENGHARGAAN………..iii

ABSTRAK……….………..iv

DFTAR ISI………..v

DAFTAR GAMBAR………..vii

DAFTAR TABEL………...viii

BAB 1 PENDAHULUAN 1.1 Latar Belakang ………..………1

1.2 Rumusan Masalah….………...3

1.3 Tujuan Penulisan…….………..4

1.4 Batasan Masalah……….………...4

1.5 Sistematika Penulisan………....4

BAB 2 LANDASAN TEORI………...………....6

2.1 Perangkat Keras……….6

2.2 Arsitektur Mikrokontroler AT89S8253……….6

2.2.1 Kontruksi AT89S8253………...8

2.2.2 SFR (register fungsi khusus) pada keluarga 51………10

2.3 Perangkat Lunak………...14

2.3.1 Bahasa Assembly MSC-51………...14

2.3.2 Software 8051 Editor, Assembler, simulator, (IDE)………....18

2.3.3 Software Downloader………...19

BAB 3 PERANCANGAN ALAT DAN PROGRAM………...23

3.1 Diagram Blok………...23

3.2 Flowchart………..24

3.3 Rangkaian Minimum Mikrokontroler AT89S8253………..25

3.3.1 Rangkaian Keyboard Dekoder………..27

3.3.2 Rangkaian Led Display Text Berjalan………..28

3.4 Rangkaian Pengirim Infra Merah……….29

3.4.1 Rangkaian Penerima Infra Merah……….30

BAB 4 PEMBAHASAN RANGKAIAN DAN PROGRAM………31

4.1 Rangkaian Minimum Mikrokontroler AT89S8253……….31

4.1.1 Pengujian Rangkaian Dekoder……….33

4.1.2 Rangkaian Led Text Berjalan………...34

4.2 Rangkaian Pengirim Data Melalui Infra Merah………...36

4.2.1 Rangkaian Penerima Melalui Infra Merah………...42


(3)

BAB 5 KESIMPULAN DAN SARAN……….……50

5.1 Kesimpulan……….50

5.2 Saran………50

DAFTAR PUSTAKA………51 LAMPIRAN


(4)

DAFTAR TABEL

Halaman Tabel 2.1 Peta Register Fungsi Khusus………..11 Tabel 2.2 Fungsi pin pada port 3………....13


(5)

ABSTRAK

Pada zaman modern ini,peralatan yang dapat membantu aktivitas manusia sangat diperlukan untuk mempermudah pekerjaan dan menghemat waktu dan pengerjaan seperti pengangkatan alat-alat berat yang sulit dikerjakan manusia.Salah satunya dengan adanya teks berjalan dapat mengganti peran spanduk-spanduk bahkan reklame didalam kehidupan kita.pada dasarnya sistem ini merupakan rangkaian aplikasi penggabungan antara elektronika yaitu IC-IC digital dan mikrokontroler , dimana kata-katanya dapat diubah setiap saat melalui computer yang terhubung dengan display running text tersebut.Dengan kombinasi dari kedua bagian diatas maka penulis mencoba mewujudkan suatu sistem yang akan dikembangkan menjadi alat yang dapat berfungsi seperti yang diinginkan di atas bekerja dengan sistem computer.


(6)

BAB 1

PENDAHULUAN

1.1. Latar belakang

Perkembangan teknologi yang demikian pesatnya, terutama dibidang elektronika menyebabkan rangkaian-rangkaian aplikasi elektronika menggantikan yang lainnya. Salah satunya adalah mulai tergantinya peranan spanduk dan papan reklame dengan display running text.

Display running text merupakan rangkaian aplikasi penggabungan antara elektronika yaitu IC-IC digital dan mikrokontroler, dimana kata-katanya dapat diubah setiap saat melalui komputer yang terhubung dengan display running text tersebut.

Mikrokontroler adalah sebuah IC yang didalamnya terdapat sebuah prosesor dan sebuah memori. Prosesor disini berfungsi untuk pengolahan data, dan memori berfungsi untuk menyimpanan data. Data yang telah disimpan ke memori dapat dihapus dan ditulis lagi dengan data yang baru dengan menggunakan programmer.

Ada beberapa jenis mikrokontroler yang dijual dipasaran, antara lain: AT89S51/52/55/8252, PIC mikrokontroler , AVR mikrokontroler, dan Motorola.


(7)

Diantara semuanya, yang paling mudah dan paling banyak dijumpai dipasaran adalah AT89S51 dan AT89S52, disamping itu, harganya juga murah, sehingga banyak digunakan orang untuk merancang alat-alat aplikasi elektronika, termasuk salah satunya adalah untuk merancang display running text.

Display running text yang ada sekarang, kata-katanya dapat diganti setiap saat dengan menggunakan komputer yang terhubung dengan display running text tersebut. Jadi ketika kata-kata dalam display running text tersebut akan diubah, maka kita harus menghubungkan displai running text tersebut dengan komputer, kemudian mengetikkan kata-kata yang akan ditampilkan ke display running text pada komputer, dan kemudian mengirimkannya ke display running text, maka kata-kata pada display running text akan berganti dengan kata-kata yang baru dimasukkan tersebut. Cara seperti ini mudah, namun terkadang merepotkan. Apalagi pada saat display running text tersebut sudah terpasang pada tempatnya dan susah untuk dijangkau, akan sangat merepotkan jika kita harus membawa komputer ,kemudian merubah tampilannya dengan menggunakan komputer, padahal yang kita inginkan hanyalah mengganti tampilan kata-kata yang sedang berjalan pada display running text tersebut.


(8)

1.2. Rumusan masalah

Berdasarkan uraian yang terdapat dalam latar belakang di atas, maka dalam tugas akhir ini akan dibuat sebuah peralatan yaitu display running text yang sesuai dengan uraian dalam latar belakang di atas, yaitu : dapat membuat alat yang dapat mengganti tampilan pada running text tersebut tanpa harus menghubungkannya dengan komputer melainkan cukup dengan menekan tombol yang terdapat pada keyboard PC yang tehubung dengan rangkaian pemancar infra merah .

Pada alat ini akan ada dua rangkaian, yaitu rangkaian pemancar dan rangkaian penerima. Pada rangkaian pemancar terdapat sebuah mikrokontroler, pemancar infra merah dan sebuah keyboard PC, dimana jika salah satu tombol keyboard ditekan, maka mikrokontroler akan mengubah menjadi data tertentu kemudian mengirimkannya ke pengirim dengan menggunakan infra merah.

Pada rangkaian penerima, terdapat sebuah IC AT 89C2051 yang dihubungkan dengan display running text. Jika ada data yang dikirimkan oleh pemancar dimana terdapat sebuah IC pemancar infra merah, maka IC penerima akan menerima datanya, kemudian data akan diolah dan dibandingkan oleh mikrokontroler. Selanjutnya mikrokontroler akan menampilkan kata sesuai dengan perintah dari penerima.


(9)

1.3 Tujuan penulisan

Adapun tujuan penulisan laporan ini adalah untuk membuat alat berupa display running text yang dapat dikendalikan oleh PC , sekaligus mempelajari pengiriman data dengan menggunakan infra merah (wireless).

1.4 Batasan masalah

Penulisan tugas akhir ini dibatasi pada :

1. Studi cara kerja rangkaian yang meliputi diagram blok dan menguraikan secara umum fungsi dari masing-masing komponen utama dalam blok tersebut.

2. Tombol yang digunakan untuk menampilkan karakter pada display running text adalah sebuah keyboard PC

3. Mikrokontroler yang digunakan yaitu AT89S8253, jadi hanya mikrokontroler ini yang akan diuaraikan cara kerjanya dan cara pemrogramannya.

I.5 Sistematika penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja dari alat Pengendalian


(10)

Running Text dengan menggunakan infra merah berbasis mikrokontroler AT89S8253, maka penulis menulis laporan ini sebagai berikut :

BAB I. Pendahuluan

Dalam bab ini berisikan mengenai latar belakang, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB II. Landasan teori

Landasan teori dalam bab ini menjelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian. Teori pendukung antara lain tentang mikrokontroler AT89S8253 (hardware dan software), bahasa program yang digunakan, serta cara kerja dari pemancar dan penerima inframerah.

BAB III. Perancangan alat

Perancangan alat dalam bab ini dibahas tentang perancangan alat kerja per-blok diagram dan sistem kerja keseluruhan.

BAB IV. Pembahasan

Bab ini meliputi tentang pembahasan program mikrokontroler dan prinsip kerja.

BAB IV. Kesimpulan dan saran

Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih efisien dan dikembangkanperakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(11)

BAB 2

LANDASAN TEORI

2.1 Perangkat keras

2.2 Arsitektur mikrokontroler AT89S8253

Mikrokontroler sebagai suatu terobosan teknologi mikrokontoler dan mikrokomputer hadir memenuhi kebutuhan pasar (market need)dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara missal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan mikroprosesor). Sebagai kebetuhan pasar, mikrokontelor hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat Bantu dan mainan yang lebih canggih.

Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini


(12)

ditangani dengan mikrokontroler, karena tidak mungkin menggunakan computer PC yang harus dipasang disamping (atau di belakang) mesin permainan yang bersangkutan.

Selain sistem tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam bidang pengukuran jarak jauh atau yang dikenal dengan sistem telemetri. Misalnya pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman jika dipasang suatu system pengukuran yang bisa mengirimkan data lewat pemancar dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya. Sistem pengukuran jarak jauh ini jelas membutuhkan suatu sistem akuisisi data sekaligus sistem pengiriman data secara serial (melalui pemancar) yang semuanya bisa diperoleh dari mikrokontroler yang digunakan.

Tidak seperti sistem komputer yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya). Mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM dan ROM. Pada sistem komputer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang kecil. Pada mikrokontroler perbandingan ROM dan RAM-nya besar, artinya program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara termasuk register-register yang digunakan pada mikrokontroler yang bersangkutan.


(13)

2.2.1 Kontruksi AT89S8253

Mikrokontrol AT89S8253 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini AT89S8253 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24 MHz dan kapasitor 30 piko-Farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja mikrokontroler. Memori merupakan bagian yang sangat penting pada mikrokontroler, dimana memiliki dua macam memori yang sifatnya berbeda yaitu :

1. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan progam ini dinamakan sebagai memori progam.

2. Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai untuk menyimpan data ini disebut sebagai memori data.

Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah baku dan diproduksi secara masal. Progam diisikan ke dalam ROM pada saat IC mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable


(14)

Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROMyang harganya jauh lebih murah.

Jenis memori yang dipakai untuk Memori Program AT89S8253 adalah Flash PEROM. Program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S8253 Flash PEROM Programmer. Memori Data yang disediakan dalam chip AT89S8253 sebesar 128 byte, meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.

Sarana input/ouput yang disediakan cukup banyak dan bervariasa. AT89S8253 mempunyai 32 jalur input/ouput. Jalur input/ouput paralel dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).

AT89S8253 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakan berhimpitan dengan P1.0 dan P1.1 di kaki nomor 2 dan 3, sehingga kalau sarana input/ouput yang bekerja menurut fungsi waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai untuk jalur input/ouput parelel kalau T0 dan T1 dipakai.

AT89S8253 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output parelel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.


(15)

Port1 dan 2, UART, Timer 0,Timer 1 dan sarana lainnya merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Functoin Regeister (SFR).

2.2.2 SFR (register fungsi khusus ) pada keluarga 53

Sekumpulan SFR atau Special Function Register yang terdapat pada mikrokontroler Atmel Keluarga 51 ditunjukan pada gambar I.01. Pada bagian sisi kiri dan kanan dituliskan alamat-alamatnya dalam format heksadesimal.

Tidak semua alamat pada SFR digunakan, alamat-alamat yang tidak digunakan diimplementasikan pada chip. Jika dilakukan usaha pembacaan pada alamat-alamat yang tidak terpakai tersebut akan menghasilkan data acak dan penulisannya tidak menimbulkan efek sama sekali. Pengguna perangkat lunak sebaiknya jangan menuliskan ‘1’ pada lokasi-lokasi ‘tak bertuan’ tersebut, karena dapat digunakan untuk mikrokontroler generasi selanjutnya. Dengan demikian, nilai-nilai reset atau non-aktif dari bit-bit baru ini akan selalu ‘O’ dan nilai aktifnya adalah ‘1’. Berikut akan dijelaskan secara singkat SFR-SFR beserta fungsinya:


(16)

8 Bytes

F8

F0 B F7

E8 EF

E0 ACC E7

D8 DF

D0 PSW D7

C8 (T2CON) (T2MOD) (RCAP2L) (RCAP2H) (TL2) (TH2) CF

C0 C7

B8 IP BF

B0 P3 B7

A8 IE

A0 P2 A7

98 SCON SBUF 9F

90 P1 97

88 TCON TMOD TLO TL1 THO TH1 8F

80 PO SP DPL DPH PCON 87

Tabel 2.1 Peta Register Fungsi Khusus – SFR (Special Function Register)

AT89S8253


(17)

Deskripsi pin-pin pada mikrokontroler AT89S8253 :

VCC (Pin 40)

Suplai tegangan

GND (Pin 20)

Ground

Port 0 (Pin 39-Pin 32)

Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data ataupun penerima kode byte pada saat flash progamming. Pada fungsi sebagai I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut.

Pada fungsi sebagai low order multiplex address/data, por ini akan mempunyai internal pull up.

Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat verifikasi program.

Port 2 (Pin 21 – pin 28)

Port 2 berfungsi sebagai I/O biasa atau high order address pada saat mengaksememori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan mengeluarkan isi dari P2 special function register. Port ini mempunyai internal pull updan berfungsi sebagai input dengan memberikan logika 1. Sebagai output, port ini dapat memberikan output sink keempat buah input TTL.

Port 3 (Pin 10 – pin 17)

Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. Port 3 juga mempunyai fungsi pin masing-masing yaitu sebagai berikut :


(18)

Nama pin Fungsi P3.0 (pin 10) RXD (Port input serial) P3.1 (pin 11) TXD (Port output serial) P3.2 (pin 12) INTO (interrupt 0 eksternal) P3.3 (pin 13) INT1 (interrupt 1 eksternal) P3.4 (pin 14) T0 (input eksternal timer 0) P3.5 (pin 15) T1 (input eksternal timer 1)

P3.6 (pin 16) WR (menulis untuk eksternal data memori) P3.7 (pin 17) RD (untuk membaca eksternal data memori)

Tabel 2.2 fungsi pin pada port 3

RST (pin 9)

Reset akan aktif dengan memberikan input high selama 2 cycle.

ALE/PROG (pin 30)

Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat selama mengakses memori eksternal. Selain itu, sebagai pulsa input progam (PROG) selama memprogam Flash.

PSEN (pin 29)

Progam store enable digunakan untuk mengakses memori progam eksternal.

EA (pin 31)

Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada


(19)

memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12 Volt.

XTAL1 (pin 19)

Input untuk clock internal.

XTAL2 (pin 18)

Output dari osilator.

2.3 Perangkat lunak

2.3.1 Bahasa assembly MCS-51

Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S8253 dan AT89C2051 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Dari 51 instruksi yang sering digunakan orang hanya 10 instruksi. Instruksi –instruksi tersebut antara lain :

1. Instruksi MOV

Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.

Contoh pengisian nilai secara langsung MOV R0,#20h

Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung


(20)

... ... MOV R0,20h

Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0).

Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.

2. Instruksi DJNZ

Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh ,

MOV R0,#80h Loop: ...

...

DJNZ R0,Loop

...

R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.

3. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh : ...

ACALL TUNDA ...

TUNDA:


(21)

4. Instruksi RET

Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh,

ACALL TUNDA ...

TUNDA:

... RET

5. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh : Loop:

... ... JMP Loop

6. Instruksi JB (Jump if bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh :

Loop:

JB P1.0,Loop ...

7. Instruksi JNB (Jump if Not bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh :

Loop:


(22)

...

8. Instruksi CJNE (Compare Jump If Not Equal)

Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh :

Loop:

...

CJNE R0,#20h,Loop ...

Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya.

9. InstruksiDEC (Decreament)

Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh :

MOV R0,#20h R0 = 20h ...

DEC R0 R0 = R0 – 1 ...

10.Instruksi INC (Increament)

Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh,

MOV R0,#20h R0 = 20h

...

INC R0 R0 = R0 + 1


(23)

11.Dan lain sebagainya

2.3.2 Software 8051 Editor, Assembler, Simulator (IDE)

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti di bawah ini.

Gambar 2.2 8051 Editor, Assembler, Simulator (IDE)

Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.


(24)

Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.

2.3.3 Software Downloader

Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan software ISP- Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti gambar di bawah ini :

Gambar 2.3 ISP- Flash Programmer 3.a

Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil kompilasitersebutkemikrokontroller.


(25)

Antarmuka keyboard standard adalah hubungan komunikasi serial. Serial yang menandakan bahwa data dikirim satu bit pada suatu waktu tertentu pada satu jalur tunggal. Serial komunikasi dipilih untuk antara muka keyboard karena hal ini simple dan mudah diterapkan, dan tidak banyak data per detik yang harus dikirimkan pada antar muka keyboard.

Ada empat jalur yang menghubungkan keyboard dan PC. Dua dari ini adalah power supply dan ground, yang digunakan untuk memberikan daya ke rangkaian keyboard. Dua sinyal yang lain adalah sebagai berikut:

1. Data Keyboard ; Disinilah jalur bit-bit data dan perintah yang akan dikirimkan ke sistem PC dari keyboard.

2. Clock Keyboard ; Ini merupakan sinyal clock regular, dengan suatu nilai yang berosilasi dari logika “1” ke “0” dengan pola yang teratur. Tujuan dari sinyal clock ini adalah untuk mensinkronisasi keyboard dan sistem, sehingga merekan selalu bekerja secara bersamaan.

Keyboard PC AT yang terkoneksi, hanya menggunakan empat buah kabel, kabel ini ditunjukkan pada gambar dibawah, untuk 5 pin DIM dan PS/2.


(26)

5 PIN DIN (a)

1.KBD Clock

2.KBD Data

3.N/C 4.GND

5. +5V (VCC)

6 PIN DIN (b)

1. KBD Clock 2. GND 3. KBD Data 4. N/C 5. +5V (VCC) 6. N/C

Gambar 2.4 Keyboard konektor (a) XT (b) PS/2

Diagram dibawah ini menunjukkan kode scan yang menandai tombol individu. Kode scan ditunjukkan pada bagian bawah dari tombol. Contoh kode scan untuk tombol ESC adalah 76. Semua kode scan ditunjukkan dalam Hex.


(27)

Sebagaimana yang anda lihat, kode scan ditandai dengan kode yang random. Pada beberapa kasus, cara yang paling mudah untuk menerjemahkan kode scan ke ASCII adalah dengan menggunakan metode look up table.

Transmisi data, dari keyboard ke sistem, dilakukan dengan frame 11 bit. Bit pertama adalah bit start ( logika 0 ), diikuti dengan 8 bit data ( LSB first ), satau bit paristas ( paritas ganjil ) dan bit stop ( logika 1 ). Setiap bit harus dibaca pada sisi turun dari clock.


(28)

BAB 3

PERANCANGAN ALAT DAN PROGRAM

3.1 Diagram blok

secara garis besar, diagram blok rangkaian dari pengendalian running text dengan menggunakan infra merah berbasis mikrokontroller AT89S8253 ditunjukkan oleh gambar berikut:

Pada alat ini terdapat sebuah pemancar infra merah dan sebuah penerima berbasis MC AT 89C2051, dimana pemancar infra merah dihubungkan dengan sebuah mikrokontroller AT89C2051 untuk dapat mengirimkan data, mikrokontroller ( 1 ) harus membaca terlebih dahulu nilai scan code yang diinputkan oleh driver keyboard PS2. apabila nilai scan code yang diinputkan ke mikrokontroller benar maka mikrokontroller akan memprosesnya dan mengirimkannya ke penerima melalui pemancar infra merah. Data yang diterima oleh penerima infra merah selanjutnya akan

KEYBOARD PS2 DRIVER KEYBOARD PS2

MIKROKONTROLLER AT89S8253

( 1 )

DRIVER PEMANCAR INFRA MERAH

DRIVER PENERIMA INFRA MERAH MIKROKONTROLLER

AT89S8253

( 2 ) DISPLAY MATRIX


(29)

di kirimkan ke mikrokontroller untuk diproses dan ditampilkan hasilnya ke display matrix sesuai dengan data yang kita kirimkan.

3.2 Flowchart

Berikut ini adalah flowchart pengendalian display running text dengan menggunakan infra merah berbasis mikrokontroler AT89S8251.

Tidak

Ya

Tidak

Ya

Ya Start

Tampilkan Tulisan

Ada Data Yang Masuk ?

Data = A ?

Data = B ?

Tampilkan Tulisan Untuk Data A

Tampilkan Tulisan Untuk Data B


(30)

Secara umum rangkaian led display sebagai penampil text berjalan ini dirancang dengan menggunakan 112 buah led yang terdiri dari 7 baris dan 16 kolom. Dimana metode yang digunakan adalah metode shift register, yang dikendalikan oleh IC serial to parallel shift register 4094.

3.3 Rangkaian minimum mikrokontroler AT89S8253

Ragkaian minimum mikrokontroller AT89S8253 ditunjukkan pada gambar 3.2 berikut ini :

Gambar 3.1 Rangkaian minimum mikrokontroller AT89S8253

Pin 29 merupakan PSEN (Program Store Enable) dan pin 30 sebagai Address Latch Enable (ALE)/PROG dihubungkan ke ground (diset low), sedangkan Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena mikrokontroller AT89S8253 tidak menggunakan memori eskternal. Pin 18 dan 19 dihubungkan ke XTAL 12 MHz dan capasitor 30 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroller AT89S8253 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset


(31)

mikrokontroller ini. Pin 32 sampai 39 adalah Port 0 yang merupakan saluran/bus I/O 8 bit open collector dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Karena fungsi tersebut maka Port 0 dihubungkan dengan resistor array. Jika mikrokontroller tidak menggunakan memori eksternal, maka penggunaan resistor array tidak begitu penting. Pin 28 yang merupakan P2.7 dihubungkan dengan transistor dan sebuah led. Ini dilakukan hanya untuk menguji apakah rangkaian minimum mikrokontroller AT89S8253 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroller tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah bekerja dengan baik atau tidak. Jika led yang terhubug ke Pin 28 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Namun setelah seluruh rangkaian disatukan, led yang terhubung ke pin 28 ini tidak digunakan lagi. Pin 20 merupakan ground dihubungkan dengan ground pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan + 5 volt dari power supplay.

Pada rangkaian, mikrokontroller AT89S8253 berfungsi untuk menyimpan sekaligus mengendalikan data yang akan ditampilkan pada led matriks display. Data-data yang akan ditampilkan pada led matriks display akan disimpan oleh alamat-alamat yang ditunjukkan oleh data pointer (DPTR). Kemudian data-data tersebut akan diisikan ke Port 0 secara bergantian untuk ditampilkan pada led matriks display. Port 2 digunakan untuk memilih kolom dimana data yang ada pada Port 0 akan ditampilkan. Penyimpanan data, penampilaqn data dan pengendalian Port 0 dan Port 2 akan diatur melalui keseluruhannya melalui program yang diisikan ke dalam mikrokontroller AT89S8253.


(32)

3.3.1Rangkaian keyboard decoder

Rangkaian ini menggunakan mikrokontroler AT89C2051, rangkaian ini berfungsi untuk mengubah setiap sinyal yang dikirimkan oleh keyboard menjadi data biner yang dapat dikenali oleh rangkaian mikrokontroler AT89S8253. Rangkaian keyboard decoder ditunjukkan pada gambar di bawah ini:

Gambar 3.2 Rangkaian keyboard decoder

Rangkaian ini menggunakan konektor PS2 yang dihubungkan ke keyboard computer, kemudian dengan menggunakan IC 89C2051, sinyal (data serial) yang dikirimkan oleh keyboard setiap terjadi penekanan pada tombol keyboard, data tersebut akan diterima oleh rangkaian dan diterjemahkan menjadi data parallel.


(33)

3.3.2 Rangkaian led display text berjalan

Rangkaian ini menggunakan IC 4094 yang merupakan IC serial to parallel shift register. Rangkaian tampak seperti gambar di bawah ini :

Gambar 3.3 rangkaian display led shift register

IC 4094 merupakan IC serial to parallel shift register. Input IC ini adalah data serial, data serial tersebut akan dikonversikan oleh IC ini menjadi data parallel. IC ini dihubungkan ke mikrokontroler AT89S8253, pada port 3 yaitu P3.0 dan P3.1. yang merupakan fungsi khusus dari mikrokontroler sebagai jalur pengiriman data serial. Dengan demikian data data yang diisikan pada alamat serial ini akan dikirimkan ke IC 4094 untuk kemudian dikonversikan menjadi data parallel. Output dari IC ini dihubungkan langsung ke led, sehingga output yang mendapat logika high maka lednya akan menyala, dan output yang mendapatkan logika low, maka lednya akan


(34)

mati. Pada rangkaian ini setiap kolom terdiri dari 7 buah led, dimana jumlah ini merupakan jumlah yang tepat untuk membentuk suatu karakter huruf tertentu.

3.4 Rangkaian pemancar infra merah

Data yang yang telah diolah mikrokontroler AT89C2051 dikirimkan ke rangkaian penerima dengan menggunakan led infra merah. Rangkaiannya seperti gambar di bawah ini :

Gambar 3.4 Rangkaian pengirim data melalui infra merah

Pada rangkaian di atas led infra merah akan menyala jika basis pada transistor C945 diberi tegangan yang lebih besar dari 0,7 volt, ini akan sama artinya jika pada P3.7 AT89S8253 diberi logika high (1), karena pin yang diberi logika high akan mempunyai tegangan 4 s/d 5 volt, cukup untuk mengaktipkan transistor. Sedangkan untuk mematikan led infra merah, maka P3.7 AT89S8251 harus diberi logika low (0), karena dengan memberikan logika low pada P3.7, maka P3.7 akan memiliki tegangan 0 s/d 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktip.

P3.7 ( AT89S51)

LED_ir 5V VCC

330฀

R2 4.7k


(35)

Untuk pengiriman data agar data dapat dikirimkan dari jarak yang jauh, maka led infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini bebas dari gangguan frekuensi infra merah alam. Jika led infra merah dipancarkan dengan frekuensi selai 38 KHz, maka pancarannya akan terganggu oleh frekuensi-frekuensi infra merah dari alam, seperti frekuensi-frekuensi infra merah yang dipancarkan oleh matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka pancaran led infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.


(36)

BAB 4

PEMBAHASAN RANGKAIAN DAN PROGRAM

4.1 Rangkaian minimum mikrokontroller AT89S8253

Untuk mengetahui apakah rangkaian mikrokontroller AT89S8253 telah bekerja dengan baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan memberikan program sederhana pada mikrokontroller AT89S8253. Programnya adalah sebagai berikut:

Loop:

Setb P2.7 Acall tunda Clr P2.7 Acall tunda Sjmp Loop Tunda:

Mov r7,#0ffh Tnd: Mov r6,#0ffh

Djnz r6,$ Djnz r7,tnd


(37)

Ret

Program di atas bertujuan untuk menghidupkan led yang terhubung ke P2.7 selama ± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus menerus. Perintah Setb P2.0 akan menjadikan P2.7 berlogika high yang menyebabkan transistor aktif, sehingga led hidup. Acall tunda akan menyebabkan led ini hidup selama beberapa saat. Perintah Clr P2.7 akan menjadikan P2.7 berlogika low yang menyebabkan transistor tidak aktif sehingga led akan mati. Perintah Acall tunda akan menyebabkan led ini mati selama beberapa saat. Perintah Sjmp Loop akan menjadikan program tersebut berulang, sehingga akan tampak led tersebut berkedip.

Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut : Kristal yang digunakan adalah kristal 12 MHz, sehingga 1 siklus mesin

membutuhkan waktu = 12 1

12MHz = mikrodetik.

Mnemonic Siklus Waktu Eksekusi MOV Rn,#data 2 2 x 1 μd = 2 μd DJNZ 2 2 x 1 μd = 2 μd RET 1 1 x 1 μd = 1 μd

Tunda:

mov r7,#255 2

Tnd: mov r6,#255 2

djnz r6,$ 255 x 2 = 510 x 255 = 131.070 = 131.073

djnz r7,loop3 2


(38)

Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 131.073 μdetik atau 0,131073 detik dan dapat dibulatkan menjadi 0,13 detik.

Jika program tersebut diisikan ke mikrokontroller AT89S8251, maka mikrokontroller dapat berjalan sesuai dengan program yang diisikan, sehingga rangkaian minimum mikrokontroller AT89S8253 bekerja dengan normal.

4.1.1 Pengujian rangkaian dekoder

Pengujian pada rangkaian ini dilakukan dengan menekan tombol tombol pada keyboard dan melihat hasilnya pada port 1. kemudian hasil tersebut dibandingkai dengan tabel ASCII dari keyboard berikut:


(39)

Dari hasil pengujian diperoleh data sebagai berikut:

Karakter yang ditekan Data Pada Port 1 ASCII Karakter a Karakter b Karakter c Karakter d Karakter e Karakter f Karakter g Karakter h Karakter i Dan seterusnya 00011100 00110010 00100001 00100011 00100100 00101011 00110100 00110011 01000011 …….. 1C 32 21 23 24 2B 34 3B 43 ……

4.1.2 Rangkaian led display text berjalan

Rangkaian led display huruf berjalan menggunakan IC 4094 yang merupakan IC serial to parallel shift register, sehingga untuk pengujiannya, maka harus dikirim data serial pada input IC dan diamati tampilannya. Dari hasil pengujian pada rangkaian di bawah ini, di dapatkan data sebagai berikut:


(40)

Gambar 4.2 Rangkaian led display Shift register

Data Pada

Serial

Buffer

Kondisi LED

LED22 LED23 LED24 LED25 LED26 LED27 LED28

01H mati mati mati mati mati mati mati 02H nyala mati mati mati mati mati mati 04h mati nyala mati mati mati mati mati 08H mati mati nyala mati mati mati mati 10H mati mati mati nyala mati mati mati 20H mati mati mati mati nyala mati mati 40H mati mati mati mati mati nyala mati 80h mati mati mati mati mati mati nyala 26H nyala nyala mati mati nyala mati mati 37H nyala nyala nyala mati nyala nyala mati


(41)

4.2 Rangkaian pengirim data melalui infra merah

Data yang yang telah diolah mikrokontroler AT89C2051 dengan menggunakan led infra merah dikirimkan ke rangkaian penerima. Rangkaiannya seperti gambar di bawah ini :

Gambar 4.3 Rangkaian pengirim data melalui infra merah

Pada rangkaian di atas led infra merah akan menyala jika basis pada transistor C945 diberi tegangan yang lebih besar dari 0,7 volt, ini akan sama artinya jika pada P3.7 AT89C2051 diberi logika high (1), karena pin yang diberi logika high akan mempunyai tegangan 4 s/d 5 volt, cukup untuk mengaktipkan transistor. Sedangkan untuk mematikan led infra merah, maka P3.7 AT89C2051 harus diberi logika low (0), karena dengan memberikan logika low pada P3.7, maka P3.7 akan memiliki tegangan 0 s/d 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktip.

Untuk pengiriman data agar data dapat dikirimkan dari jarak yang jauh, maka led infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini bebas dari gangguan frekuensi infra merah alam. Jika led infra merah dipancarkan dengan frekuensi selai 38 KHz, maka pancarannya akan terganggu oleh frekuensi-frekuensi infra merah dari alam, seperti frekuensi-frekuensi infra merah yang dipancarkan oleh

P3.7 ( AT89S51)

LED_ir 5V VCC

330฀

R2 4.7k


(42)

matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka pancaran led infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.

Untuk memancarkan frekuensi 38 KHz dari led infra merah, langkah yang harus dilakukan adalah dengan mengedipkannya (menghidupkan dan mematikannya) dengan frekuensi tersebut, yaitu dengan memberikan logika high dan low pada P3.7 dengan selang waktu (perioda) :

1 1 13 0, 0000263 26,3 38 38 10

T s s

f KHz x Hz µ

= = = = =

Untuk mendapatkan perioda tersebut, maka program yang harus diberikan pada mikrokontroler AT89S8253 adalah:

38KHz:

clr p3.7 nop

nop nop nop nop nop nop nop nop nop nop


(43)

nop setb p3.7 nop nop nop nop nop nop nop nop nop nop sjmp 38KHz

Mikrokontroler AT89S8253 memerlukan 12 clock setiap satu siklus mesin. Jika digunakan kristal 12 MHz, maka waktu yang diperlukan untuk satu siklus mesin adalah :

6

12

1 10 1

12 Clock

x sekon s

MHz = = µ

Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas : Instruksi Siklus mesin Waktu (μS)

CLR NOP SETB SJMP 1 1 1 2 1 1 1 2


(44)

Berdasarkan tabel di atas, maka lamanya logika low (0) pada P3.7 adalah 13 μ dan lamanya logika high (1) adalah 13 μs, sehingga periodanya menjadi 26 μs.

13 μs 13 μs

Low High 26 μs

Dengan demikian frekuensi yang dihasilkan oleh P3.7 adalah :

6 6

1 1 1 1 10

38461 38, 461 26 26 10 26

x

f Hz KHz

T µs xs

= = = = = =

Jika led infra merah dipancarkan dengan frekuensi ini, maka pancaran led infra merah dari rangkaian tidak akan terganggu oleh frekuensi infra merah alam. Sebagai catatan frekuensi infra merah yang tidak dipengaruhi oleh frekuensi infra merah dari alam adalah anatara 38 KHz s/d 40 KHz, frekuensi inilah yang digunakan sebagai frekuensi remote kontrol dari TV, VCD dan DVD di seluruh dunia.

Ketika penerima infra merah menerima pancaran infra merah dengan frekuensi 38 KHz dari rangkaian pemancar, maka output dari penerima akan berlogika high (1), jika pancaran infra merah ini dihentikan, maka penerima akan mendapatkan logika low (0) sesaat (± 1200 μs ) kemudian berubah menjadi high (1) kembali walaupun tidak ada pancaran infra merah dengan frekuensi 38 KHz. Ini sudah merupakan karakteristik dari penerima infra merah yang digunakan (TSOP 1738). Pada alat ini, logika high setelah setelah logika low sesaat itulah yang dijadikan sebagai data,


(45)

sehingga dengan mengatur lebar pulsa high (1) tersebut dengan suatu nilai tertentu dan menjadikan nilai tersebut sebagai datanya, maka pengiriman data dapat dilakukan.

Untuk menghindari kesalahan dalam pengambilan data, maka pada alat ini ditambahkan satu data yang berfungsi sebagai startbit atau data awal. Data awal ini mempunyai nilai tertentu, jadi ketika penerima mendapatkan sinyal low, penerima akan mengambil 1 data setelah sinyal low tersebut dan membandingkannya apakah sesuai dengan data awal atau tidak. Jika tidak sama, maka penerima akan mengambil data berikutnya , kemudian membandingkan lagi sesuai atau tidak dengan data awal. Langkah ini dilakukan terus sampai didapat data awal. Ketika penerima mendapatkan data yang sesuai dengan data awal, maka penerima akan mengambil data pertama setelah data awal sebagai data pertama, data kedua setelah data awal sebagai data kedua, dan seterusnya hingga data ketiga. Dengan demikian tidak akan terjadi kesalahan urutan data, walaupun ada penghalang sesaat. Setiap data mempunyai lebar pulsa high (1) tertentu. Untuk nilai data 0, maka lebar pulsa high yang dikirim adalah ± 1131 μ sekon. Programnya seperti berikut:

Mov 70h,#0 Inc 70h Kirim:

Mov r0,70h Acall data Sjmp kirim data:

loop1:


(46)

djnz r0,loop1 ret

pulsa:

Clr P0.0 ; 1μs Mov r7,#2 ; 1μs pls:

mov r6,#255฀ ; 1μs djnz r6,$฀ ; 2x255=510μs

djnz r7,pls ; 2μs =513x2=1026μs mov r7,#50 ; 1μs djnz r7,$฀ ; 2x50=100μs ret฀ ; 2μs Total 1131μs

Demikian juga seterusnya jika yang dikirimkan data 1 s/d data 9, maka data ini akan ditambah dengan nilai 1, dan kemudian hasil penjumlahannya digunakan sebagai banyaknya perulangan dalam pengiriman pulsa.

Sebagai contoh jika data yang dikirimkan adalah data 1, maka data ini akan ditambahkan 1 sehingga hasilnya menjadi 2. 2 inilah yang merupakan banyaknya perulangan pengiriman pulsa. Jadi lebar pulsa untuk data satu ± 2 x 1.131 μs = 2.262


(47)

P3.7 ( AT89S51) 5V

VCC

100฀ 10uF

i _1

0

i

i _1

i

4.2.1 Rangkaian pemancar melalui infra merah

IC yang digunakan sebagai penerima infra merah adalah IC TSOP 1738. IC ini sering digunakan sebagai penerima/receiver remote control dari TV atau VCD. Rangkaiannya tampak seperti dibawah ini:

TSOP1738

Gambar 4.4 Rangkaian penerima infra merah

Pada rangkaian diatas digunakan resistor 100 ohm untuk membatasi arus yang masuk pada rangkaian, sedangkan kapasitor 10 μF digunakan agar arus yang masuk ke IC TSOP 1738 lebih stabil. IC ini mempunyai karakteristik yaitu akan mengeluarkan logika high (1) atau tegangan ± 4,5 volt pada outputnya jika IC ini mendapatkan pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz, dan IC ini akan megeluarkan sinyal 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 ini mengeluarkan logika low atau hing pada outputnya, maka mikrokontroller dapat langsung mendeteksinya. Programnya sebagai berikut :


(48)

Utama:

mov 60h,#0h jb P3.7,$ nop

jnb P3.7,$ nilai:

inc 60h

acall hitung jb P3.7,nilai mov a,60h mov b,#10 div ab dec a

cjne a,#10,Utama

Awalnya mikrokontroler akan memasukkan nilai 0 pada alamat 60h, kemudian menunggu sinyal low dari P3.7 yang terhubung ke output dari IC TSOP 1738. Jika ada sinyal low, berarti ada data yang akan dikirim oleh pemancar, kemudian mikrokontroler akan mengabaikan sinyal low tersebut sampai datang sinyal high, sinyal high inilah yang dihitung oleh mikrokontroller sebagai data yang masuk. Data yang masuk akan dibagikan dengan nilai 10. Hal ini dilakukan karena lebar data pengirim 10 kali lebih besar daripada lebar data penerima, sehingga harus dibagi dengan 10. Kemudian hasilnya akan dikurangi dengan 1, hal ini karena pada saat pengiriman, setiap data telah ditambah dengan nilai satu. Selanjutnya lebar data akan dibandingkan, apakah sama dengan 10 atau tidak, jika sama dengan 10 maka data ini


(49)

merupakan data startbit, dengan demikian 3 data setelah ini adalah merupakan data karakter, dan akan diambil untuk ditampilkan karakternya. Namun jika data tersebut tidak sama dengan 10, maka data ini bukan merupakan data startbit, program akan kembali ke awal sampai mendapatkan startbit. Setelah mendapatkan data startbit, maka mikrokontroler akan mengambil data setelah data startbit tersebut, yang merupakan data dari nilai karakter yang dikirimkan oleh pemancar.

4.3 Pemrograman

Metode yang digunakan oleh penulis untuk menampilkan kalimat berjalan adalah metode shift register. Dalam metode ini data akan terus menerus digeser kearah kiri. Setiap data baru masuk, maka data yang lama akan digeser kea rah kiri, demikian seterusnya.sehingga dengan demikian huruf tampak berjalan terus kea rah kiri. Gambar rangkaian untuk metode shift register adalah seperti gambar di bawah:


(50)

Running text yang penulis buat terdiri dari 7 baris dan 16 kolom, dimana kolom pertama adalah kolom yang paling kanan. Untuk menghidupkan led pada kolom atau baris tertentu semuanya dikendalikan oleh program dalam mikrokontroller AT89S8253. Untuk mengendalikan tampilan baris digunakan serial buffer. Contohnya jika kita ingin menghidupkan ketujuh led pada kolom pertama, maka kita harus memberikan data 0f7H pada serial buffer. Programnya adalah sebagai berikut :

Loop:

Mov sbuf,#0f7H Jnb ti,$

Clr ti

Dengan program di atas maka ketujuh baris akan hidup pada kolom pertama Untuk menampilkan sebuah huruf pada display led, maka data pada serial buffer harus dikirim secara bergantian, sehingga akan tampak bahwa huruf tersebut berjalan.

Sebagai contoh adalah cara pembentukan karakter “S”. Langkah pertama adalah membuat bentuk karakter “S” sesuai dengan yang diinginkan, seperti yang tampak pada gambar di bawah :


(51)

Bentuk dari karakter “S” tidak harus sama seperti diatas, kita dapat membentuknya sesuai dengan keinginan kita sendiri.

Langkah selanjutnya adalah mengubah bentuk karakter “S” yang telah ada menjadi data-data biner dengan cara memberi nilai 1 pada led yang hidup dan memberi nilai 0 pada led yang mati, seperti tampak pada gambar di bawah ini :

Dengan demikian telah didapat data-data biner untuk membentuk karakter “S”. Sesuai dengan gambar di atas, maka data biner yang diperoleh adalah sebagai berikut:

0

0 0 1 1 0 1 1 1 1 1 1 1 1 0

0

0 0 0 0 0 0 1 1 0 0 1 1

0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 1 1

D7 D6 D5 D4 D3 D2 D1


(52)

Kolom 1 2 3 4 5 6 7 8 Data

Biner

0110010 1111011 1001001 1001001 1001001 1001001 1101111 0100110

Data Hexa- desima l

62 H 0F6 H 92 H 92 H 92 H 92 H 0DE H 4C H

Jadi untuk membentuk sebuah karakter “S”, maka data yang harus diberikan adalah 62 H, 0F6 H, 92 H, 92 H, 92 H, 92 H, 0DE H dan 4C H. data yang sudah ada ini kemudian diisikan ke serial buffer secara bergantian. Programnya adalah sebagai berikut :

Loop:

Mov P0,#62H Jnb ti,$ Clr ti

Acall Tunda Mov P0,#0F6H Jnb ti,$ Clr ti

Acall Tunda Mov P0,#92H Jnb ti,$ Clr ti


(53)

Mov P0,#92H Jnb ti,$ Clr ti

Acall Tunda Mov P0,#92H Jnb ti,$ Clr ti

Acall Tunda Mov P0,#92H Jnb ti,$ Clr ti

Acall Tunda Mov P0,#0EDH Jnb ti,$ Clr ti

Acall Tunda Mov P0,#4CH Jnb ti,$ Clr ti

Acall Tunda Sjmp Loop tunda:

mov r7,#255 tnd:


(54)

djnz r6,$ djnz r7,tnd ret

Dengan program di atas maka huruf “S” akan tampil pada kolom ke-15 sampai kolom ke-8, seperti gambar di bawah :


(55)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Mikrokontroler AT89S8253 merupakan mikroprosesor yang bekerja untuk memproses data yang diterima dari infra merah untuk ditampilkan pada display matriks.

2. Pada rangkaian ini Mikrokontroler AT89C2051 digunakan sebanyak dua buah,dimana satu digunakan pada pemancar infra merah, dan satu lagi digunakan sebagai penerima data yang dikirim dari keyboard.

3. Dengan besarnya arus yang mengalir ke led infra merah, maka intensitas pancaran infra merah akan semakin kuat atau besar yang menyebabkan jarak pancarannya semakin jauh.

5.2 Saran

1. Untuk berbagai aplikasi rangkaian dapat dilakukan dengan mengubah program pada mikroprosesor.

2. Alat ini sangat cocok digunakan sebagai pengganti dari spnduk-spanduk atau reklame.

3. Untuk mengembangkan alat ini lebih baik lagi maka alat ini dapat dikombinasikan dengan sensor lain secara teliti.


(56)

DAFTAR PUSTAKA

1. M. Jacob, 1993, ”Mikroelektronika”, Jilid 12, Erlangga, Jakarta.

2. Paulus Andi Nalwan,2003,”Teknik Antarmuka dan Pemograman Mikrokontrler AT89C51”,PT.Elex Media Komputindo,Jakarta.

3. Sutanto, 1997, ”Rangkaian elektronika analog dan terpadu”, Penerbit Universitas Indonesia Perss.


(57)

Program simulasi keybord pada PC

Private Declare Sub PortOut Lib "IO.dll" (ByVal Port As Integer, ByVal Data As Byte) Private Declare Function Portin Lib "IO.dll" (ByVal Port As Integer) As Byte

Private Sub Enter_Click(Index As Integer) PortOut &H378, &H5A

End Sub

Private Sub Huruf_A_Click(Index As Integer) PortOut &H378, &H1C

End Sub

Private Sub Huruf_B_Click(Index As Integer) PortOut &H378, &H32

End Sub

Private Sub Huruf_C_Click(Index As Integer) PortOut &H378, &H21

End Sub

Private Sub Huruf_D_Click(Index As Integer) PortOut &H378, &H23

End Sub

Private Sub Huruf_E_Click(Index As Integer) PortOut &H378, &H24

End Sub

Private Sub Huruf_F_Click(Index As Integer) PortOut &H378, &H2B

End Sub

Private Sub Huruf_G_Click(Index As Integer) PortOut &H378, &H34

End Sub

Private Sub Huruf_H_Click(Index As Integer) PortOut &H378, &H33

End Sub

Private Sub Huruf_I_Click(Index As Integer) PortOut &H378, &H43


(58)

Private Sub Huruf_J_Click(Index As Integer) PortOut &H378, &H3B

End Sub

Private Sub Huruf_K_Click(Index As Integer) PortOut &H378, &H42

End Sub

Private Sub Huruf_L_Click(Index As Integer) PortOut &H378, &H4B

End Sub

Private Sub Huruf_M_Click(Index As Integer) PortOut &H378, &H3A

End Sub

Private Sub Huruf_N_Click(Index As Integer) PortOut &H378, &H31

End Sub

Private Sub Huruf_O_Click(Index As Integer) PortOut &H378, &H44

End Sub

Private Sub Huruf_P_Click(Index As Integer) PortOut &H378, &H4D

End Sub

Private Sub Huruf_Q_Click(Index As Integer) PortOut &H378, &H15

End Sub

Private Sub Huruf_R_Click(Index As Integer) PortOut &H378, &H2D

End Sub

Private Sub Huruf_S_Click(Index As Integer) PortOut &H378, &H1B

End Sub

Private Sub Huruf_T_Click(Index As Integer) PortOut &H378, &H2C

End Sub


(59)

PortOut &H378, &H3C End Sub

Private Sub Huruf_V_Click(Index As Integer) PortOut &H378, &H2A

End Sub

Private Sub Huruf_W_Click(Index As Integer) PortOut &H378, &H1D

End Sub

Private Sub Huruf_X_Click(Index As Integer) PortOut &H378, &H22

End Sub

Private Sub Huruf_Y_Click(Index As Integer) PortOut &H378, &H35

End Sub

Private Sub Huruf_Z_Click(Index As Integer) PortOut &H378, &H1A

End Sub

Private Sub Space_Click(Index As Integer) PortOut &H378, &H29


(60)

PROGRAM IC PEMANCAR

pinWR bit P3.0 pinRD bit P3.1 mov tcon,#00h mov scon,#52h mov tmod,#21h mov tl1,#0fdh mov th1,#0fdh mov tcon,#40h mov pcon,#80h mov ie,#00h LOOP: acall delay MOV SBUF,#'A' JNB TI,$ CLR TI MOV SBUF,#'B' JNB TI,$ CLR TI MOV SBUF,#'C' JNB TI,$ CLR TI MOV SBUF,#'D' JNB TI,$ CLR TI MOV SBUF,#'E' JNB TI,$ CLR TI MOV SBUF,#'F' JNB TI,$ CLR TI MOV SBUF,#'G' JNB TI,$ CLR TI MOV SBUF,#'H' JNB TI,$ CLR TI MOV SBUF,#'I' JNB TI,$ CLR TI


(61)

MOV SBUF,#'J' JNB TI,$ CLR TI MOV SBUF,#'K' JNB TI,$ CLR TI MOV SBUF,#'L' JNB TI,$ CLR TI MOV SBUF,#'M' JNB TI,$ CLR TI MOV SBUF,#'N' JNB TI,$ CLR TI MOV SBUF,#'O' JNB TI,$ CLR TI MOV SBUF,#'P' JNB TI,$ CLR TI MOV SBUF,#'Q' JNB TI,$ CLR TI MOV SBUF,#'R' JNB TI,$ CLR TI MOV SBUF,#'S' JNB TI,$ CLR TI MOV SBUF,#'T' JNB TI,$ CLR TI MOV SBUF,#'U' JNB TI,$ CLR TI MOV SBUF,#'V' JNB TI,$ CLR TI MOV SBUF,#'W' JNB TI,$ CLR TI MOV SBUF,#'X' JNB TI,$ CLR TI MOV SBUF,#'Y'


(62)

JNB TI,$ CLR TI MOV SBUF,#'Z' JNB TI,$ CLR TI acall delay

MOV SBUF,#0DH ; enter JNB TI,$ CLR TI MOV SBUF,73h JNB TI,$ CLR TI MOV SBUF,74h JNB TI,$ CLR TI MOV SBUF,75h JNB TI,$ CLR TI acall delay MOV SBUF,#7EH JNB TI,$ CLR TI MOV SBUF,#0DH JNB TI,$ CLR TI acall tunda MOV SBUF,#'a' JNB TI,$ CLR TI MOV SBUF,#'b' JNB TI,$ CLR TI


(63)

MOV SBUF,#'c' JNB TI,$

CLR TI

MOV SBUF,#'d' JNB TI,$

CLR TI

MOV SBUF,#'d' JNB TI,$

CLR TI

MOV SBUF,#'e' JNB TI,$

CLR TI

MOV SBUF,#'f' JNB TI,$

CLR TI

MOV SBUF,#'g' JNB TI,$

CLR TI

MOV SBUF,#'h' JNB TI,$

CLR TI

MOV SBUF,#'i' JNB TI,$ CLR TI

MOV SBUF,#'j' JNB TI,$ CLR TI

MOV SBUF,#'k' JNB TI,$

CLR TI

MOV SBUF,#'l' JNB TI,$ CLR TI


(64)

MOV SBUF,#'m' JNB TI,$ CLR TI MOV SBUF,#'n' JNB TI,$ CLR TI MOV SBUF,#'o' JNB TI,$ CLR TI MOV SBUF,#'p' JNB TI,$ CLR TI MOV SBUF,#'q' JNB TI,$ CLR TI MOV SBUF,#'r' JNB TI,$ CLR TI MOV SBUF,#'s' JNB TI,$ CLR TI MOV SBUF,#'t' JNB TI,$ CLR TI MOV SBUF,#'u' JNB TI,$ CLR TI MOV SBUF,#'v' JNB TI,$ CLR TI MOV SBUF,#'w' JNB TI,$ CLR TI MOV SBUF,#'x' JNB TI,$


(65)

CLR TI MOV SBUF,#'y' JNB TI,$ CLR TI MOV SBUF,#'z' JNB TI,$ CLR TI lJMP LOOP kirim data:

acall frekwensi 38khz

tunda: mov r7,#30 tnd: mov r6,#255 td: mov r5,#255 djnz r5,$ djnz r6,td djnz r7,tnd ret frek38khz: mov r0,#10 loop: clr p3.7 nop nop nop nop nop nop nop nop nop nop nop nop setb p3.7 nop


(66)

nop nop nop nop nop nop nop nop nop djnz r0,loop ret data: loop1: acall pulsa djnz r0,loop1 ret pulsa: CLR p3.7 mov r7,#2 pls: mov r6,#255 djnz r6,$ djnz r7,pls mov r7,#50 djnz r7,$ ret delay: mov r7,#20 dly: mov r6,#255 dl: mov r5,#255 djnz r5,$ djnz r6,dl djnz r7,dly ret


(67)

PROGRAM IC penerima ;Database Huruf awal: mov dptr,#msg mov 76h,#86 loop: mov 77h,#16 jalan: acall scan inc dptr push a movc a,@a+dptr pop a acall tunda djnz 77h,jalan djnz 76h,loop sjmp awal scan: mov r2,#20 mov r1,dph mov r0,dpl scn: clr a

movc a,@a+dptr ;0 mov p0,a mov p2,#15 inc dptr acall tunda mov r3,#15 scn1: dec r3 clr a movc a,@a+dptr mov p0,a mov p2,r3 inc dptr acall tunda cjne r3,#0,scn1 mov dph,r1 mov dpl,r0 djnz r2,scn ret


(68)

tnd: mov r6,#15 djnz r6,$ djnz r7,tnd ret msg: db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h ;Normal Width

db 80h,7eh,09h,09h,09h,7eh,80h ;A db 80h,7fh,49h,49h,49h,36h,80h ;B db 80h,3eh,41h,41h,41h,22h,80h ;C db 80h,7fh,41h,41h,22h,1ch,80h ;D db 80h,7fh,49h,49h,49h,41h,80h ;E db 80h,7fh,09h,09h,09h,01h,80h ;F db 80h,3eh,41h,49h,49h,3ah,80h ;G db 80h,7fh,08h,08h,08h,7fh,80h ;H db 80h,41h,7fh,41h,80h ;I db 80h,20h,40h,41h,3fh,01h,80h ;J db 80h,7fh,08h,14h,22h,41h,80h ;K db 80h,7fh,40h,40h,40h,40h,80h ;L db 80h,7fh,02h,0ch,02h,7fh,80h ;M db 80h,7fh,04h,08h,10h,7fh,80h ;N db 80h,3eh,41h,41h,41h,3eh,80h ;O db 80h,7fh,09h,09h,09h,06h,80h ;P db 80h,3eh,41h,51h,21h,5eh,80h ;Q db 80h,7fh,09h,19h,29h,46h,80h ;R db 80h,26h,49h,49h,49h,32h,80h ;S db 80h,01h,01h,7fh,01h,01h,80h ;T db 80h,3fh,40h,40h,40h,3fh,80h ;U db 80h,1fh,20h,40h,20h,1fh,80h ;V db 80h,3fh,40h,38h,40h,3fh,80h ;W db 80h,63h,14h,08h,14h,63h,80h ;X db 80h,07h,08h,70h,08h,07h,80h ;Y db 80h,61h,51h,49h,45h,43h,80h ;Z db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h


(69)

(1)

MOV SBUF,#'m' JNB TI,$

CLR TI

MOV SBUF,#'n' JNB TI,$

CLR TI

MOV SBUF,#'o' JNB TI,$

CLR TI

MOV SBUF,#'p' JNB TI,$

CLR TI

MOV SBUF,#'q' JNB TI,$

CLR TI

MOV SBUF,#'r' JNB TI,$

CLR TI

MOV SBUF,#'s' JNB TI,$

CLR TI

MOV SBUF,#'t' JNB TI,$ CLR TI

MOV SBUF,#'u' JNB TI,$

CLR TI

MOV SBUF,#'v' JNB TI,$

CLR TI

MOV SBUF,#'w' JNB TI,$

CLR TI

MOV SBUF,#'x' JNB TI,$


(2)

CLR TI

MOV SBUF,#'y' JNB TI,$

CLR TI

MOV SBUF,#'z' JNB TI,$

CLR TI lJMP LOOP

kirim data:

acall frekwensi 38khz

tunda:

mov r7,#30 tnd:

mov r6,#255 td:

mov r5,#255 djnz r5,$ djnz r6,td djnz r7,tnd ret

frek38khz: mov r0,#10 loop:

clr p3.7 nop nop nop nop nop nop nop nop nop nop nop


(3)

nop nop nop nop nop nop nop nop nop

djnz r0,loop ret

data: loop1:

acall pulsa djnz r0,loop1 ret

pulsa:

CLR p3.7 mov r7,#2 pls:

mov r6,#255 djnz r6,$ djnz r7,pls mov r7,#50 djnz r7,$ ret

delay: mov r7,#20 dly:

mov r6,#255 dl:

mov r5,#255 djnz r5,$ djnz r6,dl djnz r7,dly ret


(4)

PROGRAM IC penerima ;Database Huruf

awal:

mov dptr,#msg mov 76h,#86 loop:

mov 77h,#16 jalan:

acall scan inc dptr push a

movc a,@a+dptr pop a

acall tunda djnz 77h,jalan djnz 76h,loop sjmp awal scan: mov r2,#20 mov r1,dph mov r0,dpl scn: clr a

movc a,@a+dptr ;0 mov p0,a

mov p2,#15 inc dptr acall tunda mov r3,#15 scn1:

dec r3 clr a

movc a,@a+dptr mov p0,a

mov p2,r3 inc dptr acall tunda cjne r3,#0,scn1 mov dph,r1 mov dpl,r0 djnz r2,scn


(5)

tnd: mov r6,#15 djnz r6,$ djnz r7,tnd ret

msg:

db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h ;Normal Width

db 80h,7eh,09h,09h,09h,7eh,80h ;A db 80h,7fh,49h,49h,49h,36h,80h ;B db 80h,3eh,41h,41h,41h,22h,80h ;C db 80h,7fh,41h,41h,22h,1ch,80h ;D db 80h,7fh,49h,49h,49h,41h,80h ;E db 80h,7fh,09h,09h,09h,01h,80h ;F db 80h,3eh,41h,49h,49h,3ah,80h ;G db 80h,7fh,08h,08h,08h,7fh,80h ;H db 80h,41h,7fh,41h,80h ;I db 80h,20h,40h,41h,3fh,01h,80h ;J db 80h,7fh,08h,14h,22h,41h,80h ;K db 80h,7fh,40h,40h,40h,40h,80h ;L db 80h,7fh,02h,0ch,02h,7fh,80h ;M db 80h,7fh,04h,08h,10h,7fh,80h ;N db 80h,3eh,41h,41h,41h,3eh,80h ;O db 80h,7fh,09h,09h,09h,06h,80h ;P db 80h,3eh,41h,51h,21h,5eh,80h ;Q db 80h,7fh,09h,19h,29h,46h,80h ;R db 80h,26h,49h,49h,49h,32h,80h ;S db 80h,01h,01h,7fh,01h,01h,80h ;T db 80h,3fh,40h,40h,40h,3fh,80h ;U db 80h,1fh,20h,40h,20h,1fh,80h ;V db 80h,3fh,40h,38h,40h,3fh,80h ;W db 80h,63h,14h,08h,14h,63h,80h ;X db 80h,07h,08h,70h,08h,07h,80h ;Y db 80h,61h,51h,49h,45h,43h,80h ;Z db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h db 80h,80h,80h,80h,80h,80h,80h,80h


(6)