TUGAS AKHIR PENAMPIL KECEPATAN MOTOR DC DENGAN LED...
Transcript of TUGAS AKHIR PENAMPIL KECEPATAN MOTOR DC DENGAN LED...
TUGAS AKHIR
PENAMPIL KECEPATAN MOTOR DC DENGAN LED
BERBENTUK JARI BERBASIS MIKROKONTROLER
AT89C51
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik Elektro Fakultas Sains dan Teknologi
Universitas Sanata Dharma
Disusun oleh:
ALDIUS GINTING
NIM: 065114039
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2008
ii
FINAL PROJECT
THE DISPLAY OF DC MOTOR SPEED WITH LED CIRCUITS
LIKE A FINGER BASED ON MICROCONTROLLER AT89C51
In partial fulfillment of the requirements
for the degree of SARJANA TEKNIK Science and Technology Faculty Electrical
Engineering Study Program Sanata Dharma University
BY:
ALDIUS GINTING
NIM: 065114039
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
2008
iii
v
Karya ini
persembahan terindah untuk:
Kedua Orang tuaku terkasih
Keluarga Ginting Suka rumah Galuh
Nd Karoku yang Setia
Semua yang mencintaiku
vi
Moto
“Bila engkau ingin mengenal Allah, maka berusahalah mengenal
dirimu lebih dahulu”
(Evagrius Pontikus)
“Setiap manusia wajib mendengarkan apa yang dibisikkan kata
hatinya, setiap orang dapat diajarkan berbuat baik, segala
kelakuan jahat, semata-mata berdasarkan cara berpikir yang
salah”
(Socrates)
“Kita dapat mencapai banyak dengan ilmu pengetahuan, tetapi
hanya cinta terhadap pekerjaan yang membawa kita ke
kesempurnaan”
(Rabindranath Tagore)
viii
PENAMPIL KECEPATAN MOTOR DC DENGAN LED BERBENTUK JARI BERBASIS MIKROKONTROLER AT89C51
ALDIUS GINTING 065114039
INTISARI
Penelitian ini mengkaji penampil kecepatan motor DC dengan LED berbentuk jari berbasis mikrokontroler AT89C51. Hal ini bertolak dari asumsi bahwa mikrokontroler AT89C51 dapat digunakan untuk menggerakkan dot matrik LED. Dot matrik LED merupakan salah satu tampilan yang dapat digunakan selain tampilan lainnya, seperti seven segment dan LCD.
Dalam penelitian ini, pengukuran kecepatan motor DC dirancang dengan menggunakan dot matrik LED sebagai tampilan. Dot matrik LED tersebut disusun menyerupai jari, LED pada dot matrik dipasang secara paralel sebanyak 5 buah LED. Teori yang digunakan untuk merancang penampil kecepatan motor DC tersebut berupa teori mikrokontroler AT89C51, perhitungan piringan encoder, perhitungan nilai tegangan penggerak LED, dan perhitungan nilai rotation per minute (RPM).
Hasil penelitian dapat disimpulkan bahwa kecepatan motor DC dapat ditampilkan pada LED melalui mikrokontroler AT89C51. Tampilan yang ditunjukkan pada LED tersebut merupakan kecepatan dari 100 Rpm sampai dengan 2300 Rpm, dengan kenaikan per 100 Rpm. Untuk titik kritis masih ada error. Kata kunci: LED berbentuk jari, mikrokontroler AT89C51, piringan, RPM
ix
THE DISPLAY OF DC MOTOR SPEED WITH LED CIRCUITS LIKE A FINGER BASED ON MICROCONTROLLER AT89C51
ALDIUS GINTING
065114039
ABSTRACT
This research studied the display of dc motor speed with LED circuits like a finger based on microcontroller AT89C51. It is starting from assumption that a microcontroller AT89C51 can be used to move LED dot matrix. The LED dot matrix is one of the display can be used beside other displays, like a seven segment and LCD.
In this research, the measurement of a DC motor speed is designed by using LED dot matrix as the display. The LED dot matrix is compiled like a finger, LED in the dot matrix attached parallelly of 5 LED. The theories used for designing the display are microcontroller AT89C51 theory, calculation of encoder saucer, calculation of LED driver voltages value, and calculation of rotation per minute (RPM).
The result of research can be concluded that the DC motor speed can be presented on LED through the microcontroller AT89C51. The display presented on LED is the speed from 100 Rpm up to 2300 Rpm, with 100 Rpm increase. For the critis point still exist some error. Keyword: LED like a finger, microcontroller AT89C5, encoder, RPM
x
KATA PENGANTAR
Puji dan syukur penulis dipanjatkan kepada Tuhan Yesus atas berkat dan
karunianya sehingga penulis dapat menyelesaikan Tugas Akhir ini dengan baik.
Penyelesaian Tugas Akhir ini merupakan salah satu syarat yang harus dipenuhi dalam
menyelesaikan studi di Jurusan Teknik Elektro, Fakultas Sains dan Teknologi,
Universitas Sanata Dharma Yogyakarta.
Patut diakui bahwa penyelesaian Tugas Akhir ini merupakan buah usaha keras,
dimana penulis telah mencurahkan segala kemampuan, gagasan, dan segala inspirasi
yang ada, tentunya pula berkat bantuan dan dampingan serta bimbingan dari berbagai
pihak. Namun, penulis menyadari bahwa penyusunan Tugas Akhir ini masih jauh dari
sempurna dan tidak dapat diselesaikan tanpa dukungan dan bantuan dari berbagai pihak.
Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terima kasih kepada:
1. Bapak A. Bayu Primawan, S.T.,M.Eng selaku Ketua Jurusan Teknik Elektro,
Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta. Terima
kasih atas dukungannya selama ini.
2. Ibu Ir. Th. Prima Ari Setiyani, M.T. selaku pembimbing I, terima kasih atas segala
ide, saran, dan inspirasi yang tak ternilai harganya, yang penulis dapatkan selama
menyelesaikan Tugas Akhir ini.
3. Bapak Ir. Tjendro selaku pembimbing II, terima kasih atas segala saran dan
bantuannya yang begitu besar telah membantu penulis untuk menyelesaikan Tugas
Akhir ini.
xi
4. Bapak Ir. Iswanjono, M.T. dan Bapak Ir. Linggo M. Suwarno, M.T. yang telah
banyak memberikan ide dan gambaran kepada penulis.
5. Para dosen Teknik Elektro yang telah banyak memberi bekal pengetahuan selama
menempuh studi di Universitas Sanata Dharma Yogyakarta.
6. Para karyawan Laboratorium Teknik Elektro, terima kasih atas segala fasilitas Lab-
nya sehingga pembuatan alat untuk Tugas Akhir ini dapat diselesaikan.
7. Bapak Aris Sukarjito, S.IP. selaku Kepala Sekretariat Jurusan Teknik Elektro yang
telah memberikan pelayanan dan perhatian yang sangat baik selama penulis
menempuh studi di Uninersitas Sanata Dharma.
8. Kedua orang tuaku, Bapa Bena Ginting (Alm.) dan Nande Marta br Tarigan yang
telah membimbingku dan terima kasih pula atas semua cinta dan doanya.
9. Saudara-saudaraku yang tidak henti-hentinya memberikan dukungan moral selama
aku menyelesaikan studi di Universitas Sanata Dharma.
10. Keluarga besar Ginting Suka Rumah Galuh yang selalu memberikan saran-saran
kepadaku untuk menyelesaikan studi.
11. Mama Sofian Sitepu dan Mami Sri Ningsih di Giwangan yang telah banyak
membantuku, terima kasih atas perhatian, saran, dan doa yang telah diberikan
kepadaku.
12. Nd Karoku, Rosalana Viva Sitepu yang selalu setia mendampingiku dalam
menyelesaikan Tugas Akhir ini, serta terima kasih atas doa dan cinta yang selalu
diberikan kepadaku.
13. Anak dan keponakanku Vedrik, Steven, Deril, Erik, Efran, Eli, Senni, Eka, Tika,
Sella, Ester, dan Fili atas gurauan-gurauan yang selalu diberikan kepadaku.
xii
14. Mbah, Aan, Tedi, Loren, dan Om Bung yang senantiasa bercerita tentang
Yogjakarta.
15. Sawa Geng, Manto (Tabib), Zeno (Sawa Nelen), Sarman (Dewa Mabuk), Riston,
dan Antonius atas segala kenangan yang tidak pernah berakhir atas persahabatan
kita, serta Bang Robert di Gambir yang selalu mena nyakan perkembangan Tugas
Akhirku.
16. Teman-temanku Prana ‘Merana’ “Kapan neh punya pacar?” Terima kasih ya atas
bantuannya; Sularso ‘Opo Man’ terima kasih atas alat-alatnya, “Kapan nyusul?”;
Stenly ‘Beta-Beta’ “Kalau mau bolos ajak-ajak ok”; Toni ‘Parto’ terima kasih atas
saran softwarenya; anak-anak kost Dabag; anak-anak Gambir, kalian adalah yang
terbaik.
17. Semua pihak (tanpa terkecuali) yang telah membantu dan mendukung kelancaran
penulisan skripsi ini. Tiada kata yang sanggup menggantikan selain rasa terima
kasih yang mendalam.
Sejak awal, penulis menyadari sepenuhnya bahwa skripsi ini masih jauh dari
sempurna. Oleh karena itu, segala kritik dan saran yang membangun sangat penulis
harapkan dari pembaca demi peningkatan dan perbaikan penelitian ini. Akhirnya, penulis
pun berharap kiranya skripsi ini dapat bermanfaat dan memberikan nuansa baru bagi
perkembangan di bidang Mikrokontroler.
Penulis
xiii
DAFTAR ISI
Halaman
HALAMAN JUDUL…………………………………………………………………..… i
FINAL PROJECT ………………………………………………………………………. ii
HALAMAN PERSETUJUAN PEMBIMBING ……………………………………..…. iii
HALAMAN PENGESAHAN ………………………………………………………….. iv
HALAMAN PERSEMBAHAN ………………………………………………………… v
MOTO ……………………………………………………………………………………vi
PERNYATAAN KEASLIAN KARYA …………………………………………….…. vii
INTISARI ……………………………………………………………………………... viii
ABSTRACT ………........………………………………………………………………... ix
KATA PENGANTAR ………………………………………………………………….. x
DAFTAR ISI …..………...………………………………………………………...…. xiii
DAFTAR GAMBAR ..….…………………………………………………………….. xvii
DAFTAR TABEL …..…………………………………………………………..……... xix
BAB I PENDAHULUAN ……………………………………………………………….. 1
1.1 Latar Belakang ………………………………………………………………… 1
1.2 Perumusan Masalah ……………………………………………………………1
1.3 Pembatasan Masalah …………………………………………………………... 2
1.4 Tujuan Penelitian ……………………………………………………………… 3
1.5 Manfaat Penelitian ……………………………………………………………. 3
1.6 Metode Penelitian … …..………………………………………………………. 3
xiv
BAB II DASAR TEORI ………………………………………………………………… 4
2.1 Prinsip Dasar ……………………………………………………………........... 4
2.2 Sensor Optocoupler …………………………………………………………… 4
2.3 Encoder ………………………………………………………………………... 7
2.4 Mikrokontroler AT89C51 ………………………………………………........... 7
2.4.1 Memori ……………………………………………………………........... 8
2.4.1.1 Memor i Program ………………………………………………… 8
2.4.1.2 Memor i Data ……………………………………………….......... 9
2.4.2 Mode Pengalamatan ……………………………………………………... 9
2.4.2.1 Pengalamatan Langsung ………………………………………… 9
2.4.2.2 Pengalamatan Tidak Langsung ………………………………… 10
2.4.2.3 Pengalamatan Data ……………………………………………... 10
2.4.2.4 Pengalamatan Kode ……………………………………………..10
2.4.2.5 Pengalamatan Bit ………………………………………………. 11
2.4.3 Port Paralel ……………………………………………………………... 11
2.4.4 Instruksi-Instruksi ……………………………………………………… 14
2.4.4.1 Instruksi-Instruksi Aritmatika ………………………………….. 14
2.4.4.2 Instruksi-Instruksi Logika ……………………………………… 14
2.4.4.3 Instruksi-Instruksi Transfer Data ………………………………. 14
2.4.4.4 Instruksi-Instruksi Boolean …………………………………….. 14
2.4.5 Pewaktu CPU …………………………………………………………... 15
2.4.5.1 Timer dan Counter dalam Mikrokontroler AT89C51 ………….. 15
2.4.5.2 ON-Chip Oscilator ……………………………………………... 17
xv
2.4.6 Siklus-Siklus Mesin ……………………………………………………. 17
2.5 Motor DC …………………………………………………………………….. 17
2.6 Pemicu Schmitt ………………………………………………………………. 29
2.7 Transistor sebagai Saklar …………………………………………………….. 20
2.8 LED (Light Emitting Diode) …………………………………………………. 22
BAB III PERANCANGAN PERANGKAT KERAS ………………………………….. 24
3.1 Rangkaian Sensor …………………………………………………………….. 25
3.2 Osilator Kris tal ……………………………………………………………… .. 27
3.3 Rancangan Encoder ………………………………………………………….. 28
3.4 Motor DC …………………………………………………………………….. 29
3.5 Penampil LED ………………………………………………………………... 29
3.6 Penggerak LED ………………………………………………………………. 31
3.7 Tombol Start/Reset dan Stop ………………………………………………… 34
3.8 Skala …………………………………………………………………………. 35
3.9 Perancangan Perangkat Lunak ……………………………………………….. 35
3.9.1 Program Utama ………………………………………………………… 35
3.9.2 Diagram Alir Perhitungan Rpm ………………………………………... 38
3.9.3 Proses Perkalian ………………………………………………………... 40
3.9.4 Pencuplikan Data Selama Satu Detik ………………………………….. 43
3.9.5 Proses Tampilan ………………………………………………………... 44
BAB IV HASIL PENGAMATAN DAN PEMBAHASAN ………………………........ 45
4.1 Hasil Akhir Perancangan …………………………………………………….. 45
4.2 Contoh Tampilan LED ………………………………………………………. 48
xvi
4.3 Pembahasan Rangkaian Elektronik ………………………………………...... 52
4.3.1 Rangkaian Sensor Optis ……………………………………………...... 52
4.3.2 Rangkaian Transistor sebagai Saklar ………………………………….. 54
4.4 Analisis Software……………………………………………………………... 55
4.4.1 Pencuplikan Data Satu Detik …………………….…………………….. 55
4.4.2 Perhitungan Rpm …………………………………………………….... 56
BAB V PENUTUP…………………… ……………………………………………….. 59
5.1 Kesimpulan …………………………………………………………………... 59
5.2 Saran ………………………………………………………………………..... 59
DAFTAR PUSTAKA …………… ...…………………………………………………...60
LAMPIRAN…………………………………………………………………………… . 61
xvii
DAFTAR GAMBAR
Halaman
Gambar 2.1 Simbol Optocoupler ………………………………………………………... 5
Gambar 2.2 Rangkaian Optocoupler ……………………………...…………………….. 5
Gambar 2.3 Piringan …………………………………………………………………….. 7
Gambar 2.4 Motor DC …………………………………………………………………. 19
Gambar 2.5 Pemicu Schmitt …………………………………………………………… 19
Gambar 2.6 Bentuk Gelombang Masukan dan Keluaran Pemicu Schmitt …………….. 20
Gambar 2.7 Transistor sebagai Saklar ……………………………………………......... 20
Gambar 2.8 Grafik Output dari Transistor ……………………………………………... 21
Gambar 2.9 Penggerak LED ………………………………………………………........ 23
Gambar 3.1 Diagram Blok Alat ………………………………………………………... 24
Gambar 3.2 Rangkaian Sensor …………………………………………………………. 26
Gambar 3.3 Rangkaian Osilator ………………………………………………………... 28
Gambar 3.4 Rancangan Encoder ……………………………...……………………….. 28
Gambar 3.5 Motor DC …………………………………………………………………. 29
Gambar 3.6 Matrik LED ……………………………………………………………….. 30
Gambar 3.7 Bentuk Matrik LED yang Disusun ……………………………………….. 30
Gambar 3.8 Rangkaian Penggerak LED ……………………………………………...... 32
Gambar 3.9 Rangkaian Lengkap Penggerak LED ……………………………………... 34
Gambar 3.10 Rangkaian Tombol Start/Reset dan Stop …………………………… ....... 34
Gambar 3.11 Diagram Alir Program Utama …………………………………………… 37
xviii
Gambar 3.12 Diagram Alir Proses Perhitungan RPM …………………………………. 49
Gambar 3.13 Diagram Alir Proses Perkalian …………………………………………... 42
Gambar 3.14 Diagram Alir Timer Satu Detik …………………………………………. 43
Gambar 3.15 Diagram Alir Penampil LED ……………………………………………. 44
Gambar 4.1 Rangkaian Catu Daya …………………………………………………...... 46
Gambar 4.2 Rangkaian Mikrokontroler ……………………………………………...... 46
Gambar 4.3 Motor, Encoder, dan Tampilan LED …...………………………………… 47
Gambar 4.4 Tombol Start/Reset dan Stop……………………………………………... 47
Gambar 4.5 Tampilan Pada Saat 600 Rpm…………………………………………...... 48
Gambar 4.6 Tampilan Pada Saat 2000 Rpm…………………………………………… 49
xix
DAFTAR TABEL
Halaman
Tabel 2.1 Fungsi-Fungsi Khusus Port 1 …………………………………………… .. … 12
Tabel 2.2 Fungsi-Fungsi Khusus Port 3 ……………………………………………. …. 13
Tabel 2.3 Register TMOD …………………………………………………………. …. 15
Tabel 2.4 Register TCON ……………………………………………………………… 16
Tabel 3.1 Kombinasi Port dalam Penyalaan LED …………………………………. … 31
Tabel 4.1 Perbandingan dengan Tachometer…………………………………………… 49
Tabel 4.2 Putaran Motor dengan Posisi LED…………………………………………... 51
Tabel 4.2 Hasil Pengukuran Terhadap Fototransistor……………………………….. …52
Tabel 4.3 Hasil Pengukuran Terhadap Transistor sebagai Saklar………………… ........ 54
xx
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Motor DC merupakan salah satu tipe dari berbagai tipe motor yang ada.
Motor DC tersebut seringkali digunakan dalam kegiatan sehari-hari maupun
dalam industri. Pada umumnya, kecepatan motor DC diukur dengan suatu
instrumen elektronis dengan penampil analog yang biasanya menggunakan jarum
sebagai penunjuk kecepatan putaran atau menggunakan penampil digital.
Penelitian ini akan merancang dan membuat suatu penampil alternatif untuk
mengukur kecepatan motor DC, yaitu dengan tampilan LED. Proses pengukuran
kecepatan motor DC dilakukan dengan rangkaian elektronis, kemudian
pengolahan data dan proses penampil dilakukan oleh mikrokontroler.
Mikrokontroler yang digunakan adalah ATMEL AT89C51 yang merupakan
bagian dari MCS-51.
1.2 Perumusan Masalah
Penelitian ini akan merancang suatu mekanik pengukuran kecepatan
motor DC dengan LED sebagai tampilan. Putaran motor DC akan dibaca oleh
suatu sensor optocoupler. Hasil pembacaan dari sensor optocoupler tersebut akan
diolah oleh mikrokontroler dan akan ditampilkan melalui penampil LED.
2
Oleh karena itu, penulis merumuskan permasalahan yang diobservasi
adalah sbb:
1. Bagaimana merancang alat agar menghasilkan data input yang dapat dibaca
oleh sensor optocoupler. Hasil pembacaan tersebut akan dikirim lewat
rangkaian pemicu Schmitt, kemudian diolah mikrokontroler AT89C51.
2. Bagaimana cara mengatur pengaksesan data input maupun data output secara
program atau software.
3. Bagaimana instalasi port agar data digital dapat dibaca dan diterima, serta
diolah oleh mikrokontroler AT89C51.
1.3 Pembatasan Masalah
Dalam melakukan perancangan tugas akhir ini, penulis menggunakan
mikrokontroler AT89C51 untuk mengolah banyaknya putaran motor dalam waktu
tertentu sehingga menghasilkan suatu nilai kecepatan. Perancangan kecepatan
motor tersebut diukur dengan satuan rotation per minute (rpm) dan menggunakan
skala 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400,
1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300.
Sebagai piranti masukan pada perancangan, penulis menggunakan sensor
optocoupler dan 2 tombol (start/ reset, stop). Sensor optocoupler berfungsi
sebagai pendeteksi pulsa putaran motor yang berasal dari pantulan sinar infra
merah terhadap motor yang berputar. Cara kerja dari kedua tombol tersebut,
antara lain: tombol start untuk memulai pengukuran; tombol reset untuk
3
mengembalikan ke keadaan semula; dan tombol stop untuk menghentikan proses
pengukuran dan menampilkan data pengukuran terakhir.
Piranti keluaran berupa LED (Light Emitting Diode) akan menampilkan
kecepatan putaran motor.
1.4 Tujuan Penelitian
Tujuan yang ingin dicapai dalam penelitian ini adalah merancang dan
mengaplikasikan mikrokontroler AT89C51 sebagai alat ukur untuk pengukuran
putaran motor dan menampilkan hasilnya dengan deretan LED yang membentuk
jari.
1.5 Manfaat Penelitian
Penelitian ini dapat memberikan suatu alternatif alat untuk mengukur
kecepatan motor, serta memperkaya pengetahuan kita tentang penggunaan
mikrokontroler sebagai piranti pengolahan.
1.6 Metode Penelitian
Dalam merancang alat ukur ini, diperlukan langkah- langkah sebagai
berikut:
1. Studi literatur tentang masalah yang ada dan mempelajari cara kerja alat.
2. Perancangan dengan percobaan-percobaan yang sesuai dengan teori yang ada
untuk mendapatkan hasil yang sesuai dengan yang telah ditentukan.
4
BAB II
DASAR TEORI
2.1 Prinsip Dasar
Pengukur kecepatan motor DC merupakan suatu peralatan yang terdiri
dari piranti mekanis dan rangkaian elektronis dengan menggunakan
mikrokontroler AT89C51. Mikrokontroler AT89C51 merupakan piranti pengolah
data secara hardware maupun software. Perancangan dan pembuatan peralatan
pengukur kecepatan motor DC ini menggunakan beberapa piranti pendukung,
yaitu optocoupler, pemicu Schmitt, motor DC dan indikator LED. Motor DC akan
diukur kecepatannya dengan sensor optocoupler, yang berfungsi untuk mendeteksi
posisi kode biner. Sinyal output optocoupler akan masuk ke pemicu Schmitt
untuk mempertegas sinyal masukan pada mikrokontroler. Pemicu Schmitt yang
digunakan dalam peralatan ini adalah IC TTL yang dihubungkan ke
mikrokontroler melalui port paralel.
2.2 Sensor Optocoupler
Optocoupler merupakan piranti elektronika yang berfungsi sebagai
sensor cahaya. Optocoupler terdiri dari bagian sumber (source) dan penerima
(reciver). Bagian sumber berupa LED infra merah sedangkan penerimanya berupa
transistor photo atau dioda photo. Optocoupler dirancang sedemikian rupa
sehingga cahaya yang dipancarkan dari sumber diterima dengan baik oleh
penerima seperti ditunjukan pada gambar 2.1 dibawah ini.
5
ISO1OPTO ISOLATOR-A
Gambar 2.1 Simbol Optocoupler
Optocoupler digunakan untuk membaca kode gelap dan kode terang
pada piringan menjadi logika ‘0’dan ‘1’. Gambar rangkaian aplikasi optocoupler
untuk membaca kode gelap dan kode terang seperti pada gambar 2.2 berikut.
VCC VCC
Vout
Vout
Optocoupler Optocoupler
Rd
Rc
Rd Rc
(a) (b)
Gambar 2.2 Rangkaian Optocoupler
Ada dua macam rangkaian optocoupler seperti pada gambar 2.2. Pada
gambar 2.2 (a) keluaran optocoupler berlogika ‘1’ jika ada cahaya yang mengenai
transistor photo (membaca kode terang) dan ‘0’ jika tidak (membaca kode gelap).
Sedangkan gambar 2.2 (b) optocoupler berlogika ‘1’ jika tidak ada cahaya yang
mengenai transistor photo (membaca kode gelap) dan logika ‘0’ jika transistor
photo menerima cahaya (membaca kode terang).
Untuk menentukan nilai dari resistansi dioda Rd dan resistansi kolektor
Rc digunakan rumus:
(max)(max)
IfVfVcc
Rd−
= ………………………..2.1
6
IcVceVcc
Rc−
= …………………………………….2.2
Dimana, VeIe
Ic =
Dengan :
Rd = Resistansi Dioda (O)
Rc = Resistansi Kolektor (O)
Vcc = Tegangan (V)
Vce = Tegangan antara kolektor dan emitter (V)
Vf = Tegangan maju Dioda (V)
If = Arus maju Dioda (A)
Ic = Arus Kolektor (A)
2.3 Encoder (Piringan Penyandi)
Piringan penyandi berguna untuk mendeteksi posisi diskret. Dalam
mendeteksi posisi diskret tersebut, perlu digunakan pengkodean posisi. Metode
pendeteksian posisi dilakukan dengan cara membentuk piringan penyandi yang
telah dikodekan dalam kode biner. Resolusi atau tingkat ketelitian pendeteksian
posisi dengan pengkodean dipengaruhi oleh banyaknya bit yang dipakai.
Sandi biner merupakan sandi yang digunakan bagi piranti masukan atau
keluaran untuk mendeteksi setiap perubahan data masukan, pengubah analog ke
digital, serta peralatan-peralatan bantu lainnya.
7
Untuk menghitung jumlah putarannya dapat dihitung dengan persamaan
2.3 dibawah ini:
60×=np
rpm ………………………….……………2.3
Gambar 2.3 Piringan (Encoder)
2.4 Mikrokontroler AT89C51
AT89C51 adalah mikrokontroler keluaran Atmel dengan 4K byte Flash
PEROM (Programmable and Erasable Read Only Memory). AT89C51
merupakan memori dengan teknologi nonvolatile memory, isi memori tersebut
dapat diisi ulang ataupun dihapus berkali kali.
Memori ini biasanya digunakan untuk menyimpan intruksi (perintah)
sehingga memungkinkan mikrokontroler ini untuk bekerja dalam mode single
chip operation (mode operasi keeping tunggal) yang tidak memerlukan exretnal
memory (memori luar) untuk menyimpan source code tersebut (Nalwan, 2003:1).
Mikrokont roler AT89C51 memiliki 128 x 8 bit internal RAM, 32
programmable I/O lines, 2 timer (counter) 16-bit, Full Duplex UART, Watch
Timer, 2 data pointer, ISP dan lain lain tersebut.
8
2.4.1 Memori
AT89C51 mempunyai struktur memori yang terdiri atas RAM Interna l,
memori sebesar 128 byte yang biasanya digunakan untuk menyimpan variable
atau data yang bersifat sementara. Special Function Register (register fungsi
khusus), memori yang berisi register register mempunyai fungsi fungsi khusus
yang disediakan oleh mikrokontroler tersebut, seperti timer serial, dan lain lain.
Flash PEROM, memori yang digunakan untuk menyimpan instruksi instruksi
AT89C51. AT89C51 mempunyai struktur memori yang terpisah antara RAM
Internal dan Flash PEROMnya. RAM Internal dialamati oleh RAM Address
Register (Register Alamat Program) dengan adanya struktur memori yang terpisah
tersebut RAM Internal dan Flash PEROM mempunyai alamat awal yang sama
yaitu alamat 00, namun secara fisiknya kedua memori tersebut tidak saling
berhubungan tersebut (Nalwan, 2003:4-5).
2.4.1.1 Memori Program
Memori program sering juga disebut dengan Flash Memory dengan
kapasitas sebesar 8K-byte yang hanya digunakan untuk membaca saja. Memori ini
dapat diakses pada alamat 0000H-1FFH. Alamat memori program panjangnya
selalu 16-bit, walaupun demikian jumlah memori program yang digunakan bisa
kurang dari 64K-byte (Putra, 2002:5).
9
2.4.1.2 Memori Data
Memori ini terbagi atas dua bagian yaitu: 128 byte internal RAM dan
128 byte special function register (SFR). Alamat memori data internal selalu 8 bit
atau 1 byte, yang konsekuensinya hanya mampu mengalamati hingga 256 byte
saja. Internal RAM dipetakan pada alamat 00H-FFH dan dapat diakses
mernggunakan pengalamatan langsung serta pengalamatan tidak langsung,
sedangkan SFR dipetakan pada alamat 80H-FFH dan hanya dapat diakses dengan
pengalamtan tidak langsung.
2.4.2 Mode Pengalamatan
Dalam pembuatan program pada mikrokontroler terdapat beberapa jenis
pengalamatan data atau operan yaitu:
2.4.2.1 Pengalamatan Langsung
Proses pengalamatan ini terjadi pada sebuh perintah ketika nilai operan
merupakan data yang akan diproses. Hanya data internal saja yang bisa diakses
secara langsung.
Contoh: MOV A,#05H
MOV A,#data
Instruksi ini melakukan operasi memindahkan data pada alamat 05H ke
dalam akumulator (Nalwan, 2003:69).
10
2.4.2.2 Pengalamatan Tidak Langsung
Proses pada pengalamatan ini terjadi pada sebuah perintah ketika salah
satu operan merupakan register yang berisikan alamat dan data yang akan diisi
atau dipindahkan.
Contoh: MOV R0,#50H
loop
MOV @R0,#08H
INC R0
CJNE R0,#58, loop
Interuksi ini melakukan operasi memindahkan data dari alamat memori
yang ditunjuk oleh register R1 ke akumulator(Nalwan, 2003:70).
2.4.2.3 Pengalamatan Data
Proses pengalamatan ini terjadi pada sebuah perintah ketika nilai operan
merupakan alamat dari data yang akan diisi, dipindahkan atau diproses (Nalwan,
2003:70).
Contoh: MOV R0,A
2.4.2.4 Pengalamatan Kode
Pengalamatan kode merupakan pengalamatan ketika operan merupakan
alamat dari instruksi JUMP dan CALL (ACALL, JMP, LJMP, dan LCALL).
Biasanya operan tersebut akan menunjukkan ke suatu alamat yang telah diberi
lebel sebelumnya (Nalwan, 2003:71).
11
2.4.2.5 Pengalamatan Bit
Proses Pengalamatan ketika operan menunjuk kealamat pada RAM
internal yang mempunyai kemampuan pengalamatan secara bit(Nalwan, 2003:72).
2.4.3 Port Paralel
Mikrokontroler AT89C51 mempunyai empat buah port, yaitu port 0,
port 1, port 2, dan port 3 yang terletak pada alamat 80H, 90H, A0H dan BOH.
Namun,jika digunakan eksternal memori ataupun fungsi- fungsi lain seperti
Eksternal Interupt, Serial ataupun Eksternal Timer, Port 0, Port 2 dan port 3 tidak
dapat digunakan sebagai port dengan fungsi umum. untuk itu disediakan port 1
yang dikhususkan untuk port dengan fungsi umum.
Semua port dapat diakses dengan pengalamatan secara bit sehingga dapat
dilakukan perubahan output pada tiap-tiap PIN dan port ini tanpa mempengaruhi
pin-pin lainnya.
Port 0
Port 0 merupakan port keluaran / masukan ( I / O), yang dapat juga
dikonfigurasikan sebagai bus alamat / data bagian rendah (low byte) selama
pengaksesan memori data dan program ekternal. Selain ini port 0 juga menerima
kode-kode yang dikirimkan kepadanya selama pemerosesan pemerograman. Dan
mengeluarkan kode-kode selama proses vertifikasi program yang telah tersimpan
dalam flash (Putra, 2002:74).
12
Port 1
Port 1 merupakan port keluaran / masukan ( I / O ) dwi arah yang
dilengkapi dengan pull up internal, dan dapat menerima alamat bagian rendah
(low byte) selama pemerograman dan vertifikasi flash (Putra, 2002:74).
Tabel 2.1 Fungsi – fungsi khusus Port 1
Pin Port Fungsi Alternatif P1.0 T12 (Timer/Counter 2 ekternal input) P1.1 TO2 (Timer/Counter 2 ekternal Output) P1.2 T2EX (Timer/Counter 2 Capsture/ Reload trigger) P1.3 SSI (Slave port select input) P1.4 SSO (Slave port select output) P1.5 MISO (Master data input, slave data output pin
untuk SPI) P1.6 MISO (Master data input, slave data input pin
untuk SPI) P1.7 SCK ( Master clock input, slave data input pin
untuk SPI)
Port 2
Port 2 merupakan port keluaran / masukan (I / O) dua arah yang
dilengkapi dengan pull up internal, juga dapat memberikan byte alamat bagian
tinggi (high byte) selama pengambilan instruksi dari memori program ekternal
(Putra, 2002:74).
Port 3
Port 3 merupakan port keluaran / masukan dua arah yang dilengkapi
dengan pull up internal, serta dapat menerima sinyal-sinyal kontrol selama
pemerograman dan vertifikasi flash. adapun fungsi khusus port 3 seperti tabel 2.2
13
Table 2.2 Fungsi- fungsi khusus kaki port 3
Kaki Port Fungsi alternative P3.0 RXD (port masukan serial) P3.1 TXD(port keluaran serial) P3.2 INT0 (interupsi ekternal 0) P3.3 INT1(interupsi eksternal 1) P3.4 T0(masukan ekternal pewaktu/pencacah 0) P3.5 T1(masukan ekternal pewaaktu/pencacah 1) P3.6 WR(sinyal baca data memori data ekternal) P3.7 RD(sinyal tanda tulis memori data ekternal)
PSEN
Program Store Enable merupakan sinyal baca untuk memori program ekternal.
ALE
Keluaran ALE (Address Lacth Enable) menghasilkan pulsa-pulsa yang
akan digunakan untuk memancing byte rendah (low byte) alamat semua
mengakses memori ekternal. Kaki ini juga berfungsi sebagai masukan pulsa
program selama pemerograman flash.
RST
Merupakan masukan reset apabila diberi masukan ‘1’ selama dua siklus
mesin pada saat osilator bekerja maka akan mereset mikrokontroler tersebut.
XTAL 1 dan XTAL 2
Mikrokontroler AT89C51 telah memiliki on-chip osilator yang dapat
bekerja dengan menggunakan kristal ekternal yang dihubungkan kekaki XTAL 1
dan XTAL 2.
14
2.4.4 Instruksi Ins truksi
Merupakan perintah yang dapat dimengerti sehingga dapat dilaksanakan
oleh mikroprosesor. Pada mikrokontroler AT89C51 memiliki beberapa instruksi
antara lain adalah:
2.4.4.1 Instruksi-Instruksi Aritmatika
Instruksi- instruksi yang digunakan adalah ADD, ADDC, SUBB, INC,
DEL, MUL, DIV, DA.
2.4.4.2 Instruksi-Instruksi Logika
Instruksi- instruksi logika ini biasanya digunakan untuk melakukan
operasi Boolean seperti; AND, OR, XOR, NOT, ANL, ORL, XRL, CLR, CPL,
RL, RLC, RR, RRC, SWAP.
2.4.4.3 Instruksi-Instruksi Transfer Data
Instruksi ini berfungsi untuk menyalin atau mengambil data yang
tersimpan dal;m memori program dan data. Instruksi- instruksi tersebut meliputi;
MOV, MOVX, MOVC, PUSH, POP, XCHD dan XCH.
2.4.4.4 Instruksi-Instruksi Boolean
Instruksi ini berfungsi untuk manipulasi dari beberapa instruksi yang
telah disebutkan diatas anatar lain; CLR, ANL, ORL, SETB, MOV, JNC, JC,
JNB, JNZ, LCALL, RET, ACALL, CPL, SJM, JZ.
15
2.4.5 Pewaktu CPU
2.4.5.1 Timer dan Counter dalam Mikrokontroler AT89C51
Mikrokontroler AT89C51 dilengkapi dengan dua perangkat timer
counter yaitu timer 1 dan timer 2. Pencacah biner timer / counter AT89C51
merupakan pencacah biner naik yang mencacah dari 0000h sampai FFFFh, saaat
kondisi pencacah berubah dari FFFFh kembali ke 0000h akan timbul sinyal
limpahan (overflow). Registe-register yang terdapat dalam timer / counter
mikrokontroler AT89C51 adalah register TMOD (Timer Mode Register), THx dan
TLx, serta register TCON (Timer Control Register) (Putra, 2002:112).
a. Timer Mode Register
Register TMOD terdiri atas 8 bit dengan konfigurasi seperti yang
ditunjukkan pada tabel 2.3 berikut ini.
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Gate C/T M1 M0 Gate C/T M1 M0
Tabel 2.3 Register TMOD
Gate : Bit pengatur saluran sinyal detak
C/T : 1= Counter
0= Timer
M1 dan M0 : Untuk memilih mode timer
16
b. THx dan TLx (x adalah nomor timer)
Merupakan register yang menunjukkan nilai dari timer dimana masing-
masimg timer mempunyai dua buah register yaitu THx untuk high byte dan TLx
untuk low byte.
c. Timer Control Register
Pada register ini hanya 4 bit saja, yaitu bit 4, bit 5, bit 6, dan bit 7 dari
register TCON yang mempunyai fungsi berhubungan dengan timer seperti yang
ditunjukkan pada tabel 2.4
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT1
Tabel 2.4 Register TCON
TF1 : Timer 1 Overflow Flag yang akan set bila timer overflow
TR1 : 1 = Timer 1 aktif
0 = Timer 1 non aktif
TF0 : Sama dengan TF1 tetapi bit ini untuk timer 0
TR0 : Sama dengan TR1 tetapi bit ini untuk timer 0
17
d. Mode Timer
Mode timer terdiri dari:
a. Mode 0 timer 13 bit.
b. Mode 1 timer 16 bit.
c. Mode 2 timer 8 bit auto reload.
d. Mode 3 Split timer.
2.4.5.2 On-Chip Oscilator
Mikrokontroler AT89C51 meemiliki oscilator onchip, yang dapat
digunakan sebagai sumber detak (clock). Untuk menggunakannya maka
dihubungkan sebuah resonator kristal atau kermaik diantara kaki-kaki XTAL1 dan
XTAL2 pada mikrokontroler dan menghubungkan kapasitor ke ground.
2.4.6 Siklus-Siklus Mesin
Pembangkit Clock internal menentukan rentetan kondisi-kondisi yang
membentuk sebuah siklus mesin mikrokontroler. Siklus mesin tersebut diberi
nomor S1 samapai S6. Masing-masing kondisi panjangnya adalah dua priode
osilator. Satu siklus mesin panjangnya paling lama dikerjakan dalam 12 priode
osilator, apabila frekuensi kristalnya adalah sebesar 12 MHz (Putra, 2002:22).
2.5 Motor DC
Motor adalah suatu mesin listrik yang menghasilkan gerak mekanis
dengan prinsip elektromagnetis. motor dapat dibagi menjadi dua yaitu: motor arus
18
searah (DC) dan motor arus bolak-balik (AC). motor arus searah membutuhkan
tegangan searah untuk bekerja. prinsip kerja motor DC dapat dijelaskan dengan
Hukum Lorenz.
θsinBIlF = …………….………………………….2.4
Dengan B adalah medan magnet, Il adalah arus, F adalah arah gaya, ?
adalah sudut arah medan magnet terhadap arus ( Young & Freedman, 2000: 167).
Motor DC merupakan salah satu jenis dari motor yang mempunyai
prinsip kerja berdasarkan dua hal berikut:
1. Jika sebuah penghantar bergerak memotong medan magnet, maka pada
penghantar Rb akan timbul tegangan induksi.
2. Jika sebuah penghantar yang mengalirkan arus listrik berada dalam medan
magnet, maka penghantar tersebut akan mengalami sebuah gaya yang arahnya
dapat ditentukan dengan menggunakan aturan tangan kanan. Motor DC
bekerja pada hukum yang kedua, yang kecepatan putarannya dapat ditentukan
dengan rumus berikut:
ϕπ kIaRaV
N−
×=260
………………………………….2.5
N= kecepatan putaran motor (rpm)
V= teganagan terminal (V)
Ia= arus jangkar (A)
Ra= hambatan jangkar (ohm)
ϕ = fluks magnet (Wb)
k= konstanta motor
19
Gambar 2.4 Motor DC
2.6 Pemicu Schmitt
Pemicu Schmitt merupakan ragkaian yang digunakan untuk mendeteksi
suatu tegangan yang telah melintasi suatu rangkaian tertentu. Rangkaian pada
pemicu Schmitt berupa pembandingan tegangan. Pembanding ini digunakan
sebagai pembentuk pulsa.
Bentuk gelombang pada pemicu schmitt mempunyai waktu naik turun
yang sangat lamban. Bentuk gelombang seperti ini akan dapat menyebabkan
operasi dan kinerja rangkaian yang tidak dapat diandalkan apabila langsung ke
rangkaian perhitungan atau rangkaian lainnya. Untuk itu perlu ditambah rangkaian
pengkondisi sinyal yang berupa pemicu Schmitt.
Gambar 2.5 Pemicu Schmitt
20
Gambar 2.6 Bentuk Gelombang Masukan dan Keluaran Pemicu Schmitt
2.7 Transistor sebagai Saklar
Transistor merupakan suatu piranti elektronik yang memiliki beberapa
fungsi, antara lain sebagai saklar dan penguat arus (buffer). Transistor mempunyai
tiga daerah kerja yaitu : daerah aktif, daerah cut-off dan daerah saturasi, seperti
gambar 2.7.
VCC
RB
21
RC
2
1
Q
32
1
Gambar 2.7 Transistor Sebagai Saklar
21
Pada daerah cut-off basis transistor tidak diberi tegangan bias atau tidak
ada arus IB yang mengalir. Pada kondisi ini transistor dibias balik, sehingga :
Ib = 0
Vce(cut-off) = Vcc
Pada daerah saturasi, tegangan kolektor emitter VCE sama dengan
tegangan saturasi VCE(sat), hal ini menyebabkan arus yang mengalir lewat
kolektor adalah maksimum yaitu: (Blocher, 2003:143)
RcVcc
Ic = …………………………………...……….2.6
IbVbeVb
Rb−
= ………………………………………2.7
Gambar 2.8 Grafik Output dari Transistor
22
2.8 LED (Light Emitting Diode)
LED adalah dioda penghasil cahaya, dimana energi yang dikeluarkannya
berupa energi pemancar cahaya. Dioda biasa dibuat dari bahan Silikon yaitu
bahan yang menghalangi pengeluaran cahaya. Tetapi LED berbeda yaitu
menggunakan bahan dengan unsur Gallium, Arsen dan Fospat yang dapat
menghasilkan atau memancarkan cahaya merah, hijau, kuning dan jingga.
Dalam banyak aplikasi elektronik LED merupakan dioda yang jika
diberi tegangan bias maju akan mengeluarkan cahaya. Jika diberi bias balik maka
piranti ini akan berfungsi sebagai sebauh dioda biasa, yakni sebagaimana saklar
dalam kondisi off (terbuka). LED memiliki tegangan maju (forward voltage)
minimum yang biasnya disebut VLED agar dapat bekerja. Tegangan ini bervariasi
untuk masing-masing tipe LED. Variasi VLED berkisar antara 1,7 Volt sampai
dengan 4,2 Volt. Namun kebanyakan LED mempunyai VLED sekitar 2,2 Volt.
Matrik LED adalah kumpulan beberapa LED dalam jumlah tertentu yang
disusun secara teratur dalam baris dan kolom. Berdasarkan jumlah baris dan
kolomnya, terdapat cukup banyak tipe matrik LED yakni dengan ukuran: 4 x 4, 8
x 8, 16 x 16. Berdasarkan koneksi anoda dan katoda pada kolom atau baris, matrik
LED dibedakan atas dua bagian yaitu; anoda kolom dan katoda kolom. Dalam
perancangan ini digunakan penampil LED yang dirancang agar bekerja seperti
matrik LED katoda kolom. (Cabral, 2005:16)
Hal yang perlu diperhatikan dalam perancangan sebuah penampil yang
menggunakan sistem kerja matrik LED adalah bagaimana membentuk suatu
karakter untuk menyalakan satu buah LED yang terdapat pada baris dan kolom
23
tertentu. Pada umumnya untuk membuat semua LED pada kolom pertama
menyala, maka pin baris yakni pin pertama diberi logika rendah atau 0, dan semua
pin kolom diberi logika tinggi atau 1, sedangkan pin baris yang lain diberi logika
tinggi.
VCC
T1
32
1
D0
250 Ohm
100 Ohm
D4D2 D3D1
250 Ohm
Dari P2
Dari P1
Gambar 2.9 Penggerak LED
Dengan asumsi bahwa tegangan antara kolektor – emitor pada transistor
saklar adalah 0 saat transistor ON (dalam keadaan tertutup). Besarnya hambatan
kolektor dan basis adalah :
VRC = VCC – VCE –VLED…………………………………………2.8
24
BAB III
PERANCANGAN PERANGKAT KERAS
Alat Pengukur kecepatan putaran motor berbasis mikrokontroler
AT89C51 ini merupakan suatu alat ukur yang dapat menghitung banyaknya
putaran motor dalam satuan waktu, yaitu rotation per minute (rpm). Secara
umum, prinsip kerja dari pengukur kecepatan motor DC ini adalah mendeteksi
celah-celah piringan penyandi yang dipasang pada mekanik motor, yang akan
dikodekan oleh sensor optocoupler. Selanjutnya, data akan dikirim dari
optocoupler ke mikrokontroler untuk diolah menjadi kode-kode biner yang
kemudian data tersebut akan ditampilkan ke LED yang tersusun seperti
membentuk jari. Pada gambar dibawah ini adalah gambaran umum dari sistem
kerja dari alat yang akan dirancang. Masing-masing bagian memiliki fungsi
tersendiri seperti yang dijelaskan setelah gambar 3.1 berikut ini:
Gambar 3.1. Diagram blok alat
MOTOR
Mikrokontroler AT89C51
Sensor
Tombol start Tombol stop Tombol reset
LED
25
3.1 Rangkaian Sensor
Sensor yang digunakan pada perancangan yaitu optocoupler yang
berfungsi sebagai penerima cahaya dan LED (light emitting diode) inframerah
sebagai sumber cahaya. LED tersebut bekerja hampir sama seperti LED biasa
sebagai penghasil cahaya.
Ranngkaian sensor menggunakan rangkaian gambar 2.2 untuk
menentukan hambatan pembatas inframerah (Rd) seperti gambar 2.2 perlu
diketahui arus maju dioda maksimal yaitu sebesar IF(max) = 60 mA dengan
tegangan maju adalah 1,7 V (Data Sheet Optocoupler H21A3). Dengan
menggunakan persamaan 2.1 akan didapat Rd minimal sehingga:
mAVV
Rd60
7,15 −=
Rd = 55 Ohm
Pada penelitian ini resistor RD yang dipakai adalah sebesar 68 Ω .
Cahaya inframerah yang masuk ke optocoupler akan dianggap sebagai
arus basis. Keadaan tersebut mengakibatakan resistansi emitor-kolektor akan
menjadi kecil sekali mendekati nol, sehingga arus Ic akan mengalir kekaki
kolektor. Hal ini menyebabkan tegangan pada kaki kolektor- emitor mendekati nol
sehingga keluaran Vout berubah dari tinggi menjadi rendah. Apabila tidak ada
cahaya inframerah yang masuk ke sensor optocoupler, arus basis tidak ada
sehingga resistansi emitor-kolektor menjadi besar dan tidak ada arus yang
26
melewati kolektor. Hal ini mengakibatkan tegangan keluaran Vout berubah dari
rendah menjadi tinggi.
Dalam keadaan saturasi tegangan optocoupler Vce maksimal adalah 0,4
volt dengan arus Ic = 1,8 mA (Data Sheet Optocoupler). Dengan menggunakan
persamaan diatas maka didapat Rc sehingga:
mAV
Rc5,0
)4,05(min
−=
ΚΩ= 2,9minRc
Jadi Rc yang digunakan adalah 10 KO
Gambar rancangan sensor selengkapnya dapat dilihat pada gambar 3.2
5 V
Vout
68 Ohm
10 KOhm
optocoupler
Gambar 3.2 Rangkaian sensor
Pada saat piringan penyandi sedang berputar, rangkaian sensor akan
mendeteksi celah gelap dan terang yang terdapat pada piringan penyandi. Saat
celah gelap terdeteksi oleh sensor LED inframerah, phototransistor akan OFF.
Tegangan antara kolektor dengan emiter akan berada pada kondisi tinggi dimana
VCE ˜ VCC sehingga keluaran pada IC 74LS14 adalah logika rendah (0),
27
sebaliknya pada celah terang pada piringan penyandi yang terdeteksi maka
phototransistor akan ON dan tegangan antara kolektor dengan emitter menjadi
rendah. Dengan demikian, keluaran pada IC 74LS14 adalah logika tinggi (1).
Keluaran rangkaian pendeteksi (0 atau 1) yang telah ditegaskan rangkaian pemicu
Schmitt akan menjadi data masukan mikrokontroler AT89C51 lewat port
pararelnya. Data-data masukan itu akan diolah dalam program dan kemudian hasil
pengolahan data tersebut akan ditampilkan melalui rangkaian LED indicator atau
penampil LED.
3.2 Osilator Kristal
Rangkaian Osilator kristal ini terdiri dari dua kapasitor dan kristal.
Kedua nilai kapasitor tersebut adalah 30 pF.Rangkaian ini berfungsi sebagai
frekuensi kerja bagi mikrokontroler. Nilai dari frekuensi akan mempengaruhi
kecepatan kerja mikrokontroler dalam menyelesaikan suatu intruksi. Pada
perancangan digunakan kristal 12 MHz yang dapat memberikan instruksi cycle
time sebesar 1 µs. Satu siklus mesin mikrokontroler AT89C51 dikerjakan dalam
12 periode osilator. Dengan mengetahui cycle time dari mikrokontroler maka akan
mempermudah perhitungan waktu bagi alat dalam mengukur besarnya putaran
motor.
28
C1
30 pF
C2
30 pF
U1
AT89C51
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
12 MHz
Gambar 3.3 Rangkaian Osilator
3.3 Rancangan Encoder
Prinsip dari pengukuran kecepatan pada program dibawah ini adalah
perhitungan rotasi setiap detiknya, kemudian dikalikan dengan 60 agar menjadi
rotasi per menit. Dalam hal ini jumlah celah pada roda cacah juga berpengaruh.
Pada perancangan dipakai roda cacah dengan 10 buah celah. Dengan demikian
dalam 1 kali putaran akan menghasilkan pulsa dengan logika “0” dan logika “1”
sebanyak 10. Jika banyaknya pulsa setiap detiknya adalah p dan jumlah celah
adalah n, maka kecepatan putar motor setiap menitnya (rpm) dapat dihitung
dengan persamaan 2.3.
Gambar 3.4 Rancangan Encoder
29
3.4 Motor DC
Motor DC jika diberi suatu tegangan akan menghasilkan putaran berupa
cw dan ccw. Dalam perancangan ini putaran motor akan diukur oleh suatu
rangkaina elektronis. Untuk dapat mengatur kecepatan motor yang digunakan
maka harus dihubungkan dengan sebuah potensiometer sebesar 10 Kohm. Motor
yang digunakan adalah dengan spesifikasi tegangan masukan 12 V dan
putarannya sampai 4000 RPM.
Gambar 3.5 Motor DC
3.5 Penampil LED
Penampil untuk pengukur kecepatan yang digunakan pada piranti ini
adalah suatu penampil indikator LED yang bekerja berdasarkan prinsip kerja
matrik LED. Seperti yang telah dijelaskan pada pembahasan sebelumnya bahwa
perancangan rangkaian indikator LED yang digunakan adalah adalah matrik LED
5 x 5. Masing-masing dari tiap LED hanya dapat menjadi indikator untuk satu
kondisi masukan saja. Karena kondisi yang dibutuhkan oleh piranti ini sebanyak
22 keadaan data masukan, sedangkan jumlah LED yang tersedia sebanyak 25
LED. Untuk menyalakan LED pada tiap baris dan kolom, diperlukan dua port dari
mikrokontroler. Port 1 (port 1.0 sampai dengan port 1.4) digunakan untuk kelima
30
kolom, sedangkan port 2 (port 2.0 sampai dengan port 2.4) digunakan untuk
kelima baris dari matrik LED. Cara menyalakan tiap satu LED pada baris dan
kolom tertentu yaitu mengirim masing-masing 5 bit ke port 1 dan port 2. Apabila
LED D0 yang ingin dinyalakan, maka urutan pada masing-masing port adalah :
Pada port 1 (port1.0 – port1.4) urutan bitnya adalah 1 0 0 0 0. Sedangkan pada
port 2 (port2.0 – port2.4) urutan bitnya adalah 1 0 0 0 0. Urutan bit tersebut
sebelumnya telah ditetapkan kesetaraanya dengan satu kondis i sinyal masukan
dalam program.
Gambar 3.6 Matrik LED
Gambar 3.7 Bentuk Matrik LED Yang Disusun
31
Tabel 3.1 dibawah ini merupakan tabel untuk kombinasi port dan urutan
bit pada tiap port untuk menyalakan masing-masing LED berikut kondisi data
masukan yang diwakilinya.
LED P1.0 P1.1 P1.2 P1.3 P1.4 P2.0 P2.1 P2.2 P2.3 P2.4 100 RPM 0 1 1 1 1 1 0 0 0 0 200 RPM 1 0 1 1 1 1 0 0 0 0 300 RPM 1 1 0 1 1 1 0 0 0 0 400 RPM 1 1 1 0 1 1 0 0 0 0 500 RPM 1 1 1 1 0 1 0 0 0 0 600 RPM 0 1 1 1 1 0 1 0 0 0 700 RPM 1 0 1 1 1 0 1 0 0 0 800 RPM 1 1 0 1 1 0 1 0 0 0 900 RPM 1 1 1 0 1 0 1 0 0 0 1000 RPM 1 1 1 1 0 0 1 0 0 0 1100 RPM 0 1 1 1 1 0 0 1 0 0 1200 RPM 1 0 1 1 1 0 0 1 0 0 1300 RPM 1 1 0 1 1 0 0 1 0 0 1400 RPM 1 1 1 0 1 0 0 1 0 0 1500 RPM 1 1 1 1 0 0 0 1 0 0 1700 RPM 0 1 1 1 1 0 0 0 1 0 1800 RPM 1 0 1 1 1 0 0 0 1 0 1900 RPM 1 1 0 1 1 0 0 0 1 0 2000 RPM 1 1 1 0 1 0 0 0 1 0 2100 RPM 1 1 1 1 0 0 0 0 1 0 2200 RPM 0 1 1 1 1 0 0 0 0 1 2300 RPM 1 0 1 1 1 0 0 0 0 1
Tabel 3.1 Kombinasi port dalam penyalaan LED
3.6 Penggerak LED
Arus keluaran dari mikrokontroler (15 mA sesuai data sheet) tidak cukup
kuat untuk menggerakan 5 buah LED sekaligus yang dipasang secara parallel
pada tiap baris dan kolom dari matrik LED. Sehingga pada perancangan ini
digunakan transistor BD139 sebagai penyangga arus, karena transistor tipe ini
32
dapat bekerja dengan arus kolektor maksimal 1A (sesuai data sheet). Tentunya,
dengan arus sebesar itu dapat menyebabkan kerusakan pada mikrokontroler. Oleh
karena itu, dipasang transistor saklar dengan tipe yang sama pada katoda dari
matrik LED sebagai pengaman. Rangkaian penggerak LED dapat dilihat seperti
gambar 3.8 berikut:
VCC
250 Ohm
T1
32
1
D0
250 Ohm
98Ohm
D1 D4D2 D3
Dari P2
Dari P1
Gambar 3.8. Rangkaian penggerak LED
Dengan menggunakan persamaan 2.8 diatas maka dapat VRC:
VRC = 12V – 0,5V – 1,7V
= 9.8V
Besarnya hambatan kolektor Rc yang digunakan dalam perancangan ini adalah 98
ohm.
Maka besarnya tegangan Vc didapat sebesar:
VC = Vcc – VRC VC = 12 V – 9.8 V VC = 2,2 V
33
Tegangan VB adalah tegangan yang berasal dari port 1 I/O
mikrokontroler. Dari data sheet diketahui tegangan keluaran minimumnya sebesar
0,9 VCC. Bila VCC = 5V maka besarnya VB adalah 4,5V dan nilai RB sebesar:
VVRb 8.37,05,4 =−=
Ib
VRbRb =
Rb= 253,33 ?
Nilai hambatan basis RB yang digunakan adalah 330 ohm untuk menjadi
transistor dalam kondisi saturasi saat tegangan port I/O mikrokontroler pada
keadaan minimum. Dibawah ini dapat dilihat gambar rangkaian penggerak LED
lengkap.
Untuk tegangan emiter besarnya adalah:
VE = IE . RE
VE = 15,05 mA . 250 Ohm
VE = 3,76 V
Maka didapat tegangan VRE sebesar:
VRE = VE – VLED
VRE = 3,76 V – 1,7 V
VRE = 2,06V
Pada gambar dibawah port 2.0 sampai dengan port 2.4 dihubungkan
dengan bagian kaki basis dari transistor BD139 yang kemudian kaki emiternya
dihubungkan dengan bagian L dari dot matrik. Port 1.1 sampai dengan port 1.4
34
dihubungkan juga dengan kaki basis transistor BD139, dan kaki kolektornya
dihubungkan ke bagian R dari dot matrik.
12 V
U1
AT89C51
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
Q4
250
100
Ohm
250
Q5Q6
100
Ohm
Q7
100
Ohm
250
100
Ohm
250
100
Ohm
Q8
250
250 Ohm
250 Ohm
250 Ohm
250 Ohm
250 OhmL4 L3 L2 L1L5
Gambar 3.9 Rangkaian Lengkap Penggerak LED
3.7 Tombol Start/ Reset dan Stop
Kedua tombol start/reset, stop pada gambar dibawah ini digunakan
untuk pengaturan pengoperasian alat. Saat alat mendapatkan tegangan catu maka
tombol siap untuk dipergunakan. Tombol start ditekan maka proses pengukuran
dimulai diamana LED akan mulai bergerak sampai tombol stop ditekan. Tombol
stop untuk menghentikan proses pengukuran dan menampilkan data pengukuran
terakhir. Tombol reset akan membuat tampilan kembali kepada tampilan semula.
VCC
5 V
VCC
U1
AT89C51
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
10 KOhm
START
12
10 uF
10 KOhm
STOP
12
10 uF
33 pF
33 pF
12 MHz
4,7 uF
8K2
Gambar 3.10 Rangkaian Tombol Start Stop dan Reset
35
3.8 Skala
Pada perancangan ini skala yang digunakan yaitu100, 200, 300, 400,
500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800,
1900, 2000, 2100, 2200, 2300.
Pada saat motor mulai berbutar maka LED sebagai tampilan akan
menunjukkan posisi kecepatan motor. Jika pada saat kecepatan motor pada
kecepatan 150 rpm maka LED akan menyala pada angka 100.
3.9 Perancangan Perangkat Lunak
Setelah mendapatkan gambaran tentang perangkat kerasnya, maka
perangkat lunak akan dibuat menyesuiakan perangkat kerasnya. Perangkat
lunaknya merupakan susunan program yang berbasis pada bahasa pemerograman
khusus mikrokontroler AT89C51. program ini akan dibagi menjadi dua bagian
yaitu program utama dan routine penangan interupsi, yang didukung oleh routine-
routine pengambilan data, routine delay, routine pengolahan data, routine
perkalian, routine ubah bentuk ketampilan LED untuk menampilkan hasil
pengukuran.
3.9.1 Program Utama
Program utama merupakan bagian yang dikerjakan saat mikrokontroler
diberi catu daya. Program dimulai dengan proses inisialisasi antara lain dalah
inisialisasi alamat data dan inisialisasi mode timer/counter yang digunakan. Untuk
langkah selanjutnya adalah clearkan semua variable memori yang digunakan
36
sebagai alamat penyimpanan data yang akan digunakan untuk proses berikutnya.
Kemudian dilakukan proses pengukuran, yaitu data masukan discounter selama 1
detik. Setelah 1 detik kecepatan dapat dihitung dengan proses perkalian anatara
hasil counter dengan pengalinya. kemudian hasilnya akan ditamplkan sebagai
kecepatan motor dalam rpm. Langkah selanjutnya, program akan membaca
tombol star/stop. jika tombol tersebut ditekan maka program akan menghentikan
proses pengukuran, dan akan menampilkan nilai rpm yang terakhir. Pada saat ini
program akan terus membaca tombol star/stop, jika pada saat yang diinginkan
tombol ditekan, maka program akan kembali melakukan proses pengukuran. Jika
tombol reset ditekan maka program akan menolkan tampilan, dan melakukan
proses dari awal. berikut ini adalah blok diagram alir program utamanya.
37
Tombol start
ditekan?
Mulai
T Y
T Y
Y T
Gambar 3.11. Diagram alir Program Utama
Inisialisasi alamat data Inisialisasi Timer/Counter
Hitung jumlah pulsa utama
Tampilkan RPM
Hitung RPM
Tombol stop
ditekan?
Tahan Nilai RPM
Tampilkan RPM
Tombol reset?
Ambil data Tombol Start
38
3.9.2 Diagram Alir Perhitungan Rpm
Karena jumlah celah (n) = 10, maka persamaan 2.3 tersebut dapat
disederhanakan menjadi
rpm = p x 6
Proses perhitungan rpm pada program adalah sebagai berikut:
1. Simpan pengali = 6
2. Data yang dimasukkan dicuplik selama 1 detik menggunakan timer.
3. Data yang sudah dicuplik oleh timer dihitung dengan proses counter sehingga
diperoleh jumlah pulsa (p)
4. Dengan proses perkalian, jumlah pulsa dikalikan dengan pengali dan hasilnya
dapat dikonversikan ke bentuk desimal serta ditampilkan sebagai kecepatan
dalam satauan rpm.
39
Berikut ini adalah gambar alir proses perhitungan rpm:
T Y
Y
Gambar 3.12. Diagram alir proses perhitungan RPM
Mulai
Simpan pengali = 6
Baca Data Masukan
Waktu =1 detik
?
Counter sebagai jumlah pulsa (p)
Kalikan Counter dengan Pengali
Tampilkan sebagai RPM
Selesai
Counter +1
40
3.9.3 Proses Perkalian
Pada proses perhitungan rpm, dibutuhkan proses perkalian yaitu
perkalian antara pengali dengan jumlah pulsa yang sudah dihitung dalam setiap
detiknya. Setiap suatu bilangan dengan besar 32 bit akan menggunakan operasi
dasar perkalian 32 bit yang melibatkan penambahan. Proses perkalian dua buah
bilangan pada program adalah dengan menggunakan metode tambah dan geser.
suatu bilangan digeser kekanan dan yang lain digeser kekiri. Jika LSB pada
bilangan yang digeser kekanan bernilai 0 maka hasil kali dengan pengali tidak
ditambah, sebaliknya jika bernilai 1 maka akan ditambah. Proses perkalian akan
selesai jika bilangan yang digeser kekanan bernilai 0000.
Jika X3 X2 X1 X0 digeser kekanan akan menjadi X4 X3 X2 X1 X0,
dimana X0 adalah LSB yang telah tergeser kekanan, dan yang menentukan adalah
apakah pengali akan ditambah dengan hasil kali atau tidak. berikut disajikan
contoh perkalian bilangan biner 4 bit.
Bentuk desimalnya 6 x 12 = 72
Pengali (N) = 6 bentuk bilangan binernya 0110
Jumlah pulsa tiap detik (P) = 12 bentuk bilangan binernya 1100
Xo =LSB yang telah tergeser kekanan
HK = Hasil kali
41
Maka proses perkalian dengan metode tambah dan geser adalah sebagi berikut:
P N Xo HK
Keadaan awal 0110 1100 0 0000
N geser kanan 0110 0 0000
P geser kiri 1100
N geser kanan 0011 0 0000
P geser kiri 11000
N geser kanan 0001 1 0000
Xo= 1 0000 +
HK = HK + P 11000 0001 1 11000
P geser kiri 110000
N geser kanan 0000 1 11000
Xo= 1 11000 +
HK= HK + P 1001000
Jadi hasil perkalian menghasilkan = 1001000b = 72
42
Gambar ini penjelasan proses perkalian menggunakan diagram alir
T
Y
T
Y
Gambar 3.13. Diagram alir proses Perkalian
Mulai
Hasil register hasil bagi
Isi R0 dengan Pengali Isi A dengan Operand
RRC R0 RLC A
Carry R0 = 1 detik
?
Hasil Kali = Hasil Kali + A
R0 = 0 ?
Selesai
43
3.9.3 Pencuplikan Data Selama Satu Detik
Pada perancangan program akan menggunakan Timer dan counter mode
1. Timer akan digunakan untuk mencuplik data selama 1 detik, sedangkan counter
akan mencacah data tersebut. Hasil cacahhan tersebut yang kemudian akan
diproses menjadi besaran kecepatan. berikut diagaram alir menentukan timer 1
detik
T Y Y
Gambar 3.14. Diagram alir Timer satu detik
Mulai
Selesai
Cacah = 20
Isi Timer 50ms
Cacah= 0 ?
Hentikan Timer & Counter
Cacah -1
44
3.9.5 Proses Tampilan Pada proses tampilan LED, maka digunakan P3.5 untuk menghidupkan
LED sedangkan P3.6 untuk mematikan LED
Y
Gambar 3.15 Diagram Alir Penampil LED
Start
Baca isi port 3 dan simpan di akumulator
(A<-P3)
Register 0 =FEH?
Akumulator = FeH?
Hidupkan LED (P1<-0)
Status LED Mati (R0<-0)
Matikan LED (P1<-0)
Baca isi port 3 dan simpan di akumulator
(A<-P3)
Isi akumulator = FEH?
45
BAB IV
HASIL PENGAMATAN DAN PEMBAHASAN
Pada bab ini akan dibahas tentang hasil akhir perancangan dan hasil
pengamatan pengukuran terhadap rangkaian-rangkaian elektronis (rangkaian
sensor dan rangkaian penggerak) yang merupakan implementasi dari sistem secara
keseluruhan yang telah dirancang. Berikut ini akan disajikan pembahasan
mengenai tiap-tiap bagian.
4.1 Hasil Akhir Perancangan
Hasil akhir perancangan sistem ini terdiri dari dua bagian utama, yaitu: (1)
Bagian mekanik yang memberi data-data masukan, (2) Bagian penampil yang
terdiri dari rangkaian penggerak dan rangkaian LED.
Bagian mekanik terdiri dari piringan (encoder), satu buah sensor
optocoupler yang menghasilkan data-data masukan mengenai perubahan
kecepatan motor ke mikrokontroler. Piranti keluaran atau penampil, memuat
rangkaian pemicu Schmitt, mikrokontroler dan rangkaian penggerak LED. Pada
bagian depan penampil terdapat 115 buah LED yang dirancang sedemikian rupa
sehingga deretan LED-nya membentuk garis yang menyerupai jari- jari. Garis
yang dibentuk sebanyak 23 buah dan setiap garis dibentuk dengan LED sebanyak
5 buah yang dipasang secara parallel. Koneksi antara komponen-komponen dari
kedua bagian seperti gambar berikut.
46
Gambar 4.1 Rangkaian catu daya
Gambar 4.1 adalah rangkaian catu daya 5 V dan 12 V, rangkaian tersebut
terdiri dari trafo, kapasitor polar, regulator, dioda bridge penyearah. Catu daya ini
berfungsi untuk memberikan tegangan DC yang dibutukan oleh mikrokontroler
AT89C51 sebesar 5 V. Sedangkan Catu daya 12 V digunakan untuk
menggerakkan LED penampil.
Gambar 4.2 Rangkaian mikrokontroler
Gambar 4.2 merupakan rangkaian sensor, rangkaian mikrokontroler, dan
rangkaian penggerak LED. Keluaran dari rangkaian sensor akan masuk ke dalam
port 3 di mikrokontroler, kemudian keluaran dari mikrokontroler berada di posisi
port 1 dan port 2 yang diteruskan ke rangkaian penggerak LED.
47
Gambar 4.3 Motor, encoder, dan tampilan LED
Gambar 4.3 adalah motor DC 12 V, encoder, dan tampilan LED. Putaran
pada kepala motor DC dipasang encoder yang berfungsi untuk mengkodekan
tegangan bagi optocoupler, sedangkan tampilan LED menunjukkan hasil dari
putaran motor DC tersebut.
Gambar 4.4 Tombol Start/Reset dan Stop
Gambar 4.4 adalah tombol start/reset dan stop. Tombol start akan
berfungsi pada saat memulai pengukuran, sedangkan tombol reset akan
mengembalikan tampilan pada keadaan semula. Tombol stop akan membuat
tampilan berhenti pada saat yang diinginkan.
48
4.2 Contoh Tampilan LED
Pada bagian ini akan diperlihatkan beberapa contoh tampilan pada
penampil LED dari hasil perancangan. Seperti diketahui, bahwa setiap garis dari 5
buah LED yang dipasang paralel pada papan penampil mewakili satu posisi dari
kecepatan motor dan besarnya perubahan (resolusi) adalah mengikuti skala.
Gambar 4.5 Tampilan LED pada posisi 600 Rpm
Gambar 4.5 merupakan tamplan pada saat putaran motor berada pada posisi 550
Rpm sampai pada 650 Rpm.
Gambar 4.6 merupakan tampilan pada saat 2000 Rpm, dimana LED akan
menyala jika putaran motor dc di 1950 Rpm sampai pada 2500 Rpm
Gambar 4.6 Tampilan pada saat 2000 Rpm
49
Tabel 4.1 Perbandingan pengukuran dengan Tachometer
NO Pengukuran dengan Tachometer/Rpm
Posisi LED Ket
1 100 100 2 150 100 3 202 100 * 4 204 200 5 260 200 6 306 200 * 7 308 300 8 345 300 9 408 300 * 10 412 400 11 467 400 12 509 400 * 13 511 500 14 556 500 15 614 500 * 16 616 600 17 634 600 18 717 600 * 19 719 700 20 764 700 21 821 700 * 22 822 800 23 867 800 24 925 800 * 25 928 900 26 975 900 27 1035 900 * 28 1037 1000 29 1085 1000 30 1139 1000 * 31 1141 1100 32 1190 1100 33 1242 1100 * 34 1245 1200 35 1280 1200 36 1346 1200 * 37 1347 1300 38 1398 1300 39 1447 1300 * 40 1450 1400 41 1500 1400 *
50
NO Pengukuran dengan Tachometer/Rpm
Posisi LED Ket
42 1550 1400 * 43 1553 1500 44 1597 1500 45 1655 1500 * 46 1656 1600 47 1711 1600 * 48 1757 1600 * 49 1759 1700 50 1802 1700 * 51 1860 1700 * 52 1861 1800 53 1904 1800 * 54 1962 1800 * 55 1964 1900 56 1995 1900 57 2065 1900 * 58 2067 2000 59 2120 2000 * 60 2167 2000 * 61 2170 2100 62 2216 2100 * 63 2259 2100 * 64 2273 2200 65 2315 2200 * 66 2375 2200 * 67 2376 2300 68 2390 2300 69 4000 2300
Ket: * : Hasil tampilan LED tidak sesuai dengan rancangan
Dari hasil pengukuran Tachometer seperti tabel 4.1 maka didapati ada
ketidaksesuaian antara hasil pengukuran dengan hasil yang diinginkan. Misalnya
pada pengukuran no 9, pengukuran yang diperoleh adalah 408 Rpm, tetapi hasil di
tampilan LED pada 300 Rpm padahal seharusnya 400 Rpm. Untuk no 47 dan 48
pengukuran yang diperoleh adalah 1711 dan 1757 tetapi tampilan LED di 1600
Rpm padahal seharusnya 1700 Rpm. Selain itu titik-titik kritis alat ini tidak
mampu diamati karena fasilitas tachometer belum menunjang. Selain itu pengatur
51
putaran motornya digunakan catu daya variabel yang tidak mampu menggerakkan
motor secara linier setiap 1 Rpm. Tegangan yang dihasilkan catu daya variable
tersebut menghasilkan putaran motor tidak linier. Untuk titik kritis perubahan
posisi tampilan LED tidak dapat diamati, sehingga range pengukuran tidak dapat
ditentukan dengan pasti. Range yang didapat untuk menghidupkan tampilan setiap
100 Rpm dapat dilihat seperti tabel 4.2
Tabel 4.2 Putaran motor dengan posisi LED
Putaran Motor (Rpm) Posisi LED Yang Hidup(Rpm)
0-202 100 204-306 200 308-408 300 402-509 400 511-614 500 616-717 600 719-821 700 822-925 800 928-1035 900 1037-1139 1000 1141-1242 1100 1245-1346 1200 1347-1447 1300 1450-1550 1400 1553-1655 1500 1656-1757 1600 1759-1860 1700 1861-1962 1800 1964-2065 1900 2067-2167 2000 2170-2259 2100 2273-2375 2200 …=2376 2300
52
4.3 Pembahasan Rangkaian Elektronik
Pengukuran dilakukan terhadap rangkaian sensor optocoupler dan
rangkaian penggerak LED. Pada rangkaian sensor pengukuran dilakukan terhadap
tegangan keluaran (Vce) dan arus kolektor (Ic) fototransistor, sedangkan untuk
rangkain penggerak LED pengukuran dilakukan terhadap arus basis (Ib) dan arus
kolektor (Ic) transistor BD 139. Pengukuran ini dimaksudkan untuk mengetahui
apakah nilai-nilai besarnya sesuai dengan yang diharapkan dalam perancangan.
4.3.1 Rangkaian Sensor Optik
Sebagaimana diketahui bahwa rangkaian sensor optik terdiri dari dua
bagian: bagian: bagian pemancar dan bagian penerima. Pada rangkaian sensor ini,
pengukuran dilakukan terhadap besarnya tegangan kolektor-emiter (Vce) dan kuat
arus yang melewati kolektor (Ic) dari fototransistor sebagai penerima sebelum
diterima oleh rangkaian pemicu Schmitt. Hasil pengukuran terhadap keluaran
rangkaian sensor pada saat fototransistor dalam keadaan tak terhalang dan
terhalang dapat dilihat di tabel 4.2
Tabel 4.3 Hasil pengukuran terhadap Fototransistor
Fototransistor Vce terhalang
Vce tak terhalang
Ic terhalang Ic tak terhalang
Q1 4,90 0,11 0 0,12
Dari tabel 4.2 terlihat bahwa tegangan keluaran (Vce) foto transistor saat
terhalang adalah 4,90 V dan pada saat tidak terhalang adalah 0,11 V sedangkan
perhitungan secara perancangan Vce mempunyai tegangan 5 V saat terhalang dan
53
0,2 V saat tidak terhalang perbedaan ini disebabkan oleh catu daya yang dirancang
menghasilkan tegangan keluaran sebesar 4,90 V. Perbedaan nilai tegangan
menurut pengukuran tidak jauh bebeda dengan perancangan. Perbedaan kedua
nilai tegangan antara saat terhalang dan tidak terhalang merupakan perbedaan
nilai tegangan yang diterima oleh pemicu Schmitt. Pada saat tegangan masukan
rendah (input low voltage) yang diteriam pemicu schmitt sehingga keluarannya
adalah kondisi tinggi (high). Jadi. Dengan demikian kondisi keluaran seperti ini
dapat dikatakan bahwa fototransistor berada dalam kondisi aktif (ON). Pada saat
tegangan masukan tinggi (input high voltage) yang diterima pemicu schmit
sehingga keluarannya dalam kondisi rendah (low). Kondisi keluaran seperti ini
yang diperlihatkan fototransistor dapat dikatakan dalam keadaan cut off atau off.
Sesuai hasil pengukuran, tegangan kelua ran pemicu Schmitt adalah 0,15 V
saat fototransistor ON, dan 4,90 V saat fototransistor OFF. Nilai-nilai tegangan
ini nantinya akan dibaca oleh mikrokontroler sebagai data-data masukan yang
kemudian diproses untuk ditampilkan.
Agar dapat dibaca oleh mikrokontorler tegangan masukan rendah (input
low voltage) minimum -0,5 V dan maksimal 0,8 V dan tegangan masukan tinggi
(input high voltage) minimum 3,5 V dan maksimum 5,5 V. Dengan demikian
tegangan keluaran pemicu Schmitt sebesar 0,15 V, saat fototransistor ON, sudah
dapat diakses oleh mikrokontroler sebagai input low voltage, dan tegangan
keluaran 4,28 V, saat fototransistor OFF, dapat diakses sebagai input high voltage.
54
4.3.2. Rangkaian Transistor Sebagai Saklar
Untuk rangkaian penggerak seperti gambar 3.9 yang mengunakan BD 139
sebagai piranti utamanya, pengkuran dilakukan terhadap tengangan basis (Vb),
tegangan kolektor (Vc) dan tegangan emitor (Ve) saat transistor dalam kondisi
aktif. Besarnya nilai-nilai pengukuran tersebut dapat dilihat dalam tabel. 4.4
Tabel 4.4 Hail pengukuran terhadap transistor sebagai saklar
Transistor Vb(V) Vc(V) Ve(V) Q1 4,25 2,00 3,56 Q2 4,25 2,00 3,56 Q3 4,25 1,99 3,56 Q4 4,25 1,99 3,56 Q5 4,24 2,00 3,56
Berdasarkan hasil pengukuran sebagaimana yang diperlihatkan dalam
tabel diatas bahwa tegangan basis (Vb) dari transistor Q1 hingga Q5 berkisar
antara 4,24 V sampai dengan 4,25 V, tegangan kolektor (Vc) berkisar antara 1,99
V hingga 2,00 V sedangkan tegangan emiter (Ve) 3,56 V.
Jika melihat tegangan keluaran tiap pin dari port mikrokontroler yang
bernilai 4,71 V saat LED hidup, 0 V saat LED mati untuk port 2 dan untuk port 1
keluarannya 0,06 V saat LED hidup dan 4,66 saat LED mati, sedangkan tegangan
di VRC sebesar 10 V dan menurut perhitungan seharusnya sebesar 9,8 V.
Perbedaan hasil pengukuran dengan hasil perancangan disebabkan karena pada
pemakaian nilai resistor digunakan 100 Ohm sedangkan pada perancangan nilai
resistornya adalah 98 Ohm. Untuk tegangan kolektor menurut perancangan
didapat teganganya sebesar (Vc) 2,2 V, pada hasil pengukuran tegangan kolektor
sebesar 2,00 V. Tegangan kolektor ini didapat dari tegangan Vcc dikurangi
55
dengan tegangan di VRC, pada perancangan Vcc dibuat sebesar 12V. Besarnya
tegangan emiter menurut perancangan sebesar 3,76 V sedangkan pada hasil
pengukuran diperoleh (Ve) 3,56 V. Perbedaan nilai tegangan emitter dari
perancangan dan hasil pengukuran ini disebabkan oleh keluaran dari port 1.
Karena tegangan LED umumnya sekitar 17 mV (sesuai dengan data sheet) maka
tegangan emiter 3,56 V masuk kekaki positif LED, sedangkan tegangan ke kaki
negatif sebesar tegangan di Re sebesar 1,86 V ditambah dengan tegangan di kaki
port pada posisi LED hidup sebesar 0,06 V sehingga tegangan yang masuk kekaki
negatif sebesar 1,92 V. Karena tegangan pada kaki positif lebih besar dari
tegangan di kaki negatif maka penggerak LED dapat jalan.
4.4 Analisis Software
4.4.1 Pencuplikan Data Satu Detik
Berikut adalah program untuk pencuplikan data selama satu detik;
Hitung: ; merupakan tunda satu detik mov R2,#20 ; pengali 20 Ulang: mov TH1,#High -50000 ; timer tinggi diberikan nilai -50000 mov TL1,#LOW -50000 ; timer rendah diberikan nilai -50000 setb TR1 ; pengaktifan timer TR1 Tunggu: jb P3.6,Cari ; pengecekan saklar stop clr TF1 ; intrupsi timer 1 dikalikan clr TR1 ; timer 1 dimatikan mov TH1,#00h ; timer tinggi diclearkan mov TL1,#00h ; timer rendah diclearkan ajmp Putar ; lompat ke label Putar Cari: Jnb TF1,Tunggu ; dicek 1 apa 0, jika 1 terus clr TF1 ; intrupsi timer 1 dikalikan
56
clr TR1 ; timer TR1 dimatikan djnz R2,Ulang ; register R2 dikurangi 1 bila tidak nol lompat kelabel ulang ret ; kembali dari subrutin
Program pengambilan data selama satu detik merupakan pengambilan
sampling dengan tunda 1 detik dan pengali 20. THL1 disetting untuk kondisi
tinggi sedangkan TL1 untuk kondisi rendah. Setelah saklar stop dicek maka
intrupsi timer dikalikan Jika dalam 1 detik 10 clock yang diterima maka
didapatkan 1kali putaran. Jika 1000 clock per detik maka putaran motornya 100
putaran.
Untuk mendapatkan 100 Rpm, pada putaran encoder akan menghasilkan
17 clock selama satu detik atau sama dengan 1,7 putaran per detik di encodernya.
Untuk 1500 Rpm maka clock yang terdeteksi sebanyak 250 clock dalam satu detik
atau putaran encoder sebanyak 25 putaran per detiknya.
4.4.2 Proses Perhitungan Rpm
Program proses perhitungan dapat dilihat seperti dibawah:
;################################################# 63 007F ;######### Proses Perkalian ############ 64 007F ;################################################# 65 007F ProsesRendah: 66 007F clr C 67 0080 add A,Jum1 68 0082 jnc TidakLebih 69 0084 ; inc R7 70 0084 mov A,R4 71 0085 clr C 72 0086 TidakLebih: 73 0086 cjne A,#00h,MasihAda1 74 0089 TidakLebihX: 75 0089 ; inc A 76 0089 MasihAda1:
57
77 0089 clr C 78 008A subb A,#17 79 008C jc Pulang 80 008E inc R7 81 008F sjmp TidakLebihX 82 0091 Pulang: 83 0091 ret 85 0092 ProsesTinggi: 86 0092 mov A,#0FFh 87 0094 sjmp ProsesTinggi1 89 0096 ProsesTinggiX: 90 0096 mov A,#0FFh 91 0098 cjne R3,#00,ProsesTinggi1XX 92 009B SlsTinggi: 93 009B ret 95 009C ProsesTinggi1XX: 96 009C inc R7 98 009D ProsesTinggi1: 99 009D cjne A,#00h,MasihAda 101 00A0 ProsesTinggi1X: 102 00A0 ; inc A 103 00A0 MasihAda: 104 00A0 mov Jum1,A 105 00A2 clr C 106 00A3 subb A,#17 107 00A5 jc PulangX 108 00A7 inc R7 109 00A8 sjmp ProsesTinggi1X 110 00AA PulangX: 111 00AA dec R3 112 00AB ; dec R7 113 00AB sjmp ProsesTinggiX Pada program proses perhitungan Rpm data yang akan dicuplik selama 1
detik dengan menggunakan timer, kemudian data yang sudah dicuplik oleh timer
dihitung dengan proses counter sehingga menghasilkan jumlah pulsa. Hasil
perkalian antara jumlah pulsa setiap detik dengan pengali akan dikonversikan
kebilangan biner. Bilangan biner tersebut akan dikalikan dengan suatu metode
tambah dan geser. Pada program maka untuk menambah dan menggeser
58
digunakan pembanding (cjne A, #00h, MasihAda1) yang artinya band ingkan isi A
dengan 00h bila hasilnya tidak sama maka loncat ke label MasihAda1. Setiap
pengurangan 100 maka R7 naik 1.
59
BAB V
PENUTUP
5.1 KESIMPULAN Dari hasil pengamatan terhadap hasil perancangan dan data maka
diperoleh kesimpulan bahwa mikrokontroler AT89C51 dapat diaplikasikan
sebagai alat ukur untuk pengukuran putaran motor dengan tampilan LED, tetapi
range yang mendekati titik kritis ada kemungkinan error.
5.2 SARAN
Berdasarkan hasil analisis yang dilakukan terhadap alat yang dibuat maka
diperoleh beberapa pertimbangan saran yang dapat dikembangkan dalam hal
perancangan-perancangan selanjutnya, antara lain:
1. Pengukuran kecepatan motor DC dapat dibuat dengan sistem yang lain,
misalnya dengan menggunakan mikrokontroler AT89S51/52 dengan
bahasa HVR dan bahasa C.
2. Dengan penambahan mikrokontroler AT89C51 maka putaran motor yang
ditampilkan dapat lebih akurat.
60
DAFTAR PUSTAKA
Blocher, Richard. 2003. Dasar Elektronika. Yogyakarta: Andi. Cabral, Joao Bosco R.F. 2005. “Penunjuk Arah Angin Berbasis Mikrokontroler
AT89S51”. Skripsi S1. Yogyakarta: Universitas Sanata Dharma. Http//www.atmel.com, diakses pada tanggal 20 Agustus 2007. Nalwan, Paulus Andi. 2003. Teknik Antar Muka dan Pemrogram Mikrokontroler
AT89C51. Jakarta: PT Elex Media Komputindo Gramedia. Putra, Agfianto Eko. 2002. Belajar Mikrokontroler AT89C51/52/55. Yogyakarta:
Gava Media. Young dan Freedman. 2000. Fisika Universitas. Surabaya: Airlangga.
61
LAMPIRAN
ALDIUS GINTING (065114039) <RevCode>
Pengukuran Kecepatan Motor DC dengan Tampilan LED Berbentuk Jari Berbasis Mikrokontroler AT89C51
A
1 1Tuesday, February 26, 2008
Title
Size Document Number Rev
Date: Sheet of
12 V
VCC 5 V
5 V
VCC
VCC
U1
AT89C51
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
68 O
hm
10 K
Ohm
74LS14
12
1 KO
hm
33 p
F33
pF
12 M
Hz
4,7
uF8
K2
R32R
10 K
Ohm ST
ART/
RESE
T12
STO
P1
2
10 uF
10 uF
Q4
250
100
Ohm
250
Q5Q610
0 Oh
mQ7
100
Ohm
250
100
Ohm
250
100
Ohm
Q8
250
250 Ohm
250 Ohm
250 Ohm
250 Ohm
250 OhmL4 L3 L2 L1L5
D74
LED
D75
LED
D73
LED
D 7 2
LED
D 2 5
LED
D30
LED
D 4 4
LEDD45
LEDD41
LED
D18
LED
D16
LEDD 1 7
LED
D20
LED
D35
LED
D40
LED
D43
LED D46
LED
D50
LED
D77
LED
D78
LED
D 7 6
LEDD80
LED
D 4 7
LEDD 4 9
LED
D79
LED
D 7 1
LED
D90
LED
D 8 6
LED
D89
LED
D87
LED
D88
LED
D57
LEDD58
LED
D59
LED
D54
LED
D56
LED
D51
LED
D55
LED
D60
LED
D53
LED
D85
LED
D 8 3
LED
D81
LED
D82
LED
D 8 4
LED
D 6 3
LED
D 6 5
LED
D62
LED
D61
LED
D 6 4
LED
D48
LED
D52
LED
D94
LED
D 9 5
LED
D91LEDD21
LEDD93
LEDD92
LED
D 2 3
LED
D22
LED
D97
LEDD100
LED
D99
LED
D96
LEDD98
LED
D5
LED
D24
LED
J2
CON5
1 2 3 4 5
J 1
CON5
12345D101
LED
D105
LED
D27
LED
D102
LEDD104
LED
D 2 6
LED
D103
LED
D29
LED
D 2 8
LED
D110
LEDD106
LED
D107
LEDD108
LED
D109
LED
D1
LED
D3
LED
D2
LED
D4
LED
D 1 0
LED
D11
LED
D69
LED
D19
LED
D70
LED
D33
LED
D32
LED
D31
LED
D66
LEDD 6 8
LEDD67
LED
D34
LED
D115
LED
D114
LED
D111
LED
D112
LED
D113
LED
D42
LED
D9
LED
D8
LED
D7
LED
D6
LED
D36
LED
D15
LED
D39
LED
D37
LEDD38
LED
D14
LED
D13
LED
D12
LED
PROGRAM 1 0000 Jum1 equ 20h 2 0000 Com1 equ 21h 3 0000 Com2 equ 22h 5 0000 org 00h 6 0000 sjmp Putar 9 0002 org 30h 10 0030 Putar: 11 0030 jb p3.5,Putar 13 0033 Mulai: 14 0033 mov sp,#17h 15 0036 mov R5,#00h 16 0038 mov R6,#00h 17 003A mov R7,#00h 18 003C mov P1,#0FFh 19 003F mov P2,#00h 20 0042 HitungTrus: 21 0042 mov Com1,#00000001b 22 0045 mov TH0,#00h 23 0048 mov TL0,#00h 24 004B mov R7,#00 25 004D mov Tmod,#00011101b 27 0050 setb TR0 28 0052 acall Hitung 30 0054 clr TR0 31 0056 mov tmod,#00010001b 33 0059 mov R3,TH0 34 005B mov R4,TL0 36 005D ;############################################### 37 005D ;##### Mulai Penghitungan Putaran ############## 38 005D ;############################################### 39 005D mov R0,#00h 40 005F mov R1,#00h 41 0061 mov Jum1,#00h 42 0064 mov A,R3 43 0065 cjne A,#00h,Tinggi 44 0068 mov A,R4 45 0069 acall ProsesRendah 46 006B acall Tampil 47 006D Putar1: 48 006D jb P3.6,HitungTrus 49 0070 sjmp Putar 51 0072 Tinggi: 52 0072 acall ProsesTinggi 53 0074 clr A
54 0075 mov A,R4 55 0076 acall ProsesRendah 56 0078 acall Tampil 58 007A Putar2: 59 007A jb P3.6,HitungTrus 60 007D sjmp Putar 62 007F ;################################################# 63 007F ;######### Proses Perhitungan Putaran ############ 64 007F ;################################################# 65 007F ProsesRendah: 66 007F clr C 67 0080 add A,Jum1 68 0082 jnc TidakLebih 69 0084 ; inc R7 70 0084 mov A,R4 71 0085 clr C 72 0086 TidakLebih: 73 0086 cjne A,#00h,MasihAda1 74 0089 TidakLebihX: 75 0089 ; inc A 76 0089 MasihAda1: 77 0089 clr C 78 008A subb A,#17 79 008C jc Pulang 80 008E inc R7 81 008F sjmp TidakLebihX 82 0091 Pulang: 83 0091 ret 85 0092 ProsesTinggi: 86 0092 mov A,#0FFh 87 0094 sjmp ProsesTinggi1 89 0096 ProsesTinggiX: 90 0096 mov A,#0FFh 91 0098 cjne R3,#00,ProsesTinggi1XX 92 009B SlsTinggi: 93 009B ret 95 009C ProsesTinggi1XX: 96 009C inc R7 98 009D ProsesTinggi1: 99 009D cjne A,#00h,MasihAda 101 00A0 ProsesTinggi1X: 102 00A0 ; inc A 103 00A0 MasihAda: 104 00A0 mov Jum1,A 105 00A2 clr C 106 00A3 subb A,#17
107 00A5 jc PulangX 108 00A7 inc R7 109 00A8 sjmp ProsesTinggi1X 110 00AA PulangX: 111 00AA dec R3 112 00AB ; dec R7 113 00AB sjmp ProsesTinggiX 115 00AD ;################################################# 116 00AD ;######### Tampilan Pada LED ##################### 117 00AD ;################################################# 118 00AD Tampil: 119 00AD cjne R7,#00h,BukanSatu 120 00B0 mov P1,#11111110b 121 00B3 setb P2.0 122 00B5 ret 123 00B6 BukanSatu: 124 00B6 ; inc R7 125 00B6 mov P1,#11111110b 126 00B9 mov R1,#5 127 00BB mov A,Com1 128 00BD acall PutarLED 129 00BF cjne R7,#00h,Masih1 130 00C2 ret 131 00C3 Masih1: 132 00C3 mov P1,#11111101b 133 00C6 mov R1,#5 134 00C8 mov A,Com1 135 00CA acall PutarLED 136 00CC cjne R7,#00h,Masih2 137 00CF ret 138 00D0 Masih2: 139 00D0 mov P1,#11111011b 140 00D3 mov R1,#5 141 00D5 mov A,Com1 142 00D7 acall PutarLED 143 00D9 cjne R7,#00h,Masih3 144 00DC ret 145 00DD Masih3: 146 00DD mov P1,#11110111b 147 00E0 mov R1,#5 148 00E2 mov A,Com1 149 00E4 acall PutarLED 150 00E6 cjne R7,#00h,Masih4 151 00E9 ret 152 00EA Masih4: 153 00EA mov P1,#11101111b
154 00ED mov R1,#3 155 00EF mov A,Com1 156 00F1 acall PutarLEDK 157 00F3 ret 159 00F4 PutarLED: 160 00F4 mov P2,A 161 00F6 rl A 162 00F7 djnz R1,CariLED 163 00F9 dec R7 164 00FA ret 165 00FB CariLED: 166 00FB djnz R7,PutarLED 167 00FD ret 169 00FE PutarLEDK: 170 00FE mov P2,A 171 0100 rl A 172 0101 djnz R1,CariLEDK 173 0103 dec R7 174 0104 ret 175 0105 CariLEDK: 176 0105 djnz R7,PutarLEDK 177 0107 ret 179 0108 ;################################################# 180 0108 ;######### Pengambilan Sampling ################## 181 0108 ;################################################# 182 0108 Hitung: 183 0108 mov R2,#20 184 010A Ulang: 185 010A mov TH1,#High -50000 186 010D mov TL1,#LOW -50000 187 0110 setb TR1 188 0112 Tunggu: 189 0112 jb P3.6,Cari 190 0115 clr TF1 191 0117 clr TR1 192 0119 mov TH1,#00h 193 011C mov TL1,#00h 194 011F ajmp Putar 195 0121 Cari: 196 0121 jnb TF1,Tunggu 197 0124 clr TF1 198 0126 clr TR1 199 0128 djnz R2,Ulang 200 012A ret
4-29
PQFP/TQFP
2 3
1
I N D E XC O R N E R
3 4
P1
.0
VC
C
P1
.1P
1. 2
P1
. 4P
1. 3
NC
4 24 3
4 04 1
654
4 4
32
2 62 5
2 82 7
2 4
1 81 9
2 02 1
2 2
P 1 . 7P 1 . 6P 1 . 5
N C7891 01 1
1 21 3
1 41 5
1 61 7
2 93 0
3 93 8
3 73 6
3 5
3 33 23 1
N C
P S E N
XT
AL
1G
ND
XT
AL
2
GN
D
P0
. 0( A
D0
)
A L E / P R O G
()
P3
.7R
D
E A / V P P
()
P3
.6W
R
( R X D ) P 3 . 0P 0 . 7 ( A D 7 )
P 2 . 6 ( A 1 4 )
P 0 . 6 ( A D 6 )P 0 . 5 ( A D 5 )P 0 . 4 ( A D 4 )
P0
.3(A
D3
)P
0.2
( AD
2)
P0
. 1( A
D1
)
( ) P 3 . 2I N T 0( T X D ) P 3 . 1
( T 1 ) P 3 . 5
( ) P 3 . 3I N T 1( T 0 ) P 3 . 4
P 2 . 7 ( A 1 5 )
(A1
1)
P2
.3(A
12
)P
2. 4
( A1
0)
P2
. 2( A
9)
P2
. 1( A
8)
P2
. 0
R S T
P 2 . 5 ( A 1 3 )
Features• Compatible with MCS-51™ Products• 4K Bytes of In-System Reprogrammable Flash Memory
– Endurance: 1,000 Write/Erase Cycles• Fully Static Operation: 0 Hz to 24 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• Programmable Serial Channel• Low Power Idle and Power Down Modes
DescriptionThe AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4Kbytes of Flash Programmable and Erasable Read Only Memory (PEROM). Thedevice is manufactured using Atmel’s high density nonvolatile memory technologyand is compatible with the industry standard MCS-51™ instruction set and pinout. Theon-chip Flash allows the program memory to be reprogrammed in-system or by a con-ventional nonvolatile memory programmer. By combining a versatile 8-bit CPU withFlash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer whichprovides a highly flexible and cost effective solution to many embedded control appli-cations.
PDIP
P 1 . 0 V C CP 1 . 1 P 0 . 0 ( A D 0 )P 1 . 2
( ) P 3 . 2I N T 0A L E / P R O G
( ) P 3 . 7R D P 2 . 3 ( A 1 1 )
( T X D ) P 3 . 1E A / V P P
( ) P 3 . 6W R P 2 . 4 ( A 1 2 )
( R X D ) P 3 . 0P 0 . 7 ( A D 7 )
( T 1 ) P 3 . 5P 2 . 6 ( A 1 4 )
R S TP 0 . 6 ( A D 6 )P 1 . 7P 0 . 5 ( A D 5 )P 1 . 6P 0 . 4 ( A D 4 )P 1 . 5P 0 . 3 ( A D 3 )P 1 . 4P 0 . 2 ( A D 2 )P 1 . 3P 0 . 1 ( A D 1 )
( ) P 3 . 3I N T 1P S E N
X TA L 2 P 2 . 2 ( A 1 0 )
( T 0 ) P 3 . 4P 2 . 7 ( A 1 5 )
X TA L 1 P 2 . 1 ( A 9 )G N D P 2 . 0 ( A 8 )
P 2 . 5 ( A 1 3 )
2 01 91 81 71 61 5
1234567891 01 11 21 31 4
2 12 22 32 42 52 6
4 03 93 83 73 63 53 43 33 23 13 02 92 82 7
0265F-A–12/97
(continued)
8-Bit Microcontroller with 4K Bytes Flash
AT89C51
Pin Configurations
PLCC
P1
. 0
VC
C
P1
. 1
P0
. 0( A
D0
)
P1
. 2
A L E / P R O G
()
P3
.7R
D
XT
AL
1
E A / V P P
()
P3
.6W
R
GN
D
( R X D ) P 3 . 0P 0 . 7 ( A D 7 )
P 2 . 6 ( A 1 4 )
P 0 . 6 ( A D 6 )P 0 . 5 ( A D 5 )P 0 . 4 ( A D 4 )
P0
.3(A
D3
)
P1
.4
P0
. 2( A
D2
)
P1
. 3
P0
. 1( A
D1
)
P S E N
XT
AL
2
( ) P 3 . 2I N T 0( T X D ) P 3 . 1
( T 1 ) P 3 . 5
( ) P 3 . 3I N T 1( T 0 ) P 3 . 4
P 2 . 7 ( A 1 5 )
(A1
1)
P2
.3(A
12
)P
2. 4
( A1
0)
P2
. 2( A
9)
P2
. 1( A
8)
P2
. 0N
C
2 3
1
R S TP 1 . 7P 1 . 6P 1 . 5
I N D E XC O R N E R
N C
NC
P 2 . 5 ( A 1 3 )
3 4 N C
4 24 3
4 04 1
65
4 4 43
2
2 62 5
2 82 7
1 81 9
2 0 2 42 1
2 2
7891 01 11 21 31 41 51 61 7 2 9
3 0
3 93 83 73 63 5
3 33 23 1
AT89C514-30
Block Diagram
PORT 2 DRIVERS
PORT 2LATCH
P2.0 - P2.7
FLASHPORT 0LATCHRAM
PROGRAMADDRESSREGISTER
BUFFER
PCINCREMENTER
PROGRAMCOUNTER
DPTR
RAM ADDR.REGISTER
INSTRUCTIONREGISTER
BREGISTER
INTERRUPT, SERIAL PORT,AND TIMER BLOCKS
STACKPOINTERACC
TMP2 TMP1
ALU
PSW
TIMINGAND
CONTROL
PORT 3LATCH
PORT 3 DRIVERS
P3.0 - P3.7
PORT 1LATCH
PORT 1 DRIVERS
P1.0 - P1.7
OSC
GND
VCC
PSEN
ALE/PROG
EA / VPP
RST
PORT 0 DRIVERS
P0.0 - P0.7
AT89C51
4-31
The AT89C51 provides the following standard features: 4Kbytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bittimer/counters, a five vector two-level interrupt architecture,a full duplex serial port, on-chip oscillator and clock cir-cuitry. In addition, the AT89C51 is designed with static logicfor operation down to zero frequency and supports twosoftware selectable power saving modes. The Idle Modestops the CPU while allowing the RAM, timer/counters,serial port and interrupt system to continue functioning. ThePower Down Mode saves the RAM contents but freezesthe oscillator disabling all other chip functions until the nexthardware reset.
Pin DescriptionVCCSupply voltage.
GNDGround.
Port 0Port 0 is an 8-bit open drain bidirectional I/O port. As anoutput port each pin can sink eight TTL inputs. When 1sare written to port 0 pins, the pins can be used as high-impedance inputs.
Port 0 may also be configured to be the multiplexed low-order address/data bus during accesses to external pro-gram and data memory. In this mode P0 has internal pul-lups.
Port 0 also receives the code bytes during Flash program-ming, and outputs the code bytes during program verifica-tion. External pullups are required during program verifica-tion.
Port 1Port 1 is an 8-bit bidirectional I/O port with internal pullups.The Port 1 output buffers can sink/source four TTL inputs.When 1s are written to Port 1 pins they are pulled high bythe internal pullups and can be used as inputs. As inputs,Port 1 pins that are externally being pulled low will sourcecurrent (IIL) because of the internal pullups.
Port 1 also receives the low-order address bytes duringFlash programming and verification.
Port 2Port 2 is an 8-bit bidirectional I/O port with internal pullups.The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins they are pulled high bythe internal pullups and can be used as inputs. As inputs,Port 2 pins that are externally being pulled low will sourcecurrent (IIL) because of the internal pullups.
Port 2 emits the high-order address byte during fetchesfrom external program memory and during accesses toexternal data memory that use 16-bit addresses (MOVX @DPTR). In this application it uses strong internal pullups
when emitting 1s. During accesses to external data mem-ory that use 8-bit addresses (MOVX @ RI), Port 2 emits thecontents of the P2 Special Function Register.
Port 2 also receives the high-order address bits and somecontrol signals during Flash programming and verification.
Port 3Port 3 is an 8-bit bidirectional I/O port with internal pullups.The Port 3 output buffers can sink/source four TTL inputs.When 1s are written to Port 3 pins they are pulled high bythe internal pullups and can be used as inputs. As inputs,Port 3 pins that are externally being pulled low will sourcecurrent (IIL) because of the pullups.
Port 3 also serves the functions of various special featuresof the AT89C51 as listed below:
Port 3 also receives some control signals for Flash pro-gramming and verification.
RSTReset input. A high on this pin for two machine cycles whilethe oscillator is running resets the device.
ALE/PROGAddress Latch Enable output pulse for latching the low byteof the address during accesses to external memory. Thispin is also the program pulse input (PROG) during Flashprogramming.
In normal operation ALE is emitted at a constant rate of 1/6the oscillator frequency, and may be used for external tim-ing or clocking purposes. Note, however, that one ALEpulse is skipped during each access to external Data Mem-ory.
If desired, ALE operation can be disabled by setting bit 0 ofSFR location 8EH. With the bit set, ALE is active only dur-ing a MOVX or MOVC instruction. Otherwise, the pin isweakly pulled high. Setting the ALE-disable bit has noeffect if the microcontroller is in external execution mode.
PSENProgram Store Enable is the read strobe to external pro-gram memory.
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)
AT89C514-32
When the AT89C51 is executing code from external pro-gram memory, PSEN is activated twice each machine
cycle, except that two PSEN activations are skipped duringeach access to external data memory.
EA/VPPExternal Access Enable. EA must be strapped to GND inorder to enable the device to fetch code from external pro-gram memory locations starting at 0000H up to FFFFH.Note, however, that if lock bit 1 is programmed, EA will beinternally latched on reset.
EA should be strapped to VCC for internal program execu-tions.
This pin also receives the 12-volt programming enable volt-age (VPP) during Flash programming, for parts that require12-volt VPP.
XTAL1Input to the inverting oscillator amplifier and input to theinternal clock operating circuit.
XTAL2Output from the inverting oscillator amplifier.
Oscillator Characteristics XTAL1 and XTAL2 are the input and output, respectively,of an inverting amplifier which can be configured for use asan on-chip oscillator, as shown in Figure 1. Either a quartzcrystal or ceramic resonator may be used. To drive thedevice from an external clock source, XTAL2 should be leftunconnected while XTAL1 is driven as shown in Figure 2.There are no requirements on the duty cycle of the externalclock signal, since the input to the internal clocking circuitryis through a divide-by-two flip-flop, but minimum and maxi-mum voltage high and low time specifications must beobserved.
Idle Mode In idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. The mode is invoked bysoftware. The content of the on-chip RAM and all the spe-cial functions registers remain unchanged during thismode. The idle mode can be terminated by any enabledinterrupt or by a hardware reset.
It should be noted that when idle is terminated by a hardware reset, the device normally resumes program execu-tion, from where it left off, up to two machine cycles beforethe internal reset algorithm takes control. On-chip hardwareinhibits access to internal RAM in this event, but access tothe port pins is not inhibited. To eliminate the possibility ofan unexpected write to a port pin when Idle is terminated byreset, the instruction following the one that invokes Idleshould not be one that writes to a port pin or to externalmemory.
Figure 1. Oscillator Connections
Note: C1, C2 = 30 pF ± 10 pF for Crystals= 40 pF ± 10 pF for Ceramic Resonators
Figure 2. External Clock Drive Configuration
C2XTAL2
GND
XTAL1C1
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
AT89C51
4-33
Power Down Mode In the power down mode the oscillator is stopped, and theinstruction that invokes power down is the last instructionexecuted. The on-chip RAM and Special Function Regis-ters retain their values until the power down mode is termi-nated. The only exit from power down is a hardware reset.Reset redefines the SFRs but does not change the on-chipRAM. The reset should not be activated before VCC isrestored to its normal operating level and must be heldactive long enough to allow the oscillator to restart and sta-bilize.
Program Memory Lock Bits On the chip are three lock bits which can be left unpro-grammed (U) or can be programmed (P) to obtain the addi-tional features listed in the table below:
When lock bit 1 is programmed, the logic level at the EA pinis sampled and latched during reset. If the device is pow-ered up without a reset, the latch initializes to a randomvalue, and holds that value until reset is activated. It is nec-essary that the latched value of EA be in agreement withthe current logic level at that pin in order for the device tofunction properly.
Lock Bit Protection Modes
Program Lock Bits Protection Type
LB1 LB2 LB3
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 is disabled.
3 P P U Same as mode 2, also verify is disabled.
4 P P P Same as mode 3, also external execution is disabled.
Programming the Flash The AT89C51 is normally shipped with the on-chip Flashmemory array in the erased state (that is, contents = FFH)and ready to be programmed. The programming interfaceaccepts either a high-voltage (12-volt) or a low-voltage(VCC) program enable signal. The low voltage program-ming mode provides a convenient way to program theAT89C51 inside the user’s system, while the high-voltageprogramming mode is compatible with conventional thirdparty Flash or EPROM programmers.
The AT89C51 is shipped with either the high-voltage orlow-voltage programming mode enabled. The respectivetop-side marking and device signature codes are listed inthe following table.
The AT89C51 code memory array is programmed byte-by-byte in either programming mode. To program any non-blank byte in the on-chip Flash Memory, the entire memorymust be erased using the Chip Erase Mode.
Programming Algorithm: Before programming theAT89C51, the address, data and control signals should beset up according to the Flash programming mode table andFigures 3 and 4. To program the AT89C51, take the follow-ing steps.
1. Input the desired memory location on the addresslines.
2. Input the appropriate data byte on the data lines.
3. Activate the correct combination of control signals.
4. Raise EA/VPP to 12V for the high-voltage programmingmode.
5. Pulse ALE/PROG once to program a byte in the Flasharray or the lock bits. The byte-write cycle is self-timedand typically takes no more than 1.5 ms. Repeat steps1 through 5, changing the address and data for theentire array or until the end of the object file is reached.
Data Polling: The AT89C51 features Data Polling to indi-cate the end of a write cycle. During a write cycle, anattempted read of the last byte written will result in the com-plement of the written datum on PO.7. Once the write cycle
has been completed, true data are valid on all outputs, andthe next cycle may begin. Data Polling may begin any timeafter a write cycle has been initiated.
Ready/Busy : The progress of byte programming can alsobe monitored by the RDY/BSY output signal. P3.4 is pulledlow after ALE goes high during programming to indicateBUSY. P3.4 is pulled high again when programming isdone to indicate READY.
VPP = 12V VPP = 5V
Top-Side Mark AT89C51xxxxyyww
AT89C51xxxx-5yyww
Signature (030H)=1EH(031H)=51H
(032H)=FFH
(030H)=1EH(031H)=51H
(032H)=05H
AT89C514-34
Program Verify: If lock bits LB1 and LB2 have not beenprogrammed, the programmed code data can be read backvia the address and data lines for verification. The lock bitscannot be verified directly. Verification of the lock bits isachieved by observing that their features are enabled.
Chip Erase: The entire Flash array is erased electricallyby using the proper combination of control signals and byholding ALE/PROG low for 10 ms. The code array is writtenwith all “1”s. The chip erase operation must be executedbefore the code memory can be re-programmed.
Reading the Signature Bytes: The signature bytes areread by the same procedure as a normal verification oflocations 030H,
031H, and 032H, except that P3.6 and P3.7 must be pulledto a logic low. The values returned are as follows.
(030H) = 1EH indicates manufactured by Atmel(031H) = 51H indicates 89C51(032H) = FFH indicates 12V programming(032H) = 05H indicates 5V programming
Programming InterfaceEvery code byte in the Flash array can be written and theentire array can be erased by using the appropriate combi-nation of control signals. The write operation cycle is self-timed and once initiated, will automatically time itself tocompletion.
All major programming vendors offer worldwide support forthe Atmel microcontroller series. Please contact your localprogramming vendor for the appropriate software revision.
Flash Programming Modes
Note: 1. Chip Erase requires a 10-ms PROG pulse.
Mode RST PSEN ALE/PROG EA/VPP P2.6 P2.7 P3.6 P3.7
Write Code Data H L H/12V L H H H
Read Code Data H L H H L L H H
Write Lock Bit - 1 H L H/12V H H H H
Bit - 2 H L H/12V H H L L
Bit - 3 H L H/12V H L H L
Chip Erase H L H/12V H L L L
Read Signature Byte H L H H L L L L
(1)
AT89C51
4-35
Figure 3. Programming the Flash Figure 4. Verifying the Flash
P1
P2.6
P3.6
P2.0 - P2.3
A0 - A7ADDR.
OOOOH/OFFFH
T
SEE FLASHPROGRAMMINGMODES ABLE
3-24 MHz
A8 - A11P0
+5V
P2.7
PGMDATA
PROG
V /VIH PP
VIH
ALE
P3.7
XTAL2 EA
RST
PSEN
XTAL1
GND
VCC
AT89C51
P1
P2.6
P3.6
P2.0 - P2.3
A0 - A7ADDR.
OOOOH/0FFFH
3-24 MHz
A8 - A11P0
+5V
P2.7
PGM DATA(USE 10KPULLUPS)
VIH
VIH
ALE
P3.7
XTAL2 EA
RST
PSEN
XTAL1
GND
VCC
AT89C51
T
SEE FLASHPROGRAMMINGMODES ABLE
Flash Programming and Verification Characteristics TA = 0°C to 70°C, VCC = 5.0 ± 10%
Note: 1. Only used in 12-volt programming mode.
Symbol Parameter Min Max Units
VPP(1) Programming Enable Voltage 11.5 12.5 V
IPP(1) Programming Enable Current 1.0 mA
1/tCLCL Oscillator Frequency 3 24 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(1) VPP Hold After PROG 10 µs
tGLGH PROG Width 1 110 µ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 2.0 ms
AT89C514-36
Flash Programming and Verification Waveforms - High Voltage Mode (V PP = 12V)
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.4(RDY/BSY)
PROGRAMMINGADDRESS
VERIFICATIONADDRESS
DATA IN DATA OUT
Flash Programming and Verification Waveforms - Low Voltage Mode (V PP = 5V)
tGLGH
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
P2.7(ENABLE)
P3.4(RDY/BSY)
PROGRAMMINGADDRESS
VERIFICATIONADDRESS
DATA IN DATA OUT
AT89C51
4-37
Absolute Maximum Ratings*
DC CharacteristicsTA = -40°C to 85°C, VCC = 5.0V ± 20% (unless otherwise noted)
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 greater than the listed test conditions.
2. Minimum VCC for Power Down is 2V.
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
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 mA 0.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 20 mA
Idle Mode, 12 MHz 5 mA
Power Down Mode(2) VCC = 6V 100 µA
VCC = 3V 40 µA
AT89C514-38
AC Characteristics (Under Operating Conditions; Load Capacitance for Port 0, ALE/PROG, and PSEN = 100 pF; Load Capacitance for all other outputs = 80 pF)
External Program and Data Memory Characteristics
Symbol Parameter 12 MHz Oscillator 16 to 24 MHz Oscillator Units
Min Max Min Max
1/tCLCL Oscillator Frequency 0 24 MHz
tLHLL ALE Pulse Width 127 2tCLCL-40 ns
tAVLL Address Valid to ALE Low 43 tCLCL-13 ns
tLLAX Address Hold After ALE Low 48 tCLCL-20 ns
tLLIV ALE Low to Valid Instruction In 233 4tCLCL-65 ns
tLLPL ALE Low to PSEN Low 43 tCLCL-13 ns
tPLPH PSEN Pulse Width 205 3tCLCL-20 ns
tPLIV PSEN Low to Valid Instruction In 145 3tCLCL-45 ns
tPXIX Input Instruction Hold After PSEN 0 0 ns
tPXIZ Input Instruction Float After PSEN 59 tCLCL-10 ns
tPXAV PSEN to Address Valid 75 tCLCL-8 ns
tAVIV Address to Valid Instruction In 312 5tCLCL-55 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-20 ns
tQVWH Data Valid to WR High 433 7tCLCL-120 ns
tWHQX Data Hold After WR 33 tCLCL-20 ns
tRLAZ RD Low to Address Float 0 0 ns
tWHLH RD or WR High to ALE High 43 123 tCLCL-20 tCLCL+25 ns
AT89C51
4-39
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
AT89C514-40
External Data Memory Write Cycle
External Clock Drive Waveforms
External Clock Drive
Symbol Parameter Min Max Units
1/tCLCL Oscillator Frequency 0 24 MHz
tCLCL Clock Period 41.6 ns
tCHCX High Time 15 ns
tCLCX Low Time 15 ns
tCLCH Rise Time 20 ns
tCHCL Fall Time 20 ns
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
AT89C51
4-41
Serial Port Timing: Shift Register Mode Test Conditions(VCC = 5.0 V ± 20%; Load Capacitance = 80 pF)
Shift Register Mode Timing Waveforms
Symbol Parameter 12 MHz Osc Variable Oscillator Units
Min 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-117 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
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 to float when 100 mV change from the loaded VOH/VOL level occurs.
VLOAD+ 0.1V
Timing ReferencePoints
V
LOAD- 0.1V
LOAD
V VOL+ 0.1V
VOL- 0.1V
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 measure-ments are made at VIH min. for a logic 1 and VIL max. for a logic 0.
0.45V
TEST POINTS
V - 0.5VCC 0.2 V + 0.9VCC
0.2 V - 0.1VCC
AT89C514-42
Ordering Information
Speed(MHz)
PowerSupply Ordering Code Package Operation Range
12 5V ± 20% AT89C51-12AC 44A Commercial
AT89C51-12JC 44J (0°C to 70°C)
AT89C51-12PC 40P6
AT89C51-12QC 44Q
AT89C51-12AI 44A Industrial
AT89C51-12JI 44J (-40°C to 85°C)
AT89C51-12PI 40P6
AT89C51-12QI 44Q
AT89C51-12AA 44A Automotive
AT89C51-12JA 44J (-40°C to 105°C)
AT89C51-12PA 40P6
AT89C51-12QA 44Q
16 5V ± 20% AT89C51-16AC 44A Commercial
AT89C51-16JC 44J (0°C to 70°C)
AT89C51-16PC 40P6
AT89C51-16QC 44Q
AT89C51-16AI 44A Industrial
AT89C51-16JI 44J (-40°C to 85°C)
AT89C51-16PI 40P6
AT89C51-16QI 44Q
AT89C51-16AA 44A Automotive
AT89C51-16JA 44J (-40°C to 105°C)
AT89C51-16PA 40P6
AT89C51-16QA 44Q
20 5V ± 20% AT89C51-20AC 44A Commercial
AT89C51-20JC 44J (0°C to 70°C)
AT89C51-20PC 40P6
AT89C51-20QC 44Q
AT89C51-20AI 44A Industrial
AT89C51-20JI 44J (-40°C to 85°C)
AT89C51-20PI 40P6
AT89C51-20QI 44Q
AT89C51
4-43
Ordering Information
Speed(MHz)
PowerSupply Ordering Code Package Operation Range
24 5V ± 20% AT89C51-24AC 44A Commercial
AT89C51-24JC 44J (0°C to 70°C)
AT89C51-24PC 44P6
AT89C51-24QC 44Q
AT89C51-24AI 44A Industrial
AT89C51-24JI 44J (-40°C to 85°C)
AT89C51-24PI 44P6
AT89C51-24QI 44Q
Package Type
44A 44 Lead, Thin Plastic Gull Wing Quad Flatpack (TQFP)
44J 44 Lead, Plastic J-Leaded Chip Carrier (PLCC)
40P6 40 Lead, 0.600” Wide, Plastic Dual Inline Package (PDIP)
44Q 44 Lead, Plastic Gull Wing Quad Flatpack (PQFP)
©2000 Fairchild Semiconductor International Rev. A, February 2000
BD
135/137/139
1 TO-126
NPN Epitaxial Silicon TransistorAbsolute Maximum Ratings TC=25°C unless otherwise noted
Electrical Characteristics TC=25°C unless otherwise noted
hFE Classification
Symbol Parameter Value Units VCBO Collector-Base Voltage : BD135
: BD137 : BD139
45 60 80
VVV
VCEO Collector-Emitter Voltage : BD135 : BD137 : BD139
45 60 80
VVV
VEBO Emitter-Base Voltage 5 V
IC Collector Current (DC) 1.5 A
ICP Collector Current (Pulse) 3.0 A
IB Base Current 0.5 A
PC Collector Dissipation (TC=25°C) 12.5 W
PC Collector Dissipation (Ta=25°C) 1.25 W
TJ Junction Temperature 150 °C TSTG Storage Temperature - 55 ~ 150 °C
Symbol Parameter Test Condition Min. Typ. Max. Units VCEO(sus) Collector-Emitter Sustaining Voltage
: BD135: BD137: BD139
IC = 30mA, IB = 0 456080
VVV
ICBO Collector Cut-off Current VCB = 30V, IE = 0 0.1 µA
IEBO Emitter Cut-off Current VEB = 5V, IC = 0 10 µA
hFE1 hFE2
hFE3
DC Current Gain : ALL DEVICE: ALL DEVICE: BD135: BD137, BD139
VCE = 2V, IC = 5mAVCE = 2V, IC = 0.5AVCE = 2V, IC = 150mA
25254040
250160
VCE(sat) Collector-Emitter Saturation Voltage IC = 500mA, IB = 50mA 0.5 V
VBE(on) Base-Emitter ON Voltage VCE = 2V, IC = 0.5A 1 V
Classification 6 10 16
hFE3 40 ~ 100 63 ~ 160 100 ~ 250
BD135/137/139
Medium Power Linear and Switching Applications• Complement to BD136, BD138 and BD140 respectively
1. Emitter 2.Collector 3.Base
©2000 Fairchild Semiconductor International
BD
135/137/139
Rev. A, February 2000
Typical Characteristics
Figure 1. DC current Gain Figure 2. Collector-Emitter Saturation Voltage
Figure 3. Base-Emitter Voltage Figure 4. Safe Operating Area
Figure 5. Power Derating
10 100 10000
10
20
30
40
50
60
70
80
90
100VCE = 2V
h FE, D
C C
UR
RE
NT
GA
IN
IC[mA], COLLECTOR CURRENT
1E-3 0.01 0.1 1 100
50
100
150
200
250
300
350
400
450
500
I C =
10
I B
I C =
20
I B
VC
E(s
at)[m
V],
SA
TUR
ATI
ON
VO
LTA
GE
IC[A], COLLECTOR CURRENT
1E-3 0.01 0.1 1 100.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.1
VBE(on)
VCE = 5V
VBE(sat)
IC = 10 IB
VB
E[V
], B
AS
E-E
MIT
TE
R V
OLT
AG
E
IC[A], COLLECTOR CURRENT
1 10 1000.01
0.1
1
10
BD
139B
D137
BD
135
10us
100us
1ms
DC
IC MAX. (Pulsed)
IC MAX. (Continuous)
I C
[A],
CO
LLE
CTO
R C
UR
RE
NT
VCE[V], COLLECTOR-EMITTER VOLTAGE
0 25 50 75 100 125 150 1750.0
2.5
5.0
7.5
10.0
12.5
15.0
17.5
20.0
PC[W
], P
OW
ER
DIS
SIP
ATI
ON
TC[oC], CASE TEMPERATURE
Package Demensions
©2000 Fairchild Semiconductor International Rev. A, February 2000
BD
135/137/139
Dimensions in Millimeters
3.25 ±0.208.00 ±0.30
ø3.20 ±0.10
0.75 ±0.10
#1
0.75 ±0.10
2.28TYP[2.28±0.20]
2.28TYP[2.28±0.20]
1.60 ±0.10
11
.00
±0
.20
3.9
0 ±
0.1
0
14
.20
MA
X
16
.10
±0
.20
13
.06
±0
.30
1.75 ±0.20
(0.50)(1.00)
0.50+0.10–0.05
TO-126
©2000 Fairchild Semiconductor International Rev. E
TRADEMARKS
The following are registered and unregistered trademarks Fairchild Semiconductor owns or is authorized to use and isnot intended to be an exhaustive list of all such trademarks.
ACEx™Bottomless™CoolFET™CROSSVOLT™E2CMOS™FACT™FACT Quiet Series™FAST®
FASTr™GTO™
HiSeC™ISOPLANAR™MICROWIRE™POP™PowerTrench®
QFET™QS™Quiet Series™SuperSOT™-3SuperSOT™-6
SuperSOT™-8SyncFET™TinyLogic™UHC™VCX™
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 SEMICONDUCTORINTERNATIONAL.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.
SL74LS14
System Logic Semiconductor SLS
Hex Schmitt-Trigger Inverter
This device contains six independent gates each of which performs the logic INVERT function. Each input has hysteresis which increases the noise immunity and transforms a slowly changing input signal to a fast changing, jitter free output.
ORDERING INFORMATION SL74LS14N Plastic SL74LS14D SOIC
TA = 0° to 70° C for all packages
LOGIC DIAGRAM
PIN 14 =VCC PIN 7 = GND
PIN ASSIGNMENT
FUNCTION TABLE
Inputs Output
A Y
L H
H L
SL74LS14
System Logic Semiconductor SLS
MAXIMUM RATINGS*
Symbol Parameter Value Unit
VCC Supply Voltage 7.0 V
VIN Input Voltage 7.0 V
VOUT Output Voltage 5.5 V
Tstg Storage Temperature Range -65 to +150 °C
*Maximum Ratings are those values beyond which damage to the device may occur. Functional operation should be restricted to the Recommended Operating Conditions.
RECOMMENDED OPERATING CONDITIONS Symbol Parameter Min Max Unit
VCC Supply Voltage 4.75 5.25 V
IOH High Level Output Current -15 mA
IOL Low Level Output Current 24 mA
TA Ambient Temperature Range 0 +70 °C
DC ELECTRICAL CHARACTERISTICS over full operating conditions
Guaranteed Limit
Symbol Parameter Test Conditions Min Max Unit
VT+ - Positive-Going Input Threshold Voltage
VCC = 5 V 0.5 1 V
VT- - Negative-Going Input Threshold Voltage
VCC = 5 V 1.4 1.9 V
VT+ - VT- Hysteresis VCC = 5 V 0.4 V
VIK Input Clamp Voltage VCC = min, IIN = -18 mA -1.5 V
VOH High Level Output Voltage VCC = min, IOH = -0.4 mA, VI=0.5 V
2.7 V
VOL Low Level Output Voltage VCC = min, IOL = 4 mA VI=1.9 V
0.4 V
VCC = min, IOL = 8 mA VI=1.9 V
0.5
IIH High Level Input Current VCC = max, VIN = 2.7 V 20 µA
VCC = max, VIN = 7.0 V 0.1 mA
IIL Low Level Input Current VCC = max, VIN = 0.4 V -0.4 mA
IO Output Short Circuit Current VCC = max, VO =0 V (Note 1)
-20 -100 mA
ICC Supply Current Total with outputs high
VCC = max 16 mA
Total with outputs low
21
SL74LS14
System Logic Semiconductor SLS
Note 1: Not more than one output should be shorted at a time, and the duration should not exceed one second.
SL74LS14
System Logic Semiconductor SLS
AC ELECTRICAL CHARACTERISTICS (TA = 25°C, VCC = 5.0 V, CL = 15 pF, RL = 2 kΩ , tr = 15 ns, t f = 6.0 ns)
Symbol Parameter Min Max Unit
tPLH Propagation Delay, Input A to Output Y 22 ns
tPHL Propagation Delay, Input A to Output Y 22 ns
Figure 1. Switching Waveforms
NOTES A. CL includes probe and jig capacitance. B. All diodes are 1N916 or 1N3064.
Figure 2. Test Circuit