Anda di halaman 1dari 12

LAPORAN EKSPERIMEN MIKROKONTROLER

PROGRAM PUSH BUTTON DENGAN P3 DIGUNAKAN UNTUK


MENGHIDUPKAN LED PADA P0 SAMPAI TOMBOL PADA P3
DILEPAS

Nama : A.A. Ngurah Surya Mahendra Putra

NIM : 1908521035

Dosen : I Wayan Supardi, S.Si, M.Si

PROGRAM STUDI FISIKA


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS UDAYANA
2022
I. TUJUAN
Tujuan dari praktikum ini adalah:
1. Membuat simulasi rangkaian LED yang di hubungkan dengan port yang ada
pada mikrokontroler AT89S52 di proteus.
2. Membuat program untuk menghidupkan LED yang di hubungkan dengan port
yang ada pada mikrokontroler AT89S52 di read51.
3. Mahasiswa mampu membuat rangkaian LED yang di hubungkan dengan port
yang ada pada mikrokontroler AT89S52.
II. DASAR TEORI
2.1 Mikrokontroler AT89S52
Mikrokontroler AT89S52 merupakan mikrokomputer CMOS 8bit yang memiliki 8
KB Programmable and Erasable Read Only Memory (PEROM). Mikrokontroler
berteknologi memori non-volatile (tidak kehilangan data bila kehilangan daya listrik). Set
instruksi dan kaki keluaran AT89S52 sesuai dengan standar industri 80C51 dan 80C52.
Atmel AT89S52 adalah mikrokontroler yang sangat bagus dan fleksibel dengan harga
yang relatif murah untuk banyak aplikasi sistem kendali berkerapatan tinggi dari Atmel
ini sangat kompatibel dengan mikrokontroler MCS-51 misalnya mikrokontroler
AT89S52 yang terkenal dan banyak digunakan dan telah menjadi standar industri baik
dalam jumlah pin IC maupun set instruksinya.
AT89S52 mempunyai memori yang terdiri dari RAM internal dan Special Function
Register. RAM internal pada mikrokontroler AT89S52 memiliki ukuran 256 byte dan
beralamatkan 00H-7FH serta dapat di akses menggunakan RAM address register. RAM
internal terdiri dari delapan buah register (R0-R7) yang membentuk register banks.
Special Function Register yang berjumlah 21 buah berada di alamat 80H- FFH. RAM ini
berbeda pada lokasi dengan Flash PEROM dengan alamat 000H-7FFH.
Mikrokontroler AT89S52/51 mempunyai 40 kaki (pin), 32 pin dipergunakan
sebagai port parallel. Satu port parallel terdiri dari 8 pin, dengan demikian 32 pin tebagi
menjadi 4 port, yaitu port 0 (P0), port 1 (P1), port 2 (P2) dan pot 3 (P3), masing-masing
port mulai dari 0 sampai 7. Tata letak pin mikrokontrole seperti terlihat seperti pada
Gambar 2.1 :

1
Gambar 2.1 Diagram pin mikrokontroler AT89S52
Fungsi Pin-Pin pada mikrokontroler AT89S52 yaitu:
1. Pin 1 sampai pin 8
Pin 1 – 8 adalah port 1 yang merupakan saluran atau bus I/O 8 bit dua arah
dengan internal pull-up yang dapat digunakan untuk berbagai keperluan seperti
mengendalikan empat input TTL. Port ini juga digunakan sebagai saluran alamat
saat pemrograman dan verifikasi.
2. Pin 9
Merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke tinggi akan
me- reset mikrokontroler ini.
3. Pin 10 sampai pin 17
Pin 10 – pin 17 merupakan saluran atau bus I/O 8 bit dua arah dengan internal
pull- ups yang memiliki fungsi pengganti. Bila fungsi pengganti tidak dipakai
maka dapat digunakan sebagai port paralel 8 bit serbaguna. Selain itu, sebagian
port 3 dapat berfungsi sebagai sinyal kontrol saat proses pemrograman dan
verifikasi.
4. Pin 18 dan pin 19
Pin-pin ini merupakan jalur masukan ke penguat osilator berpenguat tinggi.
Mikrokontroler ini memiliki seluruh rangkaian osilator yang diperlukan pada
chip, kecuali rangkaian kristal yang mengendalikan frekuensi osilator. Oleh
karena itu, pin 18 dan 19 ini sangat diperlukan untuk dihubungkan dengan
kristal. Selain itu XTAL 1 juga dapat digunakan sebagai input untuk inverting

2
osilator amplifier dan input rangkaian internal clock, sedangkan XTAL 2
merupakan output dari inverting oscillator amplifier.
5. Pin 20
Pin 20 merupakan ground sumber tegangan dan diberi simbol “gnd”.
6. Pin 21 sampai pin 28
Pin-pin ini adalah port 2 yang merupakan saluran atau bus I/O 8 bit dua arah
dengan internal pull-ups. Saat pengambilan data dari program memori eksternal
atau selama pengaksesan data memori eksternal yang menggunakan alamat 16 bit
(MOVX@DPTR), port 2 berfungsi sebagai saluran /bus alamat tinggi (A8-A15).
Akan tetapi, saat mengakses data memori eksternal yang menggunakan alamat 8
bit (MOVX@DPTR), port 2 mengeluarkan isi P2 pada special function register.
7. Pin 29
Pin 29 merupakan program Store Enable (PSEN) merupakan sinyal pengontrol
untuk mengakses program memori eksternal agar masuk ke dalam bus selama
proses pemberian/pengambilan instruksi (fetching).
8. Pin 30
Pin 30 sebagai Adress Lacth Enable (ALE)/PROG merupakan penahan alamat
memori eksternal (pada port 1) selama mengakses ke memori. Pin ini juga
berfungsi sebagai pulsa/sinyal input pemograman (PROG) selama proses
pemograman.
9. Pin 31
Pin 31 adalah External Access Enable (EA) merupakan sinyal kontrol untuk
pembacaan memori program. Apabila diset rendah (L) maka mikrokontroler
akan melaksanakan seluruh instruksi dari memori program eksternal, sedangkan
jika diset tinggi (H) maka mikrokontroler akan melaksanakan seluruh instruksi
dari memori program internal ketika isi program counter kurang dari 4096. Port
ini juga berfungsi sebagai tegangan pemograman (Vpp=+12V) selama proses
pemograman.
10. Pin 32 sampai pin 39
Pin 32-pin 39 adalah port 0 yang merupakan saluran bus I/O 8 bit open
collector, dapat juga digunakan sebagai multipleks bus alamat rendah dan bus
data selama adanya akses ke memori program eksternal. Saat proses

3
pemograman dan verifikasi, port 0 digunakan sebagai saluran/bus data. Pull-up
eksternal diperlukan selama proses verifikasi.
11. Pin 40
Pin 40 merupakan sumber tegangan positif yang diberi simbol Vcc.
2.2 Bahasa Assembly Read51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah
bahasa assembly (dalam hal ini Read51). Angka 51 merupakan jumlah instruksi pada
bahasa ini hanya ada 51 instruksi. Dari 51 instruksi, yang sering digunakan orang hanya
10 instruksi. Instruksi –instruksi tersebut antara lain:
1. Instruksi MOV
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register
tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.
Contoh pengisian nilai secara langsung:
MOV R0,#20h
Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda
# sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.
Contoh pengisian nilai secara tidak langsung:
MOV 20h,#80h
...........
............
MOV R0,20h
Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal
ke register 0 (R0).
Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah
alamat.
2. Instruksi DJNZ
Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk
mengurangi nilai register tertentu dengan 1 dan lompat jika hasil
pengurangannya belum nol. Contoh:
MOV R0,#80h
Loop:
...........

4
............
DJNZ R0,Loop
............
R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan
ke perintah pada baris berikutnya.
3. Instruksi ACALL
Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :
.............
ACALL DELAY
.............
DELAY:
................
4. Instruksi RET
Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin
pemanggil setelah instruksi ACALL dilaksanakan. Contoh,
ACALL DELAY
.............
DELAY:
................. RET
5. Instruksi JMP (Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh,
Loop:
.................
..............
JMP Loop
6. Instruksi JB (Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika high (1). Contoh,
Loop:
JB P1.0,Loop
.................

5
7. Instruksi JNB (Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika Low (0). Contoh,
Loop:
JNB P1.0,Loop
.................
8. Instruksi CJNZ (Compare Jump If Not Equal)
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan
suatu nilai tertentu. Contoh,
Loop:
................
CJNE R0,#20h,Loop
................
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop.
Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi
selanjutnya.
9. Instruksi DEC (Decreament)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang
dimaksud dengan 1. Contoh,
MOV R0,#20h ;R0 = 20h
................
DEC R0 ;R0 = R0 – 1
.............
10. Instruksi INC (Increament)
Instruksi ini merupakan perintah untuk menambahkan nilai register yang
dimaksud dengan 1. Contoh,
MOV R0,#20h ;R0 = 20h
................
INC R0 ;R0 = R0 + 1
.............

6
III. LIST APLIKASI DAN KOMPONEN
3.1 Aplikasi
1. Proteus Pro 8
2. Read51
3.2 Komponen
1. Mikrokontroller AT89S52
2. Resistor 360 ohm 8 buah
3. Resistor 10 Kohm 1 buah
4. LED 8 buah
5. Push button
6. Catu daya 5 volt
7. Kristal 11.592 MHz 1 buah
8. Kapasitor 33 pF 2 buah
9. Kapasitor 10 uF 1 buah

IV. Langkah Kerja


Membuat Program:
1. Buka aplikasi Read51
2. Pilih New File > Assembly File > OK
3. Buat program yang diperlukan kemudian compile
4. Simpan file
Rangkaian simulasi:
1. Menjalankan aplikasi proteus
2. Mencari list komponen yang diperlukan
3. Merangkai komponen seperti Gambar 4.1 pada aplikasi proteus

7
Gambar 4.1 Rangkaian Percobaan Masukan/Keluaran Penggerak LED
4. Setelah rangkaian selesai, masukan program ke AT89S52 dengan cara klik
kanan > Edit Properties > masukan file program yang telah dibuat.
5. Run simulasi yang dibuat.

V. GAMBAR RANGKAIAN
Adapun rangkaian yang telah dibuat pada percobaan praktikum ini adalah seperti
pada Gambar 5.1

Gambar 5.1 Rangkaian Percobaan Masukan/Keluaran Penggerak LED

8
VI. PROGRAM

Adapun program yang telah dibuat pada percobaan ini sebagai berikut:

o Program push button dengan P3 digunakan untuk menghidupkan LED


pada P0 sampai tombol pada P3 dilepas
#include <sfr51.inc>
org 0h
Mulai:
Mov A,P3
CJNE A,#0FEh,Mati
Mov R0,#0
Mov P0,#00h
SJMP Mulai
Mati:
Mov P0,#0FFh
SJMP Mulai
End
VII. Hasil dan Pembahasan

Hasil dari percobaan yang telah dilakukan dapat dilihat pada video di link berikut:

https://youtu.be/7sEoV7L0cE4

VIII. Kesimpulan
Adapun kesimpulan yang dapat diambil berdasarkan praktikum yang telah
dilakukan adalah:
1. Penggerak pada mikrokontoler menggunakan bahasa pemograman assembly
dengan berpatokan pada kaidah digital dasar sehingga pengoperasian sistem
menjadi sangat mudah dikerjakan sesuai dengan logika sistem. Bahasa assembly
ini tidak menggunakan begitu banyak syarat penulisan bahasa pemrograman,
seperti huruf besar dan huruf kecil untuk bahasa assembly tetap diwajarkan.
2. Mikrokontroler tersusun dalam satu chip dimana prosesor, memori, dan I/O
terintegrasi menjadi satu kesatuan kontrol sistem sehingga mikrokontroler dapat

9
dikatakan sebagai komputer mini yang dapat bekerja secara inovatif sesuai dengan
kebutuhan sistem.
3. Simulasi rangkaian dengan proteus pada praktikum ini akan sangat membantu
dalam perancangan alat nyatanya..

10
Daftar Pustaka

Supardi, I Wayan. 2015. Modul Praktikum Mikrokontroler. Jimbaran : Program Studi


Fisika Universitas Udayana.
Ujang,Khairul Ario. 2008. Sensor Optik Sebagai Saklar Otomatis Dalam Pengisan
Sampel Gula Kedalam Box Dengan Menggunakan Mikrokontroller At89s52.
Program Studi Diploma Ii Fisika Instrumentasi Jurusan Fisika Fakultas Matematika
Dan Ilmu Pengetahuan Alam Universitas Sumatera Utara Medan.

11

Anda mungkin juga menyukai