Anda di halaman 1dari 49

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

Sedang
CMOS Sedang Sangat Kecil Sedang – Daya Terkecil

Tinggi
CMOS-SOS Sedang – Kecil Tinggi Rendah

Tinggi
TEKNOLOGI BIPOLAR
TTL Sedang – Sedang Sedang – Tinggi

Tinggi Tinggi
ECL Sangat Tinggi Tinggi Sedang Pemakaian

Meningkat
I2L Sedang – Rendah, Dapat Sangat Tinggi Baru, Pemakaian

Tinggi diatur 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 HS-

CMOS 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 masing-

masing, tergantung pada letaknya. Sebagai contoh untuk data 8 bit adalah :

Data D7 D6 D5 D4 D3 D2 D1 D0
Bobot Hexa 80 40 20 10 08 04 02 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

Biner
Desimal C B A
(4) (2) (1)
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 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 Kolom Biner Bilangan


Desimal 25 24 23 22 21 20 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 Kolom C Kolom B Kolom A


3 2 1
8 8 8 80
512 64 8 1

a. 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 langkah-

langkah 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
A.B
B

Gambar 3.2 Gerbang Logika AND

Tabel 3.9 Tabel Kebenaran Gerbang AND

A B A.B
0 0 0
1 0 0
0 1 0
1 1 1

c. 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
A+B
B

Gambar 3.3 Gerbang Logika OR

Tabel 3.10 Tabel Kebenaran Gerbang OR

A B A+B
0 0 0
1 0 1
0 1 1
0 0 1

d. 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

A B A∗B
0 0 1
0 1 1
1 0 1
1 1 0

e. 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
A+B
B

Gambar 3.4 Gerbang Logika NOR

Tabel 3.12 Tabel Kebenaran Gerbang NOR

A B AB
0 0 1
1 0 0
0 1 0
1 1 1

f. Gerbang XOR

Gerbang XOR akan memberikan keluaran 1 jika masukkannya mempunyai keadaan


yang berbeda.

A
A + B
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 UVEPROM (Ultra Violet Erasable


programmable ROM)
 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


Program
0013H Memory External Interrupt 1

000BH Timer 0 Interrupt

0003H External Interrupt 0

0000H Reset

Gambar 5.3 Memori Program

60 Kbyte External
Program Memory 64 Kbyte External
Program Memory
4 Kbyte Internal
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
Register Bank 3
18H
17H
Register Bank 2
10H
0FH
Register Bank 1
08H
07H
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 Bit-addressable B
E0H Bit-addressable ACC
D0H Bit-addressable PSW
B8H Bit-addressable IP
B0H Bit-addressable P3
A8H Bit-addressable IE
86H Bit-addressable WDTRST
A2H Bit-addressable AUXR1
A0H Bit-addressable P2
90H Bit-addressable P1
8EH Bit-addressable AUXR
8DH Non Bit-addressable TH1
8CH Non Bit-addressable TH0
8BH Non Bit-addressable TL1
8AH Non Bit-addressable TL0
89H Non Bit-addressable TMOD
88H Bit-addressable TCON
87H Non Bit-addressable PCON
85H Non Bit-addressable DP1H
84H Non Bit-addressable DP1L
83H Non Bit-addressable DP0H
82H Non Bit-addressable DP0L
81H Non Bit-addressable SP
80H Bit-addressable 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 Posisi Bit Alamat Bit Nama


CY PSW.7 D7H Carry Flag
AC PSW.6 D6H Auxilliary carry falg
F0 PSW.5 D5H Flag 0
RS1 PSW.4 D4H Reg. Bank Select Bit 1
RS0 PSW.3 D3H Reg Bank Select Bit 0
OV PSW.2 D2H Overflow Flag
P PSW0 D0H Parity Flag
TF1 TCON.7 8Fh Timer 1 overflow flag
TR1 TCON.6 8EH Timer run control bit
TF0 TCON.5 8DH Timer 0 overflow flag
TR0 TCON.4 8CH Timer 0 run control bit
IE1 TCON.3 8BH Interupt 1 edge flag
IT1 TCON.2 8AH Interupt 1 type control
IE0 TCON.1 89H Interupt 0 edge flag
IT0 TCON.0 88H Interupt 0 type control
SM0 SCON.7 9FH Serial Mode control bit 0
SM1 SCON.6 9EH Serial mode control bit 1
SM2 SCON.5 9DH Serial mode control bit 2
REN SCON.4 9CH Reciever enable
TB8 SCON.3 9BH Transmit bit 8
RB8 SCON.2 9AH Receiver bit 8
TI SCON.1 99H Transmit interrupt flag
RI SCON.0 98H Receive Interupt flag
EA IE.7 AFH Enable all interupr
ES IE.4 ACH Enable serial port interrupt
ET1 IE.3 ABH Enable Timer 1 Interupt
EX1 IE.2 AAH Enable external Interupt 1
ET0 IE.1 A9H Enable Timer 0 interupt
EX0 IE.0 A8H Enable external interrupt 0
PS IP.4 BCH Serial port interrupt priority
PT1 IP.3 BBH Timer 1 interupt priority
PX1 IP.2 BAH External interrupt priority
PT0 IP.1 B9H Timer 0 interupt priority
PX0 IP.0 B8H External interrupt 0 priority

3 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, register-
memori, 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 ; INISIALISASI ALAMAT AWAL


0000H
LJMP START ; 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.