• Tidak ada hasil yang ditemukan

BAB II TEORI PENUNJANG

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB II TEORI PENUNJANG"

Copied!
29
0
0

Teks penuh

(1)

BAB II

TEORI PENUNJANG

2.1. Mikrokontroler AT89C51

Mikrokontroler dapat diumpakan sebagai bentuk skala mini dari mikrokomputer. Di dalam mikrokontroler terdapat komponen-komponen dasar dari sebuah mikrokomputer, yaitu memori, CPU, dan instruksi-instruksi yang terpadu dalam satu keping IC.

Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka, dan sebagainya), mikrokontroler hanya digunakan untuk satu aplikasi tertentu saja. Perbedaan lainnya terletak pada penggunaan dan perbandingan ukuran RAM (Random Access Memory) dan ROM (Read Only Memory). Pada sistem komputer perbandingan RAM dan ROM- nya besar, program-program pengguna disimpan dalam ruang RAM yang besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang ROM yang jauh lebih kecil. Sedangkan pada mikrokontroler perbandingan RAM dan ROM-nya tidak terlalu besar, program kontrol disimpan dalam ROM sedangkan RAM digunakan sebagai tempat penyimpanan sementara.

Pada bagian ini kita akan mengenal dan membahas beberapa hal tentang mikrokontroler Atmel AT89C51 yang digunakan pada tugas akhir ini.

(2)

2.1.1. Fungsi-fungsi kaki pada Mikrokontroler AT89C51

Mikrokontroler AT89C51 mempunyai 40 kaki (pin). 32 kaki diantaranya adalah untuk kebutuhan port paralel. Satu port paralel terdiri dari 8 kaki, dengan demikian terdapat 4 buah port paralel. Port paralel tersebut adalah Port 0, Port 1, Port 2, dan Port 3. Nomor dari masing-masing kaki adalah dari 0 sampai 7. Jadi jalur pertama Port 0 disebut P 0.0 dan jalur terakhir Port 0 adalah P 0.7.

Berikut ini adalah penjelasan dari pin-pin mikrokontroler beserta fungsinya:

• VCC

Masukan suplai tegangan.

• GND

Ground atau pertanahan.

• RST

Masukan reset. Bila diberi kondisi high selama 2 siklus mesin maka akan terjadi reset.

• ALE/PROG’

ALE (Address Latch Enable) menghasilkan pulsa-pulsa byte rendah (low byte) alamat selama mengakses memori eksternal. Kaki ini juga berfungsi sebagai masukan pulsa program (the program pulse input) atau PROG’ selama pemograman flash. Pada operasi normal, ALE akan berpulsa dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan (timing) atau pendetakan (clocking) rangkaian eksternal.

(3)

Gambar 2.1 Diagram Pin Mikrokontroler AT89C51

• PSEN’

Program Store Enable merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler menjalankan program dari memori eksternal, PSEN’ akan diaktifkan selama dua siklus mesin, kecuali aktivasi PSEN’

dilompati (diabaikan) saat menjalankan memori data eksternal.

• EA’/Vpp

EA’ (Eksternal Access Enable) harus selalu dihubungkan ke ground jika mikrokontroler akan mengeksekusi program dari memori eksternal lokasi

(4)

0000h hingga FFFFh. Selain dari itu, EA’ harus dihubungkan ke VCC agar mikrokontroler mengakses program secara internal.

• Port-port paralel ( P 0.0 sampai dengan P 3.7)

Kegunaan port paralel adalah untuk mengirimkan data keluar mikrokontroler dan menerima masukan sinyal dari luar mikrokontroler. Satu hal yang harus diingat adalah bahwa sebelum data dari luar dapat dibaca dengan benar, maka jalur port yang bersangkutan harus diisi dengan logika

“1” (high).

Selain kegunaan umum tadi, ada fungsi-fungsi khusus dari masing-masing port, yaitu:

• Kegunaan lain dari Port 0 adalah sebagai saluran data (bus data, dari D0 sampai D7) dan saluran alamat (bus alamat A0 sampai A7) yang dipakai dalam pengaksesan memori data atau program eksternal.

• Port 2 dipakai juga untuk melewatkan saluran alamat (bus alamat A8 sampai A15).

• Port 3 digunakan untuk berbagai keperluan sarana input/output yang khusus seperti pewaktu (timer), pencacah (counter), dan interupsi.

Berikut adalah kaki fungsi-fungsi khusus kaki Port 3:

Tabel 2.1 Fungsi Khusus Port Paralel 3

Kaki Port Fungsi Khusus

P 3.0 T2 (Masukan eksternal pewaktu/pencacah 2)

P 3.1 T2EX (Pemicu Capture/ Reload pewaktu.pencacah 2) P 3.0 RXD (Port masukan serial)

(5)

P 3.1 TXD (Port keluaran serial) P 3.2 INT0’ (Interupsi eksternal 0) P 3.3 INT1’ (Interupsi Internal 1)

P 3.4 T0 (Masukan eksternal pewaktu/pencacah 0) P 3.5 T1 (Masukan eksternal pewaktu/pencacah 1) P 3.6 WR’ (Sinyal tanda baca memori data eksternal) P 3.7 RD’ (Sinyal tanda tulis memori data eksternal)

2.1.2. Organisasi Memori

Semua produk mikrokontroler AT89C51 dari Atmel memiliki ruang alamat memori data dan program terpisah, sebagaimana ditunjukan oleh gambar 2.2.

Pemisahan memori program dan data tersebut membolehkan memori data diakses dengan alamat 8 bit, sehingga dapat dengan mudah disimpan dan dimanipulasi oleh CPU 8 bit. Namun demikian, alamat memori data 16 bit juga bisa dihasilkan melalui register DPTR (Data Pointer Register).

(6)

Gambar 2.2 Organisasi Memori Atmel 89C51

Memori program hanya bisa dibaca saja. Terdapat memori program yang bisa diakses langsung hingga 64 Kb. Memori data menempati suatu ruang alamat yang terpisah dari memori program.

Memori eksternal dapat diakses langsung hingga 64 Kb dalam ruang memori data memori eksternal. CPU akan memberikan sinyal baca dan tulis, RD (read) dan WR (write), selama pengaksesan memori data eksternal.

(7)

Gambar 2.3 Struktur Memori AT89C51

Memori data eksternal dan memori program eksternal dapat dikombinasikan dengan cara menggabungkan sinyal RD dan PSEN melalui gerbang AND dan keluarannya sebagai tanda baca ke memori data/program eksternal.

2.1.3. Set Instruksi Mikrokontroler Atmel 89C51

Berikut ini dijelaskan secara singkat beberapa set instruksi yang telah disediakan oleh mikrokontroler AT89C51.

2.1.3.1. Program Status Word

Program Status Word atau PSW berisi bit-bit yang berkaitan dengan kondisi CPU. Status yang tersimpan dalam PSW meliputi : carry bit, auxiliary carry (untuk

(8)

operasi BCD), dua bit pemilih bank register, overflow flag, parity, dan dua flag status yang bisa didefiniskan sendiri (user definable).

2.1.3.2. Mode-Mode Pengalamatan

Data atau operan bisa berada di tempat yang berbeda sehingga dikenal beberapa cara untuk mengakses data tersebut. Inilah yang dikenal sebagai mode pengalamatan. Beberapa mode pengalamatan yang dkenal antara lain:

• Mode pengalamatan segera (immediate addressing mode)

Mode pengalamatan ini menggunakan konstanta. Data konstanta ini merupakan data yang menyatu dengan instruksi. Contoh instruksinya:

MOV A, #20 h

Instruksi tersebut diatas mempunyai arti bahwa data konstantanya, yaitu 20h perlu disalin ke akumulator. Tanda ‘#’ dipakai untuk menunjukan bahwa data berupa konstanta.

• Mode pengalamatan langsung (direct addressing mode)

Cara ini dipakai untuk menunjuk data yang berada di suatu lokasi memori. Contoh instruksinya:

MOV A, 30h

Instruksi ini mempunyai arti agar data pada alamat 30h diambil dan dipindahkan ke akumulator. Bila diperhatikan, maka kita akan bisa lihat bahwa instruksi diatas tidak menyertakan tanda ‘#’. Tanpa tanda ‘#’, maka data diartikan sebagai alamat memori.

(9)

• Mode pengalamatan tidak langsung (indirect addressing mode)

Mode pengalamatan ini dipakai untuk mengakses data yang alamatnya berada dalam suatu register. Contoh instruksi:

MOV A, @R0

Arti dari instruksi tersebut adalah data yang alamatnya berada di register R0 disalin ke akumulator. Tanda “@” menyatakan bahwa alamat lokasi data berada dalam suatu register. Jadi data tersebut sendiri tidak berada di R0. Yang berada di R0 adalah alamatnya.

• Mode pengalamatan register (register addressing mode)

Mode pengalamatan ini dipakai untuk mengakses suatu data yang tersimpan dalam register. Contoh instruksi:

MOV A, R0

Arti dari instruksi diatas adalah bahwa data pada register R0 disalin ke akumulator. Jadi, berbeda dengan mode pengalamatan tidak langsung yang menjadikan register sebagai tempat penyimpanan alamat data, maka pada mode pengalamatan register ini, data disimpan langsung di register.

• Mode pengalamatan kode tidak langsung (code indirext addressing mode)

Mode pengalamatan ini dipakai untuk mengakses data yang tersimpan dalam memori program. Seperti yang telah dibahas sebelumnya, memori program bisa menyimpan data yang bisa diakses hingga 64 Kb.

Keuntungan dari menyimpan data di memori program adalah karena

(10)

memori program berupa ROM (non-volatile) sehingga data tersimpan terus menerus. Contoh instruksi:

MOVC, A, @A + DPTR

Arti instruksi diatas adalah data yang lokasinya disimpan di A+ DPTR dipindahkan ke akumulator. Perhatikan bahwa perintah yang digunakan adalah MOVC, bukan MOV. MOVC menandakan bahwa data yang diakses berada di memori program sedangkan MOV digunakan untuk mengakses memori data.

2.1.3.3. Instruksi-instruksi Aritmetika

Instruksi-instruksi aritmetika berupa set instruksi yang khusus menangani operasi-operasi aritmetika. Instruksi-instruksi tersebut antara lain:

• ADD : Instruksi penjumlahan

• ADDC : Instruksi penjumlahan dimana carry juga diperhitungkan.

• DEC : Instruksi pengurangan

• INC : Instruksi penambahan dengan jumlah tertentu

• MUL : Instruksi operasi perkalian

• DIV : Instruksi operasi pembagian

2.1.3.4. Instruksi-instruksi Logika

Istruksi-instruksi logika adalah instruksi untuk melakukan operasi-operasi Boolean. Instruksi-instruksi logika yang disediakam AT89C51 antara lain:

o ANL : Instruksi operasi dengan gerbang logika AND o ORL : Instruksi operasi dengan gerbang logika OR o XRL : Instruksi operasi dengan gerbang logika XOR

(11)

o CLR : Instruksi untuk mengisi register A dengan 00h

2.1.3.5. Instruksi Transfer Data

Instruksi transfer data adalah instruksi-instruksi yang digunakan untuk memindahkan data antar lokasi.

• MOV (tujuan),(sumber)

Salin data yang beralamat di sumber ke tujuan.

• MOV (tujuan),#(data) Salin data ke tujuan

• MOV (tujuan),@(register)

Salin data yang alamatnya di register ke tujuan.

• MOV (tujuan),(register) Salin data di register ke tujuan

• MOVC (A),@(A +DPTR/PC)

Baca memori program di A+DPTR/PC

• PUSH (sumber)

Naikan SP (Stack Pointer) kemudian menyalin data ke lokasi yang dialamatkan oleh SP.

• POP (tujuan)

Salin data yang alamatnya terletak di SP ke tujuan kemudian SP dikurangi (decreased)

• XCH A,(sumber)

(12)

Tukar data yang tersimpan di akumulator dengan data di lokasi alamat yang ditunjuk oleh sumber.

2.1.3.6.Instruksi-instruksi Lompat

Instruksi-instruksi lompat digunakan untuk memindahkan pointer pada alamat atau lokasi tertentu yang dituju.

JMP alamat : Lompat ke alamat JMP@A+DPTR : Lompat ke A+DPTR CALL alamat : Panggil subrutin di alamat RET : Kembali dari subrutin

RETI : Kembali dari layanan interupsi JZ rel : Lompat jika A bernilai 0

DJZ rel : Lompat jika A tidak sama dengan 0 DJNZ (byte), rel : Turunkan byte dan lompat jika tidak nol

CJNE A,(byte),rel : Bandingkan A dengan byte dan lompat bila tidak sama.

2.1.4. Timer dan Counter dalam AT89C51

Pada dasarnya sarana masukan yang satu ini merupakan seperangkat pencacah biner (binary counter) yang terhubung langsung ke hubungan langsung ke saluran data mikrokontroler, sehingga mikrokontroler bisa membaca kondisi pencacah dan bila diperlukan, mikrokontroler dapat pula merubah kondisi pencacah tersebut.

Seperti layaknya pencacah biner, saat sinyal detak (clock) yang diberikan sudah melebihi kapasitas pencacah, maka pencacah akan memberikan sinyal overflow atau limpahan, sinyal ini merupakan suatu hal yang penting dalam pemakaian

(13)

pencacah dan terjadinya limpahan pencacah ini dicatat dalam suatu register. Selain itu, sinyal detak yang diberikan ke pencacah bisa dikendalikan dengan mudah, pada gambar ditunjukan konsep dasar Timer/Counter.

Gambar 2.4 Konsep Timer/Counter pada Atmel89C51

Sinyal detak yang diberikan ke pencacah dibedakan menjadi 2 macam, yang pertama ialah sinyal detak dengan frekuensi tetap yang sudah diketahui besarnya dan yang kedua adalah sinya detak dengan frekuensi yang bisa bervariasi.

Jika sebuah pencacah bekerja dengan frekuensi tetap, dikatakan pencacah tersebut bekerja sebagai timer atau pewaktu karena kondisi pencacah tersebut setara dengan waktu yang bisa ditentukan dengan pasti.

Jika sebuah pencacah bekerja dengan frekuensi yang bervariasi, dikatakan pencacah tersebut bekerja sebagai counter atau pencacah, kondisi pencacah tersebut menyatakan banyaknya pulsa detak yang sudah diterima. Untai pencacah biner tersebut merupakan pencacah biner naik (count up binary counter).

Mikrokontroler AT89C51 menyediakan dua perangkat Timer/Counter, masing-masing dinamakan Timer 0 dan Timer 1. Untuk mengakses Timer/Counter ini,digunakan SFR (Special Function Register). Pencacah biner Timer 0 diakses

(14)

melalui TL0 (Timer 0 Low Bit) dan TH0 (Timer 0 High Bit). Pencacah biner Timer 1 diakses melalui TL1 (Timer 1 Low Bit) dan TH1 (Timer 1 High Bit).

Untuk mengatur kerja Timer/Counter tersebut digunakan 2 register tambahan yang dipakai bersama oleh Timer 0 dan Timer 1. Register tambahan tersebut adalah TCON (Timer Control Register) dan TMOD (Timer Mode Register).

TL0, TH0, TL1, dan TH1 merupakan SFR yang dipakai untuk membentuk pencacah biner Timer 0 dan Timer 1. Kapasitas masing-masing register tersebut 8 bit dan bisa disusun menjadi 4 macam mode pencacah biner.

2.1.4.1 Mode Kerja Timer

Pada mode 0, mode 1, dan mode 2, Timer 0 dan Timer 1 bekerja sendiri- sendiri. Jadi Timer 0 bisa saja bekerja pada mode 0 dan Timer 1 bekerja pada mode 1.

Pada mode 3, Timer bekerja secara bersama-sama. Berikut akan dibahas setiap mode dari kerja Timer.

a. Mode 0 – Pencacah 13 bit

Pada gambar 2.5 ditunjukan diagram fungsional Timer pada mode 0.

Pencacah biner dibentuk dengan TLx (bisa TL0 atau TL1) sebagai pencacah biner 5 bit (meskipun kapasitas sesungguhnya 8 bit).

(15)

OSC

TFx THX

8 BIT TLX 5 BIT + 12

PIN Tx

GATE TRX

PIN INTX

KONTROL C/T’ = 0

C/T’ = 1

INTERUPSI

Gambar 2.5 Mode 0 Pencacah Biner 13 bit

Limpahan dari pencacah biner 5 bit ini disambungkan ke THx (TH0 ataupun TH1). Terbentuklah untai pencacah biner 13 bit. Limpahan Untai pencacah ini ditampung oleh TFx (bisa TF0 atau TF1) yang terletak di register TCON Pada saat terjadi limpahan (dari 1FFFh ke 0000h) maka flag interupsi Timer (TF1) akan diset (“1”). Masukan ke pencacah (baik dari eksternal Tx, maupun internal ½ Fosc) diaktifkan jika TRx=1 dan GATE=0 atau INTX’=1, maka keluaran dari gerbang OR selalu 1 dan akibatnya gerbang AND juga 1. Jika GATE’=1 maka Timer sepenuhnya dikendalikan oleh masukan eksternal INTX’ dan bisa dilakukan dalam pengukuran lebar pulsa (pulse width). TRX merupakan bit kontrol dalam register TCON.

Karena baik THx maupun TLx digunakan untuk membentuk pencacah biner 13 bit, maka 3 bit atas TLx tidak menentu dan diabaikan. Men-set TRX tidak secara otomatis menghapus isi register Timer.

(16)

Mode ini meneruskan sarana Timer yang ada pada mikrokontroler MCS48 (pendahulu AT89C51) dengan maksud rancangan alat yang dibuat

dengan MCS48 bisa dengan mudah diadaptasikan ke AT89C51.

Mode 1 – Pencacah Biner 16 bit

Gambar 2.6 Mode 1 Pencacah Biner 16 Bit

Mode ini sama dengan mode 0. Hanya saja register TLx dipakai sepenuhnya sebagai pencacah biner 8 bit, tidak seperti mode 0 yang menggunakannnya hanya sebagai pencacah biner 5 bit. Dengan gabungan TLx dan THx, dibentuk pencacah biner 16 bit. Seiring dengan sinyal detak, kondisi pencacah biner ini mulai berubah dari 0000h, 0001h, 0002h,… sampai FFFFh kemudian menjadi 0000h (pada saat itu terjadi sinyal limpahan atau overflow pada TFx).

Mode 2 – Pencacah Biner 8 bit dengan Isi Ulang

(17)

Gambar 2.7 Mode 2 Pencacah Biner 8 Bit dengan Isi Ulang

Pada gambar 2.7 ditunjukan diagram fungsional Timer/Counter pada mode 2. TLx dipakai sebagai pencacah biner 8 bit, sedangkan THx dipakai untuk menyimpai nilai yang diisikan ulang ke TLx setiap kali kondisi TLx melimpah atau berubah dari FFh ke 00h. Dengan cara ini, bisa diperoleh sinyal overflow yang frekuensinya bisa ditentukan oleh nilai yang disimpan dalam THx.

Mode 3 – Gabungan Pencacah Biner 16 bit dan 8 bit

(18)

Gambar 2.8 Mode 3 Pencacah Biner 16 Bit dan 8 Bit

Pada mode 3, TL0, TH0, TL1, dan TL1 dipakai untuk membentuk 3 rangkai pencacah. Yang pertama adalah untai pencacah 16 bit tanpa fasilitas pemantau sinyal limpahan yang dibentuk dengan TL1 dan TH1. Yang kedua adalah TL0 yang diapakai sebagai pencacah biner 8 bit dengan TF0 sebagai sarana pemantau sinyal limpahan. Pencacah biner ketiga adalah TH0 yang dipakai sebagai pencacah biner 8 bit dengan TF1 sebagai sarana pemantau limpahan, dengan demikian TH0-lah yang mengendalikan interupsi Timer 1 (TF1).

Mode 3 biasanya digunakan pada aplikasi yang membutuhkan sebuah timer atau pencacah 8 bit tambahan. Dengan Timer 0 pada mode 3, AT89C51 seakan-akan memiliki 3 buah Timer. Pada mode 3 ini, Timer 1 dapat dihidupkan dan dimatikan menggunakan M1 dan M0 pada register TMOD.

(19)

2.1.4.2. Register Pengatur Timer

Register TMOD dan register TCON merupakan register yang digunakan untuk mengatur kerja Timer 0 dan Timer 1. Susunan bit pada register TMOD dan TCON akan ditunjukan oleh gambar 2.9 dan 2.10.

Gambar 2.9 Susunan Bit dalam RegisterTMOD

Register TMOD dibagi menjadi dua bagian simetris, bit 0 sampai 3 (TMOD 0 samapai dengan TMOD 3) dipakai untuk mengatur Timer 0 Sedangkan bit 4 sampai 7 (TMOD 4 sampai dengan TMOD 7) digunakan untuk mengatur Timer 1.

Bit M0/M1 dipakai untuk menentukan mode Timer seperti yang ditunjukkan pada tabel 2.2.

(20)

Tabel 2.2 Mode Timer

berdasarkan susunan register M0/M1

Bit C/T’ dipakai untuk mengatur sumber sinyal detak yang diberikan pencacah biner. Jika C/T’=0 maka sinyal detak diperoleh dari osilator kristal yang frekuensinya sudah dibagi 12, sedangkan jika C/T’=1 maka sinyal detak diperoleh dari kaki T0 (untuk Timer 0) atau kaki T1 (Untuk Timer 1).

Bit GATE merupakan bit pengatur saluran sinyal detak. Bila bit GATE=0, saluran sinyal detak hanya diatur oleh kaki TRx (bisa kaki TR0 atau TR1 pada register TCON. Bila bit GATE =1 kaki INT0 (untuk Timer 0) atau kaki INT1 (untuk Timer 1) yang dipakai untuk mengatur sinyal detak.

M1 M0 Mode 0 0 0 0 1 1 1 0 2 1 1 3

(21)

Gambar 2.10 Susunan Bit dalam Register TCON

Register TCON dibagi menjadi 2 bagian, 4 bit pertama (bit 0 sampai bit 3) dipakai untuk mengatur keperluan kaki INT0 dan INT1. Sisa 4 bit dari register TCON (bit 4 sampai dengan 7) dibagi menjadi 2 bagian secara simetris yang dipakai untuk mengatur Timer 0/Timer 1 sebagai berikut:

• Bit TFx (TF0 atau TF1) merupakan bit penampung limpahan, TFx akan menjadi “1” setiap kali pencacah biner yang terhubung padanya melimpah atau overflow (kondisi pencacah berubah dari FFFFh kembali menjadi 0000h). Bit TFx bisa di-nol-kan secara manual dengan instruksi CLR TF0 atau CLR TF1. Jika sarana interupsi dari Timer 0/Timer 1 dipakai, TFx di-nol-kan saat AT89C51 menjalankan rutin layanan interupsi (ISR – Interupt Service Routine).

• Bit TRx (TR0 atau TR1) merupakan bit pengatur saluran sinyal detak, bila bit ini 0, sinyal detak tidak disalurkan ke pencacah biner sehingga pencacah berhenti melakukan pencacahan. Bila bit GATE=1 pada register TMOD, maka saluran sinyal detak ini diatur bersama oleh TRx dan sinyal pada kaki INT0’/INT1’.

2.1.5. Sistem Interupsi

(22)

AT89C51 menyediakan 5 sumber interupsi : dua interupsi eksternal, dua interupsi Timer dan sebuah Port Serial

2.1.5.1. Struktur Interupsi

Interupsi eksternal INT0’ dan INT1’ dapat dipilih dengan dua macam pilihan: aktivasi tingkat (level-activated) atau aktivasi transisi (transition-activated).

Hal ini tergantung pada bit IT0 dan IT1 dalam register TCON. Tanda atau flag yang sesungguhnya menghasilkan interupsi ini adalah bit-bit IE0 (TCON .0) dan IE1 (TCON .3) dalam register TCON. Saat rutin layanan interupsi (RL1) dijalankan, mikrokontroler secara otomatis akan me-nol-kan tanda interupsi terkait asal interupsi tersebut diaktivasi dengan transisi. Jika aktivasi secara tingkat (level), maka sumber eksternal-lah yang mengontrol tanda interupsi tersebut.

IE0

TF0

TF1 IE1

T1 R1 -INT0

(P 3.2)

TIMER 1

UART TIMER 0

IT1 IT0

-INT1 (P 3.3)

1

0

1

0

1 0

1 0 1 0

1 0 1 0 1 0 1 0 1 0

1 0 1 0 RXD

(P 3.0)

TXD (P 3.1)

EX0

ET0

EX1

ET1

ES1

PX0

PT0

PX1

PT1

PS 1 0 1 0 1 0 1 0 1 0

Prioritas Utama Tanpa Prioritas

Ke rangkaian pengolah interupsi Register IP

(Interrupt Priority) Register IE

(Interrupt Enable)

Gambar 2.11 Bagan Lengkap Interupsi pada AT89C51

(23)

Interupsi Timer 0 dan Timer 1 dihasilkan oleh TF0 dan TF1, terjadi pada saat muncul limpahan pada masing-masing Timer (kecuali Timer 0 mode 3). Saat terjadi interupsi Timer, mikrokontroler akan me-nol-kan tanda tersebut.

Interupsi port serial terjadi baik pada saat RI=1 atau TI=1 (pada saat selesai penerimaan atau pengiriman data). Dalam hal ini bit-bit RI dan TI harus di-nol-kan secara manual melalui program yang ditulis. Kedua interupsi port serial ini digabungkan melalui gerbang OR.

Semua bit yang menyebabkan terjadinya interupsi bisa di-set atau di-nol-kan melalui perangkat lunak dan hasilnya sama jika dilakukan melalui perangkat keras.

Dengan demikian interupsi bisa dihasilkan maupun dibatalkan melalui program.

2.1.5.2. Mengaktifkan dan Menon-aktifkan Interupsi.

Masing-masing sumber interupsi dapat diaktifkan atau dinonaktifkan sendiri-sendiri dengan mengatur bit-bit yang terkait dalam register IE (Interupt Enable) di alamat A8h. Selain itu pada register IE juga terdapat sebuah bit yang digunakan untuk mengaktifkan dan menonaktifkan interupsi secara keseluruhan (global).

2.1.5.3. Tingkat Prioritas Interupsi

Masing-masing interupsi dapat diprogram tingkat prioritasnya dengan mengatur bit-bit yang terkait pada register IP (alamat B8h). Tabel berikut berisi ringkasan tingkat prioritas pada interupsi.

Tabel 2.3 Ringkasan Register IP (Interupt Priority)

Bit Simbol Alamat Bit Keterangan (1=level tinggi,0=level rendah)

(24)

IP.7 - -

IP.6 - -

IP.5 PT2 BDh Prioritas untuk Interupsi Timer 2 IP.4 PS BCh Prioritas untuk Interupsi Port Serial IP.3 PT1 BBh Prioritas untuk Interupsi Timer IP.2 PX1 Bah Prioritas untuk Interupsi Eksternal 1 IP.1 PT0 B9h Prioritas untuk Interusi Timer 0 IP.0 PX0 B8h Prioritas untuk Interupsi Eksternal 0

Register IP akan berisi nol semua saat reset yang mengakibatkan semua interupsi ditempatkan sebagai prioritas rendah. Dengan adanya sistem prioritas maka saat sebuah rutin layanan dikerjakan bisa diinterupsi dengan interupsi yang prioritasnya lebih tinggi. Karena hanya ada dua tingkat prioritas, maka interupsi yang prioritas rendah bisa diinterupsi dengan yang prioritasnya tinggi, sedangkan interupsi yang prioritasnya tinggi tidak bisa diinterupsi lagi.

Pada saat ada dua interupsi dengan prioritas yang sama muncul bersamaan, maka dilakukan polling untuk menentukan mana yang dilayani terlebih dahulu.

Urutan polling sebagai berikut : eksternal 0, Timer 0, eksternal 1, Timer 1, Port Serial, kemudian baru Timer 2.

2.1.5.4. Pemrosesan Interupsi

Saat terjadi interupsi, kemudian diterima CPU di dalam mikrokontroler, maka program akan dihentikan terlebih dahulu kemudian dikerjakan langkah-langkah penanganan interupsi sebagai berikut :

• Instruksi yang sedang dikerjakan diselesaikan terlebih dahulu.

(25)

• Isi PC (pencacah program) disimpan ke stack.

• Status interuspsi yang bersangkutan disimpan ke stack.

• Interupsi-interupsi apada tingkat yang sama diblokir.

• PC kemudian diisi alamat vector rutin layanan interupsi (RL1) yang bersangkutan.

• RL1 dikerjakan.

2.1.5.5. Vektor-vektor Interupsi

Saat suatu interupsi diterima,nilai yang disimpan ke PC sebagai alamat RL1 selanjutnya disebut sebagai vektor interupsi, yang sekaligus merupakan awal alamat RL1 yang bersangkutan. Pada tabel 2.4 diberikan daftar vektor interupsi pada AT89C51.

Pada saat mengalami interupsi, tanda yang menghasilkan interupsi akan di- nol-kan secara otomatis melalui perangkat keras. Pada masing-masing interupsi tersebut ada dua sumber, sehingga tidak praktis jika CPU harus me-nol-kan tanda interupsi yang bersangkutan. Bit-bit tersebut diperiksa dalam RL1 untuk menentukan sumber interupsi yang sesungguhnya kemudian di-nol-kan melalui program.

Selanjutnya proses yang diminta interupsi dilaksanakan.

Tabel 2.4 Vektor Interupsi AT89C51

Interupsi Tanda (Flag) Alamat Vektor

Reset Sistem RST 0000h

Eksternal 0 IE0 0003h

Timer 0 TF0 000Bh

Eksternal 1 IE1 0013h

(26)

Timer 1 TF1 001Bh

Port Serial RI atau TI 0023h

2.2 KWH Meter

2.2.1 Fungsi dan Prinsip Kerja KWH Meter

KWH Meter adalah alat penghitung pemakaian energi listrik. Alat ini bekerja menggunakan metode induksi medan magnet dimana medan magnet tersebut menggerakan piringan yang terbuat dari alumunium. Pada piringan alumunium itu terdapat as yang mana as tersebut akan menggerakan counter digit sebagai tampilan jumlah KWH nya.

KWH Meter memiliki 3 kumparan yaitu 1 kumparan tegangan dengan koil yang diameternya tipis dan 2 kumparan arus dengan koil yang diameternya tebal.

Pada KWH Meter juga terdapat magnet permanen yang tugasnya menetralkan piringan alumunium dari induksi medan magnet.

Kumparan Tegangan

Kumparan Arus Kumparan Arus Magnet Permanen

Gambar 2.12 Medan Magnet Pada KWH Meter Gambar 2.13

Model Fisik KWH Meter

Medan magnet

(27)

Gambar 2.12 mengambarkan kepada kita bagaimana medan magnet memutarkan piringan alumunium. Arus listrik yang melalui kumparan arus mengalir sesuai dengan perubahan arus terhadap waktu. Hal ini menimbulkan adanya medan di permukaan kawat tembaga pada koil kumparan arus. Kumparan tegangan membantu mengarahkan medan magnet agar menerpa permukaan alumunium sehingga terjadi suatu gesekan antara piringan alumunium dengan medan magnet disekelilingnya.

Dengan demikian maka piringan tersebut mulai berputar dan kecepatan putarnya dipengaruhi oleh besar kecilnya arus listrik yang melalui kumparan arus.

Gambar 2.13. merupakan koneksi KWH Meter dimana ada empat buah terminal yang terdiri dari dua buah terminal masukan dari jala – jala listrik PLN dan dua terminal lainnya merupkan terminal keluaran yang akan menyuplai tenaga listrik ke rumah. Dua terminal masukan dihubungkan ke kumparan tegangan secara paralel dan antara terminal masukan dan keluaran dihubungkan ke kumparan arus. Untuk lebih jelasnya dapat dilihat pada Gambar 2.14.

Gambar 2.14.Skema Hubungan Kumparan Pada KWH Meter

Kumparan Tegangan

Kumparan Arus

Keluaran Masukan

(28)

2.2.2. Perhitungan Biaya KWH Meter

KWH Meter berarti Kilo Watt Hour Meter dan kalau diartikan menjadi n ribu watt dalam satu jamnya. Jika membeli sebuah KWH Meter maka akan tercantum x putaran per KWH, artinya untuk mencapai 1 KWH dibutuhkan putaran sebanyak x kali putaran dalam setiap jamnya. Contohnya jika 1200 putaran per KWH maka harus ada 1200 putaran setiap jamnya untuk dikatakan sebesar satu KWH. Jumlah KWH itu secara kumulatif dihitung dan pada akhir bulan dicatat oleh petugas besarnya pemakaian lalu dikalikan dengan ecomp dasar listrik atau TDL ditambah dengan biaya abodemen dan pajak menghasilkan jumlah tagihan yang harus dibayarkan setiap bulannya.

2.3. Sensor Optocoupler

Sensor Optocoupler seperti yang terlihat pada Gambar 3.1 merupakan sensor yang dapat mendeteksi perubahan cahaya infra merah. Sensor ini banyak dipakai untuk mendeteksi jarak ataupun pergerakan suatu benda dengan cara memberikan kisi – kisi ataupun baling – baling sehingga akan terdapat celah dan penghalang. Dengan menerima sinar infra merah yang putus – putus akan menimbulkan pulsa – pulsa listrik. Pulsa – pulsa itu kemudian diolah dan nantinya dapat memberikan keluaran seperti yang kita inginkan.

(29)

Gambar 2.15 Sensor Optocoupler

Bagian dari sensor optocoupler ini adalah : sebuah led merah biasa atau led infra merah sebagai transmitter dan sebuah fototransistor sebagai receiver. Pada bagian transmitter dapat kita hubungkan ke tegangan yang cukup untuk menghidupkan led dan bagian receivernya dihubungkan secara seri ke sumber tegangan dan lainnya menjadi terminal keluaran.

Referensi

Dokumen terkait

Sekolah dalam hal ini SMA 'egeri / sudah menyusun KTSP dan mengimplementasikannya sejak tahun /55?. KTSP yang disusun pada a#alnya hanya berdasarkan analisis S@+T dan belum

Oleh itu, dalam kajian ini penyelidik cuba melengkapkan lagi kajian Mohd Johan (2002) dengan melihat dalam aspek tahap pengetahuan asas Pecahan dan tahap

Pada DFD sistem informasi kepegawaian pada sistem yang sedang berjalan terdapat enam proses secara umum (global) yaitu : proses input data pegawai, proses pembuatan kartu

Segala puji hanya milik Allah SWT semata, yang senantiasa memberikan petunjuk, bimbingan dan kemudahan-Nya kepada penulis, sehingga dapat menyelesaikan kegiatan penelitian

Spektra reflektansi dari lapisan tembaga kobal yang disintesis menggunakan prekursor 0.1M dengan 10 kali siklus pencelupan-pengeringan (coating dengan absorptansi

Kegiatan dalam pembelajaran mendapatkan perhatian khusus dalam upaya meningkatkan mutu. Pembelajaran merupakan faktor utama yang akan menentukan keberhasilan

Apabila dikemudian hari terbukti bahwa judul-judul proposal yang diajukan sebagaimana dimaksud dalam Pasal 2 ditemukan adanya duplikasi dan/atau ditemukan adanya

Hasil pengujian kekuatan sobek dari lima perlakuan berbeda pada kulit samak menggunakan bahan penyamak mimosa yang tersaji pada Tabel 3.. Analisa sidik ragam