Академический Документы
Профессиональный Документы
Культура Документы
PERANGKAT KERAS
MIKROKONTROLER
KELUARGA MCS-51
TUJUAN
Setelah mempelajari bab ini diharapkan mahasiswa mapu:
1. Menyebutkan beberapa perbedaan utama mikrokontroler porduk intel dengan atmel.
2. Menyebutkan bagian-bagian utama arsitektur mikrokontroler MCS-51
3. Menjelaskan cara kerja mikrokontroler.
4. Menyebutkan fungsi setiap pin MCS-51.
5. Mendeskripsikan fungsi memori internal
6. Menjelaskan fungsi interupsi.
7. Menjelaskan fungsi timer.
8. Menjelaskan fungsi port serial.
25
3.1 KELUARGA MIKROKONTROLER MCS-51
MCS-51 merupakan istilah yang berlaku untuk rumpun mikrokontroler yang
diproduksi oleh INTEL mulai tahun 1970-an, mikroprosesor ini termasuk pada
kelompok Complex Instruction Set Computer (CISC). Kelompok ini referensinya
adalah banyaknya jumlah instruksi. Yang termasuk dalam rumpun ini adalah 8051,
8031, 8751, 8032, 8052 dll. Seiring dengan perkembangan teknologi seri MCS-51 ini
diproduksi juga oleh beberapa perusahaan lain seperti ATMEL dengan produksinya
menggunakan seri AT89XXX. Perbedaan antara seri MCS-51 dengan ATMEL antara
lain tegangan kerja, kecepatan clock, memori dan metode pemrograman memorinya.
Tabel 3.1 memperlihatkan perbandingan beberapa mikrokontroler produk
INTEL dan ATMEL. Contoh mikrokontroler 8051 jumlah memori ROM dan RAM,
port, timer-counter dan UART sama dengan mikrokontroler 8751. Yang
membedakannya hanya ROM, dimana 8751 ROM-nya dibuat dengan versi erasable
programmable read only memory (EPROM).
Tabel 3.1 Perbandingan fitur dalam rumpun mikrokontroler MCS-51 dan ATMEL
AT89…
Device EPROM ROM RAM FLASH/ Ports T/C UART
(byte) (byte) (byte) EEPROM
8051 4K 128 4 2 √
8031 128 4 2 √
8751 4K 128 4 2 √
8052 8K 256 4 3 √
8752 8K 256 4 3 √
83C51FA 8K 256 4 3 √
87C51FA 8K 256 4 3 √
AT89C51 128 4K 4 2 √
AT89S51 128 4K 4 2 √
AT89C2051 128 2K 4 2 √
Selain versi AT89C…. atau AT89S….., ATMEL juga mengeluarkan seri AVR
(Alf and Vegard’s Risc Processor) yang mengadopsi metode Reduce Instrunction Set
Computer (RISC). RISC merupakan jenis mikroprosesor yang arsitekturnya sedikit
berbeda dengan jenis CISC yaitu proses eksekusi instruksinya menggunakan metode
fetch during execution, keuntungan metode ini yaitu dua operand dari dua register
dibaca, dieksekusi secara bersamaan dan hasilnya disimpan di salah satu register (salah
satu cirinya antara lain hasil operasi ALU tidak selalu di akumulator). Keseluruhan
proses tersebut dilaksanakan dalam satu siklus clock.
26
3.2 ARSITEKTUR MIKROKONTROLER 8051
Mikrokontroler 8051 merupakan mikrokontroler 8 bit yang mampu mengalamati
memori eksternal yaitu 64K-byte memori program dan 64K-byte memori data yang
terpisah sehingga kapasitasnya mencapai 128K-byte. Aristektur yang memisahkan
antara memori program dan memori data disebut arsitektur Harvard. Sebaliknya,
arsitektur yang menyatukan memori program dan memori data disebut arsitektur Van-
Newman. Fitur perangkat mikrokontroler MCS-51 memiliki 4 kilo byte (4096 byte)
program memori, 128 byte random access memory (RAM) internal, dua timer/counter
16 bit, satu serial port, empat port paralel input/output dan lima sumber interupsi yang
dikontrol secara logik. Selain RAM internal fasilitas dalam chip lainnya yaitu memiliki
beberapa special function register (SFR) yang terdiri atas register kontrol dan data.
Fitur-fitur tersebut diperlihatkan dalam diagram blok gambar 3.1.
X1 X2 T0 T1
CPU
8051
Programmable
Kontrol Bus Port Serial
I/O
Serial
Timer 0
Timer 1
EA
INT1 INT0 PSEN RST
ALE TxD RxD
P0 P1 P2 P3
27
DIP (Dual In-line Package)
3.3.1 Port 0
Port 0 adalah salah satu port yang berfungsi sebagai input/output serbaguna
dengan lebar data 8 bit. Port 0 terdapat dalam pin 32-39 dengan nama P0.0 sampai P0.7.
Dalam pemakaian memori eksternal, port-0 tidak dapat digunakan sebagai saluran
input/output tetapi port-0 merupakan saluran alamat yang dimultipleks dengan data.
Pemilihan ini diatur dengan multiplexer melalui kontrol internal. Pada setiap setengah
siklus memori pertama, port-0 akan membangkitkan saluran alamat A0 sampai A7 dan
pada setengah siklus memori kedua akan digunakan untuk saluran bus data seperti
diperlihatkan pada Gambar 3.3.
28
Gambar 3.4 memperlihatkan rangkaian internal port 0. Pada saat digunakan
sebagai port output, bersifat open drain dan tidak memiliki internal pull-up. Saat
digunakan sebagai input, “port 0 latch” harus bernilai 1. Keadaan ini menyebabkan
kedua FET-nya tidak aktif, oleh karena itu kondisi input port ini mengambang (high
impedance).
Alamat Vcc
Kontrol
Read Latch
Pin P0.x
Internal Bus
D Q
P0x
Latch
Write to Latch
CLK Q
MUX
Vss
Read Pin
3.3.2 Port 1
Port 1 merupakan salah satu port input/output serbaguna yang menempati pin 1-8
dengan nama P1.0-P1.7 dan tidak mempunyai fungsi alternatif seperti port lainnya. Port
ini memiliki internal pull-up. Pada saat digunakan sebagai input, output flip-flop “port 1
latch” dibuat berlogik 1 yang akan mematikan FET. Pada kondisi seperti ini P1.x akan
berlogik 1 akibat adanya resistor full-up internal. Bila dihubungkan dengan input yang
berlogik rendah, port ini akan mengeluarkan arus yang disebut dengan IIL. Rangkaian
internal port 1 diperlihatkan dalam gambar 3.5.
Bila P1.x difungsikan sebagai input maka sinynal kontrol read pin ecara
otomatis akan diaktifkan sehingga status logik yang ada di P1.x akan masuk ke internal
bus. Namun bila difungsikan sebagai port i/o sinyal read pin ini otomatis dibuat tidak
aktif sehingga gate tersebut menjadi terbuka. Misalkan port 1.x ini akan dibuat berlogik
1, prosesnya dimulai dengan mengirimkan logik satu ke internal bus lalu mengirimkan
sinyal kontrol ke write to latch. Dengan sinyal ersebut logik satu akan dimuatkan ke D
flip-flop yang menyebabkan output Q berlogik satu dan –Q berlogik nol sehingga FET
tidak konduksi yang menyebabkan pin P1.x akan berlogik satu.
29
Vcc
Pin P1.x
Internal Bus
D Q
P1x
Latch
Write to Latch
CLK Q
Vss
Read Pin
3.3.3 Port 2
Port 2 menempati pin 21-28 adalah port dengan dua fungsi yaitu sebagai saluran
input/output serbaguna dan saluran alamat byte atas (A8-A15) apabila bekerja dengan
eksternal memori. Gambar 3.5 menunjukkan rangkaian internal port 2.
Alamat Vcc
Kontrol
Pin P2.x
Internal Bus
D Q
P0x
Latch
Write to Latch
CLK Q
Vss
Read Pin
Perpindahan antara saluran input/ouput dengan bus alamat dikontrol oleh oleh sinyal
kontrol internal. Selama mengakses memori eksternal isi SFR P2 tidak berubah. Port 2
memiliki resistor pull-up internal dan disebut juga sebagai quasi bidirectional. Cara
kerja resistor pull-up internal sama dengan resistor pull-up internal pada port 1.
Resistor pull-up internal pada port 2 juga akan digunakan saat mengeluarkan alamat bit
yang bernilai 1.
30
3.3.4 Port 3
Port 3 menempati pin 10-17 merupakan port dengan dua fungsi yaitu sebagai
saluran input/output serbaguna dan fungsi lainnya diperlihatkan dalam Tabel 3.2.
Gambar 3.6 menunjukkan rangkaian internal port 3.
Pada saat port 3 latch bernilai 1 output port 3 akan dikendalikan oleh sinyal fungsi
output alternatif. Sedangkan fungsi input alternatif adalah untuk mengaktifkan fungsi
alternatif port. Fungsi internal pull-up sama dengan port 1.
Fungsi Vcc
output
alternatif
Read Latch Internal
Pull-up
Pin P3.x
Internal Bus
D Q
P3x
Latch
Write to Latch
CLK Q Vss
Read Pin
Fungsi
input alternatif
31
Untuk semua port, saat pin bernilai 1 (high), jika dihubungkan dengan input berlogik 0
(rendah) pin ini akan mengeluarkan arus yang disebut IIL.
Sebaliknya saat pin berlogik 0, jika ada input yang berlogik 1 maka pin akan menyerap
arus yang disebut IOL. Yang perlu diperhatikan untuk pemakai adalah batas maksimum
yang diperbolehkan untuk kedua jenis arus tersebut. Data maksimumnya terdapat dalam
lembar data sheet setiap tipe MCS-51.
3.3.5 PSEN
Program Status Enable (-PSEN, aktif rendah) merupakan sinyal output pada pin
29 yang berfungsi sebagai jalur kontrol untuk mengakses program memori eksternal.
Pin ini biasanya dihubungkan ke pin output enable (-OE) EPROM sehingga dapat
membaca byte-byte program yang tersimpan di EPROM. Pin ini akan rendah saat
membaca memori program eksternal dan tinggi saat membaca memori program internal.
3.3.6 ALE
Address Latch Enable (ALE) pin 30 merupakan jalur output yang berfungsi
sebagai demultiplekser saat port 0 ini digunakan sebagai saluran alamat dan data. Pada
tengah perioda siklus memori pertama pin ini tinggi mengakibatkan jalur alamat di-
latch, pada tengah perioda siklus memori kedua port ini digunakan sebagai data bus.
Frekuensi ALE adalah 1/6 dari frekuensi on-chip osilator, dapat digunakan untuk
pewaktuan eksternal dan kegunaan lainnya untuk pemrograman memori program
internal jenis IC EPROM.
3.3.7 EA
External Address (-EA, aktif rendah) merupakan pin yang berfungsi sebagai input
kontrol pada pemakaian program memori. Jika pin ini dihubungkan dengan Vcc maka,
akan terhubung dengan program memori internal. Seperti dalam AT89C51 bila alamat
program memorinya antara 0000h sampai 0FFFh yang dipakai adalah memori internal,
tetapi mulai alamat 1000h yang dipilih program memori eksternalnya. Sebaliknya jika
di hubungkan dengan Vss/Gnd yang terbaca hanya program memori eksternal. Fungsi
lainnya adalah sebagai tegangan pemrograman internal untukn program memori jenis
EEPROM.
32
3.3.8 RST
Pin ini merupakan input untuk me-reset IC MCS-51. Jika pada pin ini diberikan
logika satu sekurang-kurangnya 2 siklus mesin, IC ini akan direset dan status register
setelah direset diperlihatkan dalam Tabel 3-3. Register yang terpenting saat direset
adalah program counter yaitu akan menjadi 0000h. Apabila pin RST kembali rendah
eksekusi program dimulai lagi dari alamat 0000h. Saat di reset isi RAM internal tidak
berubah. RST dapat diaktifkan dengan cara manual atau saat pertama kali diberikan
daya (power on reset) melalui jaringan R-C.
100 +
10uF
Reset
RST
8,2K
Nilai kapasitor dan resistor power on reset ditentukan dengan mengacu kepada
pin RST berlogik satu yaitu sekurang-kurangnya dua siklus mesin, Gambar 3.7
memperlihatkan implementasi rangkaian sistem reset.
FFH FFH
DIAKSES DENGAN DIAKSES DENGAN
128 PENGALAMATAN TAK
ATAS LANGSUNG PENGALAMATAN
(8052) LANGSUNG
80H 80H
7FH DIAKSES DENGAN - Port-port
128 PENGALAMATAN - Bit-bit kontrol dan
BAWAH Register status
LANGSUNG dan Fungsi - Timer
0 REGISTER Khusus - Register
- Stack Pointer
- Akumulator
Bit CY, selain berfungsi sebagai bit carry dalam operasi aritmatika, juga
berfungsi sebagai akumulator 1 bit dalam operasi Boolean. Apabila terdapat carry dari
bit ke 7 saat operasi aritmatika bit ini akan set. Misalkan isi akumulator FFh, bila
diberikan instruksi ADD A,#01H, hasilnya akumulator akan berisi 00H dan bit carry
akan set.
Bit RS0 dan RS1 dipergunakan untuk memilih salah satu dari 4 bank register
yang diperlihatkan dalam Gambar 3.9. Sejumlah instruksi mengacu ke lokasi RAM ini
sebagai R0 sampai R7. Memilih yang mana dari 4 bank yang akan digunakan
tergantung kepada bit RS0 dan RS1 (lihat Tabel 3.4).
Bit overflow (OV) akan set setelah operasi penjumlahan atau pengurangan bila
terdapat overflow aritmatika. Bit ini dipergunakan dalam operasi aritmatika bilangan
bertanda. Bila hasil operasinya lebih besar +127 atau lebih kecil –128 bit, OV akan set.
Misalkan dalam operasi penjumlahan berikut ini:
Hex 0FH Desimal 15
+7FH +127
8EH 142
37
sebagai bilangan bertanda, 8EH nilai desimalnya adalah –114, jadi jelaslah bahwa hasil
yang benar adalah 142 bukan -114, oleh karena itu bit OV menjadi set.
Bit paritas (P) menunjukkan jumlah logik satu di akumulator. Bit P sama
dengan satu jika logik satu dalam akumulator jumlahnya ganjil, dan P = 0 jika jumlah
logik satunya genap. Misalkan isi akumulator 10101101, maka bit P akan berlogik 1
karena jumlah logik satunya ada 5 (ganjil). Bit ini biasa digunakan dalam komunikasi
serial untuk memeriksa paritas data sebelum dikirim atau setelah diterima. Susunan
PSW sebgaia berikut :
b7 b6 b5 b4 b3 b2 b1 b0
CY AC F0 RS1 RS0 0V - P
3.4.5 Akumulator
Akumulator atau biasa disebut Acc merupakan register untuk menyimpan hasil
operasi aritmatika dan beberapa instruksi logika. Akumulator menempati alamat E0H.
Register ini disebut akumulator karena fungsi khusunya dalam mengakumulasi hasil
operasi aritmatika.
3.4.6 Register B
Register B menempati alamat F0H, fungsi khususnya dalam operasi perkalian
dan pembagian. Dalam operasi lain dapat digunakan sebagai scratch pad RAM.
Overflow
Frekuensi Osilator/12
Update
TH0,TL0
P3.4(T0) Mode Select
TMOD
GATE C/T M1 M0
SFR89H
P3.2(INT0)
TCON
TF0 TR0
SFR88H
Prinsip kerja timer/counter dibagi dalam tiga tahap, (1) sumber input, (2) kontrol
operasi, (3) mode update. Sumber input bisa dari frekuensi osilator, atau pulsa yang
diterima melalui Port 3 kaki T0 (P3.4) untuk timer 0 dan T1 kaki (P3.5) untuk timer 1.
Sumber input dipilih oleh kontrol bit C/-T dalam register TMOD.
Operasi timer/counter dikontrol dengan blocking atau passing pulsa-pulsa dari
sumber ke register pencacah data. Pulsa-pulsa sumber diteruskan ke register data timer
0 jika kondisi :
40
(GATE OR INT0) AND TR0 sama dengan TRUE (logik 1).
GATE merupakan bit kontrol untuk timer 0 yang terdapat di register TMOD.
Timer/counter mulai beroperasi bila GATE diberikan logika rendah (0). TR0 juga
merupakan bit kontrol Timer 0 yang juga terdapat di register TMOD. INT0 adalah kaki
P3.2 pada IC 8051. Kondisi ini menunjukkan bahwa register data Timer 0 diperbaharui
sesuai dengan sumbernya jika bit kontrol TR0 set dan bit kontrol GATE reset or Port
P3.2 berlogik satu. Perlu diperhatika bahwa P3.2 mempunyai dua fungsi yaitu INT0 dan
bit kontrol untuk Timer 0. Apabila difungsikan sebagai saluran interupsi aktif rendah
yaitu pada transisi logik 1 ke 0. Bit port ini apabila digunakan dalam bit kontrol Timer
0, bit ini akan meng-enable-kan Timer 0 jika berlogik satu.
MSB LSB
GATE C/T M1 M0 GATE C/T M1 M0
Timer/Counter 1 Timer/Counter 0
41
Tabel 3.4 Mode operasi timer/counter
M1 M0 Mode Operasi
0 0 0 Timer/counter, 13 bit compatible dengan 8048
0 1 1 Timer/counter, 16 bit
1 0 2 Timer/counter, 8 bit auto reload
1 1 3 Split timer untuk timer 0, Timer tidak aktif.
Dari 8 bit TCON hanya 4 bit yang digunakan untuk timer/counter, sisanya utuk
interupsi. Fungsi masing-masing bit adalah:
TF1: akan berlogik ‘1’ saat nilai timer/counter 1 TH1 dan TL1 mengalami overflow.
TF1 akan berlogik ‘0’ saat prosesor melompat ke interrupt service routine atau
ISR.
TR1: harus diberikan logik ‘1’ oleh pemakai untuk menjalankan timer/counter 1.
TF0: akan berlogik ‘1’ saat nilai timer/counter 0 TH0 dan TL0 mengalami overflow.
TF0 akan berlogik ‘0’ saat prosesor melompat ke interrupt service routine atau
ISR.
TR0: harus diberikan logik ‘1’ oleh pemakai untuk menjalankan timer/counter 0.
42
3.5.2 Mode Operasi
Mode operasi dalam sistem timer/counter MCS-51 terdiri atas 4 mode, setiap
mode mempunyai karakteristik khusus. Berikut ini akan dijelaskan masing-masing
karakter dari setiap modenya.
3.5.2.1 Mode 0
Mode 0 merupakan timer/counter 13 bit. Timer/counter mode 0 diperlihatkan
dalam Gambar 3.14. Mode ini khusunya disediakan untuk menjaga kompatibilitas
dengan mikrokontroler intel generasi pertama yaitu 8048. Dalam mode ini register TLx
(TL0 atau TL1) hanya digunakan 5 bit terendahnya saja, sedangkan register TH0 atau
TH1 tetap 8 bit. Isi register TLx akan bertambah setiap ada pulsa input. Register TH0
akan bertambah satu setiap register TLx berubah dari 1Fh ke 00h. Oleh karena itu
hanya perlu input pulsa sebanyak 213 atau 8192 untuk sampai pada membangkitkan
interupsi. Overflow terjadi pada saat perubahan dari nilai FF1Fh ke 0000h, pada saat itu
flag TFx akan berlogik 1. Register TLx dan THx dapat diubah oleh pemakai setiap saat
dalam program.
TRx
GATE
INTx
3.5.2.2 Mode 1
Timer/counter mode 1 pada dasarnya sama dengan mode 0, bedanya terletak di
register TLx yaitu semua bit-nya digunakan dengan demikian mode 1 ini meruapakan
timer/counter 16 bit. TLx akan bertambah satu stiap ada pulsa input, bila telah
mencapai FFh ia akan kembali ke 00h dan register THx bertambah 1. Overflow terjadi
43
saat perubahan pada register Thx dan TLx berubah dari FFFFh ke 0000h dan saat itu
pula dibangkitkan interupsi. Jadi untuk membangkitkan interupsi diperlukan pulsa input
216 atau 65536. Register TLx dan THx dapat diubah oleh pemakai setiap saat dalam
program. Timer/counter mode 1 diperlihatkan dalam Gambar 3.15.
TRx
GATE
INTx
3.5.2.3 Mode 2
Mode 2 merupakan timer/counter 8 bit dengan fasilitas auto reload. TLx
bertindak sebagai timer/counter 8 bit dan THx berfungsi untuk memuati TLx saat TLx
overflow. Jadi nilai TLx saat terjadi overflow tidak diisi dengan 00h tetapi dimuati oleh
isi register THx. Proses ini dikerjakan oleh perangkat kerasnya secara otomatis sehingga
pemakai tidak perlu memeriksa apakah nilai TLx sudah overflow dan tidak perlu
mengisi ulang nilai TLx. Mode 2 biasa digunakan untuk menghasilkan baud rate.
Timer/counter mode 2 diperlihatkan dalam gambar 3.16.
GATE
INTx
TR0
GATE
INT0
Interrupt
TH0
Osc :12 TF1
8 BIT
Control
TR1
c. Menjalankan timer
Register yang terlibat yaitu TCON, bit yang terkait dengan timer/counter 0 adalah
TR0 dan TF0. Bit TR0 untuk menjalankan timer/counter sedangkan bit TF0 adalah
flag overflow untuk timer/counter 0. Instruksinya adalah :
PROGAM 3-1
ORG 0H
MOV TMOD,#XXXX0001b;muati register dengan mode operasi
MOV TH0,#3Ch ;
MOV TL0,#0B0h
SETB TR0 ;timer mulai kerja
46
Tunggu: JNB TF0,Tunggu
CPL P1.0
MOV TH0,#3Ch
MOV TL0,#B0h
CLR TF0
SJMP Tunggu
D
SBUF
Clk Q Shift Register
(Write Only)
Clk
Baud Rate
Baud Rate clock
clock (receive)
(transmit) SBUF
(Read Only)
MSB LSB
SM0 SM1 SM2 REN TB8 RB8 TI RI
9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
Berikut ini proses menginisialisasi port serial dalam mode 1 dengan baud rate 9600 :
49
Setelah inisialiasi, proses selanjutnya terima atau kirim karakter. Dalam proses
ini yag menjadi kontrolnya adalh bit TI dan RI dalam SCON. Kedua bit ini di-set oleh
perangkat keras tetapi harus di-clear dengan perangkat lunak. Bit RI akan set pada akhir
penerimaan karakter dan menunjukkan bahwa buffer penerima telah penuh. Oleh karena
itu bila menerima karakter harus ditunggu sampai RI set dan setelah dibaca bit ini harus
di-clear. Berikut ini program untuk menerima karakter:
Bit TI set pada akhir transmisi karakter dan menandakan bahwa buffer telah
kosong. Bila perangkat lunak ingin mengirim karakter ke perangkat yang terhubung
degan port serial, haru dilakukan dulu pemeriksaan kesiapan port itu. Dengan kata lain
apakah karakter sebelumnya sudah dikirim, tunggu sampai selesai dikirim. Berikut
program mengirim karakter :
Urutan instruksi terima dan kirim di atas biasanya merupakan sub-rutin input/output
karakter.
3.8 INTERUPSI
Sebuah interupsi terjadi pada suatu keadaan yang menyebakan pelaksanaan
program utama ditunda sementara, lalu mengerjakan program lainnya. Interupsi
memainkan peranan penting dalam perancangan dan implementasi aplikasi
mikrokontroler. Dalam proses seperti ini dimungkinkan sebuah sistem dapat merespon
kejadian secara asinkron dan menerima kejadian sambil mengeksekusi program lainnya.
Sistem dengan interupsi seolah-olah melakukan berbagai pekerjaan secara bersamaan.
Tentu saja CPU tidak dapat mengerjakan lebih dari satu instruksi pada saat yang sama,
tetapi CPU dapat menunda sementara ekseksi programnya lalu mengeksekusi sub-
program, setelah itu kembali ke program yang tertunda.
50
Program yang beroperasi dengan interupsi disebut interrupt service routine
(ISR) atau interrupt handler. ISR dieksekusi saat terjadi interuspsi dan umunya
mengerjakan operasi input/output suatu perangkat. Bila terjadi interupsi program
utamanya untuk sementara ditunda dan melompat ke ISR, ISR dikerjakan sampai
dengan instruksi “return from interrupt”, dan kembali melanjutkan program yang
ditunda. Proses kerja sistem tanpa interupsi dan dengan interupsi diperlihatkan dalam
gambar 3.20
Main Program
Waktu
Eksekusi
interupsi ISR ISR ISR
* ** * ** * **
Eksekusi
Main Main Main Main Main
Waktu
Gambar 3.20 (a) Sistem tanpa interupsi, (b) Sistem dengan interupsi
Contoh sistem dengan interupsi adalah “oven microwave”, sistem ini tugas
utamanya mengontrol pemanas untuk memasak sesuai dengan yang diinginkan
pemakai, sementara mengontrol pemanas sistem harus menanggapi beberapa
permintaan tombol input manual seperti pembuka pintu dan perubahan waktu memasak.
Bila pemakai menekan salah satu tombol itu akan dibangkitkan interupsi (misalnya
sinyal tinggi ke rendah) dengan itu program utamanya diinterupsi. ISR akan membaca
kode keypad dan mengubah kondisi memasak kekondisi yang sesuai dan mengakhirinya
dengan memberikan kontrol kembali ke program utama. Hal penting yaitu input manual
terjadi secara asinkron dengan interval tidak dapat diprediksi atau dikontrol dengan
perangkat lunak, itulah interupsi.
51
dapat diaktifkan secara individu melalui perangkat lunak. Dalam keadaan terjadi lebih
dari satu iterupsi secara bersamaan atau terjadi interupsi saat sedang melayani interupsi
lainnya, pelayanannya dapat dilakukan dengan dua cara yaitu polling atau prioritas.
Urutan pelayanan polling tetap, sedangkan prioritas dapat diprogram.
Masing-masing sumber interupsi dapat diaktifkan atau dinonaktifkan melalui
pengalamatan bit pada register khusus IE (interrupt enable) yang beralamat di 0A8H
seperti diperlihatkan dalam Tabel 3.7. Selain secara individual juga terdapat bit
enable/disable untuk semua interupsi. Dua bit harus di set untuk mengaktifkan interupsi
yaitu bit untuk individu dan bit untuk semua interupsi. Berikut ini contoh mengaktifkan
interupsi timer 1:
MOV IE,#10001000b
52
Tabel 3.8 Register IP
Jika dua interupsi dengan prioritas yang sama muncul bersamaan, “polling urutan
tetap” akan menentukan yang pertama dilayani. Urutan polling interupsi adalah
eksternal 0, timer 0, external 1, timer 1 dan port serial. Gambar 3.21 meperlihatkan lima
sumber interupsi dengan mekanisme enable individu dan global.
1
INT1 IT1 IE1
0 Urutan
polling
TF1 interupsi
R1
TI
Enable interup
Interupsi
Enable Global
diterima
54
SOAL-SOAL LATIHAN
1. Sebutkan nama pabrikan selain Intel yang memproduksi mikrokontroler ?
2. Apakah perbedaan 8051 dengan 8751 ?
3. Port manakah yang digunakan untuk mengakses memori eksternal ?
4. Bisakah 8031 beroperasi sebagai mikrokomputer keping tunggal ?
5. Apakah fungsi resistor full-up yang terdapat di port ?
6. Jelaskan perbedaan AT89C51 dan AT89S51 ?
7. Berapakah jumlah special function register dalam mikrokontroler MCS-51 ?
8. Menempati alamat berapa RAM serbaguna/pemakaian umum ?
9. Bagaimanakah status setiap port pada saat direset ?
10. Gambarkan rangkaian manual reset dan jelaskan cara kerjanya ?
11. Apakah fungsi power on reset ?
12. Bila MCS-51 bekerja dengan xtal 4 MHz, berapakah durasi satu siklus mesinnya ?
13. Berapakah alamat bit tertinggi dari alamat byte 25H ?
14. Kapan bit over flow digunakan ?
15. Apakah fungsi bit carry ? Jelaskan !
16. Register A berisi 78H dan register B berisi 5FH, jika dijumlahkan berapa isi
akumulator ?
17. Kapan bit paritas berlogik satu ?
18. Apakah fungsi register TCON dan TMOD ?
19. Berapakah isi program counter dan stack pointer setelah sistem direset ?
20. Sebutkan langkah-langkah untuk mengoperasikan timer 0 dalam mode 1 ?
21. Apakah perbedaan timer dan counter ? Jelaskan !
22. Tuliskan cara kerja port serial jika mengirim satu karakter ?
23. Jelaskan cara kerja interupsi yang disebabkan oleh timer ?
24. Saat terjadi interupsi apa yang terjadi dengan stack pointer ?
25. Berapakah vektor alamat interupsi untuk timer 1 ?
55