BAB 2 LANDASAN TEORI Dalam Proses perancangan Tugas akhir

advertisement
4
BAB 2
LANDASAN TEORI
Dalam Proses perancangan Tugas akhir ini saya menggunakan berbagai Sumber
Landasan Teori yang saling dihubungkan menjadi 1 kesatuan sehingga Rancangan tersebut dapat
bekerja sesuai dengan apa yang diinginkan. Berikut ini akan saya jelaskan satu per satu dari
Landasan Teori yang akan saya gunakan untuk Penulisan Tugas akhir ini.
2.1 Programmable Logic Control (PLC)
PLC pada dasarnya adalah sebuah Komputer yang di design untuk dipakai di mesin
Control, tetapi PLC bukan benar benar Komputer PC karena PLC dirancang untuk beroperasi di
lingkungan Industri & disertai dengan Input / Output & bahasa pemrograman Control tersendiri.
Pada awalnya PLC dipakai untuk menggantikan perangkat keras Relai Logika, tetapi karena
perkembangan dari fungsi yang dipakai, sehingga aplikasi yangt dapat berjalan di PLC juga
semakin Kompleks. Struktur PLC yang hampir sama dengan Komputer menyebabkan PLC
mampu untuk menjalankan tidak hanya Relai Switching tetapi juga aplikasi lain seperti Timer,
Counter, Comparator & lain lain.
Keuntungan penggunaan PLC dibanding perangkat keras Relai Logika antara lain :
•
Ukuran yang Relatif lebih kecil.
•
Kemampuan untuk diprogram.
•
Relatif lebih murah.
•
Beberapa jenis PLC dapat diperbanyak Modul modulnya.
•
Dapat digunakan untuk memonitor jalannya Proses pengendalian yang sedang
berlangsung.
2.1.1
Bagian Bagian PLC
Pada dasarnya bagian bagian PLC dapat dibagi menjadi 4 bagian utama, yaitu :
•
CPU
•
Modul Input / Output
•
Power Supply
•
Programming Device
4
5
CPU adalah Otak dari sebuah Sistem PLC yang berfungsi untuk mengeksekusi Program
yang ditanam oleh Programming Device, mengontrol Komunikasi antar Modul & melakukan
perubahan Status I/O berdasarkan Program yang ada di Memori.
Power Supply adalah Komponen PLC yang berfungsi untuk memberikan Arus Listrik ke
Komponen PLC yang lain. Pada beberapa PLC arus listrik yang diberikan ke PLC dibedakan
dengan arus listrik untuk Device External.
Modul Input & Output adalah antarmuka PLC dengan Device External. Antarmuka ini
mengkonversi sinyal yang diterimanya dari Device External menjadi Sinyal Logika yang dapat
dimengerti Oleh CPU
Programming Device adalah alat untuk membuat Program yang nantinya akan ditanam
di Memori Program PLC. Programming Device dapat berupa Personal Komputer ataupun Hand
Held unit. Untuk dapat membuat Program yang dapat menjalan sebuah Sistem PLC
Ada 2 jenis PLC dilihat dari bentuknya yaitu PLC Modular & PLC Fixed seperti terlihat pada
gambar dibawah ini
Gambar 2.1.1
Jenis-jenis PLC
PLC yang kecil & memiliki I/O yang sedikit biasanya hadir dalam bentuk PLC Fixed.
PLC jenis ini hadir dalam 1 paket, semua komponennya seperti CPU, antarmuka I/O, Power
Supply & Port Komunikasi terintegrasi di dalamnya. Kelebihan utama dari PLC ini adalah
harganya yang lebih murah & biasanya jenis serta jumlah I/O dapat ditambah dengan membeli
Unit tambahannya (Expander Unit). Kelemahan PLC ini adalah keterbatasan Fitur yang tersedia,
Jumlah I/O yang sedikit & yang paling utama jika terjadi kegagalan dalam 1 komponen
Sistemnya maka komponen yang lain juga akan mengalami hal yang sama.
PLC Modular adalah PLC dengan Fitur yang Relatif lengkap, jumlah & jenis I/O yang
banyak, Fungsi yang dapat dijalankan juga banyak. Pada PLC ini Komponen Komponen terpisah
5
6
menjadi Modul Modul. Setiap Modul memiliki fungsi tersendiri & terpisah dari Modul yang lain.
Sebuah Back Plan mengkoneksikan Modul Modul tersebut secara Elektrik sehingga dapat
berkomunikasi 1 sama lain.
2.1.2 Prinsip Operasi PLC
PLC bekerja dengan melakukan Scanning Program secara Kontinyu berulang ulang.
Proses Scanning terdiri dari 3 langkah yaitu :
•
Cek Status masukkan
Modul Masukkan menerima Sinyal dari Device External & mengkonversikannya ke
Sinyal Logika yang dapat dimengerti oleh CPU serta menyimpannya dalam Register
Input.
•
Eksekusi Program
CPU menjalankan Program Aplikasi Kontrol yang terdapat pada Memori dengan sinyal
Logika yang ada di Register Modul Input sebagai masukkan dari Program tersebut.
•
Update Status keluaran
Setelah mengeksekusi Program Aplikasi maka PLC akan mengupdate sinyal Logika pada
Register Modul Keluaran. Modul keluaran mengkonversi Sinyal Logika yang ada di
Register Keluaran menjadi Sinyal yang dapat dipakai untuk mengkontrol External Device
yang lain.
Setelah itu kembali lagi ke langkah pertama secara terus menerus & berulang ulang. Waktu
untuk menjalankan ketiga Proses Scanning tersebut selama 1 kali disebut waktu Respon dari
PLC. Waktu Respon ini berpengaruh terhadap kesalahan pembacaan Status input, semakin kecil
waktu Respon PLC maka semakin kecil kemungkinan terjadi kesalahan pembacaan Status
masukkan.
Urutannya dapat dilihat pada Flowchart di bawah ini.
6
7
Gambar 2.1.2
Flow Chart PLC
2.1.3 Modul Output PLC
PLC memiliki 3 jenis Modul Output yang dapat digunakan untuk keperluan yang berbeda beda
tergantung kebutuhan.
3 jenis Modul Output tersebut adalah :
o Output Relai
o Output Transistor
o Output TRIAC
2.2 Relai
Relai adalah sebuah Switch yang dibentuk dari sebuah plat inti yang dapat menempel pada plat
lainnya yang berada di sebelah kiri & kanannya. Posisi default dari kondisi plat inti adalah
menempel pada Plat yang berada di sebelah kanannya karena terdapat sebuah pegas yang
mendorongnya ke arah kanan. Plat sebelah kiri menempel sebuah kumparan yang dapat
berfungsi sebagai Magnet penarik Plat Inti. Apabila kumparan tersebut mendapatkan tegangan &
Ground maka kumparan tersebut akan menjadi Magnit yang akan menarik Plat inti untuk
menempel ke plat sebelah kiri & tidak menempel ke plat yang sebelah kanan.
Relai mempunyai 5 buah kaki dengan fungsi :
1. Coil1 yang harus mendapat +VCC 24 Volt.
7
8
2. Coil2 yang harus mendapat Ground.
3. Common yaitu kaki untuk dihubungkan pada arus input yang ingin dilewatkan pada
switch.
4. Normally Open yaitu switch yang belum terhubung pada saat relai belum bekerja.
5. Normally Close yaitu switch yang sudah terhubung pada saat relai belum bekerja.
Gb.2.2
Relay
2.3 Transistor
Transistor memiliki 3 buah kaki yang masing – masing diberi nama : Emitor, Basis & Kolektor.
Transistor terdiri dari 2 jenis yaitu :
o Transistor NPN (Negatif-Positif-Negatif) yaitu jenis transistor yang akan bekerja apabila
mendapat arus basis positif. Pada saat digunakan kaki emitor mendapat Ground apabila
kaki kolektor kita berikan ke beban & sebaliknya jika kaki emitor yang kita berikan ke
beban, kaki kolektor harus mendapat +VCC.
o Transistor PNP (Positif-Negatif-Positif) yaitu jenis transistor yang akan bekerja apabila
mendapat arus basis negative. Pada saat digunakan kaki emitor mendapatkan +VCC
apabila kaki kolektor kita berikan ke beban & sebaliknya jika kaki emitor yang kita
berikan ke beban, kaki kolektor harus mendapat Ground.
Transistor yang digunakan pada Modul Output PLC adalah jenis yang NPN. Transistor ini
digunakan sebagai saklar tetapi hanya untuk memberikan Logika 0 saja.
Dibawah ini adalah Simbol dari Transistor NPNdan Transistor PNP.
(a)
8
9
(b)
Gambar 2.3
Blok diagram, skematik, dan simbol (a) dan (b)Transistor PNP
Blok diagram, skematik, dan simbol (a)Transistor NPN dan (b)Transistor PNPSebagaimana
terlihat pada Gambar 2.3 diatas, terminal-terminal Transistor disebut dengan Emiter (E), Basis
(B), dan Kolektor (C). Terminal Emiter didop sangat banyak dengan bagian yang sedang, Basis
didop dengan konsentrasi sedikit sekali dengan bagian yang paling tipis, dan Kolektor didop
sedang dengan bagian yang besar. Pendopan dan pembagian ini akan bermanfaat untuk
mendukung fungsi dan cara kerja Transistor. Pada Gambar.2.3 (c) adalah contoh Transistor yang
digunakan adalah S9013 bertipe NPN dengan kapasitas Arus yang dapat melaluinya adalah 500
mA
(c)
Gambar 2.3
Transistor NPN
Gambar 2.3 (d) dibawah ini adalah Urutan kaki yang terdapat pada Transistor S9013
(d)
Gambar 2.3
Urutan kaki Transistor NPN pada Transistor S9013
9
10
2.4 TRIAC
Gambar 2.4
Simbol TRIAC
TRIAC BTA08 adalah sebuah DIAC yang dapat melewatkan tegangan 220 VAC apabila
kaki Gate dari TRIAC tersebut mendapatkan Trigger berupa Tegangan 220 VAC yang akan
dilewatkan dalam Phase yang sama. Arus yang dilewatkan dapat mencapai 8 Ampere sehingga
Arus yang dilewatkan dapat langsung menggerakkan Beban. TRIAC dapat berfungsi sebagai
Relai tetapi Khusus hanya untuk melewatkan Tegangan 220 VAC & akan mempunyai banyak
sekali kelebihan dibandingkan Relai, yaitu :
•
Memiliki Umur yang jauh lebih panjang daripada Relai
•
Kecepatan On & Off dalam waktu yang jauh lebih cepat dibandingkan Relai
•
Penggunaan Arus yang lebih kecil dibandingkan Relai
•
Tidak mengeluarkan Bunyi seperti Relai
Kekurangan dibandingkan Relai, yaitu :
•
Relai dapat melewatkan Tegangan AC maupun DC
•
Relai dapat diaktifkan menggunakan Tegangan DC kecil sehingga Rangkaian akan
menjadi lebih Murah
Gambar dibawah ini adalah merupakan Simbol dari TRIAC
2.4.a Opto Isolator MOC 3020
Gambar 2.4.a
Opto Isolator MOC 3020
10
11
Opto Isolator adalah sebuah IC yang berisi sebuah INFRA LED & sebuah DIAC yang dapat
melewatkan Tegangan 220 VAC apabila Kaki Anoda mendapat Tegangan + & Kaki Katoda
mendapatkan Ground karena INFRALED tersebut akan memancarkan Sinar Infra Merahnya
untuk mengaktifkan DIAC tersebut. Sifat asli dari DIAC adalah akan melewatkan Tegangan
yang masuk jika berada diatas batas tegangan karakteristiknya dalam hal ini tegangan yang dapat
dilewatkan adalah Tegangan AC. Tetapi di dalam Opto Isolator DIAC yang dimaksud akan dapat
melewatkan tegangan apabila mendapatkan pancaran Sinar Infra Merah. Opto Isolator adalah
sebuah Komponen yang dapat menghubungkan Tegangan 220 VAC dengan Tegangan DC kecil
seperti 5 VDC dan lainnya. Sinyal yang keluar dari Mikrokontroller adalah Tegangan 5 VDC
untuk Logika 1 & Ground untuk Logika 0 sehingga untuk dapat merubah Logika 1 tersebut
menjadi 220 VAC harus menggunakan MOC3020 ini. MOC3020 pada gambar 2.4.b hanya dapat
melewatkan Arus 220 VAC yang kecil saja, jika dilewatkan Arus yang besar komponen ini akan
rusak sehingga biasanya Arus yang dilewatkan tidak langsung ke beban tetapi hanya untuk
Trigger saja. Kita dapat melihat Simbol dari MOC 3020 dengan Gambar dibawah ini.
Gambar 2.4.b
Simbol MOC 3020
2.5 Mikrokontroller AT89S52 (MCS – 51 FAMILY)
Meskipun termasuk tua, keluarga Mikrokontroler MCS51 adalah Mikrokontroler yang
paling populer saat ini. Belakangan ini, pabrik IC Atmel ikut menambah anggota keluarga
MCS51. Atmel merupakan pabrik IC yang sangat menguasai teknologi pembuatan Flash ROM,
jadi sudah selayaknya kalau Atmel memasukkan Flash PEROM ke dalam mikrokontroler
buatannya. Usaha Atmel ini ternyatakan bagaikan menambah ‘darah’ baru bagi keluarga
MCS51, dengan adanya Flash ROM yang harganya murah maka tercapailah angan-angan banyak
orang untuk membuat alat berbasis mikrokontroler yang sesederhana mungkin dan semurah
mungkin.
Produksi mikrokontroler MCS51 Atmel dibagi dua macam, yang berkaki 40 setara
dengan 8051 yang asli, bedanya mikrokontroler Atmel berisikan Flash ROM dengan kapasitas
berlainan. Bentuk dari Mikrokontroller dapat kita lihat pada gambar di bawah ini
11
12
Gambar 2.5
AT89S52
AT89S52 adalah sebuah Mikrokontroller dengan Fitur yang terdapat didalamnya adalah :
1. 8 Kilo Byte Reprogrammable Flash Memory
2. 256 Byte RAM Internal
3. 32 buah Programmable I/O Lines
4. 2 Buah 16 Timer
5. Full Duplex Serial Port
6. On chip Oscilator & Clock Circuit
Dibawah ini adalah Datasheet dari AT89S52
PIN AT89S52
Berikut ini adalah Tabel yang berisi Deskripsi Pin dari kaki AT89S52
2.5.1. PIN DESKRIPSI
Nomor Nama
Pin
Pin
20
Ground
Alternatif Keterangan
-
Ground dari Power Supply
12
13
40
VCC
-
+5 VDC dari Power Supply
Port I/O Bit 0 tanpa Internal Pull Up & juga berfungsi
39
P0.0
AD0
sebagai Address 0 & Data 0 jika menggunakan Memori
External
Port I/O Bit 1 tanpa Internal Pull Up & juga berfungsi
38
P0.1
AD1
sebagai Address 1 & Data 1 jika menggunakan Memori
External
Port I/O Bit 2 tanpa Internal Pull Up & juga berfungsi
37
P0.2
AD2
sebagai Address 2 & Data 2 jika menggunakan Memori
External
Port I/O Bit 3 tanpa Internal Pull Up & juga berfungsi
36
P0.3
AD3
sebagai Address 3 & Data 3 jika menggunakan Memori
External
Port I/O Bit 4 tanpa Internal Pull Up & juga berfungsi
35
P0.4
AD4
sebagai Address 4 & Data 4 jika menggunakan Memori
External
Port I/O Bit 5 tanpa Internal Pull Up & juga berfungsi
34
P0.5
AD5
sebagai Address 5 & Data 5 jika menggunakan Memori
External
Port I/O Bit 6 tanpa Internal Pull Up & juga berfungsi
33
P0.6
AD6
sebagai Address 6 & Data 6 jika menggunakan Memori
External
Port I/O Bit 7 tanpa Internal Pull Up & juga berfungsi
32
P0.7
AD7
sebagai Address 7 & Data 7 jika menggunakan Memori
External
1
P1.0
-
Port I/O Bit 0 dengan Internal Pull Up
2
P1.1
-
Port I/O Bit 1 dengan Internal Pull Up
3
P1.2
-
Port I/O Bit 2 dengan Internal Pull Up
4
P1.3
-
Port I/O Bit 3 dengan Internal Pull Up
5
P1.4
-
Port I/O Bit 4 dengan Internal Pull Up
6
P1.5
-
Port I/O Bit 5 dengan Internal Pull Up
7
P1.6
-
Port I/O Bit 6 dengan Internal Pull Up
8
P1.7
-
Port I/O Bit 7 dengan Internal Pull Up
13
14
21
P2.0
A8
22
P2.1
A9
Port I/O Bit 0 dengan Internal Pull Up & juga berfungsi
sebagai Address 8 jika menggunakan Memori External
Port I/O Bit 1 dengan Internal Pull Up & juga berfungsi
sebagai Address 9 jika menggunakan Memori External
Port I/O Bit 2 dengan Internal Pull Up & juga berfungsi
23
P2.2
A10
sebagai Address 10 jika menggunakan Memori
External
Port I/O Bit 3 dengan Internal Pull Up & juga berfungsi
24
P2.3
A11
sebagai Address 11 jika menggunakan Memori
External
Port I/O Bit 4 dengan Internal Pull Up & juga berfungsi
25
P2.4
A12
sebagai Address 12 jika menggunakan Memori
External
Port I/O Bit 5 dengan Internal Pull Up & juga berfungsi
26
P2.5
A13
sebagai Address 13 jika menggunakan Memori
External
Port I/O Bit 6 dengan Internal Pull Up & juga berfungsi
27
P2.6
A14
sebagai Address 14 jika menggunakan Memori
External
Port I/O Bit 7 dengan Internal Pull Up & juga berfungsi
28
P2.7
A15
sebagai Address 15 jika menggunakan Memori
External
10
P3.0
RXD
11
P3.1
TXD
12
P3.2
INT0
13
P3.3
INT1
14
P3.4
T0
15
P3.5
T1
Port I/O Bit 0 dengan Internal Pull Up & juga berfungsi
sebagai Input Serial Port
Port I/O Bit 1 dengan Internal Pull Up & juga berfungsi
sebagai Output Serial Port
Port I/O Bit 2 dengan Internal Pull Up & juga berfungsi
sebagai Interrupt External 0
Port I/O Bit 3 dengan Internal Pull Up & juga berfungsi
sebagai Interrupt External 1
Port I/O Bit 4 dengan Internal Pull Up & juga berfungsi
sebagai Input External Timer 0
Port I/O Bit 5 dengan Internal Pull Up & juga berfungsi
14
15
sebagai Input External Timer 1
16
P3.6
WR
17
P3.7
RD
Port I/O Bit 6 dengan Internal Pull Up & juga berfungsi
sebagai External Data Memory Write Strobe
Port I/O Bit 7 dengan Internal Pull Up & juga berfungsi
sebagai External Data Memory Read Strobe
Apabila diberikan Logika 1, semua Port akan berlogika
9
Reset
-
1 & kembali membaca Instruksi Program dari Address
yang paling awal
Pada Saat mengakses Memori Internal Pin ini akan
mengeluarkan Pulsa sebesar 1/16 dari Frekwensi
30
ALE
PROG
Oscilator yang sedang digunakan & Pada Saat
mengakses Memori External berfungsi untuk me-Latch
Low Byte Address
29
Pada saat mengeksekusi Program yang berada pada
PSEN
Memori External Pin ini akan aktif 2 kali setiap Cycle
Jika mendapatkan Logika 1 Mikrokontroller akan
mengakses
31
EA
VPP
Memori
mendapatkan
mengakses
Logika
Memori
Internal,
0
tetapi
pada
Mikrokontroller
External.
Pada
Saat
saat
akan
Flash
Programming Pin ini akan mendapatkan 12 VDC
19
XTAL1 -
Input Oscilator
18
XTAL2 -
Output Oscilator
Tabel 2.5.1
Pin Deskripsi kaki AT89S52
2.5.2 Konstruksi AT89S52
Memori merupakan bagian yang sangat penting bagi mikrokontroler, oleh karena itu
terdapat 2 macam memori yang sifatnya berbeda yaitu :
o ROM (Read Only Memory)
o RAM (Random Access Memory)
Read Only Memory (ROM) adalah jenis Memory yang isinya tidak berubah meskipun IC
kehilangan catu daya, dipakai untuk menyimpan program, begitu di-reset mikrokontroler akan
langsung bekerja dengan program dalam ROM tersebut. Sesuai dengan keperluannya, dalam
susunan MCS51 memori penyimpan program ini dinamakan sebagai MEMORI PROGRAM.
15
16
Random Access Memory (RAM) isinya akan sirna begitu IC kehilangan catu daya,
dipakai untuk menyimpan data pada saat program bekerja. Di samping untuk data, RAM dipakai
pula untuk Stack. RAM yang dipakai untuk menyimpan data ini disebut pula sebagai MEMORI
DATA.
Ada berbagai jenis ROM. Untuk mikrokontroler dengan program yang sudah baku dan
diproduksi secara massal, program diisikan ke dalam ROM pada saat IC mikrokontroler dicetak
di pabrik IC. Untuk keperluan yang jumlahnya tidak banyak biasanya tidak dipakai ROM, tapi
dipakai ROM yang bisa di-isi-ulang atau Programable-Eraseable ROM (disingkat menjadi
PEROM atau PROM). Dulu banyak dipakai UV-EPROM (Ultra Violet Eraseable Programable
ROM) yang kemudian dinilai mahal harganya dan ditinggalkan setelah ada Flash PEROM yang
harganya jauh lebih murah.
Jenis memori yang dipakai untuk Memori Program AT89S52 adalah Flash ROM,
program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat bantuan alat yang
dinamakan ISP Programmer.
Memori Data yang disediakan dalam chip AT89S52 sebesar 256 byte, meskipun hanya
kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah mencukupi.
AT89S52 dilengkapi UART (Universal Asynchronous Receiver/Transmiter) yang biasa
dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD)
diletakan berhimpitan dengan P3.0 dan P3.1 di kaki nomor 10 dan 11, sehingga kalau sarana
UART ini dipakai maka P3.0 dan P3.1 tidak lagi bisa dipakai untuk jalur input/output paralel.
Timer 0 dan Timer 1 masing-masing adalah untaian pencacah biner 16 bit (16 bit binary
counter) di dalam chip yang dipakai sebagai sarana input/output yang bekerja menurut fungsi
waktu. Clock penggerak untaian pencacah ini bisa berasal dari oscilator kristal atau clock yang
diumpan dari luar lewat T0 dan T1. T0 dan T1 berhimpitan dengan P3.4 dan P3.5, sehingga P3.4
dan P3.5 tidak bisa dipakai untuk jalur input/output paralel kalau T0 dan T1 dipakai.
AT89S52 mempunyai 5 sumber pembangkit interupsi, 2 diantaranya adalah sinyal
interupsi yang diumpankan ke kaki INT0 dan INT1, kedua kaki ini berhimpitan dengan P3.2 dan
P3.3 sehingga tidak bisa dipakai sebagai jalur input/output paralel kalau INT0 dan INT1 dipakai
untuk menerima sinyal interupsi.
3 sumber interupsi yang lain berasal dan sarana komunikasi data seri dan dari sistem
Timer 0 dan Timer 1.
Port 0,Port 1, Port 2, Port3, UART, Timer 0, Timer 1 dan sarana lainnya merupakan
register yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function
Register (SFR).
16
17
2.5.3 Oscilator
Mikrokontroller AT89S52 membutuhkan Pulsa Generator untuk dapat membaca & menjalankan
Instruksi yang terdapat pada Memori Internal maupun Memori External. Oleh karena itu
Mikrokontroller membutuhkan sebuah Oscilator External yang dihasilkan oleh XTAL sebesar
11.0592 Mhz yang memiliki 2 buah kaki yang setiap kakinya di Seri dengan sebuah Kapasitor
sebesar 33pf untuk dapat menyaring Pulsa yang keluar dari XTAL tersebut sehingga Pulsa yang
dihasilkan menjadi lebih sempurna. Cara merangkai Oscilator tersebut berikut dengan
Kapasitornya dapat kita lihat pada Gambar dibawah ini
Gambar 2.5.3
Osilator External
2.5.4. Reset
Pada saat pertama kali Mikrokontroller mendapatkan Power Supply, Mikrokontroller akan
langsung membaca Instruksi yang terdapat pada Memori kemudian menjalankannya, tetapi
Mikrokontroller akan memulai Proses membaca Memori tidak dari awal melainkan Random.
Jadi kita harus memerintahkan Mikrokontroller untuk membaca Memori mulai dari Address
yang paling awal yaitu dengan cara Mereset Mikrokontroller yaitu dengan memberikan Logika 1
ke kaki Reset dari Mikrokontroller. Setelah proses Reset selesai Mikrokontroller akan membaca
Memori mulai dari Address yang paling awal. Untuk dapat melakukan Proses Reset secara
Otomatis, kita harus memberikan Rangkaian Kapasitor ke kaki Reset terhadap VCC. Dengan
begitu maka pada saat pertama kali kita memberikan Power Supply, +5VDC akan mengisi ke
Kapasitor pada Kutub yang terhubung dengan +5VDC, sedangkan Kutub yang 1 lagi akan
melakukan Proses Pembuangan dari Logika 1 menjadi 0. Logika 0 yang digunakan untuk
pembuangan didapat dari Resistor yang terhubung ke Ground. Cara merangkai Rangkaian
tersebut dapat kita lihat pada Gambar dibawah ini
17
18
Gambar 2.5.4
Rangkaian Reset
2.5.5. Dasar kerja program
Program untuk mengendalikan kerja dari mikrokontroler disimpan di dalam memori
program. Program pengendali tersebut merupakan kumpulan dari instruksi kerja mikrokontroler,
1 instruksi MCS51 merupakan kode yang panjangnya bisa satu sampai empat byte.
Sepanjang mikrokontroler bekerja, instruksi tersebut byte demi byte diambil ke CPU dan
selanjutnya dipakai untuk mengatur kerja mikrokontroler. Proses pengambilan instruksi dari
memori program dikatakan sebagai ‘fetch cycles’ dan saat-saat CPU melaksanakan instruksi
disebuat sebagai ‘execute cycles’.
Semua mikrokontroler maupun mikroprosesor dilengkapi sebuah register yang berfungsi
khsus untuk mengatur ‘fetch cycles’, register tersebut dinamakan sebagai Program Counter. Nilai
Program Counter secara otomatis bertambah satu setiap kali selesai mengambil 1 byte isi memori
program, dengan demikian isi memori program bisa berurutan diumpankan ke CPU.
Saat MCS51 di-reset, isi Program Counter di-reset menjadi 0000. Artinya sesaat setelah
reset isi dari memori program nomor 0 dan seterusnya akan diambil ke CPU dan diperlakukan
sebagai instruksi yang akan mengatur kerja mikrokontroler. Dengan demikian, awal dari
program pengendali MCS51 harus ditempatkan di memori nomor 0, setelah reset MCS51
menjalankan program mulai dari memori-program nomor 0000, dengan melakukan proses ‘fetch
cycles’ dan ‘execute cycles’ terus menerus tanpa henti.
Jika sarana interupsi diaktipkan, dan tegangan di kaki INT0 merubah dari ‘1’ menjadi ‘0’,
maka proses menjalankan program di atas akan dihentikan sebentar, mikrokontroler melayani
dulu permintaan interupsi, selesai melayani permintaan interupsi CPU akan melanjutkan
mengerjakan program utama lagi.
18
19
Untuk melaksanakan hal tersebut, pertama-tama CPU menyimpan nilai Program Counter
ke Stack (Stack merupakan satu bagian kecil dari data memori – RAM), kemudian mengganti isi
Program Counter dengan 0003. Artinya MCS51 akan melaksanakan program yang ditempatkan
di memori program mulai byte ke 3 untuk melayani interupsi yang diterima dari kaki INT0.
Adalah tugas programer untuk mengatur agar program yang dipakai untuk melayani interupsi
lewat INT0 diletakkan disitu.
Selesai melayani interupsi, nilai Program Counter yang tadi disimpan ke dalam Stack
akan dikembalikan ke Program Counter, dengan demikian CPU bisa melanjutkan pekerjaan di
program Utama.
Selain INT0, AT89S52 bisa menerima interupsi dari INT1, dari UART dan dari Timer.
Agar permintaan interupsi itu bisa dilayani dengan program yang berlainan, maka masingmasing sumber interupsi itu mempunyai nomor awal program untuk layanan interupsi yang
berlainan. Nomor-nomor awal tersebut digambarkan dalam Gambar di bawah ini.
Gambar 2.5.5
Intrupsi Program
2.5.6. RAM dan Register dalam AT89S52
Bagi mereka yang sudah terbiasa memakai komputer, kapasitas Random Access Memory
(RAM) yang dimiliki AT89S52 ‘mengerikan’ karena sangat sedikit, hanya 256 byte! Itupun
19
20
tidak semuanya bisa dipakai sebagai memori penyimpan biasa, lebih dari setengahnya
merupakan memori dengan keperluan khusus yang biasa dikenal sebagai register. Meskipun
demikian bagi mikrokontroler kapasitas itu sudah mencukupi.
Dalam pengertian MCS51, Random Access Memory dalam chip AT89S52 adalah
memori-data, yaitu memori yang dipakai untuk menyimpan data, sedangkan Flash PEROM
merupakan memori penampung program pengendali AT89S52, dikenal sebagai memoriprogram.
Karena kedua memori itu memang dibedakan dengan tegas, maka kedua memori itu
mempunyai penomoran yang terpisah. Memori-program dinomori sendiri, pada AT89S52 mulai
dari Address 0000H sampai 1FFFH. Sedangkan memori-data yang hanya 256 byte dinomori dari
nomor 00H sampai FFH.
Gambar 2.5.6
Denah Memori-Data
Seperti terlihat dalam denah memori-data Gambar 3, memori-data dibagi menjadi dua
bagian, memori nomor 00H sampai 7FH merupakan memori seperti RAM selayaknya meskipun
20
21
beberapa bagian mempunyai kegunaan khusus, sedangkan memori nomor 80H sampai FFH
dipakai sangat khusus yang dinamakan sebagai Special Function Register (akan dibahas
tersendiri dibagian lain).
Memori-data nomor 00H sampai 7FH bisa dipakai sebagai memori penyimpan data biasa,
dibagi menjadi 3 bagian:
·
Memori nomor 00H sampai 18H selain sebagai memori-data biasa, bisa pula dipakai
sebagai Register Serba Guna (General Purpose Register).
·
Memori nomor 20H sampai 2FH selain sebagai memori-data biasa, bisa dipakai untuk
menyimpan informasi dalam level bit.
·
Memori nomor 30H sampai 7FH (sebanyak 80 byte) merupakan memori-data biasa, bisa
dipakai untuk menyimpan data maupun dipakai sebagai Stack.
2.5.7 Register Serba Guna
Register Serba Guna (General Purpose Register) menempati memori-data nomor 00H
sampai 18H, memori sebanyak 32 byte ini dikelompokkan menjadi 4 Kelompok Register
(Register Bank), 8 byte memori dari masing-masing Kelompok itu dikenali sebagai Register 0,
Register 1 .. Register 7 (R0, R1, R2, R3, R4, R5, R6 dan R7).
Dalam penulisan program memori-memori ini bisa langsung disebut sebagai R0, R1, R2,
R3, R4, R5, R6 dan R7, tidak lagi dengan nomor memori. Dengan cara ini instruksi yang
terbentuk bisa lebih sederhana dan bekerja lebih cepat. Pengertian ini bisa diperjelas dengan
contoh 2 instruksi berikut :
MOV A,04H
MOV A,R4
Instruksi pertama mempunyai makna isi memori-data nomor 4 di-copy-kan ke Akumulator A,
sedangkan instruksi kedua artinya isi R4 di-copy-kan ke Akumulator A. Karena R4 menempati
memori-data nomor 4, jadi kedua instruksi itu berakibat sama bagi Akumulator A.
Tapi saat diterjemahkan ke kode mesin, intruksi pertama dirubah menjadi E5 04
(heksadesimal) dan instruksi kedua menjadi E6 (heksadesimal), jadi instruksi kedua lebih
sederhana dari instruksi pertama.
Selain itu, khusus untuk Register 0 dan Register 1 (R0 dan R1) masih punya mempunyai
kemampuan lain, kedua register ini bisa dipakai sebagai register penampung alamat yang dipakai
dalam penyebutan memori secara tidak langsung (indirect memori addressing), hal ini akan
dibicarakan lebih lanjut di belakang.
21
22
Empat kelompok Register Serba Guna itu tidak bisa dipakai secara bersamaan, saat
setelah reset yang aktip dipakai adalah Kelompok Register 0 (Register Bank 0).
Kalau yang diaktipkan adalah Kelompok Register 1, maka yang dianggap sebagai R0
bukan lagi memori-data nomor 0 melainkan memori-data nomor 8, demikian pula kalau yang
diaktipkan Kelompok Register 3 maka memori-data nomor 18H yang menjadi R0.
Kelompok Register yang aktip dipilih dengan cara mengatur bit RS0 dan RS1 yang ada di
dalam Register PSW (Program Status Word), hal ini akan dibicarakan lebih lanjut di bagian lain.
2.5.8. Memori level Bit
Memori-data nomor 20H sampai 2FH bisa dipakai menampung informasi dalam level bit.
Setiap byte memori di daerah ini bisa dipakai menampung 8 bit informasi yang masing-masing
dinomori tersendiri, dengan demikian dari 16 byte memori yang ada bisa dipakai untuk
menyimpan 128 bit (16 x 8 bit) yang dinomori dengan bit nomor 00H sampai 7FH.
Informasi dalam level bit tersebut masing-masing bisa di-‘1’-kan, di - ‘0’-kan dengan
instruksi.
Pengertian di atas bisa dipikirkan seolah-olah MCS51 mempunyai jenis memori yang
lain, tapi sesungguhnya kedua jenis memori itu tetap sama, hanya saja cara penyebutannya saja
yang berlainan.
Instruksi SETB 00H mengakibatkan memori-bit nomor 0 menjadi ‘1’, atau sama dengan
membuat bit nomor 0 dari memori-data nomor 20H menjadi ‘1’, sedangkan bit-bit lainnya dalam
memori nomor 20H tidak berubah nilai.
Sedangkan instruksi CLR 7FH mengakibatkan memori-bit nomor 7FH menjadi ‘0’, satau
sama dengan membuat bit nomor 7 dari memori-data nomor 2FH menjadi ‘0’, sedangkan bit-bit
lainnya dalam memori nomor 2FH tidak berubah nilai.
Pengertian ini dipertegas dengn intsruksi-instruksi berikut:
MOV 21H,#0FH
Sama dengan hasil kerja instruksi-instruksi berikut :
SETB 08H
SETB 09H
SETB 0AH
SETB 0BH
CLR 0CH
CLR 0DH
CLR 0EH
22
23
CLR 0FH
Instruksi MOV 21H,#0FH mempunyai makna mengisi memori-data nomor 21H dengan nilai
0FH (atau bilangan biner 00001111), berarti mengisi memori-bit nomor 0FH sampai 08H dengan
bilangan biner 00001111 yang bisa dinyatakan dengan 8 baris instruksi berikutnya.
Special Function Register (SFR)
Register Khusus (SFR - Special Function Register) adalah satu daerah RAM dalam IC
keluarga MCS51 yang dipakai untuk mengatur perilaku MCS51 dalam hal-hal khusus, misalnya
tempat untuk berhubungan dengan port paralel P1 atau P3, dan sarana input/output lainnya, tapi
tidak umum dipakai untuk menyimpan data seperti layaknya memori-data.
Meskipun demikian, dalam hal penulisan program SFR diperlakukan persis sama dengan
memori-data. Untuk mengisi memori-data nomor 60H dengan bilangan 0FH, instruksi yang
dipergunakan adalah :
MOV 60H,#0FH
Sedangkan untuk memenyimpan 0FH ke Port 1 yang di SFR menempati memori-data nomor
90H, instruksi yang dipergunakan adalah :
MOV 90H,#0FH
Membandingkan kedua instruksi di atas bisa dimengerti dalam segi penulisan program
SFR diperlakukan persis sama dengan memori-data.
Meskipun demikian, dalam menyebut memori-data bisa dipakai dua cara, yakni
penyebutan nomor memori secara langsung (direct memory addressing) dan penyebutan nomor
memori secara tidak langsung (indirect memory addressing) lewat bantuan R0 dan R1. Tapi
untuk SFR hanya bisa dipakai penyebutan nomor memori secara langsung (direct memory
addressing) saja. Hal ini akan dibahas lebih lanjut di bagian lain.
2.5.9. Register Dasar MCS51
Untuk keperluan penulisan program, setiap mikroprosesor/mikrokontroler selalu
dilengkapi dengan Register Dasar. Ada beberapa macam register merupakan register baku yang
bisa dijumpai disemua jenis mikroprosesor/ mikrokontroler, ada register yang spesifik pada
masing-masing prosesor.
Yang termasuk Register Baku antara lain Program Counter, Akumulator, Stack Pointer
Register, Program Status Register. MCS51 mempunyai semua register baku ini.
Sebagai register yang khas MCS51, antara lain adalah Register B, Data Pointer High
Byte dan Data Pointer Low Byte. Semua ini digambarkan dalam Gambar 4.
23
24
Di samping itu MCS51 masih mempunyai Register Serba Guna R0..R7 yang sudah
disebut dibagian atas.
Dalam mikroprosesor/mikrokontroler yang lain, register-register dasar biasanya
ditempatkan ditempat tersendiri dalam inti prosesor, tapi dalam MCS51 register-register itu
ditempatkan secara terpisah.
·
Program Counter ditempatkan ditempat tersendiri di dalam inti prosesor
·
Register Serba Guna R0..R7 ditempatkan di salah satu bagian dari memori-data
·
Register lainnya ditempatkan dalam Special Function Register (SFR).
Gambar 2.5.9
Register Dasar
Kegunaan dan pemakaian register-register dasar tersebut antara lain sebagai berikut:
2.5.9.1 Program Counter
Program Counter (PC) dalam AT89S52 merupakan register dengan kapasitas 16 bit. Di
dalam PC dicatat nomor memori-program yang menyimpan instruksi berikutnya yang akan
diambil (fetch) sebagai instruksi untuk dikerjakan (execute).
Saat setelah reset PC bernilai 0000h, berarti MCS51 akan segera mengambil isi memoriprogram nomor 0 sebagai instruksi. Nilai PC otomatis bertambah 1 setelah prosesor mengambil
instruksi 1 byte. Ada instruksi yang hanya 1 byte, ada instruksi yang sampai 4 byte, dengan
demikian pertambahan nilai PC setelah menjalankan instruksi, tergantung pada jumlah byte
instruksi bersangkutan.
24
25
2.5.9.2. Akumulator
Sesuai dengan namanya, Akumulator adalah sebuah register yang berfungsi untuk
menampung (accumulate) hasil hasil pengolahan data dari banyak instruksi MCS51. Akumulator
bisa menampung data 8 bit (1 byte) dan merupakan register yang paling banyak kegunaannya,
lebih dari setengah instruksi-instruksi MCS51 melibatkan Akumulator.
Instruksi-instruksi berikut memperjelas pengertian di atas :
MOV A,#20H
ADD A,#30H
Instruksi pertama menyimpan nilai 20H ke Akumulator, instruksi kedua menambahkan bilangan
30H ke Akumulator, hasil penjumlahan sebesar 50H ditampung di Akumulator.
Stack Pointer Register
Salah satu bagian dari memori-data dipakai sebagai Stack, yaitu tempat yang dipakai
untuk menyimpan sementara nilai PC sebelum prosesor menjalankan sub-rutin, nilai tersebut
akan diambil kembali dari Stack dan dikembalikan ke PC saat prosesor selesai menjalankan subrutin.
Stack Pointer Register adalah register yang berfungsi untuk mengatur kerja stack, dalam
Stack Pointer Register disimpan nomor memori-data yang dipakai untuk operasi Stack
berikutnya.
2.5.9.3. Program Status Word
Program Status Word (PSW) berfungsi mencatat kondisi prosesor setelah melaksanakan
instruksi. Pembahasan tentang PSW secara rinci akan dilakukan dibagian lain.
Register B
Merupakan register dengan kapasitas 8 bit, merupakan register pembantu Akumulator
saat menjalankan instruk perkalian dan pembagian.
DPH dan DPL
Data Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL) masing-masing
merupakan register dengan kapasitas 8 bit, tapi dalam pemakaiannya kedua register ini
digabungkan menjadi satu register 16 bit yang dinamakan sebagai Data Pointer Register (DPTR).
Sesuai dengan namanya, Register ini dipakai untuk mengalamati data dalam jangkauan
yang luas
25
26
2.5.9.4. Special Function Register (SFR) AT89S52
Random Access Memory (RAM) dalam AT89S52 hanya 256 byte, hanya setengahnya
yang dipakai sebagai memori-data biasa, setengahnya lagi dipakai untuk register-register untuk
mengatur perilaku MCS51 dalam hal-hal khusus, misalnya tempat untuk berhubungan dengan
port paralel P1 atau P3, dan sarana input/output lainnya, tapi tidak dipakai untuk menyimpan
data seperti layaknya memori-data. Meskipun demikian, dalam hal penulisan program SFR
diperlakukan persis sama dengan memori-data.
Nomor memori-data yang disediakan untuk Special Function Register mulai dari 80H
sampai dengan FFH, area sebanyak 128 byte ini tidak semuanya dipakai, hal ini digambarkan
dalam Denah Special Function Register. Masing-masing register dalam Special Function
Register mempunyai nomor dan nama.
Dianjurkan agar nomor-nomor yang tidak dipakai jangan dipergunakan, karena bisa
mengakibatkan terjadinya sesuatu yang tidak terduga.
Sebagian register dalam Special Function Register sudah dibicarakan sebagai Register
Dasar, merupakan piranti dasar untuk penulisan program. Register-register dasar tersebut antara
lain adalah Akumulator (ACC), Stack Pointer Register (SP), Program Status Register (PSW),
Register B, Data Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL). Di dalam area
Special Function Register. Register-register ini diperlakukan sebagai memori dengan nomor
yang sudah tertentu.
Akumulator menempati memori-data nomor E0H, Stack Pointer Register menempati
memori-data nomor 81H, Program Status Register ada di D0H, Register B di F0H, DPL di 82H
dan DPH di 83H.
Kemampuan MCS51 untuk menomori memori-data dalam level bit, dipakai juga dalam
Special Function Register. Secara keseluruhan nomor bit yang disediakan dalam MCS51
sebanyak 256, nomor bit 0 sampai 127 sudah dipakai untuk nomor bit memori-data nomor 20H
sampai 2FH, sisanya sebanyak 128 nomor dipakai di Special Function Register.
Special Function Register yang bisa dinomori dengan nomor bit, adalah yang mempunyai
nomor memori dengan digit heksadesimal kedua adalah 0 atau 8, misalnya nomor 80H, 88H,
90H, 98H..F0H dan F8H.
Akumulator merupakan Special Function Register dengan nomor E0H, sehingga semua
bit dalam Akumulator bisa di-nomor-i satu per satu. Dalam penulisan program bit 0 Akumulator
bisa dituliskan sebagai A.0, bit 1 Akumulator ditulis sebagai A.1 dan seterusnya. Instuksi SETB
A.0 mengakibatkan bit 0 dari Akumulator menjadi ‘1’ sedangkan bit-bit lainnya tidak
26
27
terpengaruh. Instruksi CLR A.6 mengakibatkan bit 6 dari Akumulator menjadi ‘0’ tapi tidak
memengaruhi bit-bit yang lain.
2.5.10. Pengelompokan SFR
Selain register yang berfungsi sebagai register dasar yang sudah dibicarakan diatas,
register-register dalam SFR dipakai untuk mengatur Input/Output dari MCS51 yang
dikelompokan menjadi :
·
Register Penampung Data Input/Output, misalnya data yang diisikan ke register P1 akan
diteruskan (di-output-kan) ke Port 1 yang terdapat di kaki IC AT89S52.
·
Register Pengatur Input/Output dan Register Status Input/Output, misalnya register SCON
dipakai untuk mengatur UART dan dipakai untuk memantau kondisi UART, register TCON
dipakai untuk mengatur kerja Timer.
Gambar 2.5.10
SFR AT89S52
27
28
2.5.10.1. Uraian Singkat SFR
Berikut ini dibahas secara singkat fungsi dan sifat masing-masing register dalam Special
Function Register, pembahasan secara rinci akan dilakukan dibagian lain.
P1 (Port 1, nomor 90H, bisa dinomori dengan nomor bit): merupakan sarana input/output
port 1, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89S52. Misalnya
bit 3 dari register P1 terhubung ke kaki P1.3 (kaki nomor 15 AT89S52), instruksi SETB P1.3
mengakibatkan kaki nomor 15 tersebut menjadi ‘1’ dan instruksi CLR P1.3 akan membuatnya
menjadi ‘0’.
P3 (Port 3, nomor B0H, bisa dinomori dengan nomor bit): merupakan sarana input/output
port 3, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89S52. Misalnya
bit 5 dari register P3 terhubung ke kaki P3.5 (kaki nomor 9 AT89S52), instruksi SETB P3.5
mengakibatkan kaki nomor 9 tersebut menjadi ‘1’ dan instruksi CLR P3.5 akan membuatnya
menjadi ‘0’.
SBUF (Serial Buffer, nomor 99H): Register Serial Buffer (SBUF) dipakai untuk
mengirim data dan menerima data dengan UART yang terdapat dalam IC AT89S52. Angka yang
disimpan ke SBUF akan dikirim keluar secara seri lewat kaki TXD (kaki nomor 3 IC AT89S52).
Sebaliknya data seri yang diterima di kaki RXD (kaki nomor 2 IC AT89S52) bisa diambil di
register SBUF. Jadi SBUF akan berfungsi sebagai port output pada saat register ini diisi data,
dan SBUF akan menjadi port input kalau isinya diambil.
SCON (Serial Control, nomor 98H, bisa dinomori dengan nomor bit): register SCON
dipakai untuk mengatur perilaku UART di dalam IC AT89S52, hal-hal yang diatur meliputi
penentuan kecepatan pengiriman data seri (baud rate); mengakitpkan fasilitas penerimaan data
seri (fasilitas pengiriman data seri tidak perlu di atur), disamping itu register ini dipakai pula
untuk memantau proses pengiriman data seri dan proses penerimaan data seri.
TL0/TH0 (Timer 0 Low/High, nomor 8AH/8CH): Kedua register ini bersama
membentuk Timer 0, yang merupakan pencacah naik (count up counter). Perilaku kedua register
ini diatur oleh register TMOD dan register TCON. Hal-hal yang bisa diatur antara lain adalah
sumber clock untuk pencacah, nilai awal pencacah, bilamana proses pencacahan mulai atau
berhenti, dan lain sebagainya.
TL1/TH1 (Timer 1 Low/High, nomor 8BH/8DH): Kedua register ini bersama
membentuk Timer 1, yang merupakan pencacah naik (count up counter). Perilaku kedua register
ini diatur oleh register TMOD dan register TCON. Hal-hal yang bisa diatur antara lain adalah
sumber clock untuk pencacah, nilai awal pencacah, bilamana proses pencacahan mulai atau
berhenti, dan lain sebagainya.
28
29
TMOD (Timer Mode, nomor 89H): register TMOD dipakai untuk mengatur mode kerja
Timer 0 dan Timer 1, lewat register ini masing-masing timer bisa diatur menjadi timer 16-bit,
timer 13-bit, timer 8-bit yang bisa isi ulang secara otomatis, atau 2 buah timer 8 bit yang
terpisah. Di samping itu bisa diatur agar proses proses pencacahan timer bisa dikendalikan lewat
sinyal dari luar IC AT89S52, atau timer dipakai untuk mencacah sinyal-sinyal dari luar IC.
TCON (Timer Control, nomor 88H, bisa dinomori dengan nomor bit): register TCON
dipakai untuk memulai atau menghentikan proses pencacahan timer dan dipakai untuk memantau
apakah terjadi limpahan dalam proses pencacahan. Disamping itu masih tersisa 4 bit dalam
register TCON yang tidak dipakai untuk mengatur Timer, melainkan dipakai untuk mengatur
sinyal interupsi yang diterima di INT0 (kaki nomor 6) atau INT1 (kaki nomor 7), dan dipakai
untuk memantau apakah ada permintaan interupsi pada kedua kaki itu.
IE (Interrupt Enable, nomor A8H, bisa dinomori dengan nomor bit): register ini dipakai
untuk mengaktipkan atau me-non-aktipkan sarana interupsi, bit 0 sampai bit 6 dari register IE
(IE.0..IE.6) dipakai untuk mengatur masing-masing sumber interupsi (sesungguhnya IE.6 tidak
dipakai) sedangkan IE.7 dipakai untuk mengatur sistem interupsi secara keseluruhan, jika IE.7
=’0’ akan sistem interupsi menjadi non-aktip tidak mempedulikan keadaan IE.0.. IE.6.
IP (Interrupt Priority, nomor B8H, bisa dinomori dengan nomor bit): register ini dipakai
untuk mengatur perioritas dari masing-masing sumber interupsi. Masing-masing sumber
interupsi bisa diberi perioritas tinggi dengan memberi nilai ‘1’ pada bit bersangkutan dalam
register ini. Sumber interupsi yang perioritasnya tinggi bisa menginterupsi proses interupsi dari
sumber interupsi yang perioritasnya lebih rendah.
PCON (Power Control, nomor 87H): Register PCON dipakai untuk mengatur pemakaian
daya IC AT89S52, dengan cara ‘menidurkan’ IC tersebut sehingga memerlukan arus kerja yang
sangat kecil. Satu satu bit dalam register ini dipakai untuk menggandakan kecepatan pengiriman
data seri (baud rate) dari UART di dalam AT89S52.
Variasi dari SFR
Seperti sering disebut, MCS51 merupakan satu keluarga IC mikrokontroler yang terdiri
dari ratusan macam IC, ratusan macam IC tersebut umumnya mempunyai fasilitas input/output
yang berlainan. Keragaman ini ditampung dalam Special Function Register.
Register baku dalam keluarga MCS51, ada yang tidak dimiliki oleh keluarga AT89S52,
register-register tersebut antara lain adalah :
P0 (Port 0, nomor 80H, bisa dinomori dengan nomor bit): merupakan sarana input/output
port 0, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89S52.
29
30
P2 (Port 2, nomor A0H, bisa dinomori dengan nomor bit): merupakan sarana input/output
port 2, masing-masing bit dalam register ini setara dengan salah satu kaki IC AT89S52.
Di samping dipakai sebagai port input/output, Port 0 dan Port 2 bisa pula dipakai untuk
saluran-data (data bus) dan saluran-alamat (address bus) yang diperlukan AT89S52 untuk bisa
menambah memori diluar chip.
2.6. AT89S ISP Programmer
a. ISP singkatan dari In System Programming. ISP Programmer berbentuk sebuah kabel yang
diujungnya terdapat sebuah Rangkaian yang sudah dikemas menggunakan Casing yang menutupi
DB25 Male. Kabel AT89S ISP Programmer dapat kita lihat bentuknya pada gambar 2.6 (a) di
bawah ini
Gambar 2.6(a)
Kabel ISP
Salah satu ujung yang besar yang terdapat Rangkaian Elektronik untuk Proses pengisian Memori
Mikrokontroller berupa konektor DB25 Male sedangkan pada Komputer PC, sarana yang
digunakan adalah Paralel Port seperti pada gambar 2.6(b) yang Konektornya berupa DB25
FEMALE seperti gambar di bawah ini.
Gambar 2.6(b)
Pararel Port
Untuk mengisi Program ke dalam Memori Internal dari Mikrokontroller adalah dengan cara
menghubungkan Kabel AT89S ISP Programmer dengan Komputer PC seperti gambar 2.6.(c) di
bawah ini
30
31
Gambar 2.6 (c)
ISP Connector
Untuk menghubungkan Pin yang terdapat pada Mikrokontroller dengan Kabel AT89S ISP
Programmer,
perlu
diperhatikan
Pin
out
dari
Konektor
ISP
supaya
tidak
salah
menghubungkannya,terlihat pada gambar 2.6 (d) dan gambar 2.6 (e) berikut:
Gambar 2.6 (d)
Pin ISP
Kelebihan menggunakan AT89Sxx
Kelebihan dari menggunakan AT89S52 adalah dapat mengisikan Program ke dalam Memori
Internalnya tanpa harus mencabut IC dari kedudukannya, melainkan cukup menghubungkan
31
32
kabel ISP sesuai dengan ketentuan konektornya dengan AT89S52 kemudian buka Program untuk
mengisinya, membuka Program yang sudah di assembly lalu Program.
Gambar 2.6 (e)
ISP Connector
32
Download