sistem identifikasi tiket penumpang otomatis :...
TRANSCRIPT
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 2007
i
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 2007
ii
LEMBAR PERSETUJUAN TUGAS AKHIR
SISTEM IDENTIFIKASI TIKET PENUMPANG OTOMATIS : PENAMPIL NOMOR TEMPAT DUDUK
PADA BUS BERBASIS MIKROKONTROLER AT89S8252
Pem Ir. Iswa
Pem
B. Wuri H
Disusun oleh:
OEI HUI LIONG
NIM: 015114066
Telah setuju oleh:
bimbing I
njono, M.T Tanggal:
bimbing II
arini, S.T, M.T Tanggal:
iii
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
iv
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.
v
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.
Untuk para Dosen, Karyawan dan Staff Fakultas Teknik Sanata Dharma, Teman-
teman akedemika Universitas Sanata Dharma, khususnya Fakultas Teknik Elektro 2001,
yang telah sudi untuk memberikan kesempatan dan berbagi ilmu untuk menyelesaikan
tugas-tugas akademikku
vi
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.
8. Teman-teman PHK, Hernomo, Indra, Sulis, Yuke dan lainnya yang telah berusaha
dengan baik untuk menyelesaikan tugasnya masing-masing tanpa kenal lelah dan
putus asa.
vii
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
Penulis
viii
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. Matrik LED ………………………………………………………..... 15
ix
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 PUSTAKA ........................................................................................... 38
x
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.10 Rangkaian driver matrik LED dilihat dari port 3 ………………….… 27
xi
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
Gambar 4.3 Penampil pada tempat duduk …………………………………………. 34
xii
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
xiii
DAFTAR LAMPIRAN
Rangkaian Penampil Nomor Tempat Duduk pada Bus Berbasis
Mikrokontroler AT89S8252 ………………………………………………………. L
Program untuk menyalakan matrik LED ………………………………………… L-1
Data Sheet Mikrokontroler AT89S8252 …………………………………………. L-11
Data Sheet Transistor BD 139 ……………………………………………………. L-52
xiv
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.
Kata kunci : matrik LED, mikrokontroler AT89S8252.
xv
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.
Keywords: LED matrix, microcontroller AT89S8252.
xvi
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
tempat duduk penumpang secara otomatis.
1
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
tempat duduk dengan menggunakan LED.
2
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.
3
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
91819 29
30
31
40
12345678
2122232425262728
1011121314151617
3938373635343332
RSTXTAL2XTAL1 PSEN
ALE/PROG
EA/VPP
VCC
P1.0/T2P1.1/T2-EXP1.2P1.3P1.4/SSP1.5/MOSIP1.6/MISOP1.7/SCK
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXD
P3.2/INTOP3.3/INT1
P3.4/TOP3.5/T1
P3.6/WRP3.7/RD
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
Gambar 2.1 Mikrokontroler ATMEL AT89S8252
4
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
memori eksternal dapat digunakan RAM eksternal (maksimum 64 Kbyte). Dalam
pengaksesannya mikrokontroler akan mengirimkan sinyal RD (Read, melakukan
5
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 8KB yang hanya bisa dibaca
saja. Bila pin dihubungkan pada ground program memori dapat diakses secara
eksternal, bila pin AE dihubungkan 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.).
Gambar 2.3 Peta memori dan metode untuk mengakses isi memori
6
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
Name CY AC F0 RS1 RS0 OV P
Gambar 2.6 Program Status Word
7
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.
5. Data Pointer
8
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
alamat 90H juga menerima alamat bagian rendah (low bit) selama pemrograman dan
9
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 data output untuk kanal SPI) P1.7 SCK (Master clock output, Slave clock input 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 0INT (interupsi 0 eksternal) P3.3 1INT (interupsi 1 eksternal) P3.4 T0 (input eksternal timer 0) P3.5 T1 (input eksternal timer 1) P3.6 WR (memori data eksternal jalur tulis) P3.7 RD (memori data eksternal jalur baca)
10
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
( ) sTLxT µ1*255−= dimana TLx adalah isi register TL0 atau TL1.
* Sebagai T/C 16 bit
( ) sTHxTLxT µ1*65535−=
THx = 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
timer/counter.
11
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 M0 Bit untuk memilih mode timer/counter
12
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 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
pembangkit baud rate dalam aplikasi komunikasi serial.
13
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
(Data Pointer). Contoh: MOV A, @R0.
14
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
Gambar 2.10 Lambang Skematik LED
15
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).
Gambar 2.11 Koneksi anoda dan katoda matrik LED
BARIS 8
BARIS 7
BARIS 6
BARIS 5
BARIS 4
BARIS 3
BARIS 2
BARIS 1
K O L O M 2
K O L O M 3
K O L O M 4
K O L O M 1
16
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
kerja yaitu daerah terpancung (cut-off) dan daerah saturasi.
17
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).
Β = IbIc ……………………………………………………………………..(2.1)
atau Ic = β x Ib ………………………………………………………….....(2.2)
Besar Ib adalah
Ib = Rb
VbeVb − ……………………………………………………………...(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
tertutup (on), seperti gambar 2.12.b.
18
VCC
VB1
23
RcIc
Rb
Ib
VCC
C
E
RcIc
VCC
VB1
23
RcIc
Rb
Ib
VCC
C
E
RcIc
(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 Gambar 2.13 Simbol Limit Switch
19
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
mikrokontroler AT89S8252, yaitu data masukan dari barcode reader, setelah itu
20
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.
Pada matrik LED ini, tiap LED akan diberikan nomor-nomor untuk
mewakili nomor tempat duduk penumpang seperti terlihat pada (Gambar 3.2).
21
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
161514
27 28
21 22 24
26
29 30 3231
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
memutuskan arus listrik pada LED yang diletakkan di tempat duduk penumpang.
22
Pada perancangan penunjuk letak tempat duduk penumpang digunakan LED yang
dihubung seri dengan limit switch seperti yang ditunjukkan pada (Gambar 3.3).
LED 2
12
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)
SW
W
(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
SW
Gambar 3.5 Bentuk fisik pemutus arus pada
PEGAS
S
LED
limit switch
LED
23
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
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
100 ohm47 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
Gambar 3.6 Penggerak Matrik LED
24
Rangkaian penampil nomor tempat duduk penumpang dihubung paralel
dengan rangkaian penunjuk letak tempat duduk penumpang seperti ditunjukkan
pada (Gambar 3.7).
12
12
12
12
12
12
12
12
12
12
12
12
L E D 1
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
L E D 2
12
12
12
12
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
kondisi terhubung sehingga LED menyala.
25
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
Q1BD139
12
3
Q2BD139
12
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 Ω
= 94 mA
26
VCC
100 ohm
D1
47 ohm
Q1BD139
12
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
D1
Q2BD139
12
3
47 ohm
D2
Port 3
IRB
IRB
Gambar 3.10 Rangkaian driver matrik LED dilihat dari port 3
27
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
duduk pada bus berbasis mikrokontroler AT89S8252.
28
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
Gambar 3.11 Flow chart penampil nomor tempat duduk pada bus berbasis mikrokontroler AT89S8252.
29
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 RC 2,9 mA
30
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 = IRB pada baris x RB ............................................................................(4.1)
= 26,8 mA x 47 Ω
= 1,26 V
b. VRB pada kolom = IRB pada kolom x RB .........................................................................(4.2)
= 27,6 mA x 47 Ω
= 1,29 V
31
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
port 3.7), dapat dilihat pada tabel dibawah ini:
32
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
32 Menyala Port 1.7 dan Port 3.7
33
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)
ILED = 0,29 V / 100 Ω = 2,9 mA
34
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
instruksi dari masukan untuk membuat LED menyala berkedip.
35
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
penumpang yang berfungsi mengaktifkan buzzer untuk memberitahukan
36
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.
37
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
4. http://www.atmel.com, 2006,” Data Sheet”, Atmel Corporation
38
LAMPIRAN
Rangkaian Penampil Nomor Tempat Duduk Pada Bus Berbasis Mikrokontroler AT89S8252
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
12
3
J5
CON8
12345678
J4
CON8
12345678
J7
CON4
1234
J6
CON4
1234
J8
CON8
12345678
47 Ohm
47 Ohm
47 Ohm
47 Ohm
47 Ohm
GND
1
100 OhmVcc12 V
1
U3
AT89S8252
91819 29
30
31
40
12345678
2122232425262728
1011121314151617
3938373635343332
RSTXTAL2XTAL1 PSEN
ALE/PROG
EA/VPP
VCC
P1.0/T2P1.1/T2-EXP1.2P1.3P1.4/SSP1.5/MOSIP1.6/MISOP1.7/SCK
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXD
P3.2/INTOP3.3/INT1
P3.4/TOP3.5/T1
P3.6/WRP3.7/RD
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
J3
CON8
12345678
J12
CON8
12345678
J1
CON4
1234
J2
CON4
1234
J15
CON8
12345678
J14
CON4
1234
47 Ohm
J13
CON4
1234
47 Ohm
47 Ohm
47 Ohm
47 Ohm
47 Ohm
47 Ohm
5 V
1
L
;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: CJNE A,#00110011B,LED_4 lagi3: setb p1.0
L-1
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 CALL DELAY
L-2L-2
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: CJNE A,#01000001B,LED_11
L-3L-3
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 djnz r0, lagi13
L-4L-4
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 lagi17: setb p1.4
L-5L-5
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 p1.4
L-6L-6
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 setb p3.7
L-7L-7
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 setb p3.6
L-8L-8
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 lagi31: setb p1.7
L-9L-9
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 RET END
L-10L-10
L-11L-11
L-12L-12
L-13L-13
L-14L-14
L-15L-15
L-16L-16
L-17L-17
L-18L-18
L-19L-19
L-20L-20
L-21L-21
L-22L-22
L-23L-23
L-24L-24
L-25L-25
L-26L-26
L-27L-27
L-28L-28
L-29L-29
L-30L-30
L-31L-31
L-32L-32
L-33L-33
L-34L-34
L-35L-35
L-36L-36
L-37L-37
L-38L-38
L-39L-39
L-40L-40
L-41L-41
L-42L-42
L-43L-43
L-44L-44
L-45L-45
L-46L-46
L-47L-47
L-48L-48
L-49L-49
L-50L-50
L-51L-51
L-52L-52
L-53L-53
L-54L-54
L-55L-55