DIKTAT KULIAH SISTEM MIKROPROSESOR

advertisement
DIKTAT KULIAH
SISTEM MIKROPROSESOR
Disusun Oleh : Susanto Sambasri, ST.,MT / Rizal Suryana, ST
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS JENDERAL ACHMAD YANI
CIMAHI
2008
BAB I
SEJARAH MIKROPROSESSOR
DAN PERKEMBANGAN MIKROPROSESSOR
1. Perkembangan Jenis Teknologi Mikroprosessor
Berbagai jenis teknologi telah dipergunakan dalam pengembangan komponen
mikroelektronika, khususnya mikroprosessor. Teknologi Rangkaian Terintegrasi yang telah
dipergunakan sampai waktu ini adalah
●
Teknologi Bipolar
●
Teknologi MOS (Metal Oxide Semiconductor)
●
CTD (Change transfer Devis)
●
Magnetic Bubbles
Dalam pembuatan mikroprosessor dikenal beberapa macam teknologi yang masing-masing
mempunyai karakteristik teknik tertentu. Pada tabel 1-1 diperlihatkan pembagian teknologi
mikroprosessor beserta beberapa contohnya.
Tabel 1-1 Pembagian teknologi mikroprosessor
JENSI TEKNOLOGI
CONTOH MIRKOPROSESSOR
TEKNOLOGI MOS
PMOS
INTEL 4004,4040,8008
NMOS
INTEL 8080,8085,8086,8048,8748
MOTOROLA
MC6800,MC6802,
MC5801,
MC6805, ZILOG Z80, Z8000
CMOS
MOTOROLA MC146805, MC14500
TEKNOLOGI BIPOLAR
BIPOLAR
TAK-JENUH
(UN-
SATURATED)
ECL
MOTOROLA MC10800
SCHOTTKY
INTEL 3001, AMD Am2901, Am2903
BIPOLAR JENUH (SATURATED)
I2L
TEXAS INTRUMENTS SBP0400, SBP900
Tabel 1-2 Perbandingan Karakteristik Mikroprosessor
SPEED
DAYA
DENSITY
KETERANGAN
TEKNOLOGI MOS
PMOS
Rendah
Sedang
Tinggi
Pemakaian menurun
NMOS
Rendah-
Sedang
Tinggi
Standard
Sangat Kecil
Sedang
Sedang
CMOS
Sedang
– Daya Terkecil
Tinggi
CMOS-SOS
Sedang
– Kecil
Tinggi
– Sedang
Sedang
Rendah
Tinggi
TEKNOLOGI BIPOLAR
TTL
Sedang
Tinggi
ECL
Sangat Tinggi
– Tinggi
Tinggi
Tinggi
Sedang
Pemakaian
Meningkat
I2L
Sedang
Tinggi
– Rendah, Dapat Sangat Tinggi
diatur
Baru,
Pemakaian
meningkat
Teknologi PMOS adalah teknologi yang paling murah dan merupakan teknologi yang
dipergunakan pada mikroprosessor pertama yaitu Intel 4004 pada tahun 1971, namun
demikian banyak hal telah digantikan oleh teknologi NMOS. Pada waktu ini teknologi MOS
kanal N adalah yang paling banyak dipergunakan dalam pembuatan mikroprosessor. Dalam
hal faktor kecepatan operasi dan atau kebutuhan daya memegang peranan penting maka
perlu diperhatikan jenis teknologi lainnya.
Mikroprosessor dengan teknologi bipolar jenis ECL atau Schottky mempunyai kecepatan
paling tinggi. Untuk keperluan daya paling rendah dapat kita pilih mikroprosessor dengan
teknologi CMOS(Complementary Metal Oxide Semiconductor). Mirkoprosessor dengan
teknologi bipolar jenis I2L dapat bekerja dengan tegangan sumber paling rendah
dibandingkan dengan mikroprosessor jenis yang lain. Mikroprosessor jenis I2L ini dapat
bekerja dengan daya rendah bila kecepatan operasi bukan merupakan faktor menentukan.
Mikroprosessor dengan teknologi CMOS yang mempergunakan sub-strat bahan isolator
saphir (yaitu jenis CMOS – SOS) dapat bekerja dengan kecepatan operasi tinggi dan
keperluan daya rendah, tetapi harnya sangat mahal.
Disamping harga, tiga macam karakteristik teknik yang paling penting adalah Kecepatan
operasi (Speed), Daya yang diperlukan (Power Consumption) Kepadatan komponen
perbandingan karakteristik beberapa jenis mikroprosessor dengan teknologi yang berbeda.
2. Perkembangan Jenis Mikroprosessor
Mikroprosessor dapat dikelompokkan menurut teknologi yang dipergunakan, menurut
jumlah bit data, menurut struktur atau menurut kemampuan/karakteristik mikroprosessor dan
menurut fungsi dari mikroprosessor itu sendiri. Berdasarkan jumlah bit data (Word Size)
pada waktu ini telah terdapat banyak macam mirkoprosessor, mulai dari mikroprosessor 1
bit, 4bit, 8 bit. 16 bit, 32 bit dan 64 bit. Selain itu mirkoprosessor dapat pula dikelompokan
menurut fungsi dan integrasisnya adalah sebagai berikut :
●
Mikroprosessor Monolotik (Chip Tunggal)
●
Mikrokomputer chip tunggal (One – chip Mircocomputer)
●
Mikroprosessor (atau Prosessor) Bit – Slice
2.1 Mikroprosessor 4 bit
Mikroprosessor intel 4004 merupakan mirkroprosessor pertama yang diperkenalkan
pada tahun 1971. Mikroprosessor tersebut memperguanakan teknologi PMOS. Selain itu
telah dikembangkan pula beberapa buah mirkoprosessor 4 dengan teknologi yang sama dan
dengan teknologi yang lain. Alasan disebut mikroprosessor 4 bit adalah karena
mikroprosessor ini hanya mampuh mengolah data 4 bit.
2.2 Mikroprosessor 8 bit
Mikroprosessor 8 bit merupaka mikroprosessor standard yang memperguanakan
teknologi
PMOS
atau
NMOS
dan
umumnya
berupa
mikroprosessor
monolitik.
Mikroprosessor ini diperkenalkan pada tahun 1975. sifat khusus mirkoprosessor ini adalah :
Harga Murah, dengan kepadatan komponen sangat tinggi, daya yang cukup rendah tetapi
dengan kecepatan yang relatif rendah pula. Beberapa contoh diantaranya adalah : Motorola
6800, 6809, Intel 8080, 8085 dan Zilog Z-80 yang semuanya mempergunakan Teknologi
NMOS.
2.3 Prosessor Bipolar Jenis Bit – Slice
Dengan menpergunakan teknologi bipolar *Schottky TTL, ECL atau I2L) prosessor jenis
ini mempunyai kecepatan tinggi meskipun dengan kepadatan yang agak kurang. Dengan
menghubungkan paralel m buah prosessor bit slice dari n bit. Maka dapat diperoleh suatu
mikroprosessor dengan bit data (word length) = m x n bits. Contoh AMD 2903, Motorola
10800. keuntungan mikroprosessor ini adalah bersifat microprogrammable, mikroprogram
dapat dibuat oleh user.
2.4 Mikroprosessor CMOS
Dengan teknologi CMOS, maka mikroprosessor ini memerlukan daya paling kecil
dibandingkan dengan mikroprosessor yang mempergunakan teknologi lain. Kelemahan
mikroprosessor CMOS dibandingkan dengan jenis bipolar adalah dalam ini kecepatan. Untuk
mengatasi kekurangan ini telah dikembangkan mikroprosessor jenis CMOS-SOS dan HSCMOS yang mempunyai kecepatan kira-kira sama dengan jenis TTL Schottku tetapi dengan
kebutuhan daya jauh lebih rendah. Contoh MC 14500, 1802 dan 8085. MC14500B
merupakan suatu mikroprosessor 1 bit yang dikenal dengan nama Industial Control Unit
(ICU).
2.5 Mikroprosessor Plus
Komponen ini merupakan jembatan antara mikroprosessor monolitik dan one – chip
microcomputer, suatu mikroprosessor plus umumnya mengandung sebuah MPU + RAM
atau Komponen lain, Misalnya MC6802 (Terdiri atas MPU + RAM + Clock) dan Intel 8035.
2.6 Single-Chip Microcomputer
Unit mirkokomputer (MCU = Mircocomputer Unit) ini telah mengandung unit
mirkoprosessor (MPU = Microprocessing Unit), Memori dan unit input output. Dengan
mempergunakan MCU ini, maka jumlah komponen yang diperlukan untuk membuat suatu
sistem
menjadi
makin
kecil.
Beberapa
contoh
one-chip
microcomputer
yang
mempergunakan teknologi NMOS adalah Motorola 6801 dan 6805, Intel 8041 dan 8049,
sedangkan yang mempergunakan teknologi CMOS yaitu : 87C41 dan 87C48 (Intersil) dan
Motorola 1468056.
2.7 Mikroprosessor 16
Pada mikroprosesor 16 bit, bagian ALU (Arithmetic Logic Unit), register dalam dan
sebagian besar intruksinya dirancang untuk dapat berkeja dengan binary words sebesar 16.
mikroprosessor ini makin populer dan terlihat mulai menggeser mikroprosessor 8 bit dalam
kedudukannya sebagai mikroprosessor standard. Beberapa jenis mikroprosessor 16 bit yang
cukup dikenal adalah : 8086, 8088, 80186, 80188, 80286, 80288 (intel), Motorola MC68000,
Zilog Z8000 dan Texas Instruments 9900. Mikroprosessor 8086 mempunyai bus data 16 bit,
sehingga dapat menulis atau membaca data ke/dari memori atau port input/output sebesar
16 bit atau 8 bit setiap saat, mikroprosessor ini mempunyai bus alamat 20 bit, sehingga
dapat mengalamati sebanyak 220 = 1,048,57626 lokasi memori.
2.8 Mikroprosessor 32 bit
Dengan Perkembangan yang pesat dalam teknologi rangkaian terintegrasi jenis VLSI,
maka teknologi mikroprosessor berkembang pula dalam arah jumlah bit data yang makin
meningkat disamping peningkatan dalam segi kemampuan lainya. Pada sekitar tahun
1984/1985 telah diperkenalkan mikroprosessor 32 bit, yang dapar bekerja dengan memori
dalam orde Mega byte. Contohnya NS32032, Motorola 68020, Western Electric WE32000.
2.9 Mikroprosessor 64 bit
Mikroprosessor ini diperkenalkan pada tahun 2002 pertamakali Oleh AMD. Dengan
menggunakan mikroprosessor 64 bit dapat bekerja dengan memori dalam orde giga byte
bahkan sampai tera byte. Mikroprosessor ini dikenal dengan sebutan prosessor64.
Kemampuan mikroprosessor 64 bit dapat mengolah gambar dalam bentuk tiga dimensi.
BAB II
PENGERTIAN UMUM
1. Mikroprosessor
 Mikroprosessor adalah Central Processing Unit dari sebuah computer, tanpa memori,
I/O unit, dan peripheral yang dibutuhkan oleh suatu system lengkap. Sebagai contoh
8088 dan 80x86 adalah suatu mikroprosessor yang membutuhkan perangkat
pendukung berupa RAM, ROM dan I/O unit.
 Bila sebuah mikroprosessor dikombinasikan (CPU) dengan memori dan I/O unit dapat
juga dilakukan dalam level chip yang menghasilkan single chip mikrokomputer (SCM)
untuk membedakannya dengan mikrokomputer. Untuk selanjutnya karena fungsinya
SCM dapat disebut mikrokontroller.
2. CPU (Central Prossesing Unit)
 Unit Pengelola pusat (CPU) terdiri atas dua bagian, yaitu unit pengendali (Control
Unit) serta aritmatika dan logika (ALU). Fungsi utama unit pengendali adalah
mengambil, mengkode, dan melaksanakan urutan intruksi sebuah program yang
tersimpan dalam memori. Unit pengendali mengatur urutan operasi seluruh system.
Unit juga menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk
menyerempakkan operasi, juga aliran dan intruksi program.
 Unit Pengontrol mengendalikan aliran informasi pada bus data dan bus alamat,
dilanjutkan dengan menafsirkan dan mengatur sinyal yang terdapat pada bus
pengendali. Unit aritmatika dan logika melaksanakan pengelohan data secara
aritmatika (aljabar) dan secara logika (fungsi OR, NOT, AND, dan XOR).
3. Bus Alamat
 Apabila suatu alat dihubungkan dengan mikrokontroller tersebut, maka harus
ditetapkan terlebih dahulu alamat (address) dari alat tersebut. Hal ini bertujuan untuk
menghindari terjadinya dua lata yang berkerja bersamaan yang mungkin dapat
menyebabkan kesalahan/keruskan.
 Alat penyimpan data (memori), baik RAM maupun ROM, juga mempunyai alamat
tersendiri, RAM 8 Kbyte memiliki 8 x 1024 alamat, dimana setiap alamat dapat di isi
data 1byte.
4. Bus Data
 CPU mikrokontroller AT89S51 adalah prosesor 8 bit, lebar Bus data AT89S51
adalah 8 bit sehingga memerlukan 8 pin (D0…D7). Akan tetapi, karena jumlah pin
mikrokontroller terbatas, pin data ini tidak dapat dikeluarkan, hanya didalam chip.
Bus data internal terhubung ke alat (dunia luar) melalui port I/O.
 Pin untuk bus data dimultipleks dengan alamat A0…A7 pada port 0. karena itu
port 0 seringkali ditulis sebagai AD0…AD7. setiap bit data memiliki bobot masingmasing, tergantung pada letaknya. Sebagai contoh untuk data 8 bit adalah :
Data
Bobot Hexa
D7
80
D6
40
D5
20
D4
10
D3
08
D2
04
D1
02
D0
01
 Karena menggunakan bus data yang lebarnya 8 bit, lebar bus data 8 bit juga
digunakan oleh alat-alat lain seperti EPROM, RAM, ADC, PIO dan lain-lain.
5. Bus Kontrol
 Selain bus alamat dan bus data, mikroprossesor/mikrontroller dilengkapi juga
dengan bus pengendali (bus control). Guna pengendali ini adalah untuk
menyerempakkan
operasi
mikroprossesor/mikrokontroller
dengan
operasi
rangkain luar.
 Pada mikrokontroller MCS`51 terdapat beberapa pin yang berguna untuk
mengendalikan system, diantaranya adalah ALE, PSEN, WR, RD, Interupt dan
lain-lain. Setelah mikrokontroller mengirim alamat (A0…A7) ke penahan alamat
(latch 74LS373), penahan pengendali ALE akan dibuat tinggi agar alamat
tersebut ditahan. Setelah itu pin PSEN akan rendah untuk dapat membaca
EPROM, karena alamat (A0…A7) sudah ditahan oleh latch, port 0 sekarang
dapat digunakan untuk memasukan data dari EPROM ke mirkokontroller
6. Memori
 Suatu sistem mikroprossesor/mikrokontroller maupun komputer memerlukan
memori
untuk
tempat
menyimpan
program/data.
Pada
mikroprossesor/mikrokontroller, tempat menyimpan program/data adalah pada
ROM/EPROM. Sedangkan pada PC (computer) program disimpan dalam disket
atau hardisk.
 Ada beberapa tingkatan memori, diantaranya adalah register internal, memori
utama, dan memori massal, register internal adalah memori di dalam ALU. Waktu
akses register sangat cepat umumnya kurang dari 100ns. Memori utama adalah
memori suatu system. Ukurannya berkisar antara 4 Kbyte sampai 64Kbyte.
Waktu akses lebih lambat dibandingkan register internal, yaitu antara 200 sampai
1000ns. Memori massal dipakai untuk menyimpan berkapasitas tinggi, biasanya
berbentuk disket, pita magnetic, atauk kaset.
7. RAM
 RAM (Random Acces Memory) adalah memori yang dapat dibaca atau ditulis.
Data dalam RAM akan terhapus (bersifat Volatile) bila catu daya dimatikan. Oleh
karena sifat RAM yang volalite ini, maka program mikroprossesor/mikrokontroller
tidak tersimpan dalam RAM. RAM hanya digunakan untuk menyimpan data
sementara, yaitu data yang tidak begitu vital bila hilang akibat aliran daya
terputus.
 Ada dua teknologi yang dipakai untuk membuat RAM, yaitu RAM static dan RAM
dinamik. Dalam RAM static, satu bit infromasi disimpan dalam sebuah flip-flop.
RAM static tidak memerlukan penyegar dan penangannanya tidak terlalu rumit. Isi
dari RAM tetap tersimpan selama daya diberikan. Dua contoh RAM static adalah
6116 dan 6264 yang masing-masing berkapasitas 2 kb dan 8 kb.
 RAM dinamik menyimpan bit informasi sebagai muatan. Sel memori elemeter
dibuat dari kapasitansi gerbang substrat transistor MOS. Keuntungan RAM
dinamik adalah sel-sel memori lebih kecil sehingga memerlukan tempat yang
lebih sempit, sehingga RAM dinamik menjadi lebih kecil dibandingkan dengan
RAM static. Contoh RAM dinamik adalah 4116 yang berkapasitas 16384 x 1 bit.
 Kerugian menggunakan RAM dinamik adalah bertambahnya kerumitan pada
papan memori, karena diperlukan rangkaian untuk proses penyegaran (refresh).
Proses penyegaran untuk kapasitor ini dilakukan setiap 1 atau 2 mili detik.
8. ROM
 ROM (Read Only Memory) merupakan memori yang hanya dapat dibaca. Data
dalam ROM tidak akan terhapus meskipun catu daya diputuskan (bersifat
nonvolalite) karena sifatnya yang demikian, ROM digunakan untuk menyimpan
program.
 Ada beberapa tipe ROM, diantaranya adalah ROM, PROM, EPROM, dan
EEPROM, ROM adalah memori yang sudah deprogram oleh pabrik, PROM
(Programable Read Only Memori) dapat diprogram oleh pemakai, tetapi hanya
sekali program saja atau yang disebut OTP (One Time Programmable),
alternative lain adalah menggunakan EPROM (Eraseable Programmable Read
Only Memory), yaitu PROM yang dapat diprogram ulang. Isi EPROM dihapus
dengan menggunakan sinar Ultra Violer. Isi EPROM setelah dihapus akan
berlogika 1. pemograman EPROM adalah mengubah logika 1 menjadi 0.
EEPROM (Electrical Eraseable Programmable Read Only Memory) yaitu PROM
yang dapat diprogram ulang. Isi program dihapus menggunakan suatu tegangan
listrik.
9. Input/Output
 Untuk melakukan hubungan dengan peranti diluar sistem, dibutuhkan alat I/O
(input/output). Sesuai dengan namanya, alat I/O dapat menerima data dari
mikroprosessor/mikrokontroller.
 Ada dua macam perantara I/O yang dipakai, yaitu peranti untuk hubungan serial
(UART) dan piranti untuk hubungan parallel (PIO). Pada mikrokontroller MCS`51
kedua macam I/O tersebut sudah tersedia didalamnya.
 UART adalah perantara serial universal. UART (Universal Asynchronous receiver
transmitter) yang merupakan pengirim penerima tak serempak universal. Kerja
UART adalah mengubah masukan parallel menjadi keluaran serial. UART adalah
mengubah masukan serial menjadi keluaran parallel dan mengubah masukan
parallel menjadi serial.
 PIO (Paralel Input Output) merupakan perantara untuk hubungan data dalam
format parallel. PIO adalah alat yang dapat deprogram dan menyediakan
perantara masukan dan keluaran dasar untuk data parallel 8 bit.
BAB III SISTEM BILANGAN
Sistem bilangan desimal atau denary, yaitu sistem bilangan dengan basis 10, yang
mempunyai 10 buah simbol yaitu 0,1,2,...,9. tetapi sistem ini tidak selalu merupakan pilihan
terbaik untuk setiap aplikasi. Sistem biner yang lebih sederhana pilihan lebih cocok
digunakan pada elektronika digital. Sistem biner merupakan sistem bilangan berbasis 2 dan
hanya mempunyai dua simbol yaitu 1 dan 0. sistem lain yang sering digunakan adalah
sistem bilangan dengan basis 8 atau oktal dan sistem bilangan dengan basis 16 atau
heksadesimal.
1.
SISTEM BILANGAN DESIMAL DAN BINER
Dalam sistem denary, yang lebih dikenal dengan sistem bilangan desimal, nilai yang
terdapat pada kolom ketiga pada tabel dibawah yaitu A disebut satuan, kolom kedua yaitu B
disebut puluhan, C disebut ratusan dan seterusnya. Kolom A,B,C menunjukkan kenaikan
pada eksponen dengan basis 10 yaitu 100 = 1, 101 = 10, 102 = 100.
Tabel 3.1 Tabel Eksponensial Bilangan Desimal
C
B
A
102
101
100
Ratusan
Puluhan
Satuan
Setiap kolom pada sistem bilangan biner, yaitu sistem bilangan dengan basis 2,
menunjukkan eksponen dengan basis 2 yaitu 20 = 1, 21 = 2, 22 = 4 dan seterusnya. Setiap
digit biner disebut bit, bit paling kanan disebut Least Significant Bit (LSB) dan bit paling kiri
disebut Most Significant Bit (MSB)
Tabel 3.2 Tabel Bilangan Biner
Desimal
0
1
2
3
4
5
6
7
Biner
C
(4)
0
0
0
0
1
1
1
1
B
(2)
0
0
1
1
0
0
1
1
A
(1)
0
1
0
1
0
1
0
1
a.
Konversi Desimal ke biner
Konversi bilangan desimal ke biner dapat dilakukan dengan kombinasi intuis dan
metode coba-coba (trial and error). Bilangan desimal yang diketahui dipisah-pisahkan
kedalam sejumlah bilangan pangkat dengan basis 2.
Tabel 3.3 Konversi bilangan desima ke biner
Bilangan
Desimal
Kolom Biner
25
24
23
22
21
20
Bilangan
Biner
15
0
0
1
1
1
1
001111
22
0
1
0
1
1
0
010110
45
1
0
1
1
0
1
101101
52
1
1
0
1
0
0
110100
Sebagai Contoh 2210 nilainya lebih kecil dari 25(=32), maka bit 0 akan ditempatkan
pada kolom tersebut. Tetapi 22 lebih besar dari 24 (=16), sehingga bit 1 ditempatkan pada
kolom tersebut. Sisanya adalah 22 – 16 = 6 yang lebih besar dari 2 2 (= 4) sehingga bit 1
ditempatkan pada kolom tersebut, sehingga sisanya 6 – 4 = 2 sisa ini akan menghasilkan bit
1 yang harus dipasang pada kolom 21 (= 2) dan bit 0 ditempatkan pada kolom 20 (= 1)
sehingga bilangan 2210 = 0101102.
Cara lain adalah dengan pembagian. Bilangan desimal yang akan diubah secara
berturut-turut dibagi 2, dengan memperhatikan sisa pembagiannya. Sisa pembagian akan
bernilai 0 atau 1 yang akan membentuk bilangan biner dengan sisa yang terakhir
menunjukkan MSBnya, sebagai Contoh untuk mengubah 5210 menjadi bilangan biner,
diperlukan langkah-langkah berikut :
52/2 = 26 sisa 0, LSB
26/2 = 13 sisa 0
13/2 = 6 sisa 1
6/2 = 3 sisa 0
3/2 = 1 sisa 1
1/2 = 0 sisa 1, MSB
b.
Konversi Bilangan Biner ke Bilangan Desimal
Untuk mengubah bilangan biner ke dalam bilangan desimal yaitu dengan
menggunakan subskrip contoh mengubah bilangan biner 11102 ke dalam bilangan desimal.
11102 = 1 x 23 + 1 x 22 + 1 x 21 + 0 x 2 1
= 8 + 4 + 2 + 0 = 1410
2.
BILANGAN OKTAL
Bilangan oktal adalah sistem bilangan yang berbasis 8 dan mempunyai delapan
simbol bilangan yang berbeda yaitu 0, 1, 2, ..., 7. kolom oktal pada suatu bilangan
menunjukkan eksponen dengan basis 8 yaitu :
Tabel 3.4 Tabel Eksponensial Bilangan Oktal
Kolom D
3
a.
Kolom C
Kolom B
Kolom A
8
8
2
8
1
80
512
64
8
1
Konversi Bilangan Desimal ke Oktal
Teknik pembagian yang berurutan dapat digunakan untuk mengubah bilangan
desimal menjadi bilangan oktal. Bilangan desimal yang akan diubah secara berturut-turut
dibagi dengan 8 dan sisa pembagiannya harus selalu dicatat. Sebagai contoh untuk
mengubah bilangan 581910 ke oktal, langkah-langkahnya adalah :
5819/8 = 727 sisa 3, LSB
727/8 = 90 sisa 7
90/8 = 11 sisa 2
11/8 = 1 sisa 3
1/8 = 0 sisa 1, MSB
b.
Konversi Bilangan Oktal ke Biner
Untuk konversi bilangan oktal ke biner dapat dilakukan dengan cara memisahkan
setiap digit bilangan oktal dan setiap digit bilangan oktal dapat disajikan dengan 3 digit
bilangan biner.
Tabel 3.5 Tabel Bilangan Oktal ke Biner
Oktal
Biner
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
Sebagia Contoh 35278 .... 2
38 = 0112, MSB
58 = 1012
28 = 0102
78 = 1112, LSB
Sehingga bilangan oktal 3527 sama dengan bilangan biner 011 101 010 111.
c.
Konversi Bilangan Biner ke Bilangan Oktal
Sebaliknya pengubahan dari bilangan biner ke bilangan oktal dilakukan dengan
mengelompokkan setiap tiga digit biner dimulai dari digit paling kanan (LSB). Kemudian
setiap kelompok diubah secara terpisah ke dalam bilangan oktal. Sebagai contoh, bilangan
111100110012 akan dikelompokkan menjadi 11 110 011 001, sehingga
112 = 38 MSB
1102 = 68
0112 = 38
0012 = 18, LSB
Jadi bilangan biner 11110011001 apabila diubah menjadi bilangan oktal akan diperoleh
36318.
3.
BILANGAN HEKSADESIMAL
Bilangan heksadesimal, sering disingkat dengan hex adalah bilangan dengan basis
16 dan mempunyai 16 simbol yang berbeda
Tabel 3.6 Tabel Bilangan Heksadesimal ke Desimal
Heksadesimal
Desimal
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
A
10
B
11
C
12
D
13
E
14
F
15
Bilangan yang lebih besar dari 1510 memerlukan lebih dari satu digit hex. Kolom
heksadesimal menunjukkan eksponen dengan basis 16, yaitu 160 = 1, 161 = 16, 162 = 256
dan seterusnya. Sebagai contoh 152B16 = ..........10
152B16 = (1 x 163) + (5 x 162) + (2 x 161) + (11 x 160)
= 1 x 4096 + 5 x 256 + 2 x 16 + 11 x 1
= 4096 + 1280 + 32 + 11
= 541910
Sebaliknya untuk mengubah bilangan desimal menjadi bilangan heksadesimal, dapat
dilakukan dengan cara membagi bilangan desimal tersebut dengan 16. sebagai contoh untuk
mengubah bilangan 340910 menjadi bilangan heksadesimal, dilakukan dengan langkahlangkah sebagai berikut :
3409/16 = 213 sisa 110 = 116 LSB
213/16 = 13 sisa 510 = 516
13/6 = 0 sisa 1310 = D16, MSB
sehingga 340910 = D5116
a.
Konversi Heksadesimal ke biner
Setiap digit pada bilangan heksadesimal dapat disajikan dengan empat buah bit
seperti terlihat pada tabel dibawah ini
Tabel 3.7 Tabel Konversi Heksadesimal ke Biner
Heksadesimal
Biner
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
A
1010
B
1011
C
1100
D
1101
E
1110
F
1111
untuk mengubah bilangan heksadesimal menjadi bilangan biner, setiap digit dari bilangan
heksadesimal diubah secara terpisah ke dalam empat bit bilangan biner. Sebagai contoh
2A5C16 dapat diubah ke bilangan biner sebagai berikut :
216 = 0010, MSB
A16 = 1010
516 = 0101
C16 = 1100, LSB
sehingga bilangan heksadesimal 2A5C akan diubah menjadi bilangan biner 0010 1010 0101
1100.
Sebaliknya bilangan biner dapat diubah menjadi bilangan heksadesimal dengan cara
mengelompokkan setiap empat digit dari bilangan biner tersebut dimulai dari digit paling
kanan. Sebagai contoh 01001111010111002 dapat dikelompokan menjadi 0100 1111 0101
1110 sehingga
01002 = 416 MSB
11112 = F16
01012 = 516
11102 = E16 LSB
dengan demikian bilangan 01001111010111002 = 4F5E16
4.
GERBANG LOGIKA
Gerbang Logika adalah piranti yang mempunyai dua kondisi yaitu kondisi dengan
tegangan 0 volt menyatakan logika 0 (low) dan kondisi dengan tegangan 5 volt menyatakan
logika 1 (High). Gerbang logika dapat mempunyai beberapa masukan yang masing-masing
mempunyai salah satu dari dua kondisi logika yaitu 0 atau 1. gerbang logika dapat
digunakan untuk melakukan fungsi-fungsi khusus, misalnya AND, OR, NAND, NOR, NOT
dan EXOR
a.
Gerbang NOT
Gerbang NOT merupakan gerbang satu masukan dan satu keluaran yang berfungsi
sebagai pembalik (inverting). Jika masukannya High maka keluarannya Low dan sebaliknya.
A
A
Gambar 3.1 Gerbang Logika NOT
Tabel 3.8 Tabel Kebenaran Gerbang NOT
A
A
0
1
1
0
b.
Gerbang AND
Gerbang AND digunakan untuk menghasilkan logika 1 jika semua masukan
mempunyai logika 1, jika tidak maka akan menghasilkan logika 0
A
B
A.B
Gambar 3.2 Gerbang Logika AND
Tabel 3.9 Tabel Kebenaran Gerbang AND
c.
A
B
A.B
0
0
0
1
0
0
0
1
0
1
1
1
Gerbang OR
Gerbang OR akan memberikan keluaran 1 jika salah satu dari masukkanya pada
kondisi 1. jika di inginkan keluaran bernilai 0 maka semua masukan harus dalam kondisi 0.
A
B
A+B
Gambar 3.3 Gerbang Logika OR
Tabel 3.10 Tabel Kebenaran Gerbang OR
d.
A
B
A+B
0
0
0
1
0
1
0
1
1
0
0
1
Gerbang NAND
Gerbang NAND akan mempunyai keluaran 0 jika semua masukan pada logika 1.
sebaliknya jika ada sebuah logika 0 pada sembarang masukan gerbang NAND, maka
keluarannya akan bernilai 1.
A
A*B
B
Gambar 3.3 Gerbang Logika NAND
Tabel 3.11 Tabel Kebenaran Gerbang NAND
e.
A
B
A∗B
0
0
1
0
1
1
1
0
1
1
1
0
Gerbang NOR
Gerbang NOR akan memberikan keluaran 0 jika salah satu dari masukkannya pada
kondisi 1. Jika diinginkan keluaran bernilai 1, maka semua masukkan harus dalam kondisi 0.
A
B
A+B
Gambar 3.4 Gerbang Logika NOR
Tabel 3.12 Tabel Kebenaran Gerbang NOR
f.
A
B
AB
0
0
1
1
0
0
0
1
0
1
1
1
Gerbang XOR
Gerbang XOR akan memberikan keluaran 1 jika masukkannya mempunyai keadaan
yang berbeda.
A
B
A + B
Gambar 3.4 Gerbang Logika XOR
Tabel 3.13 Tabel Kebenaran Gerbang XOR
A
B
AB
0
0
0
1
0
1
0
1
1
1
1
0
BAB IV
MIKROKONTROLLER
Mikrokontroller secara teknologi dibedan menjadi 2 yaitu teknologi RISC (Reduced
Instruction set Computing) yaitu teknologi yang memiliki sedikit instruksi set namun memiliki
kelebihan dalam hal memori, peripheral dan fungsinya, sedangkan teknologi CISC (Complex
Instruction Set Computing) yaitu teknologi yang memiliki banyak instruksi set namun tidak
memiliki kelebihan dalam hal memori, peripheral dan fungsinya dibandingkan dengan yang
menggunakan teknologi RISC. Mikrokontroller yang termasuk dalam kelompok RISC dan
CISC adalah sebagai berikut :
a.
Mikrokontroller yang menggunakan Teknologi RISC
●
AVR (ATMega8535)
●
AT89S8253, AT89LP213, AT89LP214
●
PIC12C508, PIC12C509, PIC12C518, PIC12C519
●
Basic Stamp (BS2PX, BS2P24,BS2Pe)
●
Motorolla (MC68HC11, MC68HC12)
b.
Mikrokontroller yang menggunakan Teknologi CISC :
●
AT89C51, AT89C52, AT89C55
●
AT89C205, AT89C4051
●
AT89S51, AT89S52
●
8051, 8052
1.
Arsitektur dan Peripheral Mikrokontroller
a.
Arsitektur dan Perihperal AT89S51
●
Kompatibel dengan Mcs`51
●
4Kbyte Flash Memory (ISP) In-System Programmable 1000 kali ditulis dan dihapus
●
Tegangan Operasional 4.0 Volt – 5.5 Volt
●
Range Frekuensi 0Hz – 33 Mhz
●
128 x 8 bit Internal RAM
●
32 Jalur I/O
●
Dua Timer/Counter 16 Bit
●
6 sumber Interupt
●
Full Duplex Serial UART
●
Watchdog Timer
●
2 Data Pointer
Gambar 4.1 Konfigurasi Pin AT89S51
Gambar 4.2 Diagram Blok AT89S51
b
Arsitektur AT89C51
Mikrokontroller AT89C51 memiliki beberapa fasilitas sebagai berikut :
• Sebuah CPU (Central Prosesing Unit) 8 bit yang termasuk keluarga MCS-51TM
• Osilator Internal dan rangkain timer
• Flash memori 4 Kbyte
• RAM internal 128 byte
• Empat buah programmable port I/O, masing-masing terdiri dari atas 8 buah jalur I/O
• Lima buah Jalur interupsi (2 buah interupsi eksternal dan 3 buah internal)
• Sebuah Port serial dengan control serial full duplex UART
• Kemampuan melaksanakan operasi perkalian, pembagian, penjumlahan dan operasi
Boolean (bit)
• Kecepatan pelaksanaan intruksi per siklus 1 mikrodetik pada frekuensi clock 12 Mhz.
Gambar 4.3 Konfigurasi pin AT89C51
Gambar 4.4 Diagram AT89C51
c.
Arsitektur Mikrokontroller AT89S8253
●
Kompatibel dengan Mcs`51
●
12Kbyte Flash Memory (ISP) In-System Programmable 1000 kali di tulis dan di hapus
●
2Kbyte EEPROM Data Memory 1000 Kali di tulis dan di hapus
●
Tegangan Operasional 2.7 Volt – 5.5 Volt
●
Range Frekuensi 0Hz – 24 Mhz
●
64 Byte User Signature Array
●
256 x 8 bit Internal RAM
●
32 Jalur I/O
●
Tiga Timer/Counter 16 Bit
●
9 sumber Interupt
●
Full Duplex Serial UART
●
Watchdog Timer
●
2 Data Pointer
Gambar 4.5 Konfigurasi Pin AT89S8253
Gambar 4.6 Diagram Blok AT89S8253
d.
Arsitektur dan Peripheral PIC12C5XX
●
Memiliki hanya 33 intruksi
●
Intuksi dikerjakan dalam satu siklus (1uS)
●
Clock External 4 Mhz
●
Lebar Instruksi 12 Bit
●
Lebar data 8 bit
●
7 Spesial Fungsi Register Hardware
●
Memiliki Direct, Indirect Relative pengalamatan Mode untuk data dan intruksi
●
In-Circuit Serial Programming
●
8 bit Realtime Timer/Counter
●
Device Reset Timer
●
1Kbyte ROM dan bisa di hapus dan di tulis 1000 kali
●
Data yang di simpan di ROM(EEPROM) bisa bertahan lebih dari 40 tahun
Gambar 4.7 Konfigurasi Pin PIC12C5XX
Gambar 4.8 Blok Diagram PIC12C5XX
e.
Arsitektur dan Peripheral Basic Stamp
Gambar 4.9 Konfigurasi Pin Basic Stamp
BAB V
ARSITEKTUR AT89S51
Mikrokontroler jika di terjemahkan secara harfiah berarti pengendali yang berukuran
mikro. Sekilas mikrokontroler hampir sama degan mikroprosesor. Namun mikrokontroler
memiliki banyak komponen yang terintegrasi didalamnya, misalnya timer/counter. Sedangkan
pada mikroprosesor, komponen tersebut tidak terintegrasi. Mikroprosesor umumnya kita
jumpai pada komputer dimana tugas dari mikroprosesor adalah untuk memproses berbagai
macam data input maupun output dari berbagai sumber. Mikrokontroler lebih sesuai untuk
tugas-tugas yang lebih spesifik.
MCS-51 pertama kali dikembangkan oleh intel Corporation pada tahun 70-an
sehingga dapat dibilang usia MCS-51 sudah lebih dari 30 tahun. MCS-51 salah satu keluarga
mikrokontroler yang sampai sekarang masih banyak dikembangkan oleh berbagai produsen
semacam Atmel Corp, Philips Semiconductors, Cygnal Integrated Product Inc, dan Winbond
Electronics Corp. berbagai kemapuan yang dimiliki MCS-51 Masih terus di tingkatkan. Pada
awalnya MCS-51 dibuat dalam dua bersi NMOS dan CMOS. Namun akhirnya hanya versi
CMOS yang tersedia dipasaran saat ini.
1.
BEBERAPA VARIAN IC MCS-51 DAN FITURNYA
Keluraga MCS-51 telah berkembang pesat dan memiliki berbagai macam varian.
Perbedaan antar varian keluarga MCS-51 dapat dikelompokan dalam 8 bagian yaitu :
1. Tegangan Kerja
Tegangan kerja AT89LV55 buatan Atmel mampu beroperasi dengan tegangan kerja 2,7 –
6 Volt. Seri P89LPC9xx buatan Philips memiliki tegangan kerja 2,4 – 3,6 Volt.
2. Memori dan Pemrograman
Internal program memory yang dimiliki AT89C51 sebesar 4KB sedangkan internal data
memory yang dimilikinya sebesar 256 byte. Tipe C8051F12X buatan Cygnal memiliki
internal program memory 128 KB sedangkan internal data memory yang dimilikinya
sebesar 8448 byte. Tidak hanya kapasitas memori, tipe memory yang digunakan pun
bervariasi yaitu :

OTP (One Time Programmable) atau Mask ROM (Read Only Memory)

MTP
(Multiple
Time
programmable ROM)
Programmable
UVEPROM
(Ultra
Violet
Erasable

MTP Flash/EEPROM
Cara penulisan internal program memory pun bervariasi antara lain : In Circuit
Programming (ICP), In Application Programming (IAP), In System Programming (ISP)
dan Parallel Programming (PP).
3. Kecepatan
Dalam hal kecepatan ada dua satuan yang digunakan. Beberapa produsen menggunakan
satuan MHz (MegaHertz), sedangkan yang lain menggunakan satuan MIPS (Million
Instructions Per Second). AT83C5111 memiliki frekuensi maksimum 66 MHz sedangkan
C8051F120 buatan Cygnal mampu memproses 100 MIPS. Clock rate umunya bernilai 12,
yang berarti internal clock beroperasi 1/12 dari frekuensi sumber clock atau 1 cycle
membutuhkan 12 pulsa clock. IC buatan Cygnal memiliki clock rate 1 diman 1 cycle
membutuhkan 1 pulsa clock.
4. Timer/Counter
Timer/Counter yang dimiliki varian MCS-51 dapat berjumlah hingga 5 buah, contohnya
P89LPC932 buatan Philips. Beberapa varian bahkan memiliki fasilitas Pulse Width
Mudulation (PWM), Programmable Counter Array (PCA) dan WatchDog Timer.
5. Interrupt
Tipe P89LPC932 buatan Philips memiliki interrupt source : External interrupt 0 dan 1
timer 0 dan 1, serial port Tx, serial port Rx, combined serial port Rx/Tx, brownout detect,
watchdog/Real-Timer clock, keyboard, comparator 1 dan 2, SPI (Serial Pheriperal
Interface), CCU (Capture Compare Unit), dan data EEPROM write completion. Tipe
tersebut memiliki interrupt level/p[riority hingga 4 tingkat.
6. Serial Interface
Serial interface yang banyak didukung MCS-51 adalah Universal Asynchronous Receiver
Transmitter (UART). Namun varian yang lebih baru juga memiliki interface I2C (Inter
Integrated Circuit) atau Two Wire Interface, SPI, CAN (Control Area Network) bahkan
USB (Universal Serial Bus).
7. I/O
Jumlah pin yang berfungsi sebagai digital input/output pada IC buatan Cygnal dapat
berjumlah mulai 8, 16, 32 dan 64 pin.
8. Special Function
Selain berbeda kapasistas memori, kecepatan, jumlah timer, interface dan jalur
input/output, varian MCS-51 juga memiliki kemampuan yang spesifik. Beberapa
kemampuan yang terdapat pada varian MCS-51 antara lain :

ADC hinga 12 bit 32 channel pada C8051F20 buatan Cygnal

8 Keyboard interrupt, Power-On Reset pada P87LPC768 buatan Philips.

W925E/C240 dan W925E/C625 buatan Winbond memiliki DTMF generator/receiver
dan FSK generator receiver yang terintegrasi.
Mikrokontroller AT89S51 termasuk dalam keluarga MCS-51TM dari intel. Sebuah
mikrokontroller tidak dapat bekerja bila tidak diberi program kepadanya. Program tersebut
memberitahu mikrokontroller apa yang harus dilakukan. Salah satu keunggulan dari AT89S51
adalah dapat diisi ulang dengan program lain sebanyak 1000 kali pengisian. Intruksi-intruksi
perangkat lunak berbeda untuk masing-masing jenis mikrokontroller. Intruksi-intruksi hanya
dapat dipahami oleh jenis mikrokontroller yang bersangkutan. Intruksi-intruksi tersebut
dikenal sebagai bahasa pemograman system mikrokontroller.
Sebuah mikrokontroller tidak dapat memahimi intruksi-intruksi yang berlaku pada
mirkrokontroller lain. Sebagai contoh, mikrokontroller buatan intel dengan mikrokontroller
buatan Motorola memiliki perangkat intruksi yang berbeda.
2.
Karakteristik mikrokontroller AT89C51
Mikrokontroller AT89C51 memiliki beberapa fasilitas sebagai berikut :
• Sebuah CPU (Central Prosesing Unit) 8 bit yang termasuk keluarga MCS-51TM
• Osilator Internal dan rangkain timer
• Flash memori 4 Kbyte
• RAM internal 128 byte
• Empat buah programmable port I/O, masing-masing terdiri dari atas 8 buah jalur I/O
• Enam buah Jalur interupsi (3 buah interupsi eksternal dan 3 buah internal)
• Sebuah Port serial dengan control serial full duplex UART
• Kemampuan melaksanakan operasi perkalian, pembagian, penjumlahan dan operasi
Boolean (bit)
• Kecepatan pelaksanaan intruksi per siklus 1 mikrodetik pada frekuensi clock 12 Mhz.
• ISP Programming
• Memiliki 2 DPTR
• WatchDog Timer
• Low Power Idnle dan Power-Down Mode
Ü
Diskripsi Kaki (Pin) AT89S51
Susunan pin-pin mikrokontroler AT89S51 diperlihatkanan pada gambar dibawah ini.
Penjelasan dari masing-masing pin adalah sebagai berikut :
Gambar 5.1 Konfigurasi Pin AT89S51
a.
Pin 1 sampai 8 (port 1) merupakan prot paralel 8 bit dua arah (input-output) yang
digunakan sebagai keperluan general purpose. P1.5, P1.6 dan P1.7 selain digunakan
sebagai I/O. Juga digunakan sebagai masukkan untuk pengisian program ke dalam IC
AT89S51.
b. Pin 9 (Reset) adalah intrupsi reset (aktif high) perpindahan kondisi rendah ke tinggi akan
mereset AT89S51. Pin ini dihubungkan dengan rangkaian power on reset
c. Pin 10 sampai 17 (port 3) adalah port paralel 8 bit dua arah (input-output) yang memiliki
fungsi pengganti. Fungsi pengganti meliputi :
d. Pin 18 dan 19 (XTAL1 dan XTAL2) adalah pin input osilator kristal, yang merupakan input
clock bagi rangkaian osilator internal
e. Pin 20 (ground) dihubungkan ke Vss atau Ground
f. Pin 21 sampai 28 (port 2) adalah port paralel 8 bit dua arah (input-output). Port 2 ini
mengirim byte alamat bila dilakukan pengaksesan memori ekternal
g. Pin 29 adalah pin PSEN (Program Strobe Enable) merupakan jalur control untuk
mengakses external program memory. PSEN akan bernilai low pada saat pembacaan
program dari external memory. PSEN akan bernilai high pada saat pembacaan program
dari internal memory.
h. Pin 30 adalah pin ALE (Address Latch Enable) berfungsi sebagai demultiplexer pada saat
port 0 bekerja sebagai multiplexed address/data bus.
i. Pin 31 EA merupakan pin yang berfungsi sebagai input control. Jika EA bernilai low
(dihubungkan ke ground), maka program hanya akan dijalankan dari external program
memory. Jika EA bernilai high (dihubungkan ke + 5 V), maka program akan dijalankan
dari internal program memory terlebih dahulu.
j. Pin 32 sampai 39 (port 0) merupakan port paralel 8 bit open drain dua arah. Bila digunakan
untuk mengakses memori luar, port ini akan memultipleks alamat memori dengan data
k. Pin 40 (Vcc) dihubungkan ke Vcc (+5 Volt)
Gambar 5.2 Blok Diagram AT89S51
3.
Organisasi Memori
Semua mikrokontroler dalam keluarga MCS-51 memiliki pembagian ruang alamat
(address space) untuk program dan data. Pemisahan memori program dan memori data
membolehkan memori data untuk diakses oleh alamat 8 bit. Meskipun demikian, alamat data
16 bit dapat dihasilkan melalui register DPTR (Data Pointer Register).
Ø
Memori Program
Memori program hanya dapat dibaca tidak bisa ditulisi (karena disimpan dalam Flash
Memori) berfungsi untuk menyimpan kode program user yang akan dijalankan. Memori
program dapat ditingkatkan sebesar 64 Kbyte dengan menambahkan memori eksternal. Sinyal
yang membolehkan pembacaan dari memori program eksternal adalah dari PSEN. Selain
berisi instruksi user juga memiliki beberapa alamat khusus yang ditujukan untuk reset address
(alamat yang dituju pada saat pertama kali mikrokontroler berkerja) dan interrupt vector
address. Alamat-alamat tersebut terdapat pada gambar dibawah ini.
0023H
Serial Interrupt
001BH
Timer 1 Interrupt
0013H
Program
Memory
External Interrupt 1
000BH
Timer 0 Interrupt
0003H
External Interrupt 0
0000H
Reset
Gambar 5.3 Memori Program
60 Kbyte External
Program Memory
4 Kbyte Internal
Program Memory
64 Kbyte External
Program Memory
Gambar 5.4 Konfigurasi Internal dan External Program Memory

Memori Data
Memori data internal dipetakan seperti pada gambar dibawah ruangan memorinya
dibagi dua bagian yaitu RAM 128 Byte serta SFR (Special Fungsi Register). Yang meliputi :
Register Banks, Bit-addressable, Scratch Pad Area dan SFR (Special Function Register).
FFH
Special Function Registers
80H
7FH
Scratch Pad Area
30H
2FH
Bit-addressabel
20H
1FH
Register Banks
00H
Gambar 5.5 Memori Data
 Scratch Pad Area
Sering disebut juga sebagai General Purpose RAM adalah ruang data memory yang
bebas digunakan oleh user sebagai tempat penyimpanan variable atau sebagai alamat
inisialisasi Stack Pointer. Scratch Pad Area hanya dapat diakses per byte.
 Bit-addressable
Bit-addressable memiliki fungsi yang sama dengan Scratch Pad Area. User juga dapat
menggunakan ruang ini untuk menyimpan variable atau alamat inisialisasi Stack
Pointer. Bit-addressable tidak hanya bisa di akses per byte tetapi bisa juga diakses per
bit.
 Register Banks
Internal data memory memuat 4 register banks : Register bank 0, Register bank 1,
Register bank 2 dan Register bank 3. Register banks ini digunakan sebagai alamat
untuk menampung delapan register yaitu R0 – R7. Alokasi alamat Register Bank
dapat dilihat pada gambar dibawah ini :
1FH
18H
17H
10H
0FH
08H
07H
Register Bank 3
Register Bank 2
Register Bank 1
Register Bank 0
00H
Gambar 5.6 Pembagian Register Banks
 Special Function Registers
Sesuai namanya Special Function Register (SFR) merupakan sejumlah register
khusus yang mencakup : alamat port, Accumulator, Register B, Timer dan sejumlah
register control. Ada beberapa dari SFR hanya dapat diakses/dialamati per byte
namun beberapa SFR juga dapat diakses per bit (bit-addressable) Gambar dibawah
menunjukan pembagian ruang SFR (Special Function Register).
FFH
F8H
F0H
E0H
D0H
B8H
B0H
A8H
86H
A2H
A0H
90H
8EH
8DH
8CH
8BH
8AH
89H
88H
87H
85H
84H
83H
82H
81H
80H
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Bit-addressable
Non Bit-addressable
Non Bit-addressable
Non Bit-addressable
Non Bit-addressable
Non Bit-addressable
Bit-addressable
Non Bit-addressable
Non Bit-addressable
Non Bit-addressable
Non Bit-addressable
Non Bit-addressable
Non Bit-addressable
Bit-addressable
B
ACC
PSW
IP
P3
IE
WDTRST
AUXR1
P2
P1
AUXR
TH1
TH0
TL1
TL0
TMOD
TCON
PCON
DP1H
DP1L
DP0H
DP0L
SP
P0
Gambar 5.7 Pembagian Special Fungsi Register
Tabel 5.1 Special Fungsi Register
Gambar 5 Special Function Register
5.4
Osilator
Mikrokontroller AT89S51 memiliki osilator internal yang dapat diguakan sebagai
sumber clock bagai CPU. Untuk menggunakan osilator internal diperlukan sebuah kristal
atau resonator keramik antara pin XTAL1 dan XTAL2 dan sebuah kapasitor ke ground.
Untuk kristalnya dapat digunakan frekuensi dari 6 sampai 24 Mhz. sedangkan untuk
kapasitor dapat bernilai antara 27 pF sampai 33pF.
C 1 33p F
X TAL1
12 M h z
X TAL2
C 2 33p F
Gambar 5.8 Konfigurasi Pemberian Clock
5
Interupt
Apabila CPU pada mikrokontroler AT89S51 sedang melaksanakan tugas suatu
program, kita dapat menghentikan pelaksanaan program tersebut secara sementara dengan
meminta interrupt. Apabila mendapat permintaan interrupt, program counter (PC) akan diisi
alamat vector interrupt, setelah interrupt selesai dilaksanakan maka CPU kembali ke program
utama yang ditingalkan.
Pada mikrokontroler AT89S51 terdapat beberapa saluran interrupt. Interrupt pada
AT89S51 dibedakan dalam dua jenis :
a. Interrupt yang tak dapat dihalangi oleh perangkat lunak (non maskable interrupt),
misalnya reset
b. Interrupt yang dapat dihalangi perangkat lunak (maskable interrupt). Contoh
interrupt jenis ini adalah INT0, INT1, Timer/Counter 1 serta interrupt serial.
Intruksi RETI harus digunakan untuk kembali dari layanan rutin interrupt. Intruksi ini
dipakai agar saluran interrupt kembali dapat dipakai. Alamat layanan rutin interrupt dari
setiap sumber diperlihatkan pada table dibawah
Tabel 5.2 Alamat Layanan Rutin Interrupt
Nama
Lokasi
Alat Interupt
Reset
00H
Power on Reset
INT 0
03H
INT 0
Timer 0
0BH
Timer 0
INT 1
13H
INT 1
Timer 1
1BH
Timer 1
Serial
23H
Port I/O serial
Mikorokontroler AT89S51 menyediakan 6 sumber interrupt, 3 interrupt eksternal, 2 interrupt
timer dan satu interrupt port serial. Interrupt eksternal INT 0, INT 1 dan Reset masing-masing
dapat diaktifkan berdasarkan level atau transisi.
 Interupt Enable
Sumber Interupt dapat diaktifkan dan dimatikan secara individual atau dengan
mengatur satu bit di SFR yang bernama IE (Interupt Enable). Bit-bit IE didefinisikan
sebagai berikut :
Jika akan mengaktifkan interrupt 0 (INT0), nilai yang harus diberikan ke IE adalah 81H (yaitu
memberikan logika 1 ke EA dan EX0).
 Prioritas Interupt
Setiap Sumber interrupt dapat interrupt secara individual menjadi satu atau dua tingkat
prioritas dengan mengatur bit SFR yang bernama IP, Interupt dengan prioritas rendah dapat
diinterupt oleh interrupt yang memiliki prioritas lebih tinggi, tetapi tidak bisa di interrupt oleh
interrupt dengan prioritas lebih rendah. Interrupt prioritas tertinggi tidak dapat diinterupt oleh
sumber interrupt lain.
Bila permintaan interrupt dengan tingkat prioritas berbeda diterima pada saat yang
sama, interrupt dengan prioritas lebih tinggi yang dilayani. Sedangkan bila prioritasnya sama,
maka akan dilakukan poling untuk menentukan mana yang dilayani. Bit-bit pada IP adalah
sebagai berikut :
5.6
Program Status Word
Program status word berisi beberapa bit status yang mencerminkan keadaan
mikrokontroller. Definisi daribit-bit dalam PSW dijelaskan dibawah ini
 RS0 dan RS1
RS0 dan RS1 digunakan untuk memilih bank register. Delapan buah register ini
merupakan register serbaguna yang memiliki alamat dari 00H sampai 1FH. Register
ini dapat diakses melalui symbol assembler (R0, R1, R2, R3, R4, R5, R6, R7).
Pemilihan bank register diperlihatkan pada tabel dibawah ini :
Tabel 5.3 Pemilihan Bank Register
Register R0 dan R1 dapat digunakan untuk pengalamatan tak langsung pada RAM internal.
Sisa register lainya tidak dapat digunakan untuk pengalamatan tak langsung.
 CY (Carry Flag)
Carry Flag bernilai ‘1’ jika sebuah penjumlah menghasilkan nilai lebih dari 255
(FFH) dan Carry Flag juga akan menghasilkan nilai ‘1’ jika operasi aritmatika
pengurangan menghasilkan nilai kurang dari ‘0’
 AC (Auxiliary Carry)
Auxiliary Carry Flag bernilai ‘1’ jika penjumlahan Binary Coded Decimal (BCD)
menghasilkan nilai lebih dari 9
 F0
Flag 0 merupakan general purpose flag yang dapat digunakan oleh user
 OV (Overflow Flag)
Overflow flag bernilai ‘1’ jika ada penambahan atau pengurangan signed number yang
menghasilkan nilai lebih dari +127 atau kurang dari -128. Jika proses penambahan
atau pengurangan tidak menggunakan signed number maka perubhana OV dapat
diabaikan
 P (Parity Flag)
Parity Flag digunakan untuk mengetahui jumlah ganjil bit yang bernilai ‘1’ pada
accumulator. Jika pada accumulator jumlah bit yang bernilai ‘1’ sama dengan ganjil
maka Parity Flag akan bernilai ‘1’, sedangkan jika jumlah bit yang nilai ‘1’ sama
dengan genap maka Parity Flag akan bernilai ‘0’
5.7
Accumulator
Register Accumulator (ACC) sebuah register yang digunakan untuk general purpose
atau juga digunakan untuk dalam proses pertambahan, perkalian dan pembagian. ACC
akan menyimpan hasil perkalian 8 bit terbawah dan hasil pertambahan dan pembagian.
5.8
Stack Pointer (SP)
Stack Pointer (SP) merupakan register 8 bit yang berisi lokasi dimana data alamat
stack teratas disimpan. Intruksi PUSH, LCALL, proses interrupt dan sejenisnya akan
menambah nilai pada SP. Sedangkan instruksi POP, RET, RETI adan sejnisnya akan
mengurangi nilai pada SP.
5.9
Data Pointer (DPTR)
Data Pointer (DPTR) merupakan register 16 bit yang terdiri dari 8 bit data pointer
High (DPH) dan 8 bit data pointer low (DPL). DPTR umumnya digunakan untuk
mengakses alamat pada memori eksternal.
BAB 6
SET INTRUKSI DAN PEMOGRAMAN ASSEMBLY MSC51
1.
Operand dan Set Intruksi MCS51
Operan dalam pemrograman mikrokontroller adalah data yang tersimpan dalam
memori, register dan input/output (I/O). intruksi yang dikenal secara umum dikelompokan
menjadi beberapa kelompok yaitu intruksi untuk pemindahan data, aritmetika, operasi logika,
pengaturan aliran program dan beberapa hal khusus, kombinasi dari instruksi dan operan
itulah yang membentuk intruksi pengaturan kerja mikrokontroller.
2
Mode Pengalamatan dalam MCS51
Data ataupun operan bisa berada ditempat yang berbeda sehingga dikenal beberapa
cara untuk mengakses data operan tersebut yang dinamakan sebagai mode pengalamatan
(Addressing Mode) antara lain yaitu :
 Pengalamatan Langsung (Direct Addressing)
Pada mode ini operand ditentukan dari sebuah alamat 8 bit. Hanya berlaku untuk
RAM internal dan SFR.
Contoh: MOV A,7FH (isi accumulator dengan isi alamat 7Fh)
 Pengalamatan Tidak Langsung (Indirect Addressing)
Mode ini menggunakan Register tertentu berisi Data yang menunjukan Alamat. Bisa
berlaku untuk internal dan external RAM. Register untuk menunjukkan alamat
tersebut adalah R0 atau R1, maupun Stack Pointer untuk operasi 8 bit. Untuk
mengakses 16 bit alamat digunakan data pointer DPTR.
Contoh: MOV A,@R0 (isi accumulator dengan alamat yang ditunjukkan oleh isi R0)
 Pengalamatan Register
Pengalamatan mode ini lebih effisien dan mengeleminasi satu byte alamat
Contoh: MOV A,R7
 Immediate Constant
Sebuah nilai konstanta dapat mengikuti opcode dalam Program memori
Contoh: MOV A,#20h (Mengisi accumulator dengan data 20h)
 Pengalamatan Bit
Pengalamatan bit adalah penunjukan alamat lokasi bit baik dalam RAM internal (byte
32 sampai 47) atau bit perangkat keras. Untuk melakukan pengalamatan bit digunakan
symbol titik (.), misalnya FLAGS.3, 40.5, 21H.1 dan ACC.7. Tabel dibawah
menunjukan pengalamatan bit pada mikrokontroller AT89C51
Tabel 6.1 Spesial function register (SFR)
Simbol
CY
AC
F0
RS1
RS0
OV
P
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
EA
ES
ET1
EX1
ET0
EX0
PS
PT1
PX1
PT0
PX0
3
Posisi Bit
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW0
TCON.7
TCON.6
TCON.5
TCON.4
TCON.3
TCON.2
TCON.1
TCON.0
SCON.7
SCON.6
SCON.5
SCON.4
SCON.3
SCON.2
SCON.1
SCON.0
IE.7
IE.4
IE.3
IE.2
IE.1
IE.0
IP.4
IP.3
IP.2
IP.1
IP.0
Alamat Bit
D7H
D6H
D5H
D4H
D3H
D2H
D0H
8Fh
8EH
8DH
8CH
8BH
8AH
89H
88H
9FH
9EH
9DH
9CH
9BH
9AH
99H
98H
AFH
ACH
ABH
AAH
A9H
A8H
BCH
BBH
BAH
B9H
B8H
Nama
Carry Flag
Auxilliary carry falg
Flag 0
Reg. Bank Select Bit 1
Reg Bank Select Bit 0
Overflow Flag
Parity Flag
Timer 1 overflow flag
Timer run control bit
Timer 0 overflow flag
Timer 0 run control bit
Interupt 1 edge flag
Interupt 1 type control
Interupt 0 edge flag
Interupt 0 type control
Serial Mode control bit 0
Serial mode control bit 1
Serial mode control bit 2
Reciever enable
Transmit bit 8
Receiver bit 8
Transmit interrupt flag
Receive Interupt flag
Enable all interupr
Enable serial port interrupt
Enable Timer 1 Interupt
Enable external Interupt 1
Enable Timer 0 interupt
Enable external interrupt 0
Serial port interrupt priority
Timer 1 interupt priority
External interrupt priority
Timer 0 interupt priority
External interrupt 0 priority
Perangkat Intruksi
Mikrokontroller AT89C51 memiliki 256 perangkat intruksi. Seluruh intruksi dapat
dikelompokan dalam 4 bagian yang meliputi intruksi 1 byte sampai 4 byte. Apabila frekuensi
clock mikrokontroller yang digunakan adalah 12 Mhz, kecepatan pelaksanaan intruksi akan
bervarias dari 1 hingga mikrodetik. Perangkat intruksi mikrokontroller AT89C51 dapat dibagi
menjadi lima kelompok sebagai berikut :
 Intruksi Transfer data
Intruksi ini memindahkan data antara register-register, memori-memori, registermemori, antar muka register dan antar muka memori.
Tabel 6.2 Intruksi Transfer Data
 Instruksi Aritmatika
Intruksi
ini
melaksanakan
operasi
aritmatika
yang
meluputi
penjumlahan,
pengurangan, penambahan satu (inkremen), pengurangan satu (dekremen), perkalian dan
pembagian.
Tabel 6.3 Intruksi Aritmatika
 Instruksi Logika dan Manupulasi Bit
Instruksi ini melaksanakan operasi Boolean (AND, OR, XOR), perbandingan,
pergeseran dan komplemen data.
Tabel 6.4 Intruksi Logika dan manupulasi Bit
 Instruksi Percabangan
Instruksi ini mengubah urutan normal pelaksanaan suatu program. Dengan instruksi
ini program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu. Intruksi
percabangan dibedakan atas 2 yaitu : percabangan bersyarat dan percabangan tanpa syarat.
Tabel 6.5 Intruksi Percabangan
6.4
Aturan Pembuatan Program Assebler AT89C51
Program bahasa assembly berisikan :
●
Intruksi-intruksi mesin
●
Pengarah-pengarah assembler
●
Kontrol-kontrol assembler
●
Komentar-komentar
Intruksi-intruksi mesin merupakan mnemonic yang menyatakan suatu instruksi yang
bisa dijalankan (misalnya MOV). Pengarah assembler (assembler directive) merupakan
intruksi ke program assembler yang mendefinisikan struktur program, symbol-simbol, data,
konstanta dan lain-lain (misalnya ORG). Kontrol-kontrol assembler mengatur (menentukan)
mode-mode assembler dan aliran assembly langsung (misalnya $TITLE). Komentar perlu
ditulis agar program mudah dibaca.
Baris-baris program yang mengandung instruksi mesin atau pengarah assembler harus
mengikuti aturan program assembler ASM51. masing-masing baris atas beberapa field yang
dipisahkan dengan spasi atau tabulasi. Format umumnya :
[label :] mnemonic [operand] [,operand] [……]
[; komentar]
contoh pembuatan program assembler
ORG
0000H
LJMP START
; INISIALISASI ALAMAT AWAL
; LOMPAT KE LABEL START
ORG
0100H
; AWAL PROGRAM YANG AKAN DIJALANKAN
START :
ISI PROGRAM ASSEMBLER
.
.
.
END
Catatan :
Setiap pembuatan program tidak boleh di mulai dari alamat 0000H. jika pembuatan
program di mulai dari alamat 0000H maka program dipastikan tidak akan berjalan sebab
0000 di isi oleh intrupt reset. Sebaiknya pembuatan program di mulai dari alamat memori
0100h agar tidak terjadi cras dengan interrupt yang lain.
Download