TUGAS AKHIR
LIDYA M SIAGIAN
NIM : 052408073
PROGRAM STUDI D-III FISIKA INSTRUMENTASI
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
DAFTAR ISI
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
BAB 5 KESIMPULAN DAN SARAN……….……50
5.1 Kesimpulan……….50
5.2 Saran………50
DAFTAR TABEL
ABSTRAK
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.
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.
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.
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
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 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.
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.
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.
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.
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.
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
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)
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)
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
... ... 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:
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:
...
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
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)
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
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.
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.
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.
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
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
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
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.
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
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
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
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,$
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
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:
Dari hasil pengujian diperoleh data sebagai berikut:
Karakter yang ditekan Data Pada Port 1 ASCII Karakter a
4.1.2 Rangkaian led display text berjalan
Gambar 4.2 Rangkaian led display Shift register
Data Pada
Serial
Buffer
Kondisi LED
LED22 LED23 LED24 LED25 LED26 LED27 LED28
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
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 µ
= = = = =
nop
Mikrokontroler AT89S8253 memerlukan 12 clock setiap satu siklus mesin. Jika digunakan kristal 12 MHz, maka waktu yang diperlukan untuk satu siklus mesin adalah :
Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas : Instruksi Siklus mesin Waktu (μS)
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
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.
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:
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
P3.7 ( AT89S51)
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.
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
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:
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.
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:
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
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:
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 :
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.
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.
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
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
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