TUGAS AKHIR
SISTEM IDENTIFIKASI TIKET PENUMPANG
OTOMATIS : PENAMPIL NOMOR TEMPAT DUDUK
PADA BUS BERBASIS MIKROKONTROLER
AT89S8252
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun oleh:
OEI HUI LIONG
NIM: 015114066
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
THE AUTOMATIC PASSENGER TICKET
IDENTIFICATION SYSTEM : SEAT NUMBER DISPLAY
IN THE BUS BASED ON MICROCONTROLLER
AT89S8252
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements To Obtain The Technical Engineering Degree In Electrical Engineering
By:
OEI HUI LIONG
Student Number: 015114066
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
ENGINEERING FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
LEMBAR PERSETUJUAN
TUGAS AKHIR
SISTEM IDENTIFIKASI TIKET PENUMPANG
OTOMATIS : PENAMPIL NOMOR TEMPAT DUDUK
PADA BUS BERBASIS MIKROKONTROLER
AT89S8252
Disusun oleh:
OEI HUI LIONG
NIM: 015114066
Telah setuju oleh:
Pembimbing I
Ir. Iswanjono, M.T Tanggal:
Pembimbing II
LEMBAR PENGESAHAN
TUGAS AKHIR
SISTEM IDENTIFIKASI TIKET PENUMPANG
OTOMATIS : PENAMPIL NOMOR TEMPAT DUDUK
PADA BUS BERBASIS MIKROKONTROLER
AT89S8252
Disusun oleh:
OEI HUI LIONG NIM: 015114066
Telah dipertahankan di depan Panitia Penguji pada tanggal 1 Februari 2007 dan dinyatakan memenuhi syarat
Susunan Panitia Penguji
Nama Lengkap Tanda Tangan
Ketua : B. Wuri Harini, S.T, M.T
Sekretaris : Ir. Iswanjono, M.T
Anggota : Damar Widjaja, S.T, M.T
Anggota : Petrus Setyo Prabowo, S.T
Pernyataan Keaslian Karya
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.
HALAMAN MOTTO DAN PERSEMBAHAN
“Hidup ini selalu diliputi dengan berbagai masalah, bila masalah
itu datang maka hadapilah, carilah solusi dengan berdoa karena
jika tidak dihadapi maka masalah tersebut akan selalu
menghantui anda.”
Kupersembahkan tugas akhir ini :
Kepada Tuhan Yesus Kristus, JuruSelamatku yang selalu menyertai dan memberkatiku setiap saat.
Untuk Bapakku dan Ibuku yang tercinta atas dukungan, doa, kasih sayang dan bimbingan yang tiada henti.
Untuk Kakak, Adik-adikku dan semua Keluarga Besarku atas saran dan kritik yang memacu saya untuk menyelesaikan tugas akademikku.
KATA PENGANTAR
Salam Sejahtera
Puji syukur Penulis ucapkan kepada Tuhan Yesus Kristus atas rahmat dan petunjuk-Nya sehingga Tugas Akhir ini dapat Penulis selesaikan dengan baik.
Penulis menyadari atas keterbatasan Penulis dalam penyelesaian Tugas Akhir ini, sehingga tanpa adanya bantuan dari pihak lain, maka tidak mungkin Tugas Akhir dapat diselesaikan dengan baik. Maka pada kesempatan ini Penulis mengucapkan banyak terima kasih kepada :
1. Kedua orang tua Penulis atas dukungan, doa, kasih sayang dan bimbingan yang tiada henti.
2. Bapak Iswanjono sebagai Pembimbing I yang dengan sabar membimbing Penulis dalam menyelesaikan Tugas Akhir ini.
3. Ibu Wuri Harini sebagai Pembimbing II yang telah membantu dan memberikan masukan sehingga Penulis dapat menyelesaikan Tugas Akhir ini.
4. Bapak Petrus Setyo Prabowo selaku PA 2001 yang telah bersedia meluangkan waktunya untuk memonitor Penulis.
5. Para Dosen Teknik Elektro : Bapak Djoko Untoro, Bapak Bayu Primawan, Bapak Damar Widjaja, Ibu Prima Ari, Ibu Wiwien Widyastuti, Bapak Linggo, Bapak, Martanto, Bapak Tjendro, Bapak Pius yang telah membagikan ilmunya selama masa perkuliahan
6. Para Bapak dan Ibu yang bertugas di Sekretariat Fakultas Teknik ( Pak Djito dan rekan) yang telah membantu Penulis dalam menyelesaikan semua persyaratan administrasi selama masa kuliah Penulis.
7. Kakak, Adik-adikku dan semua Keluarga Besarku atas bantuan, saran dan dukungan untuk menyelesaikan Tugas Akhir ini.
9. Teman-teman Elektro angkatan 2001, Eko, Pinto, Indra Bagus, ParToni, Rikhard, Septa, Ulis, Nugroho, Diaz, Ardi, Big & Little Anto, Tomo,Yudhi dan seluruh rekan yang lain yang tetap kompak untuk saling bahu membahu membantu sesamanya untuk cepat menyelesaikan kuliah.
Penulis sangat menyadari bahwa laporan Tugas Akhir ini merupakan awal dan masih memerlukan pengembangan dan penyempurnaan lebih lanjut supaya laporan ini dapat memberikan informasi yang cukup tentang subjek bahasan yang dibahas. Penulis
harapkan kiranya laporan Tugas Akhir ini dapat bermanfaat bagi pembaca dan perkembangan ilmu pengetahuan.
Yogyakarta, Februari 2007
DAFTAR ISI
HALAMAN JUDUL ... i
TITLE PAGE ………... ii
HALAMAN PERSETUJUAN …... iii
HALAMAN PENGESAHAN …... iv
HALAMAN PERNYATAAN KEASLIAN KARYA …... v
HALAMAN MOTTO DAN PERSEMBAHAN ... vi
KATA PENGANTAR ... vii
DAFTAR ISI ... ix
DAFTAR GAMBAR ... xi
DAFTAR TABEL ... xiii
DAFTAR LAMPIRAN ... xiv
INTISARI ... xv
ABSTRACT ... xvi
BAB I PENDAHULUAN ... 1
I.1 Judul ……... 1
I.2 Latar Belakang Masalah ……... 1
I.3 Tujuan dan Manfaat …... 1
I.4 Batasan Masalah ... 2
I.5 Sistematika Penulisan ... 2
BAB II DASAR TEORI ………... 4
2.1. Mikrokontroler AT89S8252 …... 4
2.1.1. Organisasi Memori AT89S8252 ... 4
2.1.2. Memori Program ... 6
2.1.3. Memori Data ... 6
2.1.4. Register Fungsi Khusus ………... 7
2.1.5. Mode Pengalamatan dan Instruksi Mikrokontroler ……….... 14
2.2.1. Penggerak Matrik LED ……….. 17
2.3. Limit Switch ……….. 19
BAB III PERANCANGAN ……….………... 20
3.1 Perancangan perangkat keras (Hardware) ………... 20
3.1.1 Matrik LED ……….. 21
3.1.2 Limit Switch ……….. 22
3.1 3 Penggerak Matrik LED ………... 24
3.2 Perancangan perangkat lunak (Software) ……….... 28
3.2.1 Flow Chart ……….. 29
BAB IV HASIL DAN PEMBAHASAN ……… 30
4.1 Driver matrik LED ………. 30
4.2 Penampil nomor tempat duduk ……… 32
4.3 Penampil pada tempat duduk ……….... 34
4.4 Alur Kerja Hasil Perancangan………... 35
BAB V KESIMPULAN DAN SARAN... 36
5.1 Kesimpulan ... 36
5.2 Saran ... 36
DAFTAR GAMBAR
Gambar 2.1 Mikrokontroler ATMEL AT89S8252 ………. 4
Gambar 2.2 Memori data dan memori program pada mikrokontroler AT89S8252 ……….. 5
Gambar 2.3 Peta memori dan metode untuk mengakses isinya ………. 6
Gambar 2.4 Akumulator ……… 7
Gambar 2.5 Register B ……….. 7
Gambar 2.6 Program Status Word ……….. 7
Gambar 2.7. Register AUXR1 ……….... 9
Gambar 2.8. Register TCON ………. 11
Gambar 2.9 Rgister TMOD ………... 12
Gambar 2.10 Lambang Skematik LED ………. 15
Gambar 2.11 Koneksi anoda dan katoda matrik LED ………... 16
Gambar 2.12 Transistor sebagai saklar ……….. 19
Gambar 2.13 Simbol Limit Switch ……… 19
Gambar 3.1. Diagram Blok penampil nomor dan letak tempat duduk pada bus berbasis mikrokontroler AT89S252 ………... 20
Gambar 3.2 Bentuk fisik penampil nomor tempat duduk ……….. 22
Gambar 3.3 LED yang dihubung seri dengan limit switch ……… 23
Gambar 3.4 Penempatan letak LED dan limit switch ……… 23
Gambar 3.5 Bentuk fisik pemutus arus pada limit switch ………. 23
Gambar 3.6 Penggerak Matrik LED ……….. 24
Gambar 3.7 Rangkaian penampil nomor tempat duduk penumpang dihubung paralel dengan rangkaian penunjuk letak tempat duduk penumpang ………... 25
Gambar 3.8 Rangkaian driver matrik LED dengan anggapan VCE transistor diport 1 adalah 0,5V ……….………... 26
Gambar 3.9 Rangkaian driver matrik LED dilihat dari port 1 ……….……. 27
Gambar 3.11 Flow chart penampil nomor tempat duduk pada Bus
berbasis mikrokontrolerAT89S8252 ………. 29
Gambar 4.1. Driver matrik LED ……… 31
Gambar 4.2 Penampil nomor tempat duduk ……….. 32
DAFTAR TABEL
Tabel 2.1 Register Bank Select ………... 8
Tabel 2.2 Fungsi khusus Port 1 ………... 10
Tabel 2.3 Fungsi alternatif Port 3 ………... 10
Tabel 2.4 Fungsi-fungsi Register TMOD ………... 12
Tabel 2.5 Fungsi Pin Matrik LED 4 x 8 ……….... 17
Tabel 4.1 Besar Tegangan dengan kondisi 2 buah LED menyala ………... 30
Tabel 4.2 Besar Arus dengan kondisi 2 buah LED menyala ……….. 30
Tabel 4.3 Penampil Nomor Tempat Duduk ……….... 33
DAFTAR LAMPIRAN
Rangkaian Penampil Nomor Tempat Duduk pada Bus Berbasis
SISTEM IDENTIFIKASI TIKET PENUMPANG OTOMATIS :
PENAMPIL NOMOR TEMPAT DUDUK PADA BUS BERBASIS
MIKROKONTROLER AT89S8252
Intisari
Kemudahan mengetahui nomor dan letak tempat duduk penumpang didalam bus, saat ini belum mendapat perhatian penuh dari penyedia jasa angkutan bus, sehingga menyebabkan ketidakteraturan/kekeliruan tempat duduk. Oleh karena itu akan dirancang dan dibuat perangkat untuk menampilkan nomor dan letak tempat duduk secara otomatis sehingga penumpang dapat mengetahui tempat duduk dengan lebih mudah.
Untuk menampilkan nomor tempat duduk penumpang digunakan matrik LED sedangkan untuk menunjukkan letak tempat duduk penumpang dipasang LED pada tempat duduk dengan berbasis mikrokontroler AT89S8252.
Hasil dari tugas akhir ini yaitu sebuah matrik LED yang dapat berfungsi dengan baik untuk menampilkan nomor tempat duduk jika penumpang telah masuk dalam bus lewat pintu depan dan LED pada tempat duduk penumpang tersebut akan menyala secara otomatis.
THE AUTOMATIC PASSENGER TICKET IDENTIFICATION
SYSTEM : SEAT NUMBER DISPLAY IN THE BUS BASED ON
MICROCONTROLLER AT89S8252
Abstract
The simplicity to knowing the number and seat position of passengers in the bus, today have not been a concern from bus transportation service provider, so that causing irregularity / mistake of seat. Therefore will be designed and made the application to showing the number and position of seat by automatically so that the passengers can know their seat by easily.
To showing the passengers seat number by using LED matrix while to showing the passengers seat position is by installing LED in the seat with based on microcontroller AT89S8252.
The result from this final project is a LED matrix that can functionalizing better to showing the number seat passenger if the passenger has been enter in the bus through front door and LED on these seat passenger will be flaming automatically.
BAB I
PENDAHULUAN
1.1. Judul
Penampil Nomor Tempat Duduk pada Bus Berbasis Mikrokontroler
AT89S8252
1.2. Latar Belakang Masalah
Kemudahan untuk mengetahui nomor dan letak tempat duduk penumpang
pada bus, saat ini belum mendapat perhatian penuh dari penyedia jasa angkutan bus,
sehingga menyebabkan ketidakteraturan/kekeliruan tempat duduk. Hal ini
disebabkan, karena di dalam bus tersebut belum tersedia alat untuk menampilkan
nomor dan letak tempat duduk. Oleh karena itu untuk mengatasi masalah tersebut,
maka perlu dibuat alat untuk menampilkan nomor dan letak tempat duduk agar
penumpang dapat mengetahui tempat duduknya dengan lebih mudah.
Penelitian ini bertujuan untuk membuat suatu perangkat yang dapat
digunakan untuk menampilkan nomor dan letak tempat duduk penumpang secara
otomatis. Alat yang dipakai untuk menampilkan nomor tempat duduk penumpang
yaitu matrik LED dan untuk menunjukkan letak tempat duduk menggunakan LED
yang diletakkan di tempat duduk sedangkan mikrokontroler AT89S8252 digunakan
sebagai pemroses data. Hasil akhir penelitian yang akan dicapai yaitu perangkat
untuk menampilkan nomor dan letak tempat duduk penumpang secara otomatis.
1.3. Tujuan dan Manfaat
Tujuan yang akan dicapai yaitu membuat perangkat untuk menampilkan
nomor dan letak tempat duduk penumpang secara otomatis yang menggunakan
matrik LED sebagai tampilan nomor dengan berbasis Mikrokontroler AT89S8252.
Manfaat yang akan dicapai yaitu tersedianya peralatan yang dapat
diaplikasikan dalam industri transportasi untuk menampilkan nomor dan letak
1.4. Batasan Masalah
Batasan masalah dari penelitian yang dilakukan yaitu :
a. Untuk menampilkan nomor dan letak tempat duduk penumpang secara
otomatis yang telah masuk di dalam bus lewat satu pintu depan.
b. Tampilan output berupa matrik LED sebagai penampil nomor tempat
duduk dan LED yang diletakkan pada tempat duduk sebagai penunjuk
letak tempat duduk penumpang. Matrik LED diberi nomor-nomor yang
mewakili nomor tempat duduk penumpang. Hal ini dibuat untuk
mempermudah penumpang untuk mengetahui tempat duduknya.
c. Untuk pemroses data menggunakan mikrokontroler AT89S8252.
1.5. Sistematika Penulisan
Sistematika penulisan laporan Tugas akhir ini terdiri dari :
BAB I : PENDAHULUAN
Pendahuluan berisi judul, latar belakang masalah, tujuan, manfaat,
batasan masalah dan sistematika penulisan laporan.
BAB II : DASAR TEORI
Bab ini menguraikan teori singkat dalam merancang perangkat
untuk menampilkan nomor tempat duduk penumpang yang
menggunakan matrik LED sebagai tampilan dan penunjuk letak
tempat duduk penumpang dengan berbasis mikrokontroler
AT89S8252.
BAB III : PERANCANGAN
Pada bab ini, akan dirancang perangkat berbasis mikrokontroler
AT89S8252 untuk menampilkan nomor tempat duduk yang
menggunakan matrik LED sebagai tampilan dan penunjuk letak
BAB IV : HASIL DAN PEMBAHASAN
Pada bab ini berisi hasil dan pembahasan perangkat yang telah
dibuat.
BAB V : KESIMPULAN DAN SARAN
Bab yang terakhir ini merupakan kesimpulan dari perangkat yang
telah dibuat dan berisikan saran-saran untuk pengembangan
menuju yang lebih baik.
BAB II
DASAR TEORI
2.1. Mikrokontroler AT89S8252
Mikrokontroler AT89S8252 adalah mikrokontroler CMOS 8-bit yang
berkemampuan tinggi dengan 8K bytes in-sistem programmable Flash Memory.
AT89S8252 ini dibuat dengan teknologi Atmel memori non-volatile. AT89S8252
yang dipakai memiliki fitur: 8K byte Downloadable Flash Memori, 2K byte
EEPROM, 256 byte RAM internal, 32 jalur I/O, 3 buah Timer/Counter 16 bit,3
level program memori lock, Programmable Watchdog Timer, dual data pointer,
Programmable UART (serial port), dan SPI Serial Interface..
AT89S8252 9 18 19 29 30 31 40 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 PSEN ALE/PROG EA/VPP VCC P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4/SS P1.5/MOSI P1.6/MISO P1.7/SCK P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
2.1.1. Organisasi Memori AT89S8252
Memori merupakan rangkaian elektronis yang digunakan untuk menyimpan
informasi secara temporer atau permanen. Memori biasanya digunakan untuk
menyimpan data yang diperoleh dari saluran masukan-keluaran atau untuk
menyimpan program dari sebuah sistem.
Mikrokontroler AT89S8252 memiliki ruang alamat untuk memori program
dan memori data yang terpisah, seperti terlihat pada (Gambar 2.2.) di bawah. Setiap
memori program dan memori data eksternal dapat dialamati hingga 64Kbytes.
Gambar 2.2 Memori data dan memori program pada mikrokontroler AT89S8252
Pemisahan program dan data memori ini memungkinkan pengaksesan data
memori dengan pengalamatan 8 bit, sehingga dapat langsung disimpan dan
dimanipulasi oleh mikrokontroler dengan kapasitas akses 8 bit. Namun demikian,
untuk pengaksesan data memori dengan alamat 16 bit, harus dilakukan dengan
menggunakan register DPTR (Data Pointer). Program memori hanya dapat dibaca
saja (diletakkan pada ROM/ EPROM). Untuk membaca program memori eksternal,
mikrokontroler akan mengirim sinyal PSEN (Program Store Enable). Sebagai data
operasi pembacaan data) dan WR (Write, melakukan operasi penulisan data). Bila
diperlukan, program memori dan eksternal data dapat dikombinasikan dengan
menyatukan sinyal RD dan PSEN ke dalam input gerbang AND dan menggunakan
output dari gerbang tersebut sebagai sinyal read (baca) untuk program memori atau
eksternal data.
2.1.2. Memori Program
Memori program atau sering disebut dengan flash memory pada
mikrokontroler AT89S8252 memiliki kapasitas sebesar 8KByang hanya bisa dibaca
saja. Bila pin dihubungkan pada ground program memori dapat diakses secara
eksternal, bila pin EAdihubungkan pada VCC program memori 4KB dapat diakses
langsung pada alamat 0000H-FFFH secara internal dan pada alamat 1000H-FFFFH
secara eksternal.
2.1.3. Memori Data
Memori data menggunakan memori jenis RAM. RAM merupakan memori
yang dapat dibaca dan ditulis. RAM dipakai sebagai penyimpan data pada saat
program bekerja. Isi RAM akan hilang bila catu daya mati (Volatile Memory).
Mikrokontroler AT89S8252 memiliki memori data 256 bytes dan dapat
diakses secara pengalamatan langsung dan pengalamatan tidak langsung.
Pengoperasian stack adalah contoh dari pengalamatan tidak langsung, jadi 128 bytes
RAM data tersedia sebagai ruang stack. Peta memori data dapat dilihat pada
(Gambar 2.3.).
Mikrokontroler AT89S8252 memiliki tambahan fitur yang tidak dimiliki
jenis MCS-51. Salah satunya adalah EEPROM yang terpasang pada chip (on-Chip).
EEPROM yang ditanamkan pada MCS8252 memiliki kapasitas sebesar 2 kiloByte
yang terletak pada alamat 000h sampai 7FFh. Untuk mengakses EEPROM on-chip
ini dilakukan pengaturan dengan mengeset bit EEMEN pada register WMCON.
2.1.4. Register Fungsi Khusus (Special Function Register)
Peta dari memori on-chip disebut dengan ruang register fungsi khusus
(Special Function Register).
1. Akumulator
ACC atau akumulator yang menempati lokasi E0H digunakan sebagai
register untuk penyimpanan data sementara dan dapat dialamati secara bit
addressable.
Bit 7 6 5 4 3 2 1 0
Name ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0
Gambar 2.4 Akumulator
2. Register B
Register B menempati lokasi F0H digunakan selama operasi perkalian dan
pembagian, untuk intruksi lain dapat diperlakukan sebagai register scratch pad
(papan coret-coret) dan register B juga dapat dialamati secara bit addressable.
Bit 7 6 5 4 3 2 1 0
Name B.7 B.6 B.5 B.4 B.3 B.2 B.1 B0
Gambar 2.5 Register B
3. Program Status Word (PSW)
Register PSW (lokasi D0H) mengandung informasi status program seperti
terlihat pada (Gambar 2.6.).
Bit 7 6 5 4 3 2 1 0
Fungsi bit pada PSW sebagai berikut:
a. CY (carry flag): bit ini akan diset oleh sejumlah instruksi matematika seperti
ADD, ADDC, SUBB, MUL, DIV dan juga termasuk instruksi untuk rotasi.
b. AC (auxillary carry): bit ini akan diset pada penjumlahan dua buah bilangan BCD
(Binary Code Desimal) yang menghasilkan carry dari bit ketiga ke bit keempat
atau jika nibble bawah berada pada range 0AH sampai 0FH.
c. F0 (flag 0): flag untuk fungsi umum.
d. RS0, RS1 (register bank select): dua bit RS1 Dan RS0 digunakan untuk memilih
bank register yang penggunaannya ditunjukkan pada tabel berikut:
Tabel 2.1 Register Bank Select
e. OV (overflow flag): bit ini akan diset oleh sejumlah intruksi aritmetika, tetapi
biasanya instruksi yang sering membuat bit ini menjadi 1 adalah instruksi ADD
dan SUBB.
f. P (parity flag): bit ini akan diset menjadi satu jika bit-bit 1 pada akumulator
berjumlah ganjil. Sebagai contoh jika isi akumulator adalah 15H (00010101) maka
bit P akan diset menjadi 1 karena jumlah bit satu pada akumulator adalah 3 buah.
4. Stack Pointer
Register Stack Pointer (lokasi 81H) merupakan register dengan panjang
8-bit, digunakan dalam proses simpan dan ambil dari/ ke stack. Dan operasi yang
sering melibatkan stack pointer adalah PUSH, POP, LCALL, ACALL, RET, dan
RETI.
Register Data Pointer terdiri dari DPTR untuk byte tinggi (DPH) dan byte
rendah (DPL). Pada AT89S8252 memiliki 2 buah DPTR untuk memudahkan
pengaksesan baik internal maupun eksternal, yaitu DP0 di lokasi 82H-83H dan DP1
di lokasi 84H-85H. Untuk menggunakannya harus menginisialisasi bit DPS pada
register AUXR1 (lokasi A2H). Bila DPS = 0, maka memilih register DPTR
DP0L-DP0H dan bila DPS = 1, maka memilih register DPTR DP1L-DP1H. Register
AUXR1 dapat dilihat pada (Gambar 2. 7.).
Gambar 2.7. Register AUXR1
6. Control Register
Register-register IP, IE, TMOD, dan TCON berisi bit-bit kontrol dan status
untuk sistem interupsi, pencacah/ pewaktu dan serial port
7. Port masukan/keluaran (I/O port)
Sama seperti keluarga MCS-51 lainnya mikrokontroler AT89S8252
memiliki 4 port masukan/keluaran (I/O port) yang diberi nama port 0, port 1, port 2
dan port 3. Setiap port selain sebagai jalur masuk atau keluar data, juga memiliki
karakteristik masing-masing.
Port 0 merupakan port keluaran/masukan (I/O) bertipe open drain
bidirectional. Port 0 juga dapat dikonfigurasikan sebagai bus alamat data bagian
rendah selama proses pengaksesan memori data dan program eksternal. Port ini
berada di alamat 80H pada SFR.
Port 1 merupakan port I/O dwiarah yang dilengkapi dengan pull-up internal.
Jika ‘1’ dituliskan ke kaki-kaki port 1, masing-masing kaki akan di pull high
dengan pull up internal sehingga dapat digunakan sebagai masukan. Port 1 berada di
verifikasi flash. Port 1 mikrokontroler Atmel AT89S8252 terdapat beberapa fungsi
khusus. Fungsi khusus tersebut dijelaskan pada tabel berikut.
Tabel 2.2 Fungsi khusus Port 1
Port Pin Fungsi Khusus
P1.0 T2 (masukan luar untuk Timer/Counter 2)
P1.1 T2 EX (Timer/Counter 2 capture/reload trigger dan control arah) P1.2 -
P1.3 -
P1.4 SS (Slave port select input)
P1.5 MOSI (Master data output, Slave data input untuk kanal SPI) P1.6 MISO (Master data input, Slave dataoutput untuk kanal SPI) P1.7 SCK (Master clock output, Slave clockinput untuk kanal SPI)
Port 2 berada di alamat A0H dan memiliki karakteristik yang mirip dengan
port 1. Port 2 akan memberikan byte alamat bagian tinggi selama pengambilan
instruksi dari memori program eksternal dan selama pengaksesan memori data
eksternal yang menggunakan perintah dengan alamat 16-bit (misalnya: MOVX
@DPTR). Port ini juga menerima alamat begian tinggi selama pemrograman dan
verifikasi flash.
Port 3 terletak di alamat B0H. Selain berfungsi untuk menerima
sinyal-sinyal kontrol untuk pemrograman dan verifikasi flash, dapat juga digunakan untuk
fungsi-fungsi yang lain seperti terlihat pada tabel berikut :.
Tabel 2.3 Fungsi alternatif Port 3
Pin Port Fungsi Alternatif
P3.0 RXD (masukan port serial) P3.1 TXD (keluaran port serial) P3.2 INT0 (interupsi 0 eksternal)
8. Timer / Counter
Mikrokontroler AT89S8252 mempunyai tiga buah register timer/counter 16
bit , Timer 0,Timer 1 serta Timer 2. Pada saat sebagai Timer, register naik satu
(increment) setiap satu cycle. Jika digunakan osilator 12 Mhz, maka satu cycle sama
dengan 1/12 frekuensi osilator = 1µs. Pada saat sebagai counter, register naik satu
(increment) pada saat transisi 1 ke 0 dari input eksternal, T0 atau T1.
Apabila periode tertentu telah dilampaui, timer/counter segera
menginterupsi mikrokontroler untuk memberitahukan bahwa perhitungan periode
waktu telah selesai dilaksanakan. Periode waktu timer/counter secara umum
ditentukan oleh persamaan berikut:
* Sebagai T/C 8 bit
T =
(
255−TLx)
*1µs dimana TLx adalah isi register TL0 atau TL1.* Sebagai T/C 16 bit
T =
(
65535−THxTLx)
*1µsTHx = isi register TH0 atau TH1, TLx = isi register TL0 atau TL1
9. Register TCON
Pengontrol kerja timer/counter ada pada register timer control (TCON).
Adapun definisi dari bit-bit pada timer control adalah sebagai berikut:
Bit 7 6 5 4 3 2 1 0
Name TF1 TR1 TF0 TR0 IE1 IT0 IE0 IT0
Gambar 2.8. Register TCON
a.TF1 (Timer 1 Overflow)
Bit ini akan otomatis diset menjadi 1 jika timer 1 telah terjadi overflow, dan
akan dinolkan pada saat menjalankan rutin interupsi.
b. TR1 (Timer 1 Run control bit)
Bit ini digunakan untuk megaktifkan atau menonaktifkan kerja dari
c. TF0 (Timer 0 overflow)
Bit ini akan otomatis diset menjadi 1 jika timer 0 telah terjadi overflow, dan
akan dinolkan pada saat menjalankan rutin interupsi.
d. IE1 (Interrupt 1 Edge flag)
Di set oleh hardware ketika interupsi eksternal mendeteksi adanya edge. Di
clear ketika proses interupsi.
e. IT1 (Interrupt 1 Type control bit)
Di set / clear oleh software untuk menentukan pen-triger-an interrupsi
eksternal pada transisi turun / low level.
f. IE0 (Interrupt 0 Edge flag)
Di set oleh hardware ketika interupsi eksternal mendeteksi adanya edge. Di
clear ketika ada interupsi.
g. IR0 (Interrupt 0 Type control bit)
Di set/clear oleh perangkat lunak untuk menentukan pen-triger-an interrupsi
eksternal pada transisi turun / low level.
10.Register TMOD
Pengontrol pemilihan mode operasi timer/counter ada pada register timer mode
(TMOD) . Definisi bit-bitnya adalah sebagai berikut:
Bit 7 6 5 4 3 2 1 0
Name GATE(1) C/T(1) M1(1) M0(1) GATE(0) C/T(0) M1(0) M0(0)
Gambar 2.9 Register TMOD
Keterangan:
Tabel 2.4 Fungsi-fungsi Register TMOD
Simbol Fungsi
GATE
Gate control set. Timer/counter ‘x’ akan aktif jika pin “INT” high dan kondisi pin “TRx” sedang set.
Gate control clear. Timer”x” akan aktif jika “TRx” set
C / T Selector timer/counter. Clear untuk mode timer ( input dari internal clock ) dan set untuk mode counter (input dari pin “Tx” )
M1 Bit untuk memilih mode timer/counter
11.Mode Timer/Counter
a. Mode 0
Pada mode ini timer bekerja sebagai timer 13 bit yang terdiri dari counter
8-bit dengan pembagi 32 (pembagi 5 8-bit). Setelah perhitungan selesai, mikrokontroler
akan mengeset Timer Interrupt Flag (TF1). Dengan membuat GATE = 1, timer
dapat dikontrol oleh input dari luar (INT1), untuk fasilitas pengukuran lebar pulsa.
Register 13 bit yang digunakan terdiri dari 8 bit dari TH1 dan 5 bit bawah dari TL1
( bit 6,7,8 tidak digunakan ). Mengeset TR1 tidak akan menghapus isi register.
Operasi pada mode 0 untuk Timer 0 dan Timer 1 adalah sama.
b. Mode 1
Mode 1 sama dengan mode 0 kecuali register timer akan bekerja dalam
mode 16 bit.
c. Mode 2
Mode 2 menyusun register timer sebagai 8 bit counter (TL1) dengan
kemampuan pengisian otomatis. Overflow dari TL1 tidak hanya men-set TF1 tetapi
juga mengisi TL1 dengan isi TH1 yang diisi sebelumnya oleh software. Pengisian
ulang ini tidak mengubah nilai TH1.
d. Mode 3
Dalam operasi mode 3 timer 1 akan berhenti, hitungan yang sedang berjalan
dipegang. Efeknya sama seperti mengatur TR1 = 0. Timer 0 dalam mode 3
membuat TL0 dan TH0 sebagai dua counter terpisah. TL0 menggunakan kontrol bit
timer 0 yaitu C/T, GATE, TR0, INT0 dan TF0.. TH0 berfungsi hanya sebagai timer
dan mengambil alih penggunaan TR1 dan TF1 dari timer 1 dan sekarang TH0
mengontrol interupsi timer 1. Mode 3 diperlukan untuk aplikasi yang membutuhkan
ekstra timer/counter 8 bit. Dengan timer 0 dalam mode 3, mikrokontroler
AT89S8252 seperti memiliki 3 timer/counter. Saat timer 0 dalam mode 3, timer 1
dapat dihidupkan atau dimatikan, atau dapat digunakan oleh port serial sebagai
12.Register WMCON
Nilai SFR ini saat reset adalah 0000 0000b. Adapun bit-bit adalah sebagai
berikut :
PS2 PS1 PS0 EEMWE EEMEN DPS WDTTRST WDTEN
Keterangan :
a. PS2, PS1, PS0 adalah bit prescaler untuk wacthdog timer.
b. EEMWE adalah pengaktif penulisan EEPROM data memori, harus diset sebelum
penulisan dan bit tersebut harus direset setelah penulisan.
c. EEMEN adalah bit pengaktif pengaksesan data internal EEPROM, harus bernilai 1
saat akan mengakses internal EEPROM dan bernilai 0 saat mengakses memori
eksternal.
d. DPS adalah Data Pointer Select.
e. WDTRST adalah Wacthdog Timer Reset dan bendera EEPROM Ready / busy.
f. WDTEN adalah bit pengaktif Wacthdog Timer.
2.1.5. Mode Pengalamatan dan Instruksi Mikrokontroler
Untuk mengakes data di dalam memori mikrokontroler dapat dilakukan
dengan beberapa mode, yaitu:
1. Direct Addressing Mode (Mode Pengalamatan Langsung)
Pada direct addressing instruksi yang dikeluarkan secara spesifik akan
menyebutkan alamat dari operan yang diproses. Hanya internal Data RAM dan SFR
yang dapat diproses dengan menggunakan direct addressing ini.
Contoh: MOV A,55h.
2. Indirect Addressing Mode (Mode Pengalamatan Tak langsung)
Pada indirect addressing instruksi yang dikeluarkan akan menyebutkan
sebuah register yang berisi alamat dari operan yang akan diproses. Baik internal
maupun eksternal RAM dapat diakses menggunakan indirect addressing ini.
Register alamat untuk 8 bit yang dapat dipakai adalah R0 dan R1 dari bank register,
atau Stack Pointer. Pada pengalamatan 16 bit dapat menggunakan register DPTR
3. Register Addressing Mode (Mode Pengalamatan Register)
Bank register berisi register R0 sampai R7 yang dapat diakses dengan
instruksi-instruksi tertentu dimana hanya akan melibatkan 3 bit register spesifik
yang berisi opcode dari instruksi. Instruksi yang mengakses register dengan cara ini
akan lebih efisien, karena mode ini akan menghilangkan bagian byte alamat. Saat
instruksi ini dieksekusi, satu dari delapan register dari bank register akan diakses.
Contoh : MOV A,R2.
4. Immediate Addressing Mode (Mode Pengalamatan Segera)
Proses pengalamatan ini terjadi pada sebuah instruksi ketika nilai operan
merupakan data yang akan diproses. Biasanya operan tersebut selalu diawali dengan
tanda ‘#’. Contoh : MOV A,# 50H.
2.2. Matrik LED
LED (Light Emitting Diode) merupakan sebuah dioda yang jika diberi
tegangan maju akan memancarkan cahaya. Jika diberi tegangan balik maka piranti
ini akan berfungsi sebagai dioda biasa yakni sebagai saklar dalam kondisi off
(terbuka). LED memiliki tegangan maju (forward voltage) minimum (biasa disebut
VLED) agar dapat menyala. Tegangan maju ini bervariasi untuk masing-masing
LED. Variasi VLED berkisar antara 1,7 V sampai dengan 4,2 V. Namun kebanyakan
LED mempunyai VLED sekitar 2,2V. Ada 3 (tiga) jenis LED yaitu : dengan panjang
1,4 inch, 2,3 inch, 4,6 inch.
Gambar skematik dari LED ditunjukan pada (gambar 2.10).
VCC
R
LED
Berdasarkan jumlah warnanya, ada dua jenis matrik LED yaitu matrik LED
dengan 1 warna dan 2 warna. Matrik LED adalah kumpulan dari sejumlah tertentu
LED yang disusun secara teratur dalam baris dan kolom. Untuk perancangan ini
digunakan matrik LED dengan ukuran (kolom x baris): 4 x 8. Berdasarkan koneksi
anoda dan katoda pada kolom atau baris matrik LED maka matrik LED dibedakan
atas 2 yaitu anoda kolom dan katoda kolom. Dalam perancangan ini koneksi anoda
dan katoda matrik LED seperti terlihat pada (gambar 2.11).
Hal yang perlu diperhatikan dalam perancangan sebuah penampil
menggunakan matrik LED adalah bagaimana membentuk sebuah karakter dengan
menggunakan matrik LED . Untuk membuat semua matrik LED pada baris pertama
menyala semua maka pin 5 (tabel 2.6) diberi logika 1 (12 V) dan pin pada kolom
1,2,3,4 diberi logika 0 (0V) pin baris yang lain yaitu : 2,3,4,5,6,7,8 di beri logika 0.
Demikian seterusnya dengan kombinasi masukan yang tepat LED pada posisi
kolom dan baris tertentu dapat menyala.
Tabel 2.5 Fungsi Pin Matrik LED 4 x 8
Pin No Keterangan
1 Katoda kolom 1
2 Katoda kolom 2
3 Katoda kolom 3
4 Katoda kolom 4
5 Anoda baris 1
6 Anoda baris 2
7 Anoda baris 3
8 Anoda baris 4
9 Anoda baris 5
10 Anoda baris 6
11 Anoda baris 7
12 Anoda baris 8
2.2.1. Penggerak Matrik LED
Transistor merupakan piranti elektronika yang dapat berfungsi sebagai
saklar elektronis. Dari konfigurasi dasarnya transistor mempunyai 3 daerah kerja
yang berbeda yaitu : daerah aktif, daerah terpancung (cut-off) dan daerah saturasi.
Pada saat transistor berfungsi sebagai saklar, transistor bekerja pada dua daerah
Pada daerah aktif, besarnya arus basis (IB) menetukan besarnya arus
kolektor (Ic). Besarnya arus kolektor sebanding dengan besarnya β (Beta) atau
dapat dikatakan harga β adalah perbandingan antara arus kolektor dan arus basis.
Pada daerah ini kolektor diberi prasikap tegangan balik (Reverse) dan emitor diberi
prasikap tegangan maju (forward).
Β =
Ib Ic
………..(2.1)
atau Ic = β x Ib ………...(2.2)
Besar Ib adalah
Ib =
Rb Vbe
Vb−
………...(2.3)
Vce = Vcc- Ic x Rc .……….(2.4)
Pada daerah cut-off, basis tidak diberi tegangan atau dengan anggapan arus
basis adalah nol. Dengan tidak adanya arus basis berarti baik kolektor dan emitor
bias balik sehingga,
Ib = 0 ...………(2.5)
Vce(cut-off) = Vcc ………...(2.6)
Karena tegangan VB basis lebih kecil dari pada tegangan VF (untuk
transistor silikon = 0,7V) maka transistor berfungsi sebagai saklar dalam keadaan
terbuka (off) seperti gambar 2.12.a.
Keadaan yang terakhir dari bias transistor adalah saturasi. Pada keadaan ini
arus kolektor cenderung selalu tetap. Pertambahan besarnya arus basis akan
menyebabkan kenaikan arus kolektor dan penurunan tegangan antara kolektor dan
emitor.
Vce= Vce(Sat) ………..(2.7)
Dengan mengabaikan tegangan antara kolektor dan emitor (karena cukup
kecil saat transistor saturasi atau = 0), maka besarnya arus kolektor adalah
Ic(Sat) ≈
Rc Vcc
………...(2.8)
Pada keadaan ini transistor akan berfungsi sebagai saklar dalam keadaan
VCC VB 1 2 3 Rc Ic Rb Ib VCC C E Rc Ic VCC VB 1 2 3 Rc Ic Rb Ib VCC C E Rc Ic
(a) (b)
Gambar 2.12 Transistor sebagai saklar
2.3. Limit Switch
Limit Switch adalah sebuah alat yang berfungsi untuk memutuskan atau
mengalirkan arus listrik. Jika limit switch dalam keadaan terhubung maka arus
listrik dapat mengalir (kondisi ON) sedangkan bila limit switch dalam keadaan
terbuka maka tidak dapat mengalirkan arus listrik (kondisi OFF). Pada penelitian
ini limit switch digunakan untuk menyambung dan memutuskan arus listrik pada
LED yang diletakkan di tempat duduk penumpang. Simbol limit switch ditunjukkan
pada (Gambar 2.13).
1 2
BAB III
PERANCANGAN
3.1 Perancangan perangkat keras (Hardware)
Secara keseluruhan, perancangan perangkat keras dapat dilihat pada diagram blok (Gambar 3.1).
Port 1 Mikrokontroler AT89S8252
Port 3 DRIVER
DRIVER
LIMIT SWITCH PENUNJUK TEMPAT
DUDUK PENAMPIL NOMOR TEMPAT DUDUK (matrik LED 4x8) BARCODE READER
Gambar 3.1. Diagram Blok penampil nomor dan letak tempat duduk pada
bus berbasis mikrokontroler AT89S252
Prinsip kerja penampil nomor dan letak tempat duduk pada bus berbasis
diproses dengan mikrokontroler AT89S8252, maka matrik LED 4 x 8 akan
menampilkan nomor sekaligus letak tempat duduk penumpang. Pada awal LED
akan menyala berkedip selama 10 detik setelah itu LED menyala. Jika penumpang
telah duduk maka LED di tempat duduk penumpang akan padam dan jika
penumpang berdiri maka LED tersebut akan menyala kembali karena dipasang limit
switch di tempat duduk penumpang sebagai pemutus arus. Namun jika ada
penumpang berikut telah masuk dalam bus maka LED pada penampil dan tempat
duduk yang semula menyala akan padam secara otomatis. Hal ini dibuat agar LED
yang menandakan nomor tempat duduk dan letak tempat duduk penumpang yang
baru memasuki bus dapat menyala berkedip-kedip selama 10 detik, karena jika LED
yang menandakan nomor tempat duduk dan letak tempat duduk tetap menyala dan
tidak dipadamkan maka LED tersebut akan ikut berkedip. Hal tersebut juga dibuat
supaya dapat menghemat daya pada bus.
Dari Gambar 3.1 dapat diketahui bahwa penampil nomor dan letak tempat
duduk pada bus berbasis mikrokontroler AT89S8252 ini akan menampilkan nomor
tempat duduk penumpang pada matrik LED 4 x 8 yang diparalelkan dengan LED
(32 buah) yang akan menunjukkan letak tempat duduk penumpang dan limit switch
(32 buah) sebagai pemutus arus. Transistor BD 139 sebagai driver (12 buah).
Mikrokontroler AT89S8252 merupakan otak dari penampil nomor tempat duduk
pada matrik LED ini, karena semua output yang akan dikeluarkan harus diproses
dan dikontrol melalui IC AT89S8252.
3.1.1 Matrik LED
Matrik LED adalah kumpulan dari sejumlah tertentu LED yang disusun
secara teratur dalam baris dan kolom. Dalam perancangan ini digunakan matrik
LED dengan ukuran (kolom x baris): 4 x 8 sebagai penampil nomor tempat duduk
penumpang. Berdasarkan koneksi anoda dan katoda pada kolom atau baris matrik
LED maka matrik LED dibedakan atas 2 yaitu anoda kolom dan katoda kolom.
K O L O M 2 K O L O M 3 K O L O M 4 K O L O M 1 5
1 2 3
6 7
9 10 11
18 19 20 16 15
14
27 28
21 22 24
26
29 30 31 32 25 23 17 13 12 8 4 BARIS 2 BARIS 1 BARIS 3 BARIS 4 BARIS 5 BARIS 6 BARIS 7 BARIS 8
Gambar 3.2 Bentuk fisik penampil nomor tempat duduk
Pada awalnya LED akan menyala berkedip sesuai dengan nomor tempat
duduk penumpang selama 10 detik setelah itu LED menyala. Jika LED telah
menyala menandakan penumpang telah masuk bus dan bila ada penumpang
berikutnya masuk dalam bus maka LED tersebut akan padam secara otomatis.
Namun bila penumpang telah penuh, maka LED yang masih menyala dimatikan
secara manual dengan mematikan catu daya yang berada di dalam bus.
3.1.2 Limit Switch
Pada perancangan ini limit switch digunakan untuk menyambung dan
Pada perancangan penunjuk letak tempat duduk penumpang digunakan LED yang
dihubung seri dengan limit switch seperti yang ditunjukkan pada (Gambar 3.3).
LED 2
1
2
Gambar 3.3 LED yang dihubung seri dengan limit switch
Pada perancangan ini LED dan limit switch di letakkan seperti yang
ditunjukkan pada gambar 3.4.a (tampak dari samping) dan gambar 3.4.b (tampak
dari depan)
LED LED
SW
SW
(a) (b)
Gambar 3.4 Penempatan letak LED dan limit switch
Untuk membuat limit switch dalam kondisi OFF saat penumpang duduk yaitu
dengan meletakkan sepotong alumunium yang dihimpitkan pada pegas seperti yang
ditunjukkan pada (Gambar 3.5).
Bahan Alumunium
Limit switch diatur pada kondisi awal yaitu terhubung (kondisi ON). Jika
penumpang telah duduk maka LED akan padam, karena bahan alumunium akan
menyentuh limit switch (kondisi OFF) dan jika penumpang berdiri maka bahan
alumunium akan terdorong ke atas oleh pegas sehingga limit switch kembali pada
kondisi terhubung (LED menyala kembali).
3.1 3 Penggerak Matrik LED
Dalam perancangan ini, sebagai penggerak (driver) matrik LED menggunakan
transistor BD 139 karena transistor tipe ini dapat bekerja dengan arus kolektor
maksimal 3A dalam bentuk arus pulsa. Menurut data sheet (lembar data), matrik
LED dapat diberi arus sebesar 100mA untuk duty cycle 10 persen. Dalam
perancangan ini digunakan matrik LED yang memiliki satu warna dengan common
cathode. 12V 47 ohm 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 100 ohm 47 ohm 47 ohm 47 ohm 47 ohm 47 ohm 47 ohm 47 ohm 47 ohm 47 ohm 47 ohm 47 ohm P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P3.4 P3.5 P3.6 P3.7 P1.7
Rangkaian penampil nomor tempat duduk penumpang dihubung paralel
dengan rangkaian penunjuk letak tempat duduk penumpang seperti ditunjukkan
pada (Gambar 3.7).
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
L E D 1
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
L E D 2
1 2 1 2 1 2 1 2 Port 1 Port 3
Gambar 3.7 Rangkaian penampil nomor tempat duduk penumpang dihubung paralel
dengan rangkaian penunjuk letak tempat duduk penumpang
Pada Gambar 3.7 LED 1 digunakan untuk menandakan nomor tempat duduk
penumpang diparalelkan dengan LED 2 yang digunakan untuk menandakan letak
tempat duduk penumpang. LED 1 menyala maka LED 2 juga menyala jika limit
switch diatur pada kondisi awal yaitu terhubung (kondisi ON). Apabila penumpang
duduk di tempat duduknya maka limit switch pada kondisi terbuka sehingga LED
padam (kondisi OFF) dan bila penumpang berdiri maka limit switch kembali pada
Pada saat masukan dari port 1 adalah 5 V, maka transistor berfungsi sebagai
saklar dalam keadaan tertutup, maka penggerak matrik LED dapat digambarkan
seperti pada (Gambar 3.8).
VCC 47 ohm D1 100 ohm 47 ohm D2 Q1 BD139 1 2 3 Q2 BD139 1 2 3 Port 1 Port 3
Gambar 3.8 Rangkaian driver matrik LED dengan anggapan VCE transistor diport 1
adalah 0,5V
Besarnya hambatan kolektor dan basis adalah :
VRC = VCC –VCE – VLED ……….…………..(3.1)
VRC = 12 V – 0,5 V – 2,1 V
= 9,4 V
Dengan VCE = 0,5 V pada saat transistor saturasi dan besarnya arus yang mengalir
melalui matrik LED maksimal 100 mA (dari data sheet), maka nilai RC dapat dicari
ILED≈ IRC = 100 mA
Rc = VRC / IRC ………..(3.2)
= 9,4 V / 100 mA = 94 Ohm
Besarnya hambatan kolektor (Rc) adalah 94 Ohm. Pada perancangan penggerak
matrik LED, hambatan pada kolektor yang digunakan adalah 100 Ω karena untuk
mencari hambatan tersebut di pasaran lebih mudah, maka besarnya nilai IRC adalah :
IRC = VRC / RC ………...3.3)
IRC = 9,4 V / 100 Ω
VCC 100 ohm D1 47 ohm Q1 BD139 1 2 3 D2 Port 1
Gambar 3.9 Rangkaian driver matrik LED dilihat dari port 1
Untuk perancangan ini tegangan VB sebesar 5 V maka besar nilai RB dapat dicari :
VB = VRB +VBE +VLED ……….……...(3.4)
VRB = VB–VBE–VLED = 5 V – 0,7 V – 2,1 V = 2,2 V
VRB = 2,2 V (tegangan yang melewati port 1 atau baris)
Besarnya nilai RB:
RB = VRB / IB ……….(3.5)
RB = 2,2 V / 50 mA = 44 Ohm
Besarnya hambatan basis (RB) yang digunakan dalam perancangan penggerak
matrik LED adalah 47 Ω karena untuk mencari hambatan tersebut di pasaran lebih
mudah dan untuk menjamin agar transistor tetap dalam keadaan saturasi saat
tegangan keluaran port 1 dan port 3 pada keadaan minimum.
Besarnya nilai IRB pada baris :
IRB pada baris = VRB pada baris / RB ………...……(3.6)
= 2,2 V / 47 Ω
= 46 mA
Pada Gambar 3.10, tegangan yang melewati RB yaitu sebesar :
VB = VRB pada kolom + VBE ...(3.7)
VRB pada kolom = VB – VBE
= 5 V – 0,7 V
= 4,3 V
IRB pada kolom = VRB pada kolom / RB
= 4,3 V / 47 Ω
= 91,5 mA
3.2 Perancangan perangkat lunak (Software)
Sistem mikrokontroler AT89S8252 dapat bekerja setelah program di
download. Program ini berisi intruksi-instruksi yang akan dijalankan oleh
mikrokontroler.
Dalam perancangan perangkat lunak ada beberapa hal yang perlu
diperhatikan yaitu proses pengolahan data input didalam sistem mikrokontroler
AT89S8252, dan proses pengendalian yang diinginkan.
1. Proses pengolahan data
Proses pengolahan data input terdiri dari: pengolahan data nomor tempat
duduk penumpang.
2. Proses pegendalian
Mengaktifkan matrik LED.
3. Menampilkan nomor dan letak tempat duduk penumpang pada matrik LED
(LED menyala berkedip selama 10 detik, setelah itu LED menyala). Jika ada
penumpang berikutnya yang masuk ke bus lewat pintu maka LED tersebut
yang semula menyala akan padam.
Dari hal-hal diatas dapat dibuat Flow chart dari penampil nomor tempat
3.2.1 Flow Chart
Flow chart digunakan untuk mempermudah dalam perancangan perangkat
lunak dan dijadikan pedoman langkah-langkah kerja pada perancangan penampil
nomor tempat duduk pada bus berbasis mikrokontroler AT89S8252. Flow chart
penampil nomor tempat duduk pada bus berbasis mikrokontroler AT89S8252
ditunjukkan pada (Gambar 3.9).
START
Inisialisasi data dan port
Baca nomor tempat duduk
LED menyala berkedip sesuai nomor tempat duduk
Set waktu Tunda
LED padam LED menyala
ya Ada Masukan
Tiket Barcode ?
Tidak
SELESAI
BAB IV
HASIL DAN PEMBAHASAN
4.1 Driver matrik LED
Driver matrik LED diberi tegangan catu daya sebesar 12 Volt dengan
tegangan masukan 5 Volt pada mikrokontroler AT89S8252 didapatkan data-data
tegangan dan arus sebagai berikut:
Tabel 4.1 Besar Tegangan dengan kondisi 2 buah LED menyala
Bagian-bagian yang diukur Tegangan
LED pada penampil 1,64 V LED pada tempat duduk 1,64 V RB pada baris 1,3 V
RB pada kolom 1,3 V
RC 0,29 V
Catu daya 11,6 V VB 4,82 V
VCE pada baris 7,07 V
VCE pada kolom 2,63 V
VBE 0,61 V
Tabel 4.2 Besar Arus dengan kondisi 2 buah LED menyala
Bagian-bagian yang diukur Arus
LED pada penampil 1,49 mA LED pada tempat duduk 1,49 mA RB pada baris 26,8 mA
RB pada kolom 27,6 mA
Jika dilihat dari tabel 4.1 dan tabel 4.2 didapatkan tegangan maupun arus
yang melewati hambatan basis kecil sehingga dapat disimpulkan bila semua LED
menyala pada saat bersamaan maka LED menyala redup (tidak terang).
Gambar 4.1. Driver matrik LED
Hasil VRB pada baris dan VRB pada kolom yang didapat dari pengukuran dengan
perhitungan secara teori mempunyai besar tegangan yang tidak sama. Hal ini
disebabkan karena arus yang keluar dari mikrokontroler AT89S8252 kecil yaitu
sebesar 26,8 mA pada baris dan 27,6 mA pada kolom. Sehingga LED menyala
tidak terlalu terang.
Berdasarkan data dari tabel 4.1, maka dapat di hitung VRB pada baris,VRB pada
kolom, VRC, VLED :
a. VRB pada baris = IRBpada baris x RB ...(4.1)
= 26,8 mA x 47 Ω
= 1,26 V
b. VRB pada kolom = IRB pada kolom x RB ...(4.2)
c. VRC = IRC pada kolom x RC ...(4.3)
= 2,9 mA x 100 Ω
= 0,29 V
d. VLED = Vcc – VRC – VCE pada baris – VCE pada kolom ...(4.4)
= 11,6 V – 0,29 V – 7,07 V – 2,6 V = 1,64 V
Hasil yang didapatkan dengan pengukuran dan perhitungan mempunyai
besaran yang sama, sehingga dapat disimpulkan bahwa data-data yang diperoleh
dari pengukuran adalah benar.
4.2 Penampil nomor tempat duduk
Jenis matrik LED adalah common cathode. Penampil nomor tempat duduk
ditunjukkan pada (Gambar 4.2).
Gambar 4.2 Penampil nomor tempat duduk
Pada penampil nomor tempat duduk penumpang akan menyala jika diberi
logika 1 (5 Volt) pada baris (port 1.0 sampai port 1.7) dan kolom (port 3.4 sampai
Tabel 4.3 Penampil Nomor Tempat Duduk
Nomor Tempat Duduk Kondisi LED Diberi Logika 1 (5 V)
1 Menyala Port 1.0 dan Port 3.4
2 Menyala Port 1.0 dan Port 3.5
3 Menyala Port 1.0 dan Port 3.6
4 Menyala Port 1.0 dan Port 3.7
5 Menyala Port 1.1 dan Port 3.4
6 Menyala Port 1.1 dan Port 3.5
7 Menyala Port 1.1 dan Port 3.6
8 Menyala Port 1.1 dan Port 3.7
9 Menyala Port 1.2 dan Port 3.4
10 Menyala Port 1.2 dan Port 3.5
11 Menyala Port 1.2 dan Port 3.6
12 Menyala Port 1.2 dan Port 3.7
13 Menyala Port 1.3 dan Port 3.4
14 Menyala Port 1.3 dan Port 3.5
15 Menyala Port 1.3 dan Port 3.6
16 Menyala Port 1.3 dan Port 3.7
17 Menyala Port 1.4 dan Port 3.4
18 Menyala Port 1.4 dan Port 3.5
19 Menyala Port 1.4 dan Port 3.6
20 Menyala Port 1.4 dan Port 3.7
21 Menyala Port 1.5 dan Port 3.4
22 Menyala Port 1.5 dan Port 3.5
23 Menyala Port 1.5 dan Port 3.6
24 Menyala Port 1.5 dan Port 3.7
25 Menyala Port 1.6 dan Port 3.4
26 Menyala Port 1.6 dan Port 3.5
27 Menyala Port 1.6 dan Port 3.6
28 Menyala Port 1.6 dan Port 3.7
29 Menyala Port 1.7 dan Port 3.4
30 Menyala Port 1.7 dan Port 3.5
31 Menyala Port 1.7 dan Port 3.6
Tiap LED pada penampil nomor tempat duduk mempunyai tegangan (VLED)
sebesar 1,64 V dan arus yang melewati LED ( ILED) sebesar 1,49 mA.
4.3 Penampil pada tempat duduk
Penampil pada tempat duduk penumpang menggunakan LED, dimana tiap
LED diparalelkan dengan LED pada penampil nomor tempat duduk sehingga
mempunyai besar tegangan yang sama yaitu sebesar 1,64 V. Penampil pada tempat
duduk ditunjukkan pada (Gambar 4.3.a) tampak dari samping dan (Gambar 4.3.b)
tampak dari depan.
(a). Tampak dari samping (b). Tampak dari depan
Gambar 4.3 Penampil pada tempat duduk
Pada tempat duduk penumpang juga terdapat limit switch yang digunakan
sebagai saklar (kondisi awal yaitu ON).
Dari tabel 4.1, diketahui nilai RC =100 Ω, VRC = 0,29 V maka arus LED (ILED) dapat
dicari dengan rumus :
ILED≈ IRC
ILED = VRC / RC ...(4.5)
LED pada tempat duduk diparalelkan dengan LED pada penampil nomor
tempat duduk maka arus LED pada tempat duduk:
ILED pada tempat duduk = ILED / 2 ...(4.6)
= 2,9 mA / 2
= 1,45 mA
Hasil yang didapat dari perhitungan secara teori mendekati hasil dengan
pengukuran yaitu 1,45 mA ≈ 1,49 mA.
4.4 Alur Kerja Hasil Perancangan
Dari hasil perancangan alat, ketika pertama kali LED pada penampil nomor
tempat duduk menyala berkedip maka LED pada tempat duduk juga akan menyala
berkedip selama 10 detik. Setelah menyala selama 10 detik, LED akan terus
menyala kecuali pada tempat duduk (jika ada penumpang yang duduk pada tempat
duduk tersebut maka LED akan padam karena limit Switch kondisi Off dan
sebaliknya) atau jika penumpang berikutnya memasuki bus maka LED pada
penampil dan tempat duduk yang semula menyala akan padam secara otomatis. Hal
ini dibuat agar LED yang menandakan nomor tempat duduk dan letak tempat duduk
penumpang yang baru memasuki bus dapat menyala berkedip-kedip selama 10
detik, karena jika LED yang menandakan nomor tempat duduk dan letak tempat
duduk yang sebelumnya tidak dipadamkan maka LED tersebut akan ikut berkedip.
Ketika diukur dengan stopwatch, waktu LED yang menyala berkedip yaitu sekitar
10,6 detik. Hal ini disebabkan karena ada delay pada saat program membaca
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan hasil perancangan alat dan analisis data yang diperoleh dari
Alat Penampil Nomor dan Letak Tempat Duduk Pada Bus Berbasis Mikrokontroler
AT89S8252 ini maka didapat beberapa kesimpulan :
1. Alat Penampil Nomor dan Letak Tempat Duduk Penumpang Pada Bus
Berbasis Mikrokontroler AT89S8252 yang telah dibuat dapat bekerja
dengan baik, namun juga mempunyai beberapa kelemahan yaitu:
a. Dua buah LED menyala (satu LED pada penampil dan satu LED pada
tempat duduk) tidak terlalu terang karena arus yang melewati tiap LED
sebesar 1,49 mA.
b. Bila semua LED menyala pada saat bersamaan maka akan redup. Hal
ini disebabkan karena arus yang melewati hambatan kolektor sebesar
2,9 mA, sehingga arus yang melewati semua LED menjadi sangat
kecil.
2. Bentuk alat untuk menampilkan nomor tempat duduk penumpang masih
sangat sederhana karena tiap nomor yang mewakili tempat duduk
penumpang dibuat secara manual.
5.2 Saran untuk Pengembangan Alat
Dari hasil pembuatan perangkat keras dan perangkat lunak yang sudah
dibuat, penulis dapat memberikan saran bahwa masih terdapat beberapa
kekurangan. Untuk menghindari hal yang sama dan pengembangan alat ini maka
disarankan untuk memperhatikan hal-hal berikut dalam pembuatan Penampil
Nomor dan Letak Tempat Duduk pada Bus Berbasis Mikrokontroler AT89S8252 :
1. Pada pembuatan Penampil Nomor dan Letak Tempat Duduk pada Bus
Berbasis Mikrokontroler AT89S8252 dapat juga ditambahkan sensor dan
buzzer. Sensor berupa limit switch yang diletakan pada tempat duduk
kesalahan tempat duduk bila ada penumpang yang sengaja tidak mengikuti
nomor tempat duduknya.
2. Untuk menampilkan nomor tempat duduk penumpang selain
menggunakan matrik LED dapat juga digunakan LCD, sehingga tidak
hanya nomor tapi juga menampilkan huruf sebagai pesan untuk
penumpang. Hal ini dimaksudkan agar tampilannya lebih menarik.
DAFTAR PUSTAKA
1. Malik, Moh. Ibnu. 2003. Belajar Mikrokontroler ATMEL AT89S8252.
Yogyakarta. Gava Media.
2. Putra, Agfianto Eko. 2004. Belajar Mikrokontroler AT89C51/52/55 (Teori
dan Aplikasi). Penerbit Gava Media. Yogyakarta.
3. http://www.fairchildsemi.com, 2001,” Data Sheet”, Fairchild Semiconductor
;program untuk menyalakan matrik LED ;nama program : Liong.asm
;--- LIONG_Mulai:
p1 equ 90h ;port 1 dengan alamat 90H p3 equ 0b0h ;port 3 dengan alamat B0H ratusan equ 100 ;100 X 10000 UD = 1 DETIK cacah EQU -10000
;org 0h ;mulai dari alamat 0h
mov p0,#0
mov p1,#0
mov p2,#0
mov p3,#0
MOV TMOD,#01h
mov r0,#5
; ;
LED_1:
CJNE A,#00110001B,LED_2
lagi_1: setb p1.0
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.0
clr p3.4
CALL DELAY
djnz r0,lagi_1
setb p1.0
setb p3.4
jmp menunggu
LED_2:
CJNE A,#00110010B,LED_3
lagi_2: setb p1.0
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.0
clr p3.5
CALL DELAY
djnz r0, lagi_2
setb p1.0
setb p3.5
jmp menunggu
LED_3:
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.0
clr p3.6
CALL DELAY
djnz r0, lagi3
setb p1.0
setb p3.6
jmp menunggu
LED_4:
CJNE A,#00110100B,LED_5
lagi4: setb p1.0
setb p3.7
CALL DELAY ;lakukan penundaan sesaat
clr p1.0
clr p3.7
CALL DELAY
djnz r0, lagi4
setb p1.0
setb p3.7
jmp menunggu
LED_5:
CJNE A,#00110101B,LED_6
lagi5: setb p1.1
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.1
clr p3.4
CALL DELAY
djnz r0, lagi5
setb p1.1
setb p3.4
jmp menunggu
LED_6:
CJNE A,#00110110B,LED_7
lagi6: setb p1.1
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.1
clr p3.5
djnz r0, lagi6
setb p1.1
setb p3.5
jmp menunggu
LED_7:
CJNE A,#00110111B,LED_8
lagi7: setb p1.1
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.1
clr p3.6
CALL DELAY
djnz r0, lagi7
setb p1.1
setb p3.6
jmp menunggu
LED_8:
CJNE A,#00111000B,LED_9
lagi8: setb p1.1
setb p3.7
CALL DELAY ;lakukan penundaan sesaat
clr p1.1
clr p3.7
CALL DELAY
djnz r0, lagi8
setb p1.1
setb p3.7
jmp menunggu
LED_9:
CJNE A,#00111001B,LED_10
lagi9: setb p1.2
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.2
clr p3.4
CALL DELAY
djnz r0,lagi9
setb p1.2
setb p3.4
jmp menunggu
LED_10:
lagi10: setb p1.2
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.2
clr p3.5
CALL DELAY
djnz r0, lagi10
setb p1.2
setb p3.5
jmp menunggu
LED_11:
CJNE A,#01000010B,LED_12
lagi11: setb p1.2
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.2
clr p3.6
CALL DELAY
djnz r0, lagi11
setb p1.2
setb p3.6
jmp menunggu
LED_12:
CJNE A,#01000011B,LED_13 lagi12: setb p1.2
setb p3.7
CALL DELAY ;lakukan penundaan sesaat
clr p1.2
clr p3.7
CALL DELAY
djnz r0, lagi9
setb p1.2
setb p3.7
jmp menunggu
LED_13:
CJNE A,#01000100B,LED_14
lagi13: setb p1.3
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.3
clr p3.4
CALL DELAY
setb p1.3
setb p3.4
jmp menunggu
LED_14:
CJNE A,#01000101B,LED_15
lagi14: setb p1.3
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.3
clr p3.5
CALL DELAY
djnz r0, lagi14
setb p1.3
setb p3.5
jmp menunggu
LED_15:
CJNE A,#01000110B,LED_16
lagi15: setb p1.3
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.3
clr p3.6
CALL DELAY
djnz r0, lagi15
setb p1.3
setb p3.6
jmp menunggu
LED_16:
CJNE A,#01000111B,LED_17
lagi16: setb p1.3
setb p3.7
CALL DELAY ;lakukan penundaan sesaat
clr p1.3
clr p3.7
CALL DELAY
djnz r0, lagi16
setb p1.3
setb p3.7
jmp menunggu
LED_17:
CJNE A,#01001000B,LED_18
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.4
clr p3.4
CALL DELAY
djnz r0, lagi17
setb p1.4
setb p3.4
jmp menunggu
LED_18:
CJNE A,#01001001B,LED_19
lagi18: setb p1.4
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.4
clr p3.5
CALL DELAY
djnz r0, lagi18
setb p1.4
setb p3.5
jmp menunggu
LED_19:
CJNE A,#01001010B,LED_20
lagi19: setb p1.4
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.4
clr p3.6
CALL DELAY
djnz r0, lagi19
setb p1.4
setb p3.6
jmp menunggu
LED_20:
CJNE A,#01001011B,LED_21
lagi20: setb p1.4
setb p3.7
CALL DELAY ;lakukan penundaan sesaat
clr p1.4
clr p3.7
CALL DELAY
djnz r0, lagi20
setb p3.7
jmp menunggu
LED_21:
CJNE A,#01001100B,LED_22
lagi21: setb p1.5
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.5
clr p3.4
CALL DELAY
djnz r0, lagi21
setb p1.5
setb p3.4
jmp menunggu
LED_22:
CJNE A,#01001101B,LED_23
lagi22: setb p1.5
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.5
clr p3.5
CALL DELAY
djnz r0, lagi22
setb p1.5
setb p3.5
jmp menunggu
LED_23:
CJNE A,#01001110B,LED_24
lagi23: setb p1.5
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.5
clr p3.6
CALL DELAY
djnz r0, lagi23
setb p1.5
setb p3.6
jmp menunggu
LED_24:
CJNE A,#01001111B,LED_25
lagi24: setb p1.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.5
clr p3.7
CALL DELAY
djnz r0, lagi24
setb p1.5
setb p3.7
jmp menunggu
LED_25:
CJNE A,#01010000B,LED_26
lagi25: setb p1.6
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.6
clr p3.4
CALL DELAY
djnz r0, lagi25
setb p1.6
setb p3.4
jmp menunggu
LED_26:
CJNE A,#01010001B,LED_27
lagi26: setb p1.6
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.6
clr p3.5
CALL DELAY
djnz r0, lagi26
setb p1.6
setb p3.5
jmp menunggu
LED_27:
CJNE A,#01010010B,LED_28
lagi27: setb p1.6
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.6
clr p3.6
CALL DELAY
djnz r0, lagi27
setb p1.6
jmp menunggu
LED_28:
CJNE A,#01010011B,LED_29
lagi28: setb p1.6
setb p3.7
CALL DELAY ;lakukan penundaan sesaat
clr p1.6
clr p3.7
CALL DELAY
djnz r0, lagi28
setb p1.6
setb p3.7
jmp menunggu
; TUMP_LED_1:
JMP LED_1
LED_29:
CJNE A,#01010100B,LED_30
lagi29: setb p1.7
setb p3.4
CALL DELAY ;lakukan penundaan sesaat
clr p1.7
clr p3.4
CALL DELAY
djnz r0, lagi29
setb p1.7
setb p3.4
jmp menunggu
LED_30:
CJNE A,#01010101B,LED_31
lagi30: setb p1.7
setb p3.5
CALL DELAY ;lakukan penundaan sesaat
clr p1.7
clr p3.5
CALL DELAY
djnz r0, lagi30
setb p1.7
setb p3.5
jmp menunggu
LED_31:
CJNE A,#01010110B,LED_32
setb p3.6
CALL DELAY ;lakukan penundaan sesaat
clr p1.7
clr p3.6
CALL DELAY
djnz r0, lagi31
setb p1.7
setb p3.6
jmp menunggu
LED_32:
CJNE A,#01010111B,menunggu
lagi32: setb p1.7
setb p3.7
CALL DELAY ;lakukan penundaan sesaat
clr p1.7
clr p3.7
CALL DELAY
djnz r0, lagi32
setb p1.7
setb p3.7
jmp menunggu
menunggu:
CALL DELAY
JMP PC_8252B
DELAY:
mov r1,#ratusan
LAGIb:
mov TH0,#high cacah
mov TL0,#low cacah
SETB TR0
TUNGGU:
jnb TF0,TUNGGU
clr TF0 clr TR0
DJNZ r1,LAGIb