TUGAS AKHIR DIGITAL IC TESTER MENGGUNAKAN MIKROKONTROLLER AT89C55 Diajukan Guna Melengkapi Sebagian Syarat Dalam Mencapai Gelar Sarjana Strata Satu ( S1 )
Disusun Oleh : Nama :
Harjono Djauhari
NIM
0140311-174
:
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2009
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini: Nama
: Harjono Djauhari
NIM
: 0140311-174
Jurusan
: Teknik Elektro
Fakultas
: Teknologi Industri
Judul Skripsi
: Digital IC Tester Menggunakan Mikrokontroller AT89C55
Dengan ini menyatakan bahwa hasil penulisan Skripsi yang telah saya buat ini merupakan hasil karya sendiri dan benar keasliannya. Apabila ternyata dikemudian hari penulisan Skripsi ini merupakan hasil plagiat atau penjiplakan terhadap karya orang lain, maka saya bersedia mempertanggung-jawabkan sekaligus bersedia menerima sanksi berdasarkan aturan tata tertib di Universitas Mercu Buana. Demikian pernyataan ini saya buat dalam keadaan sadar dan tidak dipaksakan.
Penulis,
( Harjono Djauhari )
ii
LEMBAR PENGESAHAN
DIGITAL IC TESTER MENGGUNAKAN MIKROKONTROLLER AT89C55
Disusun Oleh : Nama
:
Harjono Djauhari
NIM
:
0140311-174
Jurusan
: Teknik Elektro
Peminatan
:
Elektronika
Menyetujui : Pembimbing
Koordinator Tugas Akhir
( Dr. Andi Adriansyah, MEng )
( Ir. Yudhi Gunardi, MT )
Mengetahui, Ketua Jurusan Teknik Elektro
( Ir. Yudhi Gunardi, MT ) iii
ABSTRAK DIGITAL IC TESTER MENGGUNAKAN MIKROKONTROLLER AT89C55
IC Tester digunakan untuk menguji IC, yang dengannya dapat dengan mudah menguji berbagai Digital IC dengan menggunakan IC Tester. Untuk menguji suatu IC, diperlukan alat penguji yang berbeda untuk IC yang berbeda, sehingga memerlukan jenis tester yang khusus untuk menguji suatu logic gate dan yang lain untuk menguji flip – flop atau shift register, yang mana mengakibatkan kesulitan dalam melakukan pengujian. Maka Tugas Akhir ini adalah suatu upaya untuk mengatasi masalah tersebut. Tidak seperti IC Tester yang ada, alat ini lebih dapat diandalkan dan lebih mudah dipergunakan karena tidak memerlukan perlengkapan dengan jenis alat penguji yang berbeda untuk IC yang berbeda, setiap melakukan pengujian. Programmable Digital IC Tester ini terdiri dari 1 Microcontroller 89C55, Display dan Keypad Unit, untuk Display menggunakan 16 X 2 LCD dan untuk Keypad menggunakan 4 X 3 Keypad. Dari hasil pengujian, didapatkan bahwa alat ini dapat berfungsi sesuai dengan pemrograman yang dirancang sebelumnya.
iv
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat Tuhan YME, yang telah memberikan rahmat dan anugrahnya, yang telah membimbing dan menyertai penulis selama proses penulisan Tugas Akhir ini, dari awal hingga selesai. Tujuan dari penulisan Tugas Akhir ini adalah untuk memenuhi syarat guna mencapai Gelar Sarjana Satu ( S1 ) pada Jurusan Teknik Elektro, Peminatan Elektronika, Fakultas Teknologi Industri, Universitas Mercu Buana. Didalam penulisan Tugas Akhir ini penulis telah mendapat banyak pemikiran serta dorongan moril dari berbagai pihak. Oleh karena itu dalam kesempatan ini penulis ingin sekali mengucapkan rasa terima – kasih yang sebesar – besarnya kepada: 1. Bapak Dr. Andi Adriansyah, MEng, selaku Dosen Pembimbing yang telah banyak meluangkan waktu dan pemikirannya agar Tugas Akhir ini dapat lebih baik. 2. Bapak Ir. Yudhi Gunardi, MT, sebagai Ketua Jurusan dan Koordinator Tugas Akhir Jurusan Teknik Elektro, Fakultas Teknologi Industri Universitas Mercu Buana. 3. Seluruh Staff Dosen Pengajar Teknik Elektro, Fakultas Teknologi Industri Universitas Mercu Buana. 4. Kawan – kawan Teknik Elektro angkatan 2003 yang telah membantu dan memberi dorongan hingga penulisan Tugas Akhir ini dapat diselesaikan. 5. Rusgi Kamdani, my friend yang memberi support dan bantuan pemikiran. 6. Kedua orang tua penulis yang telah melahirkan dan membesarkan, serta selalu mendoakan penulis. 7. Istri dan anak penulis yang telah mendukung penulis selama menjalankan pendidikan. 8. Semua pihak yang tidak dapat penulis sebutkan satu – persatu yang telah membantu, baik secara langsung maupun tidak langsung.
v
Penulis menyadari bahwa Skripsi Tugas Akhir ini, masih banyak terdapat kekurangan baik berupa penyusunan maupun dalam penulisan. Oleh karena itu, penulis sangat mengharapkan kritik dan saran yang bersifat membangun dari berbagai pihak, sehingga dapat memperbaiki dan menyempurnakan Skripsi ini. Akhir kata penulis, mengharapkan semoga Skripsi Tugas Akhir ini dapat berman-
faat bagi semua pihak.
Jakarta, Agustus 2009
( Penulis )
vi
DAFTAR ISI LEMBAR PERNYATAAN...........................................................................................
ii
LEMBAR PENGESAHAN............................................................................................
iii
ABSTRAKSI..................................................................................................................
iv
KATA PENGANTAR....................................................................................................
v
DAFTAR ISI..................................................................................................................
vii
DAFTAR TABEL..........................................................................................................
x
DAFTAR GAMBAR......................................................................................................
xii
BAB I
PENDAHULUAN...................................................................................
1
1.1 Latar Belakang Masalah............................................................................
1
1.2 Tujuan Penulisan.......................................................................................
1
1.3 Pokok–Pokok Pembahasan.......................................................................
1
1.4 Metode Penulisan......................................................................................
2
1.5 Sistematika Penulisan................................................................................
2
BAB II
LANDASAN TEORI......................................................................................
2.1
Pengenalan Gerbang Logika......................................................................
4 4
2.1.1
Gerbang OR................................................................................
4
2.1.2
Gerbang AND.............................................................................
5
2.1.3
Inverter........................................................................................
6
2.1.4
Gerbang NAND..........................................................................
7
2.1.5
Gerbang NOR.............................................................................
7
2.1.6 Gerbang Exclusive OR ( EXOR )............................................... 8 2.1.7 2.2
Gerbang EXNOR........................................................................
9
Rangkaian Kombinasional.....................................................................
10
2.2.1
10
Multiplexer.................................................................................
vii
2.2.2 Demultiplexer............................................................................. 11 2.2.3
Decoder......................................................................................
12
2.3 Rangkaian Sequential............................................................................. 13 2.3.1 RS Flip – Flop............................................................................ 13 2.3.2 RS Clocked Flip – Flop.............................................................. 15 2.3.3 D Flip – Flop.............................................................................. 16 2.3.4 JK Flip – Flop............................................................................. 16 2.4 Arithmetic Logic Unit ( ALU ).............................................................. 17 2.4.1 Rangkaian Half Adder................................................................ 17 2.4.2 Rangkaian Full Adder................................................................ 18 2.5 Rangkaian Shift Register........................................................................ 19 2.5.1 SISO ( Serial In Serial Out )....................................................... 20 2.5.2 SIPO ( Serial In Parallel Out ).................................................... 20 2.5.3 PISO ( Parallel In Serial Out ).................................................... 20 2.5.4 PIPO ( Parallel In Parallel Out )................................................. 21 2.6
Memori...................................................................................................
21
2.6.1 Struktur Memori......................................................................... 22 2.6.2 Sel Memori Dasar....................................................................... 22 2.7 Mikrokontroller AT89C55..................................................................... 24 2.7.1 Struktur Perangkat Keras AT89C55........................................... 24 2.7.2 Fungsi – fungsi dari Pin Mikrokontroller AT89C55.................. 25 2.7.3 Struktur Memori Mikrokontroller AT89C55............................. 29 2.7.4 SFR ( Special Function Register ).............................................. 32 2.8 LCD ( Liquid Crystal Display ).............................................................. 36 2.9 Keypad.................................................................................................... 42
viii
BAB III PERANCANGAN ALAT............................................................................. 46 3.1 Garis Besar Perancangan........................................................................ 46 3.2 Perancangan Hardware........................................................................... 47 3.2.1 20 Pin ZIF ( Socket IC )............................................................. 47 3.2.2 Mikrokontroller AT89C55......................................................... 48 3.2.3 Perancangan Keypad.................................................................. 49 3.2.4 Perancangan LCD....................................................................... 49 3.2.5 Perancangan Relay Driver.......................................................... 51 3.2.6 Perancangan Rangkaian Lengkap (Circuit Diagram Rangkaian). 52 3.2.7 Prinsip Kerja Rangkaian............................................................. 54 3.3 Perancangan Software............................................................................ 55 BAB IV PENGUJIAN ALAT..................................................................................... 57 4.1 Pengujian dan Pengukuran Rangkaian Power Supply Unit.................... 57 4.2 Pengujian Rangkaian Relay Driver........................................................
59
4.3 Pengujian LCD.......................................................................................
61
4.4 Pengujian Sistem Kerja Alat..................................................................
62
BAB V KESIMPULAN.............................................................................................. 65 DAFTAR PUSTAKA.................................................................................................... LAMPIRAN
ix
66
DAFTAR TABEL
Tabel 2.1.1 Tabel Kebenaran Gerbang OR..................................................................
5
Tabel 2.1.2 Tabel Kebenaran Gerbang AND...............................................................
6
Tabel 2.1.3 Tabel Kebenaran Logika Inverter.............................................................. 6 Tabel 2.1.4 Tabel Kebenaran Gerbang NAND............................................................
7
Tabel 2.1.5 Tabel Kebenaran Gerbang NOR................................................................ 8 Tabel 2.1.6 Tabel Kebenaran Gerbang EXOR.............................................................
9
Tabel 2.1.7 Tabel Kebenaran Gerbang EXNOR......................................................... 10 Tabel 2.2.1 Tabel Kebenaran Multiplexer dengan 2 Input......................................... 11 Tabel 2.2.2 Tabel Kebenaran Demultiplexer dengan 2 Output.................................. 12 Tabel 2.2.3 Tabel Kebenaran BCD To 7 Segment..................................................... 13 Tabel 2.3.1 Tabel Kebenaran RS Flip – Flop............................................................. 14 Tabel 2.3.2 Tabel Kebenaran RS Clocked Flip – Flop............................................... 15 Tabel 2.3.3 Tabel Kebenaran D Flip – Flop................................................................ 16 Tabel 2.3.4 Tabel Kebenaran JK Flip – Flop.............................................................. 17 Tabel 2.4.1 Tabel Kebenaran Half Adder................................................................... 18 Tabel 2.4.2 Tabel Kebenaran Full Adder.................................................................... 19 Tabel 2.8a
Fungsi – fungsi Pin LCD.......................................................................... 36
Tabel 2.8b
Function Set.............................................................................................. 38
Tabel 2.8c
Entry Mode Set......................................................................................... 38
Tabel 2.8d
Display On / Off Cursor........................................................................... 39
Tabel 2.8e
Clear Display............................................................................................ 40
Tabel 2.8f
Geser Kursor dan Display......................................................................... 40
Tabel 2.8g
Definisi / Note Geser Kursor dan Display............................................... 40
x
Tabel 2.8h
Sel Alamat Memori DDRAM.................................................................. 41
Tabel 4.1
Hasil Pengukuran pada Power Supply Unit............................................. 58
Tabel 4.2
Hasil Pengujian Rangkaian Relay Driver................................................. 60
Tabel 4.4
Hasil Pengujian Terhadap Beberapa IC Type “ 74 “............................... 62
xi
DAFTAR GAMBAR Gambar 2.1.1
Gerbang OR......................................................................................... 4
Gambar 2.1.2
Gerbang AND...................................................................................... 5
Gambar 2.1.3
Lambang Logika Inverter.................................................................... 6
Gambar 2.1.4
Gerbang NAND................................................................................... 7
Gambar 2.1.5
Gerbang NOR...................................................................................... 8
Gambar 2.1.6
Gerbang EXOR.................................................................................... 9
Gambar 2.1.7
Gerbang EXNOR................................................................................. 9
Gambar 2.2.1
Multiplexer dengan 2 Input................................................................ 11
Gambar 2.2.2
Demulitplexer dengan 2 Output......................................................... 12
Gambar 2.2.3
Decoder BCD To 7 Segment.............................................................. 12
Gambar 2.3.1
RS Flip – Flop dengan Gerbang NAND............................................ 14
Gambar 2.3.2
RS Clocked Flip – Flop...................................................................... 15
Gambar 2.3.3
Simbol dari D Flip – Flop.................................................................. 16
Gambar 2.3.4
JK Flip – Flop.................................................................................... 16
Gambar 2.4.1
Rangkaian Half Adder....................................................................... 17
Gambar 2.4.2
Rangkaian Full Adder........................................................................ 18
Gambar 2.5.1
4 – Bit Serial In Serial Out................................................................. 20
Gambar 2.5.2
4 – Bit Serial In Parallel Out.............................................................. 20
Gambar 2.5.3
4 – Bit Parallel In Serial Out.............................................................. 20
Gambar 2.5.4
4 – Bit Parallel In Parallel Out........................................................... 21
Gambar 2.6.1
Struktur Memori 4 X 4....................................................................... 22
Gambar 2.6.2a Sebuah Sel Biner ( Binary Cell / BC )............................................... 23 Gambar 2.6.2b Konstruksi Memori Sederhana dengan 12 Sel Biner......................... 23 Gambar 2.7.1
Arsitektur Perangkat Keras AT89C55............................................... 25
xii
Gambar 2.7.2
Konfigurasi Pin Mikrokontroller AT89C55....................................... 26
Gambar 2.7.3a AT89C55 Program Memory............................................................... 29 Gambar 2.7.3b AT89C55 Data Memory..................................................................... 30 Gambar 2.7.3c 128 Byte RAM Internal...................................................................... 31 Gambar 2.7.4
Special Function Register ( SFR )...................................................... 33
Gambar 2.8a
Modul LCD Character 2 X 16............................................................ 37
Gambar 2.8b
Peta Memori Posisi Karakter LCD..................................................... 41
Gambar 2.9a
Circuit Diagram Keypad 4 X 3........................................................... 43
Gambar 2.9b
Diagram Alir Scanning Keypad......................................................... 44
Gambar 3.1
Block Diagram Digital IC Tester....................................................... 46
Gambar 3.2.1
ZIF Socket.......................................................................................... 47
Gambar 3.2.2
Interface Mikrokontroller AT89C55.................................................. 48
Gambar 3.2.3
Circuit Diagram Keypad 4 X 3........................................................... 49
Gambar 3.2.4
LCD Character 2 X 16....................................................................... 50
Gambar 3.2.5
7 Open Collector ULN 2003.............................................................. 51
Gambar 3.2.6
Circuit Diagram Digital IC Tester...................................................... 52
Gambar 3.3
Flowchart Digital IC Tester................................................................ 56
Gambar 4.1
Rangkaian Power Supply Unit........................................................... 57
Gambar 4.2
Rangkaian Relay Driver..................................................................... 60
Gambar 4.3
Tampilan LCD pada pengujian modul LCD...................................... 61
Gambar 4.4
Hasil Pengujian Sistem Kerja Alat..................................................... 63
xiii
BAB I PENDAHULUAN
1.1
Latar Belakang Masalah IC Tester digunakan untuk menguji IC. IC – IC ini seringkali digunakan di
Laboratorium oleh Pelajar - pelajar dari Jurusan Perancangan Logika Digital. IC Tester yang tersedia di pasar pada saat ini biasanya mahal. IC Tester ini dibuat dengan menggunakan Microcontroller AT89C55 dan diperlengkapi dengan Keypad dan Display Unit. Untuk menguji IC Digital yang mempunyai maximum 16 pin. Setelah diprogram, sejumlah IC dapat diuji sebatas memori yang tersedia. IC Tester ini dapat digunakan untuk berbagai macam IC, yang mana termasuk Simple Logic Gate dan juga Sequential dan IC gabungan ( Combinational IC ) seperti Flip – flop, Counter, Shift Register dll.
1.2
Tujuan Penulisan Tujuan penulisan Tugas Akhir ini adalah untuk membuat alat yang ber-
manfaat, murah dan terjangkau yaitu Digital IC Tester dengan menggunakan Microcontroller AT89C55.
1.3
Pokok – Pokok Pembahasan Pembahasan pada Tugas Akhir ini meliputi Mikrokontroller AT89C55,
Keypad dan Display Unit.
1
1.4
Metode Penulisan Metode penulisan Tugas Akhir ini berdasarkan pada :
- Melakukan penelitian pustaka / literature mengenai Mikrokontroller, Keypad dan Display Unit, serta pemograman dan teori2 lainnya yang berkenaan dengan Tugas Akhir ini. - Merancang Block Diagram keseluruhan rangkaian. - Melakukan pembahasan dan analisa rangkaian tersebut. - Merealisasikan Diagram Block ke dalam rangkaian. - Menarik kesimpulan dari hasil pengujian yang diperoleh.
1.5
Sistematika Penulisan Tugas Ahir ini disusun dengan sistematika penulisan sbb :
BAB I
PENDAHULUAN Pada bagian ini berisi latar belakang, tujuan penulisan, pokok2 pemba – hasan, metode penulisan serta sistematika penulisan.
BAB II
LANDASAN TEORI Pada bagian ini menjelaskan teori2 yang mendukung seluruh rangkaian alat / komponen yang akan digunakan dalam merancang dan menguji alat
BAB III PERANCANGAN ALAT Pada bagian ini akan menjelaskan Block Diagram, prinsip kerja rangkaian dan prinsip kerja keseluruhan. BAB IV PENGUJIAN ALAT Pada bagian ini berisikan hasil pengujian alat serta analisa.
2
BAB V
PENUTUP Pada bagian ini berisi kesimpulan dari pengukuran dan pengujian alat.
3
BAB II LANDASAN TEORI
2.1 Pengenalan Gerbang Logika Gerbang Logika adalah rangkaian dasar yang membentuk computer. Jutaan Transistor dalam Mikroprosesor membentuk ribuan Gerbang Logika. Sebuah Gerbang Logika sederhana mempunyai satu Terminal Output dan satu atau lebih Terminal Input. Keluarannya dapat bernilai High ( 1 ) atau Low ( 0 ), bergantung level digital yang diberikan pada Terminal Input. Kita akan membahas tujuh Gerbang Logika dasar, yaitu: OR, AND, NAND, NOR, INVERTER ( NOT ), EXOR, dan EXNOR.
2.1.1 Gerbang OR Gerbang OR adalah gerbang yang akan memberikan Keluaran berlogika 1, bila ada Gerbang Input yang diberi Logika 1.Gerbang OR memiliki dua atau lebih Input dan satu Output. Simbol Gerbang OR dengan dua Input diperlihatkan pada Gambar 2.1.1. Operasi Gerbang OR dengan dua Input ( A dan B ), adalah sebagai berikut: Output X pada Gerbang OR akan bernilai 1, jika Input A dan B atau salah satunya bernilai 1. Dalam Persamaan Boolean, kondisi ini ditulis, sebagai: X = A + B
Gambar 2.1.1 Gerbang OR
4
Tabel Kebenaran Gerbang OR dengan dua Input diperlihatkan di bawah ini. Dalam Tabel Kebenaran, dapat terlihat bahwa: X berlogika 0, jika kedua Input 0.
Tabel 2.1.1 Tabel Kebenaran Gerbang OR
2.1.2
A
B
X=A+B
0
0
0
0
1
1
1
0
1
1
1
1
Gerbang AND Gerbang AND adalah gerbang yang memberikan Keluaran 1, bila semua Ma-
sukan bernilai 1. Tabel di bawah ini adalah Tabel Kebenaran untuk Gerbang AND dengan dua Masukan dan X sebagai Keluarannya. X akan berlogika 1, jika kedua Input berlogika 1.
Gambar 2.1.2 Gerbang AND
Tabel Kebenaran Gerbang AND dengan dua Input diperlihatkan di bawah ini. Dalam Tabel Kebenaran, dapat terlihat bahwa Output pada X adalah berlogika 1, jika kedua Input A dan B bernilai 1.
5
Tabel 2.1.2 Tabel Kebenaran Gerbang AND A
B
X=A.B
0
0
0
0
1
0
1
0
0
1
1
1
2.1.3 Inverter Inverter adalah gerbang yang dengan hanya satu Masukan, Keluarannya selalu mempunyai status berlawanan dengan status Masukan. Masukan Low, menghasilkan Keluaran High dan Masukan High, menghasilkan Keluaran Low. Dalam bentuk Biner, “ 0 “ menyatakan Low dan “ 1 “ menyatakan High. Inverter juga dinamakan Gerbang NOT, karena status Keluaran tidak sama dengan Masukan. Atau sering dinyatakan: Keluaran sebagai lawan dari Masukan. Persamaan Boolean untuk Inverter adalah dengan menulis garis di atas varia__ bel: X = A ( X = A tidak ).
Gambar 2.1.3 Lambang Logika Inverter
Tabel 2.1.3 Tabel Kebenaran Logika Inverter A
X
0
1
1
0
6
2.1.4 Gerbang NAND Operasi dari Gerbang NAND sama dengan operasi Gerbang AND, tetapi Keluarannya dibalik. Simbol untuk Gerbang NAND mirip dengan Gerbang AND, namun terdapat lingkaran kecil pada Keluarannya.
Gambar 2.1.4 Gerbang NAND ___ Persamaan Boolean untuk Gerbang NAND adalah: X = A.B
Tabel 2.1.4 Tabel Kebenaran Gerbang NAND ___ X = A.B
A
B
0
0
1
0
1
1
1
0
1
1
1
0
2.1.5 Gerbang NOR Operasi Gerbang NOR sama seperti Gerbang OR, tetapi Keluarannya dibalik. Simbol untuk Gerbang NOR serupa dengan OR, tetapi diberikan Inverter pada Keluarannya.
7
Gambar 2.1.5 Gerbang NOR
Simbol Gerbang NOR serupa dengan OR dengan Inverter, sehingga Input A dan B bernilai “ 0 “ akan menghasilkan Output “ 1 “. _____ Persamaan Boolean untuk fungsi NOR adalah: X = A + B
Tabel 2.1.5 Tabel Kebenaran Gerbang NOR _____ X=A+B
A
B
0
0
1
0
1
0
1
0
0
1
1
0
2.1.6 Gerbang Exclusive OR ( EXOR ) EXOR adalah Gerbang OR yang bersifat eksklusif, dimana Keluarannya akan “ 0 “ , jika Masukannya sama, dan jika salah satu Masukannya berbeda maka Keluaran EXOR adalah “ 1 “. Gerbang EXOR, diperlihatkan pada gambar di bawah ini:
8
Gambar 2.1.6 Gerbang EXOR
Persamaan Boolean untuk Gerbang EXOR adalah: X = A
B
Tabel 2.1.6 Tabel Kebenaran Gerbang EXOR A
B
0
0
0
0
1
1
1
0
1
1
1
0
X=A
B
Dalam Tabel Kebenaran, dapat terlihat bahwa: dimana jika kedua Input bernilai sama ( “ 0 “ atau “ 1 “ ), maka Keluarannya menjadi “ 0 “.
2.1.7 Gerbang EXNOR Gerbang EXNOR adalah Gerbang EXOR yang ditambahkan Inverter, sehingga Tabel Kebenarannya cukup dengan membalikkan Tabel Kebenaran dari EXOR.
Gambar 2.1.7 Gerbang EXNOR
9
______ Persamaan Boolean untuk Gerbang EXNOR adalah: X = A B
Tabel Kebenaran EXNOR memberikan Keluaran “ 1 “ apabila kedua Inputnya sama dan akan memberikan Keluaran “ 0 “, apabila kedua Inputnya berbeda. EXNOR kadang disebut juga dengan Equality Gate, karena kedua Input harus memiliki nilai yang sama untuk menghasilkan Output “ 1 “.
Tabel 2.1.7 Tabel Kebenaran Gerbang EXNOR A
B
_______ B X=A
0
0
1
0
1
0
1
0
0
1
1
1
2.2 Rangkaian Kombinasional Kita sudah melihat penggunaan bermacam – macam kombinasi Gerbang Dasar pada bagian sebelumnya. Kita juga dapat membentuk beberapa Fungsi Logika yang kita perlukan dari kombinasi tersebut. Seringkali sebuah Kombinasi Khusus Gerbang Logika menyediakan sebuah Fungsi Khusus untuk sebuah Tugas.
2.2.1 Multiplexer Multiplexer berarti “ banyak ke satu “. Multiplexer adalah rangkaian dengan “ banyak Input “ dan hanya mempunyai “ satu Output “. Multiplexer ( Selector Data )
10
mengeluarkan “ Satu Output “ dari sekian “ Banyak Input Data “ yang ada. Di bawah ini diperlihatkan Gambar Multiplexer dengan 2 Input: X0 dan X1, dan 1 Selector: A.
Gambar 2.2.1 Multiplexer dengan 2 Input
Tabel 2.2.1 Tabel Kebenaran Multiplexer dengan 2 Input A
X
0
X0
1
X1
Dalam Tabel Kebenaran dapat terlihat bahwa: jika Selector A = 0, maka Output X = X0. Jika Selector A = 1, maka Output X = X1.
2.2.2 Demultiplexer Demultiplexer berarti “ satu ke banyak “. Demultiplexer adalah rangkaian dengan “ Satu Input “ dan mempunyai “ Banyak Output “.
11
Gambar 2.2.2 Demultiplexer dengan 2 Output
Tabel 2.2.2 Tabel Kebenaran Demultiplexer dengan 2 Output A
OUT 0
OUT 1
0
IN
0
1
0
IN
Dalam Tabel Kebenaran dapat terlihat bahwa: Jika Selector A = 0, maka Out 0 = In dan Out 1 = 0. Jika Selector A = 1, maka Out 0 = 0 dan Out 1 = In.
2.2.3 Decoder Decoder adalah suatu rangkian yang terdiri dari “ gerbang – gerbang “ untuk menampilkan “ kode biner “ menjadi “ angka / huruf “ yang dapat dimengerti.
Gambar 2.2.3 Decoder BCD To 7 Segment 12
Di bawah ini akan ditampilkan Tabel Kebenaran dari Decoder BCD To 7 Segment: Tabel 2.2.3 Tabel Kebenaran BCD To 7 Segment b3 b2 b1 b0
abcdefg
Tampilan
0000
0000001
0
0001
1001111
1
0010
0010010
2
0011
0000110
3
0100
1001100
4
0101
0100100
5
0110
0100000
6
0111
0001111
7
1000
0000000
8
1001
0000100
9
2.3 Rangkaian Sequential Rangkaian Sequential adalah suatu Rangkaian yang dikontrol oleh Rangkaian lain sekaligus mengontrol Rangkaian lain, yang termasuk Rangkaian Sequential adalah: Flip – Flop. Flip – Flop adalah suatu Rangkaian yang dapat me-latch atau menyimpan Data. Jenis Flip – Flop, antara lain adalah: RS Flip – Flop, RS Clocked Flip – Flop, JK Flip – Flop, D Flip – Flop.
2.3.1 RS Flip – Flop Rangkaian paling sederhana dari penyimpan Data ini adalah Set – Reset ( SR ) Flip – Flop. Rangkaian ini dikenal juga sebagai Transparent Latches, karena Output akan merespon secara cepat perubahan pada Input dan keadaan Input ini akan diingat
13
atau di-latch. Rangkaian RS Flip – Flop dapat dibuat menggunakan Gerbang NOR atau NAND. Di bawah ini diperlihatkan Gambar RS Flip – Flop dengan Gerbang NAND:
Gambar 2.3.1 RS Flip – Flop dengan Gerbang NAND
Tabel 2.3.1 Tabel Kebenaran RS Flip - Flop S
R
Qn + 1
_____ Qn + 1
0
0
____
____
0
1
1
0
1
0
0
1
1
1
Qn
___ Qn
Dalam Tabel Kebenaran, terlihat bahwa: Jika R bernilai “ 1 “ dan S bernilai “ 0 “, maka Q akan bernilai “ 0 “ ( kondisi Reset ), Jika R bernilai “ 0 “ dan S bernilai “ 1 “, maka Q akan bernilai “ 1 “ ( kondisi Set ). Jika R dan S sama – sama bernilai “ 1 “, maka Q dapat berupa “ 0 “ atau “ 1 “, bergantung pada kondisi R atau S sebelumnya. Kejadian ini dikenal sebagai “ Memory State “.
14
2.3.2 RS Clocked Flip – Flop RS Clocked Flip – Flop ini termasuk Positif Going atau Positif Edge Trigger, artinya: Output Q akan berubah, jika Input Clock berubah dari 0 ke 1, diluar kondisi tersebut Output Q, tidak berubah.
Gambar 2.3.2 RS Clocked Flip – Flop
Tabel 2.3.2 Tabel Kebenaran RS Clocked Flip - Flop Clocked
S
R
Qn + 1
_____ Qn + 1
1
0
0
Qn
___ Qn
1
0
1
0
1
1
1
0
1
0
1
1
1
____
____
15
2.3.3 D Flip – Flop Pada D Flip – Flop ini, Output Q akan sama dengan Input dari D, jika Input D = 0, maka Output Q = 0, jika Input D = 1 maka Output Q = 1.
D
SET
CLR
Q
Q
Gambar 2.3.3 Simbol dari D Flip – Flop
Tabel 2.3.3 Tabel Kebenaran D Flip - Flop D
Qn + 1
_____ Qn + 1
0
0
1
1
1
0
2.3.4 JK Flip – Flop Type lain dari Flip – Flop adalah JK Flip – Flop. Aplikasi Synchronous Binary Counter adalah aplikasi dasar dari JK Flip – Flop sebagai Counter.
Gambar 2.3.4 JK Flip – Flop 16
Tabel 2.3.4 Tabel Kebenaran JK Flip - Flop
Clocked
J
K
Qn + 1
_____ Qn + 1
1
0
0
Qn
___ Qn
1
0
1
0
1
1
1
0
1
0
1
1
1
___ Qn
Qn
2.4 Arithmetic Logic Unit ( ALU ) Suatu Rangkaian Digital yang dapat melakukan operasi arithmetika ( penjumlahan dan pengurangan ). Rangkaian Dasar ( utama ) dalam ALU adalah Adder ( penjumlah ). Pengurangan, perkalian dan pembagian semuanya dibuat dari Rangkaian Dasar Adder.
2.4.1 Rangkaian Half Adder Rangkaian Half Adder adalah Rangkaian Digital yang hanya dapat menjumlah 2 Bit.
Gambar 2.4.1 Rangkaian Half Adder
17
Tabel 2.4.1 Tabel Kebenaran Half Adder A
B
CO
SUM
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
2.4.2 Rangkaian Full Adder Rangkaian Full Adder adalah suatu Rangkaian Digital yang dapat menjumlah 3 Bit Biner.
Gambar 2.4.2 Rangkaian Full Adder
18
Tabel 2.4.2 Tabel Kebenaran Full Adder A
B
Ci
Co
sum
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
2.5 Rangkaian Shift Register Rangkaian Shift Register adalah suatu Rangkaian Logika yang mempunyai fungsi hanya untuk menggeser Data, tanpa merubah isi dari Data yang digeser. Menurut cara penggeseran, Shift Register dibagi menjadi 4 bagian: 1. SISO ( Serial In Serial Out ) 2. SIPO ( Serial In Parallel Out ) 3. PISO ( Parallel In Serial Out ) 4. PIPO ( Parallel In Parallel Out )
19
2.5.1 SISO ( Serial In Serial Out ) Data masuk secara Serial ( satu per-satu ) dan Data keluar secara Serial pula. Menurut arahnya SISO dibagi menjadi: a. Shift Left ( geser ke kiri ) b. Shift Right ( geser ke kanan )
Gambar 2.5.1 4 – Bit Serial In Serial Out
2.5.2 SIPO ( Serial In Parallel Out ) Data masuk secara Serial dan keluar secara Parallel.
Gambar 2.5.2 4 – Bit Serial In Parallel Out
2.5.3 PISO ( Parallel In Serial Out ) Data masuk secara Parallel dan keluar secara Serial.
Gambar 2.5.3 4 – Bit Parallel In Serial Out 20
2.5.4 PIPO ( Parallel In Parallel Out ) Data masuk secara Parallel dan keluar secara Parallel. Parallel In I3
I2
D
SET
CLR
I1
D
Q
Q
SET
CLR
I0
D
Q
Q
SET
CLR
D
Q
Q
SET
CLR
Q
Q
Clock Q3
Q2
Q1
Q0
Parallel Out
Gambar 2.5.4 4 – Bit Parallel In Parallel Out
2.6 Memori Memori adalah suatu Rangkaian Digital yang berfungsi untuk menyimpan informasi / Data. Menurut sifatnya, Memori dibagi menjadi: - Volatile Memori Adalah suatu Memori yang isinya hilang jika Power Supply yang diberikan, diputuskan. Contoh: RAM ( Random Access Memori ). RAM terdiri dari: - Static RAM: Data yang disimpan di dalam sebuah Flip – Flop - Dynamic RAM: Data yang disimpan pada Capacitor. - Non Volatile Memori Kebalikan dari Volatile. Data yang disimpan oleh Memori tetap ada, walaupun Power Supply diputuskan. Contoh: -
ROM ( Read Only Memori )
-
PROM ( Programable ROM )
21
-
EPROM ( Eraseable PROM )
-
Diskette
-
Hard Disk, dll.
2.6.1 Struktur Memori Struktur Memori mempunyai kesamaan dengan sebuah lemari, contoh:
Gambar 2.6.1 Struktur Memori 4 X 4
2.6.2 Sel Memori Dasar Sebuah Sel Memori dapat dibuat dari sebuah Flip – Flop dan beberapa gerbang, seperti ditunjukkan pada Gambar 2.6.2a Sel ini terdiri dari 3 Input dan 1 Output. Input Select berfungsi untuk meng-enable ( mengaktifkan ) sel untuk dapat membaca atau menulis Data di sel. Nilai logika “ 1 “ atau “ 0 “ pada Input Read / Write menentukan operasi yang dipilih. Untuk menulis / menyimpan Data, Read / Write dan Input Select diberi Input “ 1 “, dan untuk membaca Data, Read / Write diberi Input “ 0 “.
22
Gambar 2.6.2a Sebuah Sel Biner ( Binary Cell / BC )
Sedangkan Konstruksi Sebuah Memori yang sederhana terdiri dari 12 Sel Biner ( BC ) ditunjukkan pada Gambar 2.6.2b. Bagan ini terdiri dari 4 lokasi, dimana masing – masing lokasi memuat 3 Bit Data.
Gambar 2.6.2b Konstruksi Memori sederhana dengan 12 Sel Biner 23
2.7 Mikrokontroller AT89C55 Mikrokontroller adalah sebuah komponen elektronik yang dapat bekerja sesuai dengan program yang diisikan ke dalam memorinya seperti layaknya sebuah komputer yang sangat sederhana. Mikrokontroller AT89C55 adalah Mikrokontroller dengan arsitektur MCS51 produksi Atmel yang mempunyai Sistem Memori, Timer, Port Serial dan 32 Bit I/O didalamnya sehingga sangat memungkinkan untuk membentuk suatu Sistem yang hanya terdiri dari Single Chip ( keping tunggal ) saja.
2.7.1 Struktur Perangkat Keras AT89C55 AT89C55 adalah Mikrokontroller keluaran Atmel dengan 20K Byte Flash PEROM ( Programmable and Erasable Read Only Memory ), AT89C55 merupakan Memori dengan Teknologi Non-volatile Memory, isi Memory tersebut dapat diisi ulang ataupun dihapus berkali – kali. Memori ini biasa digunakan untuk menyimpan Instruksi ( perintah ) berstandar MCS-51 Code sehingga memungkinkan Mikrokontroller ini untuk bekerja dalam Mode Single Chip Operation ( Mode Operasi Keping Tunggal ) yang tidak memerlukan External Memory ( Memori Luar ) untuk menyimpan Source Code tersebut. Dengan cara ini, maka pengguna atau user tidak perlu melengkapi “ Keping Tunggal “ ini dengan beragam IC lain, seperti Clock Generator, Address Latcher, Chip Selector, Memory dan PPI ( Programmable Peripheral Interface ) atau lainnya. Dalam memilih Mikrokontroller yang akan digunakan pada suatu Rancangan Elektronik, Struktur ini sangat penting untuk diketahui lebih dahulu sebagai pembanding dengan Mikrokontroller yang lain. Di bawah ini akan diperlihatkan Struktur/Arsitektur Perangkat keras AT89C55:
24
Gambar 2.7.1 Arsitektur Perangkat Keras AT89C55
2.7.2 Fungsi – fungsi dari Pin Mikrokontroller AT89C55 Susunan Pin atau kaki – kaki Mikrokontroller AT89C55 dapat dilihat pada gambar di bawah ini:
25
Gambar 2.7.2 Konfigurasi Pin Mikrokontroller AT89C55
- P1.0 s/d P1.7 ( Pin 1 s/d Pin 8 ): Port 1 berfungsi sebagai I/O biasa atau menerima Low Order Address Bytes selama pada saat Flash Programming. Port ini mempunyai Internal Pull-up dan berfungsi sebagai Input dengan memberikan logika “ 1 “. Sebagai Output, Port ini dapat memberikan Output Sink keempat buah Input TTL. - RST / Reset Input ( Pin 9 ): Reset akan aktif dengan memberikan Input High selama 2 Cycle. - P3.0 s/d P3.7 ( Pin 10 s/d Pin 17 ) Sebagai I/O biasa, Port 3 mempunyai sifat yang sama dengan Port 1 maupun Port 2. Sedangkan sebagai Fungsi Spesial Port – port ini mempunyai keterangan sebagai berikut:
26
-
P3.0 ( RXD ): Port Serial Input
-
P3.1 ( TXD ): Port Serial Output
-
P3.2 ( INT0 ): Port External Interrupt 0
-
P3.3 ( INT1 ): Port External Interrupt 1
-
P3.4 ( T0 ): Port External Timer 0 Input
-
P3.5 ( T1 ): Port External Timer 1 Input
-
P3.6 ( WR ): External Data Memory Write Strobe
-
P3.7 ( RD ): External Data Memory Read Strobe
- XTAL2 ( Pin 18 ): adalah Pin Output dari Rangkaian Oscilator Internal. Pin ini dipakai bila menggunakan Oscilator Kristal. - XTAL1 ( Pin 19 ): adalah Pin Input ke Rangkaian Oscilator Internal. Sebuah Oscilator Kristal atau Sumber Oscilator Luar dapat digunakan. - GND / Ground ( Pin 20 ): adalah Pin Ground untuk Power Supply. - P2.0 s/d P2.7 / A8 s/d A15 ( Pin 21 s/d Pin 28 ): Port 2 berfungsi sebagai I/O biasa atau High Order Address, pada saat mengakses Memori secara 16 Bit ( Movx @ Dptr ). Port ini mempunyai Internal Pull-up dan berfungsi sebagai Input dengan memberikan Logika “ 1 “. Sebagai Output, Port ini dapat mensuplai arus ke 4 buah Pin Input TTL. _____ - PSEN / Program Strobe Enable ( Pin 29 ): Pin ini berfungsi pada saat mengeksekusi Program yang terletak pada Memori Eksternal. PSEN akan aktif dua kali setiap cycle. _____ - ALE/PROG ( Pin 30 ):
27
Pin ini dapat berfungsi sebagai Address Latch Enable ( ALE ) yang me-latch Low Byte Address pada saat mengakses Memori Eksternal ( Sinyal High diberikan oleh Pin ini ). Pin ini disediakan karena 8 dari 16 Pin Address dipakai bergantian dengan 8 Pin Data. Pin ini disambungkan dengan sebuah Latch atau Buffer yang menahan Sinyal Address. Pada operasi normal ALE dikeluarkan secara konstan pada 1/6 Frekuensi Oscillator dan dapat dipakai untuk Timing atau Clocking Eksternal. ______ Sedangkan PROG atau kondisi Low yang diberikan terhadap Pin ini diterapkan pada saat pengisian Kode Program ke dalam ROM Internal. ___ - EA/VPP ( Pin 31 ): __ Pada kondisi Low, Pin ini akan berfungsi sebagai EA yaitu Mikrokontroller akan menjalankan Program yang ada pada Memori Eksternal setelah Sistem di-reset. Jika berkondisi High, Pin ini akan berfungsi untuk menjalankan Program yang ada pada Memori Internal. Pada saat Flash Programming Pin ini akan mendapat Tegangan 12 Volt ( VPP ) - P0.7 s/d P0.0 / AD7 s/d AD0 ( Pin 32 s/d Pin 39 ): Port 0 ini berfungsi sebagai I/O biasa, Low Order Multiplex Address / Data ataupun menerima Kode Byte pada saat Flash Programming. Pada fungsi sebagai I/O biasa, Port ini dapat memberikan arus ke 8 buah Pin Input TTL atau dapat diubah sebagai Input dengan memberikan Logika “ 1 “ pada Port tersebut ( Pin pada Port 0 ti-dak dilengkapi dengan Internal Pull-up ). Selain untuk Parallel Port, Pin – pin pada Port 0 juga dapat digunakan Pin Address ( A0 s/d A7 ) maupun Pin Data ( D0 s/d D7 ), ketika Prosessor menggunakan Memori atau I/O Eksternal. - VCC ( PIN 40 ): adalah Pin VCC untuk Power Supply.
28
2.7.3 Struktur Memori Mikrokontroller AT89C55 Mikrokontroller AT89C55 memiliki Program Memory Internal yang terpisah dari Data Memory Internal. Program Memory Internal memiliki kapasitas 20K Byte Flash PEROM, yaitu Alamat 0000H s/d 4FFFH.
Gambar 2.7.3a AT89C55 Program Memory
Gambar 2.7.3a memperlihatkan lokasi ROM Internal. Lokasi ini dapat diakses __ Jika Pin EA/VPP = 1 atau diberi tegangan VCC. Jika ukuran Program melampaui 20K Byte, maka harus digunakan ROM Eksternal yang Alamatnya antara 0000H s/d __ FFFFH ( 64K Byte ) dan Pin EA/VPP = 0 atau dihubungkan dengan Ground. Jika digunakan EPROM Eksternal, maka Alamat Program Memory sama dengan Alamat Data Memory, dengan kata lain Alamat 64K Byte dipakai bersama oleh Program dan Data. Pengaksesan Data ke Data Memory External dilakukan dengan menggunakan Data Pointer melalui Instruksi “ MOVX “. Gambar 2.7.3b memperlihatkan Lokasi RAM Internal:
29
Gambar 2.7.3b AT89C55 Data Memory
Disamping dapat mengakses RAM External, Mikrokontroller AT89C55 memiliki RAM Internal yang pengaksesannya terpisah dengan RAM Eksternal. RAM Internal berkapasitas 256 Byte. 128 Byte Upper dari RAM Internal menempati Ruang Parallel Address pada Special Function Register ( SFR ). Ini berarti 128 Byte Upper dari RAM Internal mempunyai Address yang sama dengan SFR, tetapi secara fisik sebenarnya terpisah dari Ruang SFR. Bila suatu Instruksi mengakses suatu Lokasi Internal di atas Alamat 7FH, maka Mode Alamat yang digunakan dalam Instruksi tersebut akan menentukan apakah Mikrokontroller sedang mengakses 128 Byte Upper dari RAM atau SFR. Bila Instruksi yang digunakan mengakses Direct Addressing, berarti mengakses Ruang SFR. Untuk contoh, berikut ini Instruksi Direct Addressing mengakses Lokasi SFR pada Alamat 0A0H ( P2 ): MOV 0A0H, #DATA. Instruksi yang menggunakan Indirect Addressing untuk mengakses 128 Byte Upper dari RAM. Untuk contoh, berikut ini Instruksi Indirect Addressing, dimana R0
30
berisi 0A0H, mengakses Data pada Alamat 0A0H, daripada P2 ( terletak pada Alamat 0A0H ): MOV @RO, #DATA. RAM Internal dapat diakses secara langsung ( Direct Addressing ) maupun tak langsung ( Indirect Addressing ) melalui R0 dan R1. Sedangkan SFR hanya dapat diakses secara langsung.
128 Byte RAM Internal yang terletak antara 00H s/d 7FH, terbagi atas 3 bagian:
Gambar 2.7.3c 128 Byte RAM Internal 31
1. Kelompok Register Bank: 89C55 mempunyai 8 buah Register yang terdiri atas R0 hingga R7. Kedelapan Register ini selalu terletak pada Alamat 00H hingga 07H pada setiap kali Sistem diReset. Namun posisi R0 hingga R7 dapat dipindah ke Bank 1 ( 08H hingga OFH ), Bank 2 ( 10H hingga 17H ) atau Bank 3 ( 18H hingga 1FH ) dengan mengatur Bit RS0 dan RS1. 2. Bit Addressable RAM ( Pengalamatan Bit ): Terdiri dari 16 Byte atau 16 Register dengan Alamat antara 20H s/d 2FH. Setiap Bit pada area ini dapat diakses secara terpisah tanpa mengganggu Bit lainnya. Pengalamatan Byte dapat menggunakan Alamat Register antara 20H s/d 2FH, sedangkan pengalamatan Bit dapat dilakukan dengan menuliskan titik setelah Alamat Registernya, misalnya: 20H.7 untuk Bit MSB pada Register 20H. 3. Scratch Pad Area ( Daerah RAM Untuk Keperluan Umum ): Terletak di bagian atas RAM Internal, yaitu Alamat 30H s/d 7FH. Biasanya Stack diletakkan di area ini.
2.7.4 SFR ( Special Function Register ) Di dalam setiap Operasinya Mikrokontroller harus selalu menyertakan Register sebagai salah satu Operand atau Tempat Data yang akan dilibatkan dalam Operasi tersebut. Register adalah Memori Kecil berukuran 1 atau 2 Byte ( 8 Bit atau 16 Bit ). Register akan menampung Data sebelum diolah, Register juga akan menampung Data hasil olahan sementara sebelum dikembalikan atau dikirim ke BUS Internal atau Eksternal. Selain itu, Register juga digunakan untuk mengendalikan Operasi I/O Device, seperti: Parallel I/O, Serial Communication, Timer dan Interrupt. Gambar 2.7.4 memperlihatkan Peta SFR.
32
Gambar 2.7.4 Special Function Register ( SFR ) 33
Register – register yang ada di Mikrokontroller adalah sebagai berikut: 1. Register A: Disebut juga sebagai Akumulator (SFR Alamat E0H ) yaitu tempat Akumulasi Proses Olah Data. Hampir semua Operasi Aritmatik dan Operasi Logika selalu menggunakan Register ini. Untuk Proses Pengambilan dan Pengiriman Data ke Memori Eksternal juga diperlukan Register ini. 2. Register B: Disebut juga Base Register ( SFR Alamat F0H ). Register ini digunakan bersama Akumulator untuk Proses Aritmatik, selain dapat juga difungsikan sebagai Register biasa. Register ini juga bersifat Bit Addressable. 3. Register R0 s/d R7 ( tidak terletak dalam SFR ): Merupakan Register serbaguna yang boleh dipakai untuk apa saja. Khusus untuk Register R0 dan R1 dapat juga digunakan untuk Operasi Pengalamatan Tak Langsung ( Indirect Addressing ). 4. Register DPTR: Data Pointer atau DPTR merupakan Register 16 Bit dan terletak pada Alamat 82H untuk DPL dan 83H untuk DPH. DPTR biasa digunakan untuk mengakses Source Code ataupun Data yang terletak di Memori Eksternal. 5. PSW ( Program Status Word ) Terletak pada Alamat D0H, merupakan Register yang berisi Data – data kondisi Mikrokontroller setelah suatu Operasi selesai dijalankan. Register ini memiliki Bit ke-3 ( RS0 ) dan Bit ke-4 ( RS1 ) digunakan untuk pemilihan Register Bank. 6. Register Port: Terdiri dari 4 Port, yaitu: P0, P1, P2 dan P3 yang terletak pada Alamat 80H, 90H, A0H dan B0H. Register Port ini berisi Data – data yang akan dikirim keluar dan
34
Data – data yang telah dibaca dari luar. Namun, jika digunakan Eksternal Memori ataupun Fungsi – fungsi Spesial, seperti: External Interrupt, Serial ataupun External 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 ini dapat diakses dengan pengalamatan secara Bit, sehingga dapat dilakukan perubahan Output pada tiap – tiap Pin dari Port ini tanpa mempengaruhi Pin – pin yang lainnya. 7. Stack Pointer ( SP ): Stack Pointer merupakan sebuah Register 8 Bit yang terletak di Alamat 81H. Isi dari Stack Pointer ini merupakan Alamat dari Data yang disimpan di Stack. Stack Pointer dapat diedit atau dibiarkan saja mengikuti Standar sesudah terjadi Reset. Jika tidak dilakukan perubahan pada Isi dari Register Stack Pointer, Isi Register ini akan selalu berisi 07H, sehingga penyimpanan Data ke Stack yang pertama kali adalah pada Alamat 08H. Oleh karena Area tersebut memakai Area dari Register Bank 1 hingga Register Bank 3, maka pada Program yang banyak menggunakan Area Stack akan terjadi bentrok Alamat dengan Register Bank. Untuk menghindari hal itu Isi dari Stack Pointer dapat diganti dengan Alamat lain dari Memori RAM. Proses yang berhubungan dengan Stack ini biasa dilakukan oleh Instruksi – instruksi: Push, Pop, Acall dan Lcall. 8. Register Timer: Terdiri dari 2 buah 16 Bit Timer / Counter, yaitu Timer 0 dan Timer 1. Timer 0 terletak di Alamat 8AH untuk TL0 dan 8CH untuk TH0 dan Timer 1 terletak di Alamat 8BH untuk TL0 dan 8DH untuk TH1. 9. Register – register Kontrol: Yaitu Register – register yang digunakan untuk mengendalikan kerja I/O De-
35
vice Internal. Register tersebut antara lain: Register IP ( Interrupt Priority ) dan IE ( Interrupt Enable ) untuk Operasi Interupsi, Register TMOD ( Timer Mode ) dan TCON ( Timer Control ) untuk Operasi Timer atau Counter, Register SCON untuk Operasi Komunikasi Serial dan Register PCON ( Power Control ) untuk pengendalian penggunaan Daya Listrik Processor.
2.8 LCD ( Liquid Crystal Display ) Modul LCD Character dapat dengan mudah dihubungkan dengan Mikrokontroller. LCD yang dibahas ini mempunyai Lebar Display 2 baris & 16 kolom atau biasa disebut sebagai LCD Character 2 X 16, dengan 16 Pin Konektor, yang didefinisikan sebagai berikut: Tabel 2.8a Fungsi – fungsi Pin LCD
36
Gambar 2.8a Modul LCD Character 2 X 16
Display karakter pada LCD diatur oleh Pin E, RS dan R/W: Jalur E dinamakan Enable.Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah Data. Untuk mengirimkan Data ke LCD, maka melalui Program, En harus dibuat Logika Low “ 0 “ dan set pada 2 jalur Kontrol yang lain: RS dan R/W. Ketika 2 jalur yang lain telah siap, set En dengan Logika “ 1 “ dan tunggu untuk sejumlah waktu tertentu ( sesuai dengan Datasheet dari LCD tersebut ) dan berikutnya set En ke Logika Low “ 0 “ lagi. Jalur RS adalah Jalur Register Select. Ketika RS berlogika Low “ 0 “, Data akan dianggap sebagai sebuah Perintah atau Instruksi Khusus ( seperti: Clear Screen, Posisi Kursor, dll ). Ketika RS berlogika High “ 1 “, Data yang dikirim adalah Data Text yang akan ditampilkan pada Display LCD. Sebagai contoh, untuk menampilkan Huruf “ T “ pada layar LCD maka RS harus di-set Logika High “ 1 “. Jalur R/W adalah Jalur Kontrol Read / Write. Ketika R/W berlogika Low ( “ 0 “ ), maka Informasi pada Bus Data akan dituliskan pada Layar LCD. Ketika R/W berlogika High “ 1 “, maka Program akan melakukan pembacaan Memori dari LCD. Sedangkan pada Aplikasi Umum Pin R/W selalu diberi Logika Low “ 0 “. Pada akhirnya, Bus Data terdiri dari 4 atau 8 Jalur ( bergantung pada Mode Operasi yang dipilih oleh User ). Pada kasus Bus Data 8 Bit, Jalur diacukan sebagai DB0 s/d DB7.
37
Beberapa Perintah Dasar yang harus dipahami, adalah: - Function Set Mengatur Interface Lebar Data, Jumlah dari Baris dan Ukuran Font Karakter: Tabel 2.8b Function Set RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
1
DL
N
F
X
X
DB1 I/D
DB0 S
X : Don’t Care DL: Mengatur Lebar Data DL = 1, Lebar Data Interface 8 Bit ( DB7 s/d DB0 ) DL = 0, Lebar Data Interface 4 Bit ( DB7 s/d DB4 ) Ketika menggunakan Lebar Data 4 Bit, Data harus dikirimkan 2 kali N: Pengaktifan Baris N = 0, 1 Baris N = 1, 2 Baris F: Penentuan Ukuran Font Karakter F = 0, 5 X 7 F = 1, 5 X 8
- Entry Mode Set Mengatur Increment / Decrement dan Mode Geser: Tabel 2.8c Entry Mode Set RS 0
R/W 0
DB7 0
DB6 0
DB5 0
DB4 0
DB3 0
DB2 1
I/D: Increment / Decrement dari Alamat DDRAM dengan 1, ketika Kode Karak-
38
ter dituliskan ke DDRAM. I/D = 0, Decrement I/D = 1, Increment S: Geser keseluruhan Display ke kanan dan ke kiri S = 1, geser ke kiri atau ke kanan bergantung pada I/D S = 0, Display tidak bergeser
- Display On / Off Cursor Mengatur Status Display On atau Off, Cursor On atau Off dan Fungsi Cursor Blink: Tabel 2.8d Display On / Off Cursor RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
1
D
C
B
D: Mengatur Display D = 1, Display is On D = 0, Display is Off Pada kasus ini Data Display masih tetap berada di DDRAM, dan dapat ditampilkan kembali secara langsung dengan mengatur D = 1. C: Menampilkan Kursor C = 1, Kursor ditampilkan C = 0, Kursor tidak ditampilkan B: Karakter ditunjukkan dengan Kursor yang berkedip B = 1, Kursor Blink B = 0, Kursor tidak berkedip
39
- Clear Display Perintah ini untuk menghapus Tampilan di Layar: Tabel 2.8e Clear Display RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
0
0
0
0
1
- Geser Kursor dan Display Geser Posisi Kursor atau Display ke kanan atau ke kiri tanpa menulis atau baca Data Display. Fungsi ini digunakan untuk koreksi atau pencarian Display: Tabel 2.8f Geser Kursor dan Display RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
0
0
0
1
S/C
R/L
X
X
X = Don’t Care Tabel 2.8g Definisi / Note Geser Kursor dan Display S/C
R/L
Note
0
0
Shift cursor position to the left
0
1
Shift cursor position to the right
1
0
Shift the entire display to the left
1
1
Shift the entire display to the right
- Posisi Kursor Modul LCD terdiri dari sejumlah Memory yang digunakan untuk Display. Semua Teks yang kita tuliskan ke Modul LCD disimpan di dalam Memory ini, dan Modul LCD secara berurutan membaca Memory ini untuk menampilkan Teks ke Modul LCD itu sendiri:
40
Gambar 2.8b Peta Memori Posisi Karakter LCD Pada Peta Memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah Display yang tampak. Sebagaimana yang anda lihat, jumlahnya sebanyak 16 Karakter per Baris dengan 2 Baris. Angka pada setiap kotak adalah Alamat Memori yang bersesuaian dengan Posisi dari Layar. Demikianlah Karakter Pertama di Sudut Kiri Atas adalah menempati Alamat 00H. Posisi Karakter berikutnya adalah Alamat 01H dan seterusnya.Akan tetapi, Karakter Pertama dari Baris 2, sebagaimana yang ditunjukkan pada Peta Memori adalah pada Alamat 40H. Demikianlah kita perlu untuk mengirim sebuah Perintah ke LCD untuk mengatur letak Posisi Kursor pada Baris dan Kolom tertentu. Instruksi Set Posisi Kursor adalah 80H. Untuk ini kita perlu menambahkan Alamat Lokasi dimana kita berharap untuk menempatkan Kursor.Sebagai contoh, kita ingin menampilkan kata “ World “ pada Baris ke-2 pada Posisi Kolom ke-10. Sesuai Peta Memori, Posisi Karakter pada Kolom 11 dari Baris ke-2, mempunyai Alamat 4AH, sehingga sebelum kita tulis kata “ World “ pada LCD, kita harus mengirim Instruksi Set Posisi Kursor, dan Perintah untuk Instruksi ini adalah 80H ditambah dengan Alamat 4AH ( 80H + 4AH ) = 0CAH. Sehingga dengan mengirim Perintah CAH ke LCD, akan menempatkan Kursor pada Baris ke-2 dan Kolom ke-11 dari DDRAM.
- Set Alamat Memori DDRAM Tabel 2.8h Set Alamat Memori DDRAM RS
R/W
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
0
1
A6
A5
A4
A3
A2
A1
A0
A6 s/d A0: Alamat RAM yang akan dipilih
41
Sehingga Alamat RAM LCD adalah 000 0000 s/d 111 1111 B atau 00 s/d 7FH
- Inisialisasi Sebelum kita dapat menggunakan Modul LCD, kita harus melakukan Inisialisasi dan mengkonfigurasikannya. Hal ini dijalankan dengan mengirimkan sejumlah Instruksi ke LCD. Antara lain: Pengaturan Lebar Data Interface 8 Bit atau 4 Bit Data Bus, Pemilihan Ukuran Font Karakter 5 X 8 atau 5 X 7 dan lain – lain, dengan Instruksi sebagai berikut: Init_lcd: mov r1,#00000001b ; Display clear call write_inst ; En = Pulse dan RS = 0 mov r1,#00111000b ; Function Set ; Data 8 Bit, 2 line, Font 5 X 7 call write_inst ; En = Pulse dan RS = 0 mov r1,#00001100b ; Display On ; Cursor Off, Cursor Blink Off call write_inst ; En = Pulse dan RS = 0 mov r1,#00000110b ; Entry Mode, Set Increment call write_inst ; En = Pulse dan RS = 0 ret
2.9 Keypad Keypad berfungsi untuk memasukkan Data ke Mikrokontroller. Keypad dihubungkan ke Mikrokontroller secara Interface. Keypad terdiri dari 2 Jenis: 1. Keypad dengan sebuah Common 2. Keypad tanpa Common
42
Pada skripsi ini akan dibahas Keypad 4 X 3 tanpa Common, dimana Proses Pengambilan Data dilakukan dengan Metode Scanning. Pada Apikasi Digital IC Tester, LMB162A LCD digunakan sebagai Modul Display yang menampilkan Data – data dari penekanan Tombol Keypad. Metode Scanning ini dilakukan dengan memberikan Logika “ 0 “ secara bergantian pada Bagi an Kolom ( Column Scanning ).
Gambar 2.9a Circuit Diagram Keypad 4 X 3
Apabila Tombol 1 ditekan, maka pada saat Proses Scanning mengirimkan Logika “ 0 “ pada Kolom 1, Baris 1 ( Row 1 ) yang juga terhubung pada Kolom 1, akibat Penekanan Tombol 1 juga akan berlogika “ 0 “.
43
Gambar 2.9b Diagram Alir Scanning Keypad 44
Diagram Alir pada Gambar 2.9b menunjukkan bahwa proses diawali dengan mengirimkan Logika “ 0 “ pada Kolom 1 dan mengambil Kondisi Baris. Bila Kondisi Baris tidak ada yang berlogika “ 0 “, maka proses dilanjutkan dengan mengirimkan Logika “ 0 “ pada Kolom 2, serta kembali memeriksa Kondisi Baris. Bila masih belum ditemukan Logika “ 0 “ pada Baris, maka proses berlanjut ke Kolom 3. Demikian seterusnya hingga ditemukan salah satu Kondisi Baris berlogika “ 0 “, yang menandakan adanya Penekanan Keypad. Setelah Kondisi Baris dan Kolom saat Penekanan Tombol ditemukan, maka Program akan meng-konversi kondisi – kondisi tersebut ke dalam Bentuk ASCII sesuai dengan Tombol yang ditekan, sehingga Data tersebut dapat dikirim ke LCD.
45
BAB III PERANCANGAN ALAT
3.1 Garis Besar Perancangan Digital IC Tester ini berfungsi untuk menguji berbagai IC “ Type 74 “, yang mana termasuk Simple Logic Gate dan juga Sequential dan IC Combinational. Perancangan alat dimaksudkan untuk merencanakan bagian – bagian Rangkaian yang akan digunakan dalam peralatan agar berfungsi dengan normal. Proses Perancangan akan dijelaskan dalam bentuk Block Diagram. Block Diagram dari Programmable Digital IC Tester, diperlihatkan di bawah. Ter diri dari IC Microcontroller AT89C55, Socket IC (ZIF ) 20 pin,1 Keypad Unit,1 Display Unit dan Regulated Power Supply Unit.
Gambar 3.1 Block Diagram Digital IC Tester
46
Dalam Perancangan Alat ini terdapat dua jenis perancangan: Perancangan Hardware dan Perancangan Software yang berfungsi sebagai pemrosesan data.
3.2 Perancangan Hardware Peralatan Digital IC Tester ini terdiri dari :20 Pin ZIF ( Socket IC ), Microcontroller AT89C55, Keypad 4 X 3, LCD 16 X 2, Regulated Power Supply Unit, dan Relay Driver ( ULN 2003 ).
3.2.1 20 Pin ZIF ( Socket IC ) ZIF Socket digunakan untuk memudahkan pengguna untuk memasang dan melepaskan IC yang akan diuji. ZIF Socket ini dilengkapi dengan tuas pengunci, jika IC yang akan diuji telah diletakkan di atas socket, kencangkan / kunci socket dengan menekan tangkai pengunci kearah bawah dan untuk melepaskan IC, tarik tangkai pengunci kearah atas.
Gambar 3.2.1 ZIF Socket
47
3.2.2 Mikrokontroller AT89C55
Gambar 3.2.2 Interface Mikrokontroller AT89C55
Pada aplikasi Digital IC Tester ini, fungsi Prosessor selaku pengendali adalah: 1. Menerima dan mengolah Data dari Keypad ( nomor dari IC yang diuji ) 2. Memberikan Power Supply kepada Pin yang sesuai dari IC yang diuji, dengan cara mengendalikan / menggerakkan Relay yang sesuai berdasarkan dengan nomor IC yang dimasukkan melalui Keypad 3. Memeriksa setiap Pin dari IC yang diuji, sesuai dengan “ Tabel Kebenaran “ yang terdapat dalam “ Service Routine / IC Databases “ dari Pemrograman yang dibuat 4. Menampilkan hasil pengolahan dari Microcontroller melalui LCD
48
3.2.3 Perancangan Keypad Pada Perancangan Keypad ini dipergunakan Keypad dengan 4 baris dan 3 kolom ( Keypad 4 X 3 ) tanpa Common dan dihubungkan dengan Microcontroller secara Interface. Pada Keypad jenis ini, untuk pengambilan Data digunakan metode Scanning Keypad.
Gambar 3.2.3 Circuit Diagram Keypad 4 X 3
3.2.4 Perancangan LCD Pada Perancangan LCD ini, dipergunakan LCD Character 2 X 16, yaitu mempunyai lebar display 2 baris dan 16 kolom. LCD di-set dengan konfigurasi: 4-Bit Data, 2 Lines, 5 X 7 Matrix LCD, Increment Cursor Don’t Shift Display.
49
Gambar 3.2.4 LCD Character 2 X 16
Sebelum memprogram LCD ada beberapa hal yang perlu diperhatikan dalam __ Pengontrolan LCD ini, yaitu RS ( Register Select ), E ( Enable ), R/W ( Read / Write Aktif Rendah ). RS berfungsi untuk memilih antara 2 Register, apakah Instruction Register ( IR ) atau Data Register ( DR ), dimana IR berguna mengirimkan data yang berupa Perintah terhadap LCD, seperti: menghapus panel, penempatan kursor, menggeser kursor dll. Sedangkan DR, berguna untuk mengirimkan Data Ascii yang akan ditampilkan di panel. E ( Enable ) berfungsi sebagai pengoperasian sinyal mulai, dan sinyal ini akan mengaktifkan pembacaan atau penulisan data pada LCD. __ Lalu R/W berfungsi sebagai pengaktif opersi pembacaan atau penulisan, dimana __ jika R/W di-set maka yang terjadi adalah operasi pembacaan, sedangkan jika di-reset maka yang terjadi adalah operasi penulisan. Pada rutin Pemrograman LCD terdapat Sub-Rutin Kirim Perintah dan Sub-Rutin
50
Kirim Ascii. Sub-Rutin Kirim Perintah merupakan rutin untuk pengaturan LCD dan dioperasikan pada saat penginisialisasian LCD atau pada saat lain sesuai kebutuhan. Sedangkan Sub-Rutin Kirim Ascii dioperasikan pada saat akan mengirimkan Karakter Ascii ke layar LCD dan pengiriman Karakter Ascii ini dilakukan setelah penginisialisasian LCD.
3.2.5 Perancangan Relay Driver Pada Perancangan Relay Driver ini, dipergunakan ULN 2003. ULN 2003 adalah terdiri dari susunan 7 Open Collector Darlinton dengan Common Emitter, mempunyai arus sebesar 500 mA ( dengan arus maksimal sebesar 600 mA ) dan dilengkapi dengan Clamp Dioda, untuk mengendalikan Beban Inductive.
Gambar 3.2.5 7 Open Collector ULN 2003
ULN 2003 ini, sangat berguna untuk mengendalikan / menggerakkan berbagai beban: Solenoid, Relay, DC Motor, LED Display, Filament Lamps, dll.
51
3.2.6 Perancangan Rangkaian Lengkap ( Circuit Diagram Rangkaian ) Circuit Diagram dari Programmable Digital IC Tester, diperlihatkan di bawah ini :
Gambar 3.2.6 Circuit Diagram Digital IC Tester
Programmable Digital IC Tester ini menggunakan Microcontroller AT89C55. Keluaran / Masukan ( I/O ) dari 4 port tersedia dalam IC AT89C55. 2 Port : Port 0 dan Port 2 dihubungkan ke 16 pin pada Socket IC ( ZIF ), IC yang akan diuji diletakkan di atas Socket ZIF ( Zerro Insertion Force ) ini, dengan posisi pin paling bawah dari IC yang akan diuji diletakkan pada pin paling bawah dari ZIF Socket.
52
Jika salah menempatkan IC pada ZIF Socket, IC tidak akan rusak, karena Power Supply yang diberikan pada IC yang diuji hanya beberapa detik. Port 3.1 s/d Port 3.7 dihubungkan ke Keypad secara interface dan matrix format. ROW1 ke P3.1, ROW2 ke P3.2, ROW3 ke P3.3, ROW4 ke P3.4, COL1 ke P3.5, COL2 ke P3.6, COL3 ke P3.7. Port 1.2 s/d Port 1.7 dihubungkan ke LCD 16X2. LCD akan diset dengan format: 4-Bit Data, 2 Lines, 5X7 Matrix LCD, Increment Cursor Don’t Shift Display. Port 1.0, Port 1.1, dan Port 3.0 ( Terminal A, B, dan C ) dihubungkan ke IC ULN 2003. IC ULN 2003 ini adalah merupakan IC yang terdiri dari beberapa Darlington Transistor, fungsinya adalah untuk menggerakkan Relay ( Relay driver ). Relay K1, K2, dan K3 berfungsi untuk menyalurkan Power ke IC yang akan diuji, karena beberapa IC Digital mempunyai perbedaan pada Pin untuk Power Supply-nya. Misalnya, IC 7400 mempunyai Power Supply Pin pada Pin 14 untuk VCC dan Pin 7 untuk Ground, beberapa dari IC memerlukan VCC pada Pin 16 dan Ground pada Pin 8, beberapa yang lain memerlukan VCC pada Pin 4 dan Ground pada Pin 11, jadi kita memerlukan 3 macam Power Supply Unit. Jika Relay 1 ( K1 ) dalam posisi ON, maka Pin 14 dan Pin 7 akan mendapatkan Power, jika Relay 2 ( K2 ) dalam posisi ON, maka Pin 16 dan Pin 8 akan mendapatkan Power, jika Relay 3 ( K3 ) dalam posisi ON, maka Pin 4 dan Pin 11 akan mendapatkan Power. Microcontroller akan menghidupkan ( ON ) Relay yang sesuai untuk memberikan Power ke Pin yang sesuai dari IC yang diuji.
53
3.2.7 Prinsip Kerja Rangkaian Pertama kali catu daya dihidupkan, secara otomatis Mikrokontroller siap menerima instruksi ( pada LCD akan ditampilkan tulisan “ MICROCONTROLLER BASED IC TESTER ). Setelah menempatkan IC yang akan diuji pada ZIF Socket, lalu kita tekan Tombol “ EXE “, dan Microcontroller akan memberikan perintah kepada User untuk memasukkan nomor IC ( pada LCD tampil tulisan “ Enter the IC No “ ). Setelah menerima nomor IC dari Keypad, lalu kita tekan tombol “ TEST “ untuk melakukan pengujian terhadap IC tersebut, jika kita salah memasukkan nomor IC dan ingin mengulang, tekan kembali Tombol “ EXE “ , lalu masukkan kembali nomor IC yang sesuai. Setelah itu Microcontroller akan menampilkan nomor IC yang kita masukkan beserta fungsi dari IC tersebut, misalnya: “ 7410 NAND GATE “ pada LCD dan menghidupkan ( Switch ON ) Relay yang sesuai untuk memberikan Power kepada IC yang diuji dan akan meme riksa / melakukan analisa terhadap setiap Pin dari IC, sesuai dengan “ Tabel Kebenaran “ ( Truth Table ) dari IC tersebut yang terdapat / tersimpan dalam “ IC DATABASES “ Program Digital IC Tester ( ROM Microcontroller ) yang kita buat dan Microcontroller akan memperlihatkan hasil analisa secara rinci melalui LCD, misalnya “ GATE 1 OK “, “ GATE 2 NOT OK “ , “ GATE 3 OK “, setelah itu akan diperlihatkan hasil secara final, misalnya: “ IC is GOOD “ atau “ IC is BAD “. Dalam hal ini, Program Digital IC Tester yang kita buat adalah khusus hanya untuk menguji IC “ Type 74 “ ( Digital IC Tester for 74 Series ), jika kita masukkan nomor IC selain IC “ Type 74 “, Microcontroller akan menolak dengan menampilkan tulisan “ 74 Series Only “ pada LCD dan juga dibatasi untuk IC “ Type 74 “ yang mempunyai nomor maksimal 5 Digit, jika kita memasukkan nomor IC lebih dari 5 Digit, maka akan tampil pada LCD tulisan “ Maximum 5 Digits “ .
54
Karena keterbatasan Memory dalam Microcontroller ( AT 89C55 mempunyai Flash Memory maksimal 20 Kb ), maka nomor IC yang dapat dimasukkan / disimpan dalam IC Databases Program terbatas ( Program Size dari Digital IC Tester ini adalah sekitar 16 Kb ). Jika kita memasukkan nomor IC yang tidak terdapat / tersimpan didalam IC Databases Program, maka akan tampil tulisan “ IC NOT IN DATABASES “ pada LCD. Jika kita menekan tombol “ TEST “, sebelum kita memasukkan nomor IC, maka akan tampil tulisan “ Plz Enter IC No “.
3.3 Perancangan Software Direncanakan Peralatan Digital IC Tester ini dapat berfungsi untuk menguji berbagai IC “ Type 74 “, maka dibuatlah pemrograman dengan Flowchart seperti di bawah Ini. Program dimulai dengan Insialisasi Sistem. Setelah Sistem ready, maka masukkan Nomor IC yang akan diuji, jika nomor IC belum dimasukkan maka akan tampil “ Plz Enter IC No “.Kemudian Program memeriksa kembali: apakah Nomor IC yang diuji merupa kan “ Type 74 “ ( Nomor IC dimulai dengan angka 74 ), apakah Nomor IC kurang dari 5 digit, apakah Nomor IC terdapat dalam IC Databases yang tersimpan dalam ROM Program. Jika tidak, maka Program kembali ke “ Enter IC No “. Jika semua persyaratan telah terpenuhi, maka Nomor IC akan ditampilkan pada Display, setelah itu Mikrokontroller akan menghidupkan Relay yang sesuai dengan Nomor IC yang akan diuji, untuk memberikan Power Supply ke IC yang diuji. Setelah itu Program menuju ke “IC Databases“ dan melakukan analisa terhadap setiap Pin dari IC yang diuji sesuai dengan “ Tabel Kebenaran “, kemudian hasil pengujian akan ditampilkan pada LCD.
55
: Gambar 3.3 Flowchart Digital IC Tester
56
BAB IV PENGUJIAN ALAT
Pada bab ini akan dibahas tentang pengujian dan pengukuran alat sehingga didapat parameter kinerja dari alat tersebut. Pengujian dan pengukuran dilakukan pada masing – masing block diagram rangkaian, antara lain: Rangkaian Power Supply Unit, Rangkaian Relay Driver, tampilan display yang dihasilkan oleh alat tersebut pada LCD, serta melakukan pengujian terhadap beberapa IC “ Type 74 “.
4.1 Pengujian dan Pengukuran Rangkaian Power Supply Unit Rangkaian Power Supply Unit sangat dibutuhkan untuk memberi daya pada rangkaian kita. Berikut ini, Rangkaian Power Supply Unit yang dapat memberikan tegangan output yang cukup stabil, karena menggunakan IC khusus sebagai Regulator Tegangan, contohnya IC LM7805 sebagai Regulator Tegangan +5V. Gambar 4.1 di bawah ini menampilkan contoh Rangkaian Power Supply Unit yang mampu mengeluarkan Tegangan yang sangat stabil.
Gambar 4.1 Rangkaian Power Supply Unit
57
Berikut ini merupakan hasil pengukuran yang dilakukan :
Tabel 4.1 Hasil Pengukuran pada Power Supply Unit Pada
Pada
TEGANGAN OUTPUT
TEGANGAN OUTPUT
+ 12 V
+ 5V
I
14,25 V
4,98 V
II
14,25 V
4,99 V
III
14,3 V
5V
IV
14,26 V
4,95 V
V
14,24 V
4,97 V
VI
14,35 V
4,96 V
VII
14,25 V
4,98 V
VIII
14,25 V
4,95 V
IX
14,3 V
4,96 V
X
14,2 V
4,98 V
PENGUKURAN
Dari hasil pengukuran pada Tegangan Output dari Power Supply Unit di atas, dapat dihitung Tegangan Output rata – rata yang dihasilkan : - Pada Tegangan Output + 12 V Tegangan Output rata – ratanya 14,25 + 14,25 + 14,3 + 14,26 + 14,24 +14,35 + 14,25 + 14,25 + 14,3 + 14,2 = ——————————————————————————————— V 10 = 14,265 V
58
- Pada Tegangan Output + 5 V Tegangan Output rata – ratanya 4,98 + 4,99 + 5 + 4,95 + 4,97 + 4,96 + 4,98 + 4,95 + 4,96 + 4,95 = ——————————————————————————— V 10 = 4,969 V Prosentase kesalahannya
=
Tegangan Output sebenarnya – Tegangan Output hasil pengukuran ——————————————————————————— X 100 % Tegangan Output sebenarnya
=
5 V – 4,969 V —————— X 100 % 5V
= 0,62 %
Disini terlihat bahwa, pada Tegangan Output + 5 V dihasilkan Pengukuran Tegangan Output yang mendekati + 5 V, ini membuktikan bahwa bila menggunakan IC Regulator Tegangan ( LM7805 ) maka Tegangan Output yang dihasilkan akan stabil.
4.2 Pengujian Rangkaian Relay Driver Pengujian Rangkaian Relay Driver, dimaksudkan untuk mengetahui apakah rangkaian dapat berfungsi dengan baik, yaitu dapat menggerakkan Relay yang sesuai untuk memberikan Power ke Pin yang sesuai dari IC yang diuji. Pengujian dilakukan dengan cara menguji 3 jenis IC yang masing – masing mempunyai Pin yang berbeda untuk Power Supplynya, yaitu IC 7438 (NAND GATE) , IC 7447 ( BCD TO 7 SEGMENT ), IC 7482 ( FULL ADDER )dan sambil memeriksa Relay mana yang aktif, K1, K2 atau K3.
59
Lihat Gambar 4.2 Rangkaian Relay Driver di bawah ini:
Gambar 4.2 Rangkaian Relay Driver
Tabel 4.2 Hasil Pengujian Rangkaian Relay Driver IC yang diuji
Relay yang aktif
GND pada Pin
VCC pada Pin
7438
Relay1 / K1
7
14
7447
Relay2 / K2
8
16
7482
Relay3 / K3
11
4
60
Dari hasil pengujian di atas, diketahui bahwa Rangkaian Relay Driver dapat berfungsi dengan baik, yaitu dapat menggerakkan Relay dan memberikan Power Supply kepada Pin yang sesuai dari IC yang diuji ( sesuai dengan Data Sheet dari masingmasing IC ).
4.3 Pengujian LCD Dalam pengujian LCD ini dilakukan dengan mengirimkan beberapa karakter huruf pada panel LCD. Dalam proses pengujian ini dilakukan dengan pengiriman beberapa Karakter Huruf “ MICROCONTROLLER “ dan “ BASED IC TESTER “ , dan hasil proses pengujian seperti ini menunjukkan bahwa LCD ini sudah berfungsi. Hasil Pengujian, seperti pada Gambar 4.3, terlihat pada display LCD: 2 baris, 16 digit, terlihat pada baris pertama: MICROCONTROLLER dan baris kedua: BASED IC TESTER.
Gambar 4.3 Tampilan LCD pada pengujian modul LCD
61
4.4 Pengujian Sistem Kerja Alat Setelah melakukan pengujian terhadap semua bagian dari rangkaian, dan dapat dipastikan semuanya berfungsi dengan baik, maka sekarang saatnya untuk menguji Sistem Kerja Alat secara keseluruhan, yaitu dengan cara melakukan pengujian terhadap beberapa IC ” Type 74 “. Berikut ini adalah hasil dari pengujian yang dilakukan: Tabel 4.4 Hasil Pengujian Terhadap Beberapa IC “ Type 74 “ NAMA NO
KEADAAN JENIS IC
HASIL PENGUJIAN
IC
SEBENARNYA Gate1 ok, Gate2 ok,
1
7438
NAND GATE
Gate3 ok, Gate4 ok
IC is GOOD
( IC is GOOD ) Gate1 ok, Gate2 ok, 2
7402
NOR GATE
Gate3 ok, Gate4 ok
IC is GOOD
( IC is GOOD ) Gate1 ok, Gate2 ok, 3
7404
NOT GATE
Gate3 ok, Gate4 ok,
IC is GOOD
Gate5 ok ( IC is GOOD ) Gate1 ok, Gate2 ok, 4
7432
OR GATE
Gate3 ok, Gate4 ok
IC is GOOD
( IC is GOOD ) Gate1 ok, Gate2 ok, 5
74125
BUS DRIVER
Gate3 ok, Gate4 ok ( IC is GOOD )
62
IC is GOOD
Gate1 ok, Gate2 ok 6
7474
D FLIP FLOP
IC is GOOD ( IC is GOOD ) Gate1 ok, Gate2 ok,
7
7486
EX-OR GATE
Gate3 ok, Gate4 ok
IC is GOOD
( IC is GOOD ) 8
7447
BCD TO 7SEG
IC is GOOD
IC is GOOD
9
74151
8 – 1 MUX
IC is GOOD
IC is GOOD
10
7482
FULL ADDER
IC is GOOD
IC is GOOD
Gate1 not ok, 11
74109
JK FLIP FLOP
IC is BAD Gate2 not ok ( IC is BAD ) Gate1 not ok,
12
7474
D FLIP FLOP
IC is BAD Gate2 not ok ( IC is BAD )
Di bawah ini, ditampilkan contoh gambar dari hasil pengujian Sistem Kerja Alat:
Gambar 4.4 Hasil Pengujian Sistem Kerja Alat 63
Dari hasil pengujian ini, dapat diketahui bahwa Sistem Kerja Alat secara keseluruhan sudah berfungsi dengan baik, yaitu hasil yang didapatkan adalah sesuai dengan keadaan dari IC yang sebenarnya, jika IC dalam keadaan baik maka hasilnya adalah “ IC is GOOD “ dan jika IC dalam keadaan rusak maka hasilnya adalah “ IC is BAD “.
64
BAB V KESIMPULAN
Dari hasil Pengujian Rangkaian dan Pengukuran yang dilakukan maka dapat disimpulkan sebagai berikut: 1. Dengan menggunakan IC Regulator Tegangan pada Rangkaian Power Supply, maka Tegangan Output yang dihasilkan akan stabil. 2. ULN 2003 ( Open Collector Darlington ) dapat mengendalikan / menggerakkan berbagai beban dengan baik ( dalam hal ini misalnya: Relay ). 3. LCD dapat menampilkan huruf dan angka dengan baik sesuai dengan konfigurasi yang kita inginkan / set sebelumnya. 4. Digital IC Tester ini dapat bekerja / berfungsi dengan baik, sesuai dengan pemograman yang dirancang.
65
DAFTAR PUSTAKA
1. Andi Nalwan, Pulus, Panduan Pratis Teknik Antarmuka dan Pemrograman Mikrocontroller 89C51, Penerbit Elex Media Komputindo, Jakarta, 2003. 2. Budiharto, Widodo, Teknik Interfacing Komputer dan Mikrokontroller, Penerbit Elex Media Komputindo, Jakarta, 2004. 3. Budiharto, Widodo, Belajar Sendiri Membuat Robot Cerdas, Penerbit Elex Media Komputindo, Jakarta, 2006. 4. Sams, Howard W. & Company, Microsoft Macro Assembler Bible, The Waite Group,Inc., USA, 1990.
66
LAMPIRAN
67
Features
• • • • • • • • •
Compatible with MCS-51 Products 20K bytes of In-System Reprogrammable Flash Memory Endurance: 1,000 Write/Erase Cycles Fully Static Operation: 0 Hz to 33 MHz Three-Level Program Memory Lock 256 x 8 bit Internal RAM 32 Programmable I/O Lines Three 16 bit Timer/Counters Eight Interrupt Sources Low Power Idle and Power Down Modes
Description The AT89C55 is a low-power, high-performance CMOS 8 bit microcomputer with 20K bytes of Flash programmable and erasable read only memory. The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8 bit CPU with Flash on a monolithic chip, the Atmel AT89C55 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.
8 bit Microcontroller with 20K bytes Flash AT89C55
(continued)
Pin Configurations
PDIP
AT89C55
PQFP/TQFP
PLCC
Block Diagram
2
AT89C55
AT89C55 Description (Continued)
Port Pin
The AT89C55 provides the following standard features: 20K bytes of Flash, 256-bytes of RAM, 32 I/O lines, three 16 bit timer/counters, a six-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89C55 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power Down Mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next hardware reset. The low voltage option saves power and operates with a 2.7-volt power supply.
P1.0
Pin Description VCC Supply voltage. GND Ground. Port 0 Port 0 is an 8 bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs. Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pullups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pullups are required during program verification. Port 1 Port 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 by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups. In addition, P1.0 and P1.1 can be configured to be the timer/counter 2 external count input (P1.0/T2) and the timer/counter 2 trigger input (P1.1/T2EX), respectively, as shown in the following table.
P1.1
Alternate Functions T2 (external count input to Timer/Counter 2), clock-out T2EX (Timer/Counter 2 capture/reload trigger and direction control)
Port 1 also receives the low-order address bytes during Flash programming and program verification. Port 2 Port 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 by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16 bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong internal pullups when emitting 1s. During accesses to external data memory that use 8 bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification. Port 3 Port 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 by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups. Port 3 also serves the functions of various special features of the AT89C55, as shown in the following table. Port Pin P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
Alternate Functions RXD (serial input port) TXD (serial output port) INT0 (external interrupt 0) INT1 (external interrupt 1) T0 (timer 0 external input) T1 (timer 1 external input) WR (external data memory write strobe) RD (external data memory read strobe)
Port 3 also receives some control signals for Flash programming and programming verification. RST Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device.
(continued) 3
Pin Description (Continued) ALE/PROG Address Latch Enable is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory. If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcrontroller is in external execution mode. PSEN Program Store Enable is the read strobe to external program memory. When the AT89C55 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. EA/VPP External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to VCC for internal program executions. This pin also receives the 12-volt programming enable voltage (VPP) during 12-volt Flash programming. XTAL1 Input to the inverting oscillator amplifier and input to the internal clock operating circuit. XTAL2 Output from the inverting oscillator amplifier.
Special Function Registers A map of the on-chip memory area called the Special Function Register (SFR) space is shown in Table 1. Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect.
4
AT89C55
User software should not write 1s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0. Timer 2 Registers Control and status bits are contained in registers T2CON (shown in Table 2) and T2MOD (shown in Table 4) for Timer 2. The register pair (RCAP2H, RCAP2L) are the Capture/Reload registers for Timer 2 in 16 bit capture mode or 16 bit auto-reload mode. Interrupt Registers The individual interrupt enable bits are in the IE register. Two priorities can be set for each of the six interrupt sources in the IP register.
Data Memory The AT89C55 implements 256-bytes of on-chip RAM. The upper 128-bytes occupy a parallel address space to the Special Function Registers. That means the upper 128bytes have the same addresses as the SFR space but are physically separate from SFR space. When an instruction accesses an internal location above address 7FH, the address mode used in the instruction specifies whether the CPU accesses the upper 128-bytes of RAM or the SFR space. Instructions that use direct addressing access SFR space. For example, the following direct addressing instruction accesses the SFR at location 0A0H (which is P2). MOV 0A0H, #data Instructions that use indirect addressing access the upper 128-bytes of RAM. For example, the following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H). MOV @R0, #data Note that stack operations are examples of indirect addressing, so the upper 128-bytes of data RAM are available as stack space.
AT89C55 Table 1. AT89C55 SFR Map and Reset Values 0F8H 0F0H
0FFH B 00000000
0F7H
0E8H 0E0H
0EFH ACC 00000000
0E7H
0D8H
0DFH
0D0H
PSW 00000000
0C8H
T2CON 00000000
0D7H T2MOD XXXXXX00
RCAP2L 00000000
RCAP2H 00000000
TL2 00000000
TH2 00000000
0CFH
0C0H
0C7H
0B8H
IP XX000000
0BFH
0B0H
P3 11111111
0B7H
0A8H
IE 0X000000
0AFH
0A0H
P2 11111111
0A7H
98H
SCON 00000000
90H
P1 11111111
88H
TCON 00000000
TMOD 00000000
TL0 00000000
TL1 00000000
80H
P0 11111111
SP 00000111
DPL 00000000
DPH 00000000
SBUF XXXXXXXX
9FH 97H TH0 00000000
TH1 00000000
8FH PCON 0XXX0000
87H
5
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
ULN2001A-ULN2002A ULN2003A-ULN2004A
®
SEVEN DARLINGTON ARRAYS
.. .. . ..
SEVEN DARLINGTONS PER PACKAGE OUTPUT CURRENT 500mA PER DRIVER (600mA PEAK) OUTPUT VOLTAGE 50V INTEGRATED SUPPRESSION DIODES FOR INDUCTIVE LOADS OUTPUTS CAN BE PARALLELED FOR HIGHER CURRENT TTL/CMOS/PMOS/DTL COMPATIBLE INPUTS INPUTS PINNED OPPOSITE OUTPUTS TO SIMPLIFY LAYOUT
DIP16 ORDERING NUMBERS: ULN2001A/2A/3A/4A
SO16
DESCRIPTION The ULN2001A, ULN2002A, ULN2003 and ULN2004A are high voltage, high current darlington arrays each containing seven open collector darlington pairs with common emitters. Each channel rated at 500mA and can withstand peak currents of 600mA. Suppression diodes are included for inductive load driving and the inputs are pinned opposite the outputs to simplify board layout. The four versions interface to all common logic families : ULN2001A
General Purpose, DTL, TTL, PMOS, CMOS
ULN2002A
14-25V PMOS
ULN2003A
5V TTL, CMOS
ULN2004A
6–15V CMOS, PMOS
ORDERING NUMBERS: ULN2001D/2D/3D/4D
PIN CONNECTION
These versatile devices are useful for driving a wide range of loads including solenoids, relays DC motors, LED displays filament lamps, thermal printheads and high power buffers. The ULN2001A/2002A/2003A and 2004A are supplied in 16 pin plastic DIP packages with a copper leadframe to reduce thermal resistance. They are available also in small outline package (SO-16) as ULN2001D/2002D/2003D/2004D. February 2002
1/8
ULN2001A - ULN2002A - ULN2003A - ULN2004A SCHEMATIC DIAGRAM
Series ULN-2001A (each driver)
Series ULN-2002A (each driver)
Series ULN-2003A (each driver)
Series ULN-2004A (each driver)
ABSOLUTE MAXIMUM RATINGS Symbol
Parameter
Value
Unit
Vo
Output Voltage
50
V
Vin
Input Voltage (for ULN2002A/D - 2003A/D - 2004A/D)
30
V
Ic
Continuous Collector Current
500
mA
Ib
Continuous Base Current
25
mA
Tamb
Operating Ambient Temperature Range
– 20 to 85
°C
Tstg
Storage Temperature Range
– 55 to 150
°C
150
°C
Tj
Junction Temperature
THERMAL DATA Symbol Rth j-amb
2/8
Parameter Thermal Resistance Junction-ambient
Max.
DIP16
SO16
Unit
70
120
°C/W
ULN2001A - ULN2002A - ULN2003A - ULN2004A ELECTRICAL CHARACTERISTICS (Tamb = 25oC unless otherwise specified) Symbol ICEX
Parameter Output Leakage Current
Test Conditions
Min.
Typ.
Max.
Unit
Fig.
VCE = 50V Tamb = 70°C, VCE = 50V
50 100
µA µA
1a 1a
Tamb = 70°C for ULN2002A VCE = 50V, Vi = 6V for ULN2004A VCE = 50V, Vi = 1V
500
µA
1b
500
µA
1b
Collector-emitter Saturation Voltage
IC = 100mA, IB = 250µA IC = 200 mA, IB = 350µA IC = 350mA, IB = 500µA
0.9 1.1 1.3
1.1 1.3 1.6
V V V
2 2 2
Ii(on)
Input Current
for ULN2002A, Vi = 17V for ULN2003A, Vi = 3.85V for ULN2004A, Vi = 5V Vi = 12V
0.82 0.93 0.35 1
1.25 1.35 0.5 1.45
mA mA mA mA
3 3 3 3
Ii(off)
Input Current
Tamb = 70°C, IC = 500µA
µA
4
Vi(on)
Input Voltage
VCE = 2V for ULN2002A IC = 300mA for ULN2003A IC = 200mA IC = 250mA IC = 300mA for ULN2004A IC = 125mA IC = 200mA IC = 275mA IC = 350mA
V
5
VCE(sat)
hFE Ci
DC Forward Current Gain
for ULN2001A VCE = 2V, IC = 350mA
Input Capacitance
50
65
13 2.4 2.7 3 5 6 7 8 1000
2 15
25
pF µs
tPLH
Turn-on Delay Time
0.5 Vi to 0.5 Vo
0.25
1
tPHL
Turn-off Delay Time
0.5 Vi to 0.5 Vo
0.25
1
µs
IR
Clamp Diode Leakage Current
VR = 50V Tamb = 70°C, VR = 50V
50 100
µA µA
6 6
VF
Clamp Diode Forward Voltage
IF = 350mA
2
V
7
1.7
3/8