TUGAS AKHIR
Oleh:
Timotius Cornelius Allo < 32106018 > Heru Hutapea < 32106022 >
Disusun untuk memenuhi syarat kelulusan Program Diploma III
Program Studi Teknik Elektro
Politeknik Batam
PROGRAM STUDI TEKNIK ELEKTRO POLITEKNIK BATAM
BATAM 2009
KIT MIKROKONTROLER BERBASIS AT89S51
TUGAS AKHIR
Oleh :
Timotius Cornelius Allo < 32106018 > Heru Hutapea < 32106022 >
Diajukan dan disahkan sebagai Laporan Tugas akhir
di Program Studi Teknik Elektro Politeknik Batam
Batam, Juni 2009
Pembimbing,
Hendawan Soebhakti, ST NIK : 104031
i
memberikan berkat dan juga karunia-Nya sehingga penulis dapat menyelesaikan
Laporan Tugas Akhir ini. Laporan ini disusun untuk memenuhi syarat kelulusan
program diploma III pada program study Teknik Elektro Politeknik Batam.
Adapun judul laporan Tugas Akhir ini adalah “KIT MIKROKONTROLER
BERBASIS AT89S51.”
Pada kesempatan ini penulis ingin mengucapkan terimakasih kepada semua pihak
yang telah memberikan bantuan baik secara moril maupun material didalam
penyusunan laporan tugas Akhir ini, terutama kepada:
1. Orang tua tercinta yang telah memberi dorongan dan bantuan baik dalam doa,
materi dan juga motivasi kepada penulis
2. Bapak Priyono Eko Sanyoto, selaku direktur politeknik Batam
3. Bapak Iman Fahruzi, ST selaku KAPRODI jurusan Teknik Elektro
4. Bapak Hendawan Soebhakti, ST selaku pembimbing
5. Seluruh dosen jurusan elektronika Industri
6. Keluarga besar penulis, kakak, abang, adik dan juga saudara-saudara yang
selalu memberikan dorongan dan juga motivasi
7. Seorang teman dan sahabat terkasih yang selalu memberi semangat, motivasi
dan dorongan dalam menyelesaikan Tugas Akhir ini
8. Semua teman-teman penulis, khususnya teman-teman seangkatan jurusan
ii Akhir ini.
Akhir kata, semoga isi dari Laporan Tugas Akhir ini dapat bermanfaat bagi kita
semua.
Batam, Juni 2009
iii
yang tersusun dan dapat dikendalikan atau dengan kata lain dapat dikontrol oleh
sebuah IC kontroler yang kita kenal dengan nama AT89S51. Alat-alat elektronika
yang ada disusun sedemikian rupa dalam suatu media koper atau box yang
kemudian dapat kita gunakan sebagai sarana praktikum atau simulasi elektronika.
Ada pun jenis komponen elektronika yang tersusun dan dapat dikontrol oleh IC
AT89S51, adalah sebagai berikut :
1. Seven – Segment 3-digit
2. 8-bit Output Led
3. 8-bit Input Switch
4. LCD 16x2
5. ADC 8-bit
6. Keypad 4x4
7. Motor Servo dengan sudut putar 80 derajat
8. Motor Stepper tipe 6 kabel
9. Motor DC 12 V
Keseluruhan komponen tersebut di atas dapat kita kendalikan secara bersamaan
maupun satu-persatu melalui sebuah program yang sebelumnya telah kita
download kedalam IC AT89S51. Dan bahasa pemrograman yang kita pergunakan
dalam pengontrolan melalui program yang ada adalah dengan menggunakan
iv
ABSTRAK ... iii
DAFTAR ISI ... iv
DAFTAR TABEL ... vii
DAFTAR GAMBAR ... viii
Bab I Pendahuluan ... 1
1.1 Latar Belakang ... 1
1.2 Tujuan dan Manfaat ... 2
1.3 Metodologi Penelitian ... 3
1.4 Batasan Masalah ... 3
1.5 Sistematika Penulisan ... 4
Bab II Ikhtisar Sistem ... 6
2.1 Deskripsi Umum ... 6
2.2 Karakteristik...9
2.3 Lingkungan Operasi dan Pengembangan ... 10
Bab III Landasan Teori ... 11
3.1 Mikrokontroler AT89S51 ... 11
3.2 Seven Segment ... 14
3.3 8-Bit Output LED ... 18
3.4 8-Bit Input Switch ... 19
v
3.9 Motor Stepper ... 29
3.10 Motor DC ... 30
3.11 Power Supply ... 31
Bab IV Perancangan Sistem ... 33
4.1 Perancangan Hardware ... 33
4.1.1 Perancangan Minimum Sistem AT89S51... 33
4.1.2 Perancangan Seven Segment Tiga Digit dan Driver ... 34
4.1.3 Perancangan LED 8-Bit ... 36
4.1.4 Perancangan Switch 8-Bit ... 36
4.1.5 Perancangan LCD 16x2 ... 37
4.1.6 Perancangan ADC 8-Bit ... 38
4.1.7 Perancangan Keypad 4x4 ... 40
4.1.8 Perancangan Motor Servo 80 derajat ... 40
4.1.9 Perancangan Motor Stepper tipe 6 kabel ... 41
4.1.10 Perancangan Motor DC 12V... 42
4.1.11 Perancangan Power Supply ... 43
4.1.12 Perancangan Mekanik Box dan Tata Letak ... 44
4.2 Perancangan Software ... 46
Bab V Pengukuran, Pengujian dan Analisa Sistem ... 59
vi
5.1.4 Pengukuran Keluaran Tegangan Switch ... 61
5.1.5 Pengukuran Input LCD ... 61
5.1.6 Pengukuran Input LED ... 61
5.1.7 Pengukuran Input Seven Segment ... 62
5.1.8 Pengukuran I/O Motor Servo... 62
5.1.9 Pengukuran I/O Motor Stepper ... 62
5.1.10 Pengukuran Output ADC 0804 ... 63
5.1.11 Pengujian Output Keypad ... 64
5.2 Pengukuran dan Pengujian Alat Secara Keseluruhan ... 65
5.3 Analisa Sistem ... 65
Bab VI Kesimpulan dan Saran ... 66
6.1 Kesimpulan ... 66
6.2 Saran ... 66
Daftar Pustaka ... 67
viii
Gambar 3.1 Konfigurasi Pin AT89S51...12
Gambar 3.2 Konfigurasi Seven Segment Common Anode………....15
Gambar 3.3 Konfigurasi Seven Segment Common Cathode………...15
Gambar 3.4 Logic simbol IC 74LS47………16
Gambar 3.5 Konfigurasi LED...18
Gambar 3.6 Prinsip Kerja LED...19
Gambar 3.7 Diagram pewaktuan saat terjadi perubahan dari 1 ke 0………..20
Gambar 3.8 Deskripsi pin LCD...21
Gambar 3.9 Rangkaian Skematik LCD...23
Gambar 3.10 Konfigurasi Keypad 4x4………...27
Gambar 3.11 Koneksi keypad dengan mikrokontroler...28
Gambar 3.12 Konstruksi Motor Servo………...29
Gambar 3.13 Skema Rangkaian Driver Motor Stepper………...30
Gambar 3.14 Konstruksi Dasar Motor DC………...31
Gambar 3.15 Arah Putaran Motor DC………...31
Gambar 3.16 Bentuk Fisik Rangkaian Power Supply………32
Gambar 4.1 Skematik minimum sistem AT89S51……….34
Gambar 4.2 Skematik Seven Segment………...35
Gambar 4.3 Skematik LED………36
ix
Gambar 4.8 Skematik Motor Servo………40
Gambar 4.9 Schematic Motor Stepper………...41
Gambar 4.10 Skematik Motor DC……….42
vii
Table 3.2 Tabel kebenaran IC 74LS47………...17
Tabel 3.3 Konfigurasi Pin LCD 16 karakter x 2 baris………...21
Tabel 5.1 Hasil Pengukuran Rangkaian Power Supply……….60
Tabel 5.2 Data Hasil Pengukuran I/O Motor DC...61
Tabel 5.3 Data Hasil Pengukuran Tegangan Switch...61
Tabel 5.3 Data Hasil Pengukuran Tegangan Switch...61
Tabel 5.5 Data Hasil Pengukuran Input LED...61
Tabel 5.6 Data Hasil Pengukuran Input Seven Segment...62
Tabel 5.7 Data Pengukuran ADC 0804...63
BAB I
PENDAHULUAN
1.1 Latar Belakang
Di era globalisasi seperti ini perkembangan teknologi di dunia semakin hari
semakin canggih dandunia Mikrokontroler dewasa ini berkembang sangat pesat.
Manusia terus berkreasi, menciptakan dan mengembangkan sesuatu yang bersifat
bisa di kontrol atau kontroler. Aplikasinya telah masuk ke dalam berbagai aspek
kehidupan manusia. Berbagai macam alat terus dirancang dan dikembangkan
sehingga tercipta alat-alat yang mudah untuk di kontrol. Alasan paling mendasar
dari pengembangan tersebut adalah untuk menghilangkan atau paling tidak
mengurangi proses pekerjaan yang dilakukan manusia secara manual.
Dalam dunia pendidikan pun hal seperti ini kerap kita temukan. Di dunia
pendidikan elektronika khususnya, banyak kita temukan berbagai pelajaran yang
memungkinkan siswa atau mahasiswanya mengkreasikan sesuatu yang bisa
dikontrol. Kontroler yang paling sering kita temukan adalah Mikrokontroler. Jenis
kontroler ini sangat mudah digunakan, dan sangat pesat perkembangannya, mulai
dari jenisnya, aplikasinya, sampai bahasa pemrograman yang digunakan. Tapi
tidak jarang kita menemukan para mahasiswa yang tidak dapat mengaplikasikan
pengetahuan mereka tentang mikrokontroler menjadi sebuah aplikasi pada sebuah
pendukung untuk aplikasinya sering sekali memakan biaya yang mahal, sulit
untuk dibuat dan juga komponen pendukung yang sulit dicari. Oleh karena itu
untuk mempermudah dalam melakukan praktikum Mikrokontroler maka
minimum sistem dan juga hardware pendukungnya diintegrasikan dalam satu
tempat atau satu kit Mikrokontroler AT89S51.
Dengan latar belakang diatas, penulis mencoba untuk membuat sebuah kit
praktikum berbasis AT89S51 yang dilengkapi beberapa hardware pendukung
yang bisa digunakan untuk keperluan praktikum dan pengembangan pengetahuan
mahasiswa. Diharapkan, dengan alat ini mahasiswa tidak perlu lagi khawatir
tentang bagaimana mereka akan ilmu yang mereka dapat. Alat ini bisa menjadi
solusi bagi para mahasiswa yang sangat menyukai dunia Mikrokontroler, karena
selain ada hardware pendukung, kit ini juga sangat mudah untuk digunakan oleh
pemula.
1.2 Tujuan dan Manfaat 1.2.1 Tujuan
• Menerapkan dan mengembangkan sebuah sistem kontrol sederhana yang dapat diaplikasikan pada berbagai hardware.
• Mengetahui prinsip dasar dalam pemograman IC AT89S51
• Menerapkan penggunaan IC Mikrokontroler AT89S51 sebagai sebuah unit pengolah data utama.
1.2.2 Manfaat
• Mempermudah mahasiswa untuk mengembangkan ilmu Mikrokontroler yang didapatkan pada saat perkuliahan.
• Memahami penerapan system pemrograman Mikrokontroler AT89S51 dengan bahasa pemrograman yang lebih rendah yaitu bahasa
assembler.
• Mempermudah mahasiswa untuk merancang sistem untuk mempermudah proses pemahaman materi perkuliahan Mikrokontroler.
1.3 Metodologi Penelitian
Dalam penyelesaian Tugas Akhir ini, penulis menggunakan beberapa metode.
Metode pengumpulan data yang dilakukan dengan cara browsing dari internet
dan dari buku-buku referensi yang ada di toko buku dan perpustakaan Politeknik
Batam serta dosen pembimbing Tugas Akhir. Dalam perancangan alatnya,
dilakukan metode pengujian terhadap rangkaian elektronik yang digunakan pada
alat ini. Semua rangkaian elektronik dipasang dan dirangkai diatas PCB dan
disusun di koper lalu diuji coba dan dianalisa. Hasil dari pengujian dan analisa
dibandingkan dengan landasan teori yang berkaitan dengan perancangan alat
tersebut.
1.4 Batasan Masalah
Berikut adalah batasan-batasan masalah dalam kit Mikrokontroler berbasis
AT89S51:
• Blok pendukung (hardware pendukung) yang tersedia adalah LCD 16x2, Seven Segment, LED 8-bit, Switch 8-bit, Motor Stepper tipe 6 kabel,
Motor Servo dengan sudut putar 80 derajat, Motor DC 12V, ADC 8-bit,
Keypad 4x4 dan minimum system AT89S51.
• Bahasa pemrograman yang digunakan pada kit ini adalah bahasa Assembler dan software yang digunakan hanya ASM51.
• Sumber catu daya yang digunakan adalah 5VDC untuk , 12VDC untuk penggunaan tegangan pada Motor DC dan Motor Servo.
1.5 Sistematika Penulisan
Sistematika penulisan bertujuan untuk menghindari terjadinya kesalahan
penafsiran terhadap isi yang terkandung didalam laporan ini. Pada laporan ini,
penulis membagi laporan menjadi 6 BAB, dimana antara bab satu dengan bab
yang lainnya masih saling berkaitan.
Berikut adalah sistematika penulisan yang diterapkan pada laporan ini:
BAB I : PENDAHULUAN
Berisi latar belakang, tujuan, manfaat, metodologi penelitian,
batasan masalah, serta sistematika penulisan.
BAB II : IKHTISAR SYSTEM
Berisi deskripsi umum mengenai cara kerja alat yang dibuat.
BAB III : LANDASAN TEORI
Berisi teori dasar dari komponen-komponen utama yang digunakan
BAB IV : PERANCANGAN SISTEM
Berisi rancangan hardware per blok, disertai dengan penjelasan
cara kerjanya serta berisi desain perancangan hardware secara
lengkap. Di akhir BAB disertai penjelasan alat secara keseluruhan.
BAB V : PENGUKURAN, PENGUJIAN DAN ANALISA SISTEM
Berisi tentang data-data hasil pengujian yang dilakukan, alat bantu
yang digunakan, metode pengujian serta analisa hasil pengujian.
BAB VI : KESIMPULAN DAN SARAN
Berisi tentang hasil analisa, kesimpulan, mengapa terjadi suatu
BAB II
IKHTISAR SYSTEM
2.1 Deskripsi Umum
Kit Mikrokontroler berbasis AT89S51 adalah suatu perangkat elektronika yang
dapat digunakan untuk mengontrol beberapa hardware dengan Mikrokontroler
AT89S51 sebagai pengolah data utama. Alat ini dirancang dengan menggunakan
Mikrokontroler sebagai perangkat lunak utamanya, sedangkan perangkat keras
lainya seperti LED 8-bit, LCD 16x2, Seven Segment 3 digit, Motor DC 12V,
Motor Stepper tipe 6 kabel, Motor Servo dengan putar 80 derajat, Keypad 4x4,
Switch 8-bit dan ADC 8-bit sebagai perangkat pendukung agar sistem ini dapat
bekerja sesuai dengan fungsi yang diinginkan. Pada dasarnya blok diagram yang
digunakan pada alat ini tergantung pada pengguna yang menggunakan alat ini.
Tetapi secara garis besar blok diagram sistem ini secara umum adalah sebagai
berikut:
Gambar 2.1 Diagram blok Kit Praktikum Mikrokontroler AT89S51
Unit input adalah sebagai berikut:
• Switch 8-bit
Switch dalam rangkaian Kit ini berfungsi sebagai suatu Input digital 8-bit,
yang dapat memberikan input terhadap Mikrokontroler dan kemudian di
Unit
Input
Mikrokontroler
AT89S51
Unit
Output
proses sesuai dengan program yang didownload di dalam IC
Mikrokontroler AT89S51.
• Keypad
Keypad yang digunakan dalam Kit ini adalah keypad 4x4. Keypad juga
berfungsi sebagai unit input yang mengirimkan data ke Mikrokontroler
dan kemudian diolah dan dieksekusi oleh Mikrokontroler tersebut.
• ADC
Suatu sensor umumnya mengeluarkan tegangan analog. Tegangan analog
ini harus dirubah menjadi digital oleh Mikrokontroler. Hal ini dikarenakan
piranti penampil data adalah dalam format digital, misalnya LCD, LED,
dan seven segment. Pada kit yang dibuat, penulis juga menyediakan piranti
atau unit masukan / input untuk mengubah sinyal analog menjadi digital
yang dapat digunakan yaitu ADC.
ADC yang dipakai dalam Kit ini adalah jenis ADC 0804 yang merupakan
resolusi 8-bit memiliki 20 pin dan waktu konversi 100 mikrosecond.
Unit output adalah sebaga berikut:
• LED 8 Bit
LED dalam rangkaian Kit ini berfungsi sebagai suatu Output display
digital 8-bit yang Output displaynya dapat diatur oleh Mikrokontroler.
Input tegangan untuk LED adalah sekitar 0.5V-15V.
• LCD
LCD merupakan singkatan dari Liquid Crystal Display. LCD yang
merupakan model LCD dengan tampilan 2 x 16 (2 baris x 16 kolom)
dengan konsumsi daya rendah dan digunakan untuk display karakter yang
diatur / diprogram oleh Mikrokontroler.
• 7 Segment
Tampilan LED seven segment merupakan salah satu komponen yang
sering digunakan pada sistem elektronika untuk menampilkan bilangan.
Tampilan masing-masing digit dibangun oleh 7 led atau terkadang jika
ditambah dengan sebuah dot (titik) sebagai desimal. Dalam sistem ini
seven segment digunakan sebagai tampilan output. 7 segment yang
digunakan dalam sistem ini adalah common catode dengan 3 digit display.
• Motor DC
Motor DC atau istilah lainnya dikenal sebagai dinamo, adalah motor yang
paling banyak digunakan untuk mobile robot atau penggerak peralatan
industri. Motor DC yag digunakan dalam sistem ini adalah motor DC
12VDC. Dalam kit ini kita dapat mengontrol kecepatan dan arah putar
motor DC sesuai dengan kebutuhan.
• Motor Servo
Motor Servo terdiri dari sebuah motor DC, serangkaian gear, sebuah
potensiometer, sebuah output shaft dan sebuah rangkaian kontrol
elektronik. Motor servo yang digunakan dalam sistem ini adalah motor
servo dengan sudut putar 800, yang artinya motor servo ini hanya dapat
bergerak dari sudut -400 sampai 400. Dalam kit ini kita dapat mengatur
• Motor Stepper
Motor stepper merupakan motor DC yang tidak memiliki komutator. Pada
umumnya, motor stepper hanya mempunyai kumparan pada statornya
sedangkan pada bagian rotornya merupakan magnet permanen. Dengan
model motor seperti ini, maka motor stepper dapat diatur posisinya pada
posisi tertentu atau berputar kearah yang diinginkan. Kecepatan motor
stepper pada dasarnya ditentukan oleh kecepatan pemberian data pada
komutatornya. Semakin cepat data yang diberikan, maka motor stepper
akan semakin cepat pula berputarnya.
Pada kit ini motor stepper yang digunakan adalah motor stepper tipe 6
kabel. Dalam kit ini kita dapat mengontrol pergerakan, kecepatan dan arah
motor stepper sesuai dengan yang kita inginkan.
2.2 Karakteristik
Perancangan Kit Mikrokontroler berbasis AT89S51 ini memiliki beberapa
karakteristik, diantaranya:
• Menggunakan Mikrokontroler AT89S51 sebagai pemroses data utama.
• Memiliki unit input berupa Keypad 4x4, Switch 8-bit, ADC 8-bit.
• Memiliki unit output berupa Motor Stepper tipe 6 kabel, Motor Servo dengan sudut putar 80 derajat, Motor DC 12V, LCD 16x2, LED 8-bit,
seven segment 3 digit.
• Dilengkapi dengan fasilitas komunikasi data serial, baik antar Mikrokontroler, maupun antar Mikrokontroler dan komputer.
• Terintegrasi dalam sebuah toolbox yang siap pakai.
2.3 Lingkup Operasi dan Pengembangan
Alat yang dirancang oleh penulis ini dapat diaplikasikan dalam beberapa aplikasi.
Selain itu didalam alat ini juga telah ditambahkan beberapa hardware untuk
mendukung aplikasi dasar yang diinginkan oleh user. Hardware pendukung yang
tersedia adalah power supply, downloader, kabel serial, motor stepper tipe 6
kabel, motor servo dengan sudut putar 80 derajat, motor DC 12V, keypad 4x4,
LCD 16x2, input switch, output LED 8-bit, seven segment 3 digit, ADC 8-bit.
Pada masa kedepannya, sistem alat ini masih dapat dikembangkan menjadi lebih
BAB III LANDASAN TEORI
3.1 Mikrokontroler AT89S51
Mikrokontroler adalah suatu chip yang dapat digunakan sebagai pengontrol utama
sistem elektronika. Hal ini dikarenakan di dalam chip tersebut sudah ada unit
pemroses, memori ROM (Read Only Memory), RAM (Random Access Memory),
Input-Output, dan lain-lain.
Dalam Proyek Akhir, penulis mengunakan Mikrokontroler berjenis AT89S51.
Pemilihan Mikrokontroler AT89S51 dalam proyek ini tidak lain karena
banyaknya kemudahan fasilitas yang didapat, diantaranya:
• Program dengan menggunakan pemrograman yang lebih rendah yaitu bahasa assembler.
• Satu Central Processing Unit (CPU) 8 bit.
• Empat programable port I/O yang masing-masing terdiri dari delapan jalur I/O.
• Osilator internal dan rangkaian pewaktu.
• Timer / Counter sebanyak 2 buah
• Lima jalur interupsi (dua interupsi external dan tiga interupsi internal)
• RAM internal 128 byte.
• Satu port serial dengan kontrol serial full duplex UART.
• Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika
• Kecepatan dalam melaksanakan instruksi per siklus satu mikrodetik pada
frekuensi 12 MHz
Berikut konfigurasi pin AT89S51:
Gambar 3.1 Konfigurasi Pin AT89S51
Penjelasan masing-masing pin AT89S51 adalah sebagai berikut:
1. VCC merupakan pin masukan catu daya +5V.
2. GND merupakan pin ground.
3. Port 0 merupakan port paralel 8 bit dua arah (bi-directional) yang dapat
digunakan untuk berbagai keperluan. Port 0 juga memultipleks alamat dan
4. Port 1 merupakan port paralel 8 bit bi-directional dengan internal
pull-up. Port 1 juga digunakan dalam proses pemrograman (In System
Programming).
P1.5 MOSI
P1.6 MISO
P1.7 SCK
5. Port 2 merupakan port paralel 8 bit bi-directional dengan internal pull-up.
Port 2 akan mengirim byte alamat jika digunakan untuk mengakses
memori eksternal.
6. Port 3 merupakan port paralel 8 bit bi-directional dengan internal pull-up.
Port 3 juga bisa difungsikan untuk keperluan khusus yaitu:
P3.0 RXD (Receive Data) P3.1 TXD (Transmit Data) P3.2 INT0 (Interrupt 0) P3.3 INT1 (Interrupt 1) P3.4 T0 (Timer 0) P3.5 T1 (Timer 1) P3.6 WR (Write Strobe) P3.7 RD (Read Strobe)
7. RST (RESET) merupakan pulsa dari low ke high akan mereset
Mikrokontroler.
8. ALE / PROG (Address Latch Enable), digunakan untuk menahan alamat
memori eksternal selama pelaksanaan instruksi.
9. PSEN (Program Store Enable), merupakan sinyal kendali yang
memperbolehkan program memori eksternal masuk ke dalam bus selama
proses pengambilan instruksi.
10.EA / VPP Jika EA = 1 maka Mikrokontroler akan melaksanakan instruksi
dari ROM internal. Jika EA = 0 maka Mikrokontroler akan melaksanakan
instruksi dari ROM eksternal.
11.XTAL1 merupakan Input ke rangkaian osilator internal.
12. XTAL2 merupakan Output dari rangkaian osilator internal.
3.2 Seven Segment
Tampilan LED seven segment merupakan salah satu komponen yang sering
digunakan pada sistem elektronik untuk menampilkan bilangan. Tampilan
masing-masing digit dibangun oleh 7 led atau terkadang jika ditambah dengan
sebuah dot (titik) sebagai desimal. Dalam sistem ini seven segment digunakan
sebagai tampilan output. Seven Segment sendiri di bagi atas dua jenis, yaitu:
3.2.1 Common Anode ( CA )
Pada Seven Segment Common Anode semua anoda dari LED dihubungkan
menjadi satu, sementara katoda LED diberi nama a, b, c, d, e, f, g dan dp (dot /
titik). Hal inilah yang membuat dia dikenal dengan tipe Common Anode.
Gambar 3.2 Konfigurasi Seven Segment Common Anode
Tanda bar diatas menunjukkan bahwa pin tersebut adalah aktif low. Sebagai
contoh untuk membentuk angka 2 maka pin common diberi tegangan +,
sedangkan pin a, c, d, f dan g diberi tegangan 0 volt.
3.2.2 Common Cathode ( CC )
Pada seven segment Common Cathode semua katoda LED dihubungkan menjadi
satu, sementara katoda LED diberi nama a, b, c, d, e, f, g dan dp (dot / titik). Hal
inilah yang membuat dia dikenal dengan tipe Common Cathode.
Seven segment tipe Common Cathode memiliki sifat aktif high. Sebagai contoh
untuk membentuk angka 1 maka pin common diberi tegangan 0 Volt. Sedangkan
pin a dan b diberi tegangan +.
Seven segment yang digunakan oleh penulis dalam Proyek Akhir adalah seven
segment tipe common anode dengan menggunakan driver IC 74LS47.
3.2.3 IC 74LS47
IC 74LS47 adalah sebuah IC decoder yang dapat mengubah kode biner menjadi
tampilan angka pada seven segment bertipe common anode.
IC 74LS47 inilah yang digunakan oleh penulis sebagai driver untuk
menyederhanakan rangkaian seven segment dengan merubah bilangan biner yang
dihasilkan oleh Mikrokontroler kedalam bentuk bilangan desimal yang dapat
ditampilkan melalui seven segment.
Berikut ini adalah konfigurasi pin dari IC 74LS47:
RBI LT
BI/RBO a- g
Tabel 3.1 Konfigurasi pin IC 74LS47
Table 3.2 Tabel kebenaran IC 74LS47 Nama Pin Deskripsi
A0-A3 Input BCD
Ripple Blanking Input ( Aktif Low )
Lamp Test Input ( Aktif Low )
Blanking Input/Ripple Blanking Output ( Aktif Low )
3.3 8 – Bit Output LED
LED dalam rangkaian Kit ini berfungsi sebagai suatu Output display digital 8-bit
yang output displaynya dapat diatur oleh Mikrokontroler. Input tegangan untuk
LED adalah sekitar 0.5V-15V.
LED (Ligth Emitting Diode) merupakan sebuah komponen semikonduktor yang
mampu menghasilkan atau dengan kata lain memancarkan cahaya sendiri.
Rangkaian penyusun utama dari LED sendiri adalah dioda.
Sama halnya dengan dioda, LED akan dapat aktif jika diberi tegangan. LED
tersusun atas dua buah layer. Dimana masing-masing layer memiliki elektron,
namun salah satu layer kaya akan elektron sedang layer yang lain kurang elektron
(banyak hole), dan layer ini dipisah oleh sebuah celah.
Saat LED di forward bias (switced on), elektron yang ada di layer yang kaya akan
elektron akan didorong menuju ke layer yang lainnya, mengisi lubang / hole yang
ada di layer tersebut. Perpindahan elektron yang terjadi menghasilkan energi
dalam bentuk cahaya. Ini yang kita sebut dengan kondisi LED on.
Tegangan Layer sedikit elektron ( ada hole ) Layer Kaya Elektron
Elektron didorong pindah menuju hole pada layer di
sebelahnya
Saat elektron pindah, menghasilkan energi dalam bentuk cahaya Sumber
Tegangan Grounding
Celah antar layer Grounding
Gambar 3.6 Prinsip Kerja LED 3.4 8 – Bit Input SWITCH
Switch dalam rangkaian Kit ini berfungsi sebagai suatu Input digital 8-bit, yang
hanya memberi input terhadap mikro dan kemudian diproses sesuai dengan
program yang di download kedalam IC mikro AT89S51.
Switch adalah sebuah perangkat yang digunakan untuk memutuskan jaringan
penyambung atau pemutus aliran listrik. Selain untuk jaringan listrik arus kuat,
switch berbentuk kecil juga dipakai untuk alat komponen elektronika arus lemah.
Secara sederhana, switch terdiri dari dua bilah logam yang menempel pada suatu
rangkaian, dan bisa terhubung atau terpisah sesuai dengan keadaan sambung (on)
atau putus (off) dalam rangkaiannya. Material kontak sambungan umumnya
dipilih agar tahan terhadap korosi. Kalau logam yang dipakai terbuat dari bahan
oksida biasa, maka switch akan sering tidak bekerja. Untuk mengurangi efek
korosi ini, paling tidak logam kontaknya harus disepuh dengan logam anti korosi
dan anti karat. pada dasarnya tombol bisa diaplikasikan untuk sensor mekanik,
karena bisa dijadikan sebagai pedoman pada Mikrokontroler untuk pengaturan
alat dalam pengontrolan.
Jika membuat aplikasi Mikrokontroler yang memanfaatkan saklar atau switch,
tentunya akan menghadapi masalah bouncing pada saklar atau switch tersebut.
Artinya, saat menekan switch tersebut, Mikrokontroler mendeteksi adanya
penekanan berkali-kali. Hal tersebut dapat dilihat pada gambar 3.7 berikut ini.
Gambar 3.7 Diagram pewaktuan saat terjadi perubahan dari 1 ke 0
Pada gambar 3.7 tersebut terlihat jelas bahwa saat terjadi perubahan tombol dari 1
milidetik (ilustrasi tengah). Mikrokontroler akan menganggap terjadi perubahan
dari 1 ke 0 berkali-kali (ilustrasi kanan).
3.5 LCD
LCD merupakan singkatan dari Liquid Crystal Display, dan yang digunakan
dalam pembuatan proyek akhir ini adalah LCD M1632 yang merupakan model
LCD dengan tampilan 2x16 (2 baris x 16 kolom) dengan konsumsi daya rendah,
dan dilengkapi mikrokontroller yang di desain khusus untuk mengendalikan LCD.
Dalam proyek ini LCD dipakai untuk display karakter yang diatur / diprogram
oleh mikrokontroler. Berikut adalah konfigurasi kaki dari LCD M1632.
Gambar 3.8 Deskripsi pin LCD
Tabel 3.3 Konfigurasi Pin LCD 16 karakter x 2 baris
Adapun pin-pin pada LCD ini yaitu:
• Pin 1 (VSS)
• Pin 3 (VLC / VO)
VLC (Voltage Liquid Crystal) merupakan tegangan yang menentukan tegangan
operasi LCD sehingga menentukan tingkat contrast dari LCD. Rumusnya yaitu;
Vopr=VCC-VLC
Tegangan operasi dari LCD tergantung dengan suhu, misalnya pada suhu 0º C
maka tegangan operasi yang dibutuhkan ialah 5 volt.
• Pin 4 (RS / Register selection)
RS ini digunakan untuk memilih 2 buah register 8-bit yang dimiliki oleh
LCD. Register tersebut ialah IR (Intruction Register) dan DR (Data
Register). Jika RS = 0, maka register yang dipilih yaitu IR, dimana IR
berfungsi untuk menyimpan kode intruksi untuk pengaturan LCD, seperti
display clear, display shift, cursor shift dan set alamat untuk DDRAM
(Display Data RAM) dan CGRAM (Character generator RAM).
Sedangkan jika RS = 1, maka register yang dipilih adalah DR, dimana DR
berfungsi sebagai data kode yang akan ditulis pada DDRAM atau
CGRAM pada saat read (R/W = 1)
• Pin 5 (R/W)
Pin ini mendefenisikan apakah LCD Read atau Write. Jika R/W = 0, maka
proses yang terjadi adalah menulis data ke LCD, sedangkan jika R/W = 1
• Pin 6 (E / Enable Signal)
Pin ini berfungsi sebagai sinyal operasi ketika proses write atau read
terjadi. Sinyal ini harus diberi clock berupa negative edge trigger
• Pin 7 – 14 (DB0 – DB7)
Pin-pin ini merupakan tempat data yang akan ditulis ke LCD atau tempat
data hasil pembacaan karakter LCD
• Pin 15 (V + BL) dan pin 16 (V – BL) Pin-pin ini berfungsi untuk memberikan BL (Back Light) / cahaya background pada layar LCD jika
diberi supply 5 volt
DDRAM merupakan alamat tempat menampilkan karakter pada LCD, yang terdiri
dari 80 alamat. Alamat DDRAM yaitu: 00H – 27H untuk line 1 dan 40H – 67H
untuk line 2.
CGROM merupakan data pola yang terdapat pada LCD prosesor yang berjumlah
192 pola 5x7 dot matrik. Sedangkan CGRAM merupakan data berisi kode
karakter yang akan ditulis pada DDRAM dengan sumber referensinya adalah data
yang terdapat pada CGROM.
3.6 ADC
Suatu sensor umumnya mengeluarkan tegangan analog. Tegangan analog ini
harus dirubah menjadi digital oleh Mikrokontroler. Hal ini dikarenakan piranti
penampil data adalah dalam format digital, misalnya LCD, LED, dan seven
segment. Pada Kit yang dibuat oleh penulis, penulis juga menyediakan piranti
atau unit masukan / input untuk mengubah sinyal analog menjadi digital yang
dapat digunakan yaitu ADC.
Analog to Digital Converter (ADC) adalah sebuah piranti yang dirancang untuk
mengubah sinyal-sinyal analog menjadi sinyal-sinyal digital. IC ADC 0804
dianggap dapat memenuhi kebutuhan dari rangkaian yang akan dibuat. IC jenis ini
bekerja secara cermat dengan menambahkan sedikit komponen sesuai dengan
spesifikasi yang harus diberikan dan dapat mengkonversikan secara cepat suatu
masukan tegangan. Hal-hal yang juga perlu diperhatikan dalam penggunaan ADC
ini adalah tegangan maksimum yang dapat dikonversikan oleh ADC dari
rangkaian pengkondisi sinyal, resolusi, pewaktu eksternal ADC, tipe keluaran,
ketepatan dan waktu konversinya.
Beberapa karakteristik penting ADC :
1. Waktu Konversi: Waktu yang dibutuhkan oleh ADC untuk mengkonversi
data analog ke digital.
2. Resolusi: Dimana kita dapat mengkonversikan data analog kedalam bit-bit
digital, dan apakah data analog tersebut akan dikonversikan kedalam 8 bit,
16 bit atau 32 bit.
4. Akurasi: Ketepatan ADC dalam mengkonversi data analog ke digital.
Ada banyak cara yang dapat digunakan untuk mengubah sinyal analog menjadi
sinyal digital yang nilainya proposional. Jenis ADC yang biasa digunakan dalam
perancangan adalah jenis successive approximation convertion atau pendekatan
bertingkat yang memiliki waktu konversi jauh lebih singkat dan tidak tergantung
pada nilai masukan analognya atau sinyal yang akan diubah.
IC ADC 0804 mempunyai dua masukan analog, Vin (+) dan Vin (-), sehingga
dapat menerima masukan diferensial. Masukan analog sebenarnya (Vin) sama
dengan selisih antara tegangan-tegangan yang dihubungkan dengan kedua pin
masukan yaitu Vin = Vin (+) – Vin (-). Kalau masukan analog berupa tegangan
tunggal, tegangan ini harus dihubungkan dengan Vin (+), sedangkan Vin (-) di
ground kan. Untuk operasi normal, ADC 0804 menggunakan Vcc = +5 Volt
sebagai tegangan referensi. Dalam hal ini jangkauan masukan analog mulai dari 0
Volt sampai 5 Volt (skala penuh), karena IC ini adalah SAC 8-bit, resolusinya
akan sama dengan :
Dimana: “n” menyatakan jumlah bit keluaran biner IC analog ke digital konverter
IC ADC 0804 memiliki generator clock intenal yang harus diaktifkan dengan
menghubungkan sebuah resistor eksternal (R) antara pin CLK OUT dan CLK IN
serta sebuah kapasitor eksternal (C) antara CLK IN dan ground digital. Frekuensi
clock yang diperoleh di pin CLK OUT sama dengan :
Dimana: - 0.91 = angka ketetapan dalam data sheet
- C = kapasitor eksternal antara CLK IN dan ground digital
Untuk sinyal clock ini dapat juga digunakan sinyal eksternal yang dihubungkan ke
pin CLK IN. ADC 0804 memiliki 8 keluaran digital sehingga dapat langsung
dihubungkan dengan saluran data Mikrokontroler. Masukan (chip select, aktif
low) digunakan untuk mengaktifkan ADC 0804. Jika berlogika tinggi, ADC 0804
tidak aktif (disable) dan semua keluaran berada dalam keadaan impedansi tinggi.
Masukan (Write atau start convertion) digunakan untuk memulai proses konversi.
Untuk itu harus diberi pulsa logika 0, sedangkan keluaran (interrupt atau end of
convertion) menyatakan akhir konversi. Pada saat dimulai konversi, akan berubah
ke logika 1. Di akhir konversi akan kembali ke logika 0.
Konfigurasi kaki ADC adalah sebagai berikut:
• WR : (input) pin ini digunakan untuk memulai konversi tegangan analog
menjadi data digital, dengan memberikan pulsa logika ”0” pada pin ini
• INT : (output) pin ini digunakan sebagai indikator apabila ADC telah
selesai menkonversikan tegangan analog menjadi digital, dengan
mengeluarkan logika ”0”
• Vin : Tegangan analog input diferensial, input Vin (+) dan Vin (-)
merupakan tegangan diferensial yang akan mengambil nilai selisih dari
kedua input. Dengan memanfaatkan input Vin maka dapat dilakukan offset
tegangan nol pada ADC
• Vref : Tegangan referensi dapat diatur sesuai dengan input tegangan pada
• Clock : Clock untuk ADC dapat diturunkan dari clock CPU atau RC
eksternal dapat ditambahkan untuk memberikan generator dari dalam.
Clock IN menggunakan schmitt triger
• CS : agar ADC dapat aktif melakukan konversi data maka input Chip Select harus diberi logika low. Data output akan berada pada kondisi three state apabila CS mendapatkan logika high
• RD : agar data ADC dapat dibaca oleh sistem mikroprocesor maka pin RD
harus diberi logika low
3.7 Keypad
Pada dasarnya keypad adalah sejumlah tombol yang disusun sedemikian rupa
sehingga membentuk susunan tombol angka dan beberapa menu lainnya, yang
outputnya ditampilkan pada display.
Penggunaan keypad dalam proyek akhir ini adalah sebagai media input yang
kemudian akan diproses dalam program yang sebelumnya didownload dan
hasilnya akan ditampilkan pada display.
Berikut adalah contoh konfigurasi keypad 4x4 :
Berikut ini adalah cara menghubungkan keypad ke Mikrokontroler :
AT89S51
Gambar 3.11 Koneksi keypad dengan mikrokontroler 3.8 Motor Servo
Motor Servo terdiri dari sebuah motor DC, serangkaian gear, sebuah
potensiometer, sebuah output shaft dan sebuah rangkaian kontrol elektronik.
Motor servo kebanyakan berbentuk kotak segi empat dengan sebuah output shaft
motor dan konektor dengan 3 kabel yaitu power, kontrol dan ground.
Gear motor servo ada yang terbuat dari plastik, metal atau titanium. Didalam
motor servo terdapat potensiometer yang digunakan sebagai sensor posisi.
Potensiometer tersebut dihubungkan dengan output shaft untuk mengetahui posisi
aktual shaft.
Ketika motor dc berputar, maka output shaft juga berputar dan sekaligus memutar
potensiometer. Rangkaian kontrol kemudian dapat membaca kondisi
potensiometer tersebut untuk mengetahui posisi aktual shaft. Jika posisinya sesuai
dengan yang diinginkan, maka motor DC akan berhenti. Sudut operasi motor
Sudut operasi (Operating Angle) dapat diatur dengan memberi input pulsa dengan
lebar yang bervariasi kepada motor tersebut. Biasanya lebar pulsanya antara 1.1
ms sampai 1.9 ms dengan periode pulsa sebesar 20 ms, dan pulsa ini dapat diatur
oleh Mikrokontroler pada kit yang ada.
Contoh Konstruksi Motor Servo.
Gambar 3.12 Konstruksi Motor Servo 3.9 Motor Stepper
Motor stepper kita banyak digunakan untuk aplikasi-aplikasi yang biasanya cukup
menggunakan torsi yang kecil, seperti untuk pengerak piringan disket dan
piringan CD. Motor stepper merupakan motor DC yang tidak memiliki komutator.
Pada umumnya, motor stepper hanya mempunyai kumparan pada statornya
sedangkan pada bagian rotornya merupakan magnet permanen.
Dengan model motor seperti ini, maka motor stepper dapat diatur posisinya pada
posisi tertentu atau berputar kearah yang diinginkan. Kecepatan motor stepper
pada dasarnya ditentukan oleh kecepatan pemberian data pada komutarornya.
Semakin cepat data yang diberikan, maka motor stepper akan semakin cepat pula
berputarnya.
3.9.1 Step Angle / SA
Motor stepper bergerak per step. Setiap bergerak satu step, motor stepper
tergantung dari jumlah kutub magnet motor stepper. Jumlah putaran yang
diperlukan agar motor stepper bergerak 1 putaran penuh (360°) adalah :
Step = 3600 / Step Angle
Misalnya, sebuah motor stepper memiliki SA=1,80 maka untuk untuk
berputar satu putaran penuh memerlukan jumlah step sebanyak:
360° / 1,8 = 200 step
Posisi motor, arah putaran motor, dan kecepatan motor dapat diatur oleh
Mikrokontroler yang terdapat di dalam kit yang sebelumnya telah di
program.
Gambar 3.13 Skema Rangkaian Driver Motor Stepper 3.10 Motor DC
Motor DC atau istilah lainnya dikenal sebagai dinamo, adalah motor yang paling
banyak digunakan untuk mobile robot atau penggerak peralatan industri. Motor
DC tidak berisik dan dapat memberikan daya yang memadai untuk tugas-tugas
berat.
Motor DC standar berputar secara bebas, berbeda halnya dengan Stepper Motor.
menggunakan shaft encoder. Untuk menggerakkan motor DC yang membutuhkan
arus yang besar, biasanya digunakan H-bridge yang terdiri dari rangkaian penguat
transistor atau menggunakan IC penguat daya.
Gambar 3.14 Konstruksi Dasar Motor DC
Gambar 3.15 Arah Putaran Motor DC
Dengan menggunakan kit ini kita dapat melakukan simulasi untuk Motor DC baik
untuk jenis putaran (Forward atau Backward) dan kontol kecepatan Motor DC
sendiri, yang sebelumnya telah di program pada Mikrokontroler.
3.11 Power Supply
Power Supply atau catu daya adalah komponen yang dapat menyediakan dan
mendistribusikan tegangan pada rangkaian elektronika seperti sumber catu daya
dan baterai, agar dapat berfungsi dengan baik maka suatu rangkaian elektronika
membutuhkan sumber catu daya yang stabil, kondisi ini dapat dicapai dengan
tegangan yang stabil sesuai dengan tegangan yang dibutuhkan. IC regulator 7805
dan 7812 berfungsi untuk menghasilkan sumber catu daya yang benar-benar
5VDC dan 12VDC. Kapasitor pada catu daya berfungsi sebagai filter atau untuk
membuang noise pada tegangan DC. Pada rangkaian untuk menyearahkan
tegangan digunakan dioda bridge, karena dioda bridge mempunyai tegangan
ripple yang lebih baik dibandingkan dioda jenis lainnya.
Berikut ini adalah bentuk fisik dari Power Supply.
Gambar 3.16 Bentuk Fisik Rangkaian Power Supply Power supply yang dipakai untuk sistem ini adalah:
1. Power supply 5VDC, digunakan untuk rangkaian board downloader
Mikrokontroler dan MT – Servo.
BAB IV
PERANCANGAN SISTEM
Perancangan sistem dari Kit Mikrokontroler AT89S51 terbagi atas dua bagian,
yaitu perancangan hardware dan perancangan software. Dimana perancangan
hardware terdiri dari perancangan minimum sistem AT89S51, perancangan seven
segment tiga digit, perancangan LED 8-bit, perancangan switch 8-bit,
perancangan LCD 16x2, perancangan ADC 8-bit, perancangan keypad 4x4,
perancangan motor servo 80 derajat, perancangan motor stepper tipe 6 kabel,
perancangan notor DC 12V, dan perancangan power supply. Sedangkan
perancangan software terdiri atas pembuatan program berbasis assembler.
4.1 Perancangan Hardware
4.1.1 Perancangan Minimum Sistem AT89S51
Mikrokontroler yang digunakan pada Kit ini adalah AT89S51. Mikrokontroler
ini mendapat supply tegangan (VCC) sebesar 5VDC yang dihubungkan pada
pin 40 (VCC). Selain itu, Mikrokontroler ini juga memiliki empat port yang
dapat berfungsi sebagai input dan juga output, yaitu port 0 – 3. Dan
masing-masing port memiliki 8 buah bit untuk input-outputnya. Clock untuk
Mikrokontroler ini diperoleh dari luar (clock external) yang terhubung pada
pin 18 (XTAL2) dan 19 (XTAL1). Pada Mikrokontroler ini tidak terdapat fitur
Gambar 4.1 Skematik minimum sistem AT89S51
Mikrokontroler ini juga dapat dikomunikasikan secara serial dengan
menambah rangkaian serial tambahan MAX232 yang dihubungkan pada pin
10 (RXD) dan 11 (TXD). Mikrokontroler ini juga dilengkapi fitur yang
memungkinkan pemakai untuk melakukan reset yang terdapat pada pin 9
(RST).
4.1.2 Perancangan Seven Segment Tiga Digit dan Driver
Dalam perancangan seven segment pada Kit ini, penulis menggunakan
• IC Driver seven segment 74LS47
IC driver ini adalah driver dari seven segment tipe Common Anode.
Dimana IC 74LS47 merupakan IC decoder yang berfungsi mengubah kode
biner menjadi tampilan angka pada seven segment dengan tipe common
anode.
• Transistor BC557 sebagai switching seven segment untuk tampilan satuan, puluhan, dan ratusan
• Seven segment yang berfungsi sebagai display
Gambar 4.2 Skematik Seven Segment
Input data dari Mikrokontroler yaitu berupa data 8-bit. Dimana empat bit awal
(MSB) merupakan data untuk switching seven segment (S1 – S3) dan data Dot
yang akan masuk menuju IC driver 74LS47 yang kemudian akan di cacah agar
dapat ditampilkan oleh seven segment.
4.1.3 Perancangan LED 8-Bit
LED yang terdapat pada Kit yang dirancang oleh penulis berfungsi
sebagai display bit keluaran dari Mikrokontroler. Display bit sebanyak 8-bit
dan LED aktif low, sehingga diperlukan IC 74LS14 sebagai komponen untuk
membuat kondisi keluaran bit Mikrokontroler menjadi low dari aktif (1
menjadi 0) untuk membuat LED menyala.
Gambar 4.3 Skematik LED 4.1.4 Perancangan Switch 8 Bit
Switch yang penulis gunakan dalam rancangan kit ini adalah toggle switch
dengan posisi, yaitu posisi high dan low. Pada saat low posisi switch
dengan VCC. Dalam kit ini terdapat 8 buah switch yang dapat mengirimkan
data 8-bit ke Mikrokontroler. Pada saat switch dalam posisi high artinya
switch mengirimkan data berlogika 1 ke Mikrokontroler, sedangkan pada saat
low switch mengirimkan data berlogika 0 ke Mikrokontroler.
Gambar 4.4 Skematik Switch 4.1.5 Perancangan LCD 16x2
Pada Kit yang dibuat oleh penulis, jenis LCD yang dipergunakan adalah tipe
16x2 (16 buah kolom yang tersusun berderet dalam 2 baris). Dalam rangakian
ini, pengiriman data dari mikrokotroler ke LCD ada 2 jenis, yaitu pengiriman
data 4-bit dan 8-bit.
Pengiriman data 4 bit artinya data input LCD dan sinyal eksekusi melalui 1
port (bersamaan), sedangakan pengiriman data 8-bit, data input dan sinyal
Gambar 4.5 Skematik LCD
Pada rangkaian LCD yang dibuat oleh penulis, terdapat sebuah potensio pada
kaki 3 LCD, dan dioda pada kaki 15 LCD. Potensio berfungsi sebagai
pengatur kontras LCD, sedangkan dioda berfungsi sebagai back light.
Pada saat Mikrokontroler mengirimkan data 4 bit ke LCD, maka data tersebut
akan di masuk ke LCD melalui pin D4 – D7, sedangkan pin R/W akan
berfungsi sebagai baca (read) data atau tulis (write) data dan pin E akan
berfungsi sebagai indikasi sinyal operasi ketika proses read atau write terjadi.
4.1.6 Perancangan ADC 8 Bit
ADC yang digunakan dalam kit yang dirancang oleh penulis adalah
ADC0804. A/D ini menggunakan metode approksimasi berturut-turut untuk
mengkonversikan masukan analog (0 – 5V) menjadi data digital 8-bit yang
ekivalen. ADC0804 mempunyai pembangkit clock internal dan memerlukan
Gambar 4.6 Skematik ADC
Pada gambar diatas Pin 11 sampai 18 (keluaran digital) adalah keluaran tiga
keadaan, yang terhubung ke LED. Apabila CS (pin 1) atau RD (pin 2) dalam
keadaan high (“1”), pin 11 sampai 18 akan mengambang (high impedanze),
apabila CS dan RD rendah keduanya, keluaran digital akan muncul pada
saluran keluaran.
Sinyal mulai konversi pada WR (pin 3). Untuk memulai suatu konversi, CS
harus rendah. Bilamana WR menjadi rendah, konverter akan mengalami reset,
dan ketika WR kembali kepada keadaan high, konversi segera dimulai. A/D
ini mempunyai dua buah ground, A GND (pin 8) dan D GND (pin 10).
4.1.7 Perancangan Keypad 4x4
Gambar 4.7 Skematik Keypad
Keypad merupakan salah satu piranti yang berfungsi sebagai media input
dalam perancangan Kit ini. Data yang diperoleh dari keypad langsung dikirim
menuju Mikrokontroler melalui port yang tersedia. Data yang diperoleh dari
penekanan keypad adalah data 8 bit, dimana data 0 – 3 merupakan data baris
sedangkang data 4 – 7 merupakan data kolom. Data yang diperoleh
Mikrokontroler dari keypad adalah dalam bentuk bilangan hexa.
4.1.8 Perancangan Motor Servo 80 Derajat
Gambar 4.8 Skematik Motor Servo
Perancangan motor servo 80 derajat pada Kit yang dibuat oleh penulis
masukan yang dapat menggerakkan motor servo dengan sudut putar 80 derajat
(- 400 00 + 400)
4.1.9 Perancangan Motor Stepper Tipe 6 Kabel
Gambar 4.9 Schematic Motor Stepper
Pada perancangan motor stepper tipe 6 kabel, penulis menggunakan empat
buah transistor dan empat buah dioda, dimana masing-masing transistor di
paralelkan dengan dioda. Fungsi transistor pada rangkaian motor stepper
adalah sebagai switch atau saklar yang mengatur input tegangan ke setiap pole
atau kutub yang dimiliki oleh motor stepper. Sedang fungsi dioda sendiri
hanya sebagai penyearah tegangan (pengaman).
Motor stepper pada Kit yang dibuat penulis menerima input power sebesar 12
Vdc. Bit kontrol yang diperoleh dari mikrokontroler berjumlah 8 bit, namun
pole atau kutub motor stepper). Bit ini yang akan mengontrol transistor untuk
mengeluarkan output ke masing-masing pole atau kutub motor stepper.
4.1.10 Perancangan Motor DC 12 V
Gambar 4.10 Skematik Motor DC
Dalam perancangan motor DC pada Kit ini, penulis menggunakan jenis motor
DC 12V. Pada perancangan rangkaian motor DC ini, penulis menggunakan
beberapa komponen pendukung, yaitu transistor, IC 4N25, dan IC 74LS00.
Fungsi dari transistor dan IC 4N25 pada rangkaian ini adalah sebagai
switching pada input bit dari mikrokontroler dan juga input tegangan untuk
mengaktifkan motor DC.
Pada IC 4N25, bit kcontrol dari mikrokontroler yang diterima pada pin 1
berfungsi sebagai switching untuk mengalirkan tegangan +12V yang terdapat
pada pin 6 menuju pin 4 untuk dialirkan menuju transistor. Tegangan yang
sehingga tegangan +12V dapat masuk menuju motor DC dan mengaktifkan
motor DC.
Bit dari Mikrokontroler yang masuk menuju IC 74LS00 (IC logika AND)
akan di-AND-kan, dan hasil proses AND akan diteruskan menuju transistor
pada pin 11. Bila hasil proses AND adalah 1 (high) berarti tegangan Vcc
masuk menuju kaki Basis dari transistor dan mengaktifkan gerbang transistor
(saklar aktif), sehingga terjadi bedapotensial yang memungkinkan motor DC
aktif.
4.1.11 Perancangan Power Supply
Power Supply atau catu daya merupakan perangkat elektronik yang sangat
penting bagi perangkat-perangkat elektronik yang memerlukan tegangan DC.
Banyak sekali perangkat-perangkat elektronik kita temukan di pasaran yang
memerlukan tegangan DC, antara lain MP3 player, radio, VCD dan termasuk
komputer (PC). Dalam perancangan power supply sebaiknya power supply
tersebut dapat menghasilkan tegangan DC searah yang murni. Hal-hal yang
perlu diperhatikan dalam perancangan power supply adalah sebagai berikut :
• Transformator (trafo) step down (berfungsi untuk menurunkan tegangan
AC yang bersumber dari 220 VAC).
• Dioda penyearah atau dioda bridge (berfungsi untuk menyearahkan AC menjadi tegangan DC).
• Filter kapasitor (berfungsi sebagai filter).
Rangkaian power supply ini digunakan sebagai sumber tegangan dari semua
rangkaian pada sistem kit Mikrokontroler. Pada rangkaian power supply ini
digunakan trafo 3A. Oleh trafo tersebut, tegangan 220VAC diturunkan
menjadi tegangan sekunder 15 VAC.
Untuk menyearahkan tegangan sehingga tegangan AC berubah menjadi
tegangan DC, maka dibutuhkan suatu penyearah. Pada rangkaian power
supply yang dirancang, menggunakan full wave rectifier dengan dua buah
dioda sebagai penyearah. Agar keluaran dari penyearah terhindar dari noise,
maka digunakanlah kapasitor. Semakin besar nilai suatu kapasitor maka hasil
keluaran tegangannya akan semakin bagus. Untuk menstabilkan tegangan
digunakan IC regulator, pada rangkaian ini digunakan IC regulator jenis
LM7805, dan LM7812. LM7805 menyatakan keluaran tegangan 5VDC,
LM7812 menyatakan keluaran tegangan 12 Vdc. Tegangan keluaran 5VDC
digunakan sebagai input power untuk Mikrokontroler dan motor servo 80
derajat. Sedangkan tegangan keluaran 12VDC digunakan sebagai input power
untuk motor stepper dan motor DC.
4.1.12 Perancangan Mekanik Tool Box dan Tata Letak
Tool Box atau koper yang penulis rancang ini memiliki spesifikasi fisik, yaitu:
• Panjang : 362 mm
• Lebar : 310 mm
Hardware yang dirancang dan disusun pada proyek ini ditata pada sebuah
acrylic dengan Mikrokontroler terletak di tengah agar mempermudah proses
koneksi port.
Adapun layout atau tata letak komponen adalah sebagai berikut :
Gambar 4.11 Tata Letak Komponen
• Komponen yang terletak di tengah yaitu Mikrokontroler AT89S51.
• Komponen yang terletak di sisi kiri Mikrokontroler, yaitu seven segment tiga digit, LCD 16x2, ADC 8-bit, keypad 4x4.
• Komponen yang terletak di sisi kanan Mikrokontroler, yaitu Switch 8-bit, Motor Servo 80 derajat, Motor Stepper tipe 6 kabel, Motor DC 12V.
4.2 Perancangan Software
4.2.1 Program Seven Segment
1. Hubungkan modul display seven segment MT-SS ke Port 1 pada modul
minimum sistem MT-51. Pastikan koneksinya benar.
2. Buatlah program seperti dibawah ini :
;--- VARIABLES --- ANGKA1 EQU 30H ANGKA2 EQU 31H ANGKA3 EQU 32H VALUE EQU 33H ;--- MAIN PROGRAM --- ORG 0000H LJMP MULAI ORG 0100H
MULAI: MOV VALUE,#0
LOOP1: MOV R0,#40
LOOP2: MOV A,VALUE
MOV B,#0AH DIV AB MOV ANGKA3,B MOV B,#0AH DIV AB MOV ANGKA2,B MOV ANGKA1,A MOV A,ANGKA3 ANL A,#0FH ORL A,#70H MOV P1,A CALL DELAY MOV A,ANGKA2 ANL A,#0FH ORL A,#0B0H MOV P1,A CALL DELAY MOV A,ANGKA1 ANL A,#0FH ORL A,#0D0H MOV P1,A CALL DELAY DJNZ R0,LOOP2 INC VALUE SJMP LOOP1 ;--- ; DELAY SUBROUTINE ;---
DELAY: MOV R5,#OFFH
MOV R6,#05H
DLY: DJNZ R5,DLY
RET END
3. Compile kemudian download file.hex ke IC AT89S51
4. Amati hasilnya pada seven segment
4.2.2. Program LED
1. Hubungkan modul LED ke Port 0 pada modul minimum system MT-51.
Pastikan koneksinya benar.
2. Buatlah program seperti dibawah ini :
$MOD51 ORG 00H MOV P0,#0FEH MOV A,P0 START: RL A MOV P0,A CALL TUNDA SJMP START TUNDA: MOV R7,#02H LUPA: MOV R6,#0FFH LUPB: MOV P5,#0FFH DJNZ R5,$ DJNZ R6,LUPB DJNZ R7,LUPA RET END
3. Compile kemudian download file.hex ke IC AT89S51
4. Amati hasilnya pada modul LED
5. Buatlah program seperti dibawah ini :
$MOD51
ORG 00H
MULAI: MOV P0,#0AAH
SJMP MULAI END
6. Compile kemudian download file.hex ke IC AT89S51
4.2.3 Program Switch
Pada percobaan ini, penulis akan membuat contoh program untuk
menampilkan kondisi switch ke LED.
1. Hubungkan modul switch ke Port 2 dan output LED ke Port 0 pada modul
minimum system MT-51. Pastikan koneksinya benar.
2. Buatlah program seperti dibawah ini :
$MOD51
ORG 00H
START: MOV A,P2
MOV P0,A
SJMP START END
3. Compile kemudian download file.hex ke IC AT89S51
4. Lihat hasilnya pada LED
5. Buatlah program seperti dibawah ini :
org 0h
CekP20: JB P2.0,CekP21 ; Menguji bit P2.0, apakah adalah logika '1'
call RLeft ; Jika P2.0=0, maka LED putar kiri sjmp CekP20 ; jump forever to CekP20
CekP21: JB P2.1,CekP20 ; Menguji bit P2.1, apakah adalah logika '1'
call RRight ; Jika P2.1=0, maka LED putar kanan
sjmp CekP20 ; jump forever to CekP2.0
;====================================================== ; Subrutin ini digunakan untuk menggerakkan LED Ke Kanan
;====================================================== RLeft: mov A,#11111110b ;send data to Acc
RLeft1: mov P0,A ;send data to P0
call delay ;call delay time
JB P2.1,RLeft2 ;Menguji bit P2.1, apakah adalah
logika '1'
sjmp EndRLeft ;Jika P2.1=0, maka lompat ke
EndRLeft RLeft2: RL A
sjmp RLeft1
EndRLeft: ret
;==================================================== ; Subrutin ini digunakan untuk menggerakkan LED Ke Kiri
;==================================================== RRight: mov A,#01111111b ;send data to Acc
call delay ;call delay time
JB P2.0,RRight2 ;Menguji bit P2.0, apakah adalah logika '1'
sjmp EndRRight ;Jika P2.0=0, maka lompat ke
EndRRight RRight2: RR A
sjmp RRight1
EndRRight: ret
;============================================= ; subroutine delay time
;============================================= delay: mov R1,#255 del1: mov R2,#255 del2: djnz R2,del2 djnz R1,del1 ret end
6. Compile kemudian download file.hex ke IC AT89S51
7. Lihat hasilnya pada LED
4.2.4 Program LCD
4.2.4.1 Menampilkan Karakter Tidak Bergerak
Pada percobaan ini penulis akan membuat program untuk menampilkan
karakter pada LCD. Karakter ‘A’ akan ditampilkan pada Seven Segmen
Display 1 Untuk melakukan percobaan ini lakukan beberapa langkah
sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power
supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian
programmer
4. Ketik program berikut ini:
$mod51 org 0h
call init_LCD
call write_inst mov R1,#'W' call write_data mov R1,#'e' call write_data mov R1,#'l' call write_data mov R1,#'c' call write_data mov R1,#'o' call write_data mov R1,#'m' call write_data mov R1,#'e' call write_data stop: sjmp stop Init_lcd:
mov r1,#00000001b ;Display clear call write_inst
mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
call write_inst
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment call write_inst ret ; Write_inst: clr P3.6 ; P3.6 = RS =0 mov P0,R1 ; P0 = D7 s/d D0 = R1 setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time clr P3.7 ; P3.7 =EN = 0 ret ; Write_data: setb P3.6 ; P3.6 = RS =1 mov P0,R1 ; P0 = D7 s/d D0 = R1 setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time clr p3.7 ; P3.7 =EN = 0 ret ; delay: mov R0,#0 delay1:mov R7,#0fh djnz R7,$ djnz R0,delay1 ret ; End
4.2.5 Program ADC
4.2.5.1 Menampilkan Data ADC ke LED
1. Hubungkan modul ADC ke Port 2 dan LED ke Port 0 pada modul
minimum system MT-51. Pastikan koneksinya benar.
2. Buatlah program seperti dibawah ini:
$mod51 org 00h utama: mov a,p2 mov p0,a sjmp utama end
3. Compile kemudian download file.hex ke IC AT89S51
4. Amati hasilnya pada LED
4.2.6 Program Keypad
1. Buatlah program seperti dibawah ini :
$mod51 org 00h baris1: mov p2,#11111110b jnb p2.4,no1 jnb p2.5,no2 jnb p2.6,no3 jnb p2.7,cor ljmp baris2 no1: mov p0,#11111110b sjmp baris1 no2: mov p0,#11111101b sjmp baris1 no3: mov p0,#11111011b sjmp baris1 cor: mov p0,#11111111b call delay mov p0,#0 call delay sjmp baris1 baris2: mov p2,#11111101b jnb p2.4,no4 jnb p2.5,no5 jnb p2.6,no6 jnb p2.7,men ljmp baris3 no4: mov p0,#11110111b sjmp baris2 no5: mov p0,#11101111b sjmp baris2 no6: mov p0,#11011111b ljmp baris2 men: mov p0,#0 call delay
mov p0,#11111111b call delay ljmp baris2 baris3: mov p2,#11111011b jnb p2.4,no7 jnb p2.5,no8 jnb p2.6,no9 jnb p2.7,arrw_up ljmp baris4 no7: mov p0,#10111111b sjmp baris2 no8: mov p0,#01111111b sjmp baris2 no9: mov p0,#11111111b ljmp baris2 arrw_up: mov p0,#0f0h ljmp baris2 baris4: mov p2,#11110111b jnb p2.4,can jnb p2.5,no0 jnb p2.6,ent jnb p2.7,arrw_dwn ljmp baris1 can: mov p0,#11110111b sjmp baris2 no0: mov p0,#0 sjmp baris2 ent: mov p0,#11011111b ljmp baris2 arrw_dwn: mov p0,#00fh ljmp baris2 delay: mov r5,#0ffh mov r6,#0fh mov r7,#05h dly: djnz r5,dly djnz r6,dly djnz r7,dly ret end
3. Compile kemudian download file.hex ke IC AT89S51
4. Amati hasilnya pada LED
5. Hubungkan modul keypad ke Port 2, output LED ke Port 0, dan output
MT-Stepper ke Port 1 pada modul minimum system MT-51. Pastikan
koneksinya benar
6. Buatlah program seperti dibawah ini :
$mod51 org 00h baris1: mov p2,#11111110b jnb p2.4,no1 jnb p2.5,no2 jnb p2.6,no3 jnb p2.7,cor ljmp baris2 no1: call stpr1 sjmp baris1 no2: mov p0,#11111101B sjmp baris1 no3:
mov p0,#11111011b sjmp baris1 cor: mov p0,#11111111b call delay mov p0,#0 call delay sjmp baris1 baris2: mov p2,#11111101b jnb p2.4,no4 jnb p2.5,no5 jnb p2.6,no6 jnb p2.7,men ljmp baris3 no4: mov p0,#11110111b sjmp baris2 no5: mov p0,#11101111b sjmp baris2 no6: mov p0,#11011111b ljmp baris2 men: mov p0,#0 call delay mov p0,#11111111b call delay ljmp baris2 baris3: mov p2,#11111011b jnb p2.4,no7 jnb p2.5,no8 jnb p2.6,no9 jnb p2.7,arrw_up ljmp baris4 no7: mov p0,#10111111b sjmp baris2 no8: mov p0,#01111111b sjmp baris2 no9: mov p0,#11111111b ljmp baris2 arrw_up: mov p0,#0f0h ljmp baris2 baris4: mov p2,#11110111b jnb p2.4,can jnb p2.5,no0 jnb p2.6,ent jnb p2.7,arrw_dwn ljmp baris1 can: mov p0,#11110111b sjmp baris2 no0: mov p0,#0 sjmp baris2 ent: mov p0,#11011111b ljmp baris2 arrw_dwn: mov p0,#00fh ljmp baris2 stpr1: mov a,#00010001b
loop: mov p1,a
call delay rl a sjmp loop delay: mov r5,#0ffh mov r6,#0fh mov r7,#05h dly: djnz r5,dly djnz r6,dly djnz r7,dly ret end
7. Compile kemudian download file.hex ke IC AT89S51
4.2.7 Program Motor Stepper 4.2.7.1 Kendali Arah Putaran
1. Hubungkan modul motor stepper MT-ST ke Port 1 pada modul
minimum system MT-51. Pastikan koneksinya benar
2. Buatlah program seperti dibawah ini :
$mod51 ORG 0000H LJMP MULAI
ORG 0100H
MULAI: MOV A,#00010001B
LOOP: MOV P1,A
CALL DELAY RL A SJMP LOOP ;--- ; DELAY SUBROUTINE ;--- DELAY: MOV R5,#0FFH MOV R6,#0FH MOV R7,#05H DLY: DJNZ R5,DLY DJNZ R6,DLY DJNZ R7,DLY RET END
3. Compile kemudian download file.hex ke IC AT89S51
4. Amati hasilnya pada motor stepper
5. Ubah instruksi RL A menjadi RR A
6. Perhatikan hasilnya dan catat pada table
Instruksi Arah Putaran
RL A
4.2.7.2 Kendali Kecepatan
7. Hubungkan modul motor stepper MT-ST ke Port 0 pada modul
minimum system MT-51. Pastikan koneksinya benar
8. Buatlah program seperti dibawah ini :
$mod51 ORG 0000H LJMP MULAI
ORG 0100H
MULAI: MOV A,#00010001B
LOOP: MOV P0,A
CALL DELAY RL A SJMP LOOP ;--- ; DELAY SUBROUTINE ;--- DELAY: MOV R5,#0FFH MOV R6,#0FH MOV R7,#05H DLY: DJNZ R5,DLY DJNZ R6,DLY DJNZ R7,DLY RET END
9. Compile kemudian download file.hex ke IC AT89S51
10.Amati hasilnya pada motor stepper
11.Pada subroutin delay, ubah instruksi MOV R7,#05H menjadi MOV
R7,#01H
12.Perhatikan hasilnya dan lengkapi tabel
Instruksi Kecepatan Putaran
MOV R7,#05H
4.2.7.3 Kendali Posisi
13.Hubungkan modul motor stepper MT-ST ke Port 0 pada modul
minimum system MT-51. Pastikan koneksinya benar
14.Buatlah program seperti dibawah ini :
$mod51 ORG 0000H LJMP MULAI
ORG 0100H
MULAI: MOV A,#00010001B
MOV R0,#25
LOOP: MOV P0,A
CALL DELAY RL A DJNZ R0,LOOP HERE: SJMP HERE DELAY: MOV R5,#0FFH MOV R6,#0FH MOV R7,#05H DLY: DJNZ R5,DLY DJNZ R6,DLY DJNZ R7,DLY RET END
15.Compile kemudian download file.hex ke IC AT89S51
16.Amati hasilnya pada motor stepper
17.Ganti instruksi MOV R0,#25 menjadi MOV R0,#50
18.Perhatikan hasilnya dan lengkapi table
19.Selanjutnya ganti nilai R0 sesuai tabel
Instruksi Posisi
MOV R0,#25
MOV R0,#50
4.2.7.4 Kendali Torsi
20.Hubungkan modul motor stepper MT – ST ke Port 0 pada modul
minimum system MT – 51. Pastikan koneksinya benar
21.Buatlah program seperti dibawah ini :
$mod51 ORG 0000H LJMP MULAI
ORG 0100H
MULAI: MOV A,#00110011B
LOOP: MOV P0,A
CALL DELAY RL A SJMP LOOP DELAY: MOV R5,#0FFH MOV R6,#0FH MOV R7,#05H DLY: DJNZ R5,DLY DJNZ R6,DLY DJNZ R7,DLY RET END
22.Compile kemudian download file.hex ke IC AT89S51
23.Amati hasilnya pada motor stepper
24.Ganti instruksi MOV A,#00110011B menjadi MOV A,#00010001B
25. Perhatikan hasilnya dan lengkapi tabel
Instruksi Torsi
MOV A,#00110011B