diktat kuliah sistem mikroprosesor - · pdf filepada mikroprosesor 16 bit, bagian alu ......
TRANSCRIPT
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 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
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
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 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
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 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
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
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.
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.
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 :
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
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
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
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
Gambar 3.4 Gerbang Logika XOR
Tabel 3.13 Tabel Kebenaran Gerbang XOR
A B AB0 0 01 0 10 1 11 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.
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
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
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
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
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 :
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
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 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
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.
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 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.