Anda di halaman 1dari 20

PANDUAN PRATIKUM

MERANCANG SISTEM MINIMUM MIKROKONTROLER

1.1 TUJUAN PRAKTIKUM

1. Mahasiswa mampu memahami prinsip kerja rangkain Sistem minimum

2. Mahasiswa dapat merancang system minimum mikrokontroler

1.2 Landasan Teori

Mikrokontroler adalah mikrokomputer dalam keping tunggal (Single Chip

Microcomputer) yang dapat berdiri sendiri serta memiliki CPU dan dilengkapi dengan

memori input dan output. Mikrokontroler AT89S51 adalah mikrokontroler ATMEL yang

kompetible penuh dengan mikrokontroler keluarga MCS-51, membutuhkan daya yang

rendah, memiliki performa yang tinggi dan merupakan mikrokomputer 8 bit yang

dilengkapi 4 Kbyte EPROM (Eraseable and Programeble Read Only Memori) dan 128

byte RAM internal. Program memori dapat deprogram ulang dalam system atau dengan

menggunakan program Nonvolately Memory Konvensional.

1.2.1 Arsitektur Mikrokontroler AT89S51


Gambar Arsitektur mikrokontroler AT89S51

1.2.2 Osilator dan Clock AT 89S51

Jantung penggerak pada mikrokontroler AT89S51 adalah sebuah rangkaian pembangkit

pulsa clock, yang bekerja membangun sinkronisasi kerja dalam sistim. Pin XTAL1 dan XTAL2

adalah dua kaki yang disediakan untuk pembentuk jaringan osilator. Untuk membangun

jaringan osilator digunakan dua buah kapasitor keramik 30 pF dan sebuah kristal seperti

gambar dibawah.

Gambar Rangkaian Osilator pada AT 89S51


1.3. Alat dan Bahan

a. Project Board

b. Multimeter

c. Power Supply

d. Jumper

e. Kristal

f. Resistor
g. Kapasitor

h. IC AT89S51

i. LED

j. Downloader

k. Laptop

Software pendukung

-MIDE51

-ProgISP 1.72

-Protesius 8 Profesional

1.4 Langkah Percobaan

1. Buatlah rangkaian Sistem minimum seperti gambar di bawah ini

2. Hubungkan bagian keluaran pada port 1

3. Hubungkan Reset pada pin 9

4. Hubungkan XTAL 1 dan XTAL 2 pada Kristal secara pararel dan hubungkan secara seri

pada kapasitor.

5. Hubungkan kaki kapasitor pada ground


6. Atur tegangan pada power supply sebesar 4,5V 5 V sesuai dengan ketetapan yang

telah ditentukan

7. Perhatikan lampu led yang menyala.

1.5 Hasil Pengamatan

1.6 Laporan Pratikum

PANDUAN PRATIKUM

PEMOGRAMAN ASSEMBLY

2.1 TUJUAN PRAKTIKUM

1. Mahasiswa trampil menggunakan bahasa pemrograman assembly

2.2 LANDASAN TEORI

Bahasa Assembly adalah bahasa komputer yang kedudukannya di antara bahasa mesin dan bahasa

level tinggi misalnya bahasa C, C++, Pascal, Turbo Basic, Java, dan sebagainya. Bahasa C atau Pascal

dikatakan sebagai bahasa level tinggi karena memakai kata-kata dan pernyataan yang mudah dimengerti

manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya. Assembler adalah program

yang bekerja membantu penulisan instruksi dalam format bahasa inggris sehingga mudah dibaca dan

dipahami.

MOV R0, #02h

MOV A, #03h

ADD A, R0

Perintah baris pertama bekerja menjalankan proses pengisian register R0 dengan data 02h. Perintah

baris kedua bekerja menjalankan proses pengisian register A dengan data 03h. Kemudian proses

penjumlahan data pada register A dengan data pada register R0 dijalankan menggunakan perintah ADD A,R0

dan menghasilkan data 05h tersimpan di register A. Perintah MOV dan ADD adalah mnemonik atau

singkatan dari perintah MOVE dan ADD.


2.3 ALAT DAN BAHAN
a. Leptop
b. Downloader
c. Software pendukung

-MIDE51

-ProgISP 1.72

-Protesius 8 Profesional

2.4 Prosedur Percobaan :


1. Aktifkan program FSI, kemudian ketik program di bawah ini :
a) LJMP MULAI
ORG 100H
MULAI :
MOV A, #9CH
ADD A, #64H
ADD A, #07H
SELESAI :
JMP SELESAI
b) LJMP MULAI
ORG 100H
MULAI:
MOV A, #9CH
ADD A, #64H
ADDC A, #07H
SELESAI:
JMP SELESAI
Simpan program pada direktori kerja anda
Jalankan program (Debug Start), tekan F7 atau F8 untuk melakukan tracing program
kemudian amati perubahan nilai pada register ACC dan C pada kedua program diatas setelah
itu tulis kesimpulan perbedaan apa yang ada pada kedua program diatas.
2.5 Hasil Pengamatan
2.6 Laporan Pratikum

PANDUAN PRATIKUM

APLIKASI DENGAN LED

3.1 TUJUAN PRAKTIKUM


1. Memanfaatkan bilangan biner dan heksadesimal dalam pemrograman Mikrokontroler
2. Membuat rangkaian output sekaligus membuat program yang dapat mengendalikan
konfigurasi nyala LED
3.2 LANDASAN TEORI

LED (Light Emitting Diode) adalah semikonduktor (diode) yang dapat mengeluarkan
cahaya. Terdapat berbagai macam warna LED, yaitu merah, hijau, oranye, kuning, dan biru,
serta dalam berbagai bentuk. Seperti juga diode, LED juga merupakan komponen yang akan
aktif (menyala) jika dialiri arus pada arah tertentu, dan tidak untuk arah arus sebaliknya.
Gambar 3-1 menunjukkan bentuk fisik LED beserta simbolnya. Kaki yang lebih panjang
adalah anode, yang akan dihubungkan dengan kutub +, dan kaki yang lebih pendek adalah
katode, yang akan dihubungkan dengan kutub . Ingat KNAP : Katode (ke) Negatif, Anode (ke)
Positif.

Gambar 3-1 Komponen LED beserta simbolnya


3.2.1 Prinsip Kerja Program LED
Pada program ini port 0 berfungsi sebagai output, dengan masing-masing pin P0.0, P0.1, P0.2, dan
P0.3 diberi logika 0 dan pin P0.4, P0.5, P0.6, dan P0.7 diberikan logika 1. Pada dasarnya prinsip
kerja output mikrokontroler adalah mirip saklar yang mempunyai dua kondisi, yaitu :
menghubungkan rangkaian dengan Vcc jika diberi logika 1
menghubungkan rangkaian dengan GND jika diberi logika 0.

Sews

Gambar 3.2(a) Gambar 3.2(b)


Gambar 3.2(a) menunjukkan saat P0.0 diberi logika 1, maka rangkaian terhubung dengan Vcc,
akibatnya tidak ada beda tegangan pada rangkaian (sama-sama Vcc) sehingga tidak ada arus
mengalir dan LED akan padam. Gambar 3-2(b) menunjukkan saat P0.0 diberi logika 0, maka
rangkaian terhubung dengan GND sehingga terjadi beda tegangan pada rangkaian. Karena anode
LED terhubung dengan Vcc dan katode LED terhubung dengan GND, maka arus akan mengalir
pada LED dan LED akan menyala. Untuk memberikan logika 0 atau 1 kepada suatu pin dapat
dilakukan secara individual per masing-masing port, seperti terdapat pada program LED, ataupun
secara sekaligus 1 port (yang terdiri dari 8 pin). Untuk memberikan logika secara sekaligus dipilih
di antara tiga sistem bilangan, yaitu biner, heksadesimal atau desimal. Misal untuk konfigurasi
nyala/padam seperti pada LED_1.bas, yaitu P0.0 hingga P0.3 menyala dan P0.4 hingga p0.7
padam, dapat dipandang sebagai bilangan biner 11110000b.
3.3. Alat dan Bahan

a. Project Board
b. Multimeter
c. Power Supply
d. Jumper
e. Kristal
f. Resistor
g. Kapasitor
h. IC AT89S51
i. LED
j. Downloader
k. Laptop
Software pendukung
-MIDE51
-ProgISP 1.72
-Protesius 8 Profesional
3.4 Langkah Percobaan

1. Buatlah rangkaian Sistem minimum seperti gambar di bawah ini

2.Program untuk LED 1 menyala 4 dan 4 padam.

Org 00h
Start: MOV P2#00001111b; Turn on LED P2.4-P2.7
ACALL DELAY
MOV P2,#11110000b; Turn on LED P2.0-P2.3
ACALL DELAY
SJMP start
DELAY: MOV R0,#5H
DELAY: MOV R1,#5H
DELAY: MOV R2,#0
djnz R2,$
djnz R1, delay 2
djnz R1, delay 2

ret
end
3. Buka program MIDE51 dibuka untuk melihat adanya error terjadi pada program yang

sudah diketik. Dengan cara File Open Nama File yang disimpan sebelumnya

Build.
4. Setelah itu buka program ProgISP Versi 1.72. lalu upload program yang sudah dibuat

sebelumnya dengan program ini dengan cara : Load Flash Pilih File Led3.hex

Auto. Dan data akan otomatis di upload melalui dounloader yang terhubung dengan PC

sebelumnya.
5. Perubahan pada LED diamati dan dicatat.
3.5 HASIL PENGAMATAN
LED

NYALA NYALA NYALA NYALA MATI MATI MATI MATI

MATI MATI MATI MATI NYALA NYALA NYALA NYALA

lampu LED menyala selama 5 kali perulangan di lanjut 4 lampu LED yang lain menyala
selama 6 kali bergantian.

3.6 ANALISA DATA PERCOBAAN

PANDUAN PRATIKUM

APLIKASI DENGAN 7 SEGMEN

4.1 TUJUAN PRAKTIKUM


1. Membuat rangkaian output sekaligus membuat program untuk 7 segment yang
menampilkan lebih dari satu digit.
4.2 LANDASAN TEORI
7 segment adalah salah satu komponen yang paling banyak dipergunakan untuk
menampilkan karakter berupa angka. Pada dasarnya 7 segment adalah rangkaian 7 buah
LED dijadikan satu. Untuk dapat membentuk suatu karakter maka LED-LED tersebut
diatur nyala/padamnya secara terpisah. Pada suatu 7 segment juga ditambahkan satu LED
untuk dot sebagai penunjuk desimal. Untuk memudahkan dalam mengidentifikasi,
masingmasing segmen yang berupa LED diberi notasi a, b, c, d, e, f, g dan h
4.3 Alat dan Bahan

a. Kabel

b. Kapasitor 6,8

c. Kristal 12 Mhz

d. Mikrokontroler AT89S51

e. PCB

f. Power Suply

g. Resistor 6,8

h. Resistor 330

i. 7 segmen

4.4 PROSEDUR PERCOBAAN


1. Rangkailah rangkaian seperti gambar dibawah ini
2. Ketik Program untuk menyalakan beberapa bagian 7 segment:
Org 00h
Start: mov p2,#0A0h
Call delay
mov P2,#0C0h
call delay
sjmp start
delay: mov R1,#50H
del1: mov R2,#90H
del2: djnz R2,del2
djnz R2,del1
ret
end
3. Kemudian program untuk menyalakan satu per satu bagian segmennya:
ORG 0H
MAIN : MOV A.#00000001B
MOV R5,#7H
CF : MOV P2,A
CALL DELAY
RL A
DJNZ R5,CF
MOV A,#10000000B
MOV R5,#7H
CF2 : MOV P2,A
CALL DELAY
RR A
DJNZ R5,CF2
SJMP MAIN

DELAY :MOV R2,#0H


DELAY1 :MOV R3,#90H
DELAY2 :MOV R4,#1
DJNZ R4,$
DJNZ R3,DELAY2
DJNZ R2,DELAY1
RET
END
4. Kemudian buka program MIDE51 untuk melihat adanya error yang terjadi pada program
yang sudah diketik. Dengan cara File Open Nama File yang disimpan sebelumnya
Build.
5. Setelah itu buka program ProISP Versi1.72. lalu upload program yang sudah dibuat
sebelumnya dengan program ini : Load Flash Pilih File Led3.hex Auto. Dan data akan
otomatis diupload melalui downloader yang terhubung dengan PC sebelumnya
6. Perubahan pada LED diamati dan dicatat.
4.5 HASIL PENGAMATAN
4.6 ANALISA PENGAMATAN

PANDUAN PRATIKUM

APLIKASI DENGAN PUSH BUTTON

5.1 TUJUAN PRAKTIKUM


1. Membuat program yang dapat menampilkan tombol yang ditekan pada keypad

5.2 LANDASAN TEORI


Push button adalah kumpulan saklar NO. Untuk menunjukkan posisi saklar, keypad dibagi

menjadi baris dan kolom. Gambar menunjukkan contoh keypad 3 kolom 4 baris, yang lebih sering

disebut sebagai keypad 3 x 4. Pin yang terhubung dengan baris akan bertindak sebagai output dari

mikrokontroler, sedangkan pin kolom akan bertindak sebagai input.Untuk mendeteksi tombol mana

yang ditekan, maka mikrokontroler akan mengirim sinyal low ke baris 1, kemudian mikrokontroler

akan mengecek kolom mana yang memberikan sinyal low. Misal tombol angka 1 ditekan, maka

saat baris 1 diberikan sinyal low, maka kolom 1 akan memberikan sinyal low, sedang dua tombol

lainnya pada baris 1 (tombol angka 2 dan 3) yang tidak ditekan akan terbuka. Pada gambar
rangkaian tersebut tampak rangkaian push button, bila saklar ditekan maka port sesuai dengan

bit tersebut akan mendapat logika low 0 dan sebaliknya bila saklar tidak ditekan maka port

tersebut akan mendapat logika high 1.

5.3 ALAT DAN BAHAN


a. Jumper

b. Push Botton

c. Mikrokontroler AT89S51

d. PCB

e. Power Suply

f. LED

g. Downloader

h. Laptop

Software pendukung
-MIDE51
-ProgISP 1.72
-Protesius 8 Profesional
5.4 PROSEDUR PERCOBAAN
a. Rangkailah rangkaian seperti gambar dibawah ini

b. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
c. Ketik program berikut ini:

Org 0h

Start:
Mov A, P2 ;Ambil data dari P2 dan Simpan ke A
Mov P0, A ;Kirim data A ke P0
sjmp start
end
d. Simpanlah program yang anda ketik dan beri nama : prog21a.asm
e. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program

dari *.asm ke *.hex.


f. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software

( Lihat Petunjuk Penggunaan)


g. Lakukan pengamatan pada LED.

Saklar Kondisi LED yang Nyala (D1-D2-D3-D4-D5-D6-D7-D8)


SW1
SW2
SW3
SW4
SW5
SW6
SW7
SW8

5.5 HASIL PENGAMATAN


5.6 ANALISA PENGAMATAN

PANDUAN PRATIKUM

APLIKASI DENGAN LCD

6.1 TUJUAN PRAKTIKUM


1. Membuat rangkaian output sekaligus membuat program yang dapat mengendalikan tampilan
LCD
6.2 LANDASAN TEORI
LED dan 7 segment sangat umum ditemui pada berbagai macam peranti digital. Walau
demikian untuk aplikasi yang membutuhkan informasi yang lebih kompleks diperlukan display
yang dapat menampilkan lebih banyak karakter. Saat ini LCD (Liquid Crystal Display)
semakin banyak dipergunakan sebagai pengganti rangkaian LED maupun 7 segmen. Hal ini
disebabkan oleh
semakin murah harga LCD
kemampuan LCD untuk menampilkan berbagai macam karakter berupa angka dan
huruf, bahkan grafik.
Pemrograman LCD yang semakin mudah
LCD dipergunakan antara lain untuk menampilkan pesan atau informasi kepada pengguna
(misal display microwave atau jam digital) dan untuk menampilkan menu input untuk
perubahan setting (misal pada mesin fotokopi).
Table Nama dan fungsi masing-masing pin pada LCD

6.3 ALAT DAN BAHAN

a. Project Board

b. Multimeter

c. LCD

d. Power Supply

e. Jumper

f. Kristal

g. Resistor
h. Kapasitor

i. IC AT89S51
j. LED
k. Downloader
l. Laptop
Software pendukung
-MIDE51
-ProgISP 1.72
-Protesius 8 Profesional

6.4 PROSEDUR PERCOBAAN


1. Rangkailah rangkaian seperti gambar dibawah ini

2. Ketik Program untuk menyalakan LCD:


;===Koneksi LCD RS=p3.2, E=p3.3, Data=P1====

ORG 000H
AJMP START

;=======LCD KONSTANTA======
DISPCLR EQU 00000001B
FUNCSET EQU 00111000B
ENTRMOD EQU 00000110B
DISPON EQU 00001100B

ORG 100H
START:
LCALL INITLCD

MOV A,#80H
CALL INSTLCD
MOV DPTR,#TULISAN1
CALL LCDSTRING

LOOP: AJMP LOOP


;=======PROSEDUR KONTROL DATA OPERASI========
INSTLCD:
CLR P3.2 ;RS=0 fo LCD instr
SJMP LCDOUT
DATALCD:SETB P3.2 ;RS=1 fo LCD data ASCII
SJMP LCDOUT
LCDOUT: MOV P1,A ;send ASCII/instr to LCD
SETB P3.3 ;send pulse enab to LCD
CLR P3.3
SETB P3.3
LCALL DELAY
RET

;=======PROSEDUR INISIALISASI LCD=============


INITLCD:
MOV A,#DISPCLR
LCALL INSTLCD
LCALL DELAY
MOV A,#FUNCSET
LCALL INSTLCD
LCALL DELAY
MOV A,#DISPON
LCALL INSTLCD
LCALL DELAY
MOV A,#ENTRMOD
LCALL INSTLCD
LCALL DELAY
RET

;=======PROSEDUR PENULISAN DATA KE LCD


WR_DT:
ADD A,#30H
LCALL DATALCD
LCALL DELAY
RET
;=======PROSEDUR CETAK STRING=========
PRINTSTRINGLOOP:
LCALL DATALCD
INC DPTR
LCDSTRING:
CLR A
MOVC A,@A+DPTR
JNZ PRINTSTRINGLOOP
RET

;=======PROSEDUR DELAY=========
DELAY:
MOV R6,#20
MUTER:
MOV R7,#250
DJNZ R7,$
DJNZ R6,MUTER
RET

;=======DATABASE STRING=======
TULISAN1:
DB 'HELLO WORLD',0

END

Penjelasan:
Jadi pertama mendeklarasikan inisial LCD 16x2 dengan output 4 bit, pada program
berikut
DISPCLR EQU 00000001B
FUNCSET EQU 00111000B
ENTRMOD EQU 00000110B
DISPON EQU 00001100B
Kemudian perintah CLR P3.2 akan mengirimkan nilai 0 pada RS sehingga akan mereset
tampilan lcd, jika RS bernilai 1 maka akan mulai menuliskan karakter, untuk perintah berikut
INITLCD:
MOV A,#DISPCLR
LCALL INSTLCD
LCALL DELAY
MOV A,#FUNCSET
LCALL INSTLCD
LCALL DELAY
MOV A,#DISPON
LCALL INSTLCD
LCALL DELAY
MOV A,#ENTRMOD
LCALL INSTLCD
LCALL DELAY
RET
Adalah perintah yang digunakan untuk memasukkan konstanta LCD ke dalam nilai A
secara berurutan, sehingga LCD bisa di set ke dalam format 4 bit data dan 16x2
WR_DT:
ADD A,#30H
LCALL DATALCD
LCALL DELAY
RET
Program diatas adalah program untuk menuliskan karakter ke LCD ADD A, #30H untuk
menambahkan nilai atau isi A dengan 30H untuk memberikan nilai penulisan, kemudian data
yang akan dituliskan dipanggil melalui perintah LCALL DATALCD dengan ditambah delay.
Data yang akan dikirimkan ke LCD ada dibaris program berikut
TULISAN1:
DB 'HELLO WORLD',0
Program untuk mengirimkan data ke lcd yaitu ada pada program
MOV A,#80H
CALL INSTLCD
MOV DPTR,#TULISAN1
CALL LCDSTRING
Pertama memasukkan nilai 80H ke dalam register A yang digunakan untuk perintah write
atau output, kemudian memanggil spesifikasi lcd yang akan digunakan, setelah
itumengirimkan tulisan ke DPTR adalah pointer penunjuk tempat, LCDSTRING adalah untuk
mendeklarasikan string dan pointer / penempatan karakter.
Simpanlah program yang anda ketik dan beri nama : prog21a.asm
4. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi

program dari *.asm ke *.hex.


5. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software

( Lihat Petunjuk Penggunaan)


6. Lakukan pengamatan pada LCD.
6.5 HASIL PENGAMATAN
6.6 ANALISA PENGAMATAN

Anda mungkin juga menyukai