TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat
Memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Teknik Universitas Sanata Dharma
VIRGINIA DEWI RAMBUNG
NIM : 00 5114 095
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
FINAL PROJECT
In partial fulfillment of the requirements
for the Degree SARJANA TEKNIK
Electrical Engineering Study Program
VIRGINIA DEWI RAMBUNG
00 5114 095
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
ENGINEERING FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
“ Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam daftar
pustaka, sebagai layaknya suatu karya ilmiah.”
Yogyakarta, Februari 2007
Penulis
Sidere Mens Eadem Mutato
Star Mind Although Change
Walaupun bintang-bintang berubah tetapi buah pikiran dalam
skripsi ini tidak berubah
Non Scholae Sed Vitae Discimus
Kita belajar bukan demi sekolah melainkan demi kehidupan
This Thesis is dedicated to:
Bapeng, Didi, Kak Ryan,Kak Charles,
Bang Vicki and My Lovely Checa .
“Having you all is the greatest gift that God has given to me”
pemilik kendaraan dengan busnya. Mode monitoring menggunakan kabel dengan informasi yang dikirim dan diterima mengenai kapasitas penumpang pada bus.
Alat ini terbagi atas dua bagian yaitu monitoring pada bus dan monitoring pada pol. Monitoring pada bus terdiri atas 3 bagian yaitu piranti masukan dari sensor, sebuah piranti pemroses mikrokontroler AT89S51 dan piranti keluarannya berupa tampilan seven segment dua digit sedangkan monitoring pada pol terdiri atas sebuah piranti pemroses mikrokontroler AT89S51 dan piranti keluaran berupa tampilan seven segment empat digit. Pada saat alat dijalankan, setiap ada penumpang yang naik maka data di bus dan data di pol akan bertambah satu. Sedangkan jika ada penumpang yang turun maka data di bus akan berkurang satu tetapi data jumlah penumpang yang ada di pol tidak berubah.
Data maksimum dalam bus 60 penumpang dan data maksimum untuk sistem monitoring di pol 9.999 penumpang dalam satu hari yang akan ditampilkan di seven segment.
Kata kunci : Monitoring, Tampilan Seven Segment, Aplikasi Mikrokontroler AT89S51
through remote monitoring between the bus owner and his bus. The monitoring mode is by using cables with information which is sent and which is received about the passenger capacity of the bus.
This device is divided in two parts, i.e. monitoring device on the bus and monitoring device at the pool. The monitoring device on the bus consists of three parts; they are: input software of sensor, a processor software of AT89S51 Microcontroller and output software in the seven segment two digit display; while the monitoring device at the pool consists of the one processor software AT89S51 Microcontroller and the output is in the form of seven segment four digit display. When the device is being operated, whenever there is one passenger who is getting on board (on the bus) then the data in the bus and in the pool is added by one. On the other hand, a different case will happen that when one passenger is getting of the bus then data in the bus will be reduced by one, but the data about the number of passenger in the pool does not change.
The maximum data in a bus with 60 passengers and the maximum data for passengers monitoring system in the pool 9.999 passengers in one day will be displayed in the seven segment .
Key Words: Monitoring, Seven Segment Display, AT89S51 Microcontroller Application
sekaligus menyenangkan ini. Tugas akhir ini merupakan salah satu syarat bagi penulis untuk meraih gelar Sarjana Teknik pada Jurusan Teknik Elektro, Fakultas Teknik, Universitas Sanata Dharma. Penulisan skripsi ini didasarkan pada apa yang penulis peroleh, mulai dari studi literatur, perancangan, simulasi program pada komputer dengan software Pinnacle, pembuatan alat sampai pada pengujian alat yang diajukan dan juga kemungkinan pengembangannya.
Pada kesempatan ini, tak lupa penulis ingin mengucapkan limpah terima kasih kepada semua pihak yang telah banyak membantu penulis, antara lain kepada:
1. Jesus Christ, menara dan bentengku. Thanks for guiding me in every step of my life and my journey, thanks for giving me blessing and unconditional love.
2. Bunda Maria…It’s so nice to have someone who always gonna be there for me. Thanks for being that person. Thanks also for listening me.
3. Bapak Ir. Iswanjono, MT (selaku dosen pembimbing I) dan juga Bapak Damar Wijaya, ST, MT (selaku dosen pembimbing II) atas segala bantuan, saran, ide, pemikiran dari awal hingga selesainya Tugas Akhir ini.
4. Seluruh jajaran dosen Elektro, laboran, semua staf dan karyawan yang telah banyak membantu penulis selama menjadi mahasiswa. Terimakasih juga karena bersedia meminjamkan beberapa perangkat kepada penulis.
5. Bapeng, Didi, Kak Ryan, dan Kak Charles.Thanks for funding my education and my life until now. I won’t be here if there are no you. Thanks for all.
6. Yang_Vicky@Tuing_tuing, thanks for your love, your great cares and excellent support. I’m so sorry if I always hurt you. But you must trust me, you are the one that I love and that I need.You are so special in my heart.
7. My first Checa. Thanks for your life in my life.You make me feeling almost perfect.
8. In memorian : NB and NM2. If you’re able to see me now, you must be proud to me.
last forever!
11. My old friends and my true friends: Ria Hitachi, Defa, Susan, Lilis, Eva, Tomycho, Tin, Indah, Dida, Yani, Yuyun and so many of you whatever you are. 12. Teman-teman #1 AP Dancer: Come one, guys…!!!Thanks for your attention in
my life.Go…go..go..and shake the world with your move!
13. Rekan-rekan kuliahku : Maknyak Eny dan Onsa, Elcy, Nika, Lucky, Wahyu W, Marsel, Iung, Agus, Titus, Danang, Bowo, Maya, and all electro-mate. I love all the times with you, guys!
14. Teman-teman Kost Wisma Putri Mawar especially Tina. Thanks for all joyful and madness. Do your best, gals! Trust you heart and fight for your dreams!
Penulis menyadari bahwa dalam skripsi ini masih terdapat banyak kekurangan, oleh karena itu segala kritik, saran dan koreksi yang membangun akan penulis terima dengan senang hati. Terima kasih!
Yogyakarta, Februari 2007 Penulis
LEMBAR PENGESAHAN PEMBIMBING ... iii
LEMBAR PENGESAHAN PENGUJI ... iv
LEMBAR PERNYATAAN KEASLIAN KARYA... v
HALAMAN PERSEMBAHAN DAN MOTO HIDUP... vi
INTISARI ... vii
ABSTRACT... viii
KATA PENGANTAR ... ix
DAFTAR ISI... xi
DAFTAR GAMBAR ... xiii
DAFTAR TABEL... xiv
DAFTAR LAMPIRAN... xv
BAB I. PENDAHULUAN 1.1. Judul ... 1
1.2. Latar Belakang Masalah ... 1
1.3. Tujuan dan Manfaat ... 2
1.4. Batasan Masalah ... 2
1.5. Metodologi Penelitian ... 3
BAB II. DASAR TEORI 2.1. Mikrokontroler AT89S51 ... 4
2.1.1. Timer dan Counter dalam Mikrokontroler AT89S51 ... 4
2.1.1.1. Timer Mode Register (TMOD) ... 5
2.1.1.2. Timer Control Register Timer 0 dan 1 ... 6
2.1.1.3. THx dan TLx... 6
2.1.2. Komunikasi Serial... 7
2.1.2.1. Pengertian dan fungsi komunikasi serial ... 7
2.1.2.2. Mode Komunikasi Serial ... 8
2.1.2.3. 8-Bit Shift Register (Mode 0) ... 9
2.1.2.4. 8-Bit UART (Mode 1) ... 10
2.1.2.7. Baud Rate Komunikasi Serial ... 12
2.2. Sensor... 13
2.2.1. Infrared Emitting Diode ... 13
2.2.2. Sensor Fototransistor ... 14
2.2.3. Pengkondisi Sinyal... 16
2.3. Display atau Alat Penampil ... 17
2.3.1. LED (Light Emitting Diode)... 17
2.3.2. Rangkaian Penampil Seven Segment ... 18
2.3.3. BCD to Seven Segment Decoder... 20
BAB III. RANCANGAN PENELITIAN 3.1. Perancangan Perngkat Keras... 21
3.1.1. Alat Monitoring Pada Bus ... 22
3.1.2. Alat Monitoring Pada Pol ... 24
3.2. Perancangan Perangkat Lunak ... 25
3.2.1. Perangkat Lunak Pada Alat Monitor di Bus ... 25
3.2.2. Perangkat Lunak Pada Penerimaan di Pol ... 28
BAB IV. PEMBAHASAN 4.1. Pembahasan Pada Alat ... 33
4.2. Pembahasan Pada Sensor ... 34
4.3. Pembahasan Pada Mikrokontroler ... 36
4.4. Pembahasan Pada Komunikasi Serial ... 38
BAB V. KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 40
5.2. Saran ... 40
DAFTAR PUSTAKA ... 41 LAMPIRAN
Gambar 2.2. Register TCON... 6
Gambar 2.3. Diagram Blok Serial Port... 8
Gambar 2.4. Serial Port Transmit Timming ... 10
Gambar 2.5. Serial Port Receive Timming... 10
Gambar 2.6. Pengiriman Data Mode 1 ... 11
Gambar 2.7. Rangkaian Dioda Infrared ... 13
Gambar 2.8. Skema fototransistor ... 14
Gambar 2.9. Simbol fototransitor ... 15
Gambar 2.10. Rangkaian dasar fototransistor... 15
Gambar 2.11. Transistor penguat... 16
Gambar 2.12. Schmitt Trigger ... 17
Gambar 2.13. LED... 17
Gambar 2.14. Rangkaian guna menyalakan LED... 18
Gambar 2.15. Untai common anode dan common catode ... 19
Gambar 2.16. Penampil seven segment ... 19
Gambar 3.1. Diagram Blok Alat Monitoring Pada Bus... 21
Gambar 3.2. Diagram Blok Alat Monitoring Pada Pol... 21
Gambar 3.3. Rangkaian Sensor Pada Bus... 22
Gambar 3.4. Rangkaian Penampil Pada bus ... 24
Gambar 3.5. Rangkaian Penampil Pada Pol ... 25
Gambar 3.6. Diagram alir Monitoring Pada Bus ... 26
Gambar 3.7. Program Utama Alat Monitoring Pada Pol ... 29
Gambar 3.8. Rutin Interupsi Serial ... 30
Gambar 4.1. Kenaikan Jumlah Penumpang di Bus ... 33
Gambar 4.2. Kenaikan Jumlah Penumpang di Pol ... 33
Gambar 4.3. Test Point Pada Rangkaian Sensor Penumpang Masuk... 35
Gambar 4.4. Hasil akhir alat ... 37
Gambar 4.5. Sinyal Komunikasi Serial ... 38
Tabel 2.1. Mode operasi pemilih Timer/counter AT89S51 ... 5
Tabel 2.2. Register SCON ... 7
Tabel 2.3. Mode Komunikasi Serial ... 9
Tabel 2.4. Baud Rate Komunikasi Serial... 13
Tabel 2.5. Kebenaran Seven Segment ... 20
Tabel 4.1. Hasil Counter Up/ Down di Bus dan di Pol... 34
Tabel 4.2 Hasil Pengukuran Tegangan dan Perhitungan Error pada Rangkaian Sensor Penumpang Masuk………... 35
Lampiran 2. Hasil Compile Program Pada Pol ... L2 Lampiran 3. Gambar Rangkaian Pada Bus ... L3 Lampiran 4. Gambar Rangkaian Penerima di Pol ... L4 Lampiran 5. Data-sheet AT89S51 ... L5 Lampiran 6. Data-sheet SN74lS47 ... L33 Lampiran 7. Data-sheet Seven Segment... L47 Lampiran 7. Data-sheet MM74HC14 ... L56
1.1 Judul
Sistem Monitoring Jumlah Penumpang Bus berbasis Mikrokontroler AT89S51.
(The Monitoring System on The Number of Bus Passengers Based on AT89S51
Microcontroller).
1.2 Latar Belakang Masalah
Perkembangan teknologi saat ini sangat pesat, hal ini dibuktikan dengan
adanya berbagai temuan baru yang berfungsi untuk membantu dan mempermudah
manusia dalam melaksanakan aktivitasnya sehari-hari. Salah satu pengembangan
yang dilakukan saat ini adalah membuat sistem monitoring dari jarak jauh antara
pemilik kendaraan dengan busnya. Dikembangkannya sistem ini karena belum
adanya alat pengontrol penumpang bus, yang mengakibatkan pemilik atau
pengelola bus kesulitan dalam mengontrol jumlah penumpang yang naik pada
bus.
Mode monitoring menggunakan kabel dengan informasi yang dikirim dan
diterima mengenai kapasitas penumpang pada bus. Penggunaan kabel sebagai
media komunikasi karena pada tugas akhir ini masih merupakan prototype yang
masih dapat dikembangkan lagi.
Sistem monitoring jumlah penumpang yang ada pada bus menggunakan
mikrokontroler AT89S51 sebagai pengendali utamanya. Pada pintu naik dipasang
mendeteksi karcis tiap penumpang yang naik dan pada pintu turun dipasang
sensor infrared untuk mendeteksi banyaknya penumpang yang turun.
Dalam tugas akhir ini, dibuatlah suatu sistem monitoring jumlah
penumpang bus berbasis mikrokontroler AT89S51.
1.3 Tujuan
Tujuan yang akan dicapai dari Sistem Monitoring Jumlah Penumpang Bus
Berbasis mikrokontroler AT89S51 ini adalah menghasilkan suatu sistem yang
dapat memberi informasi kepada pemilik atau pengelola bus, mengenai jumlah
penumpang yang naik pada bus, sehingga mempermudah pengontrolan.
1.4 Batasan Masalah
a. Menggunakan Mikrokontroler AT89S51 sebagai pengendali utama.
Menggunakan sensor infrared sebagai alat pendeteksi karcis dan penumpang
yang turun. Seven segment dua digit digunakan sebagai penampil keluaran
yang menampilkan jumlah penumpang pada bus.
b. Media transmisi yang digunakan adalah kabel dengan mode komunikasi satu
arah (simplex).
c. Maksimum penumpang dalam bus enam puluh (60) orang dan maksimum
penumpang untuk sistem monitoring pol 9.999 penumpang dalam satu hari
yang akan ditampilkan di seven segment.
1.5 Metodologi Penelitian
Dalam perancangan alat ini, penelitian dilakukan dengan cara :
1. Studi literatur dan serangkaian percobaan di laboratorium.
2. Simulasi program pada komputer dengan software Pinnacle.
3. Mempelajari cara kerja dan menganalisis rangkaian.
Sistematik tugas akhir ini adalah :
BAB I PENDAHULUAN
Memuat latar belakang masalah, tujuan dan manfaat penelitian, batasan
masalah dan metodologi penelitian.
BAB II DASAR TEORI
Memuat dasar teori untuk mendukung rancangan.
BAB III PERANCANGAN
Memuat perancangan perangkat keras dan perangkat lunak beserta
implementasinya.
BAB IV PEMBAHASAN
Memuat hasil pengamatan dan pembahasan.
BAB V KESIMPULAN DAN SARAN
2.1 Mikrokontroler AT89S51
Mikrokontroler AT89S51 merupakan mikrokontroler buatan Atmel yang menguasai teknologi pembuatan FPEROM (Flash Programmable and Erasable Read Only Memory). FPEROM merupakan ROM (Read Only
Memory) yang dapat dihapus dan ditulis kembali dengan teknologi flash.
Kelebihan flash ini adalah mikrokontroler dapat menyimpan program secara internal, dan tidak membutuhkan ROM eksternal. AT89S51 memiliki 4 kBytes FPEROM, 256 Bytes RAM, 32 jalur I/O (Input/Output), dan dua 16-bit timers/counters.
2.1.1. Timer dan Counter dalam Mikrokontroler AT89S51
Mikrokontroler AT89S51 dilengkapi dengan dua buah timer/counter, yaitu timer 0 dan timer 1. Pencacah timer/counter AT89S51 merupakan pencacah biner naik (count-up binary counter) yang mencacah dari 0000h sampai FFFFh. Saat kondisi pencacah berubah dari FFFFh kembali ke 0000h akan timbul sinyal limpahan (overflow).
Masing-masing timer juga dapat berfungsi sebagai counter. Pada saat sebagai timer, register naik satu (increment) setiap satu siklus mesin. Pada saat sebagai counter, register naik satu (increment) pada saat transisi dari 1 ke 0 dari masukan eksternal, T0 dan T1.
2.1.1.1 Timer Mode Register (TMOD)
Penggunaan register TMOD yang ditunjukkan pada Gambar 2.1 adalah untuk mengatur kerja Timer 0 dan Timer 1.
Register TMOD terbagi atas dua yaitu, bit 0 sampai 3 (TMOD.0 sampai TMOD.3) untuk mangatur kerja Timer 0, sedangkan bit 4 sampai 7 (TMOD.4 sampai TMOD.7) untuk mengatur kerja Timer 1. Register TMOD merupakan register yang tidak bit addressable. Bit addressable adalah suatu blok ruang memori yang bisa teralamati setiap bit.
GATE C/T M1 MO GATE C/T M1 M0 Timer 1 Timer 0
Gambar 2.1. Register TMOD
GATE: Jika GATE = 1, maka timer/counter “x” aktif bila pin INTx high dan pin TRx juga high.
Jika GATE = 0, maka timer/counter “x” aktif jika hanya pin TRx high.
C/T : low untuk fungsi timer dan high untuk fungsi counter. Tabel 2.1 Mode operasi pemilih Timer/counter AT89S51
M1 M0 MODE Operasi
0 0 0 Timer/counter 13-bit 0 1 1 Timer/counter 16-bit
1 0 2 Timer/counter 8-bit isi ulang (auto reload)
M1 dan M0: pemilih mode timer/counter (Mode 0 sampai Mode 3) yang konfigurasinya dapat dilihat pada tabel 2.1
2.1.1.2 Timer Control Register Timer 0 dan 1
TCON merupakan bit addressable sehingga bisa diatur setiap bitnya
(dengan instruksi SETB atau CLR). Register TCON yang ditunjukan pada gambar 2.2, berisi pengaturan timer dan interupsi eksternal sekaligus dalam 1 byte.
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Timer Interupsi
Gambar 2.2. Register TCON
Jika dalam pemrograman tidak memakai interupsi eksternal, maka IE dan IT dapat diabaikan (diset ‘0’).
TR1 dan TR0 : pengatur aktif dan nonaktif timer / counter.
TF1 dan TF0 : penampung bit limpahan (overflow) timer/counter. IE1 dan IE0 : tanda (flag) interupsi eksternal.
IT1 dan IT0 : menentukan pen-trigger-an interupsi eksternal.
2.1.1.3 THx dan TLx
Pengaksesan timer masing-masing memerlukan dua register 8-bit. Timer 0 melalui TH0 (Timer 0 High Byte) dan TL0 (Timer 0 Low Byte),
sedangkan timer 1 melalui TH1 (Timer 1 High Byte) dan TL1 (Timer 1 Low Byte).
2.1.2 Komunikasi Serial
2.1.2.1 Pengertian dan fungsi komunikasi serial
Komunikasi serial pada mikrokontroler AT89S51 melalui dua kaki yaitu TXD dan RXD. Juga tersedia register yang khusus menangani komunikasi serial yaitu special function register yang dinamakan SCON dan SBUF.
SCON merupakan serial control register yang berada di alamat memori 98H dan merupakan bit addressable register yang terdiri dari bit-bit control dan status. Bit-bit control inilah yang mengendalikan mode operasi
komunikasi serial sedangkan bit-bit status merupakan indikator yang menandakan suatu operasi pengiriman atau penerimaan data selesai dilakukan. Adapun keterangan dari register SCON dapat dilihat pada tabel 2.2.
Tabel 2.2 Register SCON
BIT SIMBOL ADDRESS BIT DESCRIPTION
SCON.7 SM0 9FH Serial Port Mode Bit 0
SCON.6 SM1 9EH Serial Port Mode Bit 1
SCON.5 SM2 9DH Serial Port Mode Bit 2
SCON.4 REN 9CH Receive Enable
SCON.3 TB8 9BH Transmit Bit 8
SCON.2 RB8 9AH Receive Bit 8
SCON.1 TI 99H Transmit Interrupt Flag
SCON.0 RI 98H Transmit Interrupt Flag
SBUF merupakan serial buffer berada yang berada di alamat memori 99H. SBUF ini terdiri dari 2 buffer register yakni register yang menampung
sementara data yang akan dikirim melalui TXD (write only) dan register yang menampung sementara data yang diterima melalui RXD (read only). Gambar 2.3 menunjukkan diagram blok serial port.
Gambar 2.3 Diagram Blok Serial Port.
2.1.2.2 Mode Komunikasi Serial
Mikrokontroler AT89S51 mempunyai on chip serial port yang dapat digunakan untuk komunikasi data serial secara full duplex, sehingga port serial ini masih dapat menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang diterima atau data yang akan dikirimkan, AT89S51 mempunyai sebuah register, yaitu SBUF ( serial buffer ) yang terletak pada alamat 99H. Register ini berfungsi sebagai buffer, sehingga pada saat mikrokontroler ini membaca data yang pertama dan bila data kedua belum diterima secara penuh, data ini tidak akan hilang.
Pada mikrokontroler AT89S51 terdapat 4 mode komunikasi serial. Mode komunikasi serial ini ditentukan oleh bit SM0 dan SM1 yang terdapat pada register SCON. Tabel 2.3 menunjukkan mode komunikasi serial.
Tabel 2.3 Mode Komunikasi Serial
SM0 SM1 MODE DESCRIPTION BAUD RATE
0 0 0 Shift Register Tetap = 1/12×frekuensi osc 0 1 1 8 Bit UART Ditentukan dengan timer 1 1 0 2 9 Bit UART Tetap = 1/32(1/64)×frekuensi
osc
1 1 3 9 Bit UART Ditentukan dengan timer 1
2.1.2.3 8-Bit Shift Register (Mode 0)
Pada mode ini, pengiriman dan penerimaan data dilakukan melalui kaki RXD, sedangkan kaki TXD digunakan sebagai keluaran shift clock. Baud rate komunikasi pada mode ini tetap yaitu sebesar 1/12 dari frekuensi
on-chip oscillator.
Pengiriman data akan dilakukan begitu terjadi instruksi penulisan data ke register SBUF. Data akan dikirim melalui RXD dengan pulsa clock akan dikirim melalui TXD. Pada gambar 2.4., data sebesar satu bit dapat dibaca dengan benar dalam rentang waktu satu machine cycle. Dalam satu machine cycle, mikrokontroler akan membangkitkan satu shift clock (RND). Setiap satu
RND, satu bit data akan dikirim atau dibaca oleh mikrokontroler seperti ditunjukkan gambar 2.5.
Gambar 2.4 Serial Port Transmit Timing.
Penerimaaan data akan dilakukan jika bit receiver enable (REN) di-set high dan receive interrupt flag (RI) nonaktif (low).
Gambar 2.5 Serial Port Receive Timing.
2.1.2.4 8-Bit UART (Mode 1)
Pada mode 1, mikrokontroler AT89S51 beroperasi sebagai 8 bit universal asynchronous receiver transmitter (UART) yang menerima dan
mengirim data melalui komunikasi serial dengan format data yang dimulai dengan start bit dan diakhiri dengan stop bit. Baud rate komunikasi serial pada mode ini di-set dengan timer 1 overflow rate.
Pada mode ini, setiap pengiriman data dikirim 10 bit data melalui
bernilai 0), 8 bit data dan diakhiri dengan stop bit (selalu bernilai 1). Pengiriman data akan dilakukan sesuai baud rate yang di-set. Begitu stop bit dikirimkan maka transmit interrupt flag (TI) akan ter-set high. Ilustrasi pengiriman data ini dapat dilihat pada gambar 2.6.
Gambar 2.6 Pengiriman Data Mode 1
Pada proses penerimaan,begitu suatu start bit terdeteksi, maka penerimaan data dilanjutkan, register SBUF akan berisikan 8 data bit, sedangkan stop bit akan disimpan di bit RB8 yang terdapat di register SCON. Setelah itu receiver interrupt flag (RI) akan ter-set aktif. Perhitungan untuk menentukan baudrate adalah sebagai berikut:
Baud rate = )] 1 ( 256 [ TH N frequency oscillator − (2.1)
2.1.2.5 9-Bit UART dengan Baud Rate Tetap (Mode 2)
Pada mode ini, data yang akan dikirim yaitu berupa start bit, 9 data bit dan stop bit atau jumlah keseluruhan yaitu 11 bit.
Baud rate yang digunakan pada mode 2 ini tetap dengan nilainya yang dipengaruhi oleh bit SMOD yang ada di register PCON (power control register). Jika SMOD di-set high (logika 1), maka baud rate komunikasi serial
adalah 1/32 frekuensi on-chip oscillator. Sedangkan jika SMOD di-set low (logika 0), maka baud rate komunikasi serial adalah 1/64 frekuensi on-chip oscillator.
Pada saat pengiriman, data bit yang ke-9 disimpan di bit TB8 pada SCON dan pada saat penerimaan data, bit yang ke-9 ini disimpan di bit RB8 pada SCON.
2.1.2.6 9-Bit UART dengan Baud Rate Bergantung Timer (Mode 3)
Mode 3 ini hampir sama dengan mode 2. Perbedaannya terletak pada baud rate yang nilainya tidak tetap dan ditentukan oleh setting timer seperti
pada mode 1 komunikasi serial.
2.1.2.7 Baud Rate Komunikasi Serial
Baud rate komunikasi serial terdiri dari 2 jenis yaitu yang tetap dan bervariasi sesuai setting timer 1. Pada tabel 2.4 ditunjukkan mode komunikasi serial dan baud rate. Untuk komunikasi serial mode 1 dan 3, baud rate dapat diatur. Sedangkan mode 0 dan 2, besarnya baud rate tergantung dari osilator crystal yang digunakan.
Tabel 2.4 Baud Rate Komunikasi Serial
MODE DESCRIPTION BAUD RATE
0 SMOD tidak berpengaruh Tetap = 1/12×frekuensi oscillator 2 SMOD = 0 (default) Tetap = 1/64×frekuensi oscillator
2 SMOD = 1 Tetap =1/32×frekuensi oscillator
1,3 SMOD = 0 (default) Variasi =Timer 1 Overflow Rate : 32
1,3 SMOD = 1 Variasi =Timer 1 Overflow Rate : 16
2.2 Sensor
Sensor berfungsi untuk memonitor dan menganalisis gejala yang terjadi pada suatu benda.
2.2.1 Infrared Emitting Diode
Infrared emitting diode adalah dioda yang memancarkan sinar infrared. Sinar infrared termasuk dalam gelombang elektromagnetik yang mempunyai frekuensi dan panjang gelombang tertentu. Jika dioda infrared diberi tegangan maju, maka dioda infrared akan ON seperti pada gambar 2.7 serta akan mengeluarkan cahaya yang tak terlihat oleh mata.
Untuk mencari nilai RD pada rangkaian LED infrared digunakan persamaan berikut: D D D I V Vcc R = − (2.2) dengan: D
R adalah hambatan dioda Vcc adalah tegangan catu daya
D
V adalah beda potensial diantara kaki-kaki dioda
D
I adalah arus yang melalui dioda
2.2.2 Sensor Fototransistor
Sensor phototransistor adalah suatu piranti semikonduktor yang peka terhadap cahaya. Daerah basis dapat dimasuki sinar dari luar melalui suatu celah transparan dari luar kemasan transistor. Celah ini biasanya dilindungi oleh suatu lensa kecil yang memusatkan sinar di tepi sambungan basis-emitor, seperti terlihat pada gambar 2.8, sedangkan arus pada fototransistor ditunjukkan oleh gambar 2.9.
Gambar 2.9 Simbol fototransitor
Gambar 2.10.Rangkaian dasar fototransistor
Untuk mendapatkan nilai resistor Rc pada gambar 2.10 dilakukan perhitungan sebagai berikut: C CE CC I V V R= − (2.3) dangan:
R adalah hambatan yang berapa pada emiter, berguna untuk membatasi arus yang masuk ke fototransistor.
CC
V adalah tegangan catu daya. CE
V adalah beda potensial antara collector dan emitter. C
Untuk rangkaian fototransistor seperti pada gambar 3.10, arus yang mengalir dirumuskan sebagai berikut:
Ic = β1.λ1 (2.4)
Dengan β1 adalah konstanta dan λ1 adalah besarnya intensita cahaya. Dengan
demikian besarnya tegangan emiter dapat dirumuskan sebagai berikut:
Ve = Vcc - Vce (2.5)
Rumusan 2.4 dapat dijabarkan lagi sebagai berikut:
Ve = R * Ic (2.6)
Jika R tetap, maka tegangan emiter Ve tergantung dari intensitas cahaya yang
masuk ke fototransistor.
2.2.3 Pengkondisi Sinyal
Rangkaian penguat dan Schmitt trigger merupakan sebagian rangkaian pengkondisi sinyal dalam sistem kendali. Pengkondisi sinyal memiliki tugas memodifikasi atau mengubah dalam arti luas keluaran sensor untuk disesuaikan dengan kebutuhan unsur berikutnya. Berdasarkan fungsinya, pengkondisi sinyal dapat diklasifikasikan sebagai berikut: pertama, sebagai rangkaian pengkondisi seperti penguatan dan pelemahan. Kedua, rangkaian pengolah seperti konversi tegangan ke frekuensi dan konversi tegangan ke arus. Penguat transistor ditunjukan pada gambar 2.11 berikut ini:
Sinyal yang telah dikuatkan dipicu menggunakan Schmitt trigger agar sinyal keluaran berubah tajam dari tinggi ke rendah atau sebaliknya. Rangkaian Schmitt trigger menggunakan CMOS Inverting Schmitt Trigger. Rangkaian inverting schmitt trigger memiliki simbol seperti diperlihatkan pada gambar 2.12
Gambar 2.12 Schmitt Trigger
2.3 Display atau Alat Penampil
Dalam suatu sistem instrumentasi dibutuhkan suatu unit alat penampil atau peraga alfanumerik yang berfungsi untuk menampilkan hasil keluaran, maka dianggap perlu untuk mendekodekan bilangan-bilangan tersebut secara elektronis. Semua jenis rangkaian digital yang dipakai untuk pencacahan akan memerlukan peragaan / tampilan bilangan hasil hitungan / cacahan sistem tersebut.
2.3.1 LED (Light Emitting Diode)
Penampil (display) yang banyak dipakai adalah yang menerapkan LED (Light Emitting Diode). Simbol LED dtunjukkan pada gambar 2.13.
LED
LED merupakan dioda yang mempunyai ciri khas tersendiri karena terhubung dengan suatu rangkaian yang dialiri arus. Untuk menyalakan sebuah LED digunakan rangkaian seperti pada gambar 2.14.
VCC
Vd Ra
Gambar 2.14 Rangkaian guna menyalakan LED
Tegangan LED biasanya berkisar antara 1,2 - 2 V sedangkan arus LED antara 10 -25 mA. Persamaan untuk menentukan arus dioda adalah :
R I LED LED V VCC − = (2.7)
R adalah hambatan yang dipasang untuk membatasi arus dioda. Vcc adalah tegangan catu daya.
Vled adalah beda potensial diantara kaki-kaki LED.
Id adalah arus yang melalui LED.
2.3.2 Rangkaian Penampil Seven Segment
Piranti seven segment adalah sebuah penampil yang terdiri atas 7 buah LED yang berada dalam satu kemasan. Prinsip kerja dari seven segment seperti LED, sehingga seven segment hanya membutuhkan arus yang kecil untuk menampilkan angka-angka yang dibangun dari ke tujuh LED tersebut.
Dioda memancarkan cahaya (Light Emitting Diode), merupakan sumber cahaya yang lazim digunakan dalam seven segment. Bila suatu saklar
tertutup, LED yang bersangkutan berprategangan maju dan mengemisikan cahaya. Tahanan-tahanan seri merupakan hambatan-hambatan pembatas arus yang dibutuhkan untuk mengatur arus. Untuk memperagakan suatu lambang, harus dinyalakan tiap batang atau ruas yang berkaitan dengan lambang tersebut.
Seven segment mempunyai 2 buah tipe yaitu : common anode dan
common catode. Kedua jenis penampil seven segment tersebut memiliki
karakteristik yang hampir sama. Perbedaan antara common anode dan common catode adalah pada penyambungan ke tujuh kaki-kaki LED-nya, dimana pada
common anode seluruh anode dari ke tujuh LED-nya disambung menjadi satu,
sedangkan pada common catode seluruh catode dari ke tujuh LED-nya tersambung menjadi satu. Untai dari common anode dan common catode adalah seperti gambar 2.15.
Gambar 2.15 Untai common anode dan common catode
Rangkaian penampil common anode seven segment dapat dilihat pada gambar 2.16.
Sebagai contoh untuk memperagakan angka 0 harus dinyalakan ruas a sampai dengan f, untuk mendapatkan 1 dinyalakan ruas b dan c dengan cara yang sama setiap angka desimalnya dari 0 hingga 9 dapat diperagakan. Jika karakter 1 akan ditampilkan, jalur keluaran b dan c dari pegawasandi akan diset berlogika 1 untuk menyalakan transistor yang sesuai untuk menyinari segmen b dan c. Jalur yang lain tetap berlogika 0. Untuk lengkapnya, dapat dilihat pada tabel 2.5 untuk tabel kebenaran tampilan seven segment.
Tabel 2.5 Kebenaran Seven Segment
Cacahan Segmen Yang Menyala
0 a, b, c, d, e, f 1 b, c 2 a. b, g, e, d 3 a, b, g, c, d 4 f, g, b, c 5 a, f, g, c, d 6 a, f, e, d, c, g 7 a, b, c 8 a, b, c, d, e, f, g 9 a, b, g, f, c
2.3.3 BCD to Seven Segment Decoder
Penampil untuk alat ini menggunakan seven segment, oleh karena itu perlu decoder/driver untuk mengaktifkan seven segment. Hal ini diperlukan karena mikrokontroler tidak cukup mampu memberikan arus yang cukup.
Perancangan tugas akhir ini dibagi menjadi dua tahap, tahap pertama perancangan perangkat keras dan tahap yang kedua perancangan perangkat lunak.
3.1 Perancangan Perangkat Keras
Perangkat keras terdiri dari dua bagian, pertama berada pada bus yang berfungsi sebagai sensor, penampil jumlah penumpang dan pengirim data, kedua berada di pol yang berfungsi sebagai penerima data dan penampil jumlah penumpang dalam bus. Untuk mendeteksi jumlah penumpang di dalam bus digunakan sensor infrared berupa fototransistor yang berada pada pintu masuk di bagian depan dan pada pintu keluar di bagian belakang.
Data dari bus akan dikirimkan ke pol melalui kabel. Diagram blok dari alat ini seperti ditunjukkan oleh gambar 3.1. Sedangkan alat yang berada di pol ditunjukkan oleh gambar 3.2.
Gambar 3.1 Diagram Blok Alat Monitoring Pada Bus
Gambar 3.2 Diagram Blok Alat Monitoring Pada Pol
3.1.1 Alat Monitoring Pada Bus
Rangkaian dari sensor dan mikrokontroler ditunjukan oleh gambar 3.3. Rangkaian sensor ada dua buah yaitu sensor masuk dan sensor keluar. Rangkaian sensor masuk dihubungkan dengan Pin P3.3, sedangkan sensor keluar dihubungkan dengan Pin P3.2. Kaki P3.3 dimanfaatkan sebagai sarana I/O biasa untuk menghitung jumlah penumpang yang masuk pada bis, sedangkan P3.2 sebagai sinyal interupsi eksternal 0. Pada gambar 3.3 digambarkan rangkaian sensor yang digunakan.
1 Vcc +5 V Vcc +5 V 1 2 47 1 2 P3.2 Vcc +5 V Vcc +5 V 2
Gambar 3.3 Rangkaian Sensor Pada Bus
Saat penumpang memasukan karcis ke dalam kotak, karcis akan menghalangi sinar infra merah yang masuk ke fototransistor dari dioda infra merah. Akibat adanya perubahan intensitas cahaya yang masuk ke dalam fototransistor, sehingga level tegangan di kaki collector ikut berubah. Saat sinar
infrared masuk ke fototransistor tegangan di collector. Untuk menentukan
besarnya nilai R maka ditentukan nilai Ic yang digunakan sebesar 10 mA.
Ve = Vcc – Ic.Rc (3.1) 0 = 5 V- 10.10-3.Rc 2 1 47 P3.3
10 . 5 R = 1 K
Saat karcis menghalangi sinar infra merah tegangan di collector menjadi tinggi sebesar 5 volt.
Perubahan tegangan di collector akan menyebabkan perubahan output dari schmitt trigger. Tujuan dari penggunaan schmitt trigger untuk dapat mendeteksi perubahan tegangan yang kecil, karena pada praktiknya dioda infra merah tidak memberikan cukup intensitas cahaya. Dengan menambahkan schmitt trigger perubahan tegangan yang kecil tetap mampu memberikan input mikrokontroler sesuai dengan tegangan yang dibutuhkan untuk mencapai logika tinggi dan rendah.
Mikrokontroler akan menampilkan jumlah penumpang pada penampil seven segment. Rangkaian dari penampil jumlah penumpang ditunjukan gambar 3.4. Rangkaian penampil ini menggunakan seven segment seri LDS-AA1R. Seven segment ini adalah common anode seven segment artinya seven segment ini memiliki anoda bersama untuk tiap LED.
Oleh karena itu digunakan IC BCD to seven segment decoder SN74LS247, yang merupakan IC aktif low. Sebagai pengaman, baik bagi seven segment atau IC driver, antara katoda seven segment dan kaki-kaki IC dipasang resistor. Besarnya nilai resistor berdasarkan persamaan 2.4 didapat sebagai berikut:
Dengan VCC = 5 V
IMax = 20 mA (didapat dari data sheet)
Maka didapat nilai resistor minimum adalah sebagai berikut: R 02 . 0 2 . 2 5− ≥ = 140 Ω
Pada perancangan ini resistor yang digunakan sebesar 150 Ω dengan pertimbangan mendekati nilai perhitungan dan mudah ditemukan di pasaran.
Gambar 3.4 Rangkaian Penampil Pada Bus
3.1.2 Alat Monitoring Pada Pol
Perancangan dan perhitungan nilai komponen penampil sevent segment dari alat penampil di pol sama dengan penampil pada bus. Setiap kali ada penumpang yang naik, akan dapat terpantau dari pol. Gambar 3.5 menunjukan rangkaian alat penampil yang terdapat di pol.
Gambar 3.5 Rangkaian Penampil Pada Pol
3.2 Perancangan Perangkat Lunak
Perancangan perangkat lunak untuk tugas akhir ini juga dibagi menjadi dua bagian yaitu perancangan untuk alat monitor di bus dan untuk alat monitor di pol.
3.2.1 Perangkat Lunak Pada Alat Monitor Di Bus
Fungsi dari mikrokontroler bagian bus adalah untuk mendeteksi penumpang yang masuk ke dalam bus, lalu menampilkan jumlah penumpang di dalam bus, dan juga mengirim sebuah data secara serial ketika ada penumpang yang masuk ke dalam bus. Ketika ada penumpang yang keluar dari bus, maka akan mengurangi jumlah penumpang dalam bus pada penampil.
Terdapat dua program dari perancangan perangkat lunak pada bagian bus. Program Pertama adalah program utama, yang mempunyai tugas untuk mendeteksi penumpang yang masuk, dan menampilkan jumlah penumpang di dalam bus serta mengirimkan data serial ke bagian pol. Dan program kedua
interupsi ini ketika terjadi logika 0 pada kaki P3.2, atau ketika ada penumpang yang keluar dalam bus. Diagram alir dari program utama dan program interupsi eksternal 0 pada perancangan perangkat lunak bagian bus ditunjukkan oleh Gambar 3.6a dan 3.6b.
(a) (b) Gambar 3.6 Diagram alir Monitoring Pada Bus
Potongan program dari pogram utama dari diagram alir dapat dilihat di bawah ini :
ORG 0000h LJMP mulai ORG 0013h LJMP keluar
mulai: mov scon,#40h ; set kirim serial mode 1
mov tmod,#20h ; set timer1 mode 2 8 bit isi ulang mov th1,#0e8h ; isi reg timer1 (baud rate 1200 bps) setb tr1 ; aktifasi timer1
setb ex0 ; aktifasi interupsi eksternal0 setb ea ; aktifasi layanan interupsi setb p3.3 ; set p3.3 sebagai input
naik: jnb p3.3,$ ;tunggu tiket masuk (p3.3 = ‘1’) inc r0 ; r0 sebagai counter jml penumpang bis tampil1: mov a,r0
mov r0,#0eeh cjne r0,#100,ubah_se
lagi2: lcall ubah&tampil ;panggil sub pogram ubah bcd lcall kirim data ; panggil sub pogram kirim data: jb p3.3,masuk ; tunggu sampai karcis dicabut ubah_se: mov r0,#0
inc r0 ajmp lagi2
Untuk menentukan nilai register TH1 agar sesuai dengan baud rate ada perhitungan untuk menentukannya. Nilai TH1 sebesar E8h (232d) didapat dengan perhitungan sebagai berikut:
Baud rate =oscillator[256 frequency( 1)]
TH
N − (3.3)
Dengan N faktor pembagi sebesar 384 jika UART berjalan pada mode SMOD= 0, maka besarnya TH1 dapat dihitung sebagai berikut:
1200 =38411,059x10[256 ( 1)] 6 TH − TH1 = 256 – (11,059x106)/(384x1200) TH1 = 232d =E8h
Dari potongan program utama dapat terlihat ada pemanggilan sub pogram ubah&tampil, dan sub pogram pengiriman data. Sub pogram pengiriman ubah&tampil berfungsi untuk merubah nilai di variabel counter menjadi BCD. Proses ini menggunakan register a dan register b, hasil dari proses perubahan ini akan disimpan di akumulator dan kemudian dipindahkan ke port 0 agar dapat ditampilkan ke seven segment. Potongan program sub program ubah&tampil dijabarkan di bawah ini.
Ubah&tampil:
Mov a,r0 ; nilai r0 dibagi 10
Mov b,#10 ; hasil di a sisa di b
Div a,b ; nibble bawah a ke nibble atas
Swap a
ret
Sub program kirim data berfungsi untuk mengirimkan data ke pol. Data yang dikirimkan sudah ditentukan terlebih dahulu, jadi data yang dikirimkan bukan data jumlah penumpang yang ada dalam bus, akan tetapi mengirimkan data ketika ada penumpang naik ke bus. Potongan program sub program kirim data dijabarkan dibawah ini.
Kirim_pol::
Clr es ; non aktifkan interupsi serial Mov a,#26h
Mov sbuf,a ; kirim data pengenal ke pol Jnb ti,$ ; tunggu data selesai dikirim
Clr ti ; nolkan kembali bit ti
Setb es Ret
Mikrokontroler akan melayani program interupsi ketika ada penumpang keluar. Dalam potongan program di bawah ini terdapat instruksi untuk menunggu kaki P3.2 mempunyai logika 1, hal ini bertujuan agar menunggu satu penumpang selesai melewati sensor.
Selesai:
Push acc ; simpan acc
Clr ex0
Clr ea ; disable layanan interupsi
Dec r0 ; kurangi variabel counter
Lcall ubah&tampil ; panggil sub program ubah&tampil Jnb p3.2,$ ; tunggu selesai 1 penumpag selesai turun Setb ex0
Setb ea ;enable layanan interupsi
Pop acc ;ambil acc
3.2.2 Perangkat Lunak Pada Penerimaan Di Pol
Rutin program utama dari alat penerima dan penampil di pol berisi inisialisasi fungsi yang ada di dalam mikrokontroler. Pada alat ini fungsi yang digunakan hanyalah interupsi serial. Pada interupsi ini alat akan menampilkan
menunjukan rutin utama alat penerima di pol.
Gambar 3.7 Program Utama Alat Monitoring Pada Pol
Inisialisasi serial pada alat monitoring di pol diperlukan agar komunikasi data dapat sinkron dengan alat pengirim di bus. Pada alat monitoring ini UART yang digunakan adalah mode 1, baud rate 1200 bits/sec.
Inisialisasi UART pada main program adalah sebagai berikut:
Serial_ini:
Mov SCON,#050h ;mode 1
Mov TMOD,#020h ;T1 mode 2 Mov TH1,#0E8h ;baud rate 1200
Setb tr1 ;T1 on
Setb es ;interupsi serial aktif
Setb ea
Rutin interupsi serial akan aktif saat 10 bit yang dikirimkan selesai diterima, dengan bit ri set. Saat interupsi terjadi program akan memanggil rutin interupsi serial dan menjalankan program yang terdapat di dalam rutin tersebut. Dalam rutin tersebut jumlah penumpang akan ditambah satu dan kemudian ditampilkan dalam seven segment. Gambar 3.8 menunjukkan diagram alir dari proses yang terjadi di dalam rutin ini.
Gambar 3.8 Rutin Interupsi Serial Potongan program interupsi serial akan diuraikan dibawah ini.
Terima_data: Clr es Clr ea Jnb ri,$ Mov a,sbuf Cjne a,#26h,balik Inc dptr
Lcall hec to_bcd
Lcall tampil
Balik:
Setb es
Setb ea
ret
Counter pada bagian pol menggunakan dptr, hal ini disebabkan nilai maksimal yang akan ditampilkan mencapai nilai 9999 sehingga diperlukan register penampung hasil counter sebesar 16 bit. Saat data dikirimkan sebuah data 26h maka dptr akan bertambah. Nilai dph sebagai byte tinggi dan nilai dpl sebagai
sehingga menjadi 4 register penampung bilangan BCD yang akan diumpankan pada P0 dan P2. Potongan program ubah BCD dan penampil di seven segment akan diuraikan di bawah ini.
ubah_bcd: mov r1,dph ;dph ke r1 sebagai msb mov r2,dpl ; dpl ke r2 sebagai lsb MOV R3,#0 ; r3 --> satuan MOV R4,#0 ; r4 --> puluhan MOV R5,#0 ; r5 --> ratusan MOV R6,#0 ; r6 --> ribuan MOV B,#10 MOV A,R2 DIV AB MOV R3,B MOV B,#10 DIV AB MOV R4,B MOV R5,A CJNE R1,#0H,HIGH_BYTE SJMP ENDD HIGH_BYTE: MOV A,#6 ADD A,R3 MOV B,#10 DIV AB MOV R3,B ADD A,#5 ADD A,R4 MOV B,#10 DIV AB MOV R4,B ADD A,#2 ADD A,R5 MOV B,#10 DIV AB MOV R5,B CJNE R6,#0,ADD_IT SJMP CONTINUE ADD_IT: ADD A,R6 CONTINUE: MOV R6,A DJNZ R1,HIGH_BYTE ENDD: Ret
swap a
add a,r5 ; r5(ratusan) jumlahkan dgn a
mov p2,a ; sehingga nilai r5 sbg nibble bawah
mov a,r4
swap a
add a,r3
mov p0,a
Pembahasan atas alat “Sistem Monitoring Jumlah Penumpang Bus
Berbasis Mikrokontroler AT89S51” dilakukan dengan membandingkan hasil
dari pengukuran dan perhitungan secara teori. Pengukuran dilakukan dengan
menggunakan alat ukur multitester digital dan osiloskop digital. Hasil dari
pengukuran dan pembahasan adalah sebagai berikut.
4.1 Pembahasan Pada Alat
Alat “Sistem Monitoring Jumlah Penumpang Bus Berbasis
Mikrokontroler AT89S51” telah bekerja dengan baik sesuai dengan
perancangan pada bab 3. Kesimpulan bahwa alat ini telah bekerja diambil
setelah melalui pengujian sebagai berikut:
Saat ada penumpang naik (memasukkan karcis) maka jumlah
penumpang yang ditampilkan pada seven segment di bus akan bertambah satu
demikian juga jumlah penumpang yang tertampil pada seven segment di pol.
Gambar 4.1 menunjukkan peningkatan jumlah penumpang di bus, gambar 4.2
menunjukkan jumlah penumpang yang tertampil di pol.
Gambar 4.1 Kenaikan Jumlah Penumpang di Bus
Gambar 4.2 Kenaikan Jumlah Penumpang di Pol
pengujian ini seperti yang tertampil pada tabel 4.1.
Tabel 4.1 Hasil Counter Up/ Down di Bus dan di Pol
Keadaan Di Bus Di Pol
Belum ada penumpang naik 00 0000
1 penumpang naik 01 0001 1 penumpang turun 00 0001 1 penumpang turun 00 0001 1 penumpang naik 01 0002 1 penumpang naik 02 0003 1 penumpang turun 01 0003 ………... .. .... 1 penumpang naik 59 0090 1 penumpang naik 60 0091 1 penumpang naik * 0091 1 penumpang turun 59 0091
Keterangan : * : penumpang ditolak untuk naik
Hasil pengujian menunjukkan jumlah penumpang pada bus yang
tertampil di seven segment akan bertambah jika ada penumpang yang naik dan
akan berkurang jika ada penumpang yang turun. Sedangkan pada pol jumlah
penumpang akan bertambah jika ada penumpang yang naik saja.
Jika tampilan pada seven segment sudah mencapai 60, dan kemudian
dilakukan counter up, maka tampilan di seven segment adalah . Akan
tetapi jika tampilan pada seven segment adalah 00, kemudian dilakukan
counter down maka tampilan pada seven segment tetap, yaitu 00.
4.2 Pembahasan Pada Sensor
Pengukuran pada sensor dilakukan dengan mengukur nilai tegangan di
titik-titik seperti yang ditunjukkan pada gambar 4.3. Pengukuran ini dilakukan
dengan menggunakan multitester digital agar lebih mudah dalam pembacaan
Gambar 4.3. Test Point Pada Rangkaian Sensor Penumpang Masuk
Dari hasil pengukuran pada testpoint A, pada saat tidak ada karcis yang
menghalangi antara fototransistor dengan LED infra merah tegangan di
testpoint A sebesar 0 volt. Pada saat ada karcis yang menghalangi antara
fototransistor dengan LED infra merah tegangan pada test point A sebesar 4,9
volt.
Bila dibandingkan hasil pengukuran dengan hasil perhitungan secara
teori akan memberikan hasil dan nilai error dengan menghitung nilainya
didapatkan dari rumus berikut ini.
% 100 (%) Error Nilai Prosentase X teori hasil teori− =
Tabel 4.2 Hasil Pengukuran Tegangan dan Perhitungan Error pada Rangkaian Sensor Penumpang Masuk
Kondisi Hasil Pengukuran
Teori Error %
Titik A tanpa penghalang 0,6 volt 0,7 volt 2
Titik A saat ada penghalang 4,9 volt 5 volt 2
Titik B tanpa penghalang 3,7 volt 3,6 volt 2
telah dibahas pada bab 3. Sedangkan nilai secara teoritis pada titik test B
didapat dari data sheet IC 74HC14.
Secara hipotesa perbedaan antara nilai teoritis dengan hasil pengukuran
disebabkan adanya cahaya lain, selain sinar infra merah dari LED infra merah
yang masuk ke dalam fototransistor, sebagai contoh adalah sinar metahari
yang mengandung sinar infra merah. Selain itu perbedaan juga disebabkan alat
ukur yang kurang presisi.
Perubahan output 4,9V ke 0,6V dari yang masuk ke schmitt trigger
sudah cukup untuk memicu perubahan output schmitt trigger dari logika
rendah ke logika tinggi. Menurut datasheet tegangan threshold menuju logika
rendah sebesar 2.7V. Sedangkan tegangan threshold menuju logika tinggi
sebesar 1.8V. Jadi output fototransistor sebesar 4,9V dan 0,6V sudah cukup
untuk memicu schmitt trigger. Karena IC 74HC14 adalah inverting schmitt
trigger maka saat mendapat input sebesar 0,6V maka output dari schmitt
trigger sebesar 3,7V, dan saat mendapat input sebesar 4,9V maka output dari
schmitt trigger sebesar 0,4V.
4.3 Pembahasan Pada Mikronkontroler
Pembahasan pada mikrokontroler ini berisi tentang hasil akhir dari alat
yang dibuat. Mikrokontroler pada bagian bus akan menerima input dari sensor
dan akan menampilkan hasil dari jumlah penumpang di bus. Setiap ada
penumpang masuk, mikrokontroler akan mengirim data serial ke
mikrokontroler pol, kemudian mikrokontroler akan menampilkan jumlah
penumpang yang naik di bus. Pada gambar 4.4 menunjukkan hasil akhir dari
(a) (b)
(c)
Gambar 4.4 Hasil akhir alat
Pada gambar 4.4 terlihat ada tiga bagian, dapat terlihat pada bagian (a)
adalah saat alat dinyalakan dengan penampil jumlah penumpang bus dan pol
menunjukan angka 00 dan 0000. Saat karcis menutupi sensor terlihat penampil
pada bagian bus menjadi 01 yang menandakan jumlah penumpang yang ada di
bus. Pada bagian pol juga akan bertambah menjadi 0001. Saat penumpang
keluar seperti yang ditunjukkan pada bagian (c) jumlah penumpang di bus
akan berkurang akan tetapi angka yang ditunjukkan pada bagian pol tetap
tidak berkurang.
Dari hasil pengamatan ini dapat disimpulkan alat ini sudah sesuai
dengan perancangan, dimana alat yang dibuat dapat menampilkan jumlah
penumpang di bus dan juga sudah dapat mengirimkan data serial ke bagian
Komunikasi serial yang digunakan pada tugas akhir ini adalah komunikasi
langsung dari mikrokontroler pada bus ke mikrokontroler pada pol, tanpa adanya
modulasi ataupun menggunakan standar komunikasi serial seperti RS-232 dan
lain-lain. Sehingga hasil pengamatan sinyal komunikasi serial dengan
menggunakan osiloskop digital tampak pada gambar 4.5.
Komunikasi serial akan terjadi jika saat penumpang naik. Pada saat itu
mikrokontroler di bus akan mengirimkan sinyal berupa data biner 8 digit yaitu
00100110b atau 26h. Dari pengamatan didapat hasil sebagai berikut:
Gambar 4.5 Sinyal Komunikasi Serial
Komunikasi serial selalu dimulai dengan startbit berupa bit 0 (logika
rendah) dan ditutup dengan stopbit berupa bit 1 (logika tinggi). Data yang
dikirim terletak diantara startbit dan stopbit, sehingga kecepatan transfer
data/bitrate dihitung sebagai selang waktu antara startbit dan stopbit. Dari
hasil pengamatan dengan time div pada osiloskop sebesar 1ms/div didapat
bit yang satu dengan bit yang lain sebesar 833.3 µs. Jadi bit rate/jumlah bit
tiap detik yang dikirimkan sebanyak:
Bitrate = s µ 3 . 833 1 =1204 bps
Hasil dari perhitungan bitrate =1204 bps, dimana hasil ini mendekati
5.1. Kesimpulan
Berdasarkan perancangan dan penelitian yang telah dilakukan, maka
dapat diperoleh beberapa kesimpulan umum sebagai berikut :
1. Data di seven segment pada bus akan bertambah (increment) apabila ada
karcis yang masuk atau kondisi di kaki P3.3 rendah, dan akan berkurang
(decrement) bila ada interupsi eksternal 0 (penumpang turun).
2. Jumlah penumpang yang ditampilkan di seven segment pada bus hanya
sebanyak 60.
3. Pada seven segment di pol menampilkan jumlah penumpang yang naik
bus dalam satu hari. Seven segment di pol mampu menampilkan hingga
9.999 jumlah penumpang. Ketika data diterima terjadilah interupsi serial,
tetapi data tersebut harus 26h, sehingga terjadilah kenaikan (increment).
4. Pengaturan untuk transfer data serial meliputi : komunikasi satu arah
(simplex), dengan kecepatan transfer data sebesar 1200 bps, 8 bit data,
bit start berupa bit 0, 1 bit stop, tanpa bit paritas.
5.2 Saran
Sehubungan alat ini sangat sederhana, maka penulis mencoba untuk
memberikan saran-saran agar dapat menjadi lebih baik, antara lain:
1. Jika diterapkan pada bus yang sebenarnya sebaiknya komunikasi data
serial dimodulasi dengan gelombang radio.
Agfianto Eko Putra, 2003, Belajar Mikrokontroler AT89C51/52/55 (Teori dan Aplikasi), Edisi kedua, Gava Media, Yogyakarta, 2003
Malvino, A.P, 1989, Prinsip-Prinsip Elektronika, Edisi Ketiga, Penerbit Erlangga, Jakarta
Roger L. Tokheim, 1994, Prinsi-Prinsip Digital, Edisi Kedua, Penerbit Erlangga, Jakarta
Paulus Andi Nalwan, 2003, Panduan Praktis Teknik Antarmuka dan Pemrograman Mikrokontroler AT89C51, PT Elex Media Komputindo, Jakarta
Paulus Andi Nalwan, Timer 89C51, http://delta-electronic.com
Robert Boylestad, / Louis Nashelsky, 1989, Electronic A Survey Of Electrical Enginnering Principles, Prentice hall international inc.
Texas Instrument, 1994, TCM3105DWL, TCM3105JE, TCM3105JL, TCM3105NE. TCM3105NL FSK Modem, Texas Instruments Inc., Dallas, USA
3 0002 org 03h 4 0003 ljmp turun 5 0006 org 30h 6 0030 mulai: 7 0030 mov p0,#0 8 0033 mov r0,#0 9 0035 mov scon,#40h 10 0038 mov tmod,#20h 11 003B mov th1,#0e8h 12 003E setb tr1 13 0040 setb p3.3 14 0042 setb ex0 15 0044 setb ea 16 0046 naik: 17 0046 jnb p3.3,$ 18 0049 inc r0 19 004A tampil1:
20 004A mov a,r0
21 004B xrl a,#61 22 004D jnz tampil1 23 004F mov r0,#0eeh 24 0051 lcall ubah&tampil 25 0054 lcall kirim_pol 26 0057 jb p3.3,$
27 005A ajmp naik
28 005C turun:
29 005C clr ex0
30 005E push acc
31 0060 dec r0 32 0061 tampil2: 33 0061 mov a,r0 34 0062 xrl a,#99h 35 0064 jnz tampil2 36 0066 mov r0,#00 37 0068 lcall ubah&tampil 38 006B jnb p3.2,$
39 006E pop acc
40 0070 setb ex0
41 0072 reti
42 0073 ubah&tampil:
43 0073 mov b,#10
50 007E kirim_pol: 51 007E clr ea 52 0080 clr es 53 0082 mov a,#26h 54 0084 mov sbuf,a 55 0086 jnb ti,$ 56 0089 clr ti 57 008B setb es 58 008D setb ea 59 008F ret
2 0000 ajmp mulai 3 0002 org 23h 4 0023 ajmp data_bis 5 0025 org 30h 6 0030 mulai: 7 0030 mov p0,#0 8 0033 mov p2,#0 9 0036 mov scon,#50h 10 0039 mov tmod,#20h 11 003C mov th1,#0e8h 12 003F setb tr1 13 0041 setb es 14 0043 setb ea 15 0045 ajmp $ 16 0047 data_bis: 17 0047 clr es 18 0049 jnb ri,$ 19 004C clr ri
20 004E mov a,sbuf
21 0050 cjne a,#26h,data_salah 22 0053 inc dptr 23 0054 lcall ubah_bcd 24 0057 lcall tampil 25 005A data_salah: 26 005A setb es 27 005C reti 28 005D ubah_bcd: 29 005D mov r1,dph 30 005F mov r2,dpl 31 0061 MOV R3,#0 32 0063 MOV R4,#0 33 0065 MOV R5,#0 34 0067 MOV R6,#0 35 0069 MOV R7,#0 36 006B MOV B,#10
37 006E MOV A,R2 38 006F DIV AB 39 0070 MOV R3,B 40 0072 MOV B,#10 41 0075 DIV AB 42 0076 MOV R4,B 43 0078 MOV R5,A
49 0081 MOV B,#10 50 0084 DIV AB 51 0085 MOV R3,B 52 0087 ADD A,#5 53 0089 ADD A,R4 54 008A MOV B,#10 55 008D DIV AB 56 008E MOV R4,B 57 0090 ADD A,#2 58 0092 ADD A,R5 59 0093 MOV B,#10 60 0096 DIV AB 61 0097 MOV R5,B 62 0099 CJNE R6,#0,ADD_IT 63 009C SJMP CONTINUE 64 009E ADD_IT:
65 009E ADD A,R6 66 009F CONTINUE: 67 009F MOV R6,A
68 00A0 DJNZ R1,HIGH_BYTE 69 00A2 MOV B, #10
70 00A5 MOV A,R6 71 00A6 DIV AB 72 00A7 MOV R6,B 73 00A9 MOV R7,A 74 00AA ENDD:
75 00AA ret
77 00AB tampil:
78 00AB mov a,r6
79 00AC swap a
80 00AD add a,r5
81 00AE mov p2,a
82 00B0 mov a,r4
83 00B1 swap a
84 00B2 add a,r3
85 00B3 mov p0,a
1
• Fully Static Operation: 0 Hz to 33 MHz
• Three-level Program Memory Lock
• 128 x 8-bit Internal RAM
• 32 Programmable I/O Lines
• Two 16-bit Timer/Counters
• Six Interrupt Sources
• Full Duplex UART Serial Channel
• Low-power Idle and Power-down Modes
• Interrupt Recovery from Power-down Mode
• Watchdog Timer
• Dual Data Pointer
• Power-off Flag
• Fast Programming Time
• Flexible ISP Programming (Byte and Page Mode)
Description
The AT89S51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of in-system programmable Flash memory. The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the indus-try-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory pro-grammer. By combining a versatile 8-bit CPU with in-system programmable Flash on a monolithic chip, the Atmel AT89S51 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications. The AT89S51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, two 16-bit timer/counters, a five-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89S51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM con-tents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset.
8-bit
Microcontroller
with 4K Bytes
In-System
Programmable
Flash
AT89S51
Rev. 2487A–10/012
AT89S51
2487A–10/01 TQFP 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 P1.2 P1.3 P1.4 (MOSI) P1.5 (MISO) P1.6 (SCK) P1.7 RST (RXD) P3.0 (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND P0.1 (AD1) P0.2 (AD2) P0.3 (AD3) P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA/VPP ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9) P2.0 (A8) 1 2 3 4 5 6 7 8 9 10 11 33 32 31 30 29 28 27 26 25 24 23 44 43 42 41 40 39 38 37 36 35 34 12 13 14 15 16 17 18 19 20 21 22 (MOSI) P1.5 (MISO) P1.6 (SCK) P1.7 RST (RXD) P3.0 NC (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA/VPP NC ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13)P1.4 P1.3 P1.2 P1.1 P1.0 NC VCC P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3)
(WR) P3.6 (RD) P3.7
XTAL2 XTAL1 GND GND (A8) P2.0 (A9) P2.1
(A10) P2.2 (A11) P2.3 (A12) P2.4
7 8 9 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 31 30 29 (MOSI) P1.5 (MISO) P1.6 (SCK) P1.7 RST (RXD) P3.0 NC (TXD) P3.1 (INT0) P3.2 (INT1) P3.3 (T0) P3.4 (T1) P3.5 P0.4 (AD4) P0.5 (AD5) P0.6 (AD6) P0.7 (AD7) EA/VPP NC ALE/PROG PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) 6 5 4 3 2 1 44 43 42 41 40 18 19 20 21 22 23 24 25 26 27 28 (WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND NC (A8) P2.0 (A9) P2.1 (A10) P2.2 (A11) P2.3 (A12) P2.4
3 2487A–10/01 PORT 2 DRIVERS PORT 2 LATCH P2.0 - P2.7 FLASH PORT 0 LATCH RAM PROGRAM ADDRESS REGISTER BUFFER PC INCREMENTER PROGRAM COUNTER DUAL DPTR INSTRUCTION REGISTER B REGISTER
INTERRUPT, SERIAL PORT, AND TIMER BLOCKS
STACK POINTER ACC TMP2 TMP1 ALU PSW TIMING AND CONTROL PORT 1 DRIVERS P1.0 - P1.7 PORT 3 LATCH PORT 3 DRIVERS P3.0 - P3.7 OSC GND VCC PSEN ALE/PROG EA / VPP RST RAM ADDR. REGISTER PORT 0 DRIVERS P0.0 - P0.7 PORT 1 LATCH WATCH
4
AT89S51
2487A–10/01
GND Ground.
Port 0 Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight
TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs.
Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pull-ups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pull-ups are required during program verification.
Port 1 Port 1 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 1 output buffers can
sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups.
Port 1 also receives the low-order address bytes during Flash programming and verification.
Port 2 Port 2 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 2 output buffers can
sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups.
Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Spe-cial Function Register.
Port 2 also receives the high-order address bits and some control signals during Flash pro-gramming and verification.
Port 3 Port 3 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 3 output buffers can
sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pull-ups.
Port 3 receives some control signals for Flash programming and verification.
Port 3 also serves the functions of various special features of the AT89S51, as shown in the following table.
Port Pin Alternate Functions
P1.5 MOSI (used for In-System Programming) P1.6 MISO (used for In-System Programming) P1.7 SCK (used for In-System Programming)
5 2487A–10/01
RST Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device. This pin drives High for 98 oscillator periods after the Watchdog times out. The DIS-RTO bit in SFR AUXR (address 8EH) can be used to disable this feature. In the default state of bit DISRTO, the RESET HIGH out feature is enabled.
ALE/PROG Address Latch Enable (ALE) is an output pulse for latching the low byte of the address during
accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming.
In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory.
If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.
PSEN Program Store Enable (PSEN) is the read strobe to external program memory.
When the AT89S51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.
EA/VPP External Access Enable. EA must be strapped to GND in order to enable the device to fetch
code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.
EA should be strapped to VCC for internal program executions.
This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming.
XTAL1 Input to the inverting oscillator amplifier and input to the internal clock operating circuit.
XTAL2 Output from the inverting oscillator amplifier
P3.0 RXD (serial input port) P3.1 TXD (serial output port) P3.2 INT0 (external interrupt 0) P3.3 INT1 (external interrupt 1) P3.4 T0 (timer 0 external input) P3.5 T1 (timer 1 external input)
P3.6 WR (external data memory write strobe) P3.7 RD (external data memory read strobe)
6
AT89S51
2487A–10/01 Table 1. AT89S51 SFR Map and Reset Values
0F8H 0FFH 0F0H B 00000000 0F7H 0E8H 0EFH 0E0H ACC 00000000 0E7H 0D8H 0DFH 0D0H PSW 00000000 0D7H 0C8H 0CFH 0C0H 0C7H 0B8H IP XX000000 0BFH 0B0H P3 11111111 0B7H 0A8H IE 0X000000 0AFH 0A0H P2 11111111 AUXR1 XXXXXXX0 WDTRST XXXXXXXX 0A7H 98H SCON 00000000 SBUF XXXXXXXX 9FH 90H P1 11111111 97H 88H TCON 00000000 TMOD 00000000 TL0 00000000 TL1 00000000 TH0 00000000 TH1 00000000 AUXR XXX00XX0 8FH 80H P0 11111111 SP 00000111 DP0L 00000000 DP0H 00000000 DP1L 00000000 DP1H 00000000 PCON 0XXX0000 87H
7 2487A–10/01
products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.
Interrupt Registers: The individual interrupt enable bits are in the IE register. Two priorities
can be set for each of the five interrupt sources in the IP register.
Dual Data Pointer Registers: To facilitate accessing both internal and external data memory,
two banks of 16-bit Data Pointer Registers are provided: DP0 at SFR address locations 82H-83H and DP1 at 84H-85H. Bit DPS = 0 in SFR AUXR1 selects DP0 and DPS = 1 selects DP1. The user should always initialize the DPS bit to the appropriate value before accessing the respective Data Pointer Register.
Table 2. AUXR: Auxiliary Register
AUXR Address = 8EH Reset Value = XXX00XX0B Not Bit
Addressable
– – – WDIDLE DISRTO – – DISALE
Bit 7 6 5 4 3 2 1 0
– Reserved for future expansion DISALE Disable/Enable ALE
DISALE Operating Mode
0 ALE is emitted at a constant rate of 1/6 the oscillator frequency 1 ALE is active only during a MOVX or MOVC instruction DISRTO Disable/Enable Reset out
DISRTO
0 Reset pin is driven High after WDT times out 1 Reset pin is input only
WDIDLE Disable/Enable WDT in IDLE mode WDIDLE
0 WDT continues to count in IDLE mode 1 WDT halts counting in IDLE mode