dilokasi 8Dh dan 8Bh serta TH2, TL2 dilokasi CDh dan CCh merupakan register- register pencacah 16 bit untuk masing-masing timer 0, timer 1 dan
timer2.
h. Serial Data Buffer
SBUF atau Serial Data Buffer lokasi 99h terdiri dari 2 register yang terpisah yaitu register penyangga pengirim transmit buffer dan penyangga
penerima receive buffer. Pada saat data disalin ke SBUF, data sesungguhnya dikirim ke penyangga pengirim dan sekaligus mengawali
transmisi data serial. Sedangkan pada saat data disalin dari SBUF, maka sebenarnya data tersebut berasal dari penyangga penerima.
i. Control Register
Register-register IP, IE, TMOD, TCON, T2CON, T2MOD, SCON dan PCON berisi bit-bit kontrol dan status untuk sisitem interupsi, pencacah
pewaktu dan port serial.
2.3.5 Catu Daya untuk Sistem Mikrokontroller
Kinerja sistem mikrokontroller sangat dipengaruhi pleh perangkat catu daya yang digunakan. Oleh karena itu, untuk mendapatkan sistem yang
handal, diperlukan sistem catu daya yang stabil. Mikrokontroller AT89S52 menggunakan catu daya pada operasi normal dengan tegangan DC 5V. Pada
aplikasi sederhana, kita dapat menggunakan regulator tegangan DC 5V berupa IC LM7805. Agar tegangan keluaran pada pin 3 stabil pada 5V, maka
tegangan masukkan pada pin 1 hendaklah antara 7V hingga 24V. di pasaran, IC ini beredar dalam beberapa versi. Untuk sistem dengan konsumsi daya
LM 7805 220
AC Transformator
22pF 100nF
C1 C2 C3
10nF + 5V
R = 10k 1
2 3
hingga 1A, dapat digunakan LM7805 dengan kemasan TO-220 yang dilengkapi metal pendingin. Namun, jika sistem yang dibuat hanya
mengkonsumsi daya sekitar 50mA, maka dapat menggunakan tipe LM7805 dengan kemasan TO-92 yang telah dapat menangani arus hingga 100mA. [5]
Gambar 2.8 Catu Daya Sederhana Untuk Mikrokontroller 2.3.6
Dasar Mikrokontroler
Sebuah mikrokontroler memiliki beberapa perlengkapan dasar, antara lain adalah CPU, Alamat, Data, Pengendali, Memori, RAM, ROM, Input Output.
1. Central Processing Unit CPU
Unit pengelola pusat CPU terdiri atas dua bagian yaiu unit pengendali CU serta unit aritmatika dan logika ALU. Fungsi utama unit pengendali adalah untuk
mengambil, mengkode, dan melaksanakan urutan instruksi pada sebuah program yang tersimpan dalam memori. Sedangkan unit aritmatika atau perhitungan bertugas
untuk menangani operasi perhitungan maupun boolean dalam program. 2.
Alamat Sistem berbasis mikroprosesor atau mikrokontroler pada umumnya
mempunyai lebih dari satu device peripheral seperti memori, input output, Analog to Digital Converter ADC, dan lain-lain. Masing-masing device ini perlu diberi
alamat, sama seperti rumah kita yang mempunyai alamat unik untuk tiap-tiap rumah.
Bayangkan apa yang terjadi kalau rumah-rumah itu tidak diberi alamat, pasti kita
akan kebingungan untuk menuju ke rumah tertentu. Demikian pula dengan mikrokontroler, supaya dapat mengakses suatu device maka mikrokontroler tersebut
harus mengetahui alamat device yang akan diakses. Address decoder akan memberikan alamat untuk tiap device.
3. Data
Mikrokontroler AT89S52 merupakan versi terbaru dibandingkan mikrokontroler AT89C51 yang telah banyak digunakan saat ini.
CPU mikrokontroler AT89S52 mempunyai lebar bus 8 bit. Pena data 8 bit pada AT89S52 D0, …..D7 ini
terletak didalam chip karena jumlah pena luar pada mikrokontroler terbatas. Pena untuk bus data di multipleks dengan alamat A0, …..A7 pada port 0, sehingga sering
juga disebut AD0, …..AD7. 4.
Pengendali Selain bus alamat dan bus data mikroprosesor atau mikrokontroler dilengkapi
juga dengan bus pengendali control bus, yang fungsinya untuk menyerempakkan operasi mikroprosesor atau mikrokontroler dengan operasi rangkaian luar. Contoh
pena pengendali ini antara lain ALE, PSEN, WR, RD, interupsi dan lain-lain. 5.
Memori “Kecanggihan” sebuah komputer atau kontroller ditentukan oleh program
yang kita buat. Memori digunakan sebagai tempat untuk menimpan program, data
dan stack. Program adalah kumpulan instruksi untuk mengerjakan suatu pekerjaan. Data adalah variabel-variabel yang dapat di ubah saat program berjalan. Stack
digunakan untuk menyimpan alamat kembali return address dan juga dapat dipakai
untuk menyimpan data. Umumnya didalam mikrokontroller tersedia 2 jenis memori yaitu ROM dan RAM Read Only Memory bersifat hanya dibaca dan isinya tidak
hilang bila catu daya dimatikan, digunakan untuk menyimpan program. Sedangkan RAM Random-Access Memory bersifat bisa dibaca dan ditulis tetapi isinya bisa
hilang bila catu daya dimatikan, digunakan untuk menyimpan data stack. Dengan berkembangannya teknologi batas antara ROM dan RAM kini agak kabur. ROM
sekarang bisa ditulisi untuk tipe flash atau EEROM. RAM sekarang juga tidak kehilangaan isinya saat catu daya dimatikan yaitu pada tipe NVRAM Non-Volatile
RAM. Memori di dalam Mikrokontroller berukuran terbatas. Untuk itu dan harus tahu
persis berapa kebutuhan memori yang digunakan. Kekurangan memori menyebabkan program anda tidak berjalan dengan benar, terlalu banyak memori yang tidak dipakai
juga menyebabkan cost yang sia-sia. 6.
RAM RAM
Random Access Memory pada mikrokomputer bisa mencapai ukuran sekian megabyte dan bisa di-upgrade ke ukuran yang lebih besar dan berlokasi di luar
chip CPU-nya, sedangkan RAM pada mikrokontroler ada di dalam chip mikrokontroler yang bersangkutan dan ukurannya sangat minim, misalnya 128 byte,
256 byte dan seterusnya dan ukuran yang relatif kecil inipun dirasa cukup untuk aplikasi-aplikasi mikrokontroler.
Pada 128 byte bagian bawah, perhatikan Gambar 2.9. 32 byte pertama 00h-
1Fh dikelompokkan menjadi 4 bank dari 8 register. Instruksi pada program mengenalnya dengan sebutan R0 sampai R7. Dua bit pada Program Status Word
PSW digunakan untuk memilih bank register yang digunakan. Penggunaan instruksi yang mengakses register akan menghemat kode mesin dibandingkan dengan instruksi
yang mengakses lokasi secara langsung direct addressing. 16 byte diatas bank register yaitu pada alamat 20h sampai 2Fh merupakan
daerah yang dapat dialamati secara bit. Alamat bit-bit pada daerah ini adalah 00h sampai 7Fh.
Pendek kata, untuk RAM internal 128 byte bagian bawah, 32 byte pertama dapar digunakan sebagai bank register, 16 byte berikutnya dapat dialamati perbit, dan
sisanya 80 byte dapat digunakan seperti biasa.
SFR User
Area
Bank 1 Bank 0
Bank 3 Bank 2
8 Bytes 78
7F 70
77 68
6F 60
67 58
5F 50
57 48
4F 40
47 38
3F 30
37 28
2F 20
27 18
1F 10
17 08
0F 00
07 SCRATCHPAD
AREA BIT ADDRESSABLE
SEMENT REGISTER
BANKS SP
FF 80
7F 00
Gambar 2.9 128 byte RAM Internal Bagian Bawah Lower
RAM internal 128 byte atas merupakan tempat register fungsi khusus SFR.
Gambar 2.10. menunjukan SFR untuk Mikrokontroller seri 89S52. SFR ini meliputi
alamat port, bit status dan kontrol, timer, register, stack pointer, akumularor dan lainnya. Bagian-bagian yang kosong digunakan untuk pengembangan divais
Mikrokontroller selanjutnya.
SFR U ser
Area 8 Bytes
F8 FF
F0 F7
E8 E F
E0 E 7
D 8 D F
D 0 D 7
C 8 C F
C 0 C 7
B8 B F
B0 B 7
A8 A F
A0 A 7
98 9F
90 97
88 8F
80 87
FF 80
7F 00
SP IM O D
S BU F D P L
IL0 B
AO C PSW
P E
P3
P0 IC O N
P2 SC O N
P1 D P H
IL1 IH U
IH 1 PC O N
BIT AD D R E SSAB LE
Gambar 2.10 128 byte RAM Bagian Atas
7. ROM
ROM Read Only Memory diisi saat proses produksinya. Informasi yang
dituliskan harus dipesan oleh pelanggan sebelum chip diberikan. Dalam sistem mikrokontroler, informasi ini dapat dibaca oleh CPU tetapi tidak dapat dirubah. ROM
adalah memori yang paling sederhana, kecil, dan murah. Sifat memori program ini non volatile, artinya tetap akan tersimpan walaupun tidak diberi catu daya.
8. Input Output
Diagram latch dan IO buffer tiap bit dari Port 0 - Port 3. Port 1,2, dan 3 mempunyai pull-up internal. Sedangkan Port 0, konfigurasi outputnya adalah open
drain. Setiap bit IO ini berdiri sendiri, jadi dapat berfungsi sebagai input atau output tanpa tergantung satu sama lain. Port 0 dan 2 tidak dapat dipakai sebagai IO bila
digunakan sebagai jalur alamat data. Bila port-port tersebut ingin difungsikan sebagai input, maka bit latch harus berisi 1, yang akan mematikan output driver
FET. Sehingga pin-pin Port 1,2, dan 3 akan ditarik ke high oleh pull-up internal, tetapi bila diinginkan dapat juga ditarik ke low dengan sumber external. Port 0 agak
berbeda, karena tidak menggunakan pull-up internal. FET pull-up pada output driver
P0 lihat gambar 6A hanya digunakan pada saat Port mengeluarkan 1 selama akses memori external, selain keadaan ini FET pull-up tidak aktif. Akibatnya bila bit-bit P0
berfungsi sebagai output maka bersifat open drain. Penulisan logika 1 ke bit latch menyebabkan kedua FET tidak bekerja, sehingga pin dalam keadaan mengambang
floating. Pada kondisi ini pin dapat berfungsi sebagai high impedance input. Port 1,2, dan 3 sering disebut dengan quasibidirectional karena mempunyai pull-up
internal. Saat berfungsi sebagai input maka mereka akan ditarik ke high dan akan bersifat sebagai sumber arus bila ditarik ke low secara eksternal. Port 0 sering
disebut sebagai true-bidirectional, karena bila dikonfigurasikan sebagai input maka pinpinnya akan mengambang. Pada saat reset semua port latch akan berlogika ’1’ [5]
Gambar 2.11 Bit Latch Dan IO Buffer 2.4
Motor DC
Motor DC adalah alat yang mengubah pulsa listrik menjadi gerak, mempunyai prinsip dasar yang sama dengan motor stepper namun gerakannya
bersifat kontinyu atau berkelanjutan. Motor DC dibagi menjadi 2 jenis yaitu :
1. Motor DC dengan sikat mekanis komutasi, yaitu motor yang
memiliki sifat karbon berfungsi sebagai pengubah arus pada kumparan sedemikian rupa sehingga arah tenaga putaran motor
akan selalu sama 2.
Motor DC tanpa sikat, menggunakan semi konduktor untuk merubah maupum membalik arus sehingga layaknya pulsa yang
menggerakkan motor tersebut. Biasa digunakan pada sistem servo, karena mempunyai efisiensi tinggi, umur pemakaian
lama, tingkat kebisingan suara listrik rendah, karena putarannya halus seperti stepper namun putarannya terus menerus tanpa
adanya step. Dalam aplikasinya seringkali sebuah motor digunakan untuk arah
yang searah dengan jarum jam maupun sebaliknya. Untuk mengubah putaran dari sebuah motor dapat dilakukan dengan mengubah arah arus yang mengalir
melalui motor tersebut. Secara sederhana seperti yang ada pada Gambar 2.12,
hal ini dapat dilakukan hanya dengan mengubah polaritas tegangan motor.
Gambar 2.12 Dasar Pengaturan Arah Putar Motor
Agar pengubahan polaritas tegangan motor dapat dilakukan dengan mudah, maka hal ini dilakukan dengan menggunakan dua buah saklar seperti
pada Gambar 2.13. di mana kedua saklar tersebut harus berada pada posisi
yang saling berlawanan. Apabila S1 berada di posisi kiri terhubung dengan positif maka S2 harus berada di posisi kanan terhubung dengan negatif dan
demikian pula sebaliknya dengan perubahan yang serempak.
Gambar 2.13 Pengaturan Arah Dengan Menggunakan Saklar
Untuk aplikasi pengaturan arah dengan menggunakan mikrokontroler, maka posisi dari saklar dapat digantikan dengan transistor seperti yang ada
pada Gambar 2.14. Gambar tersebut adalah merupakan rangkaian pengatur
arah putaran motor DC dengan arus maksimum 5A dan tegangan kerja 20 Volt V+.
Gambar 2.14 Skema Pengatur Arah Putaran Motor DC 20V Dengan Arus Maksimum 5A
Proses kendali dalam hal ini ditentukan oleh logika dari DRV0 dan DRV1, di mana agar motor tersebut bekerja, maka kondisi DRV0 dan DRV1
harus saling berbeda logika. Motor akan berhenti apabila keduanya berlogika 0. Kondisi logika 1 pada DRV0 dan DRV1 secara bersamaan tidak
diperbolehkan, karena hal ini akan mengakibatkan semua transistor berada pada kondisi aktif dan sistem akan terhubung singkat.
Gambar tersebut pada dasarnya terdiri dari 4 buah transistor, namun karena arus dari motor yang dikendalikan cukup besar, maka setiap transistor
dibentuk dengan konfigurasi darlington di mana setiap transistor terdiri dari 2 buah transistor yaitu 2N3055 dan C9013 untuk NPN dan MJ2955 dan C9012
untuk PNP. Dengan konfigurasi darlington, maka HFE penguatan dari transistor tersebut adalah sebesar hasil kali dari HFE keduanya, sedangkan
tegangan VBE adalah 0,7V x 2 = 1,4V
Gambar 2.15 Konfigurasi Darlington NPN
Pada saat DRV0 berlogika 0 dan DRV1 berlogika 1, maka transistor Q1 dan Q2 yang membentuk konfigurasi transistor darlington akan non aktif
sedangkan Q3 dan Q4 aktif. Kaki sebelah kanan dari motor akan terhubung ke
ground negatif, demikian pula dengan basis transistor darlington yang dibentuk oleh Q7 dan Q8. Basis dari transistor tersebut akan terhubung ke
ground melalui R3 sehingga transistor darlington inipun aktif dan
mengalirkan tegangan positif ke bagian kiri dari motor Gambar 2.15..
Logika 0 pada kaki DRV0 membuat transistor darlington yang dibentuk oleh Q1 dan Q2 non aktif sehingga bagian kiri dari motor atau
kolektor dari transistor ini tidak terhubung ke ground. Arus tidak mengalir dari basis transistor darlington yang dibentuk oleh Q5 dan Q6 ke ground
sehingga transistor inipun tidak aktif. Sebaliknya bila kondisi logika dari DRV0 dan DRV1 dibalik, maka
Q1-Q2 dan Q5-Q6 aktif sedangkan Q3-Q4 dan Q7-Q8 tidak aktif motor akan mendapat polaritas tegangan yang terbalik pula.
Skema pada Gambar 2.15. merupakan skema pengendali motor dengan kapasitas maksimum 5A. Proses perhitungan dari Gambar 2.15.
diperoleh sebagai berikut: Arus motor maksimum ICmax = 5A
H
FE
2N3055 dan H
FE
MJ2955 = 20 H
FE
C9013 dan H
FE
C9012 = 60 H
FE
darlington = 1200 V
BE
= 1,4V V+ = 20Volt.
V
OH
DRV0 = V
OH
DRV1 = 4,5 Volt Arus basis I
b
= ICmaxH
FE
darlington
= 51200 = 4,16 Ma
Nilai R1 dan R2 adalah sama R1
= VOH DRV0 - VBE --------------------
I
b
= 4,5V – 1,4V4,16 mA = 745 ohm atau untuk amannya digunakan nilai yang sedikit
lebih besar yaitu 1K. Nilai R3 dan R4 adalah sama
R3 = V+ - VBEIb
= 20 – 1,44,16mA = 4,47K atau untuk amannya digunakan nilai yang sedikit
lebih besar yaitu 4,7K Untuk antar muka dengan AT89S52, di mana setiap IO kecuali Port 0
pada mode IO biasa telah memiliki R pull up internal maka penggunaan R1 dan R2 dapat ditiadakan sehingga IO AT89S52 dapat langsung terhubung ke
DRV0 dan DRV1. Skema tersebut juga dapat digunakan untuk tegangan kerja V+ selain 20 Volt dengan merubah nilai R3. [4]
2.5 Transistor