BAB I
PENDAHULUAN
1.1
Latar Belakang
Mikrokontroller
adalah sebuah mikroprosessor yang dikombinasikan dengan I/O dan memori yang
dikemas dalam satu level chip, yang menghasilkan single chip mikrokomputer
(SCM). Mikrokontroller merupakan mikroprosessor yang dikhususkan untuk
instrumentasi dan kendali serta dapat diprogram dengan bahasa pemrograman
Assembler (bahasa mesin). Kelebihan komponen ini dibanding rangkaian digital
diskrit adalah misalkan pada suatu sistem pengendali diinginkan perubahan sistem maka pada rangkaian diskrit
perlu menambahkan atau merubah rangkaian, namun pada sistem mikrokontroller
bisa dilakukan dengan hanya merubah programnya. Mikrokontroller disebut embedded
processor, artinya prosessor yang diberikan program khusus yang
selanjutnya diaplikasikan untuk akusisi data, kendali khusus dan dapat diprogram ulang serta telah terdapat
RAM dan peralatan I/O pendukung.
Pemanfaatan mikrokontroller dapat digunakan sebagai pengendali alat
secara elektronika dan untuk perancangan suatu aplikasi. Peralatan atau
aplikasi yang dapat dikendalikan oleh mikrokontroller misalnya pengendali
robot, alat pengukur suhu, counter digital, jam digital, dadu digital, pengontrol
mesin, serta berbagai macam jenis alat elektronik lainnya.
Mikrokontroller dalam penelitian ini dimanfaatkan untuk mendesain sebuah
alat pendeteksi kecepatan penekanan tombol, dimana alat ini dapat diaplikasikan
kedalam suatu permainan yang mengandalkan kecepatan. Mikrokontroller yang
digunakan dalam rangkaian ini berfungsi sebagai pengendali proses kerja
rangkaian, yang diberi instruksi program bahasa assembler untuk mengatur jalannya
kegiatan rangkaian.
Rangkaian ini akan aktif setelah
diberi daya sebesar 5 sampai 12 volt DC, selanjutnya akan menunggu inputan dari
tombol switch yang terhubung ke port-port input mikrokontroller. Apabila tombol-tombol
ditekan, mikrokontroller akan bekerja meneruskan inputan tersebut yang selanjutnya
diproses dengan instruksi program
assembler untuk menghasilkan output berupa menyala LED dan bunyi buzzer,
sesuai dengan inputan tombol yang ditekan dari beberapa tombol yang
tersedia. Jadi cara kerja alat ini setelah diberi inputan, maka LED dan bunyi
buzzer akan menyala dan tetap aktif, sebelum ditekan tombol reset/start untuk
mengembalikan keposisi awal agar dapat diberi inputan selanjutnya.
1.2 Batasan
Masalah
Dalam penulisan ini pembahasannya terbatas pada komponen yang digunakan,
design dan perancangan alat, analisa rangkaian, program yang digunakan dalam
mikrokontroller serta Output yang dihasilkan dari rangkaian. Dengan aplikasi
sebagai berikut:
a.
Mikrokontroller
AT89C2051 sebagai komponen utama yang merupakan pemroses dari rangkaian ini.
b.
Oscilator
kristal 11,0592Mhz sebagai penghasil detak (clock) bagi Mikrokontroller.
c.
Menggunakan instruksi program bahasa assembler yang
dituliskan kedalam mikrokontroller sebagai pengendali jalannya proses kerja
rangkaian.
d.
Menggunakan inputan daya sebesar 5 sampai 12 volt DC
disertai penekanan tombol dengan output berupa menyalanya Lampu LED dan bunyi
Buzzer.
1.3 Tujuan Penelitian
Mendesain
alat yang dapat mendeteksi kecepatan penekanan tombol dengan menggunakan mikrokontroller AT89C2051.
1.4 Metode Penulisan
Dalam penelitian ilmiah ini dibuat
berdasarkan teori yang berhubungan dengan materi-materi tentang Alat pendeteksi
kecepatan penekanan tombol, sehingga untuk membuatnya dilakukan dua metode
yaitu studi pustaka dan penelitian.
a.
Studi Pustaka
Dilakukan dengan mengambil referensi
dari buku-buku dan diktat yang erat hubungannya dengan penulisan ini.
b.
Penelitian Alat
Melakukan survei komponen, merakit
alat, melakukan uji coba serta pengambilan data dari hasil uji coba.
1.5 Sistematika Penulisan
Isi dari penulisan ilmiah ini
berhubungan dengan materi-materi tentang rangkaian elektronika, sehingga dalam
penulisannya diberikan konsep mengenai materi pada tiap Bab yang tertera
dibawah ini.
BAB I Pendahuluan
Menjelaskan secara singkat mengenai
latar belakang, batasan masalah, tujuan penulisan, metode penulisan dan
sistematika penulisan.
BAB II Landasan Teori
Berisi uraian mengenai teori Mikrokontroller
AT89C2051, osilator, bahasa
assembler, kristal, resistor, kapasitor, transistor, LED, buzzer, switch dan IC
Regulator yang merupakan komponen dari alat pendeteksi kecepatan penekanan tombol.
BAB III Analisa,
Perancangan dan Uji Coba Alat
Memberikan mekanisme kerja dari
rangkaian yang meliputi pembahasan mengenai cara kerja rangkaian secara diagram
blok dan analisa secara keseluruhan, flowchart dan instruksi program dengan
mengembangkan teori yang telah dikemukakan pada bab sebelumnya serta mengetahui hasil dari uji coba alat.
BAB IV Penutup
Berisi kesimpulan yang dapat diambil dari
pembahasan materi yang telah dibuat baik secara teori maupun uji coba dari
penulisan tersebut.
BAB II
LANDASAN TEORI
Pada
bab ini akan membahas mengenai teori mikrokontroller, osilator, Bahasa
Assembler, kristal, resistor, kapasitor, transistor, LED, buzzer, switchdan IC
Regulator tegangan yang merupakan komponen dalam rangkaian alat pendeteksi kecepatan
penekanan tombol.
2.1 Mikrokontroller
AT89C2051
Sebelum membahas mengenai AT89C2051 ada baiknya
kita mengetahui terlebih dahulu perbedaan antara mikrokontroller dan
mikroprosessor. Suatu mikroprosesor adalah bagian dari CPU (Control Processing Unit) dari sebuah komputer, tanpa
memori, tanpa I/O dan tanpa periferal
yang dibawakan oleh sebuah sistem lengkap, sebagai contoh 8088 dan 80x86 yang
hanya bekerja apabila mendapat dukungan berupa RAM ,ROM, dan I/O.
Pada dasarnya mikrokontroller adalah pengembangan dari mikroprosesor.
Mikrokontroller disebut embedded processor, artinya processor yang diberikan
program khusus yang selanjutnya diaplikasikan untuk akusisi data, kendali
khusus, dapat diprogram ulang dan sudah
terdapat RAM serta peralatan I/O pendukung.
Bila sebuah mikroprosesor dikombinasikan dengan
I/O dan memori(RAM/ROM) akan dihasilkan sebuah mikrokomputer, Pada kenyataannya
mengkombinasikan CPU dengan memori dan I/O dapat juga dilakukan dalam level
chip, yang menghasilkan Single Chip Mikrokomputer(SCM) yang kemudian diberi
nama mikrokontroller karena digunakan untuk mengontrol hardware.
Gambar 2.1. IC
Mikrokontroller AT89C2051
2.1.1 Port-port Pada Mikrokontroller
AT89C2051
Susunan port-port Mikrokontroller AT89C2051 diperlihatkan
pada gambar diatas, penjelasan dari masing-masing port adalah sebagai berikut:
a.
Port 12 sampai 19
(Port 1) merupakan port pararel 8 bit 2 arah yang dapat
digunakan untuk berbagai keperluan (General Purpose) yaitu Input/ Output
(I/O).
b.
Port 1(Reset) adalah
masukan reset (aktif tinggi). Pulsa transisi
dari rendah ketinggi akan mereset AT89C2051. Port ini dihubungkan dengan
rangkaian Power On Reset.
c.
Port 2,3,6,7,8,9,11
(Port 3) adalah port paralel 8 bit 2 arah yang memiliki fungsi pengganti,
fungsi pengganti meliputi RxD (Receive Data), TxD (Transmit Data), int0
(Interupt 0), int 1(Interupt 1), T0 (Timer 0), T1 (Timer 1), bila fungsi
pengganti tidak dipakai port-port ini dapat digunakan sebagai port paralel 8 bit
serbaguna.
d.
Port 4 (XTAL 1)
adalah Port
masukan dari osilator internal. Port ini dipakai bila menggunakan osilator
kristal.
e.
Port 5 (XTAL 2) adalah
port keluaran kerangkaian osilator internal, port ini digunakan untuk osilator
kristal.
f.
Port 10 (Ground) dihubungkan ke Vss atau Ground.
g.
Port 20 (Vcc)
dihubungkan ke Power.
2.1.2 CPU (Central Processing Unit).
Unit Pengolah Pusat (CPU) terdiri atas 2
bagian, yaitu unit pengendali (Control Unit/ CU) serta unit aritmatika dan
logika (ALU), fungsi utama unit pengendali adalah mengambil, mengkode, dan
melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori. Unit
pengendali mengatur urutan operasi seluruh sistem. Unit ini juga menghasilkan
dan mengatur sinyal pengendali yang diperlukan untuk menyerempakan seluruh
operasi, juga aliran dan instruksi program unit pengontrol mengendalikan aliran
informasi pada bus data dan bus alamat, dilanjutkan pada menafsirkan dan
mengatur sinyal yang terdapat pada bus pengendali.
2.1.3 Alamat
Apabila kita hendak mencari rumah teman kita,
yang harus kita ketahui adalah alamat rumah tersebut. Dengan berbekal alamat
tersebut, kita dapat menemukan rumah teman kita tanpa tersesat. Demikian halnya
dengan mikrokontroller, apabila suatu alat dihubungkan dengan mikrokontroller
tersebut maka harus ditetapkan terlebih dahulu alamat (address) dari alamat
tersebut. Hal ini bertujuan untuk menghindarkan terjadinya dua alat yang
bekerja secara bersamaan yang mungkin menyebabkan terjadinya kesalahan.
2.1.4 Data
CPU mikrokontroller AT89C2051 adalah prosesor 8
bit, lebar bus data AT89C2051 adalah 8 bit sehingga memerlukan 8 port
(P1.0…P1.7). Akan tetapi, karena jumlah port mikrokontroller terbatas sehingga
port data ini tidak dikeluarkan hanya didalam chip.
Port untuk bus data dimultipleks yang sering
ditulis dengan alamat P1.0…P1.7 berada pada port 1, setiap bit data memiliki
bobot masing-masing tergantung pada letaknya, sebagai contoh untuk data 8 bit sbb:
Data P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
Bobot 80 40 20 10
08 04 02 01
(Heksadesimal)
Karena menggunakan bus data yang lebarnya 8 bit
lebar bus data 8 bit juga harus digunakan untuk peralatan lain, Seperti EPROM,
RAM, ADC, TTL, CMOS dll. jika dihubungkan dengan mikrokontroller jenis
AT89C2051.
2.1.5 Pengendali
Selain bus
alamat dan bus data, mikrokontroller dilengkapi dengan bus pengendali (Control
Bus) fungsinya adalah untuk menyerempakan operasi rangkaian luar dan untuk
melakukan hubungan dalam CPU(Central Processing Unit).
Unit
Pengolahan Pusat(CPU) terdiri atas dua bagian, yaitu unit pengendali(Control
Unit) serta Unit Aritmatika dan logika(ALU). Fungsi utama unit pengendali
adalah mengambil, mengkode dan melaksanakan urutan instruksi sebuah program
yang tersimpan didalam memori. Unit pengendali mengatur urutan operasi seluruh
sistem, unit ini juga menghasilkan dan mengatur sinyal pengendali yang
diperlukan untuk menyerempakan seluruh operasi, serta aliran dan instruksi
program.
2.1.6 Memori
Suatu sistem mikrokontroller maupun komputer
memerlukan memori untuk tempat menyimpan program/data. Pada mikrokontroller
AT89C2051, tempat menyimpan program adalah pada PEROM sedangkan pada PC program
disimpan pada harddisk.
Ada beberapa tingkatan memori, diantaranya adalah register
internal memori utama dan memori massal(Mass Memori). Register internal adalah
memori didalam ALU yang memiliki waktu akses register sangat cepat umumnya
kurang dari 100ns, memori utama adalah memori suatu sistem yang ukurannya
berkisar antara 4Kbyte sampai 64 Kbyte. Waktu aksesnya lebih lambat
dibandingkan register internal yaitu antara 200 sampai 1000ns. Memori eksternal
dipakai untuk penyimpanan berkapasitas tinggi, biasanya berbentuk disket, pita
magnetik atau kaset. Berikut ini adalah memori yang digunakan pada
mikrokontroller AT89C2051.
2.1.6.1
RAM
RAM (Random Access Memory) adalah memori yang dapat dibaca/ditulis. Data
dalam RAM akan terhapus (bersifat Volatile) bila catu daya dihilangkan. Oleh
karena sifat RAM yang volatile ini, maka program mikrokontroller tidak disimpan
dalam RAM. RAM hanya digunakan untuk data sementara, yaitu data tidak vital
bila hilang akibat aliran daya terputus.
Ada dua
teknologi yang dipakai untuk membuat RAM, yaitu RAM statik dan RAM Dinamik.
Dalam RAM statik, satu bit informasi disimpan dalam sebuah flip-flop. RAM
statik ini tidak memerlukan penyegar dan penanganannya tidak terlalu rumit, isi
RAM tetap tersimpan selama daya diberikan. Dua contoh RAM statik adalah 6116
dan 6264 yang masing-masing berkapasitas 2Kb dan 8Kb. RAM Dinamik menyimpan bit
informasi sebagai muatan. Sel memori elementer dibuat dari kapasitansi gerbang
substart transistor MOS. Keuntungan RAM dinamik adalah sel-sel memori yang
lebih kecil dan tempat yang dibutuhkan lebih sempit, sehingga kapasitas RAM
dinamik menjadi lebih besar dibandingkan dengan RAM statik. Contoh RAM dinamik
adalah 4116 yang berkapasitas 16384 –N1 bit. Kapasitas RAM
pada mikrokontroller AT89C2051 adalah sebesar 128 bit.
2.1.6.2
ROM
ROM(Read Only Memory) merupakan memori yang hanya dapat dibaca. Data
dalam ROM tidak akan terhapus walaupun catu daya dihilangkan(bersifat non
volatile). Karena sifatnya yang demikian, ROM digunakan untuk menyimpan
program.
Ada
beberapa tipe ROM, diantaranya adalah ROM murni, PROM, EPROM, PEROM dan EAROM.
Pada mikrokontroller AT89C2051 ROM yang digunakan berupa PEROM(Programmable and
Erasable Read Only Memory). Kapasitas PEROM pada mikrokontoller AT89C2051
adalah sebesar 2KB yang dapat diisi perintah sebanyak 2 x 1024 baris perintah
atau 2048 baris perintah, sedangkan ROM adalah memori yang sudah diprogram oleh
pabrik, PROM dapat diprogram oleh pemakai, tetapi sekali diprogram tidak dapat
diprogram ulang, EPROM dapat diprogam dan juga dapat dihapus dengan
menghadapkan jendela kaca diatas badan IC ke sinar ultraviolet (UV) selama 5 sampai
10 menit. Namun isi program EPROM tidak dapat diproteksi sehingga program
didalamnya dapat dibaca oleh alat pengisinya, sedangkan PEROM yang terdapat
didalamnya dapat diproteksi sehingga kerahasiaan program dapat tetap terjaga.
Isi EPROM maupun PEROM sudah dihapus akan berlogika 0, pemrograman EPROM adalah
mengubah logika 1 menjadi logika 0.
2.1.7 Input/
Output
Unit pengontrol mengendalikan aliran
informasi pada bus data dan bus alamat, dilanjutkan pada menafsirkan dan
mengatur sinyal yang terdapat pada bus pengendali. Untuk melakukan hubungan
dengan piranti diluar sistem dibutuhkan alat I/O (Input/Output). Sesuai dengan
namanya alat I/O dapat menerima data dari mikrokontroller.
Ada dua macam perantara I/O yang dipakai
yaitu piranti untuk hubungan serial (UART) dan piranti untuk hubungan paralel
(PIO). Pada mikrokontoller AT89C2051 kedua macam I/O tersebut sudah terdapat
didalamnya.
UART adalah perantara serial
universal, UART (Universal Asynchronous Receiver Transmitter) merupakan
pengirim dan penerima tak serempak universal, kerja UART adalah merubah masukan
serial menjadi keluaran parallel.
PIO (Parallel Input Output)
merupakan perantara untuk hubungan data dalam format paralel. PIO adalah alat
yang dapat diprogram dan menyediakan perantara masukan dan keluaran dasar untuk
data paralel 8 bit. PIO ini diberi nama tersendiri oleh pabriknya, misalnya PIA
oleh Motorola, PPI oleh Intel, PDC oleh Rockwell dan lain sebagainya.
2.2 Osilator
Komponen ini menghasilkan tegangan bolak-balik
pada berbagai frekuensi. Ada
osilator tegangan tinggi yang menghasilkan tegangan berbentuk sinus pada
ferkuensi gelombang radio atau pada “audio osilator” yang menghasilkan getaran
yang frekuensinya antara 20 Hz sampai 20 KHz.
Semua sistem radio baik pemancar maupun penerima
memakai osilator. Suatu osilator harus stabil, yang berarti frekuensi yang
dihasilkan harus tetap, tidak berubah atau bergeser. Pada kenyataannya jika
osilator berdiri sendiri maka mudah untuk memperoleh frekuensi yang stabil,
namun kalau dihubungkan dengan alat lain (daya diambil dari osilator) sangat
sulit untuk memperoleh frekuensi yang stabil.
Pada osilator tak ada tegangan input sehingga osolasi di mulai dari suatu
tegangan kecil yaitu tegangan “noise”. Tegangan yang sangat kecil ini (orde
mikro-volt) diperbesar dan dikembalikan ke input dengan fase yang sama,
diperbesar lagi dan seterusnya sampai terjadi getaran atau gelombang sinus yang
di kehendaki. Pada saat signal masih kecil penguatan seluruh untai harus lebih
besar satu. Penguatan ini kemudian segera berkurang supaya pada titik kerja
osilator setelah amplitude gelombang mencapai harga yang dituju.
2.2.1
Osilator L-C
Salah satu jenis osilator ialah yang dalam rangkaiannya memakai rangkaian
resonansi L-C yaitu perpaduan antara kumparan dan kapasitor. Gambar merupakan
osilator L-C yang memakai tabunng.
Gambar 2.2. Osilator L-C
Kalau semua tegangan searah sudah terpasang maka tabung akan memperbesar
tegangan “noise” (derau yang terdapat antara grid dan katode. Pada saat
frekuensi tegangan derau ini inpedansi output dari tabung makin besar. Travo
dipasang sedemikian rupa sehingga fase gelombang yang terdapat dari input sama
dengan fase semula dan pada setiap putaran gelombang yang di loloh balik tetap
sefase. Hal ini menyebabkan gelombang yang di hasilkan makin lama makin besar.
Ada dua
jenis osilator yang merupakan osilator L-C yaitu Osilator Hartley dan Colpitts.
Rangkaian untuk kedua osilator ditunjukan pada gambar. Osilator Hartley adalah
yang paling tua, X1,X2 dan X3 merupakan rangkaian L-C. Tegangan pada output
diloloh balik lewat X1. kapasitor C adalah kapasitor yang menahan tegangan
searah supaya tidak sampai pada input. Kapasitor C untuk frekuensi signal dapat
dianggap terhubung singkat.
Gambar
2.3. (a,b) Osilator Hartley (c,d)
Osilator Colpitts
Letak titik hubung X2 dan X3 dapat diatur untuk menentukan tegangan loloh
balik. Penyediaan daya (power suplay) dihubungkan sejajar dengan rangkaian resonansi,
karena tahanan dalamnya rendah maka tegangan signal pada anoda dapat hilang ke massa lewat penyedia daya
tersebut. Untuk menghindari hal ini antara anoda dan penyedia daya dipasang
kumparan yang reaktansinya besar, sehingga merupakan tahanan untuk gelombang
frekuensi tinggi.
2.2.2 Osilator
RC
Suatu rangkaian RC dapat merubah fase dari arus atau tegangan
bolak-balik. Sifat ini memungkinkan terjadinya osilator RC. Osilator yang
menggunakan penyetelan RC biasanya digunakan pada frekuensi rendah dan dalam
rangkaian integral, dimana penggunaan inductor tidaklah praktis. Osilator
pergeseran fasa (phase-shift oscillator) dan osilator jembatan wien (Wien
Bridge Osilator) adalah rangkaian osilator RC yang dapat di setel dan lazim
digunakan.
2.2.3
Osilator
Kristal (Osilator halbur)
Osilator ini memiliki kualitas
yang lebih baik dari osilator-osilator lain sebab osilator ini terbuat dari
bahan kristal, sehingga suhu osilator lebih sabil. Dengan demikian frekuensi
yang dihasilkan tidak gampang berubah. Osilator ini cocok untuk pemancar,
walaupun untuk mendapatkan frekuensi yang tetap tidak mungkin namun sudah
diberi batas terhadap perubahan frekuensi misalnya frekuensi tak boleh bergeser
lebih dari 0,002%.
Penyebab utama dari pergeseran frekuensi adalah pengaruh suhu pada
kapasitor dan induktor. Perubahan besarnya kapasitas dan induktansi bias
mencapai 10 satuan perjuta tiap perubahan suhu satu derajat. Untuk membuat
osilator yang hanya berubah beberapa hertz tiap mega hertz, suhu komponen harus
constant. Maka tiap komponen harus dipertahankan suhunya dengan jalan
memasukannya dalam thermostat. Cara ini terlalu mahal dan osilator sukar di
pindahkan. Untuk mengatasi masalah ini maka pada sebuah osilator sebaiknya
dipakai kristal, karena beberapa kristal bersifat “ Piezo Electrik”.
Kristal-kristal ini (misalnya Garam Rochelle, Kuarts dan tourmaline) bila salah
satu pasang sisinya mendapat tekanan mekanik maka pada sepasang permukaannya
yang lain akan timbul muatan listrik. Bila tegangan ini diubah menjadi regangan
(tarikan) maka muatan tersebut akan berubah tanda.
Sifat ini dapat balik, yaitu bila sepasang permukaan diberi muatan maka
pada sepasang sisi yang lain terjadi perubahan dimensi. Kristal yang paling
lazim digunakan untuk pengendalian frekuensi ialah kuarts. Kristal ini
penampangnya berbentuk segi enam. Kristal yang dipakai diperoleh dari kuarts
segi enam. Dengan jalan memotong kuarts menurut sumbu dan cara potong tertentu.
Hasilnya adalah kristal x dan y, tebal kristal menentukan frekuensi saat
kristal tersebut bergetar. Kristal yang baik frekuensi resonansi kristal tidak
berubah walaupun terjadi perubahan suhu.
Gambar
2.4. Simbol Osilator Kristal
2.3 Bahasa
Assembly di Mikrokontroller
Secara fisik, kerja dari
sebuah mikrokontroller dapat dijelaskan sebagai siklus pembacaan instruksi yang
tersimpan di dalam memori. Mikrokontroller menentukan alamat dari memori
program yang akan dibaca, dan melakukan proses baca data di memori. Data yang
dibaca diinterprestasikan sebagai instruksi. Alamat instruksi disimpan oleh
mikrokontroller di register, yang dikenal sebagai program counter.
Instruksi ini misalnya program aritmatika yang melibatkan 2 register.
AT89C2051 memiliki
sekumpulan instruksi yang sangat lengkap. Set instruksi ini telah dioptimasi
untuk aplikasi control 8 – bit serta menyediakan berbagai macam mode
pengalamatan yang cepat untuk akses RAM internal guna memfasilitasi
operasi byte pada struktur data yang kecil. Mode pengalamatan
menjelaskan bagaimana operand dioperasikan. Berikut penjelasan dari
berbagai mode pengalamatan. Bentuk program assembly yang umum adalah
sebagai berikut :
Isi memori ialah
bilangan heksadesimal yang dikenal oleh mikrokontroler kita, yang merupakan
representasi dari bahasa assembly yang telah kita buat. Mnemonic atau
opcode ialah kode yang akan melakukan aksi terhadap operand . Operand
ialah data yang diproses oleh opcode.
Sebuah opcode bisa membutuhkan 1, 2 atau lebih operand, kadang
juga tidak perlu operand. Sedangkan komentar dapat kita berikan dengan
menggunakan tanda titik koma(;). Terdapat beberapa mode pengalamatan yang ada
didalam bahasa assembly dari mikrokontroller, yaitu :
Pengalamatan langsung
dilakukan dengan memberikan nilai ke suatu register secara langsung, Untuk
melaksanakan hal tersebut digunakan tanda #. Operand yang digunakan pada
pengalamatan langsung dapat berupa bilangan bertanda mulai –256 hingga +256.
Contoh :
MOV A,#25H ;Isi
akumulator dengan bilangan 25H
MOV DPTR, #20H :isi
register DPTR dengan bilangan 20H
MOV R1,10H : ; isi
register R1 dengan 10H
MOV A,#-1 ; sama dengan
MOV A,#0FFH
karena 00H –1 menjadi
FFH
Pengalamatan Tak Langsung
pada pengalamatan ini, operand menunjuk ke sebuah register yang
berisi lokasi alamat memori yang akan digunakan dalam operasi. Untuk
melaksanakan pengalamatan tak langsung digunakan simbol @. Pengalamatan jenis
ini biasa digunakan untuk melakukan penulisan, pemindahan atau pembacaan
beberapa data dalam lokasi memori.
Contoh :
ADD A,R1 ; Tambahkan
isi RAM yang lokasinya ditunjukkan
oleh register R1 ke
akumulator.
DEC @R1 ; Kurangi satu
isi RAM yang alamatnya ditunjukkan oleh R1.
Pengalamatan data terjadi
pada sebuah perintah ketika nilai operasi merupakan alamat dari data yang akan
diisi atau yang akan dipindahkan.
Contoh :
MOV P2,0FFH ; isi P2
dengan nilai yang tersimpan dalam
memori alamat FFH
Pengalamatan kode terjadi
ketika operand merupakan alamat dari instruksi JUMP dan CALL. Berikut contoh
ACALL yang memanggil label Tunda, sehingga akan melompat ke lokasi memori
bernama Tunda.
Contoh :
ACALL Tunda
…
TUNDA:
MOV A,#FEH
LOOP:
DJNZ A, LOOP
RET
Pengalamatan bit ialah
penunjukkan alamat lokasi bit baik dalam RAM internal atau perangkat keras
menggunakan simbol titik (.).
Contoh :
SETB P1.7 ; Set bit
port 1.7 aktif
SETB TR1 : Set TR1
(Timer 1 aktif)
SETB RXD ; memberikan
logika 1 pada kaki RXD yang berada
di port 3.0
Mikrokontroller AT89C2051
memiliki beberapa register fungsi khusus yang terletak pada alamat 80H hingga
FFH. Beberapa diantaranya dapat dialamatkan dengan pengalamatan bit. Register-
register ini adalah sebagai berikut:
Akumulator terletak pada
alamat E0H dan berfungsi sebagai operasi aritmatika dan logika serta sebagai
register untuk pengambilan dan pengiriman data ke memori external.
Seperti yang diketahui mikrokontroller AT89C51 memiliki 4 port (P1, P2, P3, dan
P0) yang terletak pada alamat 80H,90H, A0H, dan B0H. keempatnya dapat diakses
dengan pengalamatan secara bit sehingga dapat mengubah output dari tiap pin
tanpa menggangu pin lainnya.
Program Status Word terletak pada alamat D0H dan terdiri
atas beberapa bit yaitu Flag carry berfungsi
sebagai pendeteksi kelebihan (carry) dan kekurangan ( borrow )
pada operasi penjumlahan dan pengurangan. Flag ini juga berfungsi
sebagai tempat penyimpanan operasi Boolean sebesar 1 bit.Flag auxillary carry dipakai saat
terjadinya carry dari bit 3 dan 4 pada operasi aritmatika. Flag 0 Biasa digunakan untuk tujuan
umum sesuai dengan kebutuhan pemakai.
Bit pemilih register bank
digunakan untuk menentukan lokasi dari register bank (R0- R7) pada memori.
Terdiri atas RS0 dan RS1 yang selalu bernilai 0 setiap kali di reset sehingga
R0 – R7 akan berada pada alamat 00H hingga 07H. Flag Overflow dipakai jika operasi arithmatika menghasilkan
bilangan yang lebih besar dari pada 128 atau lebih kecil dari –128. Bit parity
dipakai sebagai pengeset saat jumlah bit ‘1’ akumulator ganjil dan sebagai
clear jika jumlah bit ‘1’ dalam akumulator adalah genap.
Register B digunakan
sebagai akumulator untuk proses aritmatika, dan juga sebagai register biasa. Stack Pointer merupakan register 8
bit yang terletak di alamat 81H. berisikan alamat dari data yang disimpan dalam
stack. Data Pointer merupakan
register 16 bit yang terletak pada alamat 82H ( DPL ) dan 83H (DPH ). Biasa
dipakai untuk mengakses data yang terletak pada memori eksternal.
Register Timer terdiri atas Timer 0 dan
Timer 1, dimana Timer 0 terletak pada 8AH(TL0) dan 8CH (TH0)
serta Timer 1 terletak pada 8BH (TL1) Dan 8Dh (TH1). Register Port Serial biasa diakai untuk menghubungkan
mikrokontroller AT89C2051 dengan peralatan lain yang mempunyai serial port
juga. Buffer (penyangga) untuk proses pengiriman atau pengambilan data
terletak pada register SBUF(pada alamat 99H). Untuk pengaturan mode serial,
dilakukan dengan mengubah isi dari SCON (pada alamat 98H).
Register Interupsi terdapat
lima buah interupsi
pada mikrokontroller AT89C2051 dengan dua level prioritas interupsi. Interupsi
enable register (IE) terletak pada alamat A8H dan interupsi priority register
(IP) yang terletak pada alamat B8H. Interupsi dapat di non aktifkan setiap kali
sistem di-reset. Register Control Power terdiri dari SMOD yang
berfungsi sebagai pelipat dua baud rate serial port, flag fungsi
umum pada bit 2 dan bit 3, sebagai power down (PD) dan power Idle(PI).
Mode Idle memutuskan hubungan antara CPU dengan internal clock tapi
port tetap dalam kondisi terakhir Saat itu ALE dan PSEN bernilai high,
timer bekerja dan mode ini berakhir saat terjadi inetrupsi dan
reset. Mode down menghentikan osilator serta semua fungsi, namun RAM dan
port tetap berada kondisi terakhir, sedangkan ALE da PSEN bernilai nol. Mode
ini berhenti saat terjadinya reset pada sistem.
2.4 Kristal
Mikrokontroller AT89C2051 memiliki
osilator internal yang dapat digunakan sebagai sumber clock bagi CPU. Untuk
menggunakan osilator internal, diperlukan sebuah kristal atau resonator keramik
antara pin XTAL 1 dan XTAL2 (Pin 4 dan
5) yang akan dipasangkan dengan kapasitor yang dihubungkan ke ground.
Gambar 2.5. Lambang Kristal
Untuk
jangkauan frekuensi operasi mikrokontroller AT89C51 adalah antara 6Mhz sampai
dengan 24Mhz. Sedangkan untuk pasangan kapasitornya dapat digunakan kapasitor
keramik yang bernilai antara 10 pF.
2.5 Resistor
Resistor
adalah suatu komponen elektronika yang berfungsi untuk menghambat arus listrik
dan merupakan salah satu komponen yang digunakan pada pembuatan alat ini.
Resistor dapat dibagi 2 macam yaitu :
2.5.1
Resitor Tetap
Resistor tetap adalah yang
memiliki nilai hambatan yang tetap. Resistor dalam Alat yang digunakan memiliki
batas kemampuan daya misalnya 1/2 watt, dan nilai toleransinya sebesar 2%
Artinya resistor hanya dapat
dioperasikan dengan daya maksimal sesuai dengan kemampuan dayanya.
Simbol resistor tetap:
(a)
(b)
Gambar 2.6. Simbol Resistor
Untuk mengetahui nilai
hambatannya dapat dilihat atau dibaca dari warna yang ada di badan resistor itu
sendiri atau pada bagian luar badan resistor yang disebut gelang warna.
Gambar 2.7.
Gelang-gelang Resistor
Gambar 2.8. Resisor 4 Gelang Warna
Contoh 1 : 4
warna gelang
Dengan catatan contoh 1 gelang 4 warna.
1. Gelang 3&4 menunjukkan angka
2.
Gelang 2 menunjukkan banyaknya nol
3.
Gelang
1 menunjukkan toleransi
Untuk mengetahui berapa nilai warna serta
toleransinya lihat tabel 2.1
Tabel 2.1
Tabel Nilai Warna Resistor
Warna
|
Gelang Ke
|
3&4
|
2
|
1
|
Hitam
|
0
|
0
|
1%
|
Cokelat
|
1
|
10
|
2%
|
Merah
|
2
|
100
|
2%
|
Jingga
|
3
|
1000
|
|
Kuning
|
4
|
10.000
|
|
Hijau
|
5
|
100.000
|
|
Biru
|
6
|
1.000.000
|
|
Ungu
|
7
|
10.000.000
|
|
Abu-abu
|
8
|
100.000.000
|
|
Putih
|
9
|
1.000.000.000
|
|
Emas
|
-
|
0,1
|
5%
|
Perak
|
-
|
0,01
|
10%
|
Tidak
Berwarna
|
-
|
0,001
|
20%
|
Tetapi pada penelitian ini
resistor yang digunakan dan memang
dibutuhkan pada rangkaian adalah resistor yang menggunakan 4 gelang
warna, jadi yang akan dibahas adalah resistor 4 warna saja dan rangkaian ini
membutuhkan resistor bernilai 1 KOhm
yang cara menentukan nilainya adalah dengan cara sebagai berikut.
Bernilai 1 KiloOhm
Gambar 2.9. Resistor 1 Kohm
Berwarna : * Gelang I
: Emas
* Gelang II :
Jingga
* Gelang III :
Hitam
* Gelang IV :
Coklat
Resitor 4 warna ini juga berfungsi sebagai
penghambat arus listrik sebagaimana fungsi resistor lainnya.
2.5.2 Resistor Tidak Tetap (Variabel)
Resistor tidak tetap adalah
resistor yang nilai kemampuannya atau nilai
hambatannya atau resistansinya
dapat diubah-ubah. Jenisnya antara lain, hambatan geser trimpot dan
potensiometer. Karena pada rangkaian ini yang digunakan hanya resistor yang
bernilai tetap, jadi pembahasan resistor tidak tetap sebatas yang besarnya
saja.
1. Keostat
Merupakan hambatan geser yang
terbuat dari kawat nikelin yang dililitkan pada silinder keramik dan terdapat
logam yang menempel pada penghantar dan dapat digeser kedudukannya.
2. Trimpot
Merupakan hambatan yang
memiliki nilai hambatannya dapat diubah sesuai dengan kebutuhan. Dengan cara
memutar porosnya dengan menggunakan obeng.
2.6 Kapasitor
Kapasitor adalah suatu
komponen elektronika yang dapat menyimpan dan melepaskan muatan listrik atau
energi listrik. Kemampuan untuk menyimpan muatan listrik pada kapasitor disebut
dengan kapasitas atau kapasitansi seperti halnya hambatan, kapasitor dapat
dibagi menjadi :
2.6.1 Kapasitor
tetap
Kapasitor tetap merupakan kapasitor yang
mempunyai nilai kapasitas atau kapasitansi yang tetap.
Simbolnya :
Gambar 2.10. Simbol Kapasitor Tetap
Kapasitor tetap yang digunakan
dalam rangkaian ini adalah 1 Mikro farad dan 30 Piko Farad yang berfungsi
sebagai penyimpan muatan listrik. Kapasitor dapat dibedakan dari bahan yang
digunakan sebagai lapisan diantara lempeng-lempeng logam yang disebut
dielektrikum. Dielektrikum tersebut dapat berupa keramik, mika, mylar, kertas
maupun film. Biasanya kapasitor yang terbuat dari bahan tersebut nilainya
kurang dari 1 mikrofarad.
Untuk mengetahui besarnya
nilai kapasitas pada kapasitor dapat dibaca melalui kode angka pada badan
kapasitor tersebut yang terdiri dari angka, angka pertama (I) dan II menunjukan
angka / nilai angka III (ketiga) menunjukan faktor pengali / banyaknya nol dan
satuannya pikofarad (pf).
2.6.2 Kapasitor
Tidak Tetap
Kapasitor tidak tetap adalah
kapasitor yang memiliki nilai kapasitansi yang dapat diubah – ubah. Kapasitor
ini terdiri dari :
a. Kapasitor Trimer
Kapasitor yang
nilai kapasitansinya dapat diubah – ubah dengan
cara memutar porosnya menggunakan memutar obeng.
Simbol trimer
kapasitor :
Gambar 2.11. Simbol Trimer
b. Variabel Kapasitor (Varco)
Kapasitor yang nilai
kapasitansinya dapat diubah-ubah dengan memutar poros yang tersedia.
Simbol
Varco:
2.12.
Simbol Varco
a. non polar b. polar
Gambar 2.13. (a),(b) Lambang Kapasitor
Kapasitor dapat dibedakan dari bahan yang digunakan sebagai lapisan
diantara lempeng-lempeng logam yang disebut dielektrikum, dielektrikum tersebut
dapat berupa keramik, mika, layer, dll. Pada umumnya kapasitor yang
terbuat dari
bahan yang disebutkan diatas nilaͼya kurang dari satu microfarad. Suatu satuan
yang digunakan untuk mengukur suatu kapasitor ialah farad dimana 1 Farad = 103 mF = 106
F = 109 nF = 1012 pF. Kapasitor tersebut termasuk dalam
kapasitor non polar.
Agar kita mengetahui berapa besar atau nilai kapasitas dari suatu
kapasitor dapat dibaca melalui kode angka pada badan kapasitor tersebut yang
terdiri dari 3 angka. Angka pertama dan angka kedua menunjukkan nilai
kapasitor, angka ketiga menunjukkan faktor pengali atau jumlah nol, satuan yang
digunakan adalah pF. Kapasitor yang memiliki nilai yang lebih dari satu sama
dengan satu mikro farad adalah kapasitor elektrolit (Elko) yang termasuk
kapasitor polar karena memiliki polaritas ( memiliki kutub positif dan kutub
negative ), kapasitor elektrolit terdiri dari dua lembar kertas alumunium (
sebagai keeping konduktor ) dan alumunium oksida yang diproses secara kimia
sebagai bahan penyekat. Satu keeping konduktor diberi tanda positif, dan plat
ini harus diberi muatan positif. Bila diberi muatan negative maka bahan
penyekatnya akan rusak. Kapasitor jenis ini memiliki kapasitas diatas 1 mikro
farad.
Tabel 2.2 Kode Warna Kapasitor
Kapasitor
mempunyai keistimewaan diantaranya :
-
Penghubung , pentransfer , dan melewatkan arus bolak-balik
-
Memblok arus dan tegangan searah
-
Menyimpan dan mengeluarkan
muatan listrik
-
Penala frekuensi pada rangkaian
2.7 Transistor
Transistor adalah semi
konduktor seperti halnya dioda dan led transistor memiliki tiga titik penyambungan
: basis, emitor dan kolector. ada dua jenis transistor yaitu tipe NPN (negatip
positif negatif) dan PNP(positif negatif positif). Dan mempunyai fungsi sebagai
komponen penguat arus.
Kolektor Kolektor
Basis Basis
Emitor Emitor
(NPN)
(PNP)
Pada transistor tipe NPN maka
emitornya selalu di tempatkan pada tegangan yang lebih negatif dari pada
kolektornya. Sedangkan pada tipe PNP maka apa yang terjadi adalah justru hal
yang sebalik. Transistor pada umumnya memiliki tiga buah elektroda yaitu :
1. Basis (B), berfungsi mengatur atau
mengemudikan gerakan-gerakan elektron dalam transistor.
2. Emitor (E), berfungsi menimbulkan atau
menghasilkan elektron dalam transistor
3. Kolektor (K), berfungsi menarik dan
menyalurkan elektron-elektron keluar dari transistor.
Suatu arus lemah yang mengalir
dari basis emitor, akan menimbulkan arus yang (jauh) lebih besar dibandingkan
antara kolektor dan emitor. Karena itu kita dapat mengatakan bahwa transistor
itu dapat’memperkuat (penguat arus)’ basisnya. Pada saat ini transistor
merupakan komponen-komponen dasar yang paling penting dalam rangkaian-rangkaian
penguatan.
Transistor tipe BC547 (NPN)
dan BC557 (NPN) merupakan tipe-tipe yang paling sering digunakan, keduanya
mempunyai titik sambungan yang sama.
Pada sebagian besar rangkaian,
maka disamping BC547 dan BC557 masih ada tipe-tipe lain dengan sifat-sifat yang
hampir sama diantaranya :
NPN : BC548,BC549,BC107
(108,109), BC237 (238,239).
PNP : BC558,BC559,BC117 (178,179), BC251
(252,253).
Transistor merupakan suatu piranti semi
konduktor yang memiliki sifat khusus. Secara ekivalensi transistor dapat dibandingkan
dengan dua dioda yang dihubungkan dengan
suatu konfigurasi. Transistor ada yang UNIPOLAR ( misalnya : FET ), ada yang BIPOLAR ( PNP dan NPN ).
Pada dasarnya transistor bekerja
berdasarkan prinsip pengendalian arus kolektor dengan menggunakan arus basis.
Dengan kata lain arus basis mengalami penguatan hingga menjadi sebesar arus
kolektor. Penguatan ini bergantung pada faktor penguatan masing-masing
transistor (alfa dan beta).
Transistor bisa terdiri dari 3 buah
kaki yang masing-masing diberi nama emitor, basis, dan kolektor. Transistor
termasuk komponen aktif atau komponen elektronika yang dalam pengoperasiannya
memerlukan sumber tegangan atau sumber arus tersendiri.
Terdapat dua
jenis transistor, yaitu
: Transistor Bipolar
dan transistor Unipolar.Transistor
Unipolar adalah transitor yang hanya memiliki satu buah persambungan.
Transistor unipolar adalah FET ( Field Effect Transistor ) yang terdiri dari
JFET kanal N, JFET kanal P, dan MOSFET kanal P.
Transistor Bipolar adalah
transistor yang memiliki dua persambungan kutub.
Dalam saklar peka cahaya ini kita
menggunakan Transistor Bipolar, transistor ini dapat diibaratkan dengan dua
buah dioda. Untuk memgetahui kaki transistor lebih mudah dengan melihat data
book transistor yang mencantumkan kaki-kaki transistor atau dapat pula
diketahui kaki-kaki transistor dengan menggunakan multitester.
Berikut gambar
ekivalen dan simbol Transistor Bipolar:
Gambar 2.14. Transistor Bipolar
2.8
Dioda Pemancar Cahaya (LED)
LED adalah kepanjangan dari Light Emitting Diode. Dioda dalam rangkaian ini
akan mengeluarkan cahaya bila diberi tegangan sebesar 1,8 V dengan arus 1,5 mA.
LED banyak digunakan sebagai lampu indikator dan peraga (display).
Simbol
LED:
Gambar
2.15. Simbol LED
2.9 Buzzer
Salah satu indikator yang digunakan pada
rangkaian ini adalah indikator suara. Indikator suara pada rangkaian ini
diwakili oleh sebuah buzzer.
Gambar 2.16. Simbol Buzzer
Buzzer akan mengubah tegangan listrik
menjadi suara, buzzer yang digunakan pada rangkaian ini adalah buzzer DC 12V.
Cara kerja buzzer sangat sederhana yaitu dengan hanya memberikan tegangan yang
sesuai maka buzzer akan berbunyi. Suara yang dihasilkannya digunakan sebagai
indikator bunyi tombol pada rangkaian ini.
2.10 Switch
Switch adalah suatu komponen elektronika
yang digunakan sebagai penghubung dan pemutus tegangan, switch yang digunakan
pada rangkaian ini adalah switch Push On/off.
A Sw 1 B
Reset
Gambar 2.17 Switch
2.11 IC Regulator Tegangan.
IC regulator tegangan 78xx
merupakan jenis rangkaian terintegrasi yang memiliki 3 (tiga ) buah terminal.
Untuk lebih jelasnya perhatikan gambar 2.18 di bawah ini:
Gambar 2.18. IC Regulator Tegangan
IC regulator ini memiliki
fungsi untuk menstabilkan tegangan masukan. Besarnya tegangan yang akan
distabilkan tergantung dari kode yang tercantum pada IC regulator tegangan
tersebut. Arus yang dikeluarkan dari IC ini juga bervariasi tergantung dari
tipe rangkaiannya. Untuk lebih jelasnya, perhatikan tabel karakteristik dari IC
regulator tegangan di bawah ini.
Tabel 2.3. Karakteristik IC
Regulator Tegangan
Untuk memperoleh tegangan
dan arus yang berubah-ubah pada keluarannya, maka digunakan tambahan komponen
luar pada IC regulator tegangan ini.
BAB III
ANALISA, PERANCANGAN dan UJI COBA ALAT
Pada bab ini akan menguraikan tentang analisa rangkaian baik secara blok
diagram maupun analisa secara keseluruhan, perancangan alat serta mengenai uji
coba alat dari alat pendeteksi kecepatan penekanan tombol.
3.1
Analisa
Rangkaian Secara Blok Diagram
Analisa secara blok diagram dimaksudkan untuk mengetahui cara kerja pada
bagian blok-blok rangkaian. Dalam rangkaian ini blok diagramnya adalah sebagai
berikut:
Gambar
3.1 Blok Diagram Rangkaian
Blok-blok dari diagram blok alat pendeteksi kecepatan
penekanan tombol dengan mikrokontroller AT89C2051 memiliki fungsi sebagai
berikut:
3.1.1
Blok Input
Pada blok saklar Push On ini terdiri dari 5 buah tombol tekan untuk
mengendalikan output rangkaian, seperti mengatur tampilan LED mana yang akan
menyala dari tombol yang ditekan, dan mengatur start/reset jika ingin menset
ulang program dari awal. Dimana saklar-saklar ini terhubung keport-port input
mikrokontroller yang kemudian akan diproses oleh program didalam mikrokontroller.
Blok input selanjutnya adalah osilator yang digunakan untuk menghasilkan
gelombang pulsa-pulsa berfrekuensi yang kemudian dijadikan output untuk
melakukan pencacahan. Proses pencacahan itu menghasilkan clock yang dibutuhkan
mikrokontroller agar dapat menjalankan
sebuah program.
3.1.2
Blok Proses
Pemroses pada rangkaian ini menggunakan mikrokontroller AT89C2051 yang
berfungsi sebagai penyimpan program untuk menjalankan semua kegiatan rangkaian
agar dapat menghasilkan output.
3.1.3
Blok Output
Blok output ini merupakan representasi display dari blok sebelumnya. Pada
blok ini terdapat lima
buah LED dan Buzzer sebagai penampil dari tombol inputan, yang terdiri
dari LED A, LED B, LED C sebagai indikator dari tombol yang ditekan,
LED indikator tegangan, dan LED indikator bunyi buzzer setelah proses kerja
program telah berjalan di mikrokontroller.
3.2
Analisa
Rangkaian Secara Detail
Analisa rangkaian secara detail adalah salah satu cara yang digunakan
untuk mengetahui cara kerja dari rangkaian secara lebih rinci pada setiap
bagian rangkaian perblok sehingga dapat mengeluarkan Output.
3.2.1
Saklar Push
On
Rangkaian ini terdiri dari lima
tombol tekan dua kaki dimana kaki pertama terhubung ke ground dan kaki kedua terhubung ke Port 3.0 (start button), Port 3.4 (A look button), Port 3.5
(B look button), Port 3.7 (C look button)
dan pin reset (reset IC button) dari
mikrokontroller AT89C2051.
Gambar
3.2 Saklar Push On
Tombol pertama (start button) yang
terhubung dengan kaki P3.0 pada mikrokontroller berfungsi untuk memberhentikan
tampilan nyala LED dan bunyi buzzer setelah diberi inputan, yang akan
mengembalikan keposisi awal rangkaian ketika
keadaan tampilan LED dan buzzer tidak aktif (berlogika 1), kemudian
mikrokontroller akan kembali menerima input
sampai tombol ini kembali di tekan. Tombol start button ini bekerja berdasarkan pada fasilitas yang ada di
dalam mikrokontroller AT89C2051 yaitu RXD (Receive Data) yang terdapat pada port 3.0.
Tombol berikutnya adalah 3 buah tombol inputan yang masing-masing
terhubung ke kaki P3.4 (T0 external input), P3.5 (T1 external input), P3.7(
input externally pulled ) pada mikrokontroller, yang merupakan tombol pengatur
tampilan output. Jika tombol-tombol ini ditekan maka akan memberikan logika 0
untuk dapat menjalankan instruksi program yang sesuai dengan inputan port- port
yang telah ditentukan, yang akan menampilkan nyala LED dan bunyi buzzer. Tombol
yang dipakai selanjutnya adalah tombol reset yang berada dikaki 1, bila tombol
ini ditekan akan menghasilkan pulsa dari rendah ke tinggi (aktif high) yang
akan mereset mikrokontroller AT89C2051.
3.2.2
Osilator
Gambar
3.3 Osilator
Rangkaian
Osilator ini terdiri dari sebuah komponen kristal 11,0592 MHz dan 2 buah
kapasitor yang digunakan sebagai pengendali utama dan untuk menghasilkan
gelombang pulsa yang kemudian dijadikan output untuk melakukan pencacahan.
Proses pencacahan itu menghasilkan clock yang stabil untuk menjalankan sebuah
program pada mikrokontroller agar dapat menghasilkan output yang diharapkan.
3.2.3 IC
Mikrokontroller AT89C2051
Gambar
3.4 IC Mikrokontroller AT89C2051
Rangkaian Mikrokontroller pada alat pendeteksi kecepatan penekanan
tombol berbasiskan mikrokontroller tipe
AT89C2051 ini, terhubung pada Vcc
sebesar 5 volt dc yang dihasilkan oleh rangkaian regulator. Kaki Xtal l dan
Xtal 2 pada rangkaian mikrokontroller ini terhubung pada sebuah rangkaian oscilator berupa oscilator kristal yang diparalel dengan dua buah kapasitor 30 pF,
kaki RST terhubung pada sebuah rangkaian
power reset berupa kapasitor polar 1µF dan resistor 1 kΩ. Pin P3 terhubung
kerangkaian Tombol sebagai inputan dan P1 terhubung pada rangkaian display
berupa LED dan Buzzer.
Rangkaian mikrokontroller merupakan rangkaian utama pengendali alat
pendeteksi kecepatan penekanan tombol. Pada rangkaian ini terdapat program
pengendali seluruh aktivitas kerja dari rangkaian. Pemograman mikrokontroller
AT89C2051 dapat dibuat menggunakan bahasa assembler. Bahasa pemograman assernbler, dibuat dengan menggunakan
program editor teks yang kemudian di compile
dengan menggunakan compiler yang
bernama ASM51. Hasilnya dalam bentuk .hex dapat dimasukkan ke dalam
mikrokontroller vang kemudian akan menjadi otak kerja dari rangkaian ini.
3.2.4 Rangkaian Output
Gambar 3.5 Rangkaian Output
Rangkaian tampilan output
ini terdiri dari rangkaian Buzzer dan tampilan LED. Buzzer pada alat pendeteksi
kecepatan penekanan tombol digunakan sebagai indikator dari nyala LED,
rangkaian buzzer ini dihubungkan dengan LED sebagai indikator kalau buzzer itu
hidup dan transistor 9012 sebagai saklar penghubung arus dan tegangan ke buzzer.
Rangkaian Output yang
kedua adalah LED, LED dihubungkan pada pin P1 dari mikrokontroller yang
digunakan sebagai representasi display dari tombol yang ditekan, LED akan
menyala cukup baik bila pada bagian anoda katoda diberi beda tegangan kurang
lebih 1.7 Volt. Agar LED dapat bertahan
dan tidak rusak, maka arus yang mengalir pada LED tersebut harus dibatasi agar
tidak melebihi 20mA. Sehingga bila LED
diumpankan tegangan sebesar 5 Volt, LED perlu dipasang tahanan seri.
3.2.5
Analisa
Rangkaian Secara Keseluruhan
Gambar 3.6 Rangkaian Keseluruhan
Rangkaian ini bekerja dengan berpusat pada sebuah pengontrol yaitu
Mikrokontroller AT89C2051 yang dapat bekerja bila diberi inputan clock dari
osilator. Rangkaian ini menggunakan sumber tegangan sebesar 9 volt yang berasal
dari baterai, kemudian distabilkan dengan rangkaian regulator IC 7805 pada
level 5 Vdc. Pada rangkaian ini diberi 5 buah tombol, terdapat 3 tombol yang
digunakan sebagai inputan yang masing-masing terhubung ke kaki P3.4 (T0
external input), P3.5 (T1 external input), P3.7 (input externally pulled) pada
mikrokontroller, yang merupakan tombol pengatur tampilan output. Tombol yang
dipakai selanjutnya adalah tombol start yang
bekerja pada fasilitas yang ada di dalam mikrokontroller AT89C2051 yaitu
interupsi eksternal 0 (INT0) yang terdapat
pada port 3.2. Tombol yang terakhir adalah tombol reset yang berada di
kaki 1 mikrokontroller AT89C2051.
Cara kerja alat ini adalah jika salah satu tombol ditekan maka LED yang
berhubungan dengan tombol tersebut akan menyala. Tapi apabila ketiga tombol ditekan
pada waktu bersamaan, maka LED yang terlebih dulu menyala adalah LED A, karena berdasarkan
listing program yang dibuat sub program yang mendapat prioritas lebih awal
diproses adalah sub program A, setelah itu baru sub program berikutnya yang
akan diproses untuk mengaktifkan LED yang bersangkutan. Setiap terjadi proses
di sub program maka akan memanggil sub program buzzer, sub program ini akan
menghasilkan bunyi buzzer sebagai indikator dari menyalanya LED pada setiap sub
program. Penekanan salah satu tombol akan memberikan inputan logika 0 pada Port
3 mikrokontroller, inputan ini menyebabkan program utama mulai aktif untuk
dapat memberikan instruksi pada sub program, yang akan menghasilkan nyala LED
dan bunyi buzzer sebagai repersentasi display dari inputan tombol yang ditekan.
3.3 PERANCANGAN PROGRAM UNTUK MIKROKONTROLLER
Pemrograman
mikrokontroller AT89C2051 dapat dilakukan dengan menggunakan bahasa assembler,
bahasa pemrograman assembler dibuat dengan menggunakan program editor teks yang
kemudian di-compile dengan menggunakan compiler yang bernama ASM51. Hasilnya
dalam bentuk .hex yang dapat dimasukkan ke dalam mikrokontroller kemudian akan
menjadi otak kerja dari suatu rangkaian.
3.3.1 FLOWCHART
Flowchart adalah diagram yang menggambarkan
langkah-langkah yang diambil untuk membuat program agar dapat berjalan dengan
baik, dimaksudkan agar tidak terlalu banyak kesalahan dalam pembuatan program,
selain itu juga mempermudah pembaca
dalam memahami cara kerja (alur) dari program.
Gambar
3.7 Flowchart Program Utama
3.3.2 Penjelasan
dengan Program Assembler
a.
Inisialisasi Port
Berikut merupakan program utama
yang menjadi inisialisasi penggunaan fasilitas dalam mikrokontroller AT89C2051.
org 0h
ljmp awal
PROGRAM UTAMA ;
awal:
mov sp,#70h ;Tentukan
Posisi Stack Pointer
start:
mov a,0ffh
mov p1,a ;Set Posisi Awal
jnb p3.0,start
jnb p3.4,regu_a
jnb p3.5,regu_b
jnb p3.7,regu_c
ljmp awal
Dari program diatas merupakan
inisialisasi vektor interupsi diawali dengan org 0H yang berarti program
dimulai pada register 0H. Register stack
pointer dialamatkan pada 70H, hal ini dimaksudkan untuk proses simpan dan
ambil dari/ ke stack. Dimana posisi awal start adalah 0ffh yang berarti keadaan
output di P1 tidak aktif karena berlogika 1, sedangkan P1 akan aktif jika
diberi logika 0 karena mikrokontroller AT89C2051 menggunakan aktif low yang akan aktif jika
diberi logika 0.
Selanjutnya program akan menunggu
instruksi dari P3 dilambangkan dengan jnb
p3.0 yaitu jump not byte p3.0,start
artinya jika P3.0 ditekan maka program akan kembali ke posisi start dimana
output di P1 tidak aktif, untuk jnb p3.4,
regu_a berarti jika port 3.4 ditekan maka jalankan sub program regu_a,
untuk jnb p3.5,regu_b berarti
jalankan sub program regu_b, untuk jnb
p3.,regu_c berarti jalankan sub program regu_c, kemudian diakhiri dengan
ljmp awal yang artinya kembali ke awal program utama, dimana perintah ini harus
ditulis setiap selesai menjalankan instruksi program/sub program.
b.
Program Pengecekan Tombol
Berikut merupakan sub program yang menjadi program pengecekan tombol
dalam mikrokontroller AT89C2051.
sub program regu_a
Regu_a: clr
p1.1 ;nyalakan led a
acall
buzzer ;bunyikan buzzer
Cek_01: jnb
p3.0,start
sjmp
regu_a ;tunggu sampai tombol start di
tekan
sub program regu_b
Regu_b: clr
p1.2 ;nyalakan led b
acall
buzzer ;bunyikan buzzer
Cek_02: jnb p3.0,start
sjmp
regu_b ;tunggu sampai tombol start di
tekan
sub program regu_c
Regu_c: clr
p1.3 ;nyalakan led c
acall
buzzer ;bunyikan buzzer
Cek_03: jnb
p3.0,start
sjmp
regu_c ;tunggu sampai tombol start di
tekan
Program diatas merupakan sub program
dari program utama untuk menjalankan instruksi, dimana pada setiap sub program
bertugas untuk memanggil instruksi yang berada pada bagian sub program
tersebut. Seperti kita ambil contoh sub program regu_a terdapat perintah clr
p1.1 yang berarti mengaktifkan P1.1 yang pada rangkaian dilambangkan dengan Led
A, kemudian perintah selanjutnya yaitu acall buzzer yang berarti memanggil sub
program buzzer. Adalagi perintah jnb,start yang berarti pengecekan apakah ada
interupsi dari p3.0 (penekanan tombol
start) jika ada maka kembali ke posisi start yang berarti kembali ke keadaan
awal dimana keadaan program berlogika 1 (tidak aktif) yang di akhiri dengan
sjmp regu_a (short jump) yang berarti
lompat ke perintah regu_a yang merupakan perintah yang harus ada disetiap
program/ sub program, dan begitu seterusnya untuk sub program yang lain.
c. Sub Program Buzzer
Buzzer: push psw ;simpan isi
program status word
clr p1.0 ;aktifkan
buzzer
acall tunda ;tunda sebentar
setb p1.0 ;non aktifkan kembali buzzer
pop psw ;kembalikan
isi program status word
ret
Perintah diatas merupakan sub
program dalam mengaktifkan buzzer yang berada p1.1, dan perintah push/pop psw
digunakan untuk menyimpan dan mengembalikan isi program status word, kemudian
diakhiri dengan ret untuk kembali menjalankan program utama setelah seluruh
instruksi dalam interupsi terlaksana.
d.
Program Tunda
Tunda: push psw
Push dph
Push dpl
Mov r0,#5 ;lama tunda 5x250x250 cycle
Tun1: mov dpl,#250
Tun2: mov dph,#250
Tun3: djnz dph,tun3
Djnz dpl,tun2
Djnz r0,tun1
Pop dpl
Pop dph
Pop psw
Ret
End
Dari listing program di atas
terlihat bahwa terdapat pendeklarasian program tunda yang digunakan untuk
mendelay jalannya output program dengan waktu sepersekian detik. Program
interupsi diakhiri dengan statement RET
untuk kembali menjalankan program utama setelah seluruh instruksi terlaksana
dan diakhiri dengan statement end
untuk mengakhiri seluruh program.
e. Interupsi Reset
ORG 00H ; int. reset
LJMP PU
RETI
Dari program diatas dapat
diketahui bahwa setelah tombol reset IC ditekan maka akan melakukan
reset terhadap IC mikrokontroller dan program yang ada didalam mikrokontroller
AT89C2051.
3.4 Pengujian Rangkaian
Pengujian rangkaian yang dilakukan pada alat ini difokuskan pada
rangkaian tombol. Setelah rangkaian mikrokontroller berjalan dengan baik,
ketika program-program dijalankan maka akan menghasilkan output berupa nyala
LED dan Buzzer yang sesuai dengan inputan tombol. Parameter yang diukur dalam
pengujian rangkaian tombol adalah seluruh tombol untuk menjalankan program
interupsi yang telah ada dalam program mikrokontroller AT89C2051.
Berikut
merupakan hasil simulasi dari pengujian rangkaian tombol.
Tabel.
3.1. Data Pengamatan
NO
|
Tombol Yang ditekan
|
LED yang Menyala
|
Buzzer
|
1
2
3
4
5
6
7
8
|
A
B
C
A,B,C
B,A,C
C,A,B
A,B,C Bersama
A,B,C disertai
Start/Reset Bersama
|
A
B
C
A
B
C
A
Tidak ada
|
Aktif
Aktif
Aktif
Aktif
Aktif
Aktif
Aktif
Tidak Aktif
|
BAB IV
PENUTUP
4.1 Kesimpulan
Berdasarkan proses perancangan dan
pembuatan alat, perancangan program, analisa rangkaian sampai dengan uji coba
alat, dapat ditarik beberapa kesimpulan diantaranya alat ini dapat bekerja
dengan catu daya yang bersumber dari baterai 9 volt, kemudian di stabilkan oleh
IC Regulator 7805 pada level 5 volt DC. Rangkaian ini bekerja dengan berpusat
pada sebuah pengontrol yaitu Mikrokontroller AT89C2051 yang dapat bekerja
setelah diberi inputan clock dari osilator yang dihasilkan oleh kristal yang
terhubung pada kaki mikrokontroller. Didalam
mikrokontroller AT89C2051 terdapat sebuah program yang berfungsi sebagai
pengatur kerja rangkaian yaitu Program bahasa assembler, yang di-compile menggunakan aplikasi ASM51.
Kemudian di download kedalam mikrokontroller, melalui program ini alat
dikendalikan dengan interface tiga buah tombol sebagai inputan dan tiga buah LED
sebagai representasi display dari tombol, disertai sebuah buzzer sebagai
indikator suara dari tampilan LED yang menyala. Cara kerja alat ini adalah
apabila salah satu dari tiga tombol ditekan, maka LED yang berhubungan dengan
tombol tersebut akan menyala, sedangkan kedua tombol yang lain tidak akan
merespon terhadap tampilan Led. Alat ini juga disertai dengan dua buah tombol
yang berfungsi mereset program mikrokontroller agar dapat diberikan inputan
selanjutnya.
4.2
Saran
Bagi pihak-pihak lain
yang ingin membuat dan mencoba memodifikasi rangkaian Alat Pendeteksi Kecepatan
Penekanan Tombol ini, ada beberapa hal yang perlu diperhatikan dengan baik
yaitu alat ini agar diberikan catu daya tegangan input sebesar 5 volt DC,
sehingga alat tidak cepat rusak karena kelebihan arus. Jika LED tidak menyala
periksa jalur PCB, pemasangan komponen dan pemasangan IC. Menyolder IC jangan
terlalu lama agar komponen IC tidak rusak. Pastikan program bahasa Assembler
yang ingin digunakan telah berjalan dengan baik, usahakan diperiksa terlebih
dahulu pada software simulasi (rigel) sebelum di download ke dalam IC
mikrokontroller AT89C2051, agar tidak terjadi kesalahan setelah dipasangkan
kerangkaian.di PCB.
Hal-hal tersebut diatas perlu
diperhatikan agar rangkaian ini dapat bekerja secara efektif dan efisien,
sehingga penerapannya sebagai pelengkap permainan dapat berjalan secara
objektif.
DAFTAR PUSTAKA
[1]. Anonim, Modul Tutorial Praktikum Elektronika Dasar 1,
Lab. Elektronika
Universitas Gunadarma, Depok, 2005
[2]. Anonim, Modul
Praktikum Sistem Digital, Lab. Elektronika Universitas
Gunadarma, Depok, 2006
[3]. Putra,
Agfianto Eko, “Belajar Mikrokontroler AT89C51/ 52”, Gava
Media,Yogyakarta, 2002
[4]. Nino Guevara Ruwano, Berkarya dengan Mikrokontroler AT89C2051,Edisi I,
PT.Elexmedia Komputindo, Jakarta, 2006
[5]. URL :
http://www.onsemi.com/sn74ls247rev6.pdf, Juni, 2003