Anda di halaman 1dari 159

Microcontroller AT89sXX Trainer Kit

Experiment Manual

Petunjuk Praktikum

Microcontroller AT89sXXX Trainer Kit

Oleh: Triwiyanto

Media Pengembangan
Mikrokontroler
Keluarga MCS-51

Site: www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 1


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 1
DISPLAY LED

TUJUAN:
1. Mahasiswa memahami rangkaian mikrokontroller untuk menghidupkan dan mematikan
LED.
2. Mahasiswa dapat memahami program assembly untuk menghidupkan dan mematikan
LED.
3. Mahasiswa memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, RL dan
RR.
4. Mahasiswa memahami pembuatan instruksi waktu tunda

GAMBAR:
VCC

J3

2
1 EN LED
D1

P0.0..P0.7
D8
Gambar 1.1 Rangkaian Display LED

Perhatikan pada gambar 1.1 tersebut. Delapan buah LED terhubung ke port 0, yang
difungsikan sebagai output. Pada konfigurasi tersebut LED akan nyala bila diberi logika
LOW 0 melalui port 0, dan LED akan padam bila diberi logika HIGH 1 melalui port 0.
Agar Display LED ini dapat aktiv maka jumper EN LED harus dihubungkan singkat.

Percobaan 1.1. Menghidupkan LED dengan Instruksi MOV


Pada percobaan 1.1 ini LED akan dihidupkan atau dimatikan dengan mengirimkan data
tertentu pada port 0.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper pada LED_EN, untuk mengaktifkan 8 buah LED
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 2


Microcontroller AT89sXX Trainer Kit
Experiment Manual

4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 1.2. Tampilan kosong MIDE Studio for MCS51

Gambar 1.3. Diagram alir percobaan 1.1

5. Ketik program berikut ini:

Org 0h
Start: Mov P0,#11110000b ; Isi P0 dengan 11110000
sjmp start ; lompat ke start
End
6. Simpanlah program yang anda ketik dan beri nama : prog11a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 3


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 1.4. Tampilan program ISP Software

9. Lakukan pengamatan pada LED

10. Gantilah data #11110000b tersebut diatas dengan data seperti pada tabel berikut dan
lakukan pencatatan LED mana yang padam.

D0 D1 D2 D3 D4 D5 D6 D7 LED YANG PADAM


1 1 1 1 1 1 1 0
1 1 1 1 1 1 0 1
1 1 1 1 1 0 1 1
1 1 1 1 0 1 1 1
1 1 1 0 1 1 1 1
1 1 0 1 1 1 1 1
1 0 1 1 1 1 1 1
0 1 1 1 1 1 1 1

Percobaan 1.2. Pembuatan Subrutine Waktu Tunda


Pada percobaan ini, 8 LED akan berkedip secara kontinu, yang diakibatkan oleh pemberian
waktu tunda.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 4


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 1.5. Diagram alir percobaan 1.2

4. Ketik program berikut ini:

Org 0h
Start: Mov P0,#11111111b ; Kirim data biner 11111111 ke P0
Call Delay ; Memanggil waktu tunda
Mov P0,#00000000b ; Kirim data biner 00000000 ke P0
Call Delay ; Memanggil waktu tunda
Sjmp start ; lompat ke start
;
Delay: mov R1,#255 ; Isi 255 ke R1
Del1: mov R2,#255 ; Isi 255 ke R2
Del2: djnz R2,del2 ; Dec. R2 dan lompat ke del2 if NZ
djnz R1,del1
ret
end

5. Simpanlah program yang anda ketik dan beri nama : prog12a.asm


6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
8. Lakukan pengamatan pada LED
9. Gantilah data tersebut untuk mengedipkan sebuah LED, dua buah LED dan
seterusnya,sesuai tabel berikut ini.

D0 D1 D2 D3 D4 D5 D6 D7 LED YANG PADAM


1 1 1 1 1 1 1 0

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 5


Microcontroller AT89sXX Trainer Kit
Experiment Manual

1 1 1 1 1 1 0 0
1 1 1 1 1 0 0 0
1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0

Percobaan 1.3. Instruksi Setb dan Clr


Pada percobaan ini, sebuah LED atau lebih dapat dihidupkan atau dimatikan dengan perintah
setb dan clr.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
4. Ketik program berikut ini:
Org 0h
Start: Clr P0.0 ; Kirim logika 0 ke P0.0
Clr P0.1 ; Kirim logika 0 ke P0.1
Clr P0.2 ; Kirim logika 0 ke P0.2
Clr P0.3 ; Kirim logika 0 ke P0.3
Clr P0.4 ; Kirim logika 0 ke P0.4
Clr P0.5 ; Kirim logika 0 ke P0.5
Clr P0.6 ; Kirim logika 0 ke P0.6
Clr P0.7 ; Kirim logika 0 ke P0.7
Call Delay ; Memanggil waktu tunda
Setb P0.0 ; Kirim logika 1 ke P0.0
Setb P0.1 ; Kirim logika 1 ke P0.1
Setb P0.2 ; Kirim logika 1 ke P0.2
Setb P0.3 ; Kirim logika 1 ke P0.3
Setb P0.4 ; Kirim logika 1 ke P0.4
Setb P0.5 ; Kirim logika 1 ke P0.5
Setb P0.6 ; Kirim logika 1 ke P0.6
Setb P0.7 ; Kirim logika 1 ke P0.7
Call Delay ; Memanggil waktu tunda
Sjmp start ; lompat ke start
;
Delay: mov R1,#255
Del1: mov R2,#255
Del2: djnz R2,del2
djnz R1,del1
ret
end
5. Simpanlah program yang anda ketik dan beri nama : prog13a.asm
6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 6


Microcontroller AT89sXX Trainer Kit
Experiment Manual

7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (


Lihat Petunjuk Penggunaan)
8. Lakukan pengamatan pada LED
9. Rencanakan program untuk mengedipkan dua buah LED, tiga buah LED dan seterusnya
dengan instruksi Setb dan Clr.

Percobaan 1.4. LED Berjalan dengan Instruksi RL/ RR ( Rotate Left dan
Right )
Pada percobaan ini, sebuah LED akan berjalan dari kiri ke kanan dan sebaliknya, program ini
memanfaatkan instruksi RL dan RR.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 1.6. Diagram alir percobaan 1.3

4. Ketik program berikut ini:

Org 0H
Start: Mov A,#11111110b;isi A dengan 11111110b
Mov R0,#7 ;isi R0 dengan 7
Kiri: Mov P0,A ;copy A ke P0

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 7


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Call Delay ;panggil sub rutine delay


RL A ;data A diputar ke kiri
DEC R0 ;data R0 dikurangi 1
CJNE R0,#0,Kiri ;bandingkan R0 dg 0, if NE jump kiri
;
Mov R0,#7
Kanan: Mov P0,A
Call Delay
RR A ;data A diputar ke kanan
DEC R0 ;data RO dikurangi 1
CJNE R0,#0,Kanan ;bandingkan R0 dg 0, if NE jump kanan
Sjmp Start
;
Delay: mov R1,#255
Del1: mov R2,#255
Del2: djnz R2,del2
djnz R1,del1
ret
end

5. Simpanlah program yang anda ketik dan beri nama : prog14a.asm


6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
8. Lakukan pengamatan pada LED

Soal Tantangan:
1. Lakukan perubahan pada program tersebut untuk menjalankan/ menggerakkan dua
buah LED kekiri dan kekanan,
2. Lakukan modifikasi program 1.4. tersebut dengan mengganti instruksi CJNE dan DEC
dengan instruksi DJNZ.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 8


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 2
SAKLAR PUSH BUTTON

TUJUAN:
1 Mahasiswa memahami rangkaian mikrokontroller dengan interface ke saklar
2. Mahasiswa dapat memahami program assembly untuk mengambil data saklar dan
mengeluarkan data ke LED.
3. Mahasiswa memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, RL dan
RR.

GAMBAR:
SW1

P2.7..P2.0
SW8

(a)

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 9


Microcontroller AT89sXX Trainer Kit
Experiment Manual

VCC

J3

2
1 EN LED
D1

P0.0..P0.7
D8
(b)
Gambar 2.2. Rangkaian Interface (a) Push Button dan LED (b)

Pada gambar 2.2.a 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.

Percobaan 2.1. Mengambil Data Saklar dan Mengeluarkan ke LED


Pada percobaan ini, LED akan nyala bila saklar ditekan sesuai dengan bit saklar yang ditekan.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Buka jumper pada EN_DAC apabila sedang terhubung.
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 2.3. Diagram alir percobaan 2.1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 10


Microcontroller AT89sXX Trainer Kit
Experiment Manual

5. Ketik program berikut ini:


Org 0h
Start: Mov A, P2 ;copy data P2 dan Simpan ke A
Mov P0, A ;Kirim data A ke P0
sjmp start ;lompat ke start
end
6. Simpanlah program yang anda ketik dan beri nama : prog21a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. 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

Percobaan 2.2. Mengatur Arah Gerak LED Ke Kanan-Kiri dengan Saklar


Push Button P2.0 dan P2.1
Pada percobaan ini, LED akan berjalan kekanan atau kekiri mengikuti penekanan tombol P2.0
(arah kiri) atau P2.1 (arah kanan).
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 11


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Start

P2.0=1? YES P2.1=1? YES

NO NO
Putar LED ke Kiri Putar LED ke Kanan

Gambar 2.4. Diagram alir percobaan 2.2

4. Ketik program berikut ini:

org 0h
CekP20: JB P2.0,CekP21 ; Menguji bit P2.0, apakah adalah logika '1'
call RLeft ; Jika P2.0=0, maka LED putar kiri
; sjmp CekP20 ; jump forever to CekP20
CekP21: JB P2.1,CekP20 ; Menguji bit P2.1, apakah adalah logika '1'
call RRight ; Jika P2.1=0, maka LED putar kanan
sjmp CekP20 ; jump forever to CekP2.0
;======================================================
;Subrutin ini digunakan untuk menggerakkan LED Ke Kanan
;======================================================
RLeft: mov A,#11111110b ;send data 11111110 to Acc
RLeft1: mov P0,A ;send data A to P0
call delay ;call delay time
JB P2.1,RLeft2 ;Menguji bit P2.1, apakah adalah logika '1'
sjmp EndRLeft ;Jika P2.1=0, maka lompat ke EndRLeft
RLeft2: RL A ;data A di putar ke kiri
sjmp RLeft1 ;lompat ke Rleft1
EndRLeft: ret
;

;====================================================
;Subrutin ini digunakan untuk menggerakkan LED Ke Kiri
;====================================================
RRight: mov A,#01111111b ;send data to Acc
RRight1: mov P0,A ;send data to P0
call delay ;call delay time
JB P2.0,RRight2 ;Menguji bit P2.0, apakah adalah logika '1'
sjmp EndRRight ;Jika P2.0=0, maka lompat ke EndRRight
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 12
Microcontroller AT89sXX Trainer Kit
Experiment Manual

RRight2: RR A ;data A putar ke kanan


sjmp RRight1 ;lompat ke Rright1
EndRRight: ret
;=============================================
;subroutine delay time
;=============================================
delay: mov R1,#255
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
end

5. Simpanlah program yang anda ketik dan beri nama : prog22a.asm


6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
8. Lakukan pengamatan pada LED.

Soal Tantangan:

1. Lakukan modifikasi pada percobaan 2.2. tersebut sesuai dengan dengan mengganti port
dengan P2.2 ( putar kanan ) dan P2.3 ( putar kiri ).
2. Buatlah suatu percobaan untuk menghidupkan dan mematikan sebuah led yang
terhubung ke P0.0, dengan menggunakan sebuah saklar P2.0, sehingga apabila saklar
ditekan sekali, LED nyala, dan ditekan berikutnya maka LED akan padam.

Percobaan 2.3. Setting Up/Dn dan Enter dengan display LED


Pada percobaan ini, LED yang ON akan bertambah atau berkurang mengikuti penekanan
tombol P2.1 (UP) atau P2.2 (DN). LED akan berhenti bertambah atau atau berkurang bila
ditakan tombol P2.0 ( ENTER).
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 13


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Start
SetDn
Inisialisasi Data
R7 1

Simpan data R7 ke A Simpan data R7 ke A


A R7 A R7

Komplemen A Komplemen A
A:= NOT A A:= NOT A

Output data ke LED Output data ke LED


P0 A P0 A

P2.0=0 ? YES P2.0=0 ? YES


ENT ENT
End End
NO NO

P2.1=1 ? YES P2.2=1 ? YES


UP DN
NO NO
Increment R7 Decrement R7
R7:= R7+1 R7:= R7-1

Waktu tunda Waktu tunda

NO NO
R7=99 ? R7=1 ?

YES YES
Reset R7 Reset R7
R7 1 R7 99

Gambar 2.5. Diagram alir percobaan 2.3

4. Ketik program berikut ini:

org 0h
start:
mov R7,#1 ;inisialisasi data setting
Setup: mov A,R7 ;simpan data R7 ke A
cpl A ;komplemen A,
mov P0,A ;output data ke LED
jnb p2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai)
jb P2.1,SetDn ;bila sw2(P2.1) ditekan mk INC R7
inc R7 ;R7:=R7+1
acall delay ;waktu tunda, antar penekanan tombol
cjne R7,#100d,setup;deteksi apakah setting=100d

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 14


Microcontroller AT89sXX Trainer Kit
Experiment Manual

mov R7,#1 ;reset R7 -> 1


sjmp Setup
;
SetDn:Mov A,R7 ;simpan data R7 ke A
cpl A ;komplemen A,
mov P0,A ;output data ke LED
jnb P2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai)
jb p2.2,Setup ;bila sw2(P2.1) ditekan mk INC R7
dec R7 ;R7:=R7-1
acall delay ;waktu tunda lama penekanan tombol
cjne R7,#0d,setDn;deteksi apakah setting=0d
mov R7,#1d ;reset R7 -> 1
sjmp Setdn
getout:
sjmp getout
;
delay: mov R0,#255
delay1: mov R2,#255
djnz R2,$
djnz R0,delay1
ret
end

5. Simpanlah program yang anda ketik dan beri nama : prog23a.asm


6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
8. Lakukan pengamatan pada LED.

Soal Tantangan:

1. Lakukan modifikasi pada percobaan tersebut sesuai dengan dengan mengganti port
tersebut dengan P2.5 (Setting UP), P2.6 (Setting Dn) dan P2.7 (Enter).

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 15


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 3
DISPLAY 7 SEGMEN

TUJUAN:
1. Mahasiswa memahami rangkaian interface mikrokontroller dengan 7 segmen
2. Mahasiswa dapat memahami program assembly untuk menampilkan data ke 7 segment
3. Mahasiswa memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, dan waktu
tunda.
P0.6..P0.0
Common Anoda
a a
f b b
c
d
g e
e c f
d g

7 x 220 ohm
VCC VCC VCC VCC VCC VCC VCC VCC
Y7..Y0
PNP PNP PNP PNP PNP PNP PNP PNP
FCS 9013 FCS 9013
FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013

Y0
8 x 1k ohm
(a)
P3.5
Y7..Y0
P3.6 U8
1 15
A Y0
P3.7 2
B Y1
14
3 13
VCC C Y2 12
J2 Y3 11
6 Y4 10
4 G1 Y5 9
1 5 G2A Y6 7
EN 7 SEGMEN 2 G2B Y7

R28 74LS138
VCC
10K

(b)

Gambar 3.1. (a) Rangkaian display 7 segmen (b) rangkaian dekoder 74ls138

Tabel 3.1. Tabel kebenaran 74LS138


SELEKTOR ENABLE OUTPUT
C B A G1 /G2A /G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 1 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 0 1 0 1 1 1 1 1 1
0 1 0 1 0 0 1 1 0 1 1 1 1 1
0 1 1 1 0 0 1 1 1 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1 0 1 1 1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 16


Microcontroller AT89sXX Trainer Kit
Experiment Manual

1 0 1 1 0 0 1 1 1 1 1 0 1 1
1 1 0 1 0 0 1 1 1 1 1 1 0 1
1 1 1 1 0 0 1 1 1 1 1 1 1 0

Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada output
dari dekoder 74LS138, yang sedang mengeluarkan logika low 0, sehingga dari 8 buah
display tersebut, selalu hanya satu display yang akan dihidupkan. Agar display tampak nyala
secara bersamaan maka ketiga display tersebut harus dihidupkan secara bergantian dengan
waktu tunda tertentu.
Pada gambar tersebut seven segment commont anoda dikendalikan dengan menggunakan
transistor PNP melalui decoder 74LS138, apabila ada logika low pada basis transistor, maka 7
segment akan nyala dan sebaliknya akan padam.

Gambar 3.2 Modul 7 Segment tunggal

Tabel 3.2. Data Display 7 Segmen

P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 Display


g f e d c b a
1 0 0 0 0 0 0 0
1 1 1 1 0 0 1 1
0 1 0 0 1 0 0 2
0 1 1 0 0 0 0 3
:
:
0 0 0 1 0 0 0 A
0 0 0 0 0 1 1 b
1 0 0 0 1 1 0 C
:

Pada tabel tersebut tampak bahwa untuk menghidupkan sebuah segmen, harus dikirimkan data
logika low 0 dan sebaliknya untuk mematikan segmen, harus dikirimkan data logika high
1.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 17


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Percobaan 3.1. Tulis Karakter A pada 7 Segmen ( Display 1 )


Pada percobaan ini, karakter A akan ditampilkan pada 7 Segmen Display 1
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 3.3 Diagram alir percobaan 3.1

5. Ketik program berikut ini:

org 0h
start: clr P3.5 ; P3.5 = 0
clr P3.6 ; P3.6 = 0
clr P3.7 ; P3.7 = 0
mov P0,#10001000b ; isi P0 dg. 10001000. Cetak Karakter 'A'
sjmp start ; Lompat ke start
end

6. Simpanlah program yang anda ketik dan beri nama : prog31a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada 7 segmen.
10.Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:

No Nama Karakter Posisi Display


1 C Display 2
2 E Display 5
3 3 Display 8

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 18


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Percobaan 3.2. Tulis Tiga Karakter AbC pada 7 Segmen


Pada percobaan ini, karakter AbC akan ditampilkan pada 7 Segmen Display 1, Display 2 dan
Display 3 secara berturutan
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 19


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 3.4 Diagram alir percobaan 3.2

5. Ketik program berikut ini:

org 0h
start: clr P3.5 ; P3.5 = '0'
clr P3.6 ; P3.6 = '0'
clr P3.7 ; P3.7 = '0'
mov P0, #10001000b ; isi P0 dg. 10001000. Cetak Karakter 'A'
call delay ; Panggil Waktu Tunda

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 20


Microcontroller AT89sXX Trainer Kit
Experiment Manual

;
setb P3.5 ; P3.5 = '1'
clr P3.6 ; P3.6 = '0'
clr P3.7 ; P3.7 = '0'
mov P0,#10000011b ; isi P0 dg.100000011. Cetak Karakter 'b'
call delay ; Panggil Waktu Tunda
;
clr P3.5 ; P3.5 = '0'
setb P3.6 ; P3.6 = '1'
clr P3.7 ; P3.7 = '0'
mov P0,#11000110b ; Cetak Karakter 'C'
call delay ; Panggil Waktu Tunda
;
sjmp start ; Lompat ke start
;=============================================
;subroutine delay created to rise delay time
;=============================================
delay: mov R1,#25
del1: mov R2,#25
del2: djnz R2,del2
djnz R1,del1
ret
end
6. Simpanlah program yang anda ketik dan beri nama : prog32a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada 7 segmen.
10.Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:

No Nama Karakter Posisi Display


1 EFG Display 1, Display 2, Display 3
2 HJL Display 3, Display 4, Display 5
3 1A3 Display 6, Display 7, Display 8

Percobaan 3.3. Tulis 8 Karakter pada 7 Segmen


Pada percobaan ini, karakter 12345678 akan ditampilkan pada 7 Segmen Display 1, Display
2 dan Display 3 s/d Display 8 secara berturutan :
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 21


Microcontroller AT89sXX Trainer Kit
Experiment Manual

5. Ketik program berikut ini:

org 0h
start: clr P3.5
clr P3.6
clr P3.7
mov P0,#11111001b ; Cetak Karakter '1'
call delay
;
setb P3.5
clr P3.6
clr P3.7
mov P0,#10100100b ; Cetak Karakter '2'
call delay
;
clr P3.5
setb P3.6
clr P3.7
mov P0,#10110000b ; Cetak Karakter '3'
call delay
;
setb P3.5
setb P3.6
clr P3.7
mov P0,#10011001b ; Cetak Karakter '4'
call delay
;

clr P3.5
clr P3.6
setb P3.7
mov P0,#10010010b ; Cetak Karakter '5'
call delay
;
setb P3.5
clr P3.6
setb P3.7
mov P0,#10000010b ; Cetak Karakter '6'
call delay
;
clr P3.5
setb P3.6
setb P3.7
mov P0,#11111000b ; Cetak Karakter '7'
call delay

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 22


Microcontroller AT89sXX Trainer Kit
Experiment Manual

;
setb P3.5
setb P3.6
setb P3.7
mov P0,#10000000b ; Cetak Karakter '8'
call delay
;
sjmp start ; Lompat ke Start
;=============================================
;subroutine delay created to rise delay time
;=============================================
delay: mov R1,#25
del1: mov R2,#25
del2: djnz R2,del2
djnz R1,del1
ret
end

6. Simpanlah program yang anda ketik dan beri nama : prog33a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada 7 Segmen.
10. Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:

No Nama Karakter
1 AbCdEFGH
2 98765432
3 JKLnOPrS

Soal Tantangan:

1. Buatlah tulisan data pada 7 Segmen, dan buatlah tulisan tersebut berjalan ke kanan.
2. Buatlah tuisan Surabaya pada 7 segmen, dan buatlah tulisan tersebut berjalan ke kiri.

Percobaan 3.4. Setting Up/ Dn dan Enter dengan Display ke 7 Segmen.

Pada percobaan ini, akan dibuat suatu simulasi setting UP (P2.1)/ DN (P2.2) dan penekanan
tombol Enter (P2.0), dan di displaykan ke display 7 Segmen. Data display akan bertambah dari
00 s/d 99 atau berkurang dari 99 s/d 00, sesuai dengan penekanan pada tombol UP/ DN.Bila
ditekan tombol Enter, maka tombol UP/ DN tidak akan berfungsi lagi.

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:


1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 23


Microcontroller AT89sXX Trainer Kit
Experiment Manual

2. Hubungkan modul Microcontroller Trainer dengan power supply +5V


3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 3.5. Diagram alir percobaan 3.4.

5. Ketik program berikut ini:


Org 0h

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 24


Microcontroller AT89sXX Trainer Kit
Experiment Manual

ratusan equ 30h


puluhan equ 31h
satuan equ 32h
;
start:
mov R7,#1 ;inisialisasi data setting
Setup: mov A,R7 ;simpan data R7 ke A
call bin2dec
call display2sevensegmen
jnb p2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai)
jb P2.1,SetDn ;bila sw2(P2.1) ditekan mk INC R7
inc R7 ;R7:=R7+1
acall delay ;waktu tunda lama penekanan tombol
cjne R7,#100d,setup;deteksi apakah setting=100d
mov R7,#1 ;reset R7 -> 1
sjmp Setup
;

SetDn:Mov A,R7 ;simpan data R7 ke A


call bin2dec
call display2sevensegmen
jnb P2.0,getout;bila sw1(P2.0) ditekan mk getout(selesai)
jb p2.2,Setup ;bila sw2(P2.1) ditekan mk INC R7
dec R7 ;R7:=R7-1
acall delay ;waktu tunda lama penekanan tombol
cjne R7,#0d,setDn;deteksi apakah setting=0d
mov R7,#99d ;reset R7 -> 99
sjmp Setdn
getout:sjmp getout
;
Display2SevenSegmen:
mov A,puluhan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
clr P3.5 ;
Setb P3.6
Setb P3.7
call delay
;
mov A,satuan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
Setb P3.5 ;
Setb P3.6
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 25
Microcontroller AT89sXX Trainer Kit
Experiment Manual

Setb P3.7
call delay
ret
;
Bin2Dec:
mov b,#100d
div ab
mov ratusan,a
mov a,b
mov b,#10d
div ab
mov puluhan,a
mov satuan,b
ret
delay: mov R0,#0
delay1:mov R2,#0fh
djnz R2,$
djnz R0,delay1
ret
;
Data7segmen:
db 11000000b,11111001b,10100100b,10110000b,10011001b
db 10010010b,10000010b,11111000b,10000000b,10010000b
end

6. Simpanlah program yang anda ketik dan beri nama : prog34a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada 7 Segmen.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 26


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 4
LCD KARAKTER

TUJUAN:
1. Mahasiswa memahami rangkaian interface mikrokontroller dengan LCD Karakter 2 x 16
2. Mahasiswa dapat memahami program assembly untuk menampilkan data ke LCD Karakter
2 x 16
3. Mahasiswa memahami beberapa instruksi assembly dasar, MOV, Setb, Clr, dan waktu
tunda.
4. Mahasiswa memahami mencetak karakter pada posisi baris dan kolom tertentu

LCD Karakter 2x16


Enable

GND
VCC

R/W

DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
VSS

VEE

BPL
RS

VCC
P0.3 10
P0.4 11
P0.5 12
P0.6 13
P0.7 14
15
GND 16
GND 1
2
3
P3.5 4
5
P3.7 6
P0.0 7
P0.1 8
P0.2 9

IN4003

J8 D9
2
1
CON2

Gambar 4.1. Rangkaian interface ke LCD Karakter 2 x16

Modul LCD Character dapat dengan mudah dihubungkan dengan mikrokontroller seperti
AT89S51. LCD yang akan kita praktikumkan ini mempunyai lebar display 2 baris 16 kolom
atau biasa disebut sebagai LCD Character 2x16, dengan 16 pin konektor, yang didifinisikan
sebagai berikut:

Gambar 4.2. Modul LCD Karakter 2x16

Tabel 4.1 Pin dan Fungsi


Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 27
Microcontroller AT89sXX Trainer Kit
Experiment Manual

PIN Name Function


1 VSS Ground voltage
2 VCC +5V
3 VEE Contrast voltage
Register Select
4 RS 0 = Instruction Register
1 = Data Register
Read/ Write, to choose write or read mode
5 R/W 0 = write mode
1 = read mode
Enable
6 E 0 = start to lacht data to LCD character
1= disable
7 DB0 LSB
8 DB1 -
9 DB2 -
10 DB3 -
11 DB4 -
12 DB5 -
13 DB6 -
14 DB7 MSB
15 BPL Back Plane Light
16 GND Ground voltage

Display karakter pada LCD diatur oleh pin EN, RS dan RW:

Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang
mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus
dibuat logika low 0 dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur
yang lain telah siap, set EN dengan logika 1 dan tunggu untuk sejumlah waktu tertentu (
sesuai dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low 0 lagi.

Jalur RS adalah jalur Register Select. Ketika RS berlogika low 0, data akan dianggap sebagi
sebua perintah atau instruksi khusus ( seperti clear screen, posisi kursor dll ). Ketika RS
berlogika high 1, data yang dikirim adalah data text yang akan ditampilkan pada display
LCD. Sebagai contoh, untuk menampilkan huruf T pada layar LCD maka RS harus diset
logika high 1.

Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada
bus data akan dituliskan pada layar LCD. Ketika RW berlogika high 1, maka program akan

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 28


Microcontroller AT89sXX Trainer Kit
Experiment Manual

melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu
diberi logika low 0.

Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih
oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7.

Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD Character,

Function Set
Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter

KONTROL DATA
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 pulse 0 0 0 1 DL N F X X

CATATAN:
X : Dont care
DL: Mengatur lebar data
DL=1, Lebar data interface 8 bit ( DB7 s/d DB0)
DL=0, Lebar data interface 4 bit ( DB7 s/d DB4)
Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali
N=1, Display dua baris
N=0, Display satu baris

Entry Mode Set


Mengatur increment/ decrement dan mode geser

KONTROL DATA
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 pulse 0 0 0 0 0 0 1 I/D S

Catatan:
I/D: Increment/ decrement dari alamat DDRAM dengan 1 ketika kode karakter dituliskan ke
DDRAM.
I/D = 0, decrement
I/D= 1, increment
S: Geser keseluruhan display kekanan dan kekiri
S=1, geser kekiri atau kekanan bergantung pada I/D
S=0, display tidak bergeser

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 29


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Display On/ Off Cursor


Mengatur status display ON atau OFF, cursor ON/ OFF dan fungsi Cursor Blink

KONTROL DATA
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 pulse 0 0 0 0 0 1 D C B
D : Mengatur display
D = 1, Display is ON
D = 0, Display is OFF
Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkan kembali
secara langsung dengan mengatur D=1.
C : Menampilkan kursor
C = 1, kursor ditampilkan
C = 0, kursor tidak ditampilkan
B : Karakter ditunjukkan dengan kursor yang berkedip
B=1, kursor blink

Clear Display
Perintah ini hapus layar

KONTROL DATA
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 pulse 0 0 0 0 0 0 0 0 1

Geser Kursor dan Display


Geser posisi kursor atau display ke kanan atau kekiri tanpa menulis atau baca data display.
Fungsi ini digunakan untuk koreksi atau pencarian display

KONTROL DATA
RS EN R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 pulse 0 0 0 0 1 D/C R/L X X

Catatan : x = Dont care


D/C R/L Note
0 0 Geser posisi kursor ke kiri
0 1 Geser posisi kursor ke kanan
1 0 Geser keseluruhan display ke kiri
1 1 Geser keseluruhan display ke kanan

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 30


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Memori LCD
1. DDRAM ( Display Data RAM )
Memori DDRAM digunakan untuk menyimpan karakter yang akan ditampilkan. Semua teks
yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini, dan modul LCD secara
berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu sendiri.

Gambar 4.3. Lokasi memori display LCD Karakter

Pada peta memori tersebut, daerah yang berwarna kuning ( 00 s/d 0F dan 40 s/d 4F ) adalah
display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris
dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan
posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah
00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya.

Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori
adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk
mangatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor
adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk
menempatkan kursor.Sebagai contoh, kita ingin menampilkan kata World pada baris ke dua
pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke
dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata World pada LCD, kita harus
mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah
dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan
menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 31


Microcontroller AT89sXX Trainer Kit
Experiment Manual

2. CGROM ( Character Generator ROM )


Sebuah peta karakter yang dapat ditampilkan, sesuai dengan lokasi dari masing-
masing karakter.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 32


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 33


Microcontroller AT89sXX Trainer Kit
Experiment Manual

INISIALISASI

Sebelum kita dapat menggunakan modul LCD, kita harus melakukan inisialisasi dan
mengkonfigurasikannya. Hal ini dijalankan dengan mengirimkan sejumlah instruksi ke LCD.
Antara lain: pengaturan lebar data interface 8 bit atau 4 bit data bus, pemilihan ukuran font
karakter 5x8 atau 5x7 dan lain-lain, dengan instruksi sebagai berikut.

Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst ;EN=pulse dan RS=0
mov r1,#00111000b ;Function set, ;Data 8 bit,2 line font 5x7
call write_inst ;Set bit EN=pulse dan RS=0
mov r1,#00001100b ;Display on, ;cursor off,cursor blink off
call write_inst ;EN=pulse dan RS=0
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret

Percobaan 4.1. Tulis Sebuah Karakter pada LCD Karakter


Pada percobaan ini, karakter A akan ditampilkan pada LCD Karakter
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 34


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 4.4. Diagram alir (a) rutin utama cetak karakter A, (b) subrutin inisialisasi LCD
karakter pada percobaan 4.1

5. Ketik program berikut ini:

org 0h
call init_LCD
start: mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1
call write_inst ; panggil tulis instruksi
mov R1,#'A' ; Cetak Karakter A
call write_data ; panggil tulis data
stop: sjmp stop

Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst
mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5x7
call write_inst

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 35


Microcontroller AT89sXX Trainer Kit
Experiment Manual

mov r1,#00001100b ;Display on, ;cursor off,cursor blink off


call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret

;
Write_inst:
clr P3.5 ; P3.5 = RS =0
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
Write_data:
setb P3.5 ; P3.5 = RS =1
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret
;
delay: mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
;
end
6. Simpanlah program yang anda ketik dan beri nama : prog41a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada karakter yang tercetak pada LCD.
10. Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:

No Nama Karakter Posisi Display


1 1 Row 1, Col 2
2 Z Row 1, Col 8
3 & Row 2, Col 12

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 36


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Percobaan 4.2. Tulis Delapan Karakter pada LCD Karakter


Pada percobaan ini, kalimat Welcome akan ditampilkan pada LCD Karakter pada baris 1
dan colom 1
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:

org 0h
call init_LCD
start: mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1
call write_inst
mov R1,#'W'
call write_data
mov R1,#'e'
call write_data
mov R1,#'l'
call write_data
mov R1,#'c'
call write_data
mov R1,#'o'
call write_data
mov R1,#'m'
call write_data
mov R1,#'e'
call write_data
stop: sjmp stop
Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst
mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
call write_inst
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 37


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Write_inst:
clr P3.5 ; P3.5 = RS =0
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
Write_data:
setb P3.5 ; P3.5 = RS =1
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret
;
delay: mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
end

6. Simpanlah program yang anda ketik dan beri nama : prog42a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada display LCD Karakter
10.Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:

No Nama Karakter Posisi Display


1 Selamat Datang Baris 1, Colom 1
2 Mikrokontroller Baris 2, Colom 1

Percobaan 4.3. Tulis Karakter Dengan Look Up Table


Pada percobaan ini, kalimat Welcome home akan ditampilkan pada layar LCD Karakter
dengan menggunakan look up table.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 38


Microcontroller AT89sXX Trainer Kit
Experiment Manual

5. Ketik program berikut ini:

org 0h
call init_LCD
start: call write_char
stop: sjmp stop
;
write_char:
mov dptr,#word1 ;DPTR = [ address word1 ]
mov r3,#16 ;R3=16,number character to be display
mov r1,#80h ;R1=80h,address DDRAM start position
call write_inst
;
write1:clr a ;A=0
movc a,@a+dptr ; A = [A+ DPTR]
mov r1,A ; R1 = A
inc dptr ; DPTR = DPTR +1
call write_data;
djnz r3,write1 ; R3 = R3-1,
ret
;
Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst ;
mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
call write_inst ;
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;
Write_inst:
clr P3.5 ; P3.5 = RS =0
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
Write_data:
setb P3.5 ; P3.5 = RS =1
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 39


Microcontroller AT89sXX Trainer Kit
Experiment Manual

clr p3.7 ; P3.7 =EN = 0


ret
;
delay: mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
;
word1: DB ' Welcome Home '; Karakter yang disimpan di ROM
end

6. Simpanlah program yang anda ketik dan beri nama : prog43a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada LCD.
10. Lakukan modifikasi pada program tersebut untuk mencetak karakter lain, sesuai tabel:

No Nama Karakter Posisi Display


1 Selamat Datang Baris 1, Colom 1
2 Mikrokontroller Baris 2, Colom 1

Soal Tantangan:

1. Dengan memanfaatkan instruksi shift display dan cursor, cetaklah kata Surabaya yang
dapat bergeser kekanan sebanyak 10 x dan bergeser kekiri sebanyak 10x dan berhenti.
2. Buatlah interaksi geser karakter ke kanan dan ke kiri, dengan menggunakan tombol
P2.0, P2.1, untuk mengatur geser ke kanan dan ke kiri, untuk dengan kata Surabaya

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 40


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 5
ANALOG TO DIGITAL CONVERTER ( ADC )

TUJUAN:
1. Mahasiswa memahami rangkaian interface mikrokontroller dengan ADC 0804
2. Mahasiswa memahami setting tegangan referensi Vref ADC0804
3. Mahasiswa memahami perhitungan tegangan resolusi ADC0804
4. Mahasiswa dapat memahami program assembly untuk menampilkan data ADC ke 7
Segmen
5. Mahasiswa dapat memahami program assembly untuk menampilkan data ADC ke LCD
Karakter 2 x 16

J26 J27
CON1 CON1
VCC
1

16

U8 J30
AD0 13 3
VDD

AD1 14 X0 X 1
15 X1
CON1
12 X2
1 X3
5 X4
2 X5
4 X6
X7
GND 6
MUX 11 INH
10 A
VCC 9 B
VSS C
GND 4051

R36 J25
68 CON1 U9

6 18 P1.0
GND +IN DB0 P1.1
1

7 17
10K R38 -IN DB1 16 P1.2
9 DB2 15 P1.3
VREF/2 DB3
1

D12 19 14 P1.4
4 CLKR DB4 13 P1.5
3V 2 CLKIN DB5 12 P1.6
C9 GND 1 DB6 11 P1.7
150pF P2.4 2 CS DB7
10K P3.3 3 RD 5 P3.2
R39 C10 WR INTR
+
10uF
3

ADC0804

Gambar 5.1 Rangkaian ADC0804

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 41


Microcontroller AT89sXX Trainer Kit
Experiment Manual

VCC

R25 R26

1
10K 10K
J22
2 2
AD1 1
2

AD0
3
CON3
3

3
VCC

J23

C16 3
100n 2
1

CON3
D19 R28
18k
1N4148

D20
1N4148

Gambar 5.2 Rangkaian ADC0804

DASAR TEORI

Konverter A/D tersedia secara komersial sebagai rangkaian terpadu dengan resolusi 8 bit
sampai dengan 16 bit. Pada percobaan ini akan memperkenalkan ADC0801, yaitu sebagai
sebuah konverter A/D 8 bit yang mudah diinterfacekandengan sistem mikrokontroller. A/D ini
menggunakan metode approksimasi berturut-turut untuk mengkonversikan masukan analog (0-
5V) menjadi data digital 8 bit yang ekivalen. ADC0801 mempunyai pembangkit clock internal
dan memerlukan catu daya +5V dan mempunyai waktu konversi optimum sekitar 100us.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 42


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 5.3 Konfigurasi pin ADC0804

Diagram konfigurasi pin ADC0804 ditunjukkan pada gambar 5.2. Pin 11 sampai 18 ( keluaran
digital ) adalah keluaran tiga keadaan, yang dapat dihubungkan langsung dengan bus data
bilamana diperlukan. Apabila CS ( pin 1 ) atau RD (pin2) dalam keadaan high (1), pin 11
sampai 18 akan mengambang ( high impedanze ), apabila CS dan RD rendah keduanya,
keluaran digital akan muncul pada saluran keluaran.
Sinyal mulai konversi pada WR (pin 3). Untuk memulai suatu konversi, CS harus rendah.
Bilamana WR menjadi rendah, konverter akam mengalami reset, dan ketika WR kembali
kepada keadaan high, konversi segera dimulai.
Konversi detak konverter harus terletak dalam daereh frekuensi 100 sampai 800kHz. CLK IN (
pin 4) dapat diturunkan dari detak mikrokontroller, sebagai kemungkinan lain, kita dapat
mempergunakan pembangkit clock internal dengan memasang rangkaian RC antara CLN IN (
pin 4) dan CLK R ( pin 19).
Pin 5 adalah saluran yang digunakan untuk INTR, sinyal selesai konversi. INTR akan menjadi
tinggi pada saat memulai konversi, dan akan aktiv rendah bila konversi telah selesai. Tepi
turun sinyal INTR dapat dipergunakan untuk menginterupsi sistem mikrokontroller, supaya
mikrokontroller melakukan pencabangan ke subrutine pelayanan yang memproses keluaran
konverter.
Pin 6 dan 7 adalah masukan diferensial bagi sinyal analog. A/D ini mempunyai dua ground, A
GND (pin 8) dan D GND ( pin10). Kedua pin ini harus dihubungkan dengan ground. Pin 20
harus dihubungkan dengan catu daya +5V
A/D ini mempunyai dua buah ground, A GND ( pin 8 ) dan D GND ( pin 10). Keduanya harus
dihubungkan dengan catu daya, sebesar +5V.
Pada A/D 0804 VREF merupakan tegangan referensi yang digunakan untuk offset suatu
keluaran digital maksimum. Dengan persamaan sebagai berikut:
V REF 12 V IN maks

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 43


Microcontroller AT89sXX Trainer Kit
Experiment Manual

VIN MAKS
VRESOLUSI
255

Misalnya anda menginginkan masuk analog maksimum sebesar 4 V, maka:


V REF 12 x 4 2 volt
4
V RESOLUSI 0,0156 volt
255

Resolusi ini mempunyai arti sebagai berikut:

No VIN ( volt ) Data Digital ( biner )


1 0,000 0000 0000
2 0,0156 0000 0001
3 0,0313 0000 0010
4 :
5 4 1111 1111

A/Dini dapat dirangkai untuk menghasilkan konversi secara kontinu. Untuk melaksanakannya,
kita harus menghubungkan CS, dan RD ke ground dan menyambungkan WR dengan INTR
seperti pada gambar dibawah ini. Maka dengan ini keluaran digital yang kontinu akan muncul,
karena sinyal INTR menggerakkan masukan WR. Pada akhir konversi INTR berubah menjadi
low, sehingga keadaan ini akan mereset konverter dan mulai konversi.

Tabel 5.1 Koneksi Interface ADC ke Mikrokontroller

ADC Mikrokontroller

/INTR P3.2
/WR P3.3
/RD P2.4
D0 s/d D7 P1.0 s/d P1.7

Tabel 5.1 Koneksi Interface MUX 4051 ke Mikrokontroller

MUX 4051 Mikrokontroller

A P3.4
B GND
C GND

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 44


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Tabel 5.3. Instruksi logika pada pin kontrol A/D 0804

INPUT OUTPUT KEGIATAN


/WR /RD /INTR DO S/D D7
1 1 1 Hi-Z Berada dalam keadaan High Impedansi
0 1 1 Hi-Z A/D mengalami reset Data
1 1 1 Hi-Z Mulai konversi Analog ke Digital
1 1 0 Hi-Z Konversi telah selesai
1 0 1 D0 s/d D7 Data digital telah siap diambil

Percobaan 5.1. ADC0804 dan Display ke 7 Segmen


Pada percobaan ini, Data ADC yang telah diubah dalam desimal ( ratusan, puluhan dan
satuan) akan ditampilkan pada 8 x 7 Segmen pada Display 1, Display 2, dan Display 3 yang
masing-masing menampilkan data ratusan, puluhan dan satuan.

P0.6..P0.0
Common Anoda
a a
f b b
c
d
g e
e c f
d g

7 x 220 ohm
VCC VCC VCC VCC VCC VCC VCC VCC
Y7..Y0
PNP PNP PNP PNP PNP PNP PNP PNP
FCS 9013 FCS 9013
FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013

8 x 1k ohm

(a)
P3.5
Y7..Y0
P3.6 U8
1 15
A Y0
P3.7 2
B Y1
14
3 13
VCC C Y2 12
J2 Y3 11
6 Y4 10
4 G1 Y5 9
1 5 G2A Y6 7
EN 7 SEGMEN 2 G2B Y7

R28 74LS138
VCC
10K

(b)

Gambar 5.4. Interface rangkaian display 7 segmen


Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 45
Microcontroller AT89sXX Trainer Kit
Experiment Manual

Tabel 5.1. kebenaran 74LS138

SELEKTOR ENABLE OUTPUT


C B A G1 /G2A /G2B Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 0 0 1 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 0 1 0 1 1 1 1 1 1
0 1 0 1 0 0 1 1 0 1 1 1 1 1
0 1 1 1 0 0 1 1 1 0 1 1 1 1
1 0 0 1 0 0 1 1 1 1 0 1 1 1
1 0 1 1 0 0 1 1 1 1 1 0 1 1
1 1 0 1 0 0 1 1 1 1 1 1 0 1
1 1 1 1 0 0 1 1 1 1 1 1 1 0

Pada tabel kebenaran tersebut tampak bahwa seven segmen yang hidup tergantung pada output
dari dekoder 74LS138, yang sedang mengeluarkan logika low 0, sehingga dari 8 buah
display tersebut, selalu hanya satu display yang akan dihidupkan. Agar display tampak nyala
secara bersamaan maka ketiga display tersebut harus dihidupkan secara bergantian dengan
waktu tunda tertentu.

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:


1. Pada saat langkah pemrograman posisikan saklar togle ke posisi PROG
2. Posisikan saklar togle ke RUN untuk mengaktifkan ADC0804 CS=0
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Start

Sett ADDRES MUX

Proses ADC

Convert Data ADC


Hexa to Decimal

Display Data ADC


to 7 Segmen

Gambar 5.5. Diagram alir rutin utama percobaan 5.1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 46


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 5.6. Diagram alir subrutin proses ADC

Gambar 5.7. Diagram alir subrutin konversi hex ke desimal

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 47


Microcontroller AT89sXX Trainer Kit
Experiment Manual

6. Ketik program berikut ini:

org 0h
ratusan equ 30h
puluhan equ 31h
satuan equ 32h
;
org 0h
start: call ADC
call Bin2Dec
call Display2SevenSegmen
sjmp start
;
;========================================
;Subrutin ini digunakan untuk mengambil data ADC
;Hubungkan jumper P3.4 ke MUX
;Pada percobaan ini menggunakan ADC0
;========================================
ADC: clr P3.4; A=0 MUX 4051
setb P2.4
clr P3.3
nop
nop
nop
setb P3.3
eoc: jb P3.2,eoc
clr P2.4
mov A,P1
setb P2.4
ret ;
;=================================================
;Subrutin ini untuk menampilkan data ke 7 Segmen
;dalam bentuk: ratusan, puluhan, and satuan
;data desimal diubah ke segmen dengan menggunakan
;Look up table Data7segmen
;=================================================
Display2SevenSegmen:
mov A, ratusan ;Copy data Ratusan ke A
mov DPTR,#Data7segmen ;Copy Address #Data7segmen ke DPTR
movc A,@A+DPTR ;Copy Isi A+DPTR ke A
mov P0,A ;Copy A ke P0
Setb P3.5 ;Decoder, A=1,
clr P3.6 ;B=0
Setb P3.7 ; dan C=1
call delay ;Panggil waktu tunda

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 48


Microcontroller AT89sXX Trainer Kit
Experiment Manual

;
mov A,puluhan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
clr P3.5 ;
Setb P3.6
Setb P3.7
call delay
;
mov A,satuan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
Setb P3.5 ;
Setb P3.6
Setb P3.7
call delay
ret
;
delay: mov R0,#0
delay1:mov R2,#0fh
djnz R2,$
djnz R0,delay1
ret
;
;========================================
;Subrutin ini untuk merubah data biner ke desimal
;menjadi 3 digit = ratusan-puluhan-satuan
;=========================================
Bin2Dec:
mov b,#100d
div ab
mov ratusan,a
mov a,b
mov b,#10d
div ab
mov puluhan,a
mov satuan,b
ret
;
Data7segmen:
db 11000000b,11111001b,10100100b,10110000b,10011001b
db 10010010b,10000010b,11111000b,10000000b,10010000b
;
end
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 49
Microcontroller AT89sXX Trainer Kit
Experiment Manual

7. Simpanlah program yang anda ketik dan beri nama : prog51a.asm


8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)

Soal Tantangan:

1. Lakukan modifikasi pada program tersebut dengan manambahkan kata SUHU, pada
Display1, 2, 3 dan 4 diikuti dengan data ADC.( contoh: SUHU 255 )

2. Lakukan modifikasi pada program tersebut dengan manambahkan kata UOLT, pada
Display5, 6, 7dan 8 setelah data ADC.( contoh: 255 UOLT)

Percobaan 5.2. ADC0804 dan Display ke LCD Karakter 2x16


Pada percobaan ini, Data ADC dalam desimal akan ditampilkan pada LCD Karakter 2x16
pada Baris 1, Colom 1, 2 dan 3, yang masing-masing menampilkan data ratusan, puluhan dan
satuan.
LCD Karakter 2x16
Enable

GND
VCC

R/W

DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
VSS

VEE

BPL
RS

VCC
P0.3 10
P0.4 11
P0.5 12
P0.6 13
P0.7 14
15
GND 16
GND 1
2
3
P3.5 4
5
P3.7 6
P0.0 7
P0.1 8
P0.2 9

IN4003

J8 D9
2
1
CON2

Gambar 5.8. Rangkaian Interface LCD Karakter

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:


1. Pada saat langkah pemrograman posisikan saklar togle ke posisi PROG
2. Posisikan saklar togle ke RUN untuk mengaktifkan ADC0804 CS=0
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 50


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 5.9 Diagram alir utama percobaan 5.2


6. Ketik program berikut ini:

org 0h
ratusan equ 30h
puluhan equ 31h
satuan equ 32h
;
org 0h
call init_LCD
call write_char
start: call ADC
call Bin2Dec
call Write2LCD
sjmp start
;
;========================================
;Subrutin ini digunakan untuk mengambil data ADC
;Hubungkan jumper P3.4 ke MUX
;Pada percobaan ini menggunakan ADC0
;========================================
ADC: clr P3.4; A=0 MUX 4051
setb P2.4
clr P3.3
nop
nop
nop
setb P3.3
eoc: jb P3.2,eoc
clr P2.4
mov A,P1
setb P2.4
ret ;

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 51


Microcontroller AT89sXX Trainer Kit
Experiment Manual

;=================================================
;Subrutin untuk menampilkan data ke LCD character 2 x16
;pada DDRAM 0C9 0CA 0CB untukratusan, puluhan, and satuan
;=================================================
Write2LCD:
mov r1,#0c9h
call write_inst
mov a,ratusan
add a,#30h
mov r1,a
call write_data
;
mov r1,#0cah
call write_inst
mov a,puluhan
add a,#30h
mov r1,a
call write_data
;
mov r1,#0cbh
call write_inst
mov a,satuan
add a,#30h
mov r1,a
call write_data
ret
;
;=======================================
;Subrutin ini untuk merubah data biner ke desimal
;menjadi 3 digit = ratusan-puluhan-satuan
;=======================================
Bin2Dec:
mov b,#100d
div ab
mov ratusan,a
mov a,b
mov b,#10d
div ab
mov puluhan,a
mov satuan,b
ret
;
;===============================================
;Subrutin to display Data ADC0804
; line 1
;===============================================
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 52
Microcontroller AT89sXX Trainer Kit
Experiment Manual

write_char:
mov dptr,#word1 ;DPTR = [ address word1 ]
mov r3,#16 ;R3=16,number character to be display
mov r1,#80h ;R1=80h,address DDRAM start position
acall write_inst
;
write1:clr a ;A=0
movc a,@a+dptr ; A = [A+ DPTR]
mov r1,A ; R1 = A
inc dptr ; DPTR = DPTR +1
acall write_data ;
djnz r3,write1 ; R3 = R3-1,
ret
;
Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst
mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5x7
call write_inst
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;
Write_inst:
clr P3.5 ; P3.5 = RS =0
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
Write_data:
setb P3.5 ; P3.5 = RS =1
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret;
;
delay: mov R0,#0
delay1:mov R2,#0fh
djnz R2,$
djnz R0,delay1
ret
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 53
Microcontroller AT89sXX Trainer Kit
Experiment Manual

;
word1: DB ' Data ADC0804 '
end

7. Simpanlah program yang anda ketik dan beri nama : prog52a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan modifikasi pada program tersebut dengan manambahkan kata SUHU: , pada Baris
2 diikuti dengan data ADC.

Percobaan 5.3. Aplikasi program komparator dengan memanfaatkan


instruksi aritmatika dan instruksi lompatan untuk pengaturan suhu dengan
display LCD Karakter

Dalam dunia elektronika, rangkaian komparator, umumnya diwujudkan dengan memanfaatkan


rangkaian op-amp yang dibangun sebagai komparator. Sesuai dengan prinsip kerja komparator,
membandingkan dua buah tegangan yang masuk pada input INV dan NON INV, untuk
menghasilkan suatu output tegangan saturasi. Dengan memanfaatkan instruksi aritmatika
SUBB dan instruksi lompatan JZ dan JC, maka rangkaian analog ini dapat digantikan dengan
menggunakan pemrograman assembly.

Gambar 5.10 Rangkaian komparator analog dengan IC OP-AMP

Apabila tegangan yang masuk pada VREF lebih besar daripada tegangan yang masuk pada
VIN maka VOUT akan mengeluarkan tegangan ~0 volt. Dan sebaliknya bila tegangan yang
masuk pada VREF lebih kecil dari pada VIN maka VOUT akam mengeluarkan tegangan
VSAT.

ControlSuhu:
mov a,dataSetting ; contoh dataSetting=50
mov b,dataADC ; contoh dataADC=30
clr c

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 54


Microcontroller AT89sXX Trainer Kit
Experiment Manual

subb a,b
jnz OnHeater
ret
OnHeater:
jc OffHeater
call HeaterOn ;Instruksi hidupkan heater
ret
OffHeater:
Call HeaterOff;Instruksi matikan heater
ret
;

Pada instruksi tersebut diambil selisih antara dataSetting dan dataADC dengan menggunakan
instruksi SUBB, pengurangan ini akan menghasilkan tiga keadaan yaitu: NOL, NEGATIF atau
POSITIF. Hasil-hasil inilah yang harus dideteksi, keadaan NEGATIF dapat dideteksi dengan
memantau bit C (carry ), keadaan NOL dapat dideteksi dengan memantau register A
(accumulator).

Apabila diberikan keadaan input sesuai dengan contoh tersebut maka:


A=dataSetting=50
B=dataADC=30
SUBB A,B
A=50-30 =20 (keadaan POSITIF)
Sesuai dengan instruksi diatas maka program akan menuju ke Ret OnHeater, pada baris ini
dilakukan proses pengujian keadaan, dengan instruksi JC, karena keadaan POSITIF maka
C=0 (clear) sehingga program akan memanggil HeaterOn

Apabila diberikan keadaan input sesuai dengan contoh tersebut maka:


A=dataSetting=50
B=dataADC=50
SUBB A,B
A=50-50 =00 (keadaan NOL)
Sesuai dengan instruksi diatas maka program akan menuju ke Ret.

Apabila diberikan keadaan input sesuai dengan contoh tersebut maka:


A=dataSetting=50
B=dataADC=51
SUBB A,B
A=50-51 =-1 (keadaan NEGATIF)
Sesuai dengan instruksi diatas maka program akan menuju ke OnHeater, pada baris ini
dilakukan proses pengujian keadaan, dengan instruksi JC, karena keadaan NEGATIF maka
C=1 (clear) sehingga program akan memanggil label OffHeater
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 55
Microcontroller AT89sXX Trainer Kit
Experiment Manual

Pada percobaan 5.3. ini indikator heater On dan Off, ditunjukkan pada layar LCD Karakter
pada baris 1. seperti yang ditunjukkan pada pemrograman berikut ini:

1. Pada saat langkah pemrograman posisikan saklar togle ke posisi PROG


2. Posisikan saklar togle ke RUN untuk mengaktifkan ADC0804 CS=0
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 5.11. Diagram alir (a) rutin utama (b) subrutin kontrol suhu pada percobaan 5.3.

dataSetting equ 30h


dataADC equ 31h
ratusan equ 32h
puluhan equ 33h
satuan equ 34h
org 0h
mov dataSetting,#50d; contoh datasetting=50
call init_lcd
start: call ADC
call ControlSuhu
call bin2dec
call Display2LCD
sjmp start
;

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 56


Microcontroller AT89sXX Trainer Kit
Experiment Manual

ControlSuhu:
mov a,dataSetting ; contoh dataSetting=50
mov b,dataADC ; contoh dataADC=30
clr c
subb a,b
jnz OnHeater
ret
OnHeater:
jc OffHeater
call HeaterOn ;Instruksi turn on heater
ret
OffHeater:
Call HeaterOff ;Instruksi Turn off heater
ret
;
HeaterOn:
mov R1,#80h
call write_inst
mov R1,#'O'
call write_data
;
mov R1,#81h
call write_inst
mov R1,#'n'
call write_data
;
mov R1,#82h
call write_inst
mov R1,#' '
call write_data
ret
HeaterOff:
mov R1,#80h
call write_inst
mov R1,#'O'
call write_data
;
mov R1,#81h
call write_inst
mov R1,#'f'
call write_data
;
mov R1,#82h
call write_inst
mov R1,#'f'
call write_data
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 57
Microcontroller AT89sXX Trainer Kit
Experiment Manual

ret
;=======================================
;Subrutin to convert HEX to decimal
; 3 digit = Hundreads-Tens-Ones
;=======================================
Bin2Dec:
mov A,dataADC
mov b,#100d
div ab
mov ratusan,a
mov a,b
mov b,#10d
div ab
mov puluhan,a
mov satuan,b
ret
;=================================================
;Subrutin untuk menampilkan data ke LCD character 2 x16
;pada DDRAM 0C9 0CA 0CB untukratusan, puluhan, and satuan
;=================================================
Display2LCD:
mov r1,#0c0h
call write_inst
mov a,ratusan
add a,#30h
mov r1,a
call write_data
;
mov r1,#0c1h
call write_inst
mov a,puluhan
add a,#30h
mov r1,a
call write_data
;
mov r1,#0c2h
call write_inst
mov a,satuan
add a,#30h
mov r1,a
call write_data
ret
;========================================
;Subrutin ini digunakan untuk mengambil data ADC
;Hubungkan jumper P3.4 ke MUX
;Pada percobaan ini menggunakan ADC0
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 58
Microcontroller AT89sXX Trainer Kit
Experiment Manual

;========================================
ADC: clr P3.4; A=0
setb P2.4
clr P3.3
nop
nop
nop
setb P3.3
eoc: jb P3.2,eoc
clr P2.4
mov A,P1
setb P2.4
ret ;
;
Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst
mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5x7
call write_inst
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;
Write_inst:
clr P3.5 ; P3.5 = RS =0
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
Write_data:
setb P3.5 ; P3.5 = RS =1
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret;
delay: mov R0,#0
delay1:mov R2,#0fh
djnz R2,$
djnz R0,delay1
ret
end
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 59
Microcontroller AT89sXX Trainer Kit
Experiment Manual

6. Simpanlah program yang anda ketik dan beri nama : prog53a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan modifikasi pada program tersebut dengan manambahkan kata SUHU: , pada Baris
2 diikuti dengan data ADC.

Percobaan 5.4. Kalibrasi dataADC ke suhu dengan menggunakan metode


Look Up Table.
Kenapa kita membutuhkan look up table?: Look up table adalah suatu cara yang digunakan
untuk menghindari proses perkalian dan pembagian yang bertele-tele dan memusingkan bila
dilakukan dengan menggunakan bahasa assembly, yang tentunya harus dilakukan bila kita
akan kalibrasi suatu alat ukur. Contoh kalibrasi Termometer dengan menggunakan persamaan
persamaan berikut ini: Suhu = DataADC * 100/ 255 oC.

Contoh table untuk konversi data ke besaran suhu ( dengan menggunakan program Microsoft
Excell ). Karena data decimal maksimal adalah 255 dan suhu maksimal 100 maka Data look up
tablenya adalah 255/100.

Data Desimal Suhu Ratusan Puluhan Satuan Pecahan


0 0 0 0 0 0
1 0.4 0 0 0 4
2 0.8 0 0 0 8
3 1.2 0 0 1 2
4 1.6 0 0 1 6
5 2.0 0 0 2 0
6 2.4 0 0 2 4
7 2.7 0 0 2 7
8 3.1 0 0 3 1
9 3.5 0 0 3 5
10 3.9 0 0 3 9

: : : : : :
: : : : : :
: : : : : :
243 95.3 0 9 5 3
244 95.7 0 9 5 7
245 96.1 0 9 6 1
246 96.5 0 9 6 5
247 96.9 0 9 6 9
248 97.3 0 9 7 3
249 97.6 0 9 7 6

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 60


Microcontroller AT89sXX Trainer Kit
Experiment Manual

250 98.0 0 9 8 0
251 98.4 0 9 8 4
252 98.8 0 9 8 8
253 99.2 0 9 9 2
254 99.6 0 9 9 6
255 100.0 1 0 0 0

Pada percobaan 5.4, kalibrasi dilakukan untuk perubahan range desimal (0 s/d 255) menjadi
range suhu(000.0 s/d 100.0 oC)

1. Pada saat langkah pemrograman posisikan saklar togle ke posisi PROG


2. Posisikan saklar togle ke RUN untuk mengaktifkan ADC0804 CS=0
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

dataADC equ 30h


org 0h
start: call ADC
call Display2SevenSegmen
sjmp start
;
;========================================
;Subrutin ini digunakan untuk mengambil data ADC
;Hubungkan jumper P3.4 ke MUX
;Pada percobaan ini menggunakan ADC0
;========================================
ADC: clr P3.4; A=0
setb P2.4
clr P3.3
nop
nop
nop
setb P3.3
eoc: jb P3.2,eoc
clr P2.4
mov A,P1
setb P2.4
ret ;
;
Display2SevenSegmen:
mov DPTR,#ratusan ; DPTR = [ Ratusan ]
mov A,DataADC ; A = [DataADC]
movc A,@A+DPTR ; A = [A+DPTR]
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 61
Microcontroller AT89sXX Trainer Kit
Experiment Manual

mov DPTR,#Data7segmen ; DPTR = [Data7Segmen]


movc A,@A+DPTR ; A = [A+DPTR]
mov P0,A ; Copy A ke P0
Clr P3.5 ; Decoder, A=1,
Clr P3.6 ; B=0
Setb P3.7 ; dan C=1
call delay ; Panggil waktu tunda
;
mov DPTR,#puluhan ; DPTR = [ Puluhan ]
mov A,DataADC ; A = DataADC
movc A,@A+DPTR ; A =[ A+DPTR]
mov DPTR,#Data7segmen ; DPTR = [Data7Segmen]
movc A,@A+DPTR ; A = [A+DPTR]
mov P0,A
Setb P3.5
Clr P3.6
Setb P3.7
call delay
;
mov DPTR,#Satuan
mov A,DataADC
movc A,@A+DPTR
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
Clr P3.5 ;
Setb P3.6
Setb P3.7
call delay
;
mov DPTR,#Pecahan
mov A,DataADC
movc A,@A+DPTR
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
Setb P3.5 ;
Setb P3.6
Setb P3.7
call delay
ret
;
delay: mov R0,#0
delay1:mov R2,#0fh
djnz R2,$
djnz R0,delay1
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 62
Microcontroller AT89sXX Trainer Kit
Experiment Manual

ret
;
Pecahan:
db 0,4,8,2,6,0,4,7,1,5,9,3,7,1,5,9,3,7,1,5,8,2,6,0,4,8,2,6,0,4,8,2,5,9,3,7,1,5
db 9,3,7,1,5,9,3,6,0,4,8,2,6,0,4,8,2,6,0,4,7,1,5,9,3,7,1,5,9,3,7,1,5,8,2,6,0,4
db 8,2,6,0,4,8,2,5,9,3,7,1,5,9,3,7,1,5,9,3,6,0,4,8,2,6,0,4,8,2,6,0,4,7,1,5,9,3
db 7,1,5,9,3,7,1,5,8,2,6,0,4,8,2,6,0,4,8,2,5,9,3,7,1,5,9,3,7,1,5,9,3,6,0,4,8,2
db 6,0,4,8,2,6,0,4,7,1,5,9,3,7,1,5,9,3,7,1,5,8,2,6,0,4,8,2,6,0,4,8,2,5,9,3,7,1
db 5,9,3,7,1,5,9,3,6,0,4,8,2,6,0,4,8,2,6,0,4,7,1,5,9,3,7,1,5,9,3,7,1,5,8,2,6,0
db 4,8,2,6,0,4,8,2,5,9,3,7,1,5,9,3,7,1,5,9,3,6,0,4,8,2,6,0
;
Satuan:
db 0,0,0,1,1,2,2,2,3,3,3,4,4,5,5,5,6,6,7,7,7,8,8,9,9,9,0,0,1,1,1,2,2,2,3,3,4,4
db 4,5,5,6,6,6,7,7,8,8,8,9,9,0,0,0,1,1,2,2,2,3,3,3,4,4,5,5,5,6,6,7,7,7,8,8,9,9
db 9,0,0,1,1,1,2,2,2,3,3,4,4,4,5,5,6,6,6,7,7,8,8,8,9,9,0,0,0,1,1,2,2,2,3,3,3,4
db 4,5,5,5,6,6,7,7,7,8,8,9,9,9,0,0,1,1,1,2,2,2,3,3,4,4,4,5,5,6,6,6,7,7,8,8,8,9
db 9,0,0,0,1,1,2,2,2,3,3,3,4,4,5,5,5,6,6,7,7,7,8,8,9,9,9,0,0,1,1,1,2,2,2,3,3,4
db 4,4,5,5,6,6,6,7,7,8,8,8,9,9,0,0,0,1,1,2,2,2,3,3,3,4,4,5,5,5,6,6,7,7,7,8,8,9
db 9,0,0,0,1,1,2,2,2,3,3,3,4,4,5,5,5,6,6,7,7,7,8,8,9,9,9,0
;
puluhan:
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1
db 1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
db 2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4
db 4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
db 5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7
db 7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
db 8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0
;
Ratusan:
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
;
Data7segmen:
db 11000000b,11111001b,10100100b,10110000b,10011001b

db 10010010b,10000010b,11111000b,10000000b,10010000b
;
end

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 63


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 7
KEYPAD 4X4

TUJUAN:
1. Mahasiswa memahami rangkaian interface keypad 4x4 dengan mikrokontroller
2. Mahasiswa memahami bahasa assembly untuk pengambilan data keypad
3. Mahasiswa memahami bahasa assembly untuk pengambilan data keypad dan
mengeluarkan ke LED
4. Mahasiswa memahami bahasa assembly untuk pengambilan data keypad dan
mengeluarkan ke 7 Segmen
5. Mahasiswa memahami bahasa assembly untuk pengambilan data keypad dan
mengeluarkan ke LCD Karakter

P2.7..P2.0

1 2 3

4 5 6

7 8 9

KEYPAD 4 X 4
Gambar 7.1 Rangkaian interface keypad 4x4

Keypad serig digunakan sebagi suatu input pada beberapa peralatan yang berbasis
mikroprosessor atau mikrokontroller. Keypad sesungguhnya terdiri dari sejumlah saklar, yang
terhubung sebagai baris dan kolom dengan susuan seperti yang ditunjukkan pada gambar 7.2.
Agar mikrokontroller dapat melakukan scan keypad, maka port mengeluarkan salah satu bit
dari 4 bit yang terhubung pada kolom dengan logika low 0 dan selanjutnya membaca 4 bit
pada baris untuk menguji jika ada tombol yang ditekan pada kolom tersebut. Sebagai

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 64


Microcontroller AT89sXX Trainer Kit
Experiment Manual

konsekuensi, selama tidak ada tombol yang ditekan, maka mikrokontroller akan melihat
sebagai logika high 1 pada setiap pin yang terhubung ke baris.

Gambar 7.3. Rangkaian dasar keypad 4x4

7.1. Percobaan scan data keypad 1x4, COR-MEN-UpArrow-DnArrow


Pada percobaan ini, akan dilakukan scan data keypad COR-MEN-UpArr.- DnArr. Seperti yang
ditunjukkan pada gambar 7.3 dan mengeluarkan data ke LED.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Buka jumper pada DAC_EN, apabila sedang terpasang.
2. Hubungkan jumper pada LED_EN.
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
VCC

J3

2
1 EN LED
D1

P0.0..P0.7
D8

Gambar 7.4. Display LED sebagai Output Data Keypad

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 65


Microcontroller AT89sXX Trainer Kit
Experiment Manual

5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 7.5. Diagram alir rutin utama percobaan 7.1

Inisialisasi
Keybounch 50
Keyport FF

Column4 0

YES YES
Row4 (COR)=1? Row3 (MEN)=1?
NO
Keybounc:=Keybounc-1 Keybounc:=Keybounc-1

NO NO
Keybounc=0 ? Keybounc=0 ?

YES YES
Keydata #0Ah Keydata #0Bh

End End

Gambar 7.6. Diagram alir subrutin keypad 4 x 1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 66


Microcontroller AT89sXX Trainer Kit
Experiment Manual

6. Ketik program berikut ini:

col4 bit P2.0


col3 bit P2.1
col2 bit P2.2
col1 bit P2.3
row1 bit P2.4
row2 bit P2.5
row3 bit P2.6
row4 bit P2.7
;
keydata equ 70h
keybounc equ 71h
keyport equ P2
;
org 0h
mov P2,#11111111b ;isi P2 dg. 11111111
start: call keypad4x4 ;calling subroutine keypad4x4
Mov A,keydata ;Copy keydata ke A
Cjne A,#0FFh,send ;Bandingkan apakah A=FF if Not E, jump ke send
sjmp start ;LOOPING ke start
send: CPL A ;A = NOT A
Mov P0,A ;Copy A ke P0
Sjmp start ;LOOPING FOREVER PART 2
;
;==========================================
; subroutine scan keypad 1 column x 4 row
;==========================================
Keypad4x4:
mov keybounc,#50 ;keybounc = 50
mov keyport,#0FFh ;keyport=P2= FF
clr col4 ;col4= P2.0 = 0
;
keyCOR:
jb row4,keyMEN ;Key COR. Jump ke keyMEN,
;jika row4= 1
djnz keybounc,KeyCOR ;delay untuk bouncing
mov keydata,#0Ah ;Data Output = 0Ah
ret
;
keyMEN:
jb row3,keyUpA ; Key MEN
djnz keybounc,keyMEN
mov keydata,#0bh ;Data Output = 0bh
ret
;
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 67
Microcontroller AT89sXX Trainer Kit
Experiment Manual

keyUpA:
jb row2,keyDnA ;
djnz keybounc,keyUpA
mov keydata,#0ch ; Data Output = 0ch
ret
;
keyDnA:
jb row1,Nokey ;
djnz keybounc,keyDnA
mov keydata,#0dh ; Data Output = 0dh
ret
Nokey:mov keydata,#0FFh
ret
;================================
;The end of Keypad 4x4 subroutine
;================================
delay: mov R0,#0
delay1:mov R2,#50
djnz R2,$
djnz R0,delay1
ret
end

7. Simpanlah program yang anda ketik dan beri nama : prog71a.asm


8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
10. Lakukan modifikasi pada program tersebut diatas untuk scan data keypad 3-6-9-ENT
11. Lakukan modifikasi pada program tersebut diatas untuk scan data keypad 2-5-8-0
12. Lakukan modifikasi pada program tersebut diatas untuk scan data keypad 1-4-7-CAN

7.2. Percobaan scan data keypad 4x4 dan mengeluarkan ke LCD


Pada percobaan ini, akan dilakukan scan data keypad dan mengeluarkan data ke LCD Karakter.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper EN_LCD
2. Buka jumper pada EN_DAC, apabila sedang terpasang
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 68


Microcontroller AT89sXX Trainer Kit
Experiment Manual

LCD Karakter 2x16

Enable

GND
VCC

R/W

DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
VSS

VEE

BPL
RS
VCC

P0.3 10
P0.4 11
P0.5 12
P0.6 13
P0.7 14
15
GND 16
GND 1
2
3
P3.5 4
5
P3.7 6
P0.0 7
P0.1 8
P0.2 9

IN4003
J8 D9
2
1
CON2

Gambar 7.7. Rangkaian LCD Karakter 2x16


5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 7.8. Diagram alir subrutin keypad 4x4

6. Ketik program berikut ini:

col4 bit P2.0


col3 bit P2.1
col2 bit P2.2
col1 bit P2.3
row1 bit P2.4
row2 bit P2.5
row3 bit P2.6
row4 bit P2.7
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 69
Microcontroller AT89sXX Trainer Kit
Experiment Manual

keydata equ 70h


keybounc equ 71h
keyport equ P2
org 0h
mov P2,#11111111b
call Init_LCD
start: call keypad4x4 ;calling subroutine keypad4x4
Mov A,keydata ;A = keydata
Cjne A,#0FFh,WrLCD;
sjmp start ;LOOPING FOREVER PART 1
;
WrLCD: Mov R1,#80h ;Pick DDRAM 1st row and 1st col
call write_inst
Mov R1,#30h
Add A,R1
Mov R1,A
call write_data ;write data
Sjmp start ;LOOPING FOREVER PART 2;
;
Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst ;
mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
call write_inst ;
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;
Write_inst:
clr P3.5 ; P3.5 = RS =0
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
Write_data:
setb P3.5 ; P3.5 = RS =1
mov P0,R1 ; copy R1 ke P0
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret;====================================
; subroutine scan keypad 4x4
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 70
Microcontroller AT89sXX Trainer Kit
Experiment Manual

;====================================
Keypad4x4:
mov keybounc,#50 ;keybounc = 50
mov keyport,#0FFh ;keyport=P2= FF
clr col4 ;col4 = 0
;
keyCOR: jb row4,keyMEN ; Key COR
djnz keybounc,KeyCOR
mov keydata,#0Ah ;Data Output
ret
;
keyMEN: jb row3,keyUpA ; Key MEN
djnz keybounc,keyMEN
mov keydata,#0bh ;Data Output
ret

keyUpA: jb row2,keyDnA ; Key Up Arrow


djnz keybounc,keyUpA
mov keydata,#0ch ;Data Output
ret
;
keyDnA: jb row1,key3 ; Key Down Arrow
djnz keybounc,keyDnA
mov keydata,#0dh ;Data Output
ret
;==========================================
key3: setb col4
clr col3
jb row4,key6
djnz keybounc,key3 ; Key 3
mov keydata,#03h ;Data Output
ret
;
key6: jb row3,key9
djnz keybounc,key6 ; Key 6
mov keydata,#06h ;Data Output
ret
;
key9: jb row2,keyENT
djnz keybounc,key9 ; Key 9
mov keydata,#09h ;Data Output
ret
;
keyENT: jb row1,key2
djnz keybounc,keyENT ; Key ENT
mov keydata,#0eh ;Data Output
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 71
Microcontroller AT89sXX Trainer Kit
Experiment Manual

ret
;============================================
key2: setb col3
clr col2
jb row4,key5
djnz keybounc,key2
mov keydata,#02h ;Data Output
ret
;
key5: jb row3,key8
djnz keybounc,key5
mov keydata,#05h ; Data Output
ret
;
key8: jb row2,key0
djnz keybounc,key8
mov keydata,#08h ;Data Output
ret
;
key0: jb row1,key1
djnz keybounc,key0
mov keydata,#00h ;Data Output
ret
;==============================================
key1: setb col2
clr col1
jb row4,key4
djnz keybounc,key1
mov keydata,#01h ;Data Output
ret
key4: jb row3,key7
djnz keybounc,key4
mov keydata,#04h ;Data Output
ret
key7: jb row2,keyCAN
djnz keybounc,key7
mov keydata,#07h ;Data Output
ret
keyCAN: jb row1,Nokey
djnz keybounc,keyCAN
mov keydata,#0Fh ;Data Output
ret
Nokey: mov keydata,#0FFh
ret
;================================
;The end of Keypad 4x4 subroutine
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 72
Microcontroller AT89sXX Trainer Kit
Experiment Manual

;================================
delay: mov R0,#0
delay1: mov R2,#50
djnz R2,$
djnz R0,delay1
ret
end

5. Simpanlah program yang anda ketik dan beri nama : prog72a.asm


6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
8. Lakukan pengamatan pada LCD
9. Lakukan modifikasi pada program tersebut untuk menampilkan data keypad ke lokasi
DDRAM LCD:

No Lokasi Display Data Keypad


1 Baris 2 Kolom 2
2 Baris 2 Kolom 16

10. Lakukan modifikasi pada rangkaian tersebut untuk menampilan data keypad ke display 7
segmen sesuai dengan percobaan 3.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 73


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 9
T I M E R/ COUNTER

TUJUAN
1. Mahasiswa memahami fungsi timer dan counter pada mikrokontroller
2. Mahasiswa memahami rangkaian interface untuk aplikasi timer dan counter
3. Mahasiswa dapat memanfaatkan fungsi counter untuk mencacah pulsa
4. Mahasiswa dapat memanfaatkan fungsi timer untuk membangkitkan clock dengan periode
tertentu.

FUNGSI COUNTER

Pada keluarga MCS-51 terdapat dua buah timer/ counter 16 bit, yang dapat dikonfigurasikan
sebagai timer atau counter, 8 bit, 13 bit atau 16 bit sesuai dengan mode yang dipilih. Gambar
berikut merupakan contoh aplikasi Counter 8 bit dengan menggunakan mode 3

Gambar 9.1 Diagram blok timer counter

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 74


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Percobaan 9.1. Mencacah pulsa clock dengan aplikasi Mode 0 sebagai


counter 13 bit dengan output LED pada TIMER 0
Pada percobaan ini, pulsa diambil melalui clock generator yang dibangkitkan oleh IC 555, hasil
cacahan biner pada register counter dari Timer 0 akan ditampilkan pada LED.

Lakukan beberapa langkah percobaan sebagai berikut:


1. Hubungkan 1 buah kabel antara P3.4 dengan output astable/ clock IC 555
2. Hubungkan jumper konektor LED_EN
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 9.2 Diagram alir percobaan 9.1

5. Ketik program berikut ini:

; Hubungkan konektor P3.4 ke T0 untuk mendapat output dari Astabil


org 0h
Start: Mov TMOD,#00000100b ; TIMER 0
; mode 0 counter 13 bit sebagai counter
Setb TR0 ; TR0 = 1, start counting
Get: Mov A, TL0 ; A = TL0
CPL A ; A = NOT A
Mov P0, A ; P0 = A. Display ke LED
Sjmp Get ; Looping Forever
End

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 75


Microcontroller AT89sXX Trainer Kit
Experiment Manual

VCC

J3

2
1 EN LED
D1

P0.0..P0.7
D8
Gambar 9.3. Rangkaian display LED

6. Simpanlah program yang anda ketik dan beri nama : prog91a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada LED ? dan lengkapi tabel berikut.

Clock D1 D2 D3 D4 D5 D6 D7 D8
1
2
3
;
;
20

Percobaan 9.2. Mencacah pulsa clock dengan aplikasi Timer 0, Mode 3


sebagai counter 8 bit dengan output 7 Segmen
Pada percobaan ini, pulsa diambil melalui clock generator yang dibangkitkan oleh IC 555, hasil
cacahan biner pada register counter akan ditampilkan pada 7 Segmen.
Lakukan beberapa langkah percobaan sebagai berikut:
1. Hubungkan 1 buah kabel antara P3.4 ke T0 dengan output clock IC 555
2. Hubungkan jumper konektor 7Segmen_EN
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 76


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 9.4. Diagram alir percobaan 9.2


5. Ketik program berikut ini:

ratusan equ 30h


puluhan equ 31h
satuan equ 32h
Org 0h
Mov TMOD,#00000100b ; mode 0 counter 13bit timer 0
Setb TR0 ; TR0 = 0, start counting
Get: Mov A, TL0 ; A = TL0
Call Bin2Dec ; panggil subroutine biner ke desimal
Call Display7Segmen ; panggil subroutine display 7 segmen
Sjmp Get ;Looping Forever
;
Bin2Dec:
mov b,#100d
div ab
mov ratusan,a
mov a,b
mov b,#10d
div ab
mov puluhan,a
mov satuan,b
ret
;
Display7Segmen:
clr P3.5

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 77


Microcontroller AT89sXX Trainer Kit
Experiment Manual

clr P3.6
clr P3.7
mov A, ratusan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
call delay
;
setb P3.5
clr P3.6
clr P3.7
mov A, puluhan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
call delay
;
clr P3.5 ;
setb P3.6
clr P3.7
mov A, satuan
mov DPTR,#Data7segmen
movc A,@A+DPTR
mov P0,A
call delay
ret
;
delay: mov R0,#0
delay1: mov R2,#0fh
djnz R2,$
djnz R0,delay1
ret
;
Data7segmen:
db 11000000b,11111001b,10100100b,10110000b,10011001b
db 10010010b,10000010b,11111000b,10000000b,10010000b
;
end

6. Simpanlah program yang anda ketik dan beri nama : prog92a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada display 7 segmen ? dan lengkapi tabel berikut.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 78


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Clock ke Display 7 Segmen


1
2
3
4
5
;
20

11. Lakukan modifikasi pada program tersebut untuk menampilkan data counter ke
LCD karakter.

FUNGSI TIMER

Pada keluarga MCS-51 terdapat dua buah timer/ counter 16 bit, yang dapat dikonfigurasikan
sebagai timer atau counter, 8 bit, 13 bit atau 16 bit sesuai dengan mode yang dipilih. Gambar
berikut merupakan contoh aplikasi Counter 16 bit dengan menggunakan mode 1

Gambar 9.5. Diagram blok timer counter mode 1 16 bit

Percobaan 9.3. Membangkitkan clock dengan aplikasi Timer 1, sebagai


timer 16 bit dengan output LED

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 79


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Pada percobaan ini, clock akan dibangkitkan dengan menggunakan fungsi timer 16 bit, dengan
periode 1 detik, Ton = 0,5 detik dan Toff = 0,5 detik, dengan tampilan LED

Gambar 9.6. Periode clock

Pada mode ini, dengan kristal 12MHz maka timer akan overflow setiap 65.536 udetik. Pada
percobaan ini, untuk membangkitkan interupsi setiap 1000 udetik maka data yang harus
diisikan pada register TL1 dan TH1 adalah sebagai berikut:
65536 - 10000 = 55536 d or D8F0h
Maka interupsi TF1 akan segera dibangkitkan setiap 1000 x 1 udetik = 0,01 detik
pada pemrograman ini, RO diimplementasikan sebagai counter software, Register R0 akan
increment setiap Timer 1 overflow. Jika register R7 telah mendeteksi nilai 50 maka port P0.0 (
LED D0 ) akan nyala selama = 0,01 x 50 detik = 0,5 detik.

Lakukan beberapa langkah percobaan sebagai berikut:


1. Lepas kabel yang menghubungkan antara P3.5 dengan output clock IC 555
2. Hubungkan jumper konektor LED_EN
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 80


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 9.7. Diagram alir (a) rutin utama (b)subrutin delay

6. Ketik program berikut ini:

Org 0h
Start: Setb P0.0 ;P0.0 = 1
call Delay ;call delay time
Clr P0.0 ;P0.0 = 0
call delay ;call delay time
Sjmp Start ;Looping Forever
;
Delay: Mov R0,#0 ;R0 = 0
Mov TMOD,#00010000b ;Mode 1, Fungsi =Timer 1 16 bit
Load: Mov TH1, #0D8h ;TH1 = D8h
Mov TL1, #0F0h ; TL1 = F0h
Setb TR1 ; TR1 = 1, Start Running
OFlow: JNB TF1, OFlow ; jump to OFlow if TF1 =0
Clr TR1 ; TR1 = 0
Clr TF1 : TF1 = 0
Inc R0 ; R0 = R0+1
CJNE R0,#50,Load

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 81


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Ret
;
End

7. Simpanlah program yang anda ketik dan beri nama : prog93.asm


8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
10. Lakukan pengamatan pada nyala LED
11. Lakukan modifikasi pada program tersebut untuk membangkitkan frekuensi 10 Hz, 100 Hz,
dan 500 Hz dan lakukan pengamatan pada layar osciloscope

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 82


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 10
KOMUNIKASI SERIAL RS232

TUJUAN
1. Mahasiswa memahami rangkaian interface port serial
2. Mahasiswa memahami mengkonfigurasikan komunikasi serial pada port serial PC
3. Mahasiswa memahami penulisan bahasa assembly untuk konfigurasi port serial
4. Mahasiswa memahami penulisan pemrograman delphi untuk komunikasi dengan
mikrokontroller.

Salah satu komunikasi yang paling ampuh untuk diimplementasikan dalam sistem komunikasi
digital adalah komunikasi dengan memanfaatkan jalur serial RS232. Mikrokontroller 89s51
telah memiliki fasilitas UART, sehingga dapat melakukan komunikasi secara serial dengan
level RS2322 antar peralatan atau dengan komputer. MAX232 merupakan IC yang difungsikan
untuk merubah format TTL ke RS232 atau sebaliknya.

Gambar 10.1 Sistem komunikasi serial mikrokontroller dengan PC

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 83


Microcontroller AT89sXX Trainer Kit
Experiment Manual

P3.0 ( Rx )

P3.1 ( Tx )
VCC

16 MAX232 PC DB9 Male


VCC 13 12
8 R1IN R1OUT 9 1
11 R2IN R2OUT 14 6
10u 10 T1IN T1OUT 7 2
T2IN T2OUT 7
+

10u 1 3
3 C+ 8
+
4 C1- 4
5 C2+ 9
2 C2- 5
+

6 V+
V-
10u P1
15
+ 10u

Gambar 10.2. Rangkaian skematik MAX232

Percobaan 10.1 Menghidupkan LED melalui komunikasi serial RS232


dengan Program Hyperterminal

Pengujian sistem komunikasi antara mikrokontroller dengan port serial computer dapat
dilakukan dengan memanfaatkan program hyperterminal pada sistem yang berbasis under
windows ( 98, ME dan XP ). Kelebihan penggunakan program ini, tidak diperlukan suatu
bahasa pemrograman dan kelemahannya, terbatas hanya pada proses pengujian. Pada
percobaan ini LED dihidupkan dan dimatikan melalui pengiriman karakter (0 9 ) pada
keyboard PC.

Gambar 10.1 Pemilihan menu communication pada Accessories

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 84


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 10.2 Pemilihan menu HyperTerminal pada communication

(a) (b)

Gambar 10.3. (a) Pemberian nama koneksi (b) Pemilihan koneksi pada COM1

(a) (b)

Gambar 10.4. (a) Properties serial komunikasi (b) windows HyperTerminal

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 85


Microcontroller AT89sXX Trainer Kit
Experiment Manual

VCC

J3

2
1 EN LED
D1

P0.0..P0.7
D8
Gambar 10.5. Display LED

Lakukan beberapa langkah percobaan sebagai berikut:


1. Hubungkan jumper konektor ke LED_EN
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program Hyperterminal dan inputkan angka 0 s/d 9 pada keyboard PC

Gambar 10.6. (a) Diagram alir rutin utama (b) subrutine ambil karakter pada percobaan 10.1

5. Ketik program asembly berikut ini:


org 0h
nop
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 86
Microcontroller AT89sXX Trainer Kit
Experiment Manual

call initserial
gets:call inchar
mov P0,a
sjmp gets
;
initserial:
mov scon,#50h ; Konfigurasi komunikasi serial mode 1
mov tmod,#20h ; Baud rate 2400 BPS
mov th1,#0F3h
setb tr1
ret
;
inchar:
detect: jnb ri,detect ; Deteksi bit RI apakah data sudah diterima atau belum
clr ri
mov a,sbuf
subb a,#30h ; merubah kode ascii menjadi integer
cpl a ; komplemen A
ret
;
End

6. Simpanlah program yang anda ketik dan beri nama : hiper1a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada nyala LED

Soal Tantangan:
1. Rencanakan program assembly untuk pengambilan data pada port serial dan lakukan
pendeteksian apakah tombol yang ditekan pada keyboard PC adalah 0 dan 1, bila
tombol yang ditekan adalah 0 maka LED yang terhubung pada P0 akan berputar ke
kanan dan sebaliknya bila tombol yang ditekan adalah 1 maka LED yang terhubung
ke P0 akan berputara ke kiri.
2. Rencakan program assembly untuk mengambil data pada port serial dan lakukan
pendeteksian apakah tombol yang ditekan pada keyboard PC adalah 0, 1,2 s/d 9. dan
outputkan data tersebut pada 7 segmen, sesuai dengan angka yang ditekan.
3. Lakukan perhitungan pada baudrate port serial dengan kecepatan 9600 BPS, dan
terapkan pada soal tantangan 2.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 87


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Percobaan 10.2a Mengambil data satu karkter pada mikrokontroller


dengan Hyperterminal.
Pada percobaan ini, data satu carcter akan dikirimkan dari mikrokontroller ke komputer
melalui port serial dan ditampilkan pada layar Hyperterminal.

Lakukan beberapa langkah percobaan sebagai berikut:


1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program Hyperterminal
4. Ketik program asembly berikut ini:

org 0h
nop
call initserial
mov A,#1 ; apa yang akan terjadi bila tanda petik dihilangkan
call sendout
getout: sjmp getout
;
initserial:
mov scon,#42h ; Konfigurasi komunikasi serial mode 1
mov tmod,#20h ; Baud rate 2400 BPS
mov th1,#0F3H
setb tr1
ret
;
Sendout:
detecto: jnb ti,detecto;
clr ti ;
mov sbuf,a ;
ret

Percobaan 10.2b Mengambil data karkter pada mikrokontroller dengan


Hyperterminal.
Pada percobaan ini, data akan dikirimkan dari mikrokontroller ke komputer melalui port serial
dan ditampilkan pada layar Hyperterminal.

Lakukan beberapa langkah percobaan sebagai berikut:


1. Hubungkan modul Microcontroller Trainer dengan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program Hyperterminal
4. Ketik program asembly berikut ini:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 88


Microcontroller AT89sXX Trainer Kit
Experiment Manual

org 0h
nop
call initserial
mov dptr,#MyCharacter
gets: clr A
Movc A,@A+dptr
cjne A,#0,Next
sjmp getout
Next: call sendout
inc dptr
sjmp gets
getout: sjmp getout
;
initserial:
mov scon,#42h ; Konfigurasi komunikasi serial mode 1
mov tmod,#20h
mov th1,#0F3H; Baud rate 2400 BPS
setb tr1
ret
;
Sendout:
detecto: jnb ti,detecto;
clr ti ;
mov sbuf,a ;
ret
MyCharacter:
DB ' Selamat Datang Di Laboratorium Mikrokontroller',13,10,0
End

5. Simpanlah program yang anda ketik dan beri nama : hiper2a.asm


6. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi
program dari *.asm ke *.hex.
7. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)

Soal Tantangan:

1. Rencanakan program untuk cetak angka 1 sebanyak 1x, angka 2 sebanyak 2x, dan
angka 3 sebanyak 3x pada program hyperterminal, putunjuk pakai DJNZ

2. Rencanakan program untuk mengambil data mikrokontroller melalui port serial dan
ditampilkan pada layer Hyperterminal, dengan data-data sebagai berikut, secara
berturutan:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 89


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Nama : Budi
Jenis Kelamin : Laki-Laki
Tempat/ Tgl. Lahir : Surabaya, 12 September 1987

3. Rencanakan program untuk mengambil data saklar pada mikrontroller dan dikirimkan
melalui port serial dan ditampilkan pada layar Hyperterminal.

SW1

P2.7..P2.0
SW8

Dengan keterangan sebagai berikut:


Bila sw0 s/d sw7 yang terhubung ke P2 pada mikrontroller, ditekan secara bergantian
maka mikrontroller akan mengirimkan data ke PC sesuai dengan tombol yang ditekan,
bila sw0 ditekan maka carcter 0 akan dikirim, bila sw1 ditekan maka carcter 1 akan
dikirim ke PC secara serial, dan bila tidak ada tombol yang ditekan maka akan
memunculkan carcter X dan seterusnya. Dengan format tampilan sebagai berikut:

Tombol yang sedang ditekan: X

4. Rencanakan program untuk mengambil data ADC pada mikrontroller dan dikirimkan
melalui port serial dan ditampilkan pada layar Hyperterminal

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 90


Microcontroller AT89sXX Trainer Kit
Experiment Manual

J26 J27
CON1 CON1
VCC
1

16
U8 J30
AD0 13 3

VDD
AD1 14 X0 X 1
15 X1
CON1
12 X2
1 X3
5 X4
2 X5
4 X6
X7
GND 6
MUX 11 INH
10 A
VCC 9 B
VSS C
GND 4051

R36 J25
68 CON1 U9

6 18 P1.0
GND +IN DB0 P1.1
1

7 17
10K R38 -IN DB1 16 P1.2
9 DB2 15 P1.3
VREF/2 DB3
1

D12 19 14 P1.4
4 CLKR DB4 13 P1.5
3V 2 CLKIN DB5 12 P1.6
C9 GND 1 DB6 11 P1.7
150pF P2.4 2 CS DB7
10K P3.3 3 RD 5 P3.2
R39 C10 WR INTR
+
10uF
3

ADC0804

Dengan keterangan sebagai berikut:

Data ADC yang diambil melalui port P2 ditampilkan pada 7 segmen, sehingga akan
menampilan angka 000 s/d 255, selain ditampilkan ke 7 segmen data dari ADC juga
ditampilkan pada program Hyperterminal, secara berkala setiap beberapa detik, dengan
menggunakan delay. Dengan format tampilan sebagai berikut:

Data ADC: 000

5. Rencanakan program untuk mengambil data counter pada mikrokontroller, dengan


Timer 0, mode 2 Autoreload sehingga akan mencacah dari 000 s/d 255, tampilkan data
hasil cacahan tersebut pada 7 segmen dan kirim data hasil cacahan pada layer
Hyperterminal, dengan format tampilan sebagai berikut:

Data hasil cacahan: 000

6. Rencakan program untuk membuat jam digital dengan memanfaatkan Timer 0, mode
16 bit, mode1, dengan interupsi setiap 50.000 microsecond. Dengan tampilan pada 7
segmen, detik, menit dan jam, dengan format tampilan sebagai berikut:

Tanggal : 12-Mei-2008
Waktu : 00:00:00

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 91


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Percobaan 10.3 Menghidupkan LED melalui komunikasi serial RS232 PC


dengan Pemrograman Delphi
Pada percobaan ini, data dikirimkan melalui port communication serial PC secara serial dan
ditangkap oleh mikrokontroller untuk dioutputkan ke LED

VCC

J3

2
1 EN LED
D1

P0.0..P0.7
D8
Gambar 10.7. Display LED

Lakukan beberapa langkah percobaan sebagai berikut:


1. Hubungkan jumper konektor ke LED_EN
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 92


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 10.8. (a) Diagram alir rutin utama (b) subrutine ambil karakter pada percobaan 10.1

5. Ketik program asembly berikut ini:

org 0h
nop
call initserial
gets: call inchar
mov P0,a
sjmp gets
;
initserial:
mov scon,#50h ; Konfigurasi komunikasi serial mode 1
mov tmod,#20h ; Baud rate 2400 BPS
mov th1,#0F3
setb tr1
ret
;
inchar:
detect: jnb ri,detect ; Deteksi bit RI apakah data sudah diterima atau belum
clr ri
mov a,sbuf
ret
;
End

6. Simpanlah program yang anda ketik dan beri nama : prog101a.asm

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 93


Microcontroller AT89sXX Trainer Kit
Experiment Manual

7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi
program dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada nyala LED
10. Buka Program Delphi

11. Ketik Program Delphi berikut ini, untuk menjalankan komunikasi melalui port serial,
dengan tampilan sebagai berikut:

Atur properties Object Inspector, sebagai berikut:


Pada Object Inspector tersebut menjelaskan :
1. BaudRate = 2400
2. Connected = True
3. DataBits = 8
4. Port = COM1
5. StopBits = 1 Stop Bit

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 94


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 10.10. Tampilan program delphi untuk menghidupkan LED

Listing program Delphi:

procedure TForm1.Button1Click(Sender: TObject);


var data:byte; count:integer;
begin
data:=0;
count:=1;
comport1.write(data,count);
end;

procedure TForm1.Button2Click(Sender: TObject);


var data:byte; count:integer;
begin
data:=255;
count:=1;
comport1.write(data,count);
end;

12. Jalankan program delphi dengan menekan tombol F9 atau RUN


13. Lakukan penekanan pada tiap-tiap button dan lakukan pengamatan.

Percobaan 10.3. Mengendalikan arah gerakan LED melalui komunikasi


serial RS232 dengan pemrograman Delphi

Pada percobaan ini, arah gerakan LED kekiri atau kekanan, dikendalikan melalui komunikasi
sercara serial RS232.

Lakukan beberapa langkah percobaan sebagai berikut:


1. Pasang jumper LED_EN pada modul praktek
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 95


Microcontroller AT89sXX Trainer Kit
Experiment Manual

3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer


4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 10.11 Diagram alir utama percobaan 10.2

5. Ketik program asembly berikut ini:

org 0h
nop
call initserial
gets: call inchar
cjne a,#128,rotR
sjmp rotL
sjmp gets
rotR: mov P0,#11111110b;
call delay
mov P0,#11111101b;
call delay ;
mov P0,#11111011b;
call delay ;
mov P0,#11110111b;
call delay ;
mov P0,#11101111b;
call delay ;
mov P0,#11011111b;
call delay ;
mov P0,#10111111b;
call delay ;
mov P0,#01111111b;
call delay ;
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 96
Microcontroller AT89sXX Trainer Kit
Experiment Manual

sjmp gets
;
rotL: mov P0,#01111111b;
call delay
mov P0,#10111111b;
call delay ;
mov P0,#11011111b;
call delay ;
mov P0,#11101111b;
call delay ;
mov P0,#11110111b;
call delay ;
mov P0,#11111011b;
call delay ;
mov P0,#11111101b;
call delay ;
mov P0,#11111110b;
call delay ;
sjmp gets
;
initserial:
mov scon,#52h ;serial mode 1 configuration
mov tmod,#20h ; Baud rate 2400 BPS
mov th1,#-13
setb tr1
ret
;
inchar:
detect: jnb ri,detect ;detecting do data have been accepted or not yet.
clr ri
mov a,sbuf
ret
;
delay: mov R0,#255
delay1:mov R2,#255
djnz R2,$
djnz R0,delay1
ret
;
End

6. Simpanlah program yang anda ketik dan beri nama : prog102a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 97


Microcontroller AT89sXX Trainer Kit
Experiment Manual

8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (


Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan pada nyala LED
10. Buka Program Delphi

11. Ketik Program Delphi berikut ini, untuk menjalankan komunikasi melalui port serial.

Gambar 10.13. Gambar tampilan program delphi untuk pengaturan LED

procedure TForm1.Button1Click(Sender: TObject);


var data:byte; count:integer;
begin
data:=0;
count:=1;
comport1.write(data,count);
end;

procedure TForm1.Button2Click(Sender: TObject);


var data:byte; count:integer;
begin
data:=255;
count:=1;
comport1.write(data,count);
end;

12. Simpanlah program yang anda ketik dan beri nama rotateserial.asm
13. Jalankan program delphi dengan menekan tombol F9 atau RUN
14. Lakukan penekanan pada tiap-tiap button dan lakukan pengamatan.

Percobaan 10.4. Pengambilan data SW melalui komunikasi serial RS232 PC


dengan pemrograman Delphi
Pada percobaan ini, arah gerakan LED kekiri atau kekanan, dikendalikan melalui komunikasi
sercara serial RS232.

Lakukan beberapa langkah percobaan sebagai berikut:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 98


Microcontroller AT89sXX Trainer Kit
Experiment Manual

1. Hubungkan modul Microcontroller Trainer dengan power supply +5V


2. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
3. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
4. Lakukan pengetikan program assembly sebagai berikut

org 0h
call initserial
;
start: mov A,P2; ambil data dari SW
call Sendout; kirim data ke PC
sjmp start
;
Sendout:
detect: jnb ti,detect;
clr ti ;
mov sbuf,a ;
ret
;
initserial:
mov scon,#52h;initialize serial mode 1
mov tmod,#20h;timer1 mode 2
mov th1,#0F3h;Reload value for baud rate 2400
setb tr1
ret
end
5. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi
program dari *.asm ke *.hex.
6. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
7. Lakukan pengamatan pada nyala LED
8. Buka Program Delphi, dan lakukan pemrograman Delphi dengan tampilan sebagai
berikut

7. Lakukan pengaturan pada properties dari object inspector berikut.


Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 99
Microcontroller AT89sXX Trainer Kit
Experiment Manual

8. Pada Objeck Inspector pilih tabulasi Events, dan click dua kali pada OnRxChar.
9. Tampilan akhir program, sebagai berikut:

10. Lakukan pengetikan instruksi program, sebagai berikut:

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);


var buff:string;y:integer;
begin
comport1.ReadStr(buff,count);
y:=ord(buff[1]);
edit1.text:=inttostr(y);
end;

Percobaan 10.4 Pengambilan data ADC melalui komunikasi secara serial


RS232 PC dengan pemrograman Delphi
Pada percobaan ini, data ADC0804 diambil menggunakan port 1 mikrokontroller dan
dikirimkan melalui port serial ke PC

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 100


Microcontroller AT89sXX Trainer Kit
Experiment Manual

J26 J27
CON1 CON1
VCC
1

16
U8 J30
AD0 13 3

VDD
AD1 14 X0 X 1
15 X1
CON1
12 X2
1 X3
5 X4
2 X5
4 X6
X7
GND 6
MUX 11 INH
10 A
VCC 9 B
VSS C
GND 4051

R36 J25
68 CON1 U9

6 18 P1.0
GND +IN DB0 P1.1
1

7 17
10K R38 -IN DB1 16 P1.2
9 DB2 15 P1.3
VREF/2 DB3
1

D12 19 14 P1.4
4 CLKR DB4 13 P1.5
3V 2 CLKIN DB5 12 P1.6
C9 GND 1 DB6 11 P1.7
150pF P2.4 2 CS DB7
10K P3.3 3 RD 5 P3.2
R39 C10 WR INTR
+
10uF
3

ADC0804

VCC

R25 R26
1

10K 10K
J22
2 2
AD1 1
2
AD0

3
CON3
3

VCC

J23

C16 3
100n 2
1

CON3
D19 R28
18k
1N4148

D20
1N4148

Gambar 10.14. Rangkaian ADC0804

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 101


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Lakukan beberapa langkah percobaan sebagai berikut:


1. Pada saat langkah pemrograman posisikan saklar togle ke posisi PROG
2. Posisikan saklar togle ke RUN untuk mengaktifkan ADC0804 CS=0
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 10.15. Diagram alir utama percobaan 10.3

6. Ketik program berikut ini:

org 0h
call initserial
;
start: call ADC; ambil data dari adc
call Sendout
sjmp start
;
;========================================
;Subrutin ini digunakan untuk mengambil data ADC
;Hubungkan jumper P3.4 ke MUX
;Pada percobaan ini menggunakan ADC0
;========================================
ADC: clr P3.4; A=0
setb P2.4
clr P3.3
nop
nop
nop
setb P3.3
eoc: jb P3.2,eoc

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 102


Microcontroller AT89sXX Trainer Kit
Experiment Manual

clr P2.4
mov A,P1
setb P2.4
ret ;
;
Sendout:
detect: jnb ti,detect;
clr ti ;
mov sbuf,a ;
ret
;
initserial:
mov scon,#52h;initialize serial mode 1
mov tmod,#20h;timer1 mode 2
mov th1,#0F3h;Reload value for baud rate 2400
setb tr1
ret
end
7. Simpanlah program yang anda ketik dan beri nama : prog103a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
10. Buka Program Delphi

11. Ketik Program Delphi berikut ini, untuk menjalankan komunikasi melalui port serial

Gambar 10.17. Tampilan program delphi pengambilan data ADC

12. Simpanlah program yang anda ketik dan beri nama adcserial.asm
13. Jalankan program delphi dengan menekan tombol F9 atau RUN
14. Lakukan pengamatan pada data tampilan.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 103


Microcontroller AT89sXX Trainer Kit
Experiment Manual

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);


var buff:string;y:integer;
begin
comport1.ReadStr(buff,count);
y:=ord(buff[1]);
edit1.text:=inttostr(y);
end;

procedure TForm1.Button1Click(Sender: TObject);


begin
comport1.connected:=true;
end;

10.5. Pengiriman karakter ke LCD Karakter melalui komunikasi serial


RS232 dengan pemrograman Delphi
Pada percobaan ini data karakter dikirimkan ke LCD Karakter melalui komunikasi secara
serial, melalui pemrograman delphi.

1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 10.18 Diagram alir rutin utama percobaan 10.4

5. Ketik program berikut ini:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 104


Microcontroller AT89sXX Trainer Kit
Experiment Manual

org 0h
call initserial
call init_LCD
;
start:
call GetChar
mov r1,#0c0h
acall write_inst
add a,#30h
mov r1,a
acall write_data
sjmp start
;
GetChar:
detect: jnb ri,detect ;
clr ri
mov a,sbuf
ret
;
initserial:
mov scon,#52h;initialize serial mode 1
mov tmod,#20h;timer1 mode 2
mov th1,#0F3h;Reload value for baud rate 2400
setb tr1
ret
;
Init_lcd:
mov r1,#00000001b ;Display clear
call write_inst ;
mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7
call write_inst ;
mov r1,#00001100b ;Display on, cursor off,cursor blink off
call write_inst
mov r1,#00000110b ;Entry mode, Set increment
call write_inst
ret
;
Write_inst:
clr P3.6 ; P3.6 = RS =0
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
clr P3.7 ; P3.7 =EN = 0
ret
;
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 105
Microcontroller AT89sXX Trainer Kit
Experiment Manual

Write_data:
setb P3.6 ; P3.6 = RS =1
mov P0,R1 ; P0 = D7 s/d D0 = R1
setb P3.7 ; P3.7 =EN = 1
call delay ; call delay time
call delay ; call delay time
clr p3.7 ; P3.7 =EN = 0
ret
;
delay: mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
end

6. Simpanlah program yang anda ketik dan beri nama : prog104a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Buka Program Delphi
10. Ketik Program Delphi berikut ini, untuk menjalankan komunikasi melalui port serial
dengan base address 3F8h

Gambar 10.19. Tapilan program delphi untuk pengiriman data

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 106


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 11
INTERUPSI

TUJUAN
1. Mahasiswa memahami sistem interupsi pada mikrokontroller
2. Mahasiswa dapat menerapkan sistem interupsi pada pembuatan jam digital
3. Mahasiswa dapat memahami penggunakan bahasa assembly untuk penggunakan sistem
interupsi

Pada mikrokontroller menyediakan 5 buah sumeber interupsi, 2 buah interupsi eksternal, 2


buah interupsi timer, dan 1 buah interupsi serial. Agar interupsi dapat dilayani maka instruksi
assembly harus ditempatkan pada alamat vektor berikut, sesuai dengan sumber interupsi yang
akan digunakan.

Tabel 11.1. Alamat Vektor Interupsi


Source Vector Address
IE0 0003H
TF0 000BH
IE1 0013H
TF1 001BH
RI + TI 0023H

J1 J2
CON8 U1 CON8
P0.0 39 21 P2.0
1 P0.1 38 P0.0/AD0 P2.0/A8 22 P2.1 1
2 P0.2 37 P0.1/AD1 P2.1/A9 23 P2.2 2
3 P0.3 36 P0.2/AD2 P2.2/A10 24 P2.3 3
4 P0.4 35 P0.3/AD3 P2.3/A11 25 P2.4 4
5
6
P0.5 34 P0.4/AD4
P0.5/AD5
P2.4/A12
P2.5/A13
26 P2.5 5
6
Interupsi Eksternal 0, agar
P0.6 33 27 P2.6
7 P0.7 32 P0.6/AD6 P2.6/A14 28 P2.7 7 terjadi interupsi pada system
8 P0.7/AD7 P2.7/A15 8
P1.0 1 10 P3.0 maka, pada pin ini harus
1 P1.1 2 P1.0 P3.0/RXD 11 P3.1 1
2 P1.2 3 P1.1 P3.1/TXD 12 P3.2 2 mendapat sebuah pulsa, baik
3 P1.3 P1.2 P3.2/INTO P3.3 3
4 P1.4
4
5 P1.3 P3.3/INT1
13
14 P3.4 4 transisi hi-lo, atau berupa pulsa
5 P1.5 6 P1.4 P3.4/TO 15 P3.5 5
6 P1.6 7 P1.5/MOSI P3.5/T1 16 P3.6 6
7 P1.7 8 P1.6/MISO P3.6/WR 17 P3.7 7
8 P1.7/SCK P3.7/RD 8
J3 XTAL1 19 29 CON8
CON8 XTAL2 18 XTAL1 PSEN J4
RST 9 XTAL2 30
RST ALE/PROG
VCC 31
EA/VPP
VCC 40
VCC
AT89S51

Gambar 11.1. Rangkaian target mikrokontroller 89s51

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 107


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Org 0000h
Ljmp Start
Org 000bh
Ljmp Timer0Interupt
Start: ; Instruksi Rutinitas
; Instruksi Rutinitas
; Instruksi Rutinitas
Sjmp Start; { Looping Forever }
;
Timer0Interupt:
:
:
Reti
End

Pada contoh instruksi pemrograman tersebut tampak, apabila tidak ada interupsi maka program
akan menuju ke start dan menjalankan rutinitas-rutinitas secara terus menerus, tetapi apabila
suatu interupsi yang dibangkitkan oleh overflow timer 0 terjadi, maka program yang semula
bersarang pada rutinitas akan melompat pada alamat vektor 0bh (alamat interupsi timer 0) dan
melompat ke subrutine interupsi Timer0Interupt.

Percobaan 11.1. Mengaktifkan interupsi eksternal INT0

Pada percobaan ini akan dibuat sebuah system interupsi eksternal yang menggunakan pin
INT0, untuk menerima sinyal interupsi dari luar, berupa pulsa. Apabila system tidak mendapat
interupsi, maka delapan LED akan padam, sebaliknya apabila ada interupsi yang berupa pulsa
dari monostabil, maka delapan LED akan berkedip, terus menerus, sampai tombol reset
ditekan.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan kabel dari P3.2. ke output rangkaian monostabil
2. Tekan tombol SW pada pushbutton untuk memberikan trigger pada monostabil, apabila
monostabil mendapat trigger maka monostabil akan mengeluarkan pulsa satu kali.
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Ketik program sebagai berikut:


Org 0h

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 108


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Sjmp start
Org 03h
Sjmp AdaInterupsiExt0
Start: call InitInterupsiExt0
Forever: mov P0,#11111111b
Sjmp Forever
InitInterupsiExt0:
Setb IT0; interupsi transisi hi-lo
Setb EX0; aktifkan interupsi eksternal
Setb EA
Ret

AdaInterupsiExt0:
mov P0,#11111111b
call delay
mov P0,#00000000b
call delay
reti
end

6. Simpanlah program yang anda ketik dan beri nama : prog111a.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)

Percobaan 11.2. Membangkitkan clock pada jam digital :DD dengan memanfaatkan
interupsi timer 0.

Pada percobaan akan dibangkitkan clock untuk jam digital, hanya bagian detik puluhan
(display 1) dan detik satuan (display 2) pada 7 segmen
Pada mode ini, dengan kristal 12MHz maka timer akan overflow setiap 65.536 udetik. Pada
percobaan ini, untuk membangkitkan interupsi setiap 50000 udetik maka data yang harus
diisikan pada register TL0 dan TH0 adalah sebagai berikut:
65536 - 50000 = 15536 d or 3CB0h
Maka interupsi TF0 akan segera dibangkitkan setiap 50000 x 1 udetik = 0,05 detik
pada pemrograman ini, RO diimplementasikan sebagai counter software, Register R0 akan
increment setiap Timer 0 overflow. Jika register R7 telah mendeteksi nilai 50 maka port P0.0 (
LED D0 ) akan nyala selama = 0,05 x 20 detik = 1 detik

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:


1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 109


Microcontroller AT89sXX Trainer Kit
Experiment Manual

4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 11.1. (a) Diagram alir rutin utama, (b) subrutin interupsi, dan (c) subrutin display ke 7
segmen percobaan 11.1

5. Ketik program berikut ini:

detik equ 30h


detikpuluhan equ 31h
detiksatuan equ 32h
counter20 equ 33h
;
Org 0h
sjmp Start
Org 0bh ;alamat vector interupsi timer0
Ljmp Interrupt_Timer0;lompat ke subroutine interupsi timer 0
;

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 110


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Start:
mov detik,#0 ;isi detik dg. 0
mov counter20,#20
call InitTimer ;panggil inittimer
;
Forever:
call ClockDisplay ;panggil clockdisplay
sjmp Forever ; ;lompat forever
;
Interrupt_Timer0:
mov tl0,#0b0h ;isi TL0 dg B0h
mov th0,#03ch ;isi TH0 dg 3Ch
djnz Counter20, EndInterrupt;Counter20:=Counter20-1
;jump EndInterupt if NZ
mov Counter20,#20
call DoClock
EndInterrupt:
reti
;
DoClock:
inc detik
mov A,detik
cjne A,#60,Update
mov detik,#0
Update:mov A,detik
mov B,#10
DIV AB
mov detikpuluhan,A
mov detiksatuan,B
ret
;
ClockDisplay:
Mov DPTR,#Decoder7Segmen
mov A,detiksatuan
Movc A,@A+DPTR
mov P0,A
clr P3.5 ;
Setb P3.6
Setb P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,detikpuluhan
Movc A,@A+DPTR
mov P0,A
;
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 111
Microcontroller AT89sXX Trainer Kit
Experiment Manual

Setb P3.5 ;
clr P3.6
Setb P3.7
call delay
ret
;
InitTimer:
mov TMOD,#00000001b
mov tl0,#0b0h
mov th0,#03ch
setb ET0 ;Enable Timer 0 Interrupt
setb EA ;Master Interrupt Enable
setb TR0 ;Clock start running
ret
;
;===============================
;subroutine delay time
;===============================
delay: mov R1,#2
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
;===============================

;LOOKUPTABLE
; Decode to Seven Segmen -> g f e d c b a
;========================================
Decoder7Segmen:
DB 11000000b,11111001b,10100100b,10110000b,10011001b
DB 10010010b,10000010b,11111000b,10000000b,10010000b
;
End

9. Simpanlah program yang anda ketik dan beri nama : prog112.asm


10. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
11. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
12. Lakukan pengamatan untuk data waktu detik yang ditampilkan apakah sesuai dengan jam
konvensional.

No Jam Digital (:DD) Jam Konvensional


1 1
2 2

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 112


Microcontroller AT89sXX Trainer Kit
Experiment Manual

3 3
4 4
5 5
6 6
7 7
: :
30 30

Percobaan 11.3. Membangkitkan clock pada jam digital MM:DD dengan memanfaatkan
interupsi timer 0.

Pada percobaan akan dibangkitkan clock untuk jam digital untuk detik dan menit pada 7
segmen
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:

detik equ 30h


detikpuluhan equ 31h
detiksatuan equ 32h
menit equ 33h
menitpuluhan equ 34h
menitsatuan equ 35h
counter20 equ 36h
;
Org 0h
sjmp Start
Org 0bh
Ljmp Interrupt_Timer0
;
Start: mov detik,#0
mov menit,#0
call InitTimer
;
Forever:
call ClockDisplay
sjmp Forever ;
;
Interrupt_Timer0:
mov tl0,#0b0h

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 113


Microcontroller AT89sXX Trainer Kit
Experiment Manual

mov th0,#03ch
djnz Counter20, EndInterrupt
mov Counter20,#20
call DoClock
EndInterrupt:
reti
;
DoClock:
inc detik
mov A,detik
cjne A,#60,Update
mov detik,#0
satumenit:
inc menit
mov A,#60
cjne A,menit,Update
mov menit,#0

Update:mov A,detik
mov B,#10
DIV AB
mov detikpuluhan,A
mov detiksatuan,B
;
mov a,menit
mov b,#10
div ab
mov menitpuluhan,A
mov menitsatuan,B
ret

;
ClockDisplay:
Mov DPTR,#Decoder7Segmen
mov A,menitpuluhan
Movc A,@A+DPTR
mov P0,A
clr P3.5 ;
clr P3.6
clr P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,menitsatuan
Movc A,@A+DPTR
mov P0,A
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 114
Microcontroller AT89sXX Trainer Kit
Experiment Manual

setb P3.5 ;
clr P3.6
clr P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,detikpuluhan
Movc A,@A+DPTR
mov P0,A
clr P3.5 ;
setb P3.6
clr P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,detiksatuan
Movc A,@A+DPTR
mov P0,A
setb P3.5 ;
Setb P3.6
clr P3.7
call delay
ret
;
InitTimer:
mov TMOD,#00000001b
mov tl0,#0b0h
mov th0,#03ch
setb ET0 ;Enable Timer 0 Interrupt
setb EA ;Master Interrupt Enable
setb TR0 ;Clock start running
ret
;
;===============================
;subroutine delay time
;===============================
delay: mov R1,#2
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
;========================================
;LOOKUPTABLE
; Decode to Seven Segmen -> g f e d c b a
;========================================
Decoder7Segmen:
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 115
Microcontroller AT89sXX Trainer Kit
Experiment Manual

DB 11000000b,11111001b,10100100b,10110000b,10011001b
DB 10010010b,10000010b,11111000b,10000000b,10010000b
;
End

6. Simpanlah program yang anda ketik dan beri nama : prog113.asm


7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan untuk data waktu yang ditampilkan.

No Jam Digital (MM:DD) Jam Konvensional


1 00:01
2 00:02
3
4
5
6
7
: :
: 01:59

Percobaan 11.4. Membangkitkan clock down MM:DD dengan memanfaatkan interupsi


timer 0.

Pada percobaan akan dibangkitkan clock dengan hitungan mundur dari menit 60 detik 60 untuk
detik dan menit pada 7 segmen
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper 7Segmen_EN, untuk mengaktifkan Decoder 74LS138
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:

detik equ 30h


detikpuluhan equ 31h
detiksatuan equ 32h
menit equ 33h
menitpuluhan equ 34h
menitsatuan equ 35h
counter20 equ 36h

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 116


Microcontroller AT89sXX Trainer Kit
Experiment Manual

;
Org 0h
sjmp Start
Org 0bh
Ljmp Interrupt_Timer0
;
Start: mov detik,#60
mov menit,#59
call InitTimer
;
Forever:
call ClockDisplay
sjmp Forever ;
;
Interrupt_Timer0:
mov tl0,#0b0h
mov th0,#03ch
djnz Counter20, EndInterrupt
mov Counter20,#20
call DoClock
EndInterrupt:
reti
;
DoClock:
dec detik
mov A,detik
cjne A,#0,Update
mov detik,#60
satumenit:
dec menit
mov A,#0
cjne A,menit,Update
mov menit,#60

Update:mov A,detik
mov B,#10
DIV AB
mov detikpuluhan,A
mov detiksatuan,B
;
mov a,menit
mov b,#10
div ab
mov menitpuluhan,A
mov menitsatuan,B
ret
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 117
Microcontroller AT89sXX Trainer Kit
Experiment Manual

;
ClockDisplay:
Mov DPTR,#Decoder7Segmen
mov A,menitpuluhan
Movc A,@A+DPTR
mov P0,A
clr P3.5 ;
clr P3.6
clr P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,menitsatuan
Movc A,@A+DPTR
mov P0,A
setb P3.5 ;
clr P3.6
clr P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,detikpuluhan
Movc A,@A+DPTR
mov P0,A
clr P3.5 ;
setb P3.6
clr P3.7
call delay
;
Mov DPTR,#Decoder7Segmen
mov A,detiksatuan
Movc A,@A+DPTR
mov P0,A
setb P3.5 ;
Setb P3.6
clr P3.7
call delay
ret
;
InitTimer:
mov TMOD,#00000001b
mov tl0,#0b0h
mov th0,#03ch
setb ET0 ;Enable Timer 0 Interrupt
setb EA ;Master Interrupt Enable
setb TR0 ;Clock start running
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 118
Microcontroller AT89sXX Trainer Kit
Experiment Manual

ret
;
;===============================
;subroutine delay time
;===============================
delay: mov R1,#2
del1: mov R2,#255
del2: djnz R2,del2
djnz R1,del1
ret
;========================================
;LOOKUPTABLE
; Decode to Seven Segmen -> g f e d c b a
;========================================
Decoder7Segmen:
DB 11000000b,11111001b,10100100b,10110000b,10011001b
DB 10010010b,10000010b,11111000b,10000000b,10010000b
;
End

10. Simpanlah program yang anda ketik dan beri nama : prog114.asm
11. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
12. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
13. Lakukan pengamatan untuk data waktu yang ditampilkan.

Soal Tantangan:
1. Rencanakan sebuah sistem interupsi dengan menggunakan pin P3.3/ INT1. Bila tidak ada
interupsi maka pada 7 segmen akan muncul komentar OK, dan bila ada interupsi maka
akan muncul komentar Error, pada 7 segmen.
2. Rencanakan jam digital dengan tampilan ke 7 segmen bagian detik, dengan komentar:
tine: 00, dengan menggunakan interupsi dari timer 1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 119


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 12
INTERFACE KE KEYBOARD PC PS/2

TUJUAN
1. Mahasiswa memahami rangkaian interface keyboard PC PS/2
2. Mahasiswa memahami bahasa pemrograman assembly pengambilan data keyboard PC
3. Mahasiswa dapat menampilan data keyboard PC ke berbagai macam display antara
lain, LCD Karakter dan 7 Segmen

TEORI
Antarmuka keyboard standard adalah hubungan komunikasi serial. Serial yang menandakan
bahwa data dikirim satu bit pada suatu waktu tertentu pada satu jalur tunggal. Serial
komunikasi dipilih untuk antara muka keyboard karena hal ini simple dan mudah diterapkan,
dan tidak banyak data per detik yang harus dikirimkan pada antar muka keyboard.

Ada empat jalur yang menghubungkan keyboard dan PC. Dua dari ini adalah power supply dan
ground, yang digunakan untuk memberikan daya ke rangkaian keyboard. Dua sinyal yang lain
adalah sebagai berikut:

1. Data Keyboard: Disinilah jalur bit-bit data dan perintah yang akan dikirimkan ke sistem
PC dari keyboard.
2. Clock Keyboard: Ini merupakan sinyal clock regular, dengan suatu nilai yang berosilasi
dari logika 1 ke 0 dengan pola yang teratur. Tujuan dari sinyal clock ini adalah
untuk mensinkronisasi keyboard dan sistem, sehingga merekan selalu bekerja secara
bersamaan.

Keyboard PC AT yang terkoneksi, hanya menggunakan empat buah kabel, kabel ini
ditunjukkan pada gambar dibawah, untuk 5 pin DIM dan PS/2.

1.KBD Clock
2.KBD Data
3.N/C
4.GND
5. +5V (VCC)
5 PIN DIN
(a)
1. KBD Clock
2. GND
3. KBD Data
4. N/C
5. +5V (VCC)
6 PIN DIN 6. N/C
(b)
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 120
Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 12.1. Keyboard konektor (a) XT (b) PS/2

Diagram dibawah ini menunjukkan kode scan yang menandai tombol individu. Kode scan
ditunjukkan pada bagian bawah dari tombol. Contoh kode scan untuk tombol ESC adalah 76.
Semua kode scan ditunjukkan dalam Hex.

Gambar 12.2. Peta data keyboard PC

Sebagaimana yang anda lihat, kode scan ditandai dengan kode yang random. Pada beberapa
kasus, cara yang paling mudah untuk menerjemahkan kode scan ke ASCII adalah dengan
menggunakan metode look up table.

Transmisi data, dari keyboard ke sistem, dilakukan dengan frame 11 bit. Bit pertama adalah bit
start ( logika 0 ), diikuti dengan 8 bit data ( LSB first ), satau bit paristas ( paritas ganjil ) dan
bit stop ( logika 1 ). Setiap bit harus dibaca pada sisi turun dari clock.

Gambar 12.3. Sinyal clock dan data

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 121


Microcontroller AT89sXX Trainer Kit
Experiment Manual

VCC

10 K
. .
6 1 P3.3

IN4148
5 2
.
VCC .
4. 3
. VCC

10 K
IN4148 P3.2

Konektor Keyboard PS2/ Female

Gambar 12.4 Interface rangkaian keyboard PC PS/2

VCC

J3

2
1 EN LED
D1

P0.0..P0.7
D8

Gambar 12.5. Rangkaian interface LED

Percobaan 12.1. Pengambilan data karakter keyboard PC dan display ke LED

Pada percobaan ini data keyboard PC diinterfacekan ke mikrokontroller dengan menggunaan


port P3 bit 2 dan 3. Hasil pengambilan data keyboard selanjutnya ditampilkan pada LED.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper keyboard dua kabel ke rangkaian mikrokontroller bit P3.2 dan bit P3.3.
2. Pasang jumper LED_EN
2. Hubungkan modul keyboard PC PS/2 ke konektor keybaord
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 122


Microcontroller AT89sXX Trainer Kit
Experiment Manual

5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 12.6. Diagram alir (a) rutin utama, (b) subrutin ambil_keyboard pada percobaan 12.1

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 123


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 12.7 Diagram alir (a) subrutin ambil_scancode, (b) subrutin konversi_scancode pada
percobaan 12.1

6. Ketik program berikut ini: (download file prog122a.asm)

dispclr equ 00000001b


funcset equ 00111000b
entrmod equ 00000110b
dispon equ 00001100b
KbdData bit P3.2
KbdClock bit INT1;P3.3
DataKeyboard equ 30h
;
org 0h
Forever:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 124


Microcontroller AT89sXX Trainer Kit
Experiment Manual

JB KbdClock,$
acall ambilKeyboard
jnc Forever
Mov P0, Datakeyboard
clr C
sjmp Forever
;
;============================================
;Subrutine AmbilKeyboard
;Subrutine berikut berfungsi untuk mendeteksi apakah keyboard
;sedang ditekan atau dilepas. Bila tombol tidak dilepas maka
;akan menuju pada subrutine ;Kybd_tidakLepas
;dan memberi tanda pada bit C = 0 sehingga bila C = 0
; maka data tidak akan dicetak
;Bila tombol keyboard dilepas maka data scan code diambil
;dan dikonversi ke dengan dengan menggunakan
; look up table serta menandai bit C = 1
;===========================================
AmbilKeyboard:
acall ambil_scancode
cjne a,#0F0h,kybd_tidakLepas
JB KbdClock,$
acall ambil_Scancode
Setb C
Acall Konversi_Scancode
ret
;
Kybd_tidakLepas:
Clr C
ret
;
;======================================================
;Subrutine Konversi_ScanCode
;Pada subrutine ini digunakan untuk menerjemahkan scan code ke bentuk
;karakter dengan menggunakan look up table.
;======================================================
Konversi_ScanCode:
Mov DPTR,#TableKeyboard
movc A,@A+DPTR
mov DataKeyboard,A
ret
;
;==========================
;Subrutin deteksi tombol keyboard
;==========================
Ambil_scanCode:
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 125
Microcontroller AT89sXX Trainer Kit
Experiment Manual

clr A
Jnb KbdClock,$
mov R0,#08h
Ambil_ScanCode2:
Jb KbdClock,$
Mov C,KbdData
Rr A
mov acc.7,C
Jnb KbdClock,$
Djnz R0,Ambil_ScanCode2
Jb KbdClock,$
Jnb KbdClock,$
Jb KbdClock,$
Jnb KbdClock,$
ret
;
delay: mov R5,#0
delay1:mov R4,#02fh
djnz R4,$
djnz R5,delay1
ret
TableKeyboard:
DB 00
DB 0F9H
DB 00
DB 0F5H,0F3H,0F1H,0F2H,0FCH
DB 00H
DB 0FAH,0F8H,0F6H,0F4H
DB 0C0H
DB '~'
DB 00H
DB 00H
DB 0C1H
DB 0C2H
DB 00H
DB 0C3H
DB 'Q1'
DB 00H,00H,00H
DB 'ZSAW2'
DB 00H,00H
DB 'CXDE43'
DB 00H,00H
DB ' VFTR5'
DB 00H,00H
DB 'NBHGY6'
DB 00H,00H,00H
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 126
Microcontroller AT89sXX Trainer Kit
Experiment Manual

DB 'MJU78'
DB 00H,00H
DB ',KIO09'
DB 00H,00H
DB './L;P-'
DB 00H,00H,00H
DB 27H
DB 00H
DB '[='
DB 00H,00H
DB 0C5H
DB 0C6H
DB 0AH
DB ']'
DB 00H
DB '\'
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 08H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 0DH
DB 00H
DB 0FBH
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 0F7H
end
7. Simpanlah program yang anda ketik dan beri nama : prog122a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari
*.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat
Petunjuk Penggunaan)
10. Lakukan pengamatan untuk data keyboard yang ditampilkan.

Percobaan 12.1. Pengambilan data karakter keyboard PC dan display ke


LCD Karakter
Pada percobaan ini data keyboard PC diinterfacekan ke mikrokontroller dengan menggunaan
port P3 bit 2 dan 3. Hasil pengambilan data keyboard selanjutnya ditampilkan pada layar LCD
Karakter.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 127


Microcontroller AT89sXX Trainer Kit
Experiment Manual

VCC Potensio Multiturn


10k
J3
3 P0.7..P0.0
EN LCD 1
2 2 7
VCC D0
D1
8
15 D1
BPL 9
D2
10
16 D3
GND 11
D4
12
1 D5
VSS 13
D6
14
D7 P3.6
4
RS
6
EN
P3.7

LCD Character 2 X 16
Gambar 12.8. Rangkaian interface LCD karakter 2x16

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:


1. Hubungkan jumper keyboard dua kabel ke rangkaian mikrokontroller bit P3.2 dan bit P3.3.
2. Hubungkan modul keyboard PC PS/2 ke konektor keybaord
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
6. Ketik program berikut ini:
dispclr equ 00000001b
funcset equ 00111000b
entrmod equ 00000110b
dispon equ 00001100b
KbdData bit P3.3
KbdClock bit INT0
DataKeyboard equ 30h
;
org 0h
nop
call init_LCD
;
Forever:
JB KbdClock,$
call GetDataKeyboard
jnc Forever
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 128
Microcontroller AT89sXX Trainer Kit
Experiment Manual

acall LCD_Out
clr C
sjmp Forever
;
;==================================
;Subroutine Get Data From Keyboard
;==================================
GetDataKeyboard:
call Get_scancode
cjne a,#0F0h,kybd_pressed
JB KbdClock,$
call Get_Scancode
Setb C
call Convert_Scancode
ret
;
Kybd_pressed:
Clr C
ret
;
;===============================
;Subroutine Convert Scan Data
;Using Look Up Table
;===============================
Convert_ScanCode:
Mov DPTR,#TableKeyboard
movc A,@A+DPTR
mov DataKeyboard,A
ret
;
LCD_Out:
mov R7, #80h
acall write_inst
mov R7,DataKeyboard
acall write_data
ret
;
init_lcd:
mov R7,#dispclr
acall write_inst
mov R7,#funcset
acall write_inst
mov R7,#dispon
acall write_inst
mov R7,#entrmod
acall write_inst
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 129
Microcontroller AT89sXX Trainer Kit
Experiment Manual

ret
;
Get_scanCode:
clr A
Jnb KbdClock,$
mov R0,#08h
Get_ScanCode2:
Jb KbdClock,$
Mov C,KbdData
Rr A
mov acc.7,C
Jnb KbdClock,$
Djnz R0,Get_ScanCode2
Jb KbdClock,$
Jnb KbdClock,$
Jb KbdClock,$
Jnb KbdClock,$
ret
;
Write_inst:
clr P3.6 ; RS = P2.0 = 0, write mode instruction
mov P0,R7 ; D7 s/d D0 = P0 = R1
setb P3.7 ; EN = 1 = P2.1
call delay; call delay time
clr P3.7 ; EN = 0 = P2.1
ret
;
Write_data:
setb P3.6 ; RS = P2.0 = 1, write mode data
mov P0,R7 ; D7 s/d D0 = P0 = R1
setb P3.7 ; EN = 1 = P2.1
call delay; call delay time
clr p3.7 ; EN = 0 = P2.1
ret
;
;
delay: mov R5,#0
delay1:mov R4,#02fh
djnz R4,$
djnz R5,delay1
ret
;
TableKeyboard:
DB 00
DB 0F9H
DB 00
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 130
Microcontroller AT89sXX Trainer Kit
Experiment Manual

DB 0F5H,0F3H,0F1H,0F2H,0FCH
DB 00H
DB 0FAH,0F8H,0F6H,0F4H
DB 0C0H
DB '~'
DB 00H
DB 00H
DB 0C1H
DB 0C2H
DB 00H
DB 0C3H
DB 'Q1'
DB 00H,00H,00H
DB 'ZSAW2'
DB 00H,00H
DB 'CXDE43'
DB 00H,00H
DB ' VFTR5'
DB 00H,00H
DB 'NBHGY6'
DB 00H,00H,00H
DB 'MJU78'
DB 00H,00H
DB ',KIO09'
DB 00H,00H
DB './L;P-'
DB 00H,00H,00H
DB 27H
DB 00H
DB '[='
DB 00H,00H
DB 0C5H
DB 0C6H
DB 0AH
DB ']'
DB 00H
DB '\'
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 08H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 00H,00H
DB 0DH
DB 00H
DB 0FBH
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 0F7H
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 131
Microcontroller AT89sXX Trainer Kit
Experiment Manual

End

7. Simpanlah program yang anda ketik dan beri nama : prog121a.asm


8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
10. Lakukan pengamatan untuk data keyboard yang ditampilkan.
11. Lakukan modifikasi program tersebut untuk menampilkan data keyboard PC lebih dari satu
karakter ke LCD karakter.

Percobaan 12.2. Pengambilan data karakter keyboard PC dan display ke 7


Segmen
Pada percobaan ini data keyboard PC diinterfacekan ke mikrokontroller dengan menggunaan
port P3 bit 2 dan 3. Hasil pengambilan data keyboard selanjutnya ditampilkan pada disply 7
Segmen
P0.6..P0.0
Common Anoda
a a
f b b
c
d
g e
e c f
d g

7 x 220 ohm
VCC VCC VCC VCC VCC VCC VCC VCC
Y7..Y0
PNP PNP PNP PNP PNP PNP PNP PNP
FCS 9013 FCS 9013
FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013 FCS 9013

8 x 1k ohm
(a)
P3.5
Y7..Y0
P3.6 U8
1 15
A Y0
P3.7 2
B Y1
14
3 13
VCC C Y2 12
J2 Y3 11
6 Y4 10
4 G1 Y5 9
1 5 G2A Y6 7
EN 7 SEGMEN 2 G2B Y7

R28 74LS138
VCC
10K

(b)

Gambar 12.9. Rangkaian Display 8x7 segmen (a) dan rangkaian decoder (b)

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 132


Microcontroller AT89sXX Trainer Kit
Experiment Manual

1. Hubungkan jumper keyboard dua kabel ke rangkaian mikrokontroller bit P3.2 dan bit P3.3.
2. Hubungkan modul keyboard PC PS/2 ke konektor keybaord
3. Pasang jumper 7 SegmenEN
4. Hubungkan modul Microcontroller Trainer dengan power supply +5V
5. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
6. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
7. Ketik program berikut ini:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 133


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 13
MOTOR STEPPER

TUJUAN
1. Mahasiswa mamahami rangkaian interface mikrokontroller dengan motor stepper
2. Mahasiswa memahami rangkaian driver motor stepper ULN2003
3. Mahasiswa memahami bahasa assembly untuk mengatur arah putaran motor stepper
4. Mahasiswa memahami bahasa assembly untuk mengatur arah putaran motor stepper
dengan menggunakan saklar.

DASAR TEORI
VCC

P0.3..P0.0 ULN2003
1 16
I1 O1

I2 O2

I3 O3

I4 O4

I5 O5 MOTOR STEPPER
I6 O6

I7 O7
VCC
8 9
GND VCC

Gambar 13.1. Rangkaian interface motor stepper dengan driver ULN2003

Pada Motor DC biasa, akan berputar dan berputar terus selama power supply ada. Tidak ada
rangkaian cerdas tertentu yang diperlukan untuk mengendalikan motor tersebut, kecuali hanya
memperlambat putaran atau membalik putaran, dengan menerapkan polaritas balik. Motor
stepper adalah sangat berbeda. Jika anda memberikan power pada motor ini, maka motor ini
akan berada dalam keadaan diam, agar motor dapat berputar, anda harus merubah sinyal yang
masuk ke motor. Sebagai ilustrasi, dapat dibayangkan sebuah kompas dengan elektromagnet
disekitarnya. Sebagaimana digambarkan pada gambar 2.2., apabila power yang diberikan pada
elektromagnet diganti, maka akan merubah posisi jarum dari kompas.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 134


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 13.2. Ilustrasi sebuah kompas dengan elektromagnet

Dengan empat buah elektromagnet maka gerakan akan melompat secara kasar. Sekarang
bayangkan susunan yang sama dengan 100 elektromagnet yang mengitari kompas. Dengan
mangatur energi yang mengalir pada setiap elektromagnet dalam berurutan, maka jarum akan
memerlukan sebanyak 100 langkah untuk melakukan satu kali putaran. Tetapi dengan
pengaturan 100 elektromagnet secara individu, akan memerlukan elektronika yang kompleks.

Gambar 13.3. Ilustrasi motor stepper dengan jarum kompas dengan elektromagnet

Pada ilustrasi tersebut, huruf-huruf yang melingkar mewakili elektromagnet. Semua magnet
dengan huruf yang sama berada dalam keadaan koneksi. Ketika anda memberi arus pada
rangkaian tersebut, maka semua elektromagnet dengan huruf yang sama akan on pada saat itu,
untuk menggerakkan kompas, maka elektromaget berikutnya harus dialiri arus, sehingga akan
menimbulkan gerakan.

Table 13.1. Full Step Mode

A B C D Comment
1 0 0 0 Take a step clock wise
0 1 0 0 another step clock wise
0 0 1 0 another step clock wise

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 135


Microcontroller AT89sXX Trainer Kit
Experiment Manual

0 0 0 1 another step clock wise


0 0 0 1 No step take
0 0 1 0 Take a step back

Mode Half Steps


Dengan menghidupkan dua koil pada waktu yang bersamaan maka motor akan berada dalam
posisi diantaranya.

Figure 13.4. Half step mode

Table 13.2. Half Step Mode

A B C D Comment
1 0 0 0 Take a step clock wise
1 1 0 0 Half a step clock wise
0 1 0 0 The complete full step clock wise
0 1 1 0 another half step clock wise
0 0 1 0 The complete full step clock wise
0 0 1 1 Another half step clock wise
0 0 0 1 The complete full step clock wise
1 0 0 1 another half step clock wise
1 0 0 0 Start position

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 136


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar 13.5. Bentuk fisik motor stepper disk drive 1,2

Percobaan 13.1. Menggerakkan Motor Stepper Searah Jarum Jam


Pada percobaan ini, motor stepper akan berputar searah jarum jam, terus menerus
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan kabel parallel antara P0 dengan motor stepper
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 137


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Gambar13.6. Diagram alir percobaan 8.1

5. Ketik program berikut ini:


org 0h
start: call StepCW
sjmp start
;
StepCW:
mov P0,#11101111b ; Turn on driver 1. isi P0 dg 11101111b
call delay ; call delay time
mov P0,#11011111b ; Turn on driver 2. isi P0 dg 11011111b
call delay ; call delay time
mov P0,#10111111b ; Turn on driver 3. isi P0 dg 10111111b
call delay ; call delay time
mov P0,#01111111b ; Turn on driver 4. isi P0 dg 01111111b
call delay ; call delay time
ret
StepCCW:
mov P0,#01111111b ; Turn on driver 1
call delay ; call delay time
mov P0,#10111111b ; Turn on driver 2

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 138


Microcontroller AT89sXX Trainer Kit
Experiment Manual

call delay ; call delay time


mov P0,#11011111b ; Turn on driver 3
call delay ; call delay time
mov P0,#11101111b ; Turn on driver 4
call delay ; call delay time
ret
delay: mov R0,#255
delay1:mov R2,#255
djnz R2,$
djnz R0,delay1
ret
end
6. Simpanlah program yang anda ketik dan beri nama : prog81a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
9. Lakukan pengamatan arah putaran motor stepper apakah sudah sesuai ?
10. Lakukan modifikasi program tersebut diatas, untuk putaran motor yang berlawanan arah
jarum jam CCW.

Percobaan 13.2 Pengaturan Arah Putaran CW/ CCW Motor Stepper


Melalui Saklar
Pada percobaan ini, motor stepper akan berputar searah jarum jam, atau berlawanan arah jarum
jam bergantung pada posisi push button yang ditekan ( P2.0 atau P2.1 ) secara terus menerus.
SW1

P2.7..P2.0
SW8

Gambar 13.7. Rangkaian pushbutton


Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 139


Microcontroller AT89sXX Trainer Kit
Experiment Manual

1. Hubungkan kabel parallel antara P0 dengan motor stepper


2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program

Gambar 13.8. Diagram alir percobaan 8.2

5. Ketik program berikut ini:

org 0h
start:
CW: JB P2.0,CCW ; jump ke ccw jika P2.0=1. SW1
call stepCW
sjmp start
;
CCW: JB P2.1,CW ; jump ke cw jika P2.1=1. SW2
Call stepCCW
Sjmp start
;
StepCW:
mov P0,#11101111b ; isi P0 dg.11101111. Turn on driver 1
call delay ; call delay time
mov P0,#11011111b ; Turn on driver 2
call delay ; call delay time
mov P0,#10111111b ; Turn on driver 3
call delay ; call delay time
mov P0,#01111111b ; Turn on driver 4
call delay ; call delay time
ret
;
StepCCW:
mov P0,#01111111b ; Turn on driver 1
call delay ; call delay time
mov P0,#10111111b ; Turn on driver 2
call delay ; call delay time
mov P0,#11011111b ; Turn on driver 3

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 140


Microcontroller AT89sXX Trainer Kit
Experiment Manual

call delay ; call delay time


mov P0,#11101111b ; Turn on driver 4
call delay ; call delay time
ret
;
delay: mov R0,#255
delay1: mov R2,#255
djnz R2,$
djnz R0,delay1
ret
end

8. Simpanlah program yang anda ketik dan beri nama : prog82a.asm


9. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program
dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software (
Lihat Petunjuk Penggunaan)
10. Lakukan pengamatan arah putaran motor stepper apakah sudah sesuai ?
11. Lakukan modifikasi program tersebut diatas, saklar push button yang lain.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 141


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 14
MOTOR DC

TUJUAN
1. Mahasiswa mamahami rangkaian interface mikrokontroller dengan motor dc
2. Mahasiswa memahami rangkaian driver motor stepper L293
3. Mahasiswa memahami bahasa assembly untuk mengatur arah putaran motor dc

VCC VCC

L293 U1
16

J2
8

J1
2 3
VCC1

VCC2

3 7 1A 1Y 6 1
2 10 2A 2Y 11 2
1 15 3A 3Y 14 CON2
4A 4Y 12
CON3 1 GND 13
9 1,2EN GND 5
GND

3,4EN GND
4

Gambar 14.1. Driver motor dc L293

1. Hubungkan konektor J2 (1,2 dan 3) masing masing ke P0.0, P0.1 dan P0.2
2. Berikut merupakan contoh program untuk menghidupkan motor dc dengan arah putaran
CW :

Start:
Setb P0.0; EN=1 untuk disable dan enable motor, EN=0 maka motor off
Setb P0.1;2A=1
Clr P0.2; 1A=0;
Sjmp start
End.

Lakukan perubahan logika pada EN, 2A dan 1A untuk menggerakkan motor arah CCW atau
mematikan motor

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 142


Microcontroller AT89sXX Trainer Kit
Experiment Manual

PERCOBAAN 15
Simulator Trafic Light
TUJUAN
1. Mahasiswa mamahami rangkaian interface mikrokontroller dengan LED
2. Mahasiswa memahami bahasa assembly untuk mengatur lampu lalu lintas sederhana

VCC

R1
220

D8 D9 D10

LED LED LED


J7
1
2
3
4
5
6
CON6 D11 D12 D13

LED LED LED

VCC
R7
220

Gambar 15.1 Simulasi lampu lalu lintas.

1. Hubungkan konektor J7 (1, 2, 3, sd 6) masing masing ke P0.0, P0.1, P0.2 sd P0.5


2. Berikut merupakan contoh lampu lalu lintas untuk 1 jalur, bila D8=merah, D9=kuning,
D10=hijau, Program akan menghidupkan LED warnah merah untuk waktu tertentu,
diikuti LED warnah kuning dan dilanjutkan LED warna hijau :

Start:
Clr P0.0;
Setb P0.1;
Setb P0.2;
Call delay;
Call delay;
Call delay;Menyesuaikan lama waktu LED merah ON
Setb P0.0;
Clr P0.1;
Setb P0.2;
Call delay; Menyesuaikan lama waktu LED kuning ON
Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 143
Microcontroller AT89sXX Trainer Kit
Experiment Manual

Setb P0.0
Setb P0.1
Clr P0.2
Call delay
Call delay; Menyesuaikan lama waktu LED hijau ON
Sjmp Start
;
Delay: mov R1,#255
Del1: mov R2,#255
Del2: djnz R2,del2
djnz R1,del1
ret
End.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 144


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Lampiran 1 Rangkaian Interface

A. Rangkaian Pada Board Utama

1.1. Rangkaian minimum sistem

40
J1 J2 C1 30P
P0.0 P2.0 P07.0 220 R1 P0.0 39 21 P2.0 XTAL1

VCC
1 P0.1 P2.1 1 P07.1 220 R2 P0.1 38 P0.0/AD0 P2.0/A8 22 P2.1
2 P0.2 P2.2 2 P07.2 220 R11 P0.2 37 P0.1/AD1 P2.1/A9 23 P2.2 Y 1 ZTB
3 P0.3 P2.3 3 P07.3 220 R12 P0.3 36 P0.2/AD2 P2.2/A10 24 P2.3 C2
4 P0.4 P2.4 4 P07.4 220 R13 P0.4 35 P0.3/AD3 P2.3/A11 25 P2.4 XTAL2
5 P0.5 P2.5 5 P07.5 220 R14 P0.5 34 P0.4/AD4 P2.4/A12 26 P2.5
6 P0.6 P2.6 6 P07.6 220 R15 P0.6 33 P0.5/AD5 P2.5/A13 27 P2.6 30P
7 P0.7 P2.7 7 P0.7 32 P0.6/AD6 P2.6/A14 28 P2.7
8 8 P0.7/AD7 P2.7/A15
CON8 CON8 P1.0 1 10 P3.0 R41
P1.1 2 P1.0/T2 P3.0/RXD 11 P3.1 VCC 1 2 P0.0
CON8 P1.2 3 P1.1/T2-EX P3.1/TXD 12 P3.2 3 P0.1
J4
P1.0 P3.0 P1.3 4 P1.2 P3.2/INTO 13 P3.3 10k 4 P0.2
1 P1.1 P3.1 8 P1.4 5 P1.3 P3.3/INT1 14 P3.4 5 P0.3
2 P1.2 P3.2 7 P1.5 6 P1.4/SS P3.4/TO 15 P3.5 6 P0.4
3 P1.3 P3.3 6 P1.6 7 P1.5/MOSI P3.5/T1 16 P3.6 7 P0.5
4 P1.4 P3.4 5 P1.7 8 P1.6/MISO P3.6/WR 17 P3.7 8 P0.6
5 P1.5 P3.5 4 P1.7/SCK P3.7/RD 9 P0.7
6 P1.6 P3.6 3 XTAL1 19 29 C
7 P1.7 P3.7 2 XTAL2 18 XTAL1 PSEN 30 VCC
8 1 RST 9 XTAL2 ALE/PROG 31 VCC
CON8 J5 RST EA/VPP
U1 AT89S8252

J7 J16 VCC VCC


P2.0 GND 1N4148
1 P2.1 6 VCC D10
2 P2.2 5 RST C8 SW9
3 4 +
P2.3 P1.7 10uF
4 P2.4 3 P1.6 R40 RESET
5 P2.5 2 P1.5 RST
6 P2.6 1
7 P2.7 1K
8 CON6 R37
CON8 1K

1.2. Rangkaian LED


VCC

R3 R4 R5 R6 R7 R8 R9 R10
2
1

220 220 220 220 220 220 220 220

J3 CON2

D1 D2 D3 D4 D5 D6 D7 D8

LED LED LED LED LED LED LED LED


P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 145


J8
Y7 SW1

1
2
CONN SOCKET 5x2 P2.0

CON2

2
P07.41 10 P07.6

VCC
SW2

220
R17
e g P07.5

1.5.
1.4.
1.3.
P07.32 9

Q1
d f P2.1
1 3 3 8 GND 1
P07.24 cm2 cm1 7 P07.0
2 VSS SW3
c a

SEGMENT1
2N5322 5 6 P07.1 VCC
dot b 3 P2.2
P3.5 4 VEE
Y6 CONN SOCKET 5x2 RS
5 SW4

2
P3.7 6 R/W P2.3
P07.41 10 P07.6
P07.32 e g P07.5 P0.0 7 Enable
9

Q2
220
R18
d f DB0

LCD Karakter 2x16


1 3 3 8 P0.1 8 SW6
P07.24 cm2 cm1 7 P07.0 P0.2 9 DB1 P2.4
c a DB2

SEGMENT2
2N5322 5 6 P07.1 P0.3 10
dot b DB3
P0.4 11 SW7
Y5 CONN SOCKET 5x2 P0.5 12 DB4 P2.5
DB5

2
P0.6 13
P07.41 10 P07.6 DB6
P0.7 14 SW8

D9
P07.32 e g 9 P07.5

Q3
DB7

Rangkaian LCD

220
P2.6

R19
1 3 3 d f 8 15
cm2 cm1 GND 16 BPL
P07.24 7 P07.0 GND
c a IN4003 SW10

SEGMENT3
2N5322 5 6 P07.1
dot b P2.7

Rangkaian 7 segmen
Y4 CONN SOCKET 5x2

2
Rangkaian Push button

P07.41 10 P07.6
P07.32 e g 9 P07.5

Q4
220
R20
1 3 3 d f 8
P07.24 cm2 cm1 7 P07.0
c a

SEGMENT4
2N5322 5 6 P07.1
dot b
Y3 CONN SOCKET 5x2

2
P07.41 10 P07.6
P07.32 e g 9 P07.5

Q5
220
R21
1 3 3 d f 8
P07.24 cm2 cm1 7 P07.0
c a

SEGMENT5
2N5322 5 6 P07.1
dot b
Y2 CONN SOCKET 5x2

2
P07.41 10 P07.6
P07.32 e g 9 P07.5

Q6
220
R22
1 3 3 d f 8
P07.24 cm2 cm1 7 P07.0
c a

SEGMENT6
2N5322 5 6 P07.1
dot b

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id


Y1 CONN SOCKET 5x2

2
P07.41 10 P07.6
P07.32 e g 9 P07.5

Q7
220
R23
1 3 3 d f 8
P07.24 cm2 cm1 7 P07.0
c a

SEGMENT7
2N5322 5 6 P07.1
dot b
Y0 CONN SOCKET 5x2

2
P07.41 10 P07.6
e g

Q8
P07.32 9 P07.5

146
220
R24
1 3 3 d f 8
P07.24 cm2 cm1 7 P07.0
c a

SEGMENT8
2N5322 5 6 P07.1
dot b

VCC
Experiment Manual
Microcontroller AT89sXX Trainer Kit
Microcontroller AT89sXX Trainer Kit
Experiment Manual

U3
P3.5 1 15 Y0
P3.6 2 A Y0 14 Y1
P3.7 3 B Y1 13 Y2
C Y2 12 Y3
Y3 11 Y4
VCC 6 Y4 10 Y5
4 G1 Y5 9 Y6
5 G2A Y6 7 Y7
G2B Y7
J13 74LS138
VCC
2
1 R30 1K

CON2

1.6. Rangkaian Port Serial

U2
13 12
R2IN 8 R1IN R1OUT 9 P3.0
11 R2IN R2OUT 14
P3.1 10 T1IN T1OUT 7 T2OUT
T2IN T2OUT
P1
C3 1 GND 5
+

10uF 3 C+ 9
4 C1- 4
10uF C5 5 C2+ 8
+

2 C2- R2IN 3
VCC C6 6 V+ 7
+

V- T2OUT 2
MAX232 6
10uF C7 10uF 1
GND
+

CONNECTOR DB9

1.7. Rangkaian RTC

VCC J14
CON2
VCC
10K R44
1
2

R45 U10 10K


32k P2.6
1 5
2 X1 SDA
6 X2 7
SCLK SQW/OUT
J11 3
2 VCC 8 VBAT
1 VCC

CON2 DS1307
J15

2 P2.7
1

CON2

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 147


Microcontroller AT89sXX Trainer Kit
Experiment Manual

1.8. Rangkaian EEPROM

VCC J14
VCC CON2
10K U11 R46

1
2
R47 10K
1 P2.6
2 A0 5
3 A1 SDA
6 A2
SCLK
VCC 8
VCC

24C32

CON2 J24
2 P2.5
1

1.9. Rangkaian Astabil

VCC

VCC R43
J10
100k
4

VCC MUX
P3.4 1 R16
R

2 3 Q 2 10k 2
R48 TR Q 3
220 7
DIS CON3
5 6
CV THR
3

D17 D13 R42


10k
LED U7 DIODE
LM555

Q C11
10u

1.10. Rangkaian Buzer, LED dan SW ( belum terkoneksi ke PORT)

J21
CON3
1
2
3

R49 J31
220 SW5
1
SW 2
BUZZER
D18 VCC
LED

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 148


Microcontroller AT89sXX Trainer Kit
Experiment Manual

1.11. Rangkaian Power Supply


SW11
J17
1 2 VCC
2
1
D14
1

CON2 U12 R35


LM78L05A/TO39 220
4 - + 2 1 2
VIN VOUT
D11
GND

C14
C12 C13 100n LED
1000u 10u
3

GND
VSS

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 149


Microcontroller AT89sXX Trainer Kit
Experiment Manual

B. Rangkaian pada Board Tambahan

1. Rangkaian Motor DC
VCC VCC

L293 U1
16

J2
8

J1
2 3
VCC1

VCC2

3 7 1A 1Y 6 1
2 10 2A 2Y 11 2
1 15 3A 3Y 14 CON2
4A 4Y 12
CON3 1 GND 13
9 1,2EN GND 5
GND

3,4EN GND
4

2. Rangkaian Motor Stepper


CON4
U2
J5
1 16
1 2 I1 O1 15 1
2 3 I2 O2 14 2
3 4 I3 O3 13 3
4 5 I4 O4 12 4
6 I5 O5 11 5
J3 I6 O6
7 10 VCCCON5
I7 O7

ULN2003

3. Rangkaian Simulator Trafict Light

VCC

R1
220

D8 D9 D10

LED LED LED


J7
1
2
3
4
5
6
CON6 D11 D12 D13

LED LED LED

VCC
R7
220

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 150


Microcontroller AT89sXX Trainer Kit
Experiment Manual

4. Rangkaian Dot Matrix

J16 R17 4k7


R1
1 R2
2 R18 4k7 R3
3 R4
4 R5
5 R19 4k7 R6
6 R7
7
CON7 R20 4k7

R21 4k7

R22 4k7

R23 4k7

VCC VCC VCC VCC

R10 VCC R11 VCC R12 VCC R13 VCC


R R R R
1

R4 2 2N1132R3 2 2N1132 R2 2 2N1132 R1 2 2N1132


Q1 Q2 Q3 Q4
3

VCC VCC VCC


VCC VCC VCC

R16 R15 R14


R R R
1

R7 2 2N1132 R6 2 2N1132 R5 2 2N1132


Q5 Q6 Q7
3

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 151


Microcontroller AT89sXX Trainer Kit
Experiment Manual

U6 DotMatrix5x7 U9 DotMatrix5x7 U10 DotMatrix5x7 U12 DotMatrix5x7


O1 12 O1 12 O1 12 O1 12
O2 11 R1 O2 11 R1 O2 11 R1 O2 11 R1
O3 2 R2 O3 2 R2 O3 2 R2 O3 2 R2
O4 9 R3 O4 9 R3 O4 9 R3 O4 9 R3
O5 4 R4 O5 4 R4 O5 4 R4 O5 4 R4
O6 5 R5 O6 5 R5 O6 5 R5 O6 5 R5
O7 6 R6 O7 6 R6 O7 6 R6 O7 6 R6
C1
C2
C3
C4
C5

C1
C2
C3
C4
C5

C1
C2
C3
C4
C5

C1
C2
C3
C4
C5
R7 R7 R7 R7
10

10

10

10
1
3

7
8

1
3

7
8

1
3

7
8

1
3

7
8
15

15

15
1
2
3
4
5
6
7

1
2
3
4
5
6
7

1
2
3
4
5
6
7

9
U11 U22
QA
QB

QE

QG

QA
QB

QE

QG

QA
QB

QE

QG
QC
QD

QF

QH

QH

QC
QD

QF

QH

QH

QC
QD

QF

QH

QH
U7
SN74HC595 SN74HC595 SN74HC595
SRCLR

SRCLR

SRCLR
SRCLK

SRCLK

SRCLK
RCLK

RCLK

RCLK
SER

SER

SER
G

G
14

11
10

12
13

14

11
10

12
13

14

11
10

12
J11 13

4
3
2
1

CON4

5. Rangkaian Keyboard

VCC

R4 R5
10K 10k JP1
J6 D6
CLK 1 6 VCC
2 2 5
1 3 4
DIODE

CON2 D7
DATA M-DIN_6-P

DIODE

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 152


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Lampiran 2. Petunjuk Instalasi Komponen TComPort pada Delphi 6


1. Untuk melakukan antarmuka PC dengan perangkat ekternal dengan memanfaatkan port
com atau port serial pada pemrograman delphi, diperlukan sebuah komponen untuk
mengakses port serial communicatin RS232, untuk itu diperlukan komponen yang
disebut cport.
2. Lakukan copy file Cport dari download di Internet atau Lab Microcontroller dan Paste
ke folder Program Files Borland Delphi6.

3. Bukalah file DsgnCport6 dengan menggunakan Program Delphi

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 153


Microcontroller AT89sXX Trainer Kit
Experiment Manual

4. Click pada button Compile pada gambar berikut, untuk menghasilkan file dcu pada
folder CPort.

5. Copy file-file dcu tersebut ke Folder Delphi6 Lib

6. Kembali pada tampilan Package-DsgnCport6.dpk, dan pilih button Instal untuk


melakukan proses instalasi komponen.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 154


Microcontroller AT89sXX Trainer Kit
Experiment Manual

7. Setelah proses instalasi komponen maka akan didapatkan tampilan sebagai berikut.

8. Setelah proses instalasi maka akan didapatkan komponen Cport pada Tabulasi
Komponen

9. Langkah terakhir adalah pengaturan pada Environment pada Tool

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 155


Microcontroller AT89sXX Trainer Kit
Experiment Manual

10. Pilih pada tabulasi Library

11. Lakukan pemilihan Path folder Cport dengan menekan button browse pada Library
Path

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 156


Microcontroller AT89sXX Trainer Kit
Experiment Manual

12. Contoh lokasi folder Cport

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 157


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Lampiran 3. Perangkat Lunak

1. Compiler MIDE Studio

M-IDE Studio adalah salah satu cara yang digunakan untuk menjalankan kompilasi untuk
divais MCS-51. M-IDE Studio mempunyai beberapa fitur yang dapat digunakan untuk edit,
compil, dan debug file.

The M-IDE Studio juga dapat digunakan untuk menulis program dalam bahasa C. Dengan
menggunakan software ini, maka kita dapat melihat error pada report file LST.

Gambar 1.19. M-IDE Studio

Bila anda perhatikan pada menu toolbar dan menu pilihan, tampak terlihat disable. Hal ini
karena file belum dibuat. Untuk membuat sebuah file, lakukan langkah-langkah berikut:

1. Membuat File Baru

Untuk membuat file baru, klik pada menu File atau short cut seperti yang ditunjukkan pada
gambar, sehingga akan tampak halaman kosong.

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 158


Microcontroller AT89sXX Trainer Kit
Experiment Manual

Figure 1.20. File baru dengan halaman kosong

2. Menulis sebuah program


Tulis program assembly pada halaman kosong, dan lakukan penyimpanan file. Bila file
telah tersimpan maka akan tampak teks instruksi yang berwarna-warni. Sebagaimana yang
ditunjukan pada gambar 3.

Gambar 1.21 Menu penyimpanan file


3. Kompilasi
Agar file dengan ekstensi ASM tersebut dapat diloadkan ke mikrokontroller, maka perlu
dilakukan kompilasi dari file ASM ke HEX.

Gambar 1.22 Kompilasi file

Web:www.mytutorialcafe.com Email: mytutorialcafe@yahoo.co.id 159

Anda mungkin juga menyukai