repository.usd.ac.idrepository.usd.ac.id/27974/2/005114036_full.pdf · halaman persembahan...
Post on 26-Oct-2020
0 Views
Preview:
TRANSCRIPT
PERTUNJUKAN LASER DIGITAL
TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik
Program Studi Teknik Elektro
Disusun oleh:
LEO AGUNG CAHYONO
NIM: 005114036
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
DIGITAL LASER SHOW
FINAL PROJECT
Presented as partial fulfillment of the requirements to obtain The Sarjana Teknik Degree
In Electrical Engineering Study Program
By:
LEO AGUNG CAHYONO
NIM: 005114036
ELECTRICAL ENGINEERING DEPARTMENT
ENGINEERING FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
HALAMAN PERSEMBAHAN
+Tftfpsboh!ujebl!ejojmbj!ebsj!tfcfsbqb!ujohhj!ejb!nfmpnqbu-!ubqj!ebsj!
tfcfsbqb!ujohhj!ejb!nfmfoujoh!lfncbmj!tfufmbi!ejb!kbuvi+!
“Setiap kejadian dalam hidup adalah takdir dan kita tidak dapat merubahnya. Namun,
bagaimana kita menyikapinya merupakan pilihan bebas kita. Dan pilihan bebas kita itulah yang
akan menentukan takdir kita selanjutnya”
“Cinta itu putih, namun jangan pernah lupa bahwa putih itu
sebenarnya mejikuhibiniu”
Skripsi ini kupersembahkan untuk:
Baba⁄
Bapak, Ibu, dan Adikku⁄
Teman-teman⁄
Siapa saja⁄
vi
KATA PENGANTAR
Puji syukur sebesar-besarnya penulis panjatkan kepada Tuhan Yang Maha
Esa, atas berkah, rahmat, cobaan dan masalah, kesulitan, serta kasih-Nya yang
dilimpahkan kepada penulis, sehingga penulis dapat menyelesaikan skripsi ini dengan
baik.
Penulisan skripsi ini merupakan salah satu syarat untuk menyelesaikan studi
penulis dan untuk memperoleh gelar Sarjana Teknik Program Studi Teknik Elektro di
Universitas Sanata Dharma. Penulisan skripsi ini didasarkan pada hasil-hasil yang
penulis peroleh mulai dari perancangan, pembuatan alat sampai pada pengujian alat
yang, juga kemungkinan pengembangannya.
Dengan selesainya Tugas Akhir yang memberikan banyak sekali pembelajaran
dan pengembangan bagi penulis baik dari segi teknis maupun personalitas ini, maka
penulis ingin menyampaikan rasa terima kasih yang sebesar-besarnya kepada:
1. Shrii Shrii Ananda Murtii, as the lovely Baba. Thanks for everything, Baba.
2. Pak Djoko selaku pembimbing I, sekaligus sebagai mentor, dan motivator
yang selalu menemani dan memberikan semangat, serta tidak pernah marah
ataupun kesal walaupun penulis sering “menghilang”.
3. Pak Tjendro, selaku pembimbing II, yang selalu tersenyum dan penuh
pengertian.
4. Para dosen, staf administrasi, serta laboran yang telah banyak memberikan
ilmu pengetahuan, bimbingan, serta kesempatan untuk studi dan juga
menyelesaikannya dengan baik.
5. Bapak, Ibu, Tante Niek, Om Dikin dan Adikku Yus, yang selalu mencintai,
mendukung dan mendoakanku.
6. Rekan-rekan di teknik elektro: Teguh, Wayan, Andan, Titus, Poer, BK, BT,
Stephen, Dewi, Tika, Wahyu, Supri, Bram dan teman-teman lainnya yang
selalu menemani dan memberi masukan serta semangat dalam perjuangan ini.
7. Rekan-rekan di AMURT: Dada Shiila, Paunkaj, Dada Satya, Dada Ratnesh,
Didi Vitaraga, “mother” Amrta, Ista, mbak Sita dan mas Taufik, Mahadeva,
mas Suman, Aravinda, Prabha, dan Baskar atas dukungan, kasih, dan
pengertiannya selama ini. Terus berjuang teman-teman.
8. Serta berbagai pihak yang tidak bisa disebutkan satu persatu di sini.
vii
Penulis menyadari bahwa dalam karya tulis ini masih terdapat banyak
kekurangan dan masih jauh dari sempurna. Oleh akrena itu segala bentuk masukan,
baik berupa kritik maupun saran yang membangun sangat penulis harapkan dari
pembaca, demi perbaikan dan kesempurnaan skripsi ini.
Terima kasih Tuhan.
Yogyakarta, 27 Maret 2007
Penulis
viii
PERTUNJUKAN LASER DIGITAL
Disusun oleh: Leo Agung Cahyono
005114036
INTISARI Sinar laser telah digunakan secara luas dalam berbagai bidang kehidupan, seperti: medis, teknologi elektronika dan komunikasi, militer, serta hiburan. Sebagai sarana hiburan, sinar laser dapat digunakan untuk membangkitkan pola-pola geometris tertentu dengan cara memantulkannya ke sebuah atau beberapa cermin yang diputar dengan kecepatan dan arah putaran tertentu. Dalam penelitian ini, digunakan dua buah motor DC untuk memutar cermin yang akan digunakan sebagai sasaran pantulan sinar laser. Untuk mengendalikan kecepatan motor digunakan suatu metode pengendalian tegangan yang disebut PWM (Pulse Width Modulation). PWM dihasilkan oleh perangkat mikrokontroler AT89S51 dengan derajat kenaikan duty cycle sebesar 1%. Untuk dapat menghasilkan putaran yang dapat berputar ke dua arah, baik searah maupun berlawanan jarum jam, digunakan driver berupa jembatan H, yang terintegrasi dalam IC L293D. Masukan untuk pengendalian kecepatan dan arah tersebut dapat dilakukan melalui tombol push-button ataupun menggunakan remote control. Pola-pola yang dihasilkan pada penelitian ini menunjukkan bahwa bentuk dan arah gerakan pola-pola tersebut ditentukan oleh kecepatan dan arah putar cermin pemantulnya. Kata kunci : Laser, PWM, remote control, jembatan H, motor DC
ix
DIGITAL LASER SHOW
By: Leo Agung Cahyono
005114036
ABSTRACT Laser has been widely use in many fields, such as: medic, communication and electronic technology, military and also entertainment. As an entertainment tool, laser can be used to generate several geometrical patterns by reflecting it to one or some mirrors which is rotated with a particular speed and direction. In this research, two DC motors are used to rotate two mirrors which are going to be used as a target of the laser reflection. To controlled the speed of the motors, a voltage-controlling methoed called Pulse Width Modulation (PWM) is implemented. The PWM is generated with 1% duty cycle increment or decrement by AT89S51 microcontroller. To obtain a rotation which can turn in two directions, clock and counter clock wise, an H-Bridge driver which is integrated in L293D driver is used. The inputs to control the speed and direction use push-button and remote control. The patterns that are generated in this research show that the shapes and the movement directions of those patterns are determined by the speed and the rotation direction of the reflecting mirrors. Keywords : Laser, PWM, remote control, H-Bridge, DC Motors
x
DAFTAR ISI
Halaman Judul ........................................................................................................... i
Halaman Persetujuan ................................................................................................. iii
Halaman Pengesahan ................................................................................................. iv
Halaman Pernyatan Keaslian Karya .......................................................................... v
Halaman Persembahan............................................................................................... vi
Kata Pengantar ........................................................................................................... vii
Intisari ....................................................................................................................... ix
Abstract ...................................................................................................................... x
Daftar Isi .................................................................................................................... xi
Daftar Gambar ........................................................................................................... xiv
Daftar Tabel ............................................................................................................... xvi
Daftar Lampiran......................................................................................................... xvii
BAB I. PENDAHULUAN
1.1. Latar Belakang Masalah ................................................................................. 1
1.2. Perumusan Masalah ........................................................................................ 1
1.3. Pembatasan Masalah....................................................................................... 1
1.4. Tujuan dan Manfaat Penelitian ....................................................................... 2
1.5. Metodologi Penelitian..................................................................................... 2
1.6. Sistematika Penulisan ..................................................................................... 3
BAB II. DASAR TEORI
2.1. Pola-Pola Dasar Hasil Tampilan Perangkat Laser Show................................ 4
2.2. Kurva Lissajous .............................................................................................. 5
2.3. Hypotrochoid .................................................................................................. 6
2.3.1. Hypocycloid........................................................................................... 7
2.3.2. Rose........................................................................................................ 9
2.4. Laser .............................................................................................................. 10
2.5. Keunggulan Utama Laser .............................................................................. 11
2.6. Mikrokontroler AT89S51 ............................................................................... 12
2.6.1. Pengenalan Mikrokontroler ................................................................... 12
xi
2.6.2. Struktur Memori..................................................................................... 12
2.6.2.1. RAM Internal ................................................................................ 13
2.6.2.2. Special Function Register ............................................................. 14
2.6.2.3. Flash PEROM ............................................................................... 14
2.6.3. Timer...................................................................................................... 14
2.6.3.1. Timer Untuk Menghasilkan Tunda Waktu .................................. 16
2.6.3.2. Tunda Waktu Menggunakan Looping ......................................... 16
2.6.4. Interupsi ................................................................................................. 17
2.7. Rangkaian Single Chip Mikrokontroler ......................................................... 19
2.8. Remote Control ............................................................................................... 20
2.8.1. Remote Control Sony............................................................................. 21
2.8.2. IR Receiver Module............................................................................... 22
2.9. Motor DC ....................................................................................................... 22
2.10. Penampil Seven-Segment ............................................................................. 24
2.11. Pulse Width Modulation ............................................................................... 25
2.12. Transistor Sebagai Saklar ............................................................................. 26
2.12.1. Kondisi Cuf-off .................................................................................... 27
2.12.2. Kondisi Saturasi ................................................................................... 27
2.13. H-Bridge ....................................................................................................... 28
BAB III. PERANCANGAN
3.1. Diagram Kotak Laser Digital.......................................................................... 31
3.2. Konstruksi Dasar Digital Laser Show............................................................. 33
3.3. Input Interface................................................................................................. 35
3.3.1. Pengontrolan Menggunakan Tombol Push-Button................................ 35
3.3.2. Pengontrolan Secara Nirkabel Menggunakan Remote Control ............. 36
3.4. Driver Motor DC............................................................................................. 37
3.5. Tampilan Seven-Segment ............................................................................... 39
3.6. Perancangan Perangkat Lunak........................................................................ 41
3.6.1. Diagram Alir Utama .............................................................................. 41
3.6.2. Diagram alir Proses Inisilasisasi Utama ................................................ 42
3.6.3. Interupsi Generator PWM...................................................................... 42
3.6.4. Diagram Alir Interupsi Penekanan Tombol ........................................... 43
3.6.4.1. Diagram Alir Subrutin Tunda Untuk Mengatasi Efek Bouncing . 45
xii
3.6.4.2. Diagram Alir Subrutin Pengubahan Arah Motor.......................... 46
3.6.5. Diagram Alir Pendeteksian Remote Control ......................................... 47
3.6.5.1. Diagram Alir Subrutin Tunda 2,45 mS......................................... 51
3.6.6. Interupsi Scanning 7-Segment ............................................................... 52
3.6.6.1. Diagram alir Subrutin Pengubahan Data dari Heksa Desimal
Menjadi BCD................................................................................ 53
BAB IV. PENGAMATAN DAN PEMBAHASAN
4.1. Pengamatan Terhadap Sinyal Keluaran IR Receiver Module ........................ 56
4.2. Pengamatan Terhadap Pulsa PWM................................................................. 57
4.3. Hubungan kecepatan motor dengan presentase PWM.................................... 59
4.4. Hubungan PWM, kecepatan motor, dan pola yang dihasilkan....................... 64
4.5. Bentuk fisik alat .............................................................................................. 66
4.6. Penempatan mekanis motor, cermin, dan laser............................................... 67
BAB V. KESIMPULAN DAN SARAN
5.1. Kesimpulan .................................................................................................... 69
5.2. Saran .............................................................................................................. 69
Daftar Pustaka .............................................................................................................. 70
Lampiran
xiii
DAFTAR GAMBAR
Gambar 2.1. Prinsip dasar operasi laser show ......................................................... 4
Gambar 2.2. Pola dasar hasil tampilan laser show................................................... 5
Gambar 2.3. Beberapa contoh kurva Lissajous ...................................................... 6
Gambar 2.4. Ilustrasi definisi hypotrochoid ............................................................ 6
Gambar 2.5. Ilustrasi definisi hypocycloid ............................................................. 7
Gambar 2.6. Hypocycloid dengan n berupa bilangan integer ................................. 8
Gambar 2.7. Hypocycloid dengan a/b berupa bilangan rasional ............................ 8
Gambar 2.8. Hypocycloid dengan a/b berupa bilangan irrasional .......................... 8
Gambar 2.9. Rose dengan n berupa bilangan ganjil dan genap .............................. 9
Gambar 2.10. Rose dengan n berupa bilangan rasional ............................................ 9
Gambar 2.11. Rose dengan n berupa bilangan irrasional .......................................... 10
Gambar 2.12. Alamat RAM internal dan Flash PEROM .......................................... 13
Gambar 2.13. Register TMOD................................................................................... 14
Gambar 2.14. Register TCON ................................................................................... 16
Gambar 2.15. Register IE........................................................................................... 18
Gambar 2.16. Sumber interupsi ................................................................................. 18
Gambar 2.17. Rangkaian single chip microcontroller ............................................... 19
Gambar 2.18. Rangkaian reset secara manual ........................................................... 20
Gambar 2.19. Pemodulasian sinyal infra merah ........................................................ 21
Gambar 2.20. Pengkodean lebar pulsa SIRC Sony.................................................... 21
Gambar 2.21. Protokol SIRC Sony............................................................................ 22
Gambar 2.22. Diagram blok receiver infra merah..................................................... 22
Gambar 2.23. Prinsip kerja motor DC ....................................................................... 23
Gambar 2.24. Seven-segment .................................................................................... 24
Gambar 2.25. Pengkabelan internal seven-segment .................................................. 24
Gambar 2.26. Sinyal PWM dengan duty cycle bervariasi ......................................... 26
Gambar 2.27. Transistor NPN sebagai saklar pada kondisi ideal versi electron flow 26
Gambar 2.28. Transistor PNP sebagai saklar pada kondisi ideal versi electron flow 28
Gambar 2.29. Rangkaian dasar sebuah H-bridge....................................................... 28
Gambar 2.30. Diagram internal IC L293D ................................................................ 29
Gambar 3.1. Diagram kotak digital laser show........................................................ 32
xiv
Gambar 3.2. Layout digital laser show .................................................................... 34
Gambar 3.3. Rangkaian antara push-button dengan mikrokontroler ....................... 35
Gambar 3.4. Rangkaian antara IR Receiver dengan mikrokontroler....................... 37
Gambar 3.5. Rangkaian driver motor DC................................................................ 37
Gambar 3.6. Rangkaian seven-segment................................................................... 39
Gambar 3.7. Diagram alir utama.............................................................................. 41
Gambar 3.8. Diagram alir inisialisasi mikrokontroler ............................................. 42
Gambar 3.9. Diagram alir interupsi timer 1: PWM ................................................. 43
Gambar 3.10. Diagram alir interupsi penekanan tombol ........................................... 44
Gambar 3.11. Diagram alir subrutin tunda bouncing ................................................ 45
Gambar 3.12. Diagram alir subrutin tunggu tombol dilepas ..................................... 46
Gambar 3.13. Diagram alir interupsi pendeteksian remote control ........................... 48
Gambar 3.14. Diagram alir subrutin tunda 2,45 mS .................................................. 51
Gambar 3.15. Diagram alir tampilan seven-segment................................................. 52
Gambar 3.16. Diagram alir subrutin pengubahan data dari heksa decimal menjadi
BCD .................................................................................................... 54
Gambar 3.17. Diagram alir subrutin pengecekan dan pengubahan nibble ................ 55
Gambar 4.1. Sinyal keluaran IR Receiver module .................................................. 56
Gambar 4.2. Bentuk pulsa PWM dengan duty cycle 63%....................................... 57
Gambar 4.3. Hubungan kecepatan putar searah jarum jam (CW) motor 1 terhadap
presentase PWM ................................................................................ 60
Gambar 4.4. Hubungan kecepatan putar berlawanan jarum jam (CCW) motor 1
terhadap presentase PWM.................................................................. 61
Gambar 4.5. Hubungan kecepatan putar searah jarum jam (CW) motor 2 terhadap
presentase PWM ................................................................................ 60
Gambar 4.6. Hubungan kecepatan putar berlawanan jarum jam (CCW) motor 2
terhadap presentase PWM.................................................................. 60
Gambar 4.7. Bentuk fisik alat .................................................................................. 66
Gambar 4.8. Penempatan mekanis motor, cermin, dan laser................................... 67
xv
DAFTAR TABEL
Tabel 2.1. Jenis-jenis laser besera panjng gelombang dan penggunaannya .............. 10
Tabel 2.2. Mode kerja timer....................................................................................... 15
Tabel 2.3. Tabel kebenaran IC L293D....................................................................... 30
Tabel 3.1. Arah putaran motor DC ............................................................................ 38
Tabel 3.2. Interupsi yang digunakan pada program Digital Laser Show................... 41
Tabel 3.3. Perancangan fungsi dari tombol remote control yang ditekan ................. 50
Tabel 4.1. Fungsi dari tombol remote control yang ditekan ...................................... 57
Tabel 4.2. Data pengamatan duty cycle PWM .......................................................... 58
Tabel 4.3. Kecepatan motor 1 saat berputar searah jarum jam (CW)........................ 60
Tabel 4.4. Kecepatan motor 1 saat berputar berlawanan jarum jam (CCW)............. 61
Tabel 4.5. Kecepatan motor 2 saat berputar searah jarum jam (CW)........................ 62
Tabel 4.6. Kecepatan motor 2 saat berputar berlawanan jarum jam (CCW)............. 63
Tabel 4.7. Pola yang terbentuk saat kedua motor berputar searah............................. 64
Tabel 4.8. Pola yang terbentuk saat kedua motor berputar berlawanan arah............. 65
xvi
DAFTAR LAMPIRAN
Lampiran I Rangkaian Digital Laser Show
Lampiran II Source code program Digital Laser Show
Lampiran III Kode tombol remote control SONY RM-687C
Lampiran IV Datasheet mikrokontroler Atmel AT89S51
Lampiran V Datasheet IC L293D
Lampiran VI Datasheet Transistor BC516
Lampiran VII Datasheet Seven-segment MAN5750
xvii
BAB I
PENDAHULUAN
1.1. Latar Belakang
Sejak pertama kali berhasil diujicobakan pada tahun 1960 oleh fisikawan
Amerika Serikat, Theodore Harold Maiman (Microsoft, 2005), teknologi dan aplikasi
laser terus berkembang dengan pesat. Hal ini mengakibatkan berbagai bidang yang
mengaplikasikan laser dalam sistemnya seperti medis, teknologi elektronika dan
komunikasi, militer, serta hiburan juga mendapat berbagai kemajuan yang cukup
berarti.
Dalam bidang hiburan, laser digunakan untuk mendapatkan efek-efek visual
yang biasanya mengiringi sebuah pertunjukan kembang api. Efek-efek sinar laser
telah memancing rasa keingintahuan banyak orang tentang apa sebenarnya sinar laser
itu dan bagaimana caranya menghasilkan pola-pola yang indah tersebut.
Seperangkat alat profesional akan menjadi terlalu berlebihan apabila hanya
akan digunakan untuk memuaskan rasa keingintahuan tersebut. Karena selain mahal,
tentu juga membutuhkan sumber daya listrik dan standar operasional yang tinggi.
Untuk itu, diperlukan suatu miniatur yang lebih sederhana namun tetap dapat
digunakan sebagai sarana hiburan sekaligus pembelajaran.
1.2. Perumusan Masalah
Dari latar belakang masalah tersebut diatas, dapat dirumuskan menjadi
beberapa masalah sebagai berikut:
1. Bagimana menghasilkan suatu perangkat keras laser show yang kompak dan
portable namun tetap dapat menghasilkan berbagai pola-pola visual?
2. Bagaimana membuat program untuk mendukung perangkat tersebut?
3. Bagaimana menghasilkan perangkat laser show yang user friendly?
4. Bagaimana menghasilkan perangkat laser show yang dapat dikendalikan dari
jauh menggunakan remote control?
1.3. Pembatasan Masalah
Dalam pembuatan peralatan laser show digital ini dilakukan beberapa batasan
sebagai berikut:
1
1. Metode untuk mendapatkan berbagai efek visual adalah dengan memantulkan
sinar laser pada cermin yang berputar.
2. Pengaturan kecepatan putaran cermin dilakukan dengan metode Pulse Width
Modulation (PWM) secara digital.
3. Besaran kenaikan atau penurunan duty cycle adalah 1%.
4. Isyarat masukan diberikan dengan menekan push button atau menggunakan
remote control infra merah.
5. Motor yang digunakan merupakan motor dc sebanyak dua buah.
6. Mikrokontoler yang digunakan adalah AT89S51 buatan ATMEL.
7. Sumber cahaya laser yang digunakan berasal dari laser pointer.
1.4. Tujuan dan Manfaat Penelitian
Tujuan penelitian ini adalah menghasilkan suatu perangkat digital laser show
yang mampu menghasilkan berbagai pola visual akibat pantulan sinar laser terhadap
dua buah cermin yang berputar. Kedua cermin tersebut diputar pada titik tengahnya
menggunakan dua buah motor DC, dan kecepatannya akan diatur menggunakan
metode PWM atau Pulse Width Modulation.
Manfaat yang didapat user dari penelitian ini adalah peralatan ini dapat
digunakan sebagai sarana hiburan untuk berbagai kalangan pengguna, serta dapat
dijadikan sarana pembelajaran bagi mereka yang tertarik untuk mengembangkan teori
dan aplikasi PWM serta laser dalam dunia sehari-hari khususnya sebagai sarana
hiburan.
Manfaat yang didapatkan penulis dari penelitian ini adalah:
1. Sebagai sarana pembelajaran teori maupun aplikasi sinar laser.
2. Sebagai sarana pembelajaran teori maupun aplikasi PWM.
3. Sebagai sarana pembelajaran teori maupun aplikasi mikrokontroler AT89S51.
4. Sebagai sarana pembelajaran pembuatan penelitian yang terstruktur dan baik.
1.5. Metodologi Penelitian
1. Studi pustaka tentang teknik pengendalian kecepatan dan arah putar untuk
laser show, serta pengiriman sinyal melalui remote control.
2. Perancangan schematic digital laser show.
3. Perancangan software pengendalian kecepatan dan arah putar menggunakan
metode PWM dalam diagram alir (flowchart).
2
4. Perancangan layout PCB digital laser show.
5. Implementasi flowchart digital laser show dalam bentuk progam yang
terstruktur.
6. Pengambilan dan analisis data dari perangkat yang berhasil diperoleh.
1.6. Sistematika Penulisan
BAB I
PENDAHULUAN
Memuat gambaran secara umum mengenai isi tugas akhir
BAB II DASAR TEORI
Memuat tinjauan kepustakaan yang merupakan landasan teori dari
masalah yang akan dibahas
BAB III PERANCANGAN
Memuat penjelasan mengenai perancangan alat, baik secara hardware
maupun software.
BAB IV PENGAMATAN DAN PEMBAHASAN
Memuat data-data peralatan yang dibuat disertai pembahasannya
BAB V KESIMPULAN dan SARAN
3
BAB II
DASAR TEORI
Laser show pada dasarnya merupakan suatu hiburan yang dihasilkan dari
manipulasi sinar laser untuk mendapatkan pola-pola geometris tertentu. Secara sederhana,
hal ini dapat dilakukan dengan memantulkan sinar laser terhadap satu atau beberapa
cermin yang berputar sebelum akhirnya dipantulkan ke dinding atau layar. Tampilan pada
layar inilah yang kemudian dapat diamati sebagai pola-pola geometris (Harsono, 2005).
Gambar 2.1 mengilustrasikan bagaimana hal ini dilakukan.
2
1
3
4
5
Gambar 2.1. Prinsip dasar operasi laser show (Harsono, 2005)
Keterangan gambar:
1. Laser pointer
2. Pantulan sinar laser
3. Cermin
4. Motor DC
5. Pola yang dihasilkan
2.1. Pola-Pola Dasar Hasil Tampilan Perangkat Laser Show
Pola-pola dasar hasil tampilan perangakat laser show berdasarkan kondisi putaran
motor adalah sebagai berikut (Harsono, 2005):
1. Pola dasar saat kedua motor tidak berputar adalah berupa titik sinar laser yang diam.
2. Pola dasar saat salah satu motor berputar sedangkan motor yang lain diam adalah
berbentuk lingkaran seperti diperlihatkan pada gambar 2.2(a)
4
3. Pola dasar saat kedua motor berputar dengan arah yang sama adalah berbentuk seperti
gambar 2.2(b).
4. Pola dasar saat kedua motor berputar dengan arah yang berlawanan yakni CW dan
CCW adalah berbentuk seperti gambar 2.2(c).
(a) (b) (c)
Gambar 2.2. Pola dasar hasil tampilan perangkat laser show (Harsono, 2005) (a) Salah satu berputar (b) Dua motor berputar searah (c) Dua motor berputar berlawanan
2.2. Kurva Lissajous
Dalam matematika, kurva Lissajous (Gambar Lissajous atau Kurva Bowditch)
merupakan grafik dari sistem persamaan parametris seperti ditunjukkan pada persamaan
2.1. Persamaan ini menjelaskan gerakan harmonik kompleks. Keluarga kurva-kurva
semacam ini diteliti oleh Nathaniel Bowditch pada 1815, dan diteliti lebih lanjut oleh
Jules Antoine Lissajous pada 1857 (---, 2007).
(2.1)
Tampilan kurva sangat dipengaruhi oleh perbandingan a/b. Untuk hasil
perbandingan sama dengan satu, grafiknya akan berbentuk elips, dengan kasus khusus
meliputi bentuk lingkaran (untuk A = B, δ = π/2 radian), dan garis (untuk δ = 0). Bentuk
sederhana lissajous yang lain adalah parabola (untuk a/b = 2, δ = π/2). Perbandingan yang
lain akan menghasilkan kurva yang lebih kompleks, yang akan berupa kurva tertutup bila
a/b menghasilkan bilangan rasional (---, 2007).
Sebelum tercipta komputer grafis modern, Lissajous biasanya dihasilkan
menggunakan osiloskop. Dua masukan sinusoidal berbeda fase dihubungkan pada
osiloskop dalam mode X-Y dan perbedaan fase antara keduanya akan ditampilkan dalam
bentuk kurva Lissajous. Lissajous juga dapat dihasilkan secara mekanis dengan
5
menggunakan harmonograph. Dalam osiloskop, diandaikan x adalah Ch1, dan y adalah
Ch2. A merupakan amplitudo Ch1, dan B merupakan amplitudo Ch2. Sedangkan a
merupakan frekuensi Ch1, dan b merupakan frekuensi Ch2 sehingga a/b merupakan
perbandingan frekuensi dari kedua channel, dan δ merupakan beda fase dari kurva sinus
Ch1. Gambar 2.3 memeperlihatkan beberapa kurva Lissajous dengan δ = π/2, a bilangan
ganjil, b bilangan genap, dan |a - b| = 1. (---, 2007).
a = 1, b = 2 (a:b = 1:2)
a = 3, b = 2 (a:b = 3:2)
a = 3, b = 4 (a:b = 3:4)
a = 5, b = 4 (a:b = 5:4)
a = 5, b = 6 (a:b = 5:6)
a = 9, b = 8 (a:b = 9:8)
Gambar 2.3. Beberapa contoh kurva Lissajous (---, 2007)
2.3. Hypotrochoid
Hypotrochoid merupakan suatu roulette yang tercitrakan dari sebuah titik P yang
terhubung dengan sebuah lingkaran dengan radius b, yang bergerak mengelilingi bagian
dalam lingkaran lain dengan radius a, dengan P merupakan jarak h, dari titik pusat
lingkaran yang di dalam. Ilustrasi dari definisi hypotrochoid diperlihatkan pada gambar
2.4. Persamaan parametrik dari sebuah hypotrochoid ditunjukkan seperti pada persamaan
2.2 dan 2.3 (Weisstein, 2006).
Gambar 2.4. Ilustrasi definisi hypotrochoid (Weisstein, 2006)
6
⎟⎠⎞
⎜⎝⎛ −
+−= tb
bahtbax coscos)( (2.2)
⎟⎠⎞
⎜⎝⎛ −
−−= tt
bahtbay coscos)( (2.3)
Bentuk-bentuk khusus dari hypotrochoid antara lain adalah: hypocycloid dengan h
= b, ellipse dengan a = 2b, dan rose dengan nilai a dan b sesuai persamaan berikut
(Weisstein, 2006):
12+
=n
hna , dan 1)1(
+−
=n
hnb (2.4)
2.3.1. Hypocyloid
Hypocycloid merupakan kurva yang dihasilkan dari sebuah titik tetap P yang
berada pada keliling sebuah lingkaran kecil ber-radius b, yang berputar mengelilingi
bagian dalam lingkaran yang lebih besar dengan radius a, dengan a > b. Oleh karena itu
hypocycloid merupakan hypotrochoid dengan h = b. Ilustrasi dari definisi tersebut
diperlihatkan pada gambar 2.5. (Weisstein, 2006).
Gambar 2.5. Ilustrasi definisi hypocycloid (Weisstein, 2006)
Sebuah hypocycloid berpetal n, mempunyai persamaan . Untuk
adalah bilangan integer, dan x(0) = a, maka nilai x dan y hypocycloid
ditunjukkan pada persamaan 2.5 dan 2.6. Beberapa gambar hypocycloid dengan n bernilai
integer diperlihatkan pada gambar 2.6 (Weisstein, 2006).
ban /=
ban /≡
7
x =
(2.5)
y =
(2.6)
Gambar 2.6. Hypocycloid dengan n berupa bilangan integer (Weisstein, 2006).
Apabila ban /≡ merupakan bilangan rasional, maka kurvanya akan tertutup dan
mempunyai a petal. Beberapa ilustrasi hypocycloid dengan bernilai rasional
diperlihatkan pada gambar 2.7. Sedangkan apabila merupakan bilangan irrasional
maka kurvanya tidak akan pernah menutup. Hypocycloid dengan berupa bilangan
irrasional ditunjukkan pada gambar 2.8 (Weisstein, 2006).
ba /
ba /
ba /
Gambar 2.7. Hypocycloid dengan berupa bilangan rasional (Weisstein, 2006). ba /
Gambar 2.8. Hypocycloid dengan berupa bilangan irrasional (Weisstein, 2006). ba /
8
2.3.2. Rose
Rose merupakan sebuah kurva yang berbentuk seperti kelopak bunga. Kurva ini
diberi nama rhodonea oleh seorang matematikawan Italia bernama Guido Grandi antara
tahun 1723 dan 1728 karena bentuknya yang menyerupai mawar. Persamaan polar untuk
rose diperlihatkan pada persamaan 2.7. Apabila n merupakan bilangan ganjil maka rose
akan memiliki kelopak sebanyak n. Sedangkan apabila n genap maka kelopaknya
berjumlah 2n. Beberapa gambar rose dengan n ganjil dan genap diperlihatkan pada
gambar 2.9 (Weisstein, 2006).
atau (2.7)
Gambar 2.9. Rose dengan n berupa bilangan ganjil dan genap (Weisstein, 2006)
Seandainya merupakan bilangan rasional, maka kurvanya akan menutup
pada sudut polar , dengan jika adalah ganjil, dan jika adalah
genap. Sedangkan apabila n merupakan bilangan irrasional maka jumlah kelopaknya
adalah tak terhingga. Bentuk rose dengan n berupa bilangan rasional diperlihatkan pada
gambar 2.10, sedangkan untuk n berupa bilangan irrasional diperlihatkan pada gambar
2.11 (Weisstein, 2006).
Gambar 2.10. Rose dengan n berupa bilangan rasional (Weisstein, 2006)
9
Gambar 2.11. Rose dengan n berupa bilangan irrasional (Weisstein, 2006)
2.4. Laser
Tabel 2.1. Jenis-jenis laser beserta panjang gelombang dan kegunaannya (Matsuda, 1987) Nama laser Panjang gelombang
(dalam mikron) Kegunaan Keterangan
Laser excimer Argon-fluorine 0,193 Reaksi optika
Laser excimer Krypton-fluorine 0,248 Belum diketahui
Laser excimer Xenon-chlorine 0,308 Belum diketahui
Laser Argonion 0,33 dan 0, 36 Belum diketahui
Laser Nitrogen 0,337 Belum diketahui
Daerah cahaya yang tidak tampak oleh mata manusia.
Sinar X (0,0001 mikron) dan sinar Ultraungu
(0,2 sampai 0,38 mikron)
Laser berwarna 0,32 sampai 1 Analisis spektroskopi
Laser Argonion 0,488 Pertunjukan
Laser uap tembaga 0,51 dan 0,578 Simulasi laser berwarna
Laser Helium-Neon 0,633 Peralatan yang teliti (presisi)
Laser ruby 0,694 Radar laser
Daerah cahaya yang tampak oleh mata manusia (0,38 sampai 0,77 mikron)
Laser semikonduktor 0,83 Disk laser
Laser gelas 1,06 Penyatuan nuklir menggunakan laser
YAG laser 1,06 Pemrosesan laser
Laser semikonduktor 1,3 Komunikasi optika
Laser Iodine 1,315 Komunikasi optika (jarak jauh)
Laser karbondioksida 10,6 Pemrosesan laser
Daerah cahaya yang tidak tampak oleh mata manusia.
Sinar inframerah (0,8 sampai 1000 mikron)
10
Laser yang merupakan kependekan dari Light Amplification by Stimulated
Emission of Radiation adalah paket berkas cahaya yang gelombang-gelombang
puncaknya terdapat pada kedudukan panjang yang sama, pada waktu yang sama, serta
pada arah gerakan yang sama pula, atau secara sederhana dapat dikatakan sebagai suatu
berkas cahaya yang terdiri atas gelombang-gelombang yang sama dan sebangun. Pada
berkas cahaya ini tidak dijumpai adanya beberapa panjang gelombang yang berbeda
seperti pada berkas cahaya matahari (Matsuda, 1987).
Panjang gelombang laser tergantung dari mediumnya, atau lebih tepatnya lagi
pada tipe atom dan molekul yang terdapat di dalam medium itu. Sebagai contoh adalah
laser ruby, laser tersebut dibuat dari cahaya yang dipancarkan oleh atom-atom khrom dan
memiliki panjang gelombang 0,6943 mikron (Matsuda, 1987). Beberapa jenis laser
beserta panjang gelombang dan kegunaannya dapat dilihat pada tabel 2.1
2.5. Keunggulan Utama Laser
Laser mempunyai empat kelebihan utama yang menonjol yang tidak dijumpai
dalam cahaya matahari maupun cahaya yang berasal dari listrik, yaitu: (Matsuda, 1987)
1. Sifatnya yang monokromatis atau dengan perkataan lain laser hanya memiliki satu
warna cahaya (panjang gelombang) saja. Sehingga apabila laser dilewatkan pada
prisma, sinarnya tidak akan terurai.
2. Arah sorotnya yang sangat baik. Laser menyorot menurut garis lurus dan hampir tidak
menyebar sehingga hampir tidak mengalami penurunan energi.
3. Energinya memiliki kerapatan (densitas) yang tinggi sehingga tenaganya yang luar
biasa besar itu dapat dipusatkan pada sebuah titik yang sangat kecil menggunakan
lensa. Pemusatan energi ini dapat menghasilkan energi yang cukup besar dan
temperatur yang tinggi.
4. Sifat koherennya (pertaliannya) yang baik. Sifat koheren ini dapat dilihat apabila laser
dilewatkan pada serangkaian lubang kecil maka gelombang cahaya keluarannya akan
bertumpuk membentuk pola-pola garis yang sangat rapi. Hal ini dikarenakan sinar
laser mempunyai gelombang yang sebangun dan sama. Aplikasi dari tingginya sifat
koherensi laser adalah penggunaan laser pada holografi tiga dimensi dan juga sebagai
alat pengukur dimensi suatu objek dengan tingkat ketelitian tinggi.
11
2.6. Mikrokontroler AT89S51
2.6.1. Pengenalan Mikrokontroler
Mikrokontroler atau biasa disingkat MCU adalah suatu keping komputer tunggal
yang bertugas mengeksekusi program yang digunakan oleh user untuk mengontrol satu
atau beberapa peralataan. Program ini dapat disimpan di dalam keping memori EEPROM
eksternal atau dalam memori EEPROM internal di dalam mikrokontroler itu sendiri.
Mikrokontroler dapat ditemukan di dalam peralatan-peralatan seperti oven mirowave,
mobil, keyboard, pemutar CD, telepon genggam, VCR, sistem keamanan, dan sebagainya
(Steiner, 2004).
Mikrokontroler digunakan dalam sistem-sistem yang membutuhkan kemampuan
berkomputasi yang tidak sekompleks komputasi pada komputer sekelas 486 atau pentium.
Sistem-sistem berbasiskan mikrokontroler secara umum lebih kecil, lebih handal, dan
lebih murah. Mereka ideal untuk digunakan pada aplikasi-aplikasi seperti tersebut diatas,
dimana ukuran dan biaya adalah pertimbangan yang sangat diutamakan (Steiner, 2004).
Mikrokontroler AT89S51 adalah mikrokontroler keluaran Atmel dengan 4K byte
in-system programmable Flash memori. On-chip Flashnya memungkinkan memori
program untuk diprogram di dalam sistem atau menggunakan programmer memori
nonvolatile konvensional. (Atmel, 2001). Memori program internal ini memungkinkan
AT89S51 untuk bekerja dalam mode operasi keping tunggal yang tidak memerlukan
memori eksternal untuk menyimpan source codenya (Nalwan, 2003).
2.6.2. Struktur Memori
AT89S51 mempunyai struktur memori yang terdiri atas (Nalwan 2003):
1. RAM internal, yaitu memori sebesar 128 byte yang biasanya digunakan untuk
menyimpan variabel atau data yang bersifat sementara.
2. Spesial Function Register atau SFR, yaitu memori yang berisi register-register yang
mempunyai fungsi khusus yang disediakan oleh mikrokontroler, seperti timer, serial,
dan lain-lain.
3. Flash PEROM, memori yang digunakan untuk menyimpan instruksi-instruksi MCS-
51.
Seperti terlihat pada gambar 2.12, AT89S51 mempunyai struktur memori yang
terpisah antara RAM dan Flash PEROMnya. RAM internal dialamati oleh RAM Address
Register, sedangkan Flash PEROM dialmati oleh Program Address Register. Dengan
12
adanya struktur memori yang terpisah tersebut, walaupun RAM internal dan Flash
PEROM mempunyai alamat awal yang sama, yaitu 00, namun secara fisik kedua memori
tersebut tidak saling berhubungan (Nalwan, 2003).
Gambar 2.12. Alamat RAM internal dan Flash PEROM
2.6.2.1. RAM Internal
RAM internal pada AT89S51 menempati alamat memori RAM antara 00H hingga
7FH. Menurut Nalwan, 2003, RAM internal terdiri atas:
1. Register banks
89S51 mempunyai delapan buah register mulai dari R0 hingga R7. Kedelapan buah
register ini selalu terletak pada bank 0 atau alamat 00H hingga 07H setiap kali sistem
direset. Namun posisi R0 hingga R7 dapat dipindah ke bank 1 (08H hingga 0FH),
bank 2 (10H hingga 17H), atau bank 3 (18H hingga 1FH) dengan mengatur bit RS0
dan RS1 pada PSW atau Program Status Word.
2. Bit Addressable RAM
RAM pada alamat 20H hingga 2FH dapat diakses secara pengalamatan bit sehingga
hanya dengan sebuah instruksi saja, setiap bit dalam area ini dapat diset, clear, AND,
atau di-OR-kan.
3. General Purpose RAM
General Purpose RAM terletak pada alamat 30H hingga 7FH dan dapat diakses
dengan pengalamatan langsung maupun tidak langsung.
13
2.6.2.2. Special Function Register
AT89S51 mempunyai 21 Spesial Function Register atau SFR yang terletak antara
alamat 80H hingga FFH. Beberapa dari register-register ini juga mampu dialamati dengan
pengalamatan bit sehingga dapat dioperasikan seperti pada Bit Addressable RAM
(Nalwan, 2003).
2.6.2.3. Flash PEROM
AT89S51 mempunyai 4K byte Flash PEROM atau Programmable and Erasable
Read Only Memory, yaitu ROM yang dapat ditulis ulang atau dihapus menggunakan
sebuah perangkat programmer. Flash PEROM dalam AT89S51 menggnakan Atmel’s
High-Density Non Volatile Technology yang mempunyai kemampuan untuk ditulis ulang
hingga 1000 kali. Program yang ada pada Flash PEROM akan dijalankan jika pada saat
di-reset, pin EA/VP berlogika “1” sehingga mikrokontroler aktif berdasarkan program
yang ada pada Flash PEROMnya. Namun, jika pin EA/VP berlogika “0”, mikrokontroler
aktif berdasarkan program yang ada pada memori eksternal (Nalwan, 2003).
2.6.3. Timer
AT89S51 mempunyai dua buah timer, yaitu timer 0 dan timer 1 yang masing-
masing mempunyai 16 bit counter yang mampu diatur keaktifan maupun mode
operasinya, direset, dan diset dengan nilai tertentu. Untuk mengatur kedua timer ini,
AT89S51 mempunyai enam buah Special Function Register, yaitu (Nalwan, 2003):
1. Timer Mode Register (TMOD) Tidak dapat dialamati secara bit (not bit addresable)
Timer 1 Timer 0
Gate (1) C/T (1) M1 (1) M0 (1) Gate (0) C/T (0) M1 (0) M0 (0)
Gambar 2.13. Register TMOD (Nalwan, 2003)
Seperti terlihat pada gambar 2.13, register TMOD berupa 8 bit register yang
terletak pada lamat 89h dengan fungsi setiap bitnya adalah sebagai berikut (Nalwan,
2003):
Gate : Timer akan berjalan jika bit ini diset dan INT0 (untuk timer0) dan
INT1 (untuk timer1) berkondisi high.
14
C/ T : 1 = counter
0 = timer
M1 dan M0 : Untuk memilih mode kerja timer, seperti terlihat pada table 2.4.
Tabel 2.2. Mode kerja timer (Nalwan, 2003) M1 M0 Mode Fungsi
0 0 0 Pencacah biner 13 bit
0 1 1 Pencacah biner 16 bit
1 0 2 Pencacah biner 8 bit dengan isi ulang
1 1 3 Gabungan pencacah biner 16 bit dan 8 bit
2. THx dan TLx
Setiap timer dalam AT89S51 terdiri atas 16 bit counter yang masing-masing
tersimpan dalam dua buah register yaitu THx untuk Timer High Byte dan TLx untuk
Timer Low Byte (Nalwan, 2003):
TH0 : Timer 0 High Byte terletak pada alamat 8Ah
TL0 : Timer 0 Low Byte terletak pada alamat 8Bh
TH1 : Timer 1 High Byte terletak pada alamat 8Ah
TL1 : Timer 1 Low Byte terletak pada alamat 8Bh.
3. Timer Control Register (TCON)
Keempat bit teratas register TCON mempunyai fungsi yang berhubungan
dengan timer sementara sisanya digunakan untuk mendukung fungsi interupsi.
Register ini bersifat bit addressable sehingga bit TF1 dapat disebut TCON.7, TR1
sebagai TCON.6, dan seterusnya. Seperti terlihat pada gambar 2.14, fungsi-fungsi
keempat bit yang berhubungan dengan timer adalah sebagai berikut (Nalwan, 2003):
TCON.7 atau TF1 : Timer 1 Overflow Flag yang akan diset jika timer
overflow. Bit ini dapat di-clear oleh software atau oleh
hardware pada saat program menuju ke alamat interrupt
vector
TCON.6 atau TR1 : 1 = Timer 1 aktif
0 = Timer 1 non aktif
TCON.5 atau TF0 : Sama dengan TF1
15
TCON.4 atau TR0 : Sama dengan TF1
TCON.3 hingga TCON.0 Akan dibahas pada bagian interupsi.
Dapat diakses secara bit (bit addressable)
Register Timer Register Interupsi
88h TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0
Gambar 2.14. Register TCON (Nalwan, 2003)
2.6.3.1. Timer Untuk Menghasilkan Tunda Waktu
Tunda maksimal yang dapat dihasilkan oleh timer 16 bit adalah (Nalwan, 2003):
65535xkristalfrekuensi
12Tunda max = (2.8)
Sedangkan persamaan untuk menentukan jumlah_step yang diperlukan bagi timer 16 bit
untuk menghasilkan tunda waktu (delay) tertentu adalah:
12kristal_frek*delaystep_Jumlah = (2.9)
Nilai THx/TLx yang perlu dimasukkan untuk menghasilkan tunda waktu tersebut dapat
dicari dengan menggunakan persamaan:
THx/TLx = FFFFh – Jumlah_step (hexa) + 1h (2.10)
2.6.3.2. Tunda Waktu Menggunakan Looping
Selain menggunakan timer, tunda waktu juga dapat dihasilkan dengan melakukan
looping dengan persamaan (Putra, 2002):
cycle_machinex12
f1putar_Tunda =
12fxputar_Tundacycle_Machine =
Apabila looping tersebut menggunakan perintah DJNZ (Decrement register and Jump if
Not Zero) yang membutuhkan dua machine cycle untuk menjalankannya, maka nilai yang
harus dimasukkan ke dalam register adalah separuhnya, yaitu:
16
12fxputar_Tundax
21register_Nilai = (2.11)
2.6.4. Interupsi
Interupsi adalah suatu kejadian atau peristiwa yang menyebabkan mikrokontroler
berhenti sejenak untuk melayani interupsi tersebut. Program yang dijalankan pada saat
melayani interupsi disebut Interrupt Service Routine (rutin layanan interupsi). Saat terjadi
interupsi, program akan berhenti sesaat, menjalankan program yang berada pada alamat
yang ditunjuk oleh vektor dari interupsi yang terjadi hingga selesai dan kembali
meneruskan program yang terhenti oleh interupsi tadi (Nalwan, 2002).
Dalam suatu kondisi, dapat juga dibutuhkan suatu program yang sedang berjalan
tidak boleh diinterupsi. Untuk itu, AT89S51 mempunyai lima buah interupsi yang
masing-masing dapat di-enable ataupun di-disable satu per satu. Pengaturan keaktifan
interupsi dilakukan pada Interrupt Enable Register (Register pengaktif interupsi) yang
terletak pada alamat A8h, seperti terlihat pada gambar 2.15. Fungsi masing-masing
register tersebut adalah sebagai berikut (Nalwan, 2003):
EA : Menonaktifkan semua interupsi jika bit ini clear. Jika bit ini clear maka apapun
kondisi bit lain dalam register ini, semua interupsi tidak akan dilayani. Oleh
karena itu untuk mengaktifkan salah satu interupsi, bit ini harus set.
ES : Mengaktif/nonaktifkan interupsi port serial, set = aktif, clear = non aktif.
Jika interupsi port serial aktif, interupsi akan terjadi setiap ada data yang masuk
ataupun keluar melalui port serial yang ditandai flag RI (Receive Interrupt flag)
ataupun TI (Transmit Interrupt flag) set.
ET1 : Mengaktif/nonaktifkan interupsi timer 1, set = aktif, clear = non aktif.
Jika interupsi ini aktif, interupsi akan terjadi pada saat timer 1 overflow.
EX1 : Mengaktif/nonaktifkan interupsi eksternal 1, set = aktif, clear = non aktif.
Jika interupsi ini aktif, interupsi akan terjadi pada saat terjadi logika 0 pada
1INT .
ET0 : Mengaktif/nonaktifkan interupsi timer 0, set = aktif, clear = non aktif.
Jika interupsi ini aktif, interupsi akan terjadi pada saat timer 0 overflow.
17
EX0 : Mengaktif/nonaktifkan interupsi eksternal 1, set = aktif, clear = non aktif.
Jika interupsi ini aktif, interupsi akan terjadi pada saat terjadi logika 0 pada
0INT .
Dapat diakses secara bit (bit addressable)
A8h EA ES ET1 EX1 ET0 EX0
IE.7 IE.4 IE.3 IE.2 IE.1 IE.0
Gambar 2.15. Register IE (Nalwan, 2003)
Gambar 2.16. Sumber interupsi (Atmel, 2001)
Interupsi eksternal 0INT dan 1INT dapat dipilih dengan dua macam pilihan
aktivasi, yaitu: aktivasi tingkat (level-activated) atau aktivasi transisi (transition-
activated), yang tergantung dari pengesetan bit IT0 dan IT1 dalam register TCON, seperti
terlihat pada gambar 2.14. Pada gambar 2.16 terlihat bahwa tanda atau flag yang
sesungguhnya menghasilkan interupsi ini adalah bit-bit IE0 (TCON.1) dan IE1 (TCON.3)
yang juga terdapat dalam register TCON. Saat rutin layanan interupsi eksternal
dijalankan, mikrokontroler akan secara otomatis me-nol-kan tanda interupsi terkait
seandainya interupsi tersebut diaktivasi dengan keaktifan transisi. Jika interupsi tersebut
diaktivasi secara level atau tingkat, maka sumber eksternal-lah yang mengontrol tanda
interupsi tersebut (Putra, 2002).
18
2.7. Rangkaian Single Chip Microcontroller
VCC
11,0592 MHz
10uF/16V
33pF
X1
EA/VP
RESET
VCCAT89S51
X28k2
33pF
Gambar 2.17. Rangkaian single chip microcontroller
Seperti terlihat pada gambar 2.17, rangkaian single chip microcontroller hanya
memerlukan sebuah osilator yang terdiri dari sebuah kristal dan dua buah kapasitor, serta
rangkaian reset yang terdiri atas sebuah resistor dan kapasitor. Pada rangkaian single chip,
kaki VPP/EA perlu dihubungkan ke Vcc untuk membuat akses awal mikrokontroler
berasal dari alamat 000H Flash PEROM. Apabila kaki VPP/EA terhubung ke ground
maka akses awal akan berasal dari alamat 000H memori eksternal (Nalwan, 2003).
Sementara itu, untuk membuat rangkaian reset secara manual cukup ditambahkan
sebuah resistor dan tombol push-button seperti terlihat pada gambar 2.18. Saat saklar
ditekan, aliran arus akan mengalir dari VCC melalui R1 menuju ke kaki RESET. Tegangan
di kaki RESET atau VR2 akan bernilai (Nalwan, 2003):
CCxV2R1R
2R2VR+
= (2.12)
Dengan memasukkan nilai-nilai resistor seperti tercantum pada gambar 2.18 pada
persamaan 2.6 maka tegangan VR2 saat saklar ditekan akan bernilai 4,94 volt dengan
VCC = 5 volt. Tegangan 4,94 volt pada kaki RST akan menyebabkan kaki ini berlogika 1
pada saat saklar tersebut ditekan. Saat saklar dilepas, aliran arus dari VCC memalui R1
akan terhenti dan tegangan pada kaki RST akan turun menuju ke nol sehingga logika pada
kaki ini berubah menjadi 0 dan proses reset selesai (Nalwan, 2003).
19
VCC
R1100
RESET
VCC
R28,2K
10uF/16V
Gambar 2.18. Rangkaian reset secara manual (Nalwan, 2003)
2.8. Remote Control
Salah satu cara untuk mengontrol peralatan secara remote namun masih berada
dalam area jarak padang adalah menggunakan cahaya infra merah. Infra merah
sebenarnya merupakan cahaya biasa dengan warna tertentu. Manusia tidak dapat melihat
warna dari sinar ini karena panjang gelombangnya berada dibawah spektrum cahaya
tampak. Meskipun manusia tidak dapat melihat cahaya infra merah yang diemisikan oleh
remote control namun tidak berarti cahaya tersebut tidak dapat dilihat. Kamera video atau
kamera foto digital dapat digunakan untuk menangkap sinar tersebut. (Bergmans, 2001)
Infra merah merupakan subjek yang sangat menarik dalam bidang pengontrolan
dan komunikasi. Hal ini dikarenakan ia mudah dihasilkan dan tidak mengalami
interferensi elektromagnetik. Namun sinar ini tidak begitu sempurna karena terdapat
begitu banyak benda yang dapat menghasilkan infra merah. Segala sesuatu yang dapat
menghasilkan panas dapat meradiasikannya, misalnya: matahari, lampu, oven, kompor,
mesin mobil, air panas, dan bahkan tubuh manusia dapat meradiasikan infra merah. Oleh
karena itu diperlukan suatu “kunci” supaya receiver dapat membedakan antara data
transmisi yang sesungguhnya dan noise-noise yang dihasilkan lingkungan di sekitarnya.
(Lipnharski, 2003)
Modulasi merupakan jawaban untuk mengatasi masalah tersebut. Dengan
modulasi, sumber sinar infra merah dibuat berkedap-kedip dengan frekuensi carrier
tertentu. Receiver-nya kemudian di-tuned dengan frekuensi yang sama sehingga ia akan
mengabaikan sinyal-sinyal yang lain. Frekuensi carrier yang dipakai biasanya antara 30 –
60 kHz. (Bergmans, 2001). Gelombang dengan frekuensi carrier ini kemudian digunakan
untuk merepresentasikan kode “1” dalam komunikasi digital. Sementara kode “0”
direpresentasikan dengan ketiadaan sinyal dari transmitter. Gambar 2.19 menunjukkan
pemodulasian sinyal infra merah.
20
Gambar 2.19. Pemodulasian sinyal infra merah (Bergmans, 2001)
2.8.1. SONY Remote Control
Untuk menghindari kemungkinan remote control dari suatu produsen elektronik
mengintervensi peralatan elektronik dari perusahaan lain maka setiap produsen elektronik
menggunakan protokol dan pengkodean yang berbeda satu dengan yang lain. Sehingga
meskipun mereka menggunakan frekuensi carrier yang sama, namun interferensi akan
dapat dihindari karena sistem pengkodeannya berbeda. (Lipnharski, 2003).
Sony menggunakan protokol SIRC (Serial Infra Red Control) yang menggunakan
teknik pengkodean lebar pulsa atau pulse-width codification. Pada pengkodean ini, pulsa
yang merepresentasikan logika “1” adalah rentetan gelombang carrier 40 kHz selama 1,2
milidetik, sementara lama rentetan untuk logika 0 adalah 0,6 milidetik. Semua bit
dipisahkan oleh interval diam selama 0,6 milidetik (Bergsman, 2003). Pengkodean lebar
pulsa SIRC Sony dapat dilihat pada gambar 2.20.
Gambar 2.20. Pengkodean lebar pulsa SIRC Sony (Bergsman, 2003)
Pada gambar 2.21 diperlihatkan urutan pulsa yang digunakan pada protokol SIRC.
Pada protokol ini LSB ditransmisikan terlebih dahulu. Start bit adalah rentetan
gelombang carrier selama 2,4 milidetik, diikuti interval diam selama 0,6 milidetik.
Kemudian dikirimkan 7-bit command, diikuti oleh 5-bit Device address. Seluruh rentetan
transmisi perintah akan diulang setiap 45 milidetik (diukur dari start ke start) selama
tombol yang sama pada remote control masih terus ditekan. (Bergsman, 2003)
21
Gambar 2.21. Protokol SIRC Sony (Bergsman, 2003)
2.6.2. IR Receiver Module
Pada gambar 2.22 diperlihatkan diagram blok dasar sebuah receiver infra merah.
Sinyal transmisi infra merah diterima oleh photodiode infra merah pada bagian kiri
diagram blok. Sinyal yang diterima kemudian dikuatkan dan dibatasi pada dua blok
selanjutnya. Limiter bertindak sebagai rangkaian AGC (Auto Gain Control) untuk
mendapatkan level pulsa yang konstan berapapun jarak receiver dari transmitter. Dengan
adanya kapasitor maka hanya sinyal AC saja yang diteruskan ke BPF (Band Pass Filter).
BPF di-tuned pada frekuensi carrier remote control dan hanya akan melewatkan sinyal
dengan frekuensi yang sesuai. (Bergmans, 2001)
Gambar 2.22. Digram blok receiver infra merah (Bergmans, 2001)
Ketiga blok terakhir berfungsi untuk mendeteksi adanya frekuensi carrier. Jika
terdeteksi, maka output comparator akan ditarik ke logika “0”, demikian sebaliknya.
(Bergmans, 2001). Dari sini terlihat bahwa keluaran receiver adalah inverse atau
kebalikan dari data yang ditransmisikan oleh remote control.
2.9. Motor DC
Motor DC merupakan mesin listrik berputar yang didesain untuk bekerja
menggunakan sumber daya dari tegangan searah. Tipe dasar dari motor jenis ini adalah
motor DC magnet permanen. Bagian stator dari motor DC magnet permanen terdiri atas
dua atau lebih kutub magnet. Bagian rotor-nya terdiri dari atas lilitan-lilitan yang
terhubung ke komutator mekanik. Polaritas kutub yang berlawanan antara lilitan berarus
22
dan magnet pada stator akan saling menarik dan menyebabkan rotor berputar sampai
sejajar dengan stator. Pada saat rotor mencapai kesejajaran, sikat pada motor akan
mengenai kontak pada komutator dan menginduksi lilitan berikutnya (Freescale
Semiconductor, 2004-2005).
Prinsip kerja motor DC dapat dilihat pada gambar 2.23. Ketika arus listrik yang
dialirkan melalui kawat penghantar berada di dalam suatu medan magnet maka kawat
akan mengalami gaya magnet. Apabila kawat pengahantar tersebut berbentuk suatu
kalang (loop) maka kedua sisi dari kalang yang berada pada sudut yang tepat terhadap
arah medan magnet akan mengalami gaya yang saling berlawanan. Pasangan gaya yang
saling berlawanan tersebut akan menciptakan efek berputar atau torsi untuk memutar
lilitan. Komutator akan membalik arah arus kalang setiap setengah putaran untuk menjaga
supaya arah putar motor tetap sama (Nave, ---).
Gambar 2.23. Prinsip kerja motor DC (Nave, ---)
Dua tipe lain dari motor DC adalah motor DC kumparan seri dan motor DC
kumparan paralel. Motor-motor ini juga menggunakan rotor yang sama yakni memakai
sikat dan komutator. Namun, stator-nya menggunakan lilitan bukan magnet permanen.
Prinsip kerjanya tidak berbeda dengan motor sebelumnya. Motor DC kumparan seri
memiliki lilitan stator yang terhubung secara seri dengan rotor sedangkan motor DC
kumparan paralel mempunyai lilitan stator yang terhubung secara paralel dengan lilitan
rotor. Motor DC kumparan seri biasa juga disebut motor universal dalam artian motor ini
23
mampu beroperasi sama baiknya menggunakan sumber tegangan DC ataupun AC
(Freescale Semiconductor, 2004-2005).
2.10. Penampil Seven-Segment
Penampil seven-segment merupakan suatu perangkat elektronik yang terdiri dari 7
buah LED yang tersusun sesuai pola-pola numeris atau alfa-numeris. Dengan
mengaktifkan LED-LED tertentu akan dapat dihasilkan tampilan angka atau huruf sesuai
yang dikehendaki. Sebagai kelengkapan, biasanya seven-segment juga dilengkapi dengan
satu atau dua LED tambahan untuk menampilkan titik pecahan. (Answers.com, 2005).
Bentuk fisik dan penempatan dioda dalam seven-segment dapat dilihat pada gambar 2.24.
(a)
(b)
Gambar 2.24. Seven-segment (a) Bentuk fisik (Answers.com, 2005) (b) Penempatan dioda (hibp.ecse.rpi.edu)
D C
G
B
E
E
VCC
AB
A
F
F
C
D G D
GCE
B
A
E
FB
AA
D
F
C
(a) (b) Gambar 2.25. Pengkabelan internal seven-segment (hibp.ecse.rpi.edu)
(a) Common anoda (b) Common katoda
24
Terdapat dua tipe seven-segment berdasarkan commonnya, yaitu: common anoda
dan common katoda (hibp.ecse.rpi.edu). Common anoda berarti kaki anoda dari masing-
masing LED dihubungkan menjadi satu dengan Vcc sementara kaki-kaki katoda
digunakan sebagai selektor LED yang akan diaktifkan. Kondisi keaktifan kaki katoda
pada common ini adalah aktif rendah. Sementara pada common katoda, kaki-kaki anoda
digunakan sebagai selektor sedangkan kaki katoda setiap LED dihubungkan ke ground.
Kondisi keaktifan kaki anoda pada common katoda ini adalah aktif tinggi. Diagram
pengkabelan common anoda dan common katoda seven-segment dapat dilihat pada
gambar 2.25.
2.11. Pulse Width Modulation
Untuk mengontrol kecepatan motor dc dibutuhkan sumber tegangan DC yang
dapat diubah-ubah. Misalkan sebuah motor 12 volt dihubungkan dengan catu daya maka
motor akan mulai berputar dan menambah kecepatan. Namun motor tidak dapat bereaksi
secara tiba-tiba dan memerlukan waktu untuk mencapai kecepatan penuh. Seandainya
daya ke motor diputus beberapa saat sebelum motor mencapai kecepatan penuh maka
kecepatannya akan menurun. Jika pensaklaran on-off ini dilakukan dengan cukup cepat
maka motor akan berputar diantara keadaan diam dan kecepatan penuh. Untuk
mengontrol kecepatan motor dilakukan dengan mengubah atau memodulasi lebar pulsa
on-off tersebut. Oleh karena itu, teknik ini disebut sebagai Pulse Width Modulation
(Torrens, 2004).
PWM atau Pulse Width Modulation juga merupakan suatu teknik untuk
mengontrol jumlah daya yang akan dikirimkan ke beban tanpa harus membuang atau
mendisipasi daya pada driver beban. PWM akan memungkinkan daya yang dikirimkan ke
beban adalah proporsional dengan prosentase waktu saat beban dinyalakan atau disebut
sebagai duty cycle. Persamaan untuk mendapatkan nilai duty cycle diperlihatkan pada
persamaan 2.13 (http//:Homepages.net, 2004).
Duty cycle = OFFON
ON
TTT+
(2.13)
Gambar 2.26 menunjukkan tiga sinyal PWM yang berbeda. Gambar 2.26(a)
memperlihatkan PWM dengan duty cycle 10%, yang berarti sinyal on selama 10% dari
25
total periode dan off selama 90% sisanya. Sementara gambar 2.26(b) dan 2.26(c)
memperlihatkan PWM dengan duty cycle 50% dan 90% (Barr, 2001).
Gambar 2.26. Sinyal PWM dengan duty cycle bervariasi (Barr, 2001)
2.12. Transistor sebagai saklar
Pada saat digunakan sebagai saklar, transistor biasanya dioperasikan pada kondisi
cutoff dan saturasi. Gambar 2.27 mengilustrasikan prinsip kerja transistor sebagai
peralatan pensaklaran. Pada gambar 2.27(a) transistor berada pada daerah cutoff karena
junction basis-emitornya tidak dibias maju. Pada kondisi ini, secara ideal antara kolektor
dan emitor terjadi open circuit seperti diilustrasikan oleh gambar saklar yang terbuka
(Floyd, 1996).
Gambar 2.27. Transistor NPN sebagai saklar pada kondisi ideal versi electron flow
(Floyd, 1996)
Pada gambar 2.27(b), transistor berada pada daerah saturasi karena junction basis-
emitor dan junction basis-kolektor dibias maju, serta arus basis dibuat cukup besar yang
26
menyebabkan arus kolektor mencapai nilai saturasinya. Pada kondisi ini, secara ideal,
terjadi short antara kolektor dan emitor seperti diilustrasikan oleh saklar yang tertutup.
Sebenarnya, pada kolektor-emitor terjadi penurunan tegangan pada kisaran kurang dari 1
volt, yang disebut tegangan saturasi atau VCE(sat) (Floyd, 1996).
2.10.1. Kondisi Cutoff
Transistor berada pada kondisi cutoff ketika junction basis-emitor tidak dibias
maju. Dengan mengabaikan arus bocor, maka semua arus adalah nol, dan VCE sama
dengan VCC (Floyd, 1996). Hal ini diperlihatkan oleh persamaan 2.14.
VCE(cutoff) = VCC (2.14)
2.10.2. Kondisi saturasi
Transistor berada pada kondisi saturasi ketika junction basis-emitor dibias maju
dan terdapat arus basis yang cukup besar untuk memproduksi arus kolektor secara
maksimum (Floyd, 1996). Persamaan untuk mendapatkan arus kolektor saturasi
diperlihatkan pada persamaan berikut:
IC(sat) = C
)sat(CECC
RVV −
Seandainya IC(sat) diketahui maka untuk mencari nilai RC dapat dicari dengan
menggunakan persamaan 2.15.
)sat(C
)sat(CECCC I
VVR
−= (2.15)
Untuk menjamin bahwa transistor benar-benar berada pada kondisi saturasi maka
IB harus jauh lebih besar dibandingkan IB(min) (Floyd, 1996). Persamaan untuk
mendapatkan IB(min) diperlihatkan pada persamaan 2.16.
DC
)sat(C(min)B
IIβ
= (2.16)
Sedangkan untuk menentukan nilai RB dapat dicari dengan menggunakan
persamaan 2.17.
B
RBB I
VR = (2.17)
27
Rangkaian transistor PNP sebagai saklar memiliki persamaan yang sama dengan
transistor NPN. Perbedaan antara keduanya adalah pada arah arus yang mengalir yang
saling berkebalikan. Rangkaian saklar menggunakan transistor PNP diperlihatkan pada
gambar 2.28.
(a) (b) Gambar 2.28 Transistor PNP sebagai saklar pada kondisi ideal versi electron flow
(a) Saturasi – saklar tertutup (b) Cutoff – saklar terbuka
2.13. H-bridge
H-bridge atau biasa disebut full bridge, diberi nama demikian karena memiliki
empat buah saklar pada ujung kaki-kaki H, dan sebuah motor membentuk garis horisontal
sehingga menyerupai huruf H. Keempat saklar tesebut, apabila diurutkan menurut arah
berlawanan jarum jam, adalah high side left, high side right, low side right, dan low side
right. Supaya bekerja dengan benar, saklar-saklar tersebut harus dinyalakan secara
berpasangan, yaitu pasangan high-left dan low-right, atau low-left dan high-right.
Menyalakan kedua saklar pada kedua sisi kiri atau kanan yang sama adalah terlarang,
karena akan menyebabkan short circuit. (McManis, 2003). Rangkaian dasar sebuah H-
bridge diperlihatkan pada gambar 2.29.
Gambar 2.29. Rangkaian dasar sebuah H-bidge (McManis, 2003)
28
IC L293D merupakan quadruple high current half-H drivers. L293D didesain
untuk menghasilkan arus bidireksional sampai 600 mA pada rentang tegangan 4,5 V
sampai 36 V. IC ini didesain untuk men-drive beban induktif seperti relay, solenoida,
motor DC dan stepper, serta beban-beban lainnya. Driver motor ini diaktifkan secara
berpasangan, dengan driver 1 dan 2 di-enable oleh pin 1,2 EN dan driver 3 dan 4 di-
enable oleh pin 3,4EN. Saat kondisi input enable adalah high, output mereka akan aktif
dan mengeluarkan pulsa dengan fase yang sama dengan input-nya. Apabila kondisi input
enable adalah low, output yang bersangkutan akan off dan berada pada kondisi high-
impedance (Texas Instrument, 2002).
(a) (b)
Gambar 2.30 Diagram internal IC L293D (Texas Instrument, 2002) (a) Simbol hubungan I/O (b) Rangkaian I/O internal
Dengan memberikan data input yang benar, setiap pasangan driver akan
membentuk jembatan H penuh atau full-H yang dapat digunakan untuk mengendalikan
arah putar motor secara bolak-balik. Selain itu, pada IC ini juga disediakan dua buah
power supply yang terpisah, masing-masing untuk power supply data TTL dan power
supply beban untuk meminimalkan disipasi daya. Sebagai pengaman, sebaiknya
29
ditambahkan diode berkecepatan tinggi untuk meredam arus transient induktif. Tabel
kebenaran IC L293D dapat dilihat pada tabel 2.3, sementara diagram internalnya
ditunjukkan pada gambar 2.30 (Texas Instruments, 2002).
Tabel 2.3 Tabel kebenaran IC L293D untuk tiap driver (Texas Instrument, 2002)
Input
A EN
Output
Y
H H H
L H L
X L Z
Ket: H = High, L = Low, Z = High Impedance (off)
30
BAB III
PERANCANGAN
Laser show pada dasarnya merupakan suatu hiburan yang dihasilkan dari
manipulasi sinar laser untuk mendapatkan pola-pola geometris tertentu. Secara
sederhana, hal ini dapat dilakukan dengan memantulkan sinar laser terhadap satu atau
beberapa cermin yang berputar sebelum akhirnya dipantulkan ke dinding atau layar.
Tampilan pada layar inilah yang kemudian dapat diamati sebagai pola-pola geometris.
Untuk menghasilkan berbagai variasi pola, terdapat tiga unsur yang harus
diperhatikan, yang pertama adalah putaran cermin harus sedikit bergoyang. Tujuannya
supaya terbentuk perbedaan sudut ketika sinar memantul. Hal ini dapat dicapai
dengan menempelkan cermin ke motor dengan sudut kemiringan tertentu.
Unsur lainnya adalah putaran motor yang stabil namun tetap memberikan
kemudahan dalam pengaturan kecepatan maupun arah putar. Variasi arah putar dan
kecepatan ini akan menentukan banyak sedikitnya pola yang dapat dihasilkan.
Semakin luas range kecepatan motor maka semakin banyak pula pola yang dapat
terbentuk. Begitu pula apabila motor dapat berputar dua arah, CW dan CCW, maka
polanya juga semakin banyak. Pengaturan kecepatan dan arah ini akan semakin
mudah dan akurat apabila diatur secara digital dibanding secara analog.
Unsur terakhir adalah jumlah cermin. Semakin banyak media pemantulan
maka kombinasi pola yang terbentuk juga semakin besar. Namun harus tetap
diperhatikan bahwa semakin banyak jumlah cermin maka kemungkinan sinar tidak
mengenai cermin ke-n juga semakin besar. Hal ini dikarenakan putaran cemin yang
bergoyang akan menyebabkan pantulan sinar membentuk sudut dan akibatnya adalah
luas daerah jatuh sinar menjadi semakin luas. Semakin banyak jumlah pantulan maka
luas daerah tersebut juga semakin luas. Oleh karena itu perlu dicari jumlah cermin
serta jarak antar cermin yang paling optimal.
3.1. Diagram Kotak Digital Laser Show
Secara garis besar, perancangan digital laser show terdiri atas perancangan
perangkat keras dan perangkat lunak. Perangkat keras secara umum dapat dibagi
menjadi tiga bagian, yaitu unit masukan, unit pengendali kecepatan motor, dan unit
31
penampil. Diagram kotak perangkat keras digital laser show dapat dilihat pada
gambar 3.1.
Gambar 3.1. Diagram kotak digital laser show
Unit masukan dari alat ini berupa tombol push-button dan remote control yang
digunakan untuk mengendalikan arah maupun kecepatan motor dc. Masing-masing
motor akan memiliki tombol penaik kecepatan, tombol penurun kecepatan, dan
tombol pengubah arah putaran.
Unit pengendali terdiri atas sebuah mikrokontroler AT89S51 yang mempunyai
dua blok fungsi utama, yaitu: menghasilkan dua buah gelombang PWM secara
bersamaan, serta menampilkan PWM dan arah putar motor ke seven-segment. Blok
program pertama berisi metode untuk mendekodekan isyarat masukan, dan
menghasilkan PWM dan arah putar motor yang sesuai dengan masukan tersebut.
Blok program kedua berisi kode untuk mengubah data PWM yang berformat
hex menjadi bentuk BCD (Binary Coded Decimal). Data berbentuk BCD ini
kemudian akan digunakan sebagai nilai indexed addressing untuk mencari kode-kode
numeris seven-segment pada look-up table. Kode-kode numeris inilah yang akan
ditampilkan ke penampil seven-segment menggunakan metode scanning.
Unit keluaran terdiri dari dua buah motor DC beserta driver-nya yang
berfungsi untuk menguatkan tegangan dan arus bagi motor, serta seven-segment yang
32
berfungsi untuk menampilkan data persentase duty cycle dan arah putar masing-
masing motor.
3.2. Konstruksi Digital Laser Show
Sebagai sarana pengaman, rangkaian elektronis perangkat digital laser show
akan dimasukkan ke dalam suatu kotak yang solid dan kokoh yang terbuat dari bahan
isolator untuk mengurangi kemungkinan terjadinya kerusakan komponen serta
melindungi user dari kemungkinan tersengat arus listrik. Laser yang akan digunakan
merupakan laser pointer yang merupakan laser jenis He-Ne (Helium-Neon) berwarna
merah dengan panjang gelombang 0,663 mikron.
Piranti masukan berupa tombol-tombol push-button akan diletakkan di bagian
atas kotak untuk memudahkan pengontrolan, sementara piranti masukan lainnya yaitu
IR receiver module akan diletakkan di bagian dalam sisi depan kotak untuk
menangkap sinyal remote secara maksimal. Piranti penampil berupa seven-segment
juga akan diletakkan pada bagian dalam sisi depan kotak untuk memudahkan dalam
pengamatan data. Konstruksi digital laser show secara lengkap dapat dilihat pada
gambar 3.2. Fitur-fitur yang tersedia pada perangkat ini antara lain:
1. Pengontrolan kecepatan dan arah putar motor secara digital. Pengontrolan secara
digital akan memungkinkan pengontrolan yang lebih mudah dan sederhana, serta
lebih presisi dibandingkan pengontrolan secara analog.
2. Pengontrolan kecepatan dan arah putar motor dapat dilakukan secara nirkabel
menggunakan remote control ataupun secara konvensional menggunakan tombol
push-button. Pengontrolan secara nirkabel akan memungkinkan user mengontrol
dari kejauhan dan menikmati suguhan pola-pola pantulan yang dihasilkan dengan
lebih santai dan nyaman. Selain itu pengontrolan jarak jauh juga relatif lebih aman
karena akan mengurangi kemungkinan jatuhnya sinar laser ke mata yang
berpotensi mengurangi kemampuan penglihatan. Pengontrolan secara nirkabel ini
dapat dilakukan dengan menggunakan remote control untuk TV Sony Triniton
yang banyak tersedia di pasaran.
3. Derajat kenaikan atau penurunan duty cycle PWM sebagai pengatur kecepatan
motor adalah sebesar 1% yang akan memberikan tingkat kepresisian yang cukup
tinggi, serta range kecepatan yang luas. Range kecepatan yang luas ini akan
memungkinkan jumlah variasi rasio kecepatan antara motor pertama dan kedua
33
yang semakin banyak. Hal ini pada akhirnya akan menyebabkan pola pantulan
laser yang semakin banyak dan variatif.
Gambar 3.2 Layout digital laser show
Keterangan gambar:
1. Layar 6. Tombol push-button
2. Pantulan sinar laser 7. IR Receiver module
3. Laser pointer 8. Penampil seven-segment
4. Motor DC 9. Kode fungsi tombol
5. Cermin 10. Pola yang dihasilkan
4. Kemampuan untuk mengatur arah putar motor. Kemampuan motor untuk berputar
dua arah, yaitu searah (CW) dan berlawanan (CCW) arah jarum jam juga akan
menyebabkan pola pantulan laser yang semakin banyak dan variatif.
5. Sarana penampil yang cukup terang dan jelas meskipun dilihat dari kejauhan
karena menggunakan display seven-segment, bukan LCD.
6. Desain keseluruhan yang kompak dan portable sehingga memudahkan untuk
digunakan, dipindahkan, dan disimpan.
34
3.3. Input Interface
Untuk memberikan keleluasaan dan kenyamanan dalam mengoperasikan
perangkat digital laser show ini maka disediakan dua teknik pemberian masukan yang
dapat digunakan sesuai keinginan user. Kedua teknik tersebut adalah pengontrolan
menggunakan tombol push-button yang terpasang secara on-board, serta pengontrolan
secara nirkabel atau remote menggunakan remote control.
3.3.1. Pengontrolan Menggunakan Tombol Push-button
Teknik pengontrolan ini digunakan untuk mengontrol kecepatan motor dari
jarak dekat. Tombol-tombol push-button terhubung secara langsung (wired) dengan
mikrokontroler yang terhubung dengan driver motor. Setiap motor akan dilengkapi
dengan tiga buah push-button yang masing-masing berfungsi untuk menaikkan
kecepatan, menurunkan kecepatan, dan mengubah arah putaran motor.
Setiap penekanan tombol penaik atau penurun kecepatan akan menaikkan atau
menurunkan PWM sebesar 1%. Sementara setiap penekanan tombol pengubah arah
putaran akan mengubah atau men-toggle arah putaran dari clock wise (CW) menjadi
counter clock wise (CCW), atau sebaliknya. Tombol-tombol ini dihubungkan dengan
port 0 mikrokontroler yang akan difungsikan sebagai port input, serta akan
dihubungkan dengan external interupt 0 ( 0INT ) setelah saling di-AND-kan.
Rangkaian antara tombol dengan mikrokontroler dapat dilihat pada gambar 3.3.
R23
R20 R18
10k
SW1
SW3
AT89S51
91819 29
30
31
12345678
2122232425262728
1011121314151617
3938373635343332
RSTXTAL2XTAL1 PSEN
ALE/PROG
EA/VPP
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
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
SW2
R19
R22
VCC
SW4SW5
R21
SW6
Gambar 3.3. Rangkaian antara push-button dengan mikrokontroler
35
Masing-masing tombol juga akan diberi R pull-up yang terhubung ke Vcc
sehingga logika port pada saat kondisi tombol idle (tidak ditekan) adalah “1”. Pada
saat tombol ditekan maka arus akan mengalir ke ground sehingga pin yang terhubung
dengan tombol yang ditekan akan berlogika “0”. Hal ini juga akan mengakibatkan
0INT bernilai “0” karena salah satu kaki gerbang AND bernilai “0”. 0INT
diprogram untuk terpicu karena adanya transisi negatif (negative-edge).
Setelah terdeteksi adanya interupsi penekanan tombol pada 0INT , kemudian
akan dilakukan pembacaan tombol. Metode pembacaan tombol yang digunakan
adalah dengan metode pembandingan antara logika-logika pada port dengan nilai
yang ditentukan oleh program. Metode pembacaan ini akan dijelaskan lebih lanjut
pada bagian perancangan perangkat lunak.
3.3.2. Pengontrolan Secara Nirkabel Menggunakan Remote Control
Pengontrolan ini digunakan untuk mengendalikan peralatan dari jarak jauh
secara remote atau nirkabel. Pengontrolan dilakukan dengan menekan tombol-tombol
yang terdapat pada remote control yang kemudian akan ditransmisikan menggunakan
sinar infra merah termodulasi. Sinyal ini kemudian akan diterima oleh IR receiver
module yang terhubung dengan mikrokontroler. Remote control yang digunakan
adalah remote control untuk SONY TRINITON dengan tipe RM-687C. Sementara
receiver yang digunakan adalah receiver infra merah standar yang terdapat di pasaran.
Kaki output dari receiver akan dihubungkan dengan kaki INT1 dari
mikrokontroler yang diprogram untuk terpicu saat mendeteksi transisi negatif
(negative edge). Karena kondisi keluaran receiver adalah berkebalikan (inverse) dari
remote control maka kondisi idle keluaran receiver adalah “1”. Pada saat terjadi
transisi dari kondisi “1” ke “0” maka INT1akan aktif dan mikrokontroler akan
melakukan pembacaan sinyal yang dikirimkan. Metode pembacaan sinyal ini akan
dibahas lebih lanjut pada bagian perancangan perangkat lunak.
Rangkaian antara receiver dengan mikrokontroler dapat dilihat pada gambar
3.4. Kapasitor dan resistor yang terhubung dengan kaki Vcc digunakan untuk men-
decouple interferensi yang mungkin ditimbulkan oleh komponen-komponen lain
dalam rangkaian. Sementara LED digunakan sebagai indikator apabila terdapat
transmisi sinyal dari remote control. Casing dari modul receiver juga perlu
36
dihubungkan dengan ground untuk menghindari interferensi dari sumber-sumber infra
merah lainnya. Hal ini dikarenakan modul IR receiver sangat peka terhadap
gangguan.
22 uF
P3.3/INT1
330
330IR RECEIVER
Vout
D1
LED
VCC
VCCAT89S51
VCC
Gambar 3.4. Rangkaian antara IR receiver dengan mikrokontroler
3.4. Driver Motor DC
Pada perancangan peralatan digital laser show ini, driver motor yang
digunakan adalah IC L293D. Setiap keping IC L293D mempunyai dua buah channel
input dan output yang saling terpisah sehingga dapat digunakan untuk mengendalikan
dua buah motor DC secara independen. L293D juga menyediakan dua catu daya yang
terpisah, yaitu untuk catu daya logika TTL dan catu daya motor, sehingga motor dapat
bekerja secara optimal sesuai dengan tegangan dan arus yang dibutuhkannya
walaupun dikendalikan dengan level logika TTL. VSS
VSS
P1.0M2 MOTOR DC
12
VSS
VCC
P2.3
U1
L293D
27
1015
19
361114
16
8
1A2A3A4A
1,2EN3,4EN
1Y2Y3Y4Y
VC
C
VSS
P2.2P2.1P2.0
AT89S51 VSS
VSS
M1 MOTOR DC
12
P1.1
Gambar 3.5. Rangkaian driver motor DC
37
Rangkaian driver motor dapat dilihat pada gambar 3.5. Keempat buah dioda
yang terhubung pada setiap motor digunakan untuk melindungi driver motor dari
tegangan balik yang dihasilkan kumparan motor saat disaklar on dan off. Input 1A dan
2A L293D yang dihubungkan dengan pin P2.0 dan P2.1 mikrokontroler, secara
berpasangan berfungsi untuk menentukan arah putaran motor DC pertama. Arah
putaran motor yang dihasilkan dari kombinasi logika input 1A dan 2A dapat dilihat
pada tabel 3.1.
Tabel 3.1. Arah putaran motor DC 1A 2A Putaran motor DC
0 0 Free running
0 1 CCW
1 0 CW
1 1 Brake
Input 1,2EN yang dihubungkan dengan pin P1.0 mikrokontroler berfungsi
untuk mengaktifkan atau menonaktifkan driver L293D. Pada saat kondisi input 1,2
EN high, rangkaian output internal IC L293D akan aktif. Seandainya pada saat yang
bersamaan, input 1A berlogika ”1” dan input 2A berlogika ”0” maka akan terdapat
arus mengalir dari output 1Y ke 2Y melalui motor yang akan menyebabkan motor
berputar CW. Seandainya pada saat tersebut, input 1A berlogika ”0” dan input 2A
berlogika ”1” maka arah putar akan berlawanan karena arus mengalir dari output 2Y
ke 1Y.
Dari penjelasan diatas dapat ditarik benang simpul bahwa input 1,2EN
mengendalikan kondisi keaktifan driver L293D. Logika “1” pada input ini akan
menyebabkan motor DC pertama berputar, dan logika “0” tidak berputar. Apabila
sinyal pada kaki 1,2 EN diberi rentetan logika “1” dan “0” dengan sangat cepat
menggunakan sinyal PWM maka kecepatan motor DC akan dapat dikendalikan.
Metode untuk menghasilkan sinyal PWM akan dijelaskan lebih lanjut pada bagian
perancangan perangkat lunak. Input 3A dan 4A, serta 3,4 EN digunakan untuk
mengendalikan motor DC kedua dengan fungsi seperti input 1A, 2A, dan 1,2EN.
Motor yang akan digunakan adalah motor DC yang digunakan pada pemutar
CD (CD ROM) dengan tegangan 12V. Alasan penggunaan motor ini adalah karena
respon tegangannya yang sangat baik. Motor sudah mampu berputar walaupun
tegangan input yang diberikan masih sangat rendah sehingga diharapkan pada saat
38
diaplikasikan menggunakan PWM, motor dapat bekerja dalam range kecepatan yang
luas.
3.5. Penampil Seven-segment
Penampil seven-segment digunakan untuk menampilkan data PWM tiap motor
dan arah putaran motor. Setiap motor akan dilengkapi dengan tiga buah seven-
segment. Dua seven-segment menunjukkan data PWM dalam skala persen mulai dari
00 sampai dengan 99 persen. Sementara sisanya akan menampilkan arah putaran
motor. Pada perancangan ini digunakan seven-segment dengan tipe common anode.
AT89S512122232425262728
3938373635343332
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
7's segment
42
91
67
10
3
BC516
VCC
3
2
1
VCC
RC
3
2
1
3
2
1
7's segment
42
91
67
10
3
BC516
R13
BC516
7's segment
42
91
67
10
3 3
2
1
BC516
VCCVCC
R14
R16
BC516
7's segment
42
91
67
10
3
BC516
VCC
RB
R17
2K2
VCC
3
2
1
180
R12
R15
7's segment
42
91
67
10
3 3
2
1
7's segment
42
91
67
103
Gambar 3.6. Rangkaian seven-segment
Seperti terlihat pada gambar 3.6, dalam perancangan terdapat lebih dari empat
buah seven-segment (sesuai jumlah port paralel mikrokontroler), oleh karena itu
digunakan metode scanning untuk mengaktifkan seluruh seven-segment. Metode
scanning merupakan metode untuk menyalakan seven-segment secara bergantian
dengan waktu yang sangat cepat. Penyala-padaman yang sangat cepat ini akan
menyebabkan ilusi pandangan pada mata sehingga akan terlihat seluruh seven-
segment menyala pada saat bersamaan. Hal ini dikarenakan mata tidak mampu
mengikuti frekuensi nyala-padam yang sangat cepat. Metode scanning ini akan
dijelaskan lebih lanjut pada bagian perancangan perangkat lunak.
39
Transistor yang akan digunakan sebagai saklar adalah transistor PNP
darlington seri BC516 yang mampu menyuplai arus kolektor IC hingga 1000 mA.
Nilai resistor RC dapat dihitung sesuai persamaan 2.15 dengan menambahkan
tegangan komponen LED.
LED
LED)sat(ECEEC I
VVVR
−−=
Dengan menggunakan nilai VEE = 5 V, VLED = 2,4 V, dan VCE(sat) = 1 V dari
datasheet, serta menentukan ILED = 10 mA maka dapat dicari nilai RC:
310.104,215
−
−−=CR
RC = 160 Ω, karena nilai ini tidak terdapat di pasaran maka dibulatkan menjadi:
RC = 180 Ω
Sementara untuk menentukan nilai RB dilakukan dengan mencari nilai IBmin
terlebih dahulu menggunakan persamaan 2.16.
DC
)sat(C(min)B
IIβ
=
Dengan menggunakan nilai βDC = 30.000 dari datasheet, dan arus LED seven-segment
sebesar 10 mA sebagai IC(sat) maka dapat dihitung nilai IB(min):
3
3
(min) 10.3010.10 −
=BI
IB(min) = 0,33 μA.
Untuk memastikan bahwa transistor benar-benar berada dalam kondisi saturasi maka
ditetapkan nilai IB yang akan digunakan adalah 2 mA. Dengan mengetahui nilai IB dan
VBE(sat) = 1,4 V dari datasheet maka nilai RB dapat dihitung menggunakan persamaan
2.17.
B
RBB I
VR = ,
dengan VRB = VEE – VBE(sat) maka:
310.24,15−
−=BR
RB = 1800 Ω, dan dibulatkan menjadi
RB = 2200 Ω
40
3.6. Perancangan Perangkat Lunak
3.6.1. Diagram Alir Utama
Gambar 3.7. Diagram alir utama
Seperti diperlihatkan pada gambar 3.7, diagram alir utama diawali dengan
proses inisialisasi kemudian diikuti dengan pengesetan kondisi awal PWM motor
serta pengesetan kondisi awal arah putar. Selanjutnya program akan melakukan
looping terus-menerus menunggu adanya sinyal interupsi.
Pada rantai program utama terlihat bahwa tidak ada instruksi yang dikerjakan
pada saat looping, hal ini dimaksudkan untuk mendapatkan tingkat efisiensi yang
tinggi sehingga program utama bisa dikembangkan untuk melakukan tugas-tugas
lainnya. Penulis mencoba untuk memaksimalkan fasilitas interupsi yang diberikan
oleh mikrokontroler sehingga program digital laser show ini dapat digunakan sebagai
add-on (tambahan) saja seandainya diinginkan pengembangan lebih lanjut dengan
mengisi looping program utama. Interupsi-interupsi yang digunakan untuk
menjalankan program dapat dilihat pada tabel 3.2.
Tabel 3.2. Interupsi yang digunakan pada program Digital Laser Show Jenis interupsi Interupt handler Fungsi
Interupsi penekanan
tombol
Interupsi eksternal 0 Interupsi untuk mendeteksi tombol masukan
Interupsi remote
control
Interupsi eksternal 1 Interupsi untuk mendekodekan sinyal remote control
Interupsi scanning
7-segment
Interupsi timer 0 Interupsi untuk melakukan scanning untuk
menampilkan data ke 7-segment
Interupsi PWM Interupsi timer 1 Interupsi untuk menghasilkan sinyal PWM tiap 1% duty
cycle
41
3.6.2. Diagram Alir Proses Inisialisasi Utama
Seperti terlihat pada gambar 3.9, diagram alir inisialisasi mikrokontroler
diawali dengan pendeklarasian konstanta-konstanta dan variabel-variabel pada RAM
internal, serta pendefinisian vektor-vektor interupsi. Kemudian dilakukan pengesetan
bagi timer, pengesetan aktivasi transisi negatif bagi interupsi eksternal, serta
pengaktifan semua interupsi eksternal dan timer.
Gambar 3.8. Diagram alir inisialisasi mikrokontroler
3.6.3 Interupsi Generator PWM
Pada penelitian ini kedua motor dirancang untuk dapat berputar dengan PWM
yang berbeda pada saat bersamaan. Program akan dimulai dengan mengurangi
counter sebesar satu poin dari nilai sebelumnya. Apabila counter telah bernilai nol,
maka counter akan di set ke nilai 100 yang merupakan nilai maksimal PWM dan
sinyal PWM akan dimatikan. Apabila belum, maka nilainya akan dibandingkan
dengan nilai PWM1 dan PWM2 yang ditentukan oleh user. Apabila nilainya sama,
maka sinyal sinyal PWM akan dinyalakan. Apabila tidak, maka sinyal PWM akan
mengikuti kondisi sebelumnya. Diagram alir interupsi timer sebagai pembangkit pulsa
PWM diperlihatkan pada gambar 3.9.
42
Gambar 3.9 Diagram alir interupsi timer 1: PWM
3.6.4. Interupsi penekanan tombol
Interupsi penekanan tombol terdeteksi dengan berubahnya kondisi bit 0INT
yang telah di-set untuk aktif karena terpicu transisi negatif (negative edge). Seperti
terlihat pada gambar 3.10, langkah pertama program adalah menonaktifkan semua
interupsi eksternal diikuti penyimpanan SFR ke stack pointer. Kemudian program
akan mendeteksi tombol mana yang ditekan dengan mendeteksi lokasi pin mana pada
port 0 yang berubah menjadi ”0”. Selanjutnya dilakukan penundaan untuk mengatasi
efek bouncing selama 20 mS.
Setelah itu dilakukan pengecekan kembali apakah tombol yang sama masih
ditekan? Apabila tidak maka program akan keluar dari proses interupsi. Apabila ya,
maka program akan menunggu sampai tombol dilepas sebelum menjalankan subrutin
yang sesuai dengan tombol yang ditekan. Sebagai langkah akhir program akan
mengambil kembali SFR dari stack pointer serta mengaktifkan kembali interupsi
eksternal.
43
3.6.4.1. Diagram Alir Subrutin Tunda Untuk Mengatasi Efek Bouncing
Gambar 3.11 Diagram alir subrutin tunda bouncing
Seperti diperlihatkan pada gambar 3.11, diagram alir subrutin tunda untuk
mengatasi efek bouncing digunakan untuk menghasilkan tunda waktu sebesar 20 mS
dengan menggunakan timer0. Tunda maksimal yang dapat dihasilkan oleh 16 bit
timer apabila menggunakan kristal berfrekuensi 11,0592 MHz yang dihitung sesuai
persamaan 2.8 pada bab II adalah:
65535x11059200
12Tunda max =
Tunda max = 71,1 mS
Karena besarnya tunda 20 mS yang ingin dihasilkan masih di bawah tunda
maksimal maka waktu tunda dapat langsung dihasilkan dalam satu kali siklus putaran
timer. Jumlah step, serta nilai TL0 dan TH0 supaya timer0 dapat menghasilkan tunda
20 mS yang dihitung sesuai persamaan 2.3 dan 2.4 adalah:
12kristal_frek*delaystep_Jumlah =
1211059200x10.20step_Jumlah
3−=
45
Jumlah _step ≈ 18432d atau 4800h
THx/TLx = FFFFh – Jumlah_step (hexa) + 1h
TH0/TL0 = FFFFh – 4800h +1h
TH0/TL0 = B800h
3.6.4.2. Diagram Alir Subrutin Pengubahan Arah Putar Motor
Subrutin pengubahan arah putar motor digunakan untuk mengubah arah
putaran motor dari CW (searah jarum jam) menjadi CCW (berlawanan arah jarum
jam) atau sebaliknya. Seperti terlihat pada gambar 3.12, pengubahan arah cukup
dilakukan dengan mengkomplemenkan kondisi bit arah1. Karena pengubahan motor
dapat dilakukan ketika motor sedang berputar maka kecepatan motor perlu dikurangi
secara perlahan-lahan sampai akhirnya berhenti, sebelum dibalik arah putarnya.
Setelah itu, kecepatan motor juga perlu dinaikkan kembali secara perlahan-lahan
sampai mencapai nilai PWM yang diinginkan user. Hal ini dilakukan untuk
mengurangi sentakan akibat motor berhenti dan berakselerasi secara mendadak.
Gambar 3.12 Diagram alir subrutin pengubahan arah putar motor
46
3.6.5. Interupsi Pendeteksian Remote Control
Hal utama yang harus diperhatikan dalam pendeteksian remote control adalah
sinyal yang diterima oleh mikrokontroler dari IR receiver module merupakan
komplemen atau kebalikan dari sinyal yang dipancarkan oleh remote control. Selain
itu, pengkodean yang digunakan oleh remote control Sony adalah pengkodean lebar
pulsa atau pulse width codification. Pada pengkodean ini, bit ”1” direpresentasikan
dengan pulsa high selama 1200 μS diikuti pulsa low selama 600 μS. Sementara bit ”0”
direpresentasikan dengan dengan pulsa high selama 600 μS diikuti pulsa low selama
600 μS seperti terlihat pada gambar 2.20.
Protokol SIRC yang digunakan oleh remote control Sony untuk mengirimkan
data terdiri atas start bit yang berupa pulsa high selama 2,4 mS diikuti oleh jeda pulsa
low selama 600 μS, diikuti data yang berupa 7-bit command, dan 5-bit device address
seperti terlihat pada gambar 2.21. Pada gambar 3.13 diperlihatkan diagram alir
pendeteksian remote control.
Untuk menangkap kedua belas data yang dikirimkan, mikrokontroler
menggunakan dua buah variabel yakni var1 dan var2. Variabel var1 diset dengan nilai
00001000b, dan var2 dengan nilai 00000000b. Data yang diterima akan digeser ke
kanan satu per satu ke var1 + var2. Mikrokontroler akan mengetahui bahwa data yang
diterima telah berjumlah 12 dengan melihat kondisi bit carry. Setelah 12 kali
pergeseran maka bit carry akan berlogika ”1” karena bit ke tiga var1 yang diset high
telah masuk ke carry setelah bergeser melalui var1 + var2 sebanyak 12 kali.
Proses pendeteksian dipicu oleh terjadinya perubahan kondisi logika 1INT
dari kondisi idle-nya yaitu high, menjadi low, yang disebabkan adanya transmisi data
dari remote control. Kondisi picuan transisi negatif (negative edge) tersebut diset
dengan cara memberi logika high bit IT1 pada saat inisialisasi program. Perubahan
kondisi dari high menjadi low juga merupakan pertanda sedang dikirimkannya start
bit selama 2,4 mS dari remote control. Oleh karena itu mikrokontroler perlu
menunggu selama kira-kira 2,45 mS sebelum melakukan pengecekan ulang kondisi
bit 1INT atau pin 3.3. Apabila tidak maka langsung keluar dari subrutin dan kembali
ke program utama sementara apabila sinyal naik maka lanjutkan ke langkah
selanjutnya.
Langkah berikutnya, program akan menunggu sampai sinyal kembali turun.
Pada saat sinyal turun inilah saat yang paling penting dalam pendeteksian.
47
Mikrokontroler akan menunggu selama 900 μS atau 1,5 x 600 μS sebelum mengecek
kembali kondisi pin 3.3. Apabila kondisinya berubah menjadi high maka data yang
dikirimkan adalah ”0”. Sementara apabila kondisinya tetap low maka data yang
dikirimkan adalah ”1”.
Gambar 3.13 Diagram alir interupsi pendeteksian remote control
48
Untuk menuliskan ke dalam memori bahwa kondisi pin INT1 berubah menjadi
high yang berarti mikrokontroler menerima data ”0”, maka mikrokontroler akan
melakukan urutan langkah sebagai berikut:
1. Clear-kan bit carry, yang menunjukkan data yang diterima adalah ”0”.
2. Rotasikan ke kanan dengan menyertakan carry (Rotate right with carry) variabel
var1. Akibat dari instruksi ini maka carry akan masuk ke MSB var1, dan LSB
var1 akan masuk ke carry.
3. Rotasikan ke kanan dengan menyertakan carry (Rotate right with carry) variabel
var2. Akibat dari instruksi ini maka carry dari LSB var1 akan masuk ke MSB
var2, dan LSB var2 akan masuk ke carry.
4. Kemudian dilakukan pengecekan bit carry apakah telah bernilai ”1”, yang berarti
telah menerima 12 data? Apabila ya, maka program akan merotasikan ke kanan
var1 + var2 untuk menempatkan 7 bit command di var2, dan 5 bit device address
di var1. Apabila tidak, maka program akan kembali untuk mengecek kondisi
sinyal di 3.3 apakah telah berubah menjadi low.
Sementara untuk menuliskan ke dalam memori bahwa kondisi pin 3.3 tetap
low yang berarti mikrokontroler menerima data ”1”, maka mikrokontroler akan
melakukan urutan langkah yang hampir sama dengan apabila kondisi pin 3.3 berubah
high. Perbedaan antara keduanya adalah pada bagian ini carry diset high untuk
mengindikasikan data yang diterima adalah”1”, serta branching program saat total
data yang diterima belum mencapai 12 bit. Program akan mengarah setingkat lebih
tinggi dari penjelasan algoritma sebelumnya yakni program harus mengecek apakah
kondisi pin 3.3 telah berubah menjadi high kembali.
Tabel 3.3. Perancangan fungsi dari tombol remote control yang ditekan
Tombol Command code Fungsi
Vol + 12h Naikkan PWM1 sebesar 1%
Vol - 13h Turunkan PWM1 sebesar 1%
Normal 16h Ubah arah motor 1
Prog + 10h Naikkan PWM2 sebesar 1%
Prog - 11h Turunkan PWM2 sebesar 1%
Select - 75h Ubah arah motor 2
Setelah ketujuh bit command tersimpan di dalam variabel var1 maka
dilakukan pendeteksian tombol mana yang ditekan oleh user. Pada perancangan ini
50
hanya 6 tombol yang akan digunakan. Keenam tombol beserta fungsinya dapat dilihat
pada tabel 3.3. Kemudian dilakukan pemanggilan subrutin kirim data ke
mikrokontroler sekunder. Setelah itu dilakukan kembali pengaktifan kembali fungsi
interupsi eksternal yang pada awal proses pendeteksian ini dinonaktifkan.
3.6.5.1 Diagram Alir Subrutin Tunda 2,45 mS
Diagram alir subrutin tunda 2,45 mS diperlihatkan pada gambar 3.14. Karena
besarnya tunda 2,45 mS yang ingin dihasilkan masih dibawah tunda maksimal sebesar
71,7 mS maka tunda dapat langsung dihasilkan dalam satu kali siklus putaran timer.
Dengan menggunakan persamaan 2.9 dan 2.10, dapat dihitung jumlah step, serta nilai
TL0 dan TH0 yang harus dimasukkan supaya timer0 dapat menghasilkan tunda
sebesar 2,45 mS , yaitu:
12kristal_frek*delaystep_Jumlah =
1211059200x10.45,2step_Jumlah
3−=
Jumlah _step ≈ 2257d atau 08D1h
THx/TLx = FFFFh – Jumlah_step + 1h
TH0/TL0 = FFFFh – 08D1h +1h
TH0/TL0 = F72Fh
Gambar 3.14 Diagram alir subrutin tunda 2,45 mS
51
Subrutin diagram alir untuk menghasilkan tunda 0,9 mS hampir sama dengan
diagram alir subrutin tunda 2,45 mS. Perbedaan hanya terdapat pada hasil perhitungan
untuk menentukan nilai TL0 dan TH0, yaitu: C3h untuk TL0, dan FCh untuk TH0.
3.6.6. Interupsi Scanning Seven-Segment
Seperti ditunjukkan pada gambar 3.15, diagram alir interupsi scanning seven-
segment diawali dengan mematikan semua seven-segment. Kemudian diikuti dengan
menunjuk alamat data yang akan ditampilkan dan mengkonversikannya sesuai dengan
posisi pin seven-segment. Setelah itu, tunjuk dan aktifkan seven-segment yang sesuai.
Seandainya ini merupakan data terakhir, maka alamat data dan posisi seven-segment
perlu di reset ke alamat awal, kalau tidak maka alamat data dan posisi baru harus
disimpan. Proses scanning ini akan dipicu oleh interupsi timer1 yang terjadi setiap 2,5
mS.
Gambar 3.15 Diagram alir tampilan seven-segment
52
3.6.6.1 Diagram alir Subrutin Pengubahan Data dari Heksa Desimal Menjadi
BCD
Subrutin pengubahan data dari bilangan heksa desimal menjadi BCD (Binary
Coded Decimal) dilaksanakan oleh mikrokontroler setiap kali mikrokontroler selesai
menerima data masukan, baik dari tombol push-button maupun dari remote control.
Diagram alirnya diperlihatkan pada gambar 3.16. Pada bagian ini data yang akan
diubah menjadi bilangan BCD adalah data yang tersimpan pada PWM1 dan PWM2
yang tersimpan pada alamat memori 30h dan 31h. Nilai BCD ini kemudian akan
digunakan sebagai nilai indexed addressing pada look-up table yang menunjukkan
tampilan seven- segment yang sesuai.
Setelah itu data arah_mtr yang tersimpan pada alamat 32H akan dicek untuk
untuk mengetahui arah putar motor pertama dan kedua. Apabila arah putar motor
adalah CW maka nilai indexed adressing-nya adalah 10 yang akan menampilkan
tulisan pada seven-segment. Sedangkan apabila arah putarnya adalah CCW maka
nilai indexed adressing-nya adalah 11 yang akan menampilkan tulisan pada seven-
segment .
Prinsip pengubahan bilangan heksa desimal menjadi BCD adalah sebagai
berikut (pada perancangan ini, proses dibatasi hanya untuk bilangan desimal antara 0d
sampai 100d atau 00h sampai 64h pada bilangan heksa desimal) :
1. Cek apakah nibble (4 bit) bawah sama atau lebih besar dari 10d? Apabila ya
tambahkan dengan 6 dan set carry, kemudian simpan sebagai digit satuan. Apabila
tidak maka langsung disimpan tanpa perlu dilakukan penambahan.
2. Ambil nibble atas dan cek apakah terdapat carry dari proses sebelumnya? Kalau
ya maka tambahkan satu dan apabila tidak maka tidak perlu ditambah. Kemudian
cek apakah nilai setelah penambahan lebih besar atau sama dengan 10d? Apabila
ya tambahkan dengan 6 dan set carry, kemudian simpan sebagai digit puluhan.
Apabila tidak maka langsung disimpan tanpa perlu dilakukan penambahan.
Diagram alir proses pengecekan dan pengubahan tiap nibble dapat dilihat pada
gambar 3.17.
53
BAB IV
PENGAMATAN DAN PEMBAHASAN
Pengamatan secara keseluruhan menunjukkan bahwa alat yang dibuat mampu
bekerja sesuai dengan yang diharapkan, yaitu alat mampu menghasilkan dua buah
gelombang PWM secara simultan dengan duty cycle yang dapat diatur melalui tombol
push-button ataupun remote control. Data duty cycle dalam satuan persen dapat
ditampilkan oleh penampil seven-segment dengan baik. Selain itu motor juga dapat
berputar dua arah, clock wise (CW) maupun counter clock wise (CCW).
4.1. Pengamatan Terhadap Sinyal Keluaran IR Receiver Module.
Sinyal keluaran IR Receiver Module merupakan kebalikan atau inverse dari
sinyal remote control yang berupa rentetan data serial yang terdiri dari start bit, 7-bit
command, dan 5-bit address. Gambar 4.1 menunjukkan salah satu bentuk gelombang
keluaran IR Receiver Module.
Gambar 4.1. Sinyal keluaran IR Receiver Module
Dari hasil pengukuran didapatkan data untuk start bit berupa sinyal “0” selama
2,4 mS, sementara data “1” direpresentasikan dengan sinyal low selama 1,2 mS, dan
data “0” direpresentasikan dengan sinyal low selama 0,6 mS. Sedangkan sinyal-sinyal
56
high selama 0,6 mS merupakan sinyal idle. Pengamatan ini menunjukkan bahwa data
yang dikeluarkan oleh IR Receiver Module sesuai dengan pengkodean lebar pulsa
SIRC SONY yang tertulis di dasar teori. Tabel 4.1 memperlihatkan fungsi-fungsi
tombol remote control untuk mengendalikan perangkat digital laser show.
Tabel 4.1. Fungsi dari tombol remote control yang ditekan
Tombol Command code Fungsi Keterangan
Vol + 12h Naikkan PWM1 sebesar 1% Sesuai perancangan
Vol - 13h Turunkan PWM1 sebesar 1% Sesuai perancangan Normal 16h Ubah arah motor 1 Sesuai perancangan Prog + 10h Naikkan PWM2 sebesar 1% Sesuai perancangan Prog - 11h Turunkan PWM2 sebesar 1% Sesuai perancangan
Select - 75h Ubah arah motor 2 Sesuai perancangan
4.2. Pengamatan terhadap pulsa PWM
Pulsa PWM diamati pada bagian keluaran non-inverting buffer 74hc541 yang
dihubungkan ke ground melalui sebuah resistor 1kΩ. Masukan dari buffer berasal dari
port 1.0 dan 1.1 mikrokontroler AT89S51 yang difungsikan sebagai output. Bentuk
gelombang sinyal PWM dengan duty cycle 63% dapat diamati pada gambar 4.2.
Gambar 4.2 Bentuk pulsa PWM dengan duty cycle 63%
Dari hasil pengamatan gambar diatas terlihat bahwa bentuk gelombang
keluaran sinyal PWM berupa gelombang kotak dengan frekuensi yang berkisar antara
91,75 Hz sampai 92,65 Hz. Duty cycle yang terukur dari osiloskop digital
57
menunjukkan range data antara 62, 65% sampai 63,76%. Frekuensi dan duty cycle
yang berubah-ubah tersebut dikarenakan interupsi timer 0 untuk melakukan scanning
seven-segment.
Pada tabel 4.2 disajikan data pengamatan terhadap beberapa contoh pulsa
PWM dengan duty cycle yang berbeda-beda. Dari tabel dapat terlihat bahwa range
error untuk duty cycle PWM yang berbeda-beda memiliki nilai yang hampir sama. Ini
menunjukkan bahwa penginterupsian oleh program scanning seven-segment
dilakukan secara periodis dan teratur. Perbedaan yang terjadi disebabkan oleh
kekurangtelitian alat pengukur saat mencuplik data. Rerata range error PWM pertama
adalah sebesar 0,77%. Sedangkan rerata untuk PWM kedua adalah sebesar 0,71%.
Tabel 4.2. Data pengamatan duty cycle PWM
Motor 1 Motor 2
PWM teramati
(%)
PWM teramati
(%)
PWM
set point
(%) Batas
bawah
Batas
atas
Range Error
(%) Batas
bawah
Batas
atas
Range Error
(%)
0 0 0 0 0 0 0
1 0,90 1,1 0,2 0,91 1,2 0,29
10 9,58 10,35 0,77 9,28 10,11 0,83
20 19,65 20,45 0,8 19,48 20,35 0,87
30 29,73 30,56 0,83 29,61 30,38 0,77
40 39,73 40,55 0,82 39,80 40,37 0,58
50 49,67 50,38 0,71 49,58 50,48 0,9
60 59,51 60,45 0,94 59,58 60,61 1,03
70 69,65 70,63 0,98 69,71 70,37 0,66
80 79,52 80,61 1,09 79,65 80,54 0,89
90 89,45 90,62 1,17 89,84 90,68 0,84
99 98,34 99,28 0,94 98,21 99,11 0,9
Rerata range error 0,77 Rerata range error 0,71
Ket: Range error didapatkan dengan mengurangkan batas atas dengan batas bawah.
Range error = batas atas - batas bawah
Rerata range error didapatkan dengan menjumlahkan semua sample data range
error dan membaginya dengan jumlah sample.
58
4.3. Hubungan kecepatan putar motor dengan presentase PWM
Kecepatan putar masing-masing motor diukur dengan menggunakan
tachometer baik pada saat berputar searah (CW) maupun berlawanan (CCW) jarum
jam. Metodenya adalah dengan menempelkan kertas berwarna gelap (hitam) ke
sekeliling cermin sehingga menyerupai tabung, kemudian pada salah satu bagian
tabung tersebut ditempelkan selapis kertas reflektor untuk memantulkan kembali sinar
yang dipancarkan tachometer yang akan digunakan sebagai input counter tachometer.
Hasil pengukuran menggunakan tachometer terhadap kecepatan motor
disajikan dalam tabel 4.3 sampai 4.6. Sedangkan tampilan grafiknya disajikan mulai
gambar 4.3 sampai 4.6. Dari hasil pengukuran dapat diamati bahwa peningkatan
kecepatan motor berupa kurva logaritmis dibandingkan dengan kenaikan presentase
PWM yang linear. Hal ini diakibatkan oleh karakteristik motor yang tidak linear.
Pada pengamatan kecepatan minimal motor dapat dilihat bahwa motor dapat
masih dapat berputar pada tingkat PWM 6% apabila kecepatannya diturunkan dari
kecepatan yang lebih tinggi. Sedangkan apabila dari diam, motor akan mulai berputar
pada presentase PWM sebesar 9%. Perbedaan ini dikarenakan gaya kelembaman,
yaitu suatu gaya yang menyebabkan suatu benda akan cenderung mempertahankan
kondisi terakhirnya sehingga diperlukan energi yang lebih besar untuk merubah
kondisi tersebut. Secara umum dapat dianalisa bahwa karakteristik starting point
motor cukup bagus karena berada pada titik yang cukup rendah.
Pengamatan untuk membandingkan karakteristik kedua motor menunjukkan
bahwa kedua motor memiliki karakteristik yang hampir sama dilihat dari starting
point minimum, maupun grafik perubahan kecepatannya. Perbedaan antara kedua
motor terletak pada kecepatan maksimal motor pertama yang lebih rendah daripada
motor kedua.
Sedangkan pengamatan untuk melihat perbedaan kecepatan saat motor
berputar searah (CW) dan berlawanan (CCW) jarum jam memperlihatkan bahwa
kecepatan motor saat berputar searah jarum jam sedikit lebih cepat dibanding
sebaliknya. Hal ini dikarenakan kedua motor yang digunakan adalah jenis motor CW,
yang berarti didesain untuk bekerja lebih optimal saat berputar searah jarum jam.
Namun sesuai karakteristik motor DC yang akan berubah arah apabila polaritas
tegangannya dibalik, motor-motor ini juga mampu berputar CCW dengan cukup baik.
59
Tabel 4.3 Kecepatan motor 1 saat berputar searah jarum jam (CW)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
0 0 20 2735 40 3701 60 3978 80 4180
1 0 21 2835 41 3726 61 3988 81 4189
2 0 22 2901 42 3747 62 4003 82 4195
3 0 23 2975 43 3752 63 4016 83 4199
4 0 24 3045 44 3769 64 4035 84 4205
5 0 25 3140 45 3779 65 4050 85 4210
6 298 26 3198 46 3801 66 4064 86 4212
7 679 27 3238 47 3822 67 4079 87 4214
8 972 28 3259 48 3838 68 4085 88 4216
9 1297 29 3285 49 3859 69 4096 89 4217
10 1531 30 3299 50 3870 70 4101 90 4219
11 1702 31 3341 51 3895 71 4105 91 4220
12 1903 32 3389 52 3920 72 4111 92 4222
13 2069 33 3425 53 3931 73 4118 93 4225
14 2189 34 3486 54 3950 74 4123 94 4227
15 2276 35 3508 55 3956 75 4125 95 4230
16 2386 36 3567 56 3966 76 4138 96 4233
17 2509 37 3612 57 3969 77 4147 97 4237
18 2604 38 3656 58 3974 78 4161 98 4245
19 2686 39 3684 59 3977 79 4171 99 4248
MOTOR 1 CW
0
1000
2000
3000
4000
5000
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
PWM (%)
RPM
Gambar 4.3 Hubungan kecepatan putar searah jarum jam (CW) motor 1 terhadap
presentase PWM
60
Tabel 4.4. Kecepatan motor 1 saat berputar berlawanan jarum jam (CCW) PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
0 0 20 2728 40 3694 60 3970 80 4166
1 0 21 2829 41 3718 61 3976 81 4178
2 0 22 2894 42 3740 62 3985 82 4182
3 0 23 2970 43 3742 63 4001 83 4185
4 0 24 3031 44 3760 64 4022 84 4191
5 0 25 3131 45 3767 65 4037 85 4196
6 295 26 3190 46 3791 66 4049 86 4200
7 610 27 3229 47 3818 67 4055 87 4201
8 910 28 3251 48 3830 68 4059 88 4201
9 1265 29 3275 49 3851 69 4075 89 4206
10 1465 30 3289 50 3861 70 4086 90 4209
11 1645 31 3332 51 3887 71 4091 91 4211
12 1896 32 3381 52 3916 72 4097 92 4213
13 2068 33 3415 53 3925 73 4101 93 4215
14 2159 34 3475 54 3941 74 4109 94 4218
15 2270 35 3501 55 3951 75 4111 95 4221
16 2381 36 3561 56 3958 76 4120 96 4224
17 2500 37 3604 57 3961 77 4134 97 4235
18 2508 38 3648 58 3964 78 4146 98 4238
19 2678 39 3678 59 3968 79 4157 99 4239
MOTOR 1 CCW
0
1000
2000
3000
4000
5000
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
PWM (%)
RPM
Gambar 4.4. Hubungan kecepatan putar berlawanan jarum jam (CCW) motor 1
terhadap presentase PWM
61
Tabel 4.5. Kecepatan motor 2 saat berputar searah jarum jam (CW) PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
0 0 20 2855 40 3861 60 4218 80 4395
1 0 21 2921 41 3890 61 4223 81 4402
2 0 22 2999 42 3929 62 4236 82 4412
3 0 23 3132 43 3948 63 4247 83 4423
4 0 24 3150 44 3956 64 4252 84 4435
5 0 25 3211 45 3971 65 4263 85 4445
6 334 26 3244 46 4006 66 4275 86 4450
7 683 27 3291 47 4035 67 4286 87 4455
8 990 28 3332 48 4045 68 4291 88 4467
9 1315 29 3372 49 4046 69 4299 89 4479
10 1558 30 3470 50 4066 70 4301 90 4482
11 1785 31 3520 51 4120 71 4310 91 4498
12 1963 32 3615 52 4123 72 4329 92 4511
13 2120 33 3640 53 4131 73 4324 93 4518
14 2244 34 3684 54 4178 74 4345 94 4521
15 2343 35 3703 55 4181 75 4362 95 4524
16 2473 36 3740 56 4199 76 4355 96 4531
17 2590 37 3770 57 4205 77 4375 97 4546
18 2685 38 3780 58 4210 78 4385 98 4551
19 2787 39 3839 59 4213 79 4389 99 4550
MOTOR 2 CW
0
1000
2000
3000
4000
5000
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
PWM (%)
RPM
Gambar 4.5. Hubungan kecepatan putar searah jarum jam (CW) motor 2 terhadap
presentase PWM
62
Tabel 4.6. Kecepatan motor 2 saat berputar berlawanan jarum jam (CCW) PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
PWM
(%)
Kec.
(RPM)
0 0 20 2803 40 3831 60 4205 80 4363
1 0 21 2868 41 3849 61 4209 81 4378
2 0 22 2933 42 3980 62 4212 82 4386
3 0 23 3056 43 3910 63 4221 83 4391
4 0 24 3109 44 3919 64 4230 84 4397
5 0 25 3168 45 3942 65 4240 85 4405
6 305 26 3215 46 3967 66 4253 86 4416
7 643 27 3244 47 4001 67 4261 87 4423
8 964 28 3284 48 4010 68 4275 88 4431
9 1342 29 3325 49 4038 69 4286 89 4439
10 1501 30 3412 50 4059 70 4293 90 4445
11 1635 31 3472 51 4086 71 4299 91 4456
12 1841 32 3543 52 4091 72 4302 92 4469
13 2033 33 3610 53 4110 73 4310 93 4479
14 2204 34 3641 54 4132 74 4318 94 4492
15 2311 35 3662 55 4153 75 4329 95 4499
16 2421 36 3686 56 4163 76 4336 96 4502
17 2512 37 3741 57 4179 77 4347 97 4511
18 2652 38 3769 58 4185 78 4351 98 4517
19 2754 39 3799 59 4199 79 4356 99 4523
MOTOR 2 CCW
0
1000
2000
3000
4000
5000
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
PWM (%)
RPM
Gambar 4.6 Hubungan kecepatan putar berlawanan jarum jam (CCW) motor 2
terhadap presentase PWM
63
4.4. Hubungan PWM, Kecepatan Motor, dan Pola Yang Dihasilkan
Pola yang dihasilkan pada saat kedua motor diputar pada arah searah jarum
jam ditunjukkan pada tabel 4.7. Pada saat kedua motor dibalik arah putarnya menjadi
CCW, dengan nilai PWM yang sama seperti tabel 4.7, ternyata pola yang dihasilkan
juga sama. Oleh karena itu tabel 4.7 dapat dikatakan menggambarkan pola yang
terbentuk saat kedua motor berputar searah.
Sedangkan pola yang dihasilkan saat motor pertama diputar searah jarum jam
(CW) dan motor 2 diputar berlawanan jarum jam (CCW) disajikan dalam tabel 4.8.
Pada saat motor pertama dibalik arah putarnya menjadi CCW, dan motor kedua yang
menjadi CW, ternyata pola yang dihasilkan adalah sama untuk nilai PWM yang sama.
Sehingga tabel 4.8 dapat mewakili pola yang terbentuk saat kedua motor berputar
berlawanan arah.
Tabel 4.7. Pola yang terbentuk saat kedua motor berputar searah
PWM1 (%) CW PWM2 (%) CW Kec. M1 (rpm) Kec. M2 (rpm) Pola
0 0 0 0
10 0 1531 0
10 10 1531 1558
10 21 1531 2921
10 40 1531 3861
17 82 2509 4412
20 87 2735 4455
69 11 4096 1785
70 17 4101 2590
97 09 4237 1315
65 15 4050 2343
24 08 3045 990
64
Tabel 4.8. Pola yang terbentuk saat kedua motor berputar berlawanan arah
PWM1 (%) CW PWM2 (%) CCW Kec. M1 (rpm) Kec. M2 (rpm) Pola
10 0 1531 0
10 10 1531 1501
10 12 1531 1841
10 15 1531 2311
10 37 1531 3741
27 99 3238 4523
32 99 3389 4523
38 99 3656 4523
43 99 3752 4523
47 99 3822 4523
55 99 3956 4523
60 99 3978 4523
60 17 3978 2512
60 20 3978 2803
65 23 4050 3056
63 25 4016 3168
67 27 4079 3244
78 30 4161 3412
Dari tabel 4.7 dan 4.8, terlihat bahwa alat yang dibuat mampu menghasilkan
berbagai macam pola grafik. Secara keseluruhan dapat diamati bahwa pada saat kedua
motor diam, maka yang tampak adalah titik laser pointer. Ketika salah satu motor
65
berputar maka keluarannya berbentuk lingkaran. Apabila kedua motor berputar pada
arah yang sama maka akan terbentuk lingkaran minor yang mengarah ke dalam
lingkaran utama.
Sedangkan apabila gerakan kedua motor berlawanan, dengan kecepatan motor
pertama lebih rendah dibanding motor kedua maka akan terlihat lingkaran minor
cembung yang mengarah keluar dan berbentuk seperti bidang polar. Dan apabila
kecepatan motor pertama lebih besar dibanding motor kedua maka akan terlihat
lingkaran minor pipih yang mengarah keluar dan berbentuk menyerupai bentuk
bintang.
Jumlah lingkaran minor yang terbentuk, maupun arah gerakannya dipengaruhi
oleh perbandingan kecepatan antara motor pertama dan kedua. Gambar yang kurang
jelas disebabkan karena intensitas sinar laser yang tidak cukup terang, dan
kemampuan kamera yang tidak mampu merekam dengan kecepatan tinggi serta
kemampuan lensa kamera yang lebih lemah dibandingkan lensa mata.
4.5. Bentuk fisik alat
(a)
(b)
Gambar 4.7. Bentuk fisik alat
(a) Tampak depan (b) Tampak sudut samping kiri atas dengan tutup terbuka
Seperti terlihat pada gambar 4.7, alat yang dibuat kemudian dikemas dengan
menggunakan bahan isolator yang terbuat dari acrylic yang kokoh sehingga cukup
66
aman untu menjaga rangkaian di dalamnya dari kerusakan akibat benturan serta
mengamankan user dari bahaya tersengat arus listrik. Bahan acrylic yang tembus
pandang juga memungkinkan sinar infra merah dari remote control dapat diterima
dengan baik oleh IR Receiver Module yang berada di dalam kotak. Demikian pula
pantulan sinar laser dapat dengan mudah diteruskan sebelum tertampil di dinding.
Kemasan yang tembus pandang juga menambah daya tarik perangkat ini
sebagai sarana hiburan, karena user dapat melihat keseluruhan rangkaian elektronis
maupun mekanik, serta mengamati proses dan cara kerja perangkat ini. Keterangan
fungsi yang menyertai masing-masing tombol diharapkan akan memudahkan user
dalam mengoperasikan perangkat ini. Dengan desain yang kompak dan portable,
perangkat ini akan lebih mudah untuk dibawa maupun dipindahkan.
4.6. Penempatan mekanis motor, cermin, dan laser
Seperti terlihat pada gambar 4.8, cermin dipasangkan pada rotor masing-
masing motor pada titik tengah cermin. Apabila motor berputar maka cermin juga
akan berputar dengan sedikit bergoyang karena adanya kerenggangan antar rotor dan
stator. Putaran motor akan menyebabkan gaya gravitasi yang dialami oleh cermin
membuat cermin sedikit terpantul-pantul yang terlihat seperti bergoyang. Goyangan
pada cermin akan menyebabkan terbentuknya pola-pola grafis apabila terdapat sinar
terpantul dari bidang permukaan cermin.
Motor 1
Motor 2Laser
pointer
Cermin
Cermin
Pantulan ke layar
Gambar 4.8. Penempatan mekanis motor, cermin, dan laser
67
Posisi kedua motor dipasang pada posisi berhadap-hadapan dan diatur
jaraknya sedemikan rupa sehingga pantulan sinar laser dari cermin pertama dapat
mengenai dan terpantulkan kembali dengan sempurna oleh motor kedua ke layar.
Laser pointer juga harus terpasang dengan posisi dan sudut yang tepat sehingga
mampu terpantul dengan sempurna oleh kedua cermin. Pengaturan posisi dan jarak
yang tidak tepat diantara ketiganya akan menyebabkan sinar laser tidak dapat
terpantul seutuhnya ketika motor berputar. Hal ini dikarenakan ketika cermin
bergoyang maka akan terbentuk sudut pada bidang pantulan yang menyebabkan lebar
bidang pantulan semakin lebar dan memungkinkan sebagian pantulan tidak mengenai
salah satu atau kedua cermin. Apabila ini terjadi maka pola yang terbentuk akan
menjadi cacat atau terpotong.
68
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Secara umum dapat disimpulkan bahwa alat yang dibuat mampu memenuhi
tujuan yang diinginkan yaitu untuk menghasilkan suatu perangkat digital laser show
dengan metode pemantulan terhadap cermin berputar yang kecepatan dan arahnya
dapat dikendalikan secara digital. Secara lebih spesifik, dari penelitian didapatkan
hasil sebagai berikut:
1. Perangkat dibuat mampu menghasilkan pola-pola yang beraneka ragam.
2. Semakin banyak cermin yang berputar semakin banyak pula macam pola yang
dapat dihasilkan.
3. Semakin banyak kombinasi kecepatan dan arah putar motor semakin banyak
pula pola yang dihasilkan.
4. Kecepatan dua motor dapat diatur dengan metode PWM dengan kenaikan atau
penurunan duty cycle setiap 1%, dengan rerata range error sebesar 0,77%
untuk PWM pertama dan 0,71% untuk PWM kedua.
5. Pengendalian kecepatan motor dapat dilakukan dengan lebih mudah karena
dapat dikendalikan secara nirkabel menggunakan IR Remote control.
5.2. Saran
Untuk pengembangan lebih lanjut penulis memberikan beberapa saran sebagai
berikut:
1. Untuk memperbanyak variasi pola dapat digunakan tiga atau lebih motor DC
sekaligus.
2. Untuk memudahkan mobilitas dapat digunakan power supply berupa baterai
atau accu.
3. Untuk menghasilkan gelombang PWM, dapat digunakan mikrokontroler yang
memberikan fasilitas PWM built-in di dalamnya.
69
DAFTAR PUSTAKA -----, Brushed Motor DC, Freescale Semiconductor Inc., 2004-2005.
(http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=02nQXGrrlPY7r8f7sz.htm)
-----, L293, L293D Quadruple Half-H Drivers, Texas Instruments, Texas, 2002 (http://www.focus.ti.com/docs/prod/folders/print/l293d.html)
-----, Lecture7. Digital display. (hibp.ecse.rpi.edu/~connor/education/ IEE/lectures/Lecture_7_digital_display.pdf)
-----, Lissajous curve, Wikimedia Foundation, Inc., 2007 (http://en.wikipedia.org/wiki/Lissajous_curve.htm)
-----, MC78XX/LM78XX/MC78XXA 3-Terminal 1A Positive Voltage Regulator, 2001.
(www.fairchildsemi.com)
-----, Seven-Segment Display, Answers.com (http://www.Answers.com/seven-segment-display.htm)
-----, PWM Signal Generators.
(http://homepages.which.net/~paul.hills/circuits/pwmgenerators/pwmgenerators.html)
Atmel, 8-bit Microcontroller with 4K Bytes In-System Programmable Flash: AT89S51,
Atmel Corp., 2001 (www.atmel.com/dyn/resources/prod_documents/doc2487.pdf)
Barr, Michael., Pulse Width Modulation, Embedded Systems Programming, 2001 (http://www.netrino.com/publications/glossary/pwm.htm)
Bergmans, San, IR Remote Control Theory, Oisterwijk, 2001
(http://www.slydiman.compass.com.ru/scr/kb/ir.htm)
Bergmans, San, Sony SIRC Protocol, Oisterwijk, 2003 (http://www. xs4all.nl/~sbp/knowledge/ir/sirc.htm)
Floyd, Thomas L., Electronic Devices Electron-Flow Version, Prentice Hall, Englewood Cliff, Second Edition, 1996
Harsono, Budianto, Pembangkit Pola Atraksi Sinar Laser, Teknik Elektro Universitas Sanata Dharma, Yogyakarta, 2005.
Lipnharski, Wagner, Remote Control Technical Specifications SONY, UST Research Inc., 2002 (http://www.ustr.net/infrared/sony.shtml)
McManis, Chuck, H-BRIDGES: Theory and Practice, 2003.
(www.mcmanis.com/chuck/robotics/tutorial/h-bridge)
70
Microsoft, Microsoft Encarta 2005: Laser, Microsoft Corp., 2004. Nalwan, Paulus Andi, Panduan Praktis Teknik Antar Muka dan Pemrograman
Mikrokontroler AT89C51, PT Elex Media Computindo, Jakarta, 2003.
Nave R., DC Motor Operation, HyperPhysics. (http://hyperphysics.phy-astr.gsu.edu/hbase/hframe.html)
Kunihiro, Matsuda, Seri Teknologi Tinggi Bergambar: LASER, PT Elex Media
Computindo, Jakarta, 1987.
Price, T. E., Analog Electronic: An Integrated Pspice approach, Prentice Hall Europe, Hemel Hemstead, 1997.
Putra, Agfianto Eko, Belajar Mikrokontroler AT89C51/52/55 (Teori dan Aplikasi), Gava Media, Yogyakarta, 2002.
Steiner, Craig, The 8052 Tutorial and Reference, Vault Information Services LLC, version 1.00, 2004.
Torrens, Richard, 4QD-TEC: Electronics Circuits Reference Archive PWM Speed Control, 4QD-TEC, 2004 (http://www.4qdtec.com/pwm-01.html)
Weisstein, Eric W, Hypotrochoid, Wolfram Research Inc., 2006
(http://mathworld.wolfram.com/Hypotrochoid.html)
Ibid, Hypocycloid, Wolfram Research Inc., 2006 (http://mathworld.wolfram.com/Hypocycloid.html)
Ibid, Rose, Wolfram Research Inc., 2006 (http://mathworld.wolfram.com/Rose.html)
71
L1
180
Leo
Agun
g C
ahyo
no (0
0511
4036
)
Dig
ital L
aser
Sho
w
A
11
Mon
day
, O
ctob
er 3
0, 2
006
Title
Siz
eD
ocum
ent
Num
ber
Rev
Dat
e:S
heet
of
VC
C
U15
AT8
9C51
91819
20
29 30
31
40
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
RS
TXT
AL2
XTA
L1
GND
PS
EN
ALE
/PR
OG
EA
/VP
P
VCC
P1.
0P
1.1
P1.
2P
1.3
P1.
4P
1.5
P1.
6P
1.7
P2.
0/A
8P
2.1/
A9
P2.
2/A
10P
2.3/
A11
P2.
4/A
12P
2.5/
A13
P2.
6/A
14P
2.7/
A15
P3.
0/R
XDP
3.1/
TXD
P3.
2/IN
TOP
3.3/
INT1
P3.
4/TO
P3.
5/T1
P3.
6/W
RP
3.7/
RD
P0.
0/A
D0
P0.
1/A
D1
P0.
2/A
D2
P0.
3/A
D3
P0.
4/A
D4
P0.
5/A
D5
P0.
6/A
D6
P0.
7/A
D7
R17
2K2
7's
segm
ent 4 2 9167 10
3
330
22 u
F
+C
5
10uF
/16V
VC
C
BC
516
3
2
1VC
C
R3
330
VC
C
VC
C
C2
33pF
VC
CV
SS
C1
33pF
D4 LE
D
SW
6
R1 10
0
VC
C
R22
7's
segm
ent 4 2 9167 10
3
7's
segm
ent 4 2 9167 10
3
M1
MO
TOR
DC
1 2
BC
516
3
2
1
R16
R2
8K2
SW
3
BC
516
3
2
1
VC
C
7's
segm
ent 4 2 9167 10
3
R21
SW
1
U1
L293
D
2 7 10 15 1 9
3 6 11 14
16
8
1A 2A 3A 4A
1,2E
N3,
4EN
1Y 2Y 3Y 4Y
VCC
VSS
R20
R18
10k
7's
segm
ent 4 2 9167 10
3
R12
U16 74
LS54
1
1 19 2 3 4 5 6 7 8 9
18 17 16 15 14 13 12 11
OE
1O
E2
A0
A1
A2
A3
A4
A5
A6
A7
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
D1
LED
VC
C
VC
C
VC
C
SW
4
SW
2
330
R13
BC
516
3
2
1
R15
M2
MO
TOR
DC
1 2
SW
5
VC
C
R19
Vout
VC
C
Y1
11,0
592
MH
z
IR RECEIVER
RC
VC
C
R23
R14
RB
VC
C
BC
516
3
2
1
BC
516
3
2
1
7's
segm
ent 4 2 9167 10
3
VC
C
SW
7
1 0000 ;*****************************************************; 2 0000 ;---------------PROGRAM DIGITAL LASER SHOW-----------------; 3 0000 ;*****************************************************; 4 0000 ;* * 5 0000 ;* LEO AGUNG CAHYONO * 6 0000 ;* NIM: 00514036 * 7 0000 ;* Jurusan Teknik Elektro * 8 0000 ;* Universitas Sanata Dharma Yogyakarta * 9 0000 ;* Editing terakhir: 10 Oktober 2006 * 10 0000 ;* * 11 0000 ;*****************************************************; 13 0000 ;*************KETERANGAN SOFTWARE***************; 14 0000 ; 15 0000 ; Program pengendalian kecepatan 2 motor menggunakan 16 0000 ; metode PWM secara simultan 17 0000 ; 18 0000 ;Output motor di P1: 19 0000 ; P1.0 = enable motor 1 (PWM1) 20 0000 ; P1.1 = enable motor 2 (PWM2) 21 0000 ; P1.2 & P1.3 = arah putar motor 1 22 0000 ; P1.4 & P1.5 = arah putar motor 2 23 0000 ; 24 0000 ;Pengendalian menggunakan 2 metode masukan,yaitu: 25 0000 ; Remote control melalui INT1 (P3.3) 26 0000 ; 6 buah Push-button melalui INT0 (P3.2) & sisa P3 27 0000 ; 28 0000 ;Display menggunakan 6 buah 7'segment: 29 0000 ; Data 7'segment di P2 (aktif low) 30 0000 ; Selektor 7'segment di P0 (aktif low) 31 0000 ; 32 0000 ;Fungsi tiap timer: 33 0000 ; Timer 1 khusus untuk delay PWM (interupsi) 34 0000 ; Timer 0 untuk delay tampilan (interupsi) dan delay lainnya 35 0000 ; 36 0000 ;*****************************************************; 40 0000 ;*****************************************************; 41 0000 ;---------------------MEMORY MAP----------------------; 42 0000 ;*****************************************************; 44 0000 ORG 30H 45 0030 PWM1 DS 1 ;Data PWM untuk putar motor 46 0031 PWM2 DS 1 47 0032 ARAH_MTR DS 1 48 0033 PWM1_PULUHAN DS 1 ;Data PWM untuk tampilan 7's 49 0034 PWM1_SATUAN DS 1 50 0035 ARAH_MTR1 DS 1 51 0036 PWM2_PULUHAN DS 1 52 0037 PWM2_SATUAN DS 1 53 0038 ARAH_MTR2 DS 1 54 0039 VAR1 DS 1 ;Data remote (device address) 55 003A VAR2 DS 1 ;Data remote (command code) 56 003B JUM_SEG DS 1 ;Jumlah 7's 57 003C AKTIF DS 1 ;Posisi 7's yang aktif 58 003D NIBBLE DS 1 ;Nibble (4 bit) bawah u/ pengubahan dari HEX ke BCD 59 003E SAVE_R0 DS 1 ;Penyimpanan data angka 7's 60 003F SAVE_PWM1 DS 1 ;Penyimpanan PWM saat motor berubah arah 61 0040 SAVE_PWM2 DS 1 64 0041 ORG 50H 65 0050 SEMENTARA DS 4 ;Penyimpanan sementara konversi HEX ke BCD
L2-1
68 0054 ARAH1 BIT 0 ;Arah putar motor 1 (low:CW, high:CCW) 69 0054 ARAH2 BIT 1 ;Arah putar motor 2 (low:CW, high:CCW) 71 0054 PWM1_BIT BIT P1.0 ;Output sinyal PWM motor 1 72 0054 PWM2_BIT BIT P1.1 ;Output sinyal PWM motor 2 73 0054 ARAH1_A BIT P1.2 ;Kombinasi output untuk menentukan arah putar mtr 1 74 0054 ARAH1_B BIT P1.3 75 0054 ARAH2_A BIT P1.4 ;Kombinasi output unutk menentukan arah putar mtr 2 76 0054 ARAH2_B BIT P1.5 81 0054 ;****************************************************; 82 0054 ;------------------------VEKTOR INTERUPSI--------------------------; 83 0054 ;****************************************************; 86 0054 ORG 0000H ;Reset vektor 87 0000 AJMP MULAI 89 0002 ORG 0003H ;Interupsi eksternal 0 (tombol) 90 0003 AJMP TOMBOL 92 0005 ORG 000BH ;Interupsi timer 0 (tampilan) 93 000B AJMP TAMPIL 95 000D ORG 0013H ;Interupsi eksternal 1 (remote) 96 0013 AJMP REMOTE 98 0015 ORG 001BH ;Interupsi timer 1 (PWM) 99 001B AJMP CEK_PWM 104 001D ;****************************************************; 105 001D ;-------------------PROGRAM UTAMA--------------------; 106 001D ;****************************************************; 108 001D MULAI: 109 001D ACALL INISIALISASI 110 001F ACALL NILAI_AWAL 111 0021 ACALL UBAH_BCD 113 0023 MOV JUM_SEG,#06H ;Ada 6 buah 7's 114 0026 MOV AKTIF,#11011111B ;7's yang aktif pertama kali (aktif:low) 115 0029 MOV SAVE_R0,#33H ;Alamat data tampilan (dalam format BCD) 116 002C MOV DPTR,#TABEL_SEGMENT ;Alamat look-up table 118 002F AWAL: ;Program looping utama 119 002F NOP 120 0030 SJMP AWAL 124 0032 ;****************************************************; 125 0032 ;-------------------INISIALISASI---------------------; 126 0032 ;****************************************************; 129 0032 INISIALISASI: 130 0032 MOV P0,#0FFH ;P0 Output: Selektor 7's (aktif low) 131 0035 MOV P1,#00H ;P1 Output: Driver motor (aktif high) 132 0038 MOV P2,#0FFH ;P2 Output: Data 7's (aktif low) 133 003B MOV P3,#0FFH ;P3 Input: Remote & push-button 135 003E MOV TMOD,#00100001B ;TIMER 1 MODE 2, TIMER 0 MODE 1 136 0041 MOV TH1,#09Ch ;1% PWM = 100 uS (dari FFh - 64h +1). F=100Hz, 137 0044 ;T = 10 mS 138 0044 SETB IT0 ;INT0 aktif saat transisi negatif 139 0046 SETB IT1 ;INT1 aktif saat transisi negatif 141 0048 SETB EA ;Aktifkan global interrupt 142 004A SETB EX1 ;Aktifkan interupsi eksternal 1 143 004C SETB EX0 ;Aktifkan interupsi eksternal 0 144 004E SETB ET1 ;Aktifkan interupsi timer 1 (pwm) 145 0050 SETB ET0 ;Aktifkan interupsi timer 0 (tampilan) 147 0052 SETB TR1 ;Aktifkan TIMER 1 148 0054 SETB TR0 ;Aktifkan TIMER 0 149 0056 RET
L2-2
151 0057 NILAI_AWAL: 152 0057 MOV R7,#01 ;Counter PWM dengan nilai awal 1 153 0059 MOV PWM1,#00 ;PWM1 = 0% 154 005C MOV PWM2,#00 ;PWM2 = 0% 155 005F CLR ARAH1_A ;Motor 1 CW (port) 156 0061 SETB ARAH1_B 157 0063 CLR ARAH2_A ;Motor 2 CW (port) 158 0065 SETB ARAH2_B 159 0067 CLR ARAH1 ;Motor 1 CW (data) 160 0069 CLR ARAH2 ;Motor 2 CW (data) 161 006B RET 165 006C ;*****************************************************; 166 006C ;-------------INTERUPSI TIMER 1: P W M----------------; 167 006C ;*****************************************************; 170 006C CEK_PWM: 171 006C PUSH ACC ;Simpan Acc dan PSW 172 006E PUSH PSW 173 0070 MOV A,#100 ;Nilai max PWM: 100-1=99% 174 0072 DJNZ R7,CHECK ;Counter PWM = 0, Tidak, jump to CHECK 175 0074 CLR PWM1_BIT ;Ya, Matikan port PWM1 176 0076 CLR PWM2_BIT ;Matikan port PWM 2 177 0078 MOV R7,#100 ;Isi counter PWM dgn 100% 178 007A SJMP PWM_RET 180 007C CHECK: 181 007C XCH A,R7 ;Tukar lokasi 182 007D CJNE A,PWM1,CHECK1 ;Counter = PWM1? Tidak, jump to CHECK1 183 0080 SETB PWM1_BIT ;Ya, Nyalakan port PWM1 185 0082 CHECK1: 186 0082 CJNE A,PWM2,PWM_RET ;Counter = PWM2? Tidak, selesai 187 0085 SETB PWM2_BIT ;Ya, Nyalakan port PWM2 189 0087 PWM_RET: 190 0087 XCH A,R7 ;Tukar dan Kembalikan lagi 191 0088 POP PSW ;Keluarkan PSW dan Acc 192 008A POP ACC 193 008C RETI 196 008D ;****************************************************; 197 008D ;---------- INTERUPSI TIMER 0 :TAMPILAN -----------; 198 008D ;****************************************************; 201 008D TAMPIL: 202 008D MOV TH0,#0F6H ;Tunda 2,5 mS 203 0090 MOV TL0,#3CH 204 0093 PUSH ACC ;Simpan Acc, R0, dan PSW 205 0095 PUSH 00H 206 0097 PUSH PSW 209 0099 MOV P2,#00H ;Matikan 7's sesaat 210 009C MOV P0,#00H 211 009F MOV R0,SAVE_R0 ;Keluarkan alamat data yang akan ditampilkan 212 00A1 MOV A,@R0 213 00A2 MOVC A,@A+DPTR ;Konversi ke data 7's dari BCD 214 00A3 MOV P2,A ;Kirimkan ke 7's 215 00A5 INC R0 ;Tunjuk data tampilan selnjutnya 216 00A6 MOV A,AKTIF 217 00A8 MOV P0,A ;Nyalakan 7's yang aktif 218 00AA RR A ;Geser kanan 7's yang aktif 219 00AB MOV AKTIF,A ;Simpan mana 7's yang aktif 220 00AD DJNZ JUM_SEG,NOT_ZERO ;Sudah semua? Belum, loncat ke "NOT_ZERO" 221 00B0 MOV SAVE_R0,#33H ;Ya, tunjuk lagi ke data tampilan awal 222 00B3 MOV AKTIF,#11011111B ;Tunjuk lagi 7's yang aktif pertama kali
L2-3
223 00B6 MOV JUM_SEG,#06H ;Ada 6 7's 224 00B9 SJMP END_TAMPIL ;Interupsi Tampilan selesai 226 00BB NOT_ZERO: 227 00BB MOV SAVE_R0,R0 ;Simpan R0 229 00BD END_TAMPIL: 230 00BD POP PSW ;Keluarkan lagi PSW, R0, Acc 231 00BF POP 00H 232 00C1 POP ACC 233 00C3 RETI ;Kembali 240 00C4 ;******************************************************; 241 00C4 ;--------------INTERUPSI TOMBOL (INT 0)---------------; 242 00C4 ;******************************************************; 245 00C4 TOMBOL: 246 00C4 CLR EX1 ;Matikan interupsi eksternal 1 (remote) 247 00C6 CLR EX0 ;Matikan interupsi eksternal 0 (tombol) 248 00C8 CLR ET0 ;Matikan interupsi timer 0 (tampilan) 249 00CA CLR ET1 ;Matikan interupsi timer 1 (PWM) 250 00CC PUSH 00H ;Simpan R0, Acc, B, PSW 251 00CE PUSH ACC 252 00D0 PUSH B 253 00D2 PUSH PSW 256 00D4 ;====PENDETEKSIAN TOMBOL DENGAN METODE PEMBANDINGAN====: 258 00D4 MOV A,P3 ;Ambil data tombol yang ditekan 259 00D6 CJNE A,#01111011B,TOMBOL2 ;Tombol 1 ditekan? Tidak, jump to TOMBOL2 260 00D9 ACALL TUNDA_DEBOUNCE ;Ya, tunda efek bouncing 261 00DB MOV A,P3 ; 262 00DD CJNE A,#01111011B,END_TOMBOL1 ;Masih ditekan? Tidak, selesai 263 00E0 ACALL TUNGGU_DILEPAS ;Ya, tunggu dilepas 264 00E2 ACALL PWM1_NAIK ;Naikkan PWM1 1% 265 00E4 AJMP END_TOMBOL ;Selesai 267 00E6 TOMBOL2: 268 00E6 MOV A,P3 ;Ambil data tombol yang ditekan 269 00E8 CJNE A,#10111011B,TOMBOL3 ;Tombol 2 ditekan? Tidak, jump to TOMBOL3 270 00EB ACALL TUNDA_DEBOUNCE ;Ya, tunda efek bouncing 271 00ED MOV A,P3 ; 272 00EF CJNE A,#10111011B,END_TOMBOL1 ;Masih ditekan? Tidak, selesai 273 00F2 ACALL TUNGGU_DILEPAS ;Ya, tunggu dilepas 274 00F4 ACALL PWM1_TURUN ;Turunkan PWM1 1% 275 00F6 AJMP END_TOMBOL ;Selesai 277 00F8 TOMBOL3: 278 00F8 MOV A,P3 ;Ambil data tombol yang ditekan 279 00FA CJNE A,#11011011B,TOMBOL4 ;Tombol 3 ditekan? Tidak, jump to TOMBOL4 280 00FD ACALL TUNDA_DEBOUNCE ;Ya, tunda efek bouncing 281 00FF MOV A,P3 ; 282 0101 CJNE A,#11011011B,END_TOMBOL1 ;Masih ditekan? Tidak, selesai 283 0104 ACALL TUNGGU_DILEPAS ;Ya, tunggu dilepas 284 0106 ACALL UBAH_ARAH1 ;Ubah arah motor1 285 0108 AJMP END_TOMBOL ;Selesai 287 010A TOMBOL4: 288 010A MOV A,P3 ;Ambil data tombol yang ditekan 289 010C CJNE A,#11101011B,TOMBOL5 ;Tombol 4 ditekan? Tidak, jump to TOMBOL5 290 010F ACALL TUNDA_DEBOUNCE ;Ya, tunda efek bouncing 291 0111 MOV A,P3 ; 292 0113 CJNE A,#11101011B,END_TOMBOL1 ;Masih ditekan? Tidak, selesai 293 0116 ACALL TUNGGU_DILEPAS ;Ya, tunggu dilepas 294 0118 ACALL PWM2_NAIK ;Naikkan PWM 2 1% 295 011A AJMP END_TOMBOL ;Selesai
L2-4
297 011C TOMBOL5: 298 011C MOV A,P3 ;Ambil data tombol yang ditekan 299 011E CJNE A,#11111001B,TOMBOL6 ;Tombol 5 ditekan? Tidak, jump to TOMBOL6 300 0121 ACALL TUNDA_DEBOUNCE ;Ya, tunda efek bouncing 301 0123 MOV A,P3 ; 302 0125 CJNE A,#11111001B,END_TOMBOL1 ;Masih ditekan? Tidak, selesai 303 0128 ACALL TUNGGU_DILEPAS ;Ya, tunggu dilepas 304 012A ACALL PWM2_TURUN ;Turunkan PWM 2 1% 305 012C AJMP END_TOMBOL ;Selesai 307 012E TOMBOL6: 308 012E MOV A,P3 ;Ambil data tombol yang ditekan 309 0130 CJNE A,#11111010B,END_TOMBOL1 ;Tombol 6 ditekan? Tidak, selesai 310 0133 ACALL TUNDA_DEBOUNCE ;Ya, tunda efek bouncing 311 0135 MOV A,P3 ; 312 0137 CJNE A,#11111010B,END_TOMBOL1 ;Masih ditekan? Tidak, selesai 313 013A ACALL TUNGGU_DILEPAS ;Ya, tunggu dilepas 314 013C ACALL UBAH_ARAH2 ;Ubah arah motor 2 315 013E AJMP END_TOMBOL ;Selesai 317 0140 END_TOMBOL1: 318 0140 SETB ET1 ;Aktifkan interupsi timer 1 (PWM) 319 0142 SETB ET0 ;Aktifkan interupsi timer 0 (tampilan) 321 0144 END_TOMBOL: 322 0144 ACALL UBAH_BCD ;Ubah data PWM dari Hex ke BCD 323 0146 POP PSW ;Keluarkan PSW, B, Acc, R0 324 0148 POP B 325 014A POP ACC 326 014C POP 00H 327 014E CLR IE0 ;Siap diinterupsi lagi 328 0150 CLR PT1 ;Timer 1 prioritas rendah 329 0152 CLR PT0 ;Timer 0 prioritas rendah 330 0154 SETB EX0 ;Aktifkan interupsi eksternal 0 (tombol) 331 0156 SETB EX1 ;Aktifkan interupsi eksternal 1 (remote) 332 0158 RETI 337 0159 ;*****************************************************; 338 0159 ;-----------INTERUPSI REMOTE CONTROL (INT 1)----------; 339 0159 ;*****************************************************; 342 0159 REMOTE: 343 0159 CLR EX0 ;Non-aktifkan interupsi eksternal 0 (tombol) 344 015B CLR EX1 ;Non-aktifkan interupsi eksternal 1 (remote) 345 015D CLR ET0 ;Non-aktifkan interuspsi timer 0 (tampilan) 346 015F SETB ET1 ;Tetap aktifkan interupsi timer 1 (PWM) 347 0161 SETB PT1 ;Timer 1 prioritas tinggi 348 0163 PUSH 00H ;Simpan R0, Acc, B, PSW 349 0165 PUSH ACC 350 0167 PUSH B 351 0169 PUSH PSW 352 016B MOV VAR1,#00001000B ;ADA 12 DATA (Urutkan dari VAR2 lalu VAR1) 353 016E MOV VAR2,#00000000B ;0000 0000 0000 1000 (lihat letak "1" dari kiri) 355 0171 JB P3.3,END_REMOTE ;Sinyal turun? Tidak, selesai 356 0174 ACALL TUNDA_START_BIT_1 ;Ya, cek start bit (tunda 1mS). Masih low? 357 0176 JB P3.3,END_REMOTE ;Ya, teruskan.... Tidak, selesai 358 0179 ACALL TUNDA_START_BIT_1 ;Ya, cek lagi (tunda 1 mS). Masih low? 359 017B JB P3.3,END_REMOTE ;Ya, teruskan...Tidak, selesai 360 017E ACALL TUNDA_START_BIT_2 ;Tunda lagi 0,4 mS 361 0180 BELUM_12_1: 362 0180 JNB P3.3,$ ;Sinyal naik? Tidak, tunggu naik 363 0183 BELUM_12_0: 364 0183 JB P3.3,$ ;Ya, sinyal turun? Tidak, tunggu turun 365 0186 ACALL TUNDA_LEBAR_SINYAL ;Ya, ukur panjang pendek sinyal (tunda 900 uS)
L2-5
366 0188 JNB P3.3,REMOTE_HIGH ;Panjang (Bit dikirim = 1), jump to REMOTE HIGH 368 018B CLR C ;Pendek (Bit dikirim = 0),clear carry 369 018C MOV A,VAR1 370 018E RRC A ;Geser kanan VAR1 dengan carry (Diterima 1 bit data) 371 018F MOV VAR1,A 372 0191 MOV A,VAR2 373 0193 RRC A ;Geser kanan VAR2 dengan carry (Diterima 1 bit data) 374 0194 MOV VAR2,A 375 0196 JNC BELUM_12_0 ;Sudah 12 data? Tidak jump to BELUM_12_0 376 0198 AJMP REMOTE_LANJUT ;Ya, jump to REMOTE_LANJUT 378 019A REMOTE_HIGH: 379 019A SETB C ;Panjang (Bit dikirim = 1),set carry 380 019B MOV A,VAR1 381 019D RRC A ;Geser kanan VAR1 dengan carry (Diterima 1 bit data) 382 019E MOV VAR1,A 383 01A0 MOV A,VAR2 384 01A2 RRC A ;Geser kanan VAR2 dengan carry (Diterima 1 bit data) 385 01A3 MOV VAR2,A 386 01A5 JNC BELUM_12_1 ;Sudah 12 data? Tidak jump to BELUM_12_1 387 01A7 AJMP REMOTE_LANJUT ;Ya, jump to REMOTE_LANJUT 389 01A9 END_REMOTE: 390 01A9 ACALL UBAH_BCD ;Ubah data PWM dari Hex ke BCD 391 01AB ACALL TUNDA_REMOTE ;Tunda seandainya remote masih ditekan (tunda 175 mS) 392 01AD POP PSW ;Keluarkan PSW, B, Acc, R0 393 01AF POP B 394 01B1 POP ACC 395 01B3 POP 00H 396 01B5 CLR IE1 ;Siap diinterupsi lagi 397 01B7 CLR PT1 ;Timer 1 prioritas rendah 398 01B9 CLR PT0 ;Timer 0 prioritas rendah 399 01BB SETB EX1 ;Aktifkan interupsi eksternal 1 (remote) 400 01BD SETB EX0 ;Aktifkan interupsi eksternal 0 (tombol) 401 01BF RETI 404 01C0 REMOTE_LANJUT: 405 01C0 SETB PT1 ;Timer 1 prioritas tinggi 406 01C2 SETB PT0 ;Timer 0 prioritas tinggi 407 01C4 SETB ET1 ;Aktifkan interupsi timer 1 (PWM) 408 01C6 SETB ET0 ;Aktifkan interupsi timer 0 (tampilan) 409 01C8 CLR C 410 01C9 MOV B,#03H ;Ada 3 data akan di-rotate untuk menempatkan: 411 01CC ;Device Address di VAR1 dan Command di VAR2 412 01CC GESER_LAGI: 413 01CC MOV A,VAR1 414 01CE RRC A ;Rotasi kanan dengan carry VAR1 415 01CF MOV VAR1,A 416 01D1 MOV A,VAR2 417 01D3 RRC A ;Rotasi kanan dengan carry VAR2 418 01D4 MOV VAR2,A 419 01D6 DJNZ B,GESER_LAGI ;Sudah 3 kali? Belum, geser lagi 420 01D9 MOV A,VAR2 ;Ya,====Device Address di VAR1==== 421 01DB RRC A ;Rotasi kanan dengan carry VAR2 422 01DC MOV VAR2,A ;========Command di VAR2========== 424 01DE MOV A,VAR1 425 01E0 CJNE A,#01H,END_REMOTE ;Remote TV merk SONY? Tidak, selesai 426 01E3 MOV A,VAR2 427 01E5 CJNE A,#12H,KEY2 ;Tombol "VOL +" ditekan? Tidak jump to KEY2 428 01E8 ACALL PWM1_NAIK ;Naikkan PWM 1 1% 429 01EA AJMP END_REMOTE ;Jump to END_REMOTE
L2-6
431 01EC KEY2: 432 01EC CJNE A,#13H,KEY3 ;Tombol "VOL -" ditekan? Tidak jump to KEY3 433 01EF ACALL PWM1_TURUN ;Turunkan PWM1 1% 434 01F1 AJMP END_REMOTE ;Jump to END_REMOTE 436 01F3 KEY3: 437 01F3 CJNE A,#16H,KEY4 ;Tombol "NORMAL" ditekan? Tidak jump to KEY4 438 01F6 ACALL UBAH_ARAH1 ;Ubah arah motor 1 439 01F8 AJMP END_REMOTE ;Jump to END_REMOTE 441 01FA KEY4: 442 01FA CJNE A,#10H,KEY5 ;Tombol "PROG +" ditekan? Tidak jump to KEY5 443 01FD ACALL PWM2_NAIK ;Naikkan PWM2 1% 444 01FF AJMP END_REMOTE ;Jump to END_REMOTE 446 0201 KEY5: 447 0201 CJNE A,#11H,KEY6 ;Tombol "PROG -" ditekan? Tidak jump to KEY6 448 0204 ACALL PWM2_TURUN ;Turunkan PWM2 1% 449 0206 AJMP END_REMOTE ;Jump to END_REMOTE 451 0208 KEY6: 452 0208 CJNE A,#75H,END_REMOTE ;Tombol "SELECT -" ditekan? Tidak, selesai 453 020B ACALL UBAH_ARAH2 ;Ubah arah motor 2 454 020D AJMP END_REMOTE ;Jump to END_REMOTE 460 020F ;******************************************************; 461 020F ;------------------------SUBRUTIN----------------------; 462 020F ;******************************************************; 466 020F TUNGGU_DILEPAS: 467 020F SETB PT1 ;Timer 1 prioritas tinggi 468 0211 SETB PT0 ;Timer 0 prioritas tinggi 469 0213 SETB ET1 ;Aktifkan interupsi timer 1 (PWM) 470 0215 SETB ET0 ;Aktifkan interupsi timer 0 (tampilan) 471 0217 TUNGGU_DILEPAS_1: 472 0217 MOV A,P3 473 0219 CJNE A,#0FFH,TUNGGU_DILEPAS_1 ;Semua tombol sudah dilepas? 474 021C ;Tidak, jump to TUNGGU_DILEPAS_1 475 021C RET ;Sudah, kembali 478 021D PWM1_NAIK: 479 021D MOV A,PWM1 480 021F CJNE A,#99,PWM1_NAIK_CEK ;PWM1=99d? Tidak, jump to PWM1_NAIK_CEK 481 0222 RET ;Ya, RET...(Tidak diproses) 482 0223 PWM1_NAIK_CEK: 483 0223 JNC END_PWM ;PWM1>99d? Ya, jump to END_PWM (Tidak diproses) 484 0225 INC PWM1 ;Tidak, naikkan PWM1 1% 485 0227 END_PWM: 486 0227 RET ;Selesai dan kembali 489 0228 PWM1_TURUN: 490 0228 MOV A,PWM1 491 022A CJNE A,#00H,PWM1_TRN_CEK ;PWM1=0? Tidak, jump to PWM1_TRN_CEK 492 022D RET ;Ya,RET...(Tidak diproses) 493 022E PWM1_TRN_CEK: 494 022E JC END_PWM ;PWM1<0? YA,jump to END_PWM (Tidak diproses) 495 0230 DEC PWM1 ;Tidak, turunkan PWM1 1% 496 0232 RET ;Selesai dan kembali 499 0233 PWM2_NAIK: 500 0233 MOV A,PWM2 501 0235 CJNE A,#99,PWM2_NAIK_CEK ;PWM2=99d? Tidak, jump to PWM2_NAIK_CEK 502 0238 RET ;YA, RET...(Tidak diproses) 503 0239 PWM2_NAIK_CEK: 504 0239 JNC END_PWM ;PWM2>99d? YA, jump to END_PWM (Tidak diproses) 505 023B INC PWM2 ;Ya, naikkan PWM2 1% 506 023D RET ;Selesai dan kembali 509 023E PWM2_TURUN:
L2-7
510 023E MOV A,PWM2 511 0240 CJNE A,#00H,PWM2_TRN_CEK ;PWM2=0? Tidak, jump to PWM2_TRN_CEK 512 0243 RET ;YA,RET...(Tidak diproses) 513 0244 PWM2_TRN_CEK: 514 0244 JC END_PWM ;PWM2<0? YA, jump to END_PWM 515 0246 DEC PWM2 ;Tidak turunkan PWM2 1% 516 0248 RET ;Selesai dan kembali 519 0249 UBAH_ARAH1: 520 0249 ;Turunkan kemudian naikkan kecepatan motor perlahan saat berubah arah 521 0249 CLR ET1 ;Matikan interupsi timer 1 522 024B PUSH ACC ;Simpan Acc, PSW, B k 523 024D PUSH PSW 524 024F PUSH B 525 0251 PUSH 07H 526 0253 MOV SAVE_PWM1,PWM1 ;Simpan PWM1 527 0256 MOV A,PWM1 528 0258 CJNE A,#00H,DEC_PWM1 ;PWM1 = 0? Tidak, jump to DEC_PWM1 529 025B SJMP END_DEC_PWM1 ;Ya, jump to END_DEC_PWM1 530 025D DEC_PWM1: ;Kurangi PWM1 bertahap 531 025D MOV B,#250 ;Ya,set perulangan tiap kecepatan adalah 250 532 0260 DEC1: 533 0260 ACALL CEK_PWM_LOOP ;Putar motor 534 0262 DJNZ B,DEC1 ;Mula-mula dari kec. %PWM sampai akhirnya ke nol 535 0265 DJNZ PWM1,DEC_PWM1 ;Kurangi dan cek PWM1=0? Tidak, jump to DEC_PWM1 537 0268 END_DEC_PWM1: ;Prosedur Brake & ubah arah (PWM1 sudah = 0) 538 0268 CPL ARAH1 ;Komplemenkan ARAH1 539 026A JB ARAH1,ARAH1_CCW ;ARAH1 = 1? Ya, jump to ARAH1_CCW 540 026D ACALL REM_1 ;Rem (Brake) Motor 1 541 026F CLR ARAH1_A ;Putar motor 1 Clock Wise (CW), 542 0271 SETB ARAH1_B ;dengan logika 0-1 543 0273 SJMP CEK_INC_PWM1 544 0275 ARAH1_CCW: 545 0275 ACALL REM_1 ;Rem (Brake) Motor 1 546 0277 SETB ARAH1_A ;Putar motor 1 Counter Clock Wise (CCW), 547 0279 CLR ARAH1_B ;dengan logika 1-0 548 027B CEK_INC_PWM1: ;Prosedur menaikkan kecepatan motor perlahan 549 027B MOV A,PWM1 ; 550 027D CJNE A,SAVE_PWM1,INC_PWM1;PWM1 sudah sama dengan PWM1 sesungguhnya? 551 0280 SJMP END_UBAH_ARAH1 ;Ya, selesai. Tidak, jump to INC_PWM1 552 0282 INC_PWM1: 553 0282 MOV B,#250 ;Set perulangan tiap kecepatan adalah 250 554 0285 INC1: 555 0285 ACALL CEK_PWM_LOOP ;Putar motor 556 0287 DJNZ B,INC1 ;Ulangi putar lagi 557 028A INC PWM1 ;Mula-mula dari kec. 0% sampai ke PWM sesungguhnya 558 028C SJMP CEK_INC_PWM1 559 028E END_UBAH_ARAH1: 560 028E MOV PWM1,SAVE_PWM1 ;Keluarkan lagi PWM1 561 0291 POP 07H 562 0293 POP B ;Keluarkan B,PSW, Acc 563 0295 POP PSW 564 0297 POP ACC 565 0299 SETB ET1 ;Nyalakan interupsi timer1 566 029B RET ;Selesai dan kembali 568 029C REM_1: ;Mekanisme Rem (Brake), 569 029C SETB ARAH1_A ;dengan logika 1-1 570 029E SETB ARAH1_B 571 02A0 ACALL TUNDA_REM ;Rem sebentar (tunda 1 mS) 572 02A2 RET ;Selesai dan kembali
L2-8
576 02A3 UBAH_ARAH2: 577 02A3 ;Turunkan kec. motor perlahan saat berubah arah 578 02A3 CLR ET1 ;Matikan interupsi timer 1 579 02A5 PUSH ACC ;Simpan Acc, PSW, B k 580 02A7 PUSH PSW 581 02A9 PUSH B 582 02AB PUSH 07H 583 02AD MOV SAVE_PWM2,PWM2 ;Simpan PWM2 584 02B0 MOV A,PWM2 585 02B2 CJNE A,#00H,DEC_PWM2 ;PWM2 = 0? Tidak, jump to DEC_PWM2 586 02B5 SJMP END_DEC_PWM2 ;Ya, jump to END_DEC_PWM2 587 02B7 DEC_PWM2: ;Kurangi PWM2 bertahap 588 02B7 MOV B,#250 ;Ya,set perulangan tiap kecepatan adalah 250 589 02BA DEC2: 590 02BA ACALL CEK_PWM_LOOP ;Putar motor 591 02BC DJNZ B,DEC2 ;Mula-mula dari kec. %PWM sampai akhirnya ke nol 592 02BF DJNZ PWM2,DEC_PWM2 ;Kurangi dan cek PWM2=0? Tidak, jump to DEC_PWM2 594 02C2 END_DEC_PWM2: ;Prosedur Brake & ubah arah (PWM2 sudah = 0) 595 02C2 CPL ARAH2 ;Komplemenkan ARAH2 596 02C4 JB ARAH2,ARAH2_CCW ;ARAH1 = 2? Ya, jump to ARAH2_CCW 597 02C7 ACALL REM_2 ;Rem (Brake) Motor 2 598 02C9 CLR ARAH2_A ;Putar motor 2 Clock Wise (CW), 599 02CB SETB ARAH2_B ;dengan logika 0-1 600 02CD SJMP CEK_INC_PWM2 601 02CF ARAH2_CCW: 602 02CF ACALL REM_2 ;Rem (Brake) Motor 2 603 02D1 SETB ARAH2_A ;Putar motor 2 Counter Clock Wise (CCW), 604 02D3 CLR ARAH2_B ;dengan logika 1-0 606 02D5 CEK_INC_PWM2: ;Prosedur menaikkan kecepatan motor perlahan 607 02D5 MOV A,PWM2 ; 608 02D7 CJNE A,SAVE_PWM2,INC_PWM2;PWM2 sudah sama dengan PWM2 sesungguhnya? 609 02DA SJMP END_UBAH_ARAH2 ;Ya, selesai. Tidak, jump to INC_PWM2 610 02DC INC_PWM2: 611 02DC MOV B,#250 ;Set perulangan tiap kecepatan adalah 250 612 02DF INC2: 613 02DF ACALL CEK_PWM_LOOP ;Putar motor 614 02E1 DJNZ B,INC2 ;Ulangi putar lagi 615 02E4 INC PWM2 ;Mula-mula dari kec. 0% sampai ke PWM sesungguhnya 616 02E6 SJMP CEK_INC_PWM2 617 02E8 END_UBAH_ARAH2: 618 02E8 MOV PWM2,SAVE_PWM2 ;Keluarkan lagi PWM2 619 02EB POP 07H 620 02ED POP B ;Keluarkan B,PSW, Acc 621 02EF POP PSW 622 02F1 POP ACC 623 02F3 SETB ET1 ;Nyalakan interupsi timer1 624 02F5 RET ;Selesai dan kembali 626 02F6 REM_2: 627 02F6 SETB ARAH2_A ;Mekanisme Rem (Brake), 628 02F8 SETB ARAH2_B ;dengan logika 1-1 629 02FA ACALL TUNDA_REM ;Rem sebentar (tunda 1 mS) 630 02FC RET ;Selesai dan kembali 633 02FD TUNDA_REM: ;Tunda 1 mS 634 02FD CLR ET0 ;Matikan interupsi timer0 635 02FF ACALL TUNDA_START_BIT_1 636 0301 SETB ET0 ;Nyalakan lagi interupsi timer0 637 0303 RET
L2-9
640 0304 CEK_PWM_LOOP: 641 0304 PUSH ACC ;Simpan Acc dan PSW 642 0306 PUSH PSW 643 0308 MOV A,#100 ;Nilai max PWM: 100-1=99% 644 030A DJNZ R7,CHECK_LOOP ;Counter PWM = 0, Tidak, jump to CHECK 645 030C CLR PWM1_BIT ;Ya, Matikan port PWM1 646 030E CLR PWM2_BIT ;Matikan port PWM 2 647 0310 MOV R7,#100 ;Isi counter PWM dgn 100% 648 0312 SJMP PWM_RET_LOOP 650 0314 CHECK_LOOP: 651 0314 XCH A,R7 ;Tukar lokasi 652 0315 CJNE A,PWM1,CHECK1_LOOP ;Counter = PWM1? Tidak, jump to CHECK1 653 0318 SETB PWM1_BIT ;Ya, Nyalakan port PWM1 655 031A CHECK1_LOOP: 656 031A CJNE A,PWM2,PWM_RET_LOOP;Counter = PWM2? Tidak, selesai 657 031D SETB PWM2_BIT ;Ya, Nyalakan port PWM2 659 031F PWM_RET_LOOP: 660 031F XCH A,R7 ;Tukar dan Kembalikan lagi 661 0320 POP PSW ;Keluarkan PSW dan Acc 662 0322 POP ACC 663 0324 RET 668 0325 TUNDA_START_BIT_1: ;TUNDA 1 mS 669 0325 CLR TR0 670 0327 CLR TF0 671 0329 PUSH TH0 672 032B PUSH TL0 673 032D MOV TH0,#0FCH 674 0330 MOV TL0,#18H 675 0333 SETB TR0 676 0335 JNB TF0,$ 677 0338 CLR TF0 678 033A POP TL0 679 033C POP TH0 680 033E RET 683 033F TUNDA_START_BIT_2: ;TUNDA 400 uS 684 033F CLR TR0 685 0341 CLR TF0 686 0343 PUSH TH0 687 0345 PUSH TL0 688 0347 MOV TH0,#0FEH 689 034A MOV TL0,#70H 690 034D SETB TR0 691 034F JNB TF0,$ 692 0352 CLR TF0 693 0354 POP TL0 694 0356 POP TH0 695 0358 RET 697 0359 TUNDA_LEBAR_SINYAL: ;TUNDA 900 uS 698 0359 CLR TR0 699 035B CLR TF0 700 035D PUSH TH0 701 035F PUSH TL0 702 0361 MOV TH0,#0FCH 703 0364 MOV TL0,#7CH 704 0367 SETB TR0 705 0369 JNB TF0,$ 706 036C CLR TF0
L2-10
707 036E POP TL0 708 0370 POP TH0 709 0372 RET 713 0373 TUNDA_DEBOUNCE: ;TUNDA 20 mS 714 0373 CLR TR0 715 0375 CLR F0 716 0377 PUSH TH0 717 0379 PUSH TL0 718 037B MOV TH0,#0B1H 719 037E MOV TL0,#0E0H 720 0381 SETB TR0 721 0383 JNB TF0,$ 722 0386 CLR TF0 723 0388 POP TL0 724 038A POP TH0 725 038C RET 728 038D TUNDA_REMOTE: ;Tunda 170 mS 729 038D MOV R2,#0FFh 730 038F ULANG1: 731 038F MOV R3,#0FFh 732 0391 DJNZ R3,$ 733 0393 DJNZ R2,ULANG1 734 0395 RET 738 0396 ;*****************************************************; 739 0396 ;----------KONVERSI TAMPILAN DARI HEX KE BCD----------; 740 0396 ;*****************************************************; 743 0396 UBAH_BCD: 744 0396 MOV B,#2H ;Ada 2 PWM 745 0399 MOV R0,#30H ;Tunjuk alamat data sumber (Hex) 746 039B MOV R1,#50H ;Tunjuk alamat penampungan sementara (BCD) 748 039D BCD_LAGI: 749 039D MOV R6,#00H ;Data puluhan 750 039F MOV R5,#00H ;Data satuan 751 03A1 MOV A,@R0 ;Ambil data PWM sumber (Hex) 752 03A2 PUSH B ;Simpan B 753 03A4 MOV B,#10 ;Angka pembagi: 10 754 03A7 DIV AB ;PWM dibagi 10 755 03A8 MOV R6,A ;Hasil bagi (puluhan) simpan ke R6 756 03A9 MOV R5,B ;Sisa bagi (satuan) simpan ke R5 758 03AB MOV A,R5 ;Copy R5 ke penampungan sementara 759 03AC MOV @R1,A 760 03AD INC R1 ;Tunjuk alamat penampungan sementara (BCD) berikutnya 761 03AE MOV A,R6 ;Copy R6 ke penampungan sementara 762 03AF MOV @R1,A 764 03B0 POP B ;Keluarkan B 765 03B2 INC R0 ;Tunjuk alamat data sumber (Hex) berikutnya 766 03B3 INC R1 ;Tunjuk alamat penampungan sementara (BCD) berikutnya 767 03B4 DJNZ B,BCD_LAGI ;Sudah 2 PWM? Belum, konversi lagi 769 03B7 MOV PWM2_PULUHAN,53H ;Ya, pindahkan ke alamat data sebenarnya 770 03BA MOV PWM2_SATUAN,52H 771 03BD MOV PWM1_PULUHAN,51H 772 03C0 MOV PWM1_SATUAN,50H 774 03C3 ;********************CEK ARAH MOTOR*******************; 776 03C3 JB ARAH1,M1_CCW ;ARAH1 = 1? Ya, jump to M1_CCW 777 03C6 MOV ARAH_MTR1,#10 ;Tidak, isi ARAH_MTR1 dgn 10d (tampilan C) 778 03C9 SJMP CEK_ARAH2 ;Jump to CEK_ARAH2 779 03CB M1_CCW: 780 03CB MOV ARAH_MTR1,#11 ;Isi ARAH_MTR1 dengan 11d (tampilan mirror-C)
L2-11
782 03CE CEK_ARAH2: 783 03CE JB ARAH2,M2_CCW ;ARAH2 = 1? Ya, jump to M2_CCW 784 03D1 MOV ARAH_MTR2,#10 ;Tidak, isi ARAH_MTR2 dgn 10d (tampilan C) 785 03D4 SJMP UBAH_BCD_SELESAI ;Jump to UBAH_BCD_SELESAI 786 03D6 M2_CCW: 787 03D6 MOV ARAH_MTR2,#11 ;Isi ARAH_MTR2 dengan 11d (tampilan mirror-C) 789 03D9 UBAH_BCD_SELESAI: ;Selesai dan kembali 790 03D9 RET 794 03DA ;*****************************************************; 795 03DA ;---------------LOOK UP TABLE TAMPILAN----------------; 796 03DA ;*****************************************************; 798 03DA ; URUTAN KAKI DARI 1 - 10 799 03DA ; 800 03DA ;1:E, 2:D, 3:COMMON, 4:C, 5:DP, 6:B, 7:A, 8;COMMON,9:F, 10:G; 801 03DA ;PORT 2.7:DP, 2.6:G, 2.5:F, 2.4:E, 2.3:D, 2.2:C, 2.1:B, P2.0:A. 802 03DA ; 0 = AKTIF, 1 = MATI; 803 03DA ;*****************************************************; 805 03DA TABEL_SEGMENT: 806 03DA DB 11000000B, 11111001B, 00100100B, 10110000B, 10011001B ;0,1,2,3,4 807 03DF DB 10010010B, 10000010B, 11111000B, 10000000B, 10010000B ;5,6,7,8,9 808 03E4 DB 11000110B, 11110000B ;C, mirror-C
L2-12
Kode remote control SONY RM-687C
Tombol Address code (Hex) Command code (Hex) Fungsi pada alat
Key 1 01h 00h -
Key 2 01h 01h -
Key 3 01h 02h -
Key 4 01h 03h -
Key 5 01h 04h -
Key 6 01h 05h -
Key 7 01h 06h -
Key 8 01h 07h -
Key 9 01h 08h -
Key 10 01h 09h -
Key 0 01h 0Ah -
PROG + 01h 10h Naikkan 1% PWM 2
PROG - 01h 11h Naikkan 1% PWM 2
Vol + 01h 12h Naikkan 1% PWM1
Vol - 01h 13h Turunkan 1% PWM1
Mute 01h 14h -
Standby 01h 15h -
Display 01h 3Ah -
Sleep 01h 36h -
Select 01h 7Ch -
Normal 01h 16h Ubah arah motor 1
Select + 01h 74h -
Select - 01h 75h Ubah arah motor 2
TV/video 01h 25h -
1- 01h 0Ch -
2- 01h 0Dh -
L3
8-bit Microcontroller with 4K Bytes In-System Programmable Flash
AT89S51
Rev. 2487A–10/01
Features• Compatible with MCS-51® Products• 4K Bytes of In-System Programmable (ISP) Flash Memory
– Endurance: 1000 Write/Erase Cycles• 4.0V to 5.5V Operating Range• 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)
DescriptionThe AT89S51 is a low-power, high-performance CMOS 8-bit microcontroller with 4Kbytes of in-system programmable Flash memory. The device is manufactured usingAtmel’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 programmemory 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 amonolithic chip, the Atmel AT89S51 is a powerful microcontroller which provides ahighly-flexible and cost-effective solution to many embedded control applications.
The AT89S51 provides the following standard features: 4K bytes of Flash, 128 bytes ofRAM, 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, andclock circuitry. In addition, the AT89S51 is designed with static logic for operationdown 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, andinterrupt 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 externalinterrupt or hardware reset.
1
Pin ConfigurationsPDIP
TQFP
1234567891011121314151617181920
4039383736353433323130292827262524232221
P1.0 P1.1P1.2P1.3P1.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
XTAL2XTAL1
GND
VCCP0.0 (AD0)P0.1 (AD1)P0.2 (AD2)P0.3 (AD3)P0.4 (AD4)P0.5 (AD5)P0.6 (AD6)P0.7 (AD7)EA/VPPALE/PROGPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)P2.4 (A12)P2.3 (A11)P2.2 (A10)P2.1 (A9)P2.0 (A8)
1234567891011
3332313029282726252423
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/VPPNCALE/PROGPSENP2.7 (A15)P2.6 (A14)P2.5 (A13)
P1.
4P
1.3
P1.
2P
1.1
P1.
0 N
CV
CC
P0.
0 (A
D0)
P0.
1 (A
D1)
P0.
2 (A
D2)
P0.
3 (A
D3)
(WR
) P
3.6
(RD
) P
3.7
XT
AL2
XT
AL1
GN
DG
ND
(A8)
P2.
0(A
9) P
2.1
(A10
) P
2.2
(A11
) P
2.3
(A12
) P
2.4
2 AT89S51
PLCC
7891011121314151617
3938373635343332313029
(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/VPPNCALE/PROGPSENP2.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
) P
3.6
(RD
) P
3.7
XT
AL2
XT
AL1
GN
DN
C(A
8) P
2.0
(A9)
P2.
1(A
10)
P2.
2(A
11)
P2.
3(A
12)
P2.
4
P1.
4 P
1.3
P1.
2P
1.1
P1.
0 N
CV
CC
P0.
0 (A
D0)
P0.
1 (A
D1)
P0.
2 (A
D2)
P0.
3 (A
D3)
2487A–10/01
AT89S51
Block Diagram
PORT 2 DRIVERS
PORT 2LATCH
P2.0 - P2.7
FLASHPORT 0LATCHRAM
PROGRAMADDRESSREGISTER
BUFFER
PCINCREMENTER
PROGRAMCOUNTER
DUAL DPTRINSTRUCTIONREGISTER
BREGISTER
INTERRUPT, SERIAL PORT,AND TIMER BLOCKS
STACKPOINTERACC
TMP2 TMP1
ALU
PSW
TIMINGAND
CONTROL
PORT 1 DRIVERS
P1.0 - P1.7
PORT 3LATCH
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 1LATCH
WATCHDOG
ISPPORT
PROGRAM
LOGIC
32487A–10/01
Pin Description
VCC Supply voltage.
GND Ground.
Port 0 Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eightTTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedanceinputs.
Port 0 can also be configured to be the multiplexed low-order address/data bus duringaccesses 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 bytesduring 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 cansink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by theinternal pull-ups and can be used as inputs. As inputs, Port 1 pins that are externally beingpulled 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 cansink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by theinternal pull-ups and can be used as inputs. As inputs, Port 2 pins that are externally beingpulled 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 andduring accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In thisapplication, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to externaldata 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 cansink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by theinternal pull-ups and can be used as inputs. As inputs, Port 3 pins that are externally beingpulled 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 thefollowing 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)
4 AT89S512487A–10/01
AT89S51
RST Reset input. A high on this pin for two machine cycles while the oscillator is running resets thedevice. 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 stateof 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 duringaccesses to external memory. This pin is also the program pulse input (PROG) during Flashprogramming.
In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and maybe used for external timing or clocking purposes. Note, however, that one ALE pulse isskipped 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 pulledhigh. Setting the ALE-disable bit has no effect if the microcontroller is in external executionmode.
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 activatedtwice each machine cycle, except that two PSEN activations are skipped during each accessto external data memory.
EA/VPP External Access Enable. EA must be strapped to GND in order to enable the device to fetchcode 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 Flashprogramming.
XTAL1 Input to the inverting oscillator amplifier and input to the internal clock operating circuit.
XTAL2 Output from the inverting oscillator amplifier
Port Pin Alternate Functions
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)
52487A–10/01
Special Function Registers
A map of the on-chip memory area called the Special Function Register (SFR) space is shownin Table 1.
Note that not all of the addresses are occupied, and unoccupied addresses may not be imple-mented on the chip. Read accesses to these addresses will in general return random data,and write accesses will have an indeterminate effect.
Table 1. AT89S51 SFR Map and Reset Values
0F8H 0FFH
0F0HB
000000000F7H
0E8H 0EFH
0E0HACC
000000000E7H
0D8H 0DFH
0D0HPSW
000000000D7H
0C8H 0CFH
0C0H 0C7H
0B8HIP
XX0000000BFH
0B0HP3
111111110B7H
0A8HIE
0X0000000AFH
0A0HP2
11111111AUXR1
XXXXXXX0WDTRST
XXXXXXXX0A7H
98HSCON
00000000SBUF
XXXXXXXX9FH
90HP1
1111111197H
88HTCON
00000000TMOD
00000000TL0
00000000TL1
00000000TH0
00000000TH1
00000000AUXR
XXX00XX08FH
80HP0
11111111SP
00000111DP0L
00000000DP0H
00000000DP1L
00000000DP1H
00000000PCON
0XXX000087H
6 AT89S512487A–10/01
AT89S51
User software should not write 1s to these unlisted locations, since they may be used in futureproducts to invoke new features. In that case, the reset or inactive values of the new bits willalways be 0.
Interrupt Registers: The individual interrupt enable bits are in the IE register. Two prioritiescan 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 therespective 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
DISALEOperating 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
72487A–10/01
Power Off Flag: The Power Off Flag (POF) is located at bit 4 (PCON.4) in the PCON SFR.POF is set to “1” during power up. It can be set and rest under software control and is notaffected by reset.
Memory Organization
MCS-51 devices have a separate address space for Program and Data Memory. Up to 64Kbytes each of external Program and Data Memory can be addressed.
Program Memory If the EA pin is connected to GND, all program fetches are directed to external memory.
On the AT89S51, if EA is connected to VCC, program fetches to addresses 0000H throughFFFH are directed to internal memory and fetches to addresses 1000H through FFFFH aredirected to external memory.
Data Memory The AT89S51 implements 128 bytes of on-chip RAM. The 128 bytes are accessible via directand indirect addressing modes. Stack operations are examples of indirect addressing, so the128 bytes of data RAM are available as stack space.
Watchdog Timer (One-time Enabled with Reset-out)
The WDT is intended as a recovery method in situations where the CPU may be subjected tosoftware upsets. The WDT consists of a 14-bit counter and the Watchdog Timer Reset(WDTRST) SFR. The WDT is defaulted to disable from exiting reset. To enable the WDT, auser must write 01EH and 0E1H in sequence to the WDTRST register (SFR location 0A6H).When the WDT is enabled, it will increment every machine cycle while the oscillator is running.The WDT timeout period is dependent on the external clock frequency. There is no way to dis-able the WDT except through reset (either hardware reset or WDT overflow reset). WhenWDT overflows, it will drive an output RESET HIGH pulse at the RST pin.
Using the WDT To enable the WDT, a user must write 01EH and 0E1H in sequence to the WDTRST register(SFR location 0A6H). When the WDT is enabled, the user needs to service it by writing 01EHand 0E1H to WDTRST to avoid a WDT overflow. The 14-bit counter overflows when it reaches16383 (3FFFH), and this will reset the device. When the WDT is enabled, it will incrementevery machine cycle while the oscillator is running. This means the user must reset the WDTat least every 16383 machine cycles. To reset the WDT the user must write 01EH and 0E1Hto WDTRST. WDTRST is a write-only register. The WDT counter cannot be read or written.When WDT overflows, it will generate an output RESET pulse at the RST pin. The RESETpulse duration is 98xTOSC, where TOSC=1/FOSC. To make the best use of the WDT, it
Table 3. AUXR1: Auxiliary Register 1
AUXR1Address = A2H
Reset Value = XXXXXXX0B
Not Bit Addressable
– – – – – – – DPS
Bit 7 6 5 4 3 2 1 0
– Reserved for future expansion
DPS Data Pointer Register Select
DPS
0 Selects DPTR Registers DP0L, DP0H
1 Selects DPTR Registers DP1L, DP1H
8 AT89S512487A–10/01
AT89S51
should be serviced in those sections of code that will periodically be executed within the timerequired to prevent a WDT reset.
WDT During Power-down and Idle
In Power-down mode the oscillator stops, which means the WDT also stops. While in Power-down mode, the user does not need to service the WDT. There are two methods of exitingPower-down mode: by a hardware reset or via a level-activated external interrupt, which isenabled prior to entering Power-down mode. When Power-down is exited with hardware reset,servicing the WDT should occur as it normally does whenever the AT89S51 is reset. ExitingPower-down with an interrupt is significantly different. The interrupt is held low long enough forthe oscillator to stabilize. When the interrupt is brought high, the interrupt is serviced. To pre-vent the WDT from resetting the device while the interrupt pin is held low, the WDT is notstarted until the interrupt is pulled high. It is suggested that the WDT be reset during the inter-rupt service for the interrupt used to exit Power-down mode.
To ensure that the WDT does not overflow within a few states of exiting Power-down, it is bestto reset the WDT just before entering Power-down mode.
Before going into the IDLE mode, the WDIDLE bit in SFR AUXR is used to determine whetherthe WDT continues to count if enabled. The WDT keeps counting during IDLE (WDIDLE bit =0) as the default state. To prevent the WDT from resetting the AT89S51 while in IDLE mode,the user should always set up a timer that will periodically exit IDLE, service the WDT, andreenter IDLE mode.
With WDIDLE bit enabled, the WDT will stop to count in IDLE mode and resumes the countupon exit from IDLE.
UART The UART in the AT89S51 operates the same way as the UART in the AT89C51. For furtherinformation on the UART operation, refer to the ATMEL Web site (http://www.atmel.com).From the home page, select ‘Products’, then ‘8051-Architecture Flash Microcontroller’, then‘Product Overview’.
Timer 0 and 1 Timer 0 and Timer 1 in the AT89S51 operate the same way as Timer 0 and Timer 1 in theAT89C51. For further information on the timers’ operation, refer to the ATMEL Web site(http://www.atmel.com). From the home page, select ‘Products’, then ‘8051-Architecture FlashMicrocontroller’, then ‘Product Overview’.
Interrupts The AT89S51 has a total of five interrupt vectors: two external interrupts (INT0 and INT1), twotimer interrupts (Timers 0 and 1), and the serial port interrupt. These interrupts are all shown inFigure 1.
Each of these interrupt sources can be individually enabled or disabled by setting or clearing abit in Special Function Register IE. IE also contains a global disable bit, EA, which disables allinterrupts at once.
Note that Table 4 shows that bit position IE.6 is unimplemented. In the AT89S51, bit positionIE.5 is also unimplemented. User software should not write 1s to these bit positions, since theymay be used in future AT89 products.
The Timer 0 and Timer 1 flags, TF0 and TF1, are set at S5P2 of the cycle in which the timersoverflow. The values are then polled by the circuitry in the next cycle
92487A–10/01
.
Figure 1. Interrupt Sources
Table 4. Interrupt Enable (IE) Register
(MSB) (LSB)
EA – – ES ET1 EX1 ET0 EX0
Enable Bit = 1 enables the interrupt.
Enable Bit = 0 disables the interrupt.
Symbol Position Function
EA IE.7 Disables all interrupts. If EA = 0, no interrupt is acknowledged. If EA = 1, each interrupt source is individually enabled or disabled by setting or clearing its enable bit.
– IE.6 Reserved
– IE.5 Reserved
ES IE.4 Serial Port interrupt enable bit
ET1 IE.3 Timer 1 interrupt enable bit
EX1 IE.2 External interrupt 1 enable bit
ET0 IE.1 Timer 0 interrupt enable bit
EX0 IE.0 External interrupt 0 enable bit
User software should never write 1s to reserved bits, because they may be used in future AT89 products.
IE1
IE0
1
1
0
0
TF1
TF0
INT1
INT0
TIRI
10 AT89S512487A–10/01
AT89S51
11
Oscillator Characteristics
XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier that can beconfigured for use as an on-chip oscillator, as shown in Figure 2. Either a quartz crystal orceramic resonator may be used. To drive the device from an external clock source, XTAL2should be left unconnected while XTAL1 is driven, as shown in Figure 3. There are no require-ments on the duty cycle of the external clock signal, since the input to the internal clockingcircuitry is through a divide-by-two flip-flop, but minimum and maximum voltage high and lowtime specifications must be observed.
Figure 2. Oscillator Connections
Note: C1, C2 = 30 pF ± 10 pF for Crystals = 40 pF ± 10 pF for Ceramic Resonators
Figure 3. External Clock Drive Configuration
Idle Mode In idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. Themode is invoked by software. The content of the on-chip RAM and all the special functionregisters remain unchanged during this mode. The idle mode can be terminated by anyenabled interrupt or by a hardware reset.
Note that when idle mode is terminated by a hardware reset, the device normally resumes pro-gram execution from where it left off, up to two machine cycles before the internal resetalgorithm takes control. On-chip hardware inhibits access to internal RAM in this event, butaccess to the port pins is not inhibited. To eliminate the possibility of an unexpected write to aport pin when idle mode is terminated by a reset, the instruction following the one that invokesidle mode should not write to a port pin or to external memory.
Power-down Mode
In the Power-down mode, the oscillator is stopped, and the instruction that invokes Power-down is the last instruction executed. The on-chip RAM and Special Function Registers retaintheir values until the Power-down mode is terminated. Exit from Power-down mode can be ini-tiated either by a hardware reset or by activation of an enabled external interrupt into INT0 orINT1. Reset redefines the SFRs but does not change the on-chip RAM. The reset should notbe activated before VCC is restored to its normal operating level and must be held active longenough to allow the oscillator to restart and stabilize.
C2XTAL2
GND
XTAL1C1
XTAL2
XTAL1
GND
NC
EXTERNALOSCILLATOR
SIGNAL
2487A–10/01
Program Memory Lock Bits
The AT89S51 has three lock bits that can be left unprogrammed (U) or can be programmed(P) to obtain the additional features listed in the following table.
When lock bit 1 is programmed, the logic level at the EA pin is sampled and latched duringreset. If the device is powered up without a reset, the latch initializes to a random value andholds that value until reset is activated. The latched value of EA must agree with the currentlogic level at that pin in order for the device to function properly.
Programming the Flash – Parallel Mode
The AT89S51 is shipped with the on-chip Flash memory array ready to be programmed. Theprogramming interface needs a high-voltage (12-volt) program enable signal and is compati-ble with conventional third-party Flash or EPROM programmers.
The AT89S51 code memory array is programmed byte-by-byte.
Programming Algorithm: Before programming the AT89S51, the address, data, and controlsignals should be set up according to the Flash programming mode table and Figures 13 and14. To program the AT89S51, take the following steps:
1. Input the desired memory location on the address lines.
2. Input the appropriate data byte on the data lines.
3. Activate the correct combination of control signals.
4. Raise EA/VPP to 12V.
5. Pulse ALE/PROG once to program a byte in the Flash array or the lock bits. The byte-write cycle is self-timed and typically takes no more than 50 µs. Repeat steps 1 through 5, changing the address and data for the entire array or until the end of the object file is reached.
Data Polling: The AT89S51 features Data Polling to indicate the end of a byte write cycle.During a write cycle, an attempted read of the last byte written will result in the complement ofthe written data on P0.7. Once the write cycle has been completed, true data is valid on all out-puts, and the next cycle may begin. Data Polling may begin any time after a write cycle hasbeen initiated.
Table 5. Status of External Pins During Idle and Power-down Modes
Mode Program Memory ALE PSEN PORT0 PORT1 PORT2 PORT3
Idle Internal 1 1 Data Data Data Data
Idle External 1 1 Float Data Address Data
Power-down Internal 0 0 Data Data Data Data
Power-down External 0 0 Float Data Data Data
Table 6. Lock Bit Protection Modes
Program Lock Bits
LB1 LB2 LB3 Protection Type
1 U U U No program lock features
2 P U U MOVC instructions executed from external program memory are disabled from fetching code bytes from internal memory, EA is sampled and latched on reset, and further programming of the Flash memory is disabled
3 P P U Same as mode 2, but verify is also disabled
4 P P P Same as mode 3, but external execution is also disabled
12 AT89S512487A–10/01
AT89S51
Ready/Busy: The progress of byte programming can also be monitored by the RDY/BSY out-put signal. P3.0 is pulled low after ALE goes high during programming to indicate BUSY. P3.0is pulled high again when programming is done to indicate READY.
Program Verify: If lock bits LB1 and LB2 have not been programmed, the programmed codedata can be read back via the address and data lines for verification. The status of the individ-ual lock bits can be verified directly by reading them back.
Reading the Signature Bytes: The signature bytes are read by the same procedure as a nor-mal verification of locations 000H, 100H, and 200H, except that P3.6 and P3.7 must be pulledto a logic low. The values returned are as follows.
(000H) = 1EH indicates manufactured by Atmel(100H) = 51H indicates 89S51(200H) = 06H
Chip Erase: In the parallel programming mode, a chip erase operation is initiated by using theproper combination of control signals and by pulsing ALE/PROG low for a duration of 200 ns -500 ns.
In the serial programming mode, a chip erase operation is initiated by issuing the Chip Eraseinstruction. In this mode, chip erase is self-timed and takes about 500 ms.
During chip erase, a serial read from any address location will return 00H at the data output.
Programming the Flash – Serial Mode
The Code memory array can be programmed using the serial ISP interface while RST ispulled to VCC. The serial interface consists of pins SCK, MOSI (input) and MISO (output). AfterRST is set high, the Programming Enable instruction needs to be executed first before otheroperations can be executed. Before a reprogramming sequence can occur, a Chip Eraseoperation is required.
The Chip Erase operation turns the content of every memory location in the Code array intoFFH.
Either an external system clock can be supplied at pin XTAL1 or a crystal needs to be con-nected across pins XTAL1 and XTAL2. The maximum serial clock (SCK) frequency should beless than 1/16 of the crystal frequency. With a 33 MHz oscillator clock, the maximum SCK fre-quency is 2 MHz.
Serial Programming Algorithm
To program and verify the AT89S51 in the serial programming mode, the following sequenceis recommended:
1. Power-up sequence:
Apply power between VCC and GND pins.
Set RST pin to “H”.
If a crystal is not connected across pins XTAL1 and XTAL2, apply a 3 MHz to 33 MHzclock to XTAL1 pin and wait for at least 10 milliseconds.
2. Enable serial programming by sending the Programming Enable serial instruction to pin MOSI/P1.5. The frequency of the shift clock supplied at pin SCK/P1.7 needs to be less than the CPU clock at XTAL1 divided by 16.
3. The Code array is programmed one byte at a time in either the Byte or Page mode. The write cycle is self-timed and typically takes less than 0.5 ms at 5V.
4. Any memory location can be verified by using the Read instruction that returns the con-tent at the selected address at serial output MISO/P1.6.
5. At the end of a programming session, RST can be set low to commence normal device operation.
132487A–10/01
Power-off sequence (if needed):
Set XTAL1 to “L” (if a crystal is not used).
Set RST to “L”.
Turn VCC power off.
Data Polling: The Data Polling feature is also available in the serial mode. In this mode, dur-ing a write cycle an attempted read of the last byte written will result in the complement of theMSB of the serial output byte on MISO.
Serial Programming Instruction Set
The Instruction Set for Serial Programming follows a 4-byte protocol and is shown in Table 8on page 18.
Programming Interface – Parallel Mode
Every code byte in the Flash array can be programmed by using the appropriate combinationof control signals. The write operation cycle is self-timed and once initiated, will automaticallytime itself to completion.
All major programming vendors offer worldwide support for the Atmel microcontroller series.Please contact your local programming vendor for the appropriate software revision.
Notes: 1. Each PROG pulse is 200 ns - 500 ns for Chip Erase.2. Each PROG pulse is 200 ns - 500 ns for Write Code Data.3. Each PROG pulse is 200 ns - 500 ns for Write Lock Bits.4. RDY/BSY signal is output on P3.0 during programming.5. X = don’t care.
Table 7. Flash Programming Modes
Mode VCC RST PSEN
ALE/
PROG
EA/
VPP P2.6 P2.7 P3.3 P3.6 P3.7
P0.7-0
Data
P2.3-0 P1.7-0
Address
Write Code Data 5V H L(2)
12V L H H H H DIN A11-8 A7-0
Read Code Data 5V H L H H L L L H H DOUT A11-8 A7-0
Write Lock Bit 1 5V H L(3)
12V H H H H H X X X
Write Lock Bit 2 5V H L(3)
12V H H H L L X X X
Write Lock Bit 3 5V H L(3)
12V H L H H L X X X
Read Lock Bits
1, 2, 35V H L H H H H L H L
P0.2,P0.3,P0.4
X X
Chip Erase 5V H L(1)
12V H L H L L X X X
Read Atmel ID 5V H L H H L L L L L 1EH 0000 00H
Read Device ID 5V H L H H L L L L L 51H 0001 00H
Read Device ID 5V H L H H L L L L L 06H 0010 00H
14 AT89S512487A–10/01
AT89S51
Figure 4. Programming the Flash Memory (Parallel Mode)
Figure 5. Verifying the Flash Memory (Parallel Mode)
P1.0-P1.7
P2.6
P3.6
P2.0 - P2.3
A0 - A7ADDR.
0000H/FFFH
SEE FLASHPROGRAMMINGMODES TABLE
3-33 MHz
P0
V
P2.7
PGMDATA
PROG
V /VIH PP
VIH
ALE
P3.7
XTAL2 EA
RST
PSEN
XTAL1
GND
VCC
AT89S51
P3.3
P3.0RDY/BSY
A8 - A11
CC
P1.0-P1.7
P2.6
P3.6
P2.0 - P2.3
A0 - A7ADDR.
0000H/FFFH
SEE FLASHPROGRAMMINGMODES TABLE
3-33 MHz
P0
P2.7
PGM DATA(USE 10KPULLUPS)
VIH
VIH
ALE
P3.7
XTAL2 EA
RST
PSEN
XTAL1
GND
VCC
AT89S51
P3.3
A8 - A11
VCC
152487A–10/01
Figure 6. Flash Programming and Verification Waveforms – Parallel Mode
Flash Programming and Verification Characteristics (Parallel Mode)TA = 20°C to 30°C, VCC = 4.5 to 5.5V
Symbol Parameter Min Max Units
VPP Programming Supply Voltage 11.5 12.5 V
IPP Programming Supply Current 10 mA
ICC VCC Supply Current 30 mA
1/tCLCL Oscillator Frequency 3 33 MHz
tAVGL Address Setup to PROG Low 48tCLCL
tGHAX Address Hold After PROG 48tCLCL
tDVGL Data Setup to PROG Low 48tCLCL
tGHDX Data Hold After PROG 48tCLCL
tEHSH P2.7 (ENABLE) High to VPP 48tCLCL
tSHGL VPP Setup to PROG Low 10 µs
tGHSL VPP Hold After PROG 10 µs
tGLGH PROG Width 0.2 1 µs
tAVQV Address to Data Valid 48tCLCL
tELQV ENABLE Low to Data Valid 48tCLCL
tEHQZ Data Float After ENABLE 0 48tCLCL
tGHBL PROG High to BUSY Low 1.0 µs
tWC Byte Write Cycle Time 50 µs
tGLGHtGHSL
tAVGL
tSHGL
tDVGLtGHAX
tAVQV
tGHDX
tEHSH tELQV
tWC
BUSY READY
tGHBL
tEHQZ
P1.0 - P1.7P2.0 - P2.3
ALE/PROG
PORT 0
LOGIC 1LOGIC 0EA/VPP
VPP
P2.7(ENABLE)
P3.0(RDY/BSY)
PROGRAMMINGADDRESS
VERIFICATIONADDRESS
DATA IN DATA OUT
16 AT89S512487A–10/01
AT89S51
Figure 7. Flash Memory Serial Downloading
Flash Programming and Verification Waveforms – Serial Mode
Figure 8. Serial Programming Waveforms
P1.7/SCK
DATA OUTPUT
INSTRUCTIONINPUT
CLOCK IN
3-33 MHz
P1.5/MOSI
VIH
XTAL2
RSTXTAL1
GND
VCC
AT89S51
P1.6/MISO
VCC
7 6 5 4 3 2 1 0
172487A–10/01
Notes: 1. The signature bytes are not readable in Lock Bit Modes 3 and 4.2. B1 = 0, B2 = 0 → Mode 1, no lock protection
B1 = 0, B2 = 1 → Mode 2, lock bit 1 activatedB1 = 1, B2 = 0 → Mode 3, lock bit 2 activatedB1 = 1, B1 = 1 → Mode 4, lock bit 3 activated
After Reset signal is high, SCK should be low for at least 64 system clocks before it goes high to clock in the enable databytes. No pulsing of Reset signal is necessary. SCK should be no faster than 1/16 of the system clock at XTAL1.
For Page Read/Write, the data always starts from byte 0 to 255. After the command byte and upper address byte arelatched, each byte thereafter is treated as data until all 256 bytes are shifted in/out. Then the next instruction will be ready tobe decoded.
Table 8. Serial Programming Instruction Set
Instruction
Instruction Format
OperationByte 1 Byte 2 Byte 3 Byte 4
Programming Enable 1010 1100 0101 0011 xxxx xxxx xxxx xxxx0110 1001 (Output)
Enable Serial Programming while RST is high
Chip Erase 1010 1100 100x xxxx xxxx xxxx xxxx xxxx Chip Erase Flash memory array
Read Program Memory(Byte Mode)
0010 0000 xxxx Read data from Program memory in the byte mode
Write Program Memory(Byte Mode)
0100 0000 xxxx Write data to Program memory in the byte mode
Write Lock Bits(2) 1010 1100 1110 00 xxxx xxxx xxxx xxxx Write Lock bits. See Note (2).
Read Lock Bits 0010 0100 xxxx xxxx xxxx xxxx xx xx Read back current status of the lock bits (a programmed lock bit reads back as a “1”)
Read Signature Bytes(1) 0010 1000 xxx xxx xxxx Signature Byte Read Signature Byte
Read Program Memory(Page Mode)
0011 0000 xxxx Byte 0 Byte 1... Byte 255
Read data from Program memory in the Page Mode (256 bytes)
Write Program Memory(Page Mode)
0101 0000 xxxx Byte 0 Byte 1... Byte 255
Write data to Program memory in the Page Mode (256 bytes)
Each of the lock bits needs to be activated sequentially before Mode 4 can be executed.
D7
D6
D5
D4
D3
D2
D1
D0
A7
A6
A5
A4
A3
A2 A1
A0
A11
A10 A
9A
8B
2B
1
A11
A10 A
9A
8
A7
A6
A5
A4
A3
A2 A1
A0
D7
D6
D5
D4
D3
D2
D1
D0
LB3
LB2
LB1
A5
A4
A3
A2
A1
A11
A10 A
9A
8
A11
A10 A
9A
8
A0
18 AT89S512487A–10/01
AT89S51
192487A–10/01
Serial Programming Characteristics
Figure 9. Serial Programming Timing
MOSI
MISO
SCK
tOVSH
tSHSL
tSLSHtSHOX
tSLIV
Table 9. Serial Programming Characteristics, TA = -40° C to 85° C, VCC = 4.0 - 5.5V (Unless Otherwise Noted)
Symbol Parameter Min Typ Max Units
1/tCLCL Oscillator Frequency 0 33 MHz
tCLCL Oscillator Period 30 ns
tSHSL SCK Pulse Width High 8 tCLCL ns
tSLSH SCK Pulse Width Low 8 tCLCL ns
tOVSH MOSI Setup to SCK High tCLCL ns
tSHOX MOSI Hold after SCK High 2 tCLCL ns
tSLIV SCK Low to MISO Valid 10 16 32 ns
tERASE Chip Erase Instruction Cycle Time 500 ms
tSWC Serial Byte Write Cycle Time 64 tCLCL + 400 µs
Notes: 1. Under steady state (non-transient) conditions, IOL must be externally limited as follows:Maximum IOL per port pin: 10 mAMaximum IOL per 8-bit port:Port 0: 26 mA Ports 1, 2, 3: 15 mAMaximum total IOL for all output pins: 71 mAIf IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greaterthan the listed test conditions.
2. Minimum VCC for Power-down is 2V.
Absolute Maximum Ratings*Operating Temperature.................................. -55°C to +125°C *NOTICE: Stresses beyond those listed under “Absolute
Maximum Ratings” may cause permanent dam-age to the device. This is a stress rating only and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability.
Storage Temperature ..................................... -65°C to +150°C
Voltage on Any Pinwith Respect to Ground .....................................-1.0V to +7.0V
Maximum Operating Voltage ............................................ 6.6V
DC Output Current...................................................... 15.0 mA
DC CharacteristicsThe values shown in this table are valid for TA = -40°C to 85°C and VCC = 4.0V to 5.5V, unless otherwise noted.
Symbol Parameter Condition Min Max Units
VIL Input Low Voltage (Except EA) -0.5 0.2 VCC-0.1 V
VIL1 Input Low Voltage (EA) -0.5 0.2 VCC-0.3 V
VIH Input High Voltage (Except XTAL1, RST) 0.2 VCC+0.9 VCC+0.5 V
VIH1 Input High Voltage (XTAL1, RST) 0.7 VCC VCC+0.5 V
VOL
Output Low Voltage(1) (Ports 1,2,3) IOL = 1.6 mA
0.45 V
VOL1
Output Low Voltage(1)
(Port 0, ALE, PSEN) IOL = 3.2 mA0.45 V
VOH
Output High Voltage(Ports 1,2,3, ALE, PSEN)
IOH = -60 µA, VCC = 5V ± 10% 2.4 V
IOH = -25 µA 0.75 VCC V
IOH = -10 µA 0.9 VCC V
VOH1
Output High Voltage(Port 0 in External Bus Mode)
IOH = -800 µA, VCC = 5V ± 10% 2.4 V
IOH = -300 µA 0.75 VCC V
IOH = -80 µA 0.9 VCC V
IIL
Logical 0 Input Current (Ports 1,2,3) VIN = 0.45V
-50 µA
ITL
Logical 1 to 0 Transition Current (Ports 1,2,3) VIN = 2V, VCC = 5V ± 10%
-650 µA
ILI
Input Leakage Current (Port 0, EA) 0.45 < VIN < VCC
±10 µA
RRST Reset Pulldown Resistor 50 300 KΩ
CIO Pin Capacitance Test Freq. = 1 MHz, TA = 25°C 10 pF
ICC
Power Supply Current
Active Mode, 12 MHz 25 mA
Idle Mode, 12 MHz 6.5 mA
Power-down Mode(2) VCC = 5.5V 50 µA
20 AT89S512487A–10/01
AT89S51
AC Characteristics Under operating conditions, load capacitance for Port 0, ALE/PROG, and PSEN = 100 pF; load capacitance for all otheroutputs = 80 pF.
External Program and Data Memory Characteristics
Symbol Parameter
12 MHz Oscillator Variable Oscillator
UnitsMin Max Min Max
1/tCLCL Oscillator Frequency 0 33 MHz
tLHLL ALE Pulse Width 127 2tCLCL-40 ns
tAVLL Address Valid to ALE Low 43 tCLCL-25 ns
tLLAX Address Hold After ALE Low 48 tCLCL-25 ns
tLLIV ALE Low to Valid Instruction In 233 4tCLCL-65 ns
tLLPL ALE Low to PSEN Low 43 tCLCL-25 ns
tPLPH PSEN Pulse Width 205 3tCLCL-45 ns
tPLIV PSEN Low to Valid Instruction In 145 3tCLCL-60 ns
tPXIX Input Instruction Hold After PSEN 0 0 ns
tPXIZ Input Instruction Float After PSEN 59 tCLCL-25 ns
tPXAV PSEN to Address Valid 75 tCLCL-8 ns
tAVIV Address to Valid Instruction In 312 5tCLCL-80 ns
tPLAZ PSEN Low to Address Float 10 10 ns
tRLRH RD Pulse Width 400 6tCLCL-100 ns
tWLWH WR Pulse Width 400 6tCLCL-100 ns
tRLDV RD Low to Valid Data In 252 5tCLCL-90 ns
tRHDX Data Hold After RD 0 0 ns
tRHDZ Data Float After RD 97 2tCLCL-28 ns
tLLDV ALE Low to Valid Data In 517 8tCLCL-150 ns
tAVDV Address to Valid Data In 585 9tCLCL-165 ns
tLLWL ALE Low to RD or WR Low 200 300 3tCLCL-50 3tCLCL+50 ns
tAVWL Address to RD or WR Low 203 4tCLCL-75 ns
tQVWX Data Valid to WR Transition 23 tCLCL-30 ns
tQVWH Data Valid to WR High 433 7tCLCL-130 ns
tWHQX Data Hold After WR 33 tCLCL-25 ns
tRLAZ RD Low to Address Float 0 0 ns
tWHLH RD or WR High to ALE High 43 123 tCLCL-25 tCLCL+25 ns
212487A–10/01
External Program Memory Read Cycle
External Data Memory Read Cycle
tLHLL
tLLIV
tPLIV
tLLAXtPXIZ
tPLPH
tPLAZtPXAV
tAVLL tLLPL
tAVIV
tPXIX
ALE
PSEN
PORT 0
PORT 2 A8 - A15
A0 - A7 A0 - A7
A8 - A15
INSTR IN
tLHLL
tLLDV
tLLWL
tLLAX
tWHLH
tAVLL
tRLRH
tAVDV
tAVWL
tRLAZ tRHDX
tRLDV tRHDZ
A0 - A7 FROM RI OR DPL
ALE
PSEN
RD
PORT 0
PORT 2 P2.0 - P2.7 OR A8 - A15 FROM DPH
A0 - A7 FROM PCL
A8 - A15 FROM PCH
DATA IN INSTR IN
22 AT89S512487A–10/01
AT89S51
External Data Memory Write Cycle
External Clock Drive Waveforms
tLHLL
tLLWL
tLLAX
tWHLH
tAVLL
tWLWH
tAVWL
tQVWXtQVWH
tWHQX
A0 - A7 FROM RI OR DPL
ALE
PSEN
WR
PORT 0
PORT 2 P2.0 - P2.7 OR A8 - A15 FROM DPH
A0 - A7 FROM PCL
A8 - A15 FROM PCH
DATA OUT INSTR IN
tCHCX
tCHCX
tCLCX
tCLCL
tCHCLtCLCHV - 0.5VCC
0.45V0.2 V - 0.1VCC
0.7 VCC
External Clock DriveSymbol Parameter Min Max Units
1/tCLCL Oscillator Frequency 0 33 MHz
tCLCL Clock Period 30 ns
tCHCX High Time 12 ns
tCLCX Low Time 12 ns
tCLCH Rise Time 5 ns
tCHCL Fall Time 5 ns
232487A–10/01
Shift Register Mode Timing Waveforms
AC Testing Input/Output Waveforms(1)
Note: 1. AC Inputs during testing are driven at VCC - 0.5V for a logic 1 and 0.45V for a logic 0. Timing measurements are made at VIHmin. for a logic 1 and VIL max. for a logic 0.
Float Waveforms(1)
Note: 1. For timing purposes, a port pin is no longer floating when a 100 mV change from load voltage occurs. A port pin begins tofloat when a 100 mV change from the loaded VOH/VOL level occurs.
Serial Port Timing: Shift Register Mode Test ConditionsThe values in this table are valid for VCC = 4.0V to 5.5V and Load Capacitance = 80 pF.
Symbol Parameter
12 MHz Osc Variable Oscillator
UnitsMin Max Min Max
tXLXL Serial Port Clock Cycle Time 1.0 12tCLCL µs
tQVXH Output Data Setup to Clock Rising Edge 700 10tCLCL-133 ns
tXHQX Output Data Hold After Clock Rising Edge 50 2tCLCL-80 ns
tXHDX Input Data Hold After Clock Rising Edge 0 0 ns
tXHDV Clock Rising Edge to Input Data Valid 700 10tCLCL-133 ns
tXHDV
tQVXH
tXLXL
tXHDX
tXHQX
ALE
INPUT DATA
CLEAR RI
OUTPUT DATA
WRITE TO SBUF
INSTRUCTION
CLOCK
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
SET TI
SET RI
8
VALID VALIDVALID VALIDVALID VALIDVALID VALID
0.45V
TEST POINTS
V - 0.5VCC 0.2 V + 0.9VCC
0.2 V - 0.1VCC
VLOAD+ 0.1V
Timing ReferencePoints
V
LOAD- 0.1V
LOAD
V VOL+ 0.1V
VOL- 0.1V
24 AT89S512487A–10/01
AT89S51
Ordering InformationSpeed(MHz)
PowerSupply Ordering Code Package Operation Range
24 4.0V to 5.5V AT89S51-24ACAT89S51-24JC
AT89S51-24PC
44A44J
40P6
Commercial(0° C to 70° C)
AT89S51-24AIAT89S51-24JIAT89S51-24PI
44A44J40P6
Industrial(-40° C to 85° C)
33 4.5V to 5.5V AT89S51-33AC
AT89S51-33JCAT89S51-33PC
44A
44J40P6
Commercial
(0° C to 70° C)
= Preliminary Availability
Package Type
44A 44-lead, Thin Plastic Gull Wing Quad Flatpack (TQFP)
44J 44-lead, Plastic J-leaded Chip Carrier (PLCC)
40P6 40-pin, 0.600" Wide, Plastic Dual Inline Package (PDIP)
252487A–10/01
Packaging Information
*Controlling dimension: millimeters
1.20(0.047) MAX
10.10(0.394)9.90(0.386)
SQ
12.21(0.478)11.75(0.458)
SQ
0.75(0.030)0.45(0.018)
0.15(0.006)0.05(0.002)
0.20(.008)0.09(.003)
07
0.80(0.031) BSC
PIN 1 ID
0.45(0.018)0.30(0.012)
26 AT89S51
.045(1.14) X 45° PIN NO. 1IDENTIFY
.045(1.14) X 30° - 45° .012(.305).008(.203)
.021(.533)
.013(.330)
.630(16.0)
.590(15.0)
.043(1.09)
.020(.508)
.120(3.05)
.090(2.29).180(4.57).165(4.19)
.500(12.7) REF SQ
.032(.813)
.026(.660)
.050(1.27) TYP
.022(.559) X 45° MAX (3X)
.656(16.7)
.650(16.5)
.695(17.7)
.685(17.4)SQ
SQ
2.07(52.6)2.04(51.8) PIN
1
.566(14.4)
.530(13.5)
.090(2.29)MAX
.005(.127)MIN
.065(1.65)
.015(.381)
.022(.559)
.014(.356).065(1.65).041(1.04)
015
REF
.690(17.5)
.610(15.5)
.630(16.0)
.590(15.0)
.012(.305)
.008(.203)
.110(2.79)
.090(2.29)
.161(4.09)
.125(3.18)
SEATINGPLANE
.220(5.59)MAX
1.900(48.26) REF
JEDEC STANDARD MS-011 AC
44A, 44-lead, Thin (1.0 mm) Plastic Gull Wing Quad Flat Package (TQFP)Dimensions in Millimeters and (Inches)*
44J, 44-lead, Plastic J-leaded Chip Carrier (PLCC)Dimensions in Inches and (Millimeters)
40P6, 40-pin, 0.600" Wide, Plastic Dual Inline Package (PDIP)Dimensions in Inches and (Millimeters)
2487A–10/01
© Atmel Corporation 2001.Atmel Corporation makes no warranty for the use of its products, other than those expressly contained in the Company’s standard warrantywhich is detailed in Atmel’s Terms and Conditions located on the Company’s web site. The Company assumes no responsibility for any errorswhich may appear in this document, reserves the right to change devices or specifications detailed herein at any time without notice, and doesnot make any commitment to update the information contained herein. No licenses to patents or other intellectual property of Atmel are grantedby the Company in connection with the sale of Atmel products, expressly or by implication. Atmel’s products are not authorized for use as criticalcomponents in life support devices or systems.
Atmel Headquarters Atmel Product Operations
Corporate Headquarters2325 Orchard ParkwaySan Jose, CA 95131TEL (408) 441-0311FAX (408) 487-2600
EuropeAtmel SarLRoute des Arsenaux 41Casa Postale 80CH-1705 FribourgSwitzerlandTEL (41) 26-426-5555FAX (41) 26-426-5500
AsiaAtmel Asia, Ltd.Room 1219Chinachem Golden Plaza77 Mody Road TsimhatsuiEast KowloonHong KongTEL (852) 2721-9778FAX (852) 2722-1369
JapanAtmel Japan K.K.9F, Tonetsu Shinkawa Bldg.1-24-8 ShinkawaChuo-ku, Tokyo 104-0033JapanTEL (81) 3-3523-3551FAX (81) 3-3523-7581
Atmel Colorado Springs1150 E. Cheyenne Mtn. Blvd.Colorado Springs, CO 80906TEL (719) 576-3300FAX (719) 540-1759
Atmel GrenobleAvenue de RochepleineBP 12338521 Saint-Egreve Cedex, FranceTEL (33) 4-7658-3000FAX (33) 4-7658-3480
Atmel HeilbronnTheresienstrasse 2POB 3535D-74025 Heilbronn, GermanyTEL (49) 71 31 67 25 94FAX (49) 71 31 67 24 23
Atmel NantesLa ChantrerieBP 7060244306 Nantes Cedex 3, FranceTEL (33) 0 2 40 18 18 18FAX (33) 0 2 40 18 19 60
Atmel RoussetZone Industrielle13106 Rousset Cedex, FranceTEL (33) 4-4253-6000FAX (33) 4-4253-6001
Atmel Smart Card ICsScottish Enterprise Technology ParkEast Kilbride, Scotland G75 0QRTEL (44) 1355-357-000FAX (44) 1355-242-743
e-mailliterature@atmel.com
Web Sitehttp://www.atmel.com
Printed on recycled paper.
ATMEL® is the registered trademark of Atmel.
MCS-51® is the registered trademark of Intel Corporation. Terms and product names in this document may betrademarks of others.
2487A–10/01/xM
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
1POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
Featuring Unitrode L293 and L293DProducts Now From Texas Instruments
Wide Supply-Voltage Range: 4.5 V to 36 V
Separate Input-Logic Supply
Internal ESD Protection
Thermal Shutdown
High-Noise-Immunity Inputs
Functional Replacements for SGS L293 andSGS L293D
Output Current 1 A Per Channel(600 mA for L293D)
Peak Output Current 2 A Per Channel(1.2 A for L293D)
Output Clamp Diodes for InductiveTransient Suppression (L293D)
description
The L293 and L293D are quadruple high-currenthalf-H drivers. The L293 is designed to providebidirectional drive currents of up to 1 A at voltagesfrom 4.5 V to 36 V. The L293D is designed toprovide bidirectional drive currents of up to600-mA at voltages from 4.5 V to 36 V. Bothdevices are designed to drive inductive loads suchas relays, solenoids, dc and bipolar steppingmotors, as well as other high-current/high-voltageloads in positive-supply applications.
All inputs are TTL compatible. Each output is a complete totem-pole drive circuit, with a Darlington transistorsink and a pseudo-Darlington source. Drivers are enabled in pairs, with drivers 1 and 2 enabled by 1,2EN anddrivers 3 and 4 enabled by 3,4EN. When an enable input is high, the associated drivers are enabled and theiroutputs are active and in phase with their inputs. When the enable input is low, those drivers are disabled andtheir outputs are off and in the high-impedance state. With the proper data inputs, each pair of drivers formsa full-H (or bridge) reversible drive suitable for solenoid or motor applications.
On the L293, external high-speed output clamp diodes should be used for inductive transient suppression.
A VCC1 terminal, separate from VCC2, is provided for the logic inputs to minimize device power dissipation.
The L293and L293D are characterized for operation from 0°C to 70°C.
Copyright 2002, Texas Instruments IncorporatedPRODUCTION DATA information is current as of publication date.Products conform to specifications per the terms of Texas Instrumentsstandard warranty. Production processing does not necessarily includetesting of all parameters.
Please be aware that an important notice concerning availability, standard warranty, and use in critical applications ofTexas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.
HEAT SINK ANDGROUND
HEAT SINK ANDGROUND
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
1,2EN1A1Y
2Y2A
VCC2
VCC14A4Y
3Y3A3,4EN
N, NE PACKAGE(TOP VIEW)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
1,2EN1A1YNCNCNC
NCNC2Y2A
VCC2
VCC14A4YNCNCNC
NCNC3Y3A3,4EN
DWP PACKAGE(TOP VIEW)
HEAT SINK ANDGROUND
HEAT SINK ANDGROUND
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
2 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
block diagram
10
3
4
5
6
7
8 9
10
11
12
13
14
15
161
210
1
10
2
4
3
M
M
M
10
10
10
VC
VCC1
NOTE: Output diodes are internal in L293D.
TEXAS INSTRUMENTSAVAILABLE OPTIONS
PACKAGE
TAPLASTIC
DIP(NE)
0°C to 70°CL293NEL293DNE
AVAILABLE OPTIONS
PACKAGED DEVICES
TASMALL
OUTLINE(DWP)
PLASTICDIP(N)
0°C to 70°CL293DWPL293DDWP
L293NL293DN
The DWP package is available taped and reeled. Addthe suffix TR to device type (e.g., L293DWPTR).
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
3POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
FUNCTION TABLE(each driver)
INPUTS† OUTPUTA EN Y
H H H
L H L
X L Z
H = high level, L = low level, X = irrelevant,Z = high impedance (off)† In the thermal shutdown mode, the output is
in the high-impedance state, regardless ofthe input levels.
logic diagram
ÁÁÁÁÁÁÁÁÁÁ
ÁÁÁÁÁÁ
ÁÁÁÁ
2
1
7
10
9
15
3
6
11
14
1A
1,2EN
2A
3A
3,4EN
4A
1Y
2Y
3Y
4Y
schematics of inputs and outputs (L293)
Input
VCC2
Output
GND
TYPICAL OF ALL OUTPUTSEQUIVALENT OF EACH INPUT
VCC1
CurrentSource
GND
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
4 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
schematics of inputs and outputs (L293D)
Input
VCC2
Output
GND
TYPICAL OF ALL OUTPUTSEQUIVALENT OF EACH INPUT
VCC1
CurrentSource
GND
absolute maximum ratings over operating free-air temperature range (unless otherwise noted)†
Supply voltage, VCC1 (see Note 1) 36 V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output supply voltage, VCC2 36 V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Input voltage, VI 7 V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Output voltage range, VO –3 V to VCC2 + 3 V. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Peak output current, IO (nonrepetitive, t ≤ 5 ms): L293 ±2 A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Peak output current, IO (nonrepetitive, t ≤ 100 µs): L293D ±1.2 A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Continuous output current, IO: L293 ±1 A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Continuous output current, IO: L293D ±600 mA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Continuous total dissipation at (or below) 25°C free-air temperature (see Notes 2 and 3) 2075 mW. . . . . . . Continuous total dissipation at 80°C case temperature (see Note 3) 5000 mW. . . . . . . . . . . . . . . . . . . . . . . . . Maximum junction temperature, TJ 150°C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lead temperature 1,6 mm (1/16 inch) from case for 10 seconds 260°C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Storage temperature range, Tstg –65°C to 150°C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
† Stresses beyond those listed under “absolute maximum ratings” may cause permanent damage to the device. These are stress ratings only, andfunctional operation of the device at these or any other conditions beyond those indicated under “recommended operating conditions” is notimplied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.
NOTES: 1. All voltage values are with respect to the network ground terminal.2. For operation above 25°C free-air temperature, derate linearly at the rate of 16.6 mW/°C.3. For operation above 25°C case temperature, derate linearly at the rate of 71.4 mW/°C. Due to variations in individual device electrical
characteristics and thermal resistance, the built-in thermal overload protection may be activated at power levels slightly above orbelow the rated dissipation.
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
5POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
recommended operating conditions
MIN MAX UNIT
Supply voltageVCC1 4.5 7
VSupply voltageVCC2 VCC1 36
V
VIH High level input voltageVCC1 ≤ 7 V 2.3 VCC1 V
VIH High-level input voltageVCC1 ≥ 7 V 2.3 7 V
VIL Low-level output voltage –0.3† 1.5 V
TA Operating free-air temperature 0 70 °C† The algebraic convention, in which the least positive (most negative) designated minimum, is used in this data sheet for logic voltage levels.
electrical characteristics, VCC1 = 5 V, VCC2 = 24 V, TA = 25°CPARAMETER TEST CONDITIONS MIN TYP MAX UNIT
VOH High-level output voltageL293: IOH = –1 AL293D: IOH = –0.6 A
VCC2–1.8 VCC2–1.4 V
VOL Low-level output voltageL293: IOL = 1 AL293D: IOL = 0.6 A
1.2 1.8 V
VOKH High-level output clamp voltage L293D: IOK = –0.6 A VCC2 + 1.3 V
VOKL Low-level output clamp voltage L293D: IOK = 0.6 A 1.3 V
IIH High level input currentA
VI = 7 V0.2 100
µAIIH High-level input currentEN
VI = 7 V0.2 10
µA
IIL Low level input currentA
VI = 0–3 –10
µAIIL Low-level input currentEN
VI = 0–2 –100
µA
All outputs at high level 13 22
ICC1 Logic supply current IO = 0 All outputs at low level 35 60 mA
All outputs at high impedance 8 24
All outputs at high level 14 24
ICC2 Output supply current IO = 0 All outputs at low level 2 6 mA
All outputs at high impedance 2 4
switching characteristics, VCC1 = 5 V, VCC2 = 24 V, TA = 25°C
PARAMETER TEST CONDITIONSL293NE, L293DNE
UNITPARAMETER TEST CONDITIONSMIN TYP MAX
UNIT
tPLH Propagation delay time, low-to-high-level output from A input 800 ns
tPHL Propagation delay time, high-to-low-level output from A inputCL = 30 pF See Figure 1
400 ns
tTLH Transition time, low-to-high-level outputCL = 30 pF, See Figure 1
300 ns
tTHL Transition time, high-to-low-level output 300 ns
switching characteristics, VCC1 = 5 V, VCC2 = 24 V, TA = 25°C
PARAMETER TEST CONDITIONS
L293DWP, L293NL293DDWP, L293DN UNIT
MIN TYP MAX
tPLH Propagation delay time, low-to-high-level output from A input 750 ns
tPHL Propagation delay time, high-to-low-level output from A inputCL = 30 pF See Figure 1
200 ns
tTLH Transition time, low-to-high-level outputCL = 30 pF, See Figure 1
100 ns
tTHL Transition time, high-to-low-level output 350 ns
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
6 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
PARAMETER MEASUREMENT INFORMATION
Output
CL = 30 pF(see Note A)
VCC1
Input
3 V
TEST CIRCUIT
tf tr3 V
0
tPHL
VOH
tTHL tTLH
VOLTAGE WAVEFORMS
tPLH
Output
Input
VOL
tw
NOTES: A. CL includes probe and jig capacitance.B. The pulse generator has the following characteristics: tr ≤ 10 ns, tf ≤ 10 ns, tw = 10 µs, PRR = 5 kHz, ZO = 50 Ω.
PulseGenerator
(see Note B)
5 V 24 V
VCC2
A
EN
Y90% 90%
50%
10%
50%
10%
90% 90%
50%
10%
50%
10%
Figure 1. Test Circuit and Voltage Waveforms
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
7POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
APPLICATION INFORMATION
24 V5 V
10 kΩ
VCC1VCC2
Control A
Control B
4, 5, 12, 13
GND
ThermalShutdown
Motor
16 3
3
6
11
14
4Y
3Y
2Y
1Y
1,2EN
1A
2A
3,4EN
3A
4A
15
10
9
7
2
1
Figure 2. Two-Phase Motor Driver (L293)
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
8 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
APPLICATION INFORMATION
24 V5 V
10 kΩ
VCC1 VCC2
16 3
1,2EN1
1A2
2A
7
3,4EN
9
3A10
4A15
Control A
Control B
4, 5, 12, 13
GND
ThermalShutdown
Motor
1Y
3
2Y
6
3Y
11
4Y
14
Figure 3. Two-Phase Motor Driver (L293D)
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
9POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
APPLICATION INFORMATION
EN 3A M1 4A M2
H H Fast motor stop H Run
H L Run L Fast motor stop
L XFree-running motorstop
XFree-running motorstop
L = low, H = high, X = don’t care
EN 1A 2A FUNCTION
H L H Turn right
H H L Turn left
H L L Fast motor stop
H H H Fast motor stop
L X X Fast motor stop
L = low, H = high, X = don’t care
VCC2 SES5001
1/2 L293
4, 5, 12, 13
10
SES5001
VCC1
EN
1511 14
16
9
M2
M1
3A 4A
8
Figure 4. DC Motor Controls(connections to ground and to
supply voltage)
GND
2 × SES5001
1/2 L293
4, 5, 12, 13
367
8
1
216
VCC2
2 × SES5001
2A 1A
VCC1
EN
M
Figure 5. Bidirectional DC Motor Control
GND
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
10 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
APPLICATION INFORMATION
3
4
5
6
7
8
1
2
9
10
11
12
13
14
15
16
+
+
+
+
D7
D8 D4
D3
L2 IL2
C1
D5 D1
D6 D2
VCC1L293
IL1/IL2 = 300 mA
0.22 µF
VCC2 L1 IL1
D1–D8 = SES5001
Figure 6. Bipolar Stepping-Motor Control
mounting instructions
The Rthj-amp of the L293 can be reduced by soldering the GND pins to a suitable copper area of the printedcircuit board or to an external heatsink.
Figure 9 shows the maximum package power PTOT and the θJA as a function of the side of two equal squarecopper areas having a thickness of 35 µm (see Figure 7). In addition, an external heat sink can be used (seeFigure 8).
During soldering, the pin temperature must not exceed 260°C, and the soldering time must not be longer than12 seconds.
The external heatsink or printed circuit copper area must be connected to electrical ground.
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
11POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
APPLICATION INFORMATION
Copper Area 35-µm Thickness
Printed Circuit Board
Figure 7. Example of Printed Circuit Board Copper Area (used as heat sink)
11.9 mm
17.0 mm
38.0 mm
Figure 8. External Heat Sink Mounting Example(θJA = 25°C/W)
L293, L293DQUADRUPLE HALF-H DRIVERS
SLRS008B – SEPTEMBER 1986 – REVISED JUNE 2002
12 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
APPLICATION INFORMATION
3
1
0
2
0 10 20
P
4
MAXIMUM POWER AND JUNCTION vs
THERMAL RESISTANCE
30
TOT
– P
ow
er D
issi
pat
ion
– W
60
20
0
40
80
θ JA
– T
her
mal
Res
ista
nce
–°C
/W
40
Side – mm
Figure 9
θJA
PTOT (TA = 70°C)
50
5
3
1
0
2
–50 0 50
4
MAXIMUM POWER DISSIPATIONvs
AMBIENT TEMPERATURE
100
TA – Ambient Temperature – °C
With Infinite Heat Sink
Free Air
Heat Sink With θJA = 25°C/W
Figure 10
150P
TOT
– P
ow
er D
issi
pat
ion
– W
IMPORTANT NOTICE
Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,enhancements, improvements, and other changes to its products and services at any time and to discontinueany product or service without notice. Customers should obtain the latest relevant information before placingorders and should verify that such information is current and complete. All products are sold subject to TI’s termsand conditions of sale supplied at the time of order acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of sale inaccordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TIdeems necessary to support this warranty. Except where mandated by government requirements, testing of allparameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are responsible fortheir products and applications using TI components. To minimize the risks associated with customer productsand applications, customers should provide adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right,copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or processin which TI products or services are used. Information published by TI regarding third–party products or servicesdoes not constitute a license from TI to use such products or services or a warranty or endorsement thereof.Use of such information may require a license from a third party under the patents or other intellectual propertyof the third party, or a license from TI under the patents or other intellectual property of TI.
Reproduction of information in TI data books or data sheets is permissible only if reproduction is withoutalteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproductionof this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable forsuch altered documentation.
Resale of TI products or services with statements different from or beyond the parameters stated by TI for thatproduct or service voids all express and any implied warranties for the associated TI product or service andis an unfair and deceptive business practice. TI is not responsible or liable for any such statements.
Mailing Address:
Texas InstrumentsPost Office Box 655303Dallas, Texas 75265
Copyright 2002, Texas Instruments Incorporated
©2002 Fairchild Semiconductor Corporation Rev. A1, August 2002
BC
516
TO-92
Absolute Maximum Ratings TA=25°C unless otherwise noted
Electrical Characteristics TA=25°C unless otherwise noted
NOTES:1. Pulse Test Pulse Width ≤ 2%2. fT = IhfeI · ftest
Thermal Characteristics TA=25°C unless otherwise noted
Symbol Parameter Value UnitsVCEO Collector-Emitter Voltage 30 VVCBO Collector-Base Voltage 40 VVEBO Emitter-Base Voltage 10 VIC Collector Current - Continuous 1 APD Total Power Dissipation TA = 25°C 625 mWTJ, TSTG Operating and Storage Junction Temperature Range -55 ~ +150 °C
Symbol Parameter Test Condition Min. Typ. Max. UnitsVCEO Collector-Emitter Breakdown Voltage IC = 2mA, IB = 0 30 VVCBO Collector-Base Breakdown Voltage IC = 100µA, IE = 0 40 VVEBO Emitter-Base Breakdown Voltage IE = 10µA, IC = 0 10 VICBO Collector Cutoff Current VCB = 30V, IE = 0 100 nAhFE DC Current Gain IC = 20mA, VCE = 2V 30,00
0VCE(sat) Collector-Emitter Saturation Voltage IC = 100mA, IB = 0.1mA 1 VVBE(on) Base-Emitter On Voltage IC = 10mA, VCE = 5V 1.4 VfT Current Gain Bandwidth Product (2) IC = 10mA, VCE = 5V, f = 100MHz 200 MHZ
Symbol Parameter Max. UnitsRθJA Thermal Resistance, Junction to Ambient 200 °C/WRθJC Thermal Resistance, Junction to Case 83.3 °C/W
BC516
PNP Darlington Transistor• This device is designed for applications reguiring extremely high
current gain at currents to 1mA.• Sourced from process 61.
1. Collector 2. Base 3. Emitter1
Package DimensionsB
C516
0.46 ±0.10
1.27TYP
(R2.29)
3.86
MA
X
[1.27 ±0.20]
1.27TYP
[1.27 ±0.20]
3.60 ±0.20
14.4
7 ±0
.40
1.02
±0.
10
(0.2
5)4.
58 ±
0.20
4.58+0.25–0.15
0.38+0.10–0.05
0.38
+0.1
0–0
.05
TO-92
Dimensions in Millimeters
©2002 Fairchild Semiconductor Corporation Rev. A1, August 2002
©2002 Fairchild Semiconductor Corporation Rev. I1
TRADEMARKS
The following are registered and unregistered trademarks Fairchild Semiconductor owns or is authorized to use and is notintended to be an exhaustive list of all such trademarks.
DISCLAIMERFAIRCHILD SEMICONDUCTOR RESERVES THE RIGHT TO MAKE CHANGES WITHOUT FURTHER NOTICE TO ANYPRODUCTS HEREIN TO IMPROVE RELIABILITY, FUNCTION OR DESIGN. FAIRCHILD DOES NOT ASSUME ANYLIABILITY ARISING OUT OF THE APPLICATION OR USE OF ANY PRODUCT OR CIRCUIT DESCRIBED HEREIN;NEITHER DOES IT CONVEY ANY LICENSE UNDER ITS PATENT RIGHTS, NOR THE RIGHTS OF OTHERS.
LIFE SUPPORT POLICY
FAIRCHILD’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORTDEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF FAIRCHILD SEMICONDUCTORCORPORATION.As used herein:1. Life support devices or systems are devices or systemswhich, (a) are intended for surgical implant into the body,or (b) support or sustain life, or (c) whose failure to performwhen properly used in accordance with instructions for useprovided in the labeling, can be reasonably expected toresult in significant injury to the user.
2. A critical component is any component of a life supportdevice or system whose failure to perform can bereasonably expected to cause the failure of the life supportdevice or system, or to affect its safety or effectiveness.
PRODUCT STATUS DEFINITIONS
Definition of Terms
Datasheet Identification Product Status Definition
Advance Information Formative or In Design
This datasheet contains the design specifications forproduct development. Specifications may change inany manner without notice.
Preliminary First Production This datasheet contains preliminary data, andsupplementary data will be published at a later date.Fairchild Semiconductor reserves the right to makechanges at any time without notice in order to improvedesign.
No Identification Needed Full Production This datasheet contains final specifications. FairchildSemiconductor reserves the right to make changes atany time without notice in order to improve design.
Obsolete Not In Production This datasheet contains specifications on a productthat has been discontinued by Fairchild semiconductor.The datasheet is printed for reference information only.
FACT™FACT Quiet series™FAST®
FASTr™FRFET™GlobalOptoisolator™GTO™HiSeC™I2C™
ImpliedDisconnect™ISOPLANAR™LittleFET™MicroFET™MicroPak™MICROWIRE™MSX™MSXPro™OCX™OCXPro™OPTOLOGIC®
OPTOPLANAR™
PACMAN™POP™Power247™PowerTrench®
QFET™QS™QT Optoelectronics™Quiet Series™RapidConfigure™RapidConnect™SILENT SWITCHER®
SMART START™
SPM™Stealth™SuperSOT™-3SuperSOT™-6SuperSOT™-8SyncFET™TinyLogic™TruTranslation™UHC™UltraFET®
VCX™
ACEx™ActiveArray™Bottomless™CoolFET™CROSSVOLT™DOME™EcoSPARK™E2CMOS™EnSigna™Across the board. Around the world.™The Power Franchise™Programmable Active Droop™
PACKAGE DIMENSIONS
7/21/03
Page 1 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
APPLICATIONS
For industrial and consumer applications such as:
• Digital readout displays• Instrument panels• Point of sale equipment• Digital clocks• TV and radios
MODEL NUMBERS
Part Number Color DescriptionPin Out Specification
(See Page 5)
MAN5350MAN5360
YellowYellow
Common AnodeCommon Cathode
AB
MAN5450MAN5460
GreenGreen
Common AnodeCommon Cathode
AB
MAN5750MAN5760
RedRed
Common AnodeCommon Cathode
AB
MAN5950MAN5960
HERHER
Common AnodeCommon Cathode
AB
A
FB
G
ED
C
DP
0.512 (13mm)
Date Code
PartIdentification
NOTE: Dimensions in inches (mm) Tolerances ±0.010" unless otherwise specified
PartNo. XYY Z
Pin #1
Light Intensity Category
0.291(7.4mm)0.049
(1.25mm)
10°
0.049(1.25mm)
0.482(12.25mm)
0.252(6.4mm)
0.100(2.54mm)
0.012(0.3mm)
0.600(15.24mm)
0.020(0.5mm)
0.276(7.0mm)
0.417(10.6mm)
±0.006
±0.012
±0.002
±0.006
±0.012
0.689(17.5mm)
+0.012-0.004
±0.004
DESCRIPTION
This display series is a family of large digits 0.510 inches in height. All models have right hand decimal points and are availble in common anode or common cathode configurations. All units are constructed with untinted segments on grey face to enhance ON/OFF contrast. Stan-dard units are available in red, orange-red, green and yellow.
FEATURES
• Large, easy to read, digits• Common anode or common cathode models• Fast switching — excellent for multiplexing• Low power consumption• Bold solid segments that are highly legible• Solid state reliability — long operation life• Rugged plastic construction• Directly compatible with integrated circuits• High brightness with high contrast• Categorized for Luminous Intensity
(See Note 5)• Wide angle viewing...150°• Low forward voltage• Untinted segments on grey face
7/21/03
Page 2 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
ELECTRO-OPTICAL CHARACTERISTICS
(T
A
= 25°C Unless Otherwise Specified)
Parameter Min. Typ. Max. Units Test Condition
YellowMAN5350/MAN5360
Luminous Intensity, digit average(See Note 1)
820 1200480
µcdµcd
I
F
= 10 mAI
F
= 5 mA
Peak emission wavelength 585 nm I
F
= 10 mA
Dominant wavelength 582 593 nm I
F
= 10 mA
Spectral line half width 40 nm
Forward voltage 2.4 3.0 V I
F
= 20 mA
Dynamic resistance 26 I
F
= 20 mA
Capacitance 35 pF V
R
= 0, f = 1MHz
Reverse current 10 µA V
R
= 6.0 V
GreenMAN5450/MAN5460
Luminous Intensity, digit average(See Note 1)
820 30001000
µcdµcd
I
F
= 10 mAI
F
= 5 mA
Peak emission wavelength 562 nm I
F
= 10 mA
Dominant wavelength 564 574 nm I
F
= 10 mA
Spectral line half width 30 nm
Forward voltage 2.4 3.0 V I
F
= 20 mA
Dynamic resistance 12 I
F
= 20 mA
Capacitance 40 pF V
R
= 0, f = 1MHz
Reverse current 10 µA V
R
= 6.0 V
7/21/03
Page 3 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
ELECTRO-OPTICAL CHARACTERISTICS
(T
A
= 25°C Unless Otherwise Specified)
Parameter Min. Typ. Max. Units Test Condition
RedMAN5750/MAN5760
Luminous Intensity, digit average(See Note 1)
280 500250
µcdµcd
I
F
= 10 mAI
F
= 5 mA
Peak emission wavelength 655 nm I
F
= 10 mA
Dominant wavelength 645 nm I
F
= 10 mA
Spectral line half width 20 nm
Forward voltage 1.6 2.0 V I
F
= 20 mA
Dynamic resistance 2 I
F
= 20 mA
Capacitance 35 pF V
R
= 0, f = 1MHz
Reverse current 10 µA V
R
= 6.0 V
HERMAN5950/MAN5960
Luminous Intensity, digit average(See Note 1)
820 2500700
µcdµcd
I
F
= 10 mAI
F
= 5 mA
Peak emission wavelength 635 nm I
F
= 10 mA
Dominant wavelength 615 630 nm I
F
= 10 mA
Spectral line half width 40 nm
Forward voltage 2.0 3.0 V I
F
= 20 mA
Dynamic resistance 26 I
F
= 20 mA
Capacitance 35 pF V
R
= 0, f = 1MHz
Reverse current 10 µA V
R
= 6.0 V
7/21/03
Page 4 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
Notes:
1. The digit average Luminous Intensity is obtained by summing the Luminous Intensity of each segment and dividing by the total number of segments. Intensity will not vary more than ±33.3% between all segments within a digit.
2. The relative Luminous Intensity in this curve is normalized to the brightness at 25°C to indicate the relative efficiency over the operating temperature range.
3. Leads of the device immersed to 1/16 inch from the body. Maximum device surface temperature is 140°C.4. For flux removal, Freon TF, Freon TE, Isoproponal or water may be used to up their boiling points.5. All displays are categorized for Luminous Intensity. The intensity category is marked on each part as a suffix letter to the part
number.
ABSOLUTE MAXIMUM RATINGS
RatingMAN5350MAN5360
MAN5450MAN5460
MAN5750MAN5760
MAN5950MAN5960
Power dissipation at 25°C ambient 600 mW 570 mW 480 mW 600 mW
Derate linearly from 50°C -10.3 mW/°C -12 mW/°C -6.9 mW/°C -8.6 mW/°C
Storage and operating temperature -40°C to +85°C -40°C to +85°C -40°C to +85°C -40°C to +85°C
Continuous forward currentTotalPer segmentDecimal point
200 mA25 mA25 mA
240 mA30 mA30 mA
240 mA30 mA30 mA
240 mA30 mA30 mA
Reverse voltagePer segmentDecimal point
6.0 V6.0 V
6.0 V6.0 V
6.0 V6.0 V
6.0 V6.0 V
Soldering time at 260°C (See Notes 3 and 4) 5 sec. 5 sec. 5 sec. 5 sec.
RECOMMENDED OPTICAL FILTERS
For optimum ON and OFF contrast, one of the following filters or equivalents should be used over the display:
Device Type Filter Device Type Filter
MAN5350MAN5360
Panelgraphic Yellow 25 or Amber 23Homalite 100-1720 or 100-1726Panelgraphic Grey 10Homalite 100-1266 Grey
MAN5450MAN5460
Panelgraphic Green 48 Homalite 100-1440 GreenPanelgraphic Grey 10Homalite 100-1266 Grey
MAN5750MAN5760
Panelgraphic Red 60Homalite 100-1605
MAN5950MAN5960
Panelgraphic Scarlet 65Homalite 100-1670
7/21/03
Page 5 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
ELECTRICAL CONNECTIONS
Pin No.A
MAN5X50B
MAN5X60
1 Cathode E Anode E
2 Cathode D Anode D
3 Com. Anode Com. Cathode
4 Cathode C Anode C
5 Cathode D.P. Anode D.P.
6 Cathode B Anode B
7 Cathode A Anode A
8 Com. Anode Com. Cathode
9 Cathode F Anode F
10 Cathode G Anode G
INTERNAL CONNECTIONS
3
MAN5X50 MAN5X60
E1
D2
C4
B6
A7
F9
G10
DP5
8 3
E1
D2
C4
B6
A7
F9
G10
DP5
8
7/21/03
Page 6 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
TYPICAL CHARACTERISTIC CURVES — MAN5350/MAN5360
5060708090
100
40302010
0
1.0
2.0
3.0
4.0
2.0
1.5
1
00 5 10 15 20 25 30 1.0
DC Forward Current – IF (mA)
Fig. 1A. Relative Luminous Intensityvs. DC Forward Current
VF (Volts)
Fig. 1B. Forward Current vs. Forward Voltage
Duty Cycle – %IF Per Seg 10 mA Average
Fig. 1E. Relative Luminous Intensity vs. Duty Cycle
Rel
ativ
e Lu
min
ous
Inte
nsity
I F -
mA
Rel
ativ
e In
tens
ity
2.0 3.00 4.0
10 20 40 DC
120
80
90
100
110
70
Ambient Temperature – °C
Fig. 1C. Relative Luminous Intensity vs. Temperature(See Note 2)
Rel
ativ
e B
right
ness
- %
-50 -25 0 25 50 70
1000
20
200
1008050
500800
10
Duty Cycle – %
Fig. 1D. Max Peak Current vs. Duty Cycle
Pea
k I F
- m
A
1 2 3 5 8 10 20 30 50 80 100
FREQUENCY = 200pps
NORMALIZED at IF = 10 mA
7/21/03
Page 7 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
TYPICAL CHARACTERISTIC CURVES — MAN5450/MAN5460
5060708090
100
40302010
0
1.0
2.0
3.0
4.0
600800
1000
200
400
406080
100
20
10
00 5 10 15 20 25 30 2.0
DC Forward Current – IF (mA)
Fig. 2A. Relative Luminous Intensityvs. DC Forward Current
Forward Voltage – VF (Volts)
Fig. 2B. Forward Current vs.Forward Voltage
Pulse Duration – µS
Fig. 2E. Maximum Peak Current vs. Pulse Duration
Rel
ativ
e Lu
min
ous
Inte
nsity
For
war
d C
urre
nt -
I F (
mA
)
Max
imum
Pea
k C
urre
nt -
mA
3.01.0 4.0
10 100 1000 10.000
130
90
100
110
120
70
80
Ambient Temperature – °C
Fig. 2C. Relative Luminous Intensity vs. Temperature(See Note 2)
Rel
ativ
e In
tens
ity –
%
-55 -25 0 25 50 75 100
4.0
1.0
2.0
3.0
0.0
Duty Cycle – %
Fig. 2D. Relative Efficiency vs. Duty Cycle
Rel
ativ
e E
ffici
ency
(IL
at d
rive/
I L a
t 10
mA
DC
)
2.0 5.0 10 20 50 DC
NORMALIZED at IF = 10 mA
NORMALIZED at 25°C
(Dotted LineIndicates Pulsed
Operation See Figs 2D, 2E)
IF (AVG) = 20 mA10 mA5 mA
2.5mA
10 KHz30 KHz
1.0 KHz
300 KHz
100 KHz
7/21/03
Page 8 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
TYPICAL CHARACTERISTIC CURVES — MAN5750/MAN5760
5060708090
100
40302010
0
1.0
2.0
3.0
4.0
2
1
00 5 10 15 20 25 30 5
DC Forward Current – IF (mA)
Fig. 3A. Relative Luminous Intensityvs. DC Forward Current
VF (Volts)
Fig. 3B. Forward Current vs. Forward Voltage
Percent Duty Cycle
Fig. 3E. Relative Luminous Intensity vs. Duty Cycle
Rel
ativ
e Lu
min
ous
Inte
nsity
I F -
mA
Rel
ativ
e In
tens
ity
10 150 20
10 20 40 DC
170
13012011010090807060
140150160
50
Ambient Temperature – °C
Fig. 3C. Relative Luminous Intensity vs. Temperature(See Note 2)
Rel
ativ
e B
right
ness
- %
-50 -25 0 25 50 70
1000
20
200
1008050
500800
10
Duty Cycle – %
Fig. 3D. Max Peak Current vs. Duty Cycle
Pea
k I F
- m
A
1 2 3 5 8 10 20 30 50 80 100
FREQUENCY = 200pps
NORMALIZED at IF = 10 mA
7/21/03
Page 9 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
TYPICAL CHARACTERISTIC CURVES — MAN5950/MAN5960
5060708090
100
40302010
0
1.0
2.0
3.0
4.0
2
1.5
1
00 5 10 15 20 25 30 4
DC Forward Current – IF (mA)
Fig. 4A. Relative Luminous Intensity vs. Forward Current
Forward Voltage – VF (Volts)
Fig. 4B. Forward Current vs. Forward Voltage
Duty Cycle – %IF Per Seg 10 mA Average
Fig. 4E. Relative Luminous Intensity vs. Duty Cycle
Rel
ativ
e Lu
min
ous
Inte
nsity
(IF)
- m
A
Rel
ativ
e In
tens
ity
8 1.20 1.6 2.0 2.4 2.8 3.2 3.6 4.0
10 20 40 DC
100110120130140150160170
60708090
50
Ambient Temperature – °C
Fig. 3C. Relative Luminous Intensity vs. Temperature(See Note 2)
Rel
ativ
e In
tens
ity –
%
-50 -25 0 25 50 70
1000
20
200
1008050
500800
10
Duty Cycle – %
Fig. 4D. Maximum Peak Current vs. Duty Cycle
Pea
k I F
– m
A
1 3 5 10 20 50 100
FREQUENCY = 200pps
NORMALIZED at IF = 10 mA
LIFE SUPPORT POLICY
FAIRCHILD’S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS WRITTEN APPROVAL OF THE PRESIDENT OF FAIRCHILD SEMICONDUCTOR CORPORATION. As used herein:
1. Life support devices or systems are devices or systemswhich, (a) are intended for surgical implant into the body, or(b) support or sustain life, and (c) whose failure to performwhen properly used in accordance with instructions for useprovided in the labeling, can be reasonably expected toresult in a significant injury of the user.
2. A critical component in any component of a life supportdevice or system whose failure to perform can bereasonably expected to cause the failure of the life supportdevice or system, or to affect its safety or effectiveness.
DISCLAIMER
FAIRCHILD SEMICONDUCTOR RESERVES THE RIGHT TO MAKE CHANGES WITHOUT FURTHER NOTICE TO ANY PRODUCTS HEREIN TO IMPROVE RELIABILITY, FUNCTION OR DESIGN. FAIRCHILD DOES NOT ASSUME ANY LIABILITY ARISING OUT OF THE APPLICATION OR USE OF ANY PRODUCT OR CIRCUIT DESCRIBED HEREIN; NEITHER DOES IT CONVEY ANY LICENSE UNDER ITS PATENT RIGHTS, NOR THE RIGHTS OF OTHERS.
7/21/03
Page 10 of 10
© 2003 Fairchild Semiconductor Corporation
0.510-INCH (13MM)SEVEN SEGMENT DISPLAYS
YELLOW MAN5350/5360 RED MAN5750/5760GREEN MAN5450/5460 HER MAN5950/5960
top related