Anda di halaman 1dari 22

PANDUAN PRAKTIKUM

MICROCONTROLLER
SEMESTER GANJIL TAHUN AKADEMIK 2014-2015
FAKULTAS TEKNIK ELEKTRONIKA DAN KOMPUTER UKSW
Topik 1 Pengenalan Microcontroller Keluarga MCS-51 (Looping dan aritmatika)

1. TUJUAN
a. Mahasiswa memahami arsitektur microcontroller keluarga MCS-51.
b. Mahasiswa dapat membuat skema dan board untuk microcontroller MCS-51.
c. Mahasiswa memahami pemrograman dasar microcontroller keluarga MCS-51.
2. DASAR TEORI
a. Pendahuluan
Microcontroller merupakan sebuah microprocessor yang telah diintegrasikan dengan
peripheral lain (ROM, RAM, I/O, dll) menjadi sebuah IC.Salah satu microcontroller yang
masih sangat popular saat ini adalah keluarga MCS-51. Pada praktikum kali ini, kita akan
menggunakan tipe AT89S52 yang merupakan microcontroller keluarga MCS-51 buatan
Atmel. Pada praktikum ini kita tidak akan menggunakan board minimum sistem AT9S52,
tapi akan kita simulasikan dengan program ISIS Proteus. Sedikit penjelasan tentang ISISProteus berada pada lampiran.

Gambar 1. Konfigurasi

Pin AT89S52

AT89S52 memiliki
4 port I/O yang
masing-masing memiliki
8 pin, yaitu Port 0, Port
1, Port 2, dan Port 3.
Selain sebagai I/O,
masing-masing port juga
memiliki fungsi yang
berbeda-beda. Port 0
(P0.0

P0.7)
merupakan
8-bitopendrain bidirectional I/O.
Port ini dapat digunakan
untuk
mengakses
address/data busmemori
program atau data
eksternal.
Untuk
keperluan baca/tulis ke
memori
eksternal,
AT89S52 memiliki pin
ALE (Address Latch
Enable, pin 30) dan
PSEN (Program Store
Enable,
pin
29).
PSENakan mengeluarkan
sinyal
0
selama
pengambilan data dari
memori eksternal. Pin
ini biasanya dihubungkan dengan pin OE (Output Enable) dari memori eksternal. Sedangkan
ALE akan mengeluarkan sinyal 1 selama Port 0 mengeluarkan address dan akan
mengeluarkan sinyal 0 selama Port 0mengeluarkan data. ALE digunakan untuk
memberitahu piranti memori eksternal tentang jenis keluaran Port 0 (address atau data).
Selain itu, juga ada pin EA (External Address, pin 31) yang digunakan untuk mengatur
apakah program akan diakses dari memori internal / eksternal. Jika program diambil dari
memori internal maka EA di-set 1 dan 0 jika program dari memori eksternal.Perlu
diperhatikan bahwa Port 0 tidak memiliki pull-up internal.
1

Panduan Praktikum Microcontroller | 2


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Port 1 (P1.0 P1.7) merupakan 8-bit bidirectional I/O yang sudah dilengkapi dengan
pull-up internal.Port 1 dapat dipakai untuk berkomunikasi dengan piranti eksternal. Selain
itu, Port 1 memiliki beberapa fungsi khusus untuk pin tertentu, yaitu:
- P1.0 : T2 (external count input to Timer/Counter 2), clock-out
- P1.1 : T2EX (Timer/Counter 2 capture/reload trigger and direction control)
- P1.5 : MOSI (untuk In-System Programming)
- P1.6 : MISO (untuk In-System Programming)
- P1.7 : SCK (untuk In-System Programming)
Port 2 (P2.0 P2.7)juga merupakan 8-bit bidirectional I/O yang sudah dilengkapi
dengan pull-up internal. Port ini biasanya juga digunakan untuk address bus jika digunakan
penambahan memori eksternal.
Port 3 (P3.0 P3.7) juga hampir sama dengan Port 1 dan 2. Bedanya, Port ini
memiliki beberapa fungsi khusus, yaitu:
- P3.0 : RXD (serial input port)
- P3.1 : TXD (serial output port)
- P3.2 : INT0 (external interrupt 0)
- P3.3 : INT1 (external interrupt 1)
- P3.4 : T0 (timer 0 external input)
- P3.5 : T1 (timer 1 external input)
- P3.6 : WR (external data memory write strobe)
- P3.7 : RD (external data memory read strobe)
Selain port-port dan beberapa pin yang telah dibahas, AT89S52 juga memiliki
beberapa pin lain, yaitu:
- VCC, GND
- XTAL1 , XTAL2
Kedua pin ini digunakan untuk mengatur siklus kerja microcontroller. Kedua pin
ini dihubungkan dengan kristal osilator dengan frekuensi (biasanya) 12 MHz.
Karena MCS-51 mempunyai siklus kerja 1/12 frekuensi osilator maka satu
siklus kerja AT89S52 + 1s.
-

RST
Pin ini dipakai untuk me-resetmicrocontroller. MCS-51 menggunakan reset high
dengan waktu reset setidaknya 2 siklus kerja.

Gambar 2. Diagram Pemasangan Kristal Osilator; C1 dan C2 30pF + 10pF

Panduan Praktikum Microcontroller | 3


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Gambar 3. Diagram Blok AT89S52


b. Pengalamatan Memori dan Register
Keluarga MCS-51 memiliki beberapa ruang alamat memori, yaitu:
1. Ruang alamat kode program (code address space)
Ruang alamat kode memori program sebanyak maksimal 64KB ditempati oleh
EEPROM/ROM internal atau eksternal.
2. Ruang alamat memori data internal
Ruang alamat memori data internal ini dapat dialamati secara langsung yang terdiri dari
128B RAM internal dan 128B SFR (Special Function Register).
3. Ruang alamat memori eksternal
Ruang alamat memori eksternal sebanyak maksimal 64KB dapat ditempati oleh IC RAM
eksternal.
Ruang alamat memori kode program dan ruang alamat memori data eksternal
sebenarnya memiliki ruang alamat yang sama (overlap). Ruang alamat memori kode program

Panduan Praktikum Microcontroller | 4


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

dan ruang alamat memori data eksternal dialamati dari alamat 0000h sampai FFFFh.
Sedangkan memori data internal dialamati dari alamat 00h sampai FFh. Rinciannya adalah
alamat 00h sampai 7Fh dipakai untuk mengalamati RAM internal dan alamat 80h sampai
FFh dipakai untuk mengalamati SFR.

Gambar 4. Peta Pengalamatan memori MCS-51


Internal RAM sendiri dibagi menjadi beberapa bagian, yaitu:
- 00 18h sebagai memori data biasa dan bisa pula sebagai Register Serba Guna
(General Purpose Register).
- 20 2Fh sebagai memori data biasa dan bisa pula diakses secara bit (bitaddressable)
- 30 7Fh sebagai memori data biasa yang dapat menyimpan data maupun stack
c. Register Serba Guna
Register Serba Guna (General Purpose Register) menempati alamat memori-data
00hsampai 18h. Memori sebanyak 32 byte ini dikelompokkan menjadi 4 Kelompok
Register(Register Bank). 8 byte memori dari masing-masing kelompok itu dikenali sebagai
Register 0 - Register 7 (R0, R1, R2, R3,R4, R5, R6 dan R7).

Panduan Praktikum Microcontroller | 5


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Dalam penulisan program, memori-memori ini bisa langsung disebut sebagai R0, R1,
R2, R3, R4, R5, R6 dan R7, tidak lagi dengan nomor memori. Dengan cara ini instruksi
yang terbentuk bisa lebih sederhana dan bekerja lebih cepat.
Pengertian ini bisa diperjelas dengan contoh 2 instruksi berikut :
MOV A,04h
MOV A,R4

Instruksi pertama mempunyai makna isi memori-data pada alamat 04h di-copy- kan ke
AkumulatorA, sedangkan instruksi kedua artinya isi R4di-copy-kan ke Akumulator A.
Karena R4menempati memori-data nomor 4, jadi kedua instruksi itu berakibat sama bagi
Akumulator A.Tapi saat diterjemahkan ke kode mesin, intruksi pertama diubah menjadi E5
04(heksadesimal) dan instruksi kedua menjadi E6(heksadesimal). Jadi, instruksi kedua lebih
sederhana dari instruksi pertama.
Selain itu, khusus untuk Register 0 dan Register 1 (R0 dan R1) masih mempunyai
kemampuan lain. Kedua register ini bisa dipakai sebagai register penampung alamat yang
dipakai dalam pengakesesan memori secara tidak langsung(indirect memori
addressing).Empat kelompok Register Serba Gunaitu tidak bisa dipakai
secarabersamaan.Setelah microcontroller di-reset maka yang aktif adalah Kelompok
Register 0(Register Bank 0).
Kalau yang diaktifkan adalah Kelompok Register 1, maka yang dianggap sebagai
R0bukan lagi memori-data nomor 0 melainkan memori-data nomor 8.Demikian pula kalau
yang diaktifkan Kelompok Register 3maka memori-data nomor 18h yang menjadi R0.
Kelompok Register yang aktif dipilih dengan cara mengatur bit RS0dan RS1yang ada di
dalam Register PSW(Program Status Word).

d. Bit-addressable Memori
Memori data internal pada alamat 20hsampai 2Fhbisa dipakai menampung informasi
dalam level bit. Setiap byte memori di daerah ini bisa dipakai menampung 8 bit informasi
yang masing-masing dinomori tersendiri.Dengan demikian dari 16 byte memori yang ada
bisa dipakai untuk menyimpan 128 bit (16 x 8 bit) yang dialamati dengan alamat 00hsampai
7Fh. Informasi dalam level bit tersebut masing-masing bisa di-1-kan atau di-0-kan
dengan instruksi. Pengertian di atas bisa dipikirkan seolah-olah MCS51 mempunyai jenis
memori yang lain. Tetapi sesungguhnya kedua jenis memori itu tetap sama, hanya saja cara
pengaksesannya saja yang berlainan.
Instruksi SETB 00hmengakibatkan memori bitalamat 0h menjadi 1 atau sama
dengan membuat bit nomor 0 dari memori datapada alamt 20hmenjadi 1, sedangkan bit-bit

Panduan Praktikum Microcontroller | 6


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

lainnya dalam alamat memori 20htidak berubah nilai. Sedangkan instruksi CLR
7Fhmengakibatkan memori bitalamat 7Fhmenjadi 0, atau sama dengan membuat bit
nomor 7 dari memori datapada alamat 2Fhmenjadi 0, sedangkan bit-bit lainnya dalam
alamat memori 2Fhtidak berubah nilai.
Pengertian ini dipertegas dengn intsruksi-instruksi berikut:
MOV 21h,#0Fh

Sama dengan hasil kerja instruksi-instruksi berikut :


SETB 08h
SETB 09h
SETB 0Ah
SETB 0Bh
CLR 0Ch
CLR 0Dh
CLR 0Eh
CLR 0Fh

Instruksi MOV 21h,#0Fhmempunyai makna mengisi memori datapada alamat


21hdengan nilai 0Fh(atau bilangan biner 00001111), berarti mengisi memori bit pada alamat
0Fhsampai 08hdengan bilangan biner 00001111 yang bisa dinyatakan dengan 8 baris
instruksi berikutnya.
e. Special Function Register
SFRadalah satu daerah RAM dalam IC keluarga MCS-51 yang dipakai untuk
mengatur perilaku MCS51 dalam hal-hal khusus, misalnya tempat untuk berhubungan
dengan port paralel P1atau P3, dan sarana input/output lainnya, tapi tidak umum dipakai
untukmenyimpan data seperti layaknya memori data. Meskipun demikian, dalam hal
penulisan program SFRdiperlakukan persis sama dengan memori data.
Untuk mengisi memori-data pada alamat 60hdengan bilangan 0Fh, instruksi yang
dipergunakan adalah :
MOV 60h,#0Fh

Sedangkan untuk menyimpan 0Fhke Port 1 yang di SFRmenempati memori-data pada


alamat 90h, instruksi yang dipergunakan adalah :
MOV 90h,#0Fh

Membandingkan kedua instruksi di atas bisa dimengerti dalam segi penulisan program
SFRdiperlakukan persis sama dengan memori data. Meskipun demikian, dalam mengakses
memori databisa dipakai dua cara, yakni pengaksesan alamat memori secara langsung(direct
memory addressing) dan pengaksesan alamat memori secara tidak langsung(indirect
memoryaddressing) lewat bantuan R0dan R1. Tetapi untuk SFRhanya bisa dipakai
penyebutan nomor memori secara langsung(direct memory addressing) saja.
f. Register Dasar MCS-51

Panduan Praktikum Microcontroller | 7


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Untuk keperluan penulisan program, setiap mikroprosesor/mikrokontroler selalu


dilengkapi dengan Register Dasar. Ada beberapa macam register merupakan register baku
yang bisa dijumpai disemua jenis mikroprosesor/mikrokontroler, ada register yang spesifik
pada masing-masing prosesor.Yang termasuk Register Baku antara lain:Program Counter,
Akumulator, Stack Pointer Register, Program Status Register. MCS51 mempunyai semua
register baku ini.
Sebagai register yang khas MCS51, antara lain adalah Register B, Data Pointer High
Byte dan Data Pointer Low Byte.Di samping itu MCS51 masih mempunyai Register Serba
Guna R0...R7yang sudah disebut diatas.
Dalam mikroprosesor/mikrokontroler yang lain, register-register dasar biasanya
ditempatkan ditempat tersendiri dalam inti prosesor, tapi dalam MCS51 register-register itu
ditempatkan secara terpisah.
Program Counter ditempatkan ditempat tersendiri di dalam inti prosesor
Register Serba GunaR0..R7ditempatkan di salah satu bagian dari memori data
internal
Register lainnya ditempatkan dalam SFR.

Gambar 5. Susunan Register Dasar MCS51


Kegunaan dan pemakaian register-register dasar tersebut antara lain sebagaiberikut:
- Program Counter
Program Counter (PC) dalam 8051 berkapasitas 16 bit. Di dalam PCdicatat
nomor memori program yang menyimpan instruksi berikutnya yang akan diambil
(fetch) sebagai instruksi untuk dikerjakan (execute).
Saat setelah reset PCbernilai 0000h, berarti MCS51 akan segera mengambil
isi memori-program nomor 0 sebagai instruksi. Nilai PCotomatis bertambah 1
setelah prosesor mengambil instruksi 1 byte. Adainstruksi yang hanya 1 byte, ada
instruksi yang sampai 4 byte, dengan demikian pertambahan nilai PC setelah
menjalankan instruksi, tergantung pada jumlah byte instruksi bersangkutan.

Panduan Praktikum Microcontroller | 8


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Akumulator
Sesuai dengan namanya, Akumulatoradalah sebuah register yang berfungsi
untuk menampung (accumulate) hasil-hasil pengolahan data dari banyak instruksi
MCS51. Akumulator bisa menampung data 8 bit (1 byte) dan merupakan register
yang paling banyak kegunaannya, lebih dari setengah instruksi-instruksi MCS51
melibatkan Akumulator. Instruksi-instruksi berikut memperjelas pengertian di atas
:
MOV A,#20h
ADD A,#30h

Instruksi pertama menyimpan nilai 20hke Akumulator, instruksi kedua


menambahkan bilangan 30hke Akumulator, hasil penjumlahan sebesar 50h
ditampung di Akumulator.
-

Stack Pointer Register


Salah satu bagian dari memori-data dipakai sebagai Stack, yaitu tempat
yang dipakai untuk menyimpan sementara nilai PCsebelum prosesor menjalankan
sub-rutin. Nilai tersebut akan diambil kembali dari Stackdan dikembalikan ke
PCsaat prosesor selesai menjalankan sub-rutin.
Stack Pointer Registeradalah register yang berfungsi untuk mengatur kerja
stack. Dalam Stack Pointer Registerdisimpan nomor memori datayang dipakai
untuk operasi Stack berikutnya.

Program Status Word


Program Status Word (PSW) berfungsi mencatat kondisi prosesor setelah
melaksanakan instruksi.PSW terdiri dari (MSB ke LSB): CY-AC-F0-RS1-RS0OV-NULL-P = Carry Auxiliary - Flag 0 - Register Selector 1 - Register Selector
0 - Overflow - General purpose - Parity. Pembahasan tentang PSWsecara rinci
akan dilakukan dibagian lain.

Register B
Merupakan register dengan kapasitas 8 bit, merupakan register pembantu
Akumulatorsaat menjalankan instruksi perkalian dan pembagian.

DPH dan DPL


Data Pointer High Byte (DPH) dan Data Pointer Low Byte (DPL) masingmasing merupakan register dengan kapasitas 8 bit, tetapi dalam pemakaiannya
kedua register ini digabungkan menjadi satu register 16 bit yang dinamakan
sebagai Data Pointer Register (DPTR). Sesuai dengan namanya, Register ini
dipakai untuk mengalamati datadalam jangkauan yang luas, yaitu terutama untuk
mengakses data yangberada pada memori eksternal

Panduan Praktikum Microcontroller | 9


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

g. Pemrograman Assembly Pada MCS-51


Pemrograman mikrokontroller MCS-51 menggunakan bahasa assembly. Dalam
praktikum nanti akan menggunakan program assembler ASM51.EXE.
Mnemonic dari sebuah baris perintah bisa merupakan instruksi untuk prosesor,
maupun berupa Assembler Directive untuk mengatur kerja dari program Assembler.
Mnemonic untuk instruksi prosesor, sangat tergantung pada prosesor yang dipakai,
sedangkan mnemonic untuk Assembler Directive tergantung pada program Assembler yang
dipakai. Meskipun demikian, terdapat beberapa Assembler Directive yang umum, yang sama
untuk banyak macam program Assembler.
Assembler Directive yang bersifat umum tersebut, antara lain adalah
1. ORG singkatan dari ORIGIN, untuk menyatakan nomor memori yang dipakai
setelah perintah itu, misalnya ORG 1000hmaka memori berikutnya yang dipakai
Assembler adalah 1000h. ORGberlaku untuk memori program maupun memoridata.
Misalnya :ORG 1000h
2. EQU singkatan dari EQUATE, dipakai untuk menentukan nilai sebuah Symbol.
Misalnya :Angka88 EQU 88
Berarti memberi nilai 88pada Symbol Angka88, atau CR EQU 0Dhmempunyai
makna kode ASCII dari CR(Caarriage Return) adalah 0Dh.
3. DB singkatan dari DEFINE BYTE, dipakai untuk memberi nilai tertentu pada
memori-program. Nilai tersebut merupakan nilai 1 byte, bisa berupa angka
ataupun kode ASCII. DBmerupakan Assembler Directive yang dipakai untuk
membentuk teks maupun tabel.
Contoh :
ORG 200h
STRING DB Belajar Mikrokontroler

ORG 200hmemerintahkan program Assembler agar bekerja mulai dari memori

programnomor 200h. Instruksi selanjutnya memerintahkan program Assembler


agar mengisi memori programnomor 200hdan berikutnya dengan tulisan
BelajarMikrokontroler (yang diisikan adalah kode ASCII dari B, e dan
seterusnya).
4. DW singkatan dari DEFINE WORD, dipakai untuk memberi nilai 2 byte ke
memori-program pada baris bersangkutan. Assembler Directive ini biasa dipakai
untuk membentuk suatu tabel yang isinya adalah nomor-nomor memori program.
5. DS/DATA singkatan dari Define Storage, Assembler Directive ini dipakai untuk
membentuk variable. Sebagai variabel tentu saja memori yang dipakai adalah
memori data(RAM) bukan memori program(ROM). Hal ini harus benar-benar

Panduan Praktikum Microcontroller | 10


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

dibedakan dengan Assembler DirectiveDBdan DWyang membentuk kode di


memori program. Dan karena DSbekerja di RAM, maka DShanya sekedar
menyediakan tempat di memori, tetapi tidak mengisi nilai pada memori
bersangkutan.
Secara umum pemrograman assembly yang dipakai sama dengan yang ada pada
praktikum mikroprosesor. Namun ada sedikit perbedaan dalam pemakaian operand-nya
(register,pengaksesan alamat).Perulangan,percabangan pun hampir sama. Maka seharusnya
praktikan sudah bisa memprogram microcontroller. Untuk lebih jelasnya dapat di lihat tabel
instruction set di lampiran. Register yang biasa digunakan dalam MCS51 adalah register
Akumulator(A)
Contoh program :
$MOD52
ROM
LED_PIN
COUNT_X
COUNT_Y
COUNTD
TEMP
ORG ROM
AJMP START

EQU 000H
BIT 090H
DATA 040H
DATA 041H
DATA 042H
DATA 043H

ORG 200H
TABEL ANIMASI :
DB 081H,042H,024H,018H,024H,042H
ORG 400H
START :
MOV DPTR,#TABEL ANIMASI
MOV COUNTD,#06H
ULANG ANIMASI:
MOV A,#0H
MOVC A,@A+DPTR
MOV P1,A
INC DPL
DJNZ COUNTD,ULANG_ANIMASI
AJMP START
END

$MOD52 adalah berisi definisi alamat register beserta pin-pin dari AT89S52,register
sendiri terdapat di memori internal mikrokontroler.Sebenarnya kita juga bisa mendefinisikan
pin dan register kita sendiri. Yang perlu diingat alamat 0-32byte pertama digunakan untuk
stack memori, jadi jangan diutak-atik. Sedangkan alamat 80h keatas digunakan untuk IO dan
setting lainnya.Jadi kita meempunyai alamat dari 20-7F total 95 byte kosong untuk dapat
difungsikan sebagai variabrl bebas. Tanpa #MOD52,kita masih bisa membuat
program,hanya saja kita harus tahu alamat fisik dari register yang akan kita manfaatkan,
misal:
P0
P1
P2

DATA 080H; PORT0


DATA 090H; PORT1
DATA 0A0H; PORT2

Panduan Praktikum Microcontroller | 11


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |
P3

DATA 0B0H; PORT3

Nama port 0 bisa kita ganti sesuai keinginan kita. Misal kita memakai port 0 untuk
lcd,maka kita bisa definisikan dengan kode berikut:
LCD

DATA 080H; LCD PORT

MOV COUNTD,#06h.
Tanda # pada 06h berarti 06h adalah immediate data,yang berarti instruksi ini akan
mengisi variable COUNTD dengan nilai 06h. Sedangkan MOV COUNTD,06hberarti variable

COUNTD akan diisi dengan nilai dari RAM alamat 06h.


MOVC A,@A+DPTR

MOVC berarti mengambil data dari ROM(code),dari alamat sesuai dengan nilai dari
A+DPTR.
Bagaimana untuk menuilis secara dinamis di RAM?
Dengan MOV @R1,A
Misal kita ingin menuilis di RAM alamat 60h,maka bisa memakai kode berikut
MOV R1,#80h
MOV @R1,A

Contoh program lain dapat dilihat di lampiran.


h. ASM51
ASM51 adalah program assembler.Program ini menerjemahkan bahasa assembly ke
dalam kode binary(bahasa mesin) yang dimengerti oleh mikroprosesor.
Jadi, pertama tulis program kalian di notepad. Simpan pada file berekstensi .asm dan
letakkan di folder yang sama dengan ASM51.EXE. Masuk command prompt, ketikkan:
ASM51 namafile

Gambar 6. Tampilan Program ASM51 pada Command Prompt


Jika benar,maka akan muncul tulisan seperti diatas. Jika ada eror juga akanNampak
pada pesan.Setelah demikian,maka akan muncul file .HEX yang nantinya di-download-kan
ke mikro dan file .LST.
i. ISP (In-System Programming)
Setelah membuat program,kita akan memasukkan progam tersebut ke dalam
mikrokontroler. Kita bisa menggunakan STK200 memakai parallel port.

Panduan Praktikum Microcontroller | 12


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Gambar 7. Skema STK200


Sebenarnya ISP tidak terbatas hanya menggunakan STK200,dapat juga memakai
Universal Programmer,serial UART, tergantung mikrokontroler kita mendukung yang mana.
j. ISP PROGRAMMER
Isp-prog adalah program untuk men-download-kan program kita ke dalam
mikrokontroler.

Gambar 8. Tampilan program ISP-PROGRAMMER


Untuk menggunakan jangan lupa mengatur setup,tipe microcontroller,crystal yang
digunakan, memilih file yang akan di-download-kan(file .hex keluaran dari assembler).
k. SIM535 dan EdSim51
SIM535 dan EdSim51 merupakan program simulator mikrokontroler.Dengan program ini
kita bisa melihat status register yang ada, men-trace program kita. Kita bisa memilih
program keluaran assembler ASM51(file .lst) yang sudah kita buat.

Panduan Praktikum Microcontroller | 13


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Gambar 9. Tampilan Program Sim535

Gambar 10. Tampilan Program EdSim51


3. PENUTUP

Panduan Praktikum Microcontroller | 14


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Demikian yang dapat saya sampaikan tentang MCS-51. Untuk hal-hal lain akan dibahas
pada topic berikutnya. Selain itu, praktikan juga harap mempelajari handout, buku acuan
maupun datasheet AT89S52 sebagai persiapan mengikuti praktikum.
Selamat belajar dan mencoba.Tuhan memberkati.

Orang LUAR BIASA itu SEDERHANA dalam UCAPAN,tetapi HEBAT dalam TINDAKAN.
- unknown -

SIMULASI MIKROKONTROLER DENGAN MENGGUNAKAN ISIS PROTEUS


Proteus adalah program untuk mendesain rangkaian elektronika dan PCB serta melakukan
simulasi.Didalam Proteus sendiri tergintegrasi program ISIS untuk membuat rangkaian elektronika
dan ARES untuk membuat desain PCB. Pada praktikum akan lebih difokuskan pada simulasi
dengan program ISIS. Kelebihan utama program ISIS-Proteus adalah pada kemampuannya untuk
mensimulasikan rangkaian mikrokontroler yang sudah kita rancang.Program yang sudah kita buat,
setelah dicompile dengan compiler, dapat dijalankan dan disimulasikan.ISIS-PROTEUS juga
menyediakan contoh rangkaian mikorokontroler yang sudah terintegrasikan dengan komponen
lainnya.Misalnya Rangkaian pengendali motor stepper, atau pembacaan sensor suhu beserta
program yang sudah bisa langsung dijalankan.
Berikut adalah tutorial singkat untuk membuat dan mensimulasikan rangkaian minimum system
AT89S52menggunakan ISIS-Proteus:
1. Buka Proteus 7 Profesional > ISIS 7 Profesional.
2. Untuk memilih komponen yang akan digunakan, pertama-tama klik tombol P (Pick from
Libraries). Jendela Pick Devicesakan muncul.

Panduan Praktikum Microcontroller | 15


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Button Pick Devices

3. Pada Keywoard kita masukkannama komponen atau devices yang kita inginkan. Yang kita
inginkan adalah mikrokontroler AT89S52, namun karena tidak ada pada library kita
masukkan saja AT89C52. Secara umum kedua mikrokontroler tersebut sama saja, hanya
berbeda pada metode pemrograman mikrokontoler tersebut. AT89S52 mendukung
pemrograman dengan metode ISP (In System Programming), sementara AT89C52 tidak.
Namun karena kita menggunakan ISIS untuk mensimulasikannya, kita tidak perlu
memikirkan metode pemrograman mikrokontrolernya.

Jendela Pick Devices.

4. Pada workspace kita klik pada area kosong maka chip mikorokontroler AT89C52akan
muncul.

Panduan Praktikum Microcontroller | 16


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Mikrokontroler AT89C52

5. Untuk menambahkan komponen lain caranya sama saja seperti langkah 3 dan 4. Komponen
yang kita gunakan akan muncul pada kotak DEVICES. Berikut adalah daftar komponen
untuk membuat rangkaian minimum system at89s52/at89c52

Jendela Devices

6. Untuk memunculkan terminal VCC dan GND, pada toolbar dibagian kiri kita klik tombol
Terminal Mod, kemudian pilih POWER /GROUND kemudian klik lagi pada workspace.
Untuk menyambung kaki-kaki antar komponen tinggal klik kaki komponen yang diinginkan
kemudian tarik ke kaki komponen yang lain.

Panduan Praktikum Microcontroller | 17


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Button Terminals Mode dan Jendela Terminal

7. Berikut adalah rangkaian minimum system dari AT89C52 yang sudah selesai dirancang.
Semua mikrokontroler 51 atmel memilki osilator on-chip yang dapat digunakan sebagai
sumber clock ke CPU. Untuk menggunakannyadi antara kaki XTAL1 dan XTAL2
dihubungkan resonator kristal atau keramik dengan kapasitor yang terhubung ke ground.
Biasa digunakan kristal dengan frekuensi 12 MHz atau 11.0592 MHz. Satu siklus mesin
paling lama dikerjakan dalam 12 periode osilator. Jika digunakan kristal 12 MHz, maka
untuk satu siklus mesin dibutuhkan waktu 1s.
Pada PORT 0 dipasang resistor pull up eksternal karena PORT 0 tidak memilki pull up
inernal. Pada pin reset dipasang rangkaian untuk mereset mikrokontroler jika switch ditekan.

Panduan Praktikum Microcontroller | 18


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Min-System AT89S52/AT89C52

8. Berikut adalah rangkaian minimum system dari AT89C52 yang sudah selesai dirancang
beserta modul LED indicator pada semua PORT nya:

Panduan Praktikum Microcontroller | 19


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Min-System AT89S52/AT89C52 dengan modul LED Indikator

9. Untuk memasukkan program kedalam mikrokontroler AT89C52, double-klik AT89C52 akan


muncul jendela Edit Component. Pada Program File, kita masukkan program yang
dinginkan untuk disimulasi. Jangan lupa pada Clock Frequency kita masukkan frekuensi
dari Kristal yang kita gunakan dalam hal ini 12MHz. Kemudian klik OK.

Jendela Edit Component

Panduan Praktikum Microcontroller | 20


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

10. Untuk mesimulasikan, kita klik tombol play yang berada di kiri bawah work space. Simuasi
dapat dihentikan dengan menekan tombol stop, atau dihentikan sementara dengan tombol
pause. Simulasi juga dapat djalankan per step.
Tombol Play, Step, Pause, dan Stop

Panduan Praktikum Microcontroller | 21


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Lampiran 1
CONTOH PROGRAM ASSEMBLY
Contoh1 :
ORG 000H
JMP PROGRAM
ORG 100H
PROGRAM:MOV A,#0H
ULANG: MOV P1,A
CALL DELAY
INC A
JMP ULANG
DELAY: MOV R0,#00H
MOV R1,#00H
ULANG1: INC R1
ULANG2: INC R0
CJNE R0,#0FFH,ULANG2
CJNE R1,#040H,ULANG1
RET
SELESAI: NOP
END

Program di atas kalau dijalankan akan membentuk sebuah penghitung (counter) 8 bit pada port1.
Contoh 2 :
ORG 000H
JMP MULAI
ORG 100H
MULAI: MOV P1,#0FFH
ULANG: JNB P0.0,ULANG
MOV P1,#00H
END

Program di atas akan menunggu masukan pada pin P0.0 diberi masukan high, lalu dia akan
mengeluarkan nilai 00h ke seluruh pin port 1 (P1.0-P1.7).
Contoh 3 :
ORG 000H
JMP PROGRAM
ORG 100H
PROGRAM:MOV P1,#0FFh
ULANG1: MOV C,P1.0
MOV P1.1,C
JMP ULANG1
END

Program di atas akan memindahkan keadaan logika (misal diberi masukan 1) pada pin P1.0 ke pin
P1.1 melalui register C.

Panduan Praktikum Microcontroller | 22


Topik 1 Pengenalan Microcontroller Keluarga MCS-51
(Looping dan Aritmatika) |

Contoh 4:
ORG 000H
JMP PROGRAM
ORG 100H
PROGRAM:MOV A,#01H
ULANG: MOV P1,A
RL A
CALL DELAY
JMP ULANG
DELAY: MOV R0,#00H
MOV R1,#00H
ULANG1: INC R1
ULANG2: INC R0
CJNE R0,#0FFH,ULANG2
CJNE R1,#040H,ULANG1
RET
SELESAI: NOP
END

Program di atas jika dijalankan akan membentuk animasi LED sederhana pada port1 jika keluaran
port 1 (pin P1.0 sampai P1.7) dihubungkan dengan LED. Animasi LED yang dibentuk adalah jenis
running LED.

Anda mungkin juga menyukai