Top Banner
DIKTAT KULIAH SISTEM MIKROPROSESOR Disusun Oleh : Susanto Sambasri, ST.,MT / Rizal Suryana, ST JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS JENDERAL ACHMAD YANI CIMAHI 2008
49

DIKTAT MIKROPROSESOR

Jun 24, 2015

Download

Documents

aizensora
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DIKTAT MIKROPROSESOR

DIKTAT KULIAH

SISTEM MIKROPROSESOR

Disusun Oleh : Susanto Sambasri, ST.,MT / Rizal Suryana, ST

JURUSAN TEKNIK ELEKTRO

FAKULTAS TEKNIK

UNIVERSITAS JENDERAL ACHMAD YANI

CIMAHI

2008

Page 2: DIKTAT MIKROPROSESOR

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 MIRKOPROSESSORTEKNOLOGI MOSPMOS INTEL 4004,4040,8008NMOS INTEL 8080,8085,8086,8048,8748

MOTOROLA MC6800,MC6802, MC5801,

MC6805, ZILOG Z80, Z8000CMOS MOTOROLA MC146805, MC14500TEKNOLOGI BIPOLARBIPOLAR TAK-JENUH (UN-

SATURATED)ECL MOTOROLA MC10800SCHOTTKY INTEL 3001, AMD Am2901, Am2903BIPOLAR JENUH (SATURATED)I2L TEXAS INTRUMENTS SBP0400, SBP900

Page 3: DIKTAT MIKROPROSESOR

Tabel 1-2 Perbandingan Karakteristik Mikroprosessor

SPEED DAYA DENSITY KETERANGANTEKNOLOGI MOSPMOS Rendah Sedang Tinggi Pemakaian menurunNMOS Rendah-

Sedang

Sedang Tinggi Standard

CMOS Sedang Sangat Kecil Sedang –

Tinggi

Daya Terkecil

CMOS-SOS Sedang –

Tinggi

Kecil Tinggi Rendah

TEKNOLOGI BIPOLARTTL Sedang –

Tinggi

Sedang Sedang –

Tinggi

Tinggi

ECL Sangat Tinggi Tinggi Sedang Pemakaian

MeningkatI2L Sedang –

Tinggi

Rendah, Dapat

diatur

Sangat Tinggi 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

Page 4: DIKTAT MIKROPROSESOR

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.

Page 5: DIKTAT MIKROPROSESOR

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.

Page 6: DIKTAT MIKROPROSESOR

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.

Page 7: DIKTAT MIKROPROSESOR

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

Page 8: DIKTAT MIKROPROSESOR

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 D0Bobot 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

Page 9: DIKTAT MIKROPROSESOR

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

Page 10: DIKTAT MIKROPROSESOR

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

Page 11: DIKTAT MIKROPROSESOR

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.

Page 12: DIKTAT MIKROPROSESOR

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 A102 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

DesimalBiner

C(4)

B(2)

A(1)

0 0 0 01 0 0 12 0 1 03 0 1 14 1 0 05 1 0 16 1 1 07 1 1 1

Page 13: DIKTAT MIKROPROSESOR

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 Biner25 24 23 22 21 20

Bilangan Biner

15 0 0 1 1 1 1 00111122 0 1 0 1 1 0 01011045 1 0 1 1 0 1 10110152 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 22 (= 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

Page 14: DIKTAT MIKROPROSESOR

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 A83 82 81 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.

Page 15: DIKTAT MIKROPROSESOR

Tabel 3.5 Tabel Bilangan Oktal ke Biner

Oktal Biner0 0001 0012 010 3 0114 1005 1016 1107 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.

Page 16: DIKTAT MIKROPROSESOR

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 Desimal0 01 12 23 34 45 56 67 78 89 9A 10B 11C 12D 13E 14F 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 :

Page 17: DIKTAT MIKROPROSESOR

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 Biner0 00001 00012 00103 00114 0100 5 01016 01107 01118 10009 1001A 1010B 1011C 1100D 1101E 1110F 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

Page 18: DIKTAT MIKROPROSESOR

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.

Gambar 3.1 Gerbang Logika NOT

Tabel 3.8 Tabel Kebenaran Gerbang NOT

A A

0 11 0

A A

Page 19: DIKTAT MIKROPROSESOR

b. Gerbang AND

Gerbang AND digunakan untuk menghasilkan logika 1 jika semua masukan

mempunyai logika 1, jika tidak maka akan menghasilkan logika 0

Gambar 3.2 Gerbang Logika AND

Tabel 3.9 Tabel Kebenaran Gerbang AND

A B A.B0 0 01 0 00 1 01 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.

Gambar 3.3 Gerbang Logika OR

Tabel 3.10 Tabel Kebenaran Gerbang OR

A B A+B0 0 01 0 10 1 10 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.

AB A.B

AB A+B

Page 20: DIKTAT MIKROPROSESOR

Gambar 3.3 Gerbang Logika NAND

Tabel 3.11 Tabel Kebenaran Gerbang NAND

A B A∗B

0 0 10 1 11 0 11 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.

Gambar 3.4 Gerbang Logika NOR

Tabel 3.12 Tabel Kebenaran Gerbang NOR

A B AB0 0 11 0 00 1 01 1 1

f. Gerbang XOR

Gerbang XOR akan memberikan keluaran 1 jika masukkannya mempunyai keadaan

yang berbeda.

AB A*B

AB A+B

AB A + B

Page 21: DIKTAT MIKROPROSESOR

Gambar 3.4 Gerbang Logika XOR

Tabel 3.13 Tabel Kebenaran Gerbang XOR

A B AB0 0 01 0 10 1 11 1 0

Page 22: DIKTAT MIKROPROSESOR

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

Page 23: DIKTAT MIKROPROSESOR

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

Page 24: DIKTAT MIKROPROSESOR

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

Page 25: DIKTAT MIKROPROSESOR

• 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

Page 26: DIKTAT MIKROPROSESOR

● 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

Page 27: DIKTAT MIKROPROSESOR

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

Page 28: DIKTAT MIKROPROSESOR

● 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

Page 29: DIKTAT MIKROPROSESOR

e. Arsitektur dan Peripheral Basic Stamp

Page 30: DIKTAT MIKROPROSESOR

Gambar 4.9 Konfigurasi Pin Basic Stamp

Page 31: DIKTAT MIKROPROSESOR

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)

Page 32: DIKTAT MIKROPROSESOR

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

Page 33: DIKTAT MIKROPROSESOR

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.

Page 34: DIKTAT MIKROPROSESOR

• 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

Page 35: DIKTAT MIKROPROSESOR

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

Page 36: DIKTAT MIKROPROSESOR

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

Page 37: DIKTAT MIKROPROSESOR

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.

Gambar 5.3 Memori Program

60 Kbyte ExternalProgram Memory

4 Kbyte InternalProgram Memory

64 Kbyte ExternalProgram Memory

Gambar 5.4 Konfigurasi Internal dan External Program Memory

Memori Data

Memori data internal dipetakan seperti pada gambar dibawah ruangan memorinya

0000H

000BH

0003H

0013H

001BH

0023H Serial Interrupt

Timer 1 Interrupt

External Interrupt 1

Timer 0 Interrupt

External Interrupt 0

Reset

ProgramMemory

Page 38: DIKTAT MIKROPROSESOR

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

Special Function Registers

Scratch Pad Area

Bit-addressabel

Register Banks

00H

1FH20H

2FH30H

7FH80H

FFH

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 :

Register Bank 3

Register Bank 2

Register Bank 1

Register Bank 000H

07H08H

0FH10H

17H18H

1FH

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

Page 39: DIKTAT MIKROPROSESOR

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

Bit-addressableBit-addressableBit-addressableBit-addressableBit-addressableBit-addressableBit-addressableBit-addressableBit-addressableBit-addressableBit-addressable

Non Bit-addressableNon Bit-addressableNon Bit-addressableNon Bit-addressableNon Bit-addressable

Bit-addressableNon Bit-addressableNon Bit-addressableNon Bit-addressableNon Bit-addressableNon Bit-addressableNon Bit-addressable

Bit-addressable80H P081H82H83H84H85H87H88H89H8AH8BH8CH8DH8EH90HA0HA2H86HA8HB0HB8HD0HE0HF0HF8HFFH

SPDP0LDP0HDP1LDP1HPCONTCONTMODTL0TL1TH0TH1AUXRP1P2AUXR1WDTRSTIEP3IPPSWACCB

Gambar 5.7 Pembagian Special Fungsi Register

Page 40: DIKTAT MIKROPROSESOR

Tabel 5.1 Special Fungsi Register

Gambar 5 Special Function Register

5.4 OsilatorMikrokontroller 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.

C1 33pF

C2 33pF

12 Mhz

XTAL1

XTAL2

Gambar 5.8 Konfigurasi Pemberian Clock5 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

Page 41: DIKTAT MIKROPROSESOR

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 InteruptReset 00H Power on ResetINT 0 03H INT 0

Timer 0 0BH Timer 0INT 1 13H INT 1

Timer 1 1BH Timer 1Serial 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 EnableSumber 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 :

Page 42: DIKTAT MIKROPROSESOR

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 WordProgram status word berisi beberapa bit status yang mencerminkan keadaan

Page 43: DIKTAT MIKROPROSESOR

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

Page 44: DIKTAT MIKROPROSESOR

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.

Page 45: DIKTAT MIKROPROSESOR

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)

Page 46: DIKTAT MIKROPROSESOR

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 NamaCY PSW.7 D7H Carry FlagAC PSW.6 D6H Auxilliary carry falgF0 PSW.5 D5H Flag 0RS1 PSW.4 D4H Reg. Bank Select Bit 1RS0 PSW.3 D3H Reg Bank Select Bit 0OV PSW.2 D2H Overflow FlagP PSW0 D0H Parity FlagTF1 TCON.7 8Fh Timer 1 overflow flagTR1 TCON.6 8EH Timer run control bitTF0 TCON.5 8DH Timer 0 overflow flagTR0 TCON.4 8CH Timer 0 run control bitIE1 TCON.3 8BH Interupt 1 edge flagIT1 TCON.2 8AH Interupt 1 type controlIE0 TCON.1 89H Interupt 0 edge flagIT0 TCON.0 88H Interupt 0 type controlSM0 SCON.7 9FH Serial Mode control bit 0SM1 SCON.6 9EH Serial mode control bit 1SM2 SCON.5 9DH Serial mode control bit 2REN SCON.4 9CH Reciever enableTB8 SCON.3 9BH Transmit bit 8RB8 SCON.2 9AH Receiver bit 8TI SCON.1 99H Transmit interrupt flagRI SCON.0 98H Receive Interupt flagEA IE.7 AFH Enable all interuprES IE.4 ACH Enable serial port interruptET1 IE.3 ABH Enable Timer 1 Interupt EX1 IE.2 AAH Enable external Interupt 1ET0 IE.1 A9H Enable Timer 0 interupt EX0 IE.0 A8H Enable external interrupt 0PS IP.4 BCH Serial port interrupt priorityPT1 IP.3 BBH Timer 1 interupt priorityPX1 IP.2 BAH External interrupt priorityPT0 IP.1 B9H Timer 0 interupt priorityPX0 IP.0 B8H External interrupt 0 priority

3 Perangkat Intruksi

Mikrokontroller AT89C51 memiliki 256 perangkat intruksi. Seluruh intruksi dapat

Page 47: DIKTAT MIKROPROSESOR

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

Page 48: DIKTAT MIKROPROSESOR

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

Page 49: DIKTAT MIKROPROSESOR

● 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 AWAL0000HLJMP START ; LOMPAT KE LABEL START

ORG0100H ; AWAL PROGRAM YANG AKAN DIJALANKANSTART :

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.