Manual standar listing Mikroprocessor

134
Microcontroller AT89sXX Trainer Kit Experiment Manual Web:www.mytutorialcafe.com Email: [email protected] 1 Petunjuk Praktikum Microcontroller AT89sXXX Trainer Kit Oleh: Triwiyanto Media Pengembangan Mikrokontroler Keluarga MCS-51 Site: www.mytutorialcafe.com Email: [email protected]

Transcript of Manual standar listing Mikroprocessor

Page 1: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 1

Petunjuk Praktikum

Microcontroller AT89sXXX Trainer Kit

Oleh: Triwiyanto

Media Pengembangan Mikrokontroler

Keluarga MCS-51

Site: www.mytutorialcafe.com Email: [email protected]

Page 2: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 2

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:

D1

P0.0..P0.7

D8

VCC

J3

EN LED12

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

Page 3: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 3

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)

Page 4: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 4

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

Page 5: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 5

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

Page 6: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 6

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.

Page 7: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 7

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

Page 8: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 8

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.

Page 9: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 9

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

SW8

P2.7..P2.0

(a)

Page 10: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 10

D1

P0.0..P0.7

D8

VCC

J3

EN LED12

( 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

Start

Ambil Data SaklarA P2

Komplemen A

A:= NOT A

Output data ke LED

P0 A

Gambar 2.3. Diagram alir percobaan 2.1

Page 11: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 11

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

Page 12: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 12

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

Page 13: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 13

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

Page 14: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 14

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

Page 15: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 15

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).

Page 16: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 16

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.

VCC

aa

VCC

ee

c

FCS 9013

PNP

7 x 220 ohm

d

f

FCS 9013

b

Common Anoda

PNP

FCS 9013

VCC

FCS 9013

VCC

P0.6..P0.0

FCS 9013

PNP

VCC

FCS 9013

PNP

g

Y7..Y0

g

f

VCC

FCS 9013

PNP

c

8 x 1k ohm

VCC

PNP

d

FCS 9013

VCC

b

PNPPNP

(a)

VCC

P3.6 U8

74LS138

123

645

15141312111097

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

P3.5

R28

10K

J2

EN 7 SEGMEN12

Y7..Y0

P3.7

VCC

(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

Y0

Page 17: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 17

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”.

Page 18: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 18

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

Start

DISP1 Aktif

P3.5=P3.6=P3.7=0

Cetak Karakter AP0 10001000

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

Page 19: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 19

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

Page 20: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 20

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

Page 21: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 21

; 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

Page 22: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 22

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

Page 23: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 23

; 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 A b C d E F G H

2 9 8 7 6 5 4 3 2

3 J K L n O P r S

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

Page 24: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 24

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

Page 25: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 25

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

Page 26: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 26

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.

Page 27: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 27

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

P0

.7

P0

.3P

0.2

J8

CON2

12

P0

.0P

3.7

P0

.4

LCD Karakter 2x16

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

VS

SV

CC

VE

ER

SR

/WE

na

ble

DB

0D

B1

DB

2D

B3

DB

4D

B5

DB

6D

B7

BP

LG

ND

P0

.5VCC

P3

.5

P0

.1

GN

D

GN

D

P0

.6

D9 IN4

003

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

Page 28: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 28

PIN Name Function

1 VSS Ground voltage

2 VCC +5V

3 VEE Contrast voltage

4 RS Register Select 0 = Instruction Register 1 = Data Register

5 R/W Read/ Write, to choose write or read mode 0 = write mode 1 = read mode

6 E Enable 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

Page 29: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 29

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 : Don’t 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

Page 30: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 30

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

Page 31: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 31

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.

Page 32: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 32

2. CGROM ( Character Generator ROM ) Sebuah peta karakter yang dapat ditampilkan, sesuai dengan lokasi dari masing-masing karakter.

Page 33: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 33

Page 34: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 34

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

Page 35: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 35

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

Page 36: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 36

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

Page 37: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 37

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 ;

Page 38: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 38

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

Page 39: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 39

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

Page 40: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 40

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

Page 41: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 41

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

P1.2

J26CON1

1

+ C1010uF

GND

P1.6

P2.4

P1.0

C9150pF

J27CON1

1

D12

3V

J25CON1

1

R3668

U8

4051

13141512

1524

61110

9

3

16

X0X1X2X3X4X5X6X7

INHABC

X

VD

D

P3.2

GND

AD1

U9

ADC0804

67

9

1112131415161718

194

5

123

+IN-IN

VREF/2

DB7DB6DB5DB4DB3DB2DB1DB0

CLKRCLKIN

INTR

CSRDWR

P1.3

VCC

MUX

P1.4

P3.3

GND

P1.7

R3810K

P1.1

VSS

AD0

R3910K

13

2

P1.5

J30

CON1

1

GND

VCC

Gambar 5.1 Rangkaian ADC0804

Page 42: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 42

VCC

D19

1N4148

R2510K

13

2

D20

1N4148

AD1

J22

CON3

123

AD

0VCC

R2610K

13

2

J23

CON3

123

R2818k

C16100n

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.

Page 43: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 43

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 REF

V merupakan tegangan referensi yang digunakan untuk offset suatu

keluaran digital maksimum. Dengan persamaan sebagai berikut:

maksVVINREF 2

1=

Page 44: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 44

255

MAKSVV

IN

RESOLUSI=

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

2421

== xVREF

volt

0156,0255

4==

RESOLUSIV volt

Resolusi ini mempunyai arti sebagai berikut:

No IN

V ( 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

Page 45: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 45

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.

(a)

VCC

P3.6 U8

74LS138

123

645

15141312111097

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

P3.5

R28

10K

J2

EN 7 SEGMEN12

Y7..Y0

P3.7

VCC

(b)

Gambar 5.4. Interface rangkaian display 7 segmen

VCC

aa

VCC

ee

c

FCS 9013

PNP

7 x 220 ohm

d

f

FCS 9013

b

Common Anoda

PNP

FCS 9013

VCC

FCS 9013

VCC

P0.6..P0.0

FCS 9013

PNP

VCC

FCS 9013

PNP

g

Y7..Y0

g

f

VCC

FCS 9013

PNP

c

8 x 1k ohm

VCC

PNP

d

FCS 9013

VCC

b

PNPPNP

Page 46: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 46

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

Gambar 5.5. Diagram alir rutin utama percobaan 5.1

Page 47: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 47

Gambar 5.6. Diagram alir subrutin proses ADC

Gambar 5.7. Diagram alir subrutin konversi hex ke desimal

Page 48: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 48

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

Page 49: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 49

; 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

Page 50: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 50

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.

P0

.7

P0

.3P

0.2

J8

CON2

12

P0

.0P

3.7

P0

.4

LCD Karakter 2x16

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

VS

SV

CC

VE

ER

SR

/WE

na

ble

DB

0D

B1

DB

2D

B3

DB

4D

B5

DB

6D

B7

BP

LG

ND

P0

.5

VCC

P3

.5

P0

.1

GN

D

GN

D

P0

.6

D9 IN4

003

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

Page 51: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 51

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 ;

Page 52: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 52

;================================================= ;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 ;===============================================

Page 53: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 53

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

Page 54: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 54

; 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

Page 55: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 55

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

Page 56: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 56

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 ;

Page 57: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 57

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

Page 58: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 58

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

Page 59: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 59

;======================================== 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

Page 60: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 60

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

Page 61: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 61

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]

Page 62: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 62

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

Page 63: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 63

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

Page 64: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 64

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

2

KEYPAD 4 X 4

5

7

3

9

P2.7..P2.0

0

6

1

8

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

Page 65: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 65

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

D1

P0.0..P0.7

D8

VCC

J3

EN LED12

Gambar 7.4. Display LED sebagai Output Data Keypad

Page 66: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 66

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

Gambar 7.5. Diagram alir rutin utama percobaan 7.1

Gambar 7.6. Diagram alir subrutin keypad 4 x 1

Page 67: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 67

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 ;

Page 68: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 68

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

Page 69: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 69

P0

.7

P0

.3P

0.2

J8

CON2

12

P0

.0P

3.7

P0

.4

LCD Karakter 2x16

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

VS

SV

CC

VE

ER

SR

/WE

na

ble

DB

0D

B1

DB

2D

B3

DB

4D

B5

DB

6D

B7

BP

LG

ND

P0

.5

VCC

P3

.5

P0

.1

GN

D

GN

D

P0

.6

D9 IN4

003

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

Page 70: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 70

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

Page 71: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 71

;==================================== 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

Page 72: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 72

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

Page 73: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 73

;================================ 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.

Page 74: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 74

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

Page 75: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 75

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

Page 76: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 76

D1

P0.0..P0.7

D8

VCC

J3

EN LED12

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 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 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

Page 77: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 77

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

Page 78: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 78

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.

Page 79: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 79

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

Page 80: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 80

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

Page 81: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 81

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

Page 82: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 82

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

Page 83: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 83

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

Page 84: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 84

VCC

MAX232

138

1110

134526

129147

R1INR2INT1INT2IN

C+C1-C2+C2-V+V-

R1OUTR2OUTT1OUTT2OUT

+ 10u

P3.1 ( Tx )

+

10u

+

10u

P3.0 ( Rx )

15P1

PC DB9 Male

594837261

+

10u

16

VCC

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

Page 85: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 85

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

Page 86: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 86

D1

P0.0..P0.7

D8

J3

EN LED12

VCC

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

Page 87: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 87

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.

Page 88: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 88

Percobaan 10.2a Mengambil data satu karákter pada mikrokontroller dengan Hyperterminal. Pada percobaan ini, data satu carácter 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 karákter 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:

Page 89: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 89

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:

Page 90: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 90

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

SW8

P2.7..P2.0

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 carácter 0 akan dikirim, bila sw1 ditekan maka carácter 1 akan dikirim ke PC secara serial, dan bila tidak ada tombol yang ditekan maka akan memunculkan carácter ‘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

Page 91: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 91

P1.2

J26CON1

1

+ C1010uF

GND

P1.6

P2.4

P1.0

C9150pF

J27CON1

1

D12

3V

J25CON1

1

R3668

U8

4051

13141512

1524

61110

9

3

16

X0X1X2X3X4X5X6X7

INHABC

X

VD

D

P3.2

GND

AD1

U9

ADC0804

67

9

1112131415161718

194

5

123

+IN-IN

VREF/2

DB7DB6DB5DB4DB3DB2DB1DB0

CLKRCLKIN

INTR

CSRDWR

P1.3

VCC

MUX

P1.4

P3.3

GND

P1.7

R3810K

P1.1

VSS

AD0

R3910K

13

2

P1.5

J30

CON1

1

GND

VCC

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

Page 92: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 92

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

D1

P0.0..P0.7

D8

J3

EN LED12

VCC

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

Page 93: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 93

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

Page 94: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 94

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

Page 95: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 95

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

Page 96: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 96

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

Start

Inisialisasi fungsi Serial

Baudrate=2400

Komunikasi Mode 1

Ambil Karakter

dari Port Serial

A Data Karakter

A = 128 ?

Putar LED ke Kanan Putar LED ke Kiri

YES

NO

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 ;

Page 97: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 97

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.

Page 98: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 98

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:

Page 99: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 99

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.

Page 100: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 100

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

Page 101: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 101

P1.2

J26CON1

1

+ C1010uF

GND

P1.6

P2.4

P1.0

C9150pF

J27CON1

1

D12

3V

J25CON1

1

R3668

U8

4051

13141512

1524

61110

9

3

16

X0X1X2X3X4X5X6X7

INHABC

X

VD

D

P3.2

GND

AD1

U9

ADC0804

67

9

1112131415161718

194

5

123

+IN-IN

VREF/2

DB7DB6DB5DB4DB3DB2DB1DB0

CLKRCLKIN

INTR

CSRDWR

P1.3

VCC

MUX

P1.4

P3.3

GND

P1.7

R3810K

P1.1

VSS

AD0

R3910K

13

2

P1.5

J30

CON1

1

GND

VCC

VCC

D19

1N4148

R2510K

13

2

D20

1N4148

AD1

J22

CON3

123

AD

0

VCC

R2610K

13

2

J23

CON3

123

R2818k

C16100n

Gambar 10.14. Rangkaian ADC0804

Page 102: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 102

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

Start

Inisialisasi fungsi Serial

Baudrate=2400

Komunikasi Mode 1

Proses ADC

Kirim data ADC ke port Serial

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

Page 103: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 103

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.

Page 104: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 104

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:

Page 105: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 105

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 ;

Page 106: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 106

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

Page 107: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 107

PERCOBAAN 11 I N T E R U P S I

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

P3.1

VCC

P1.7

P3.4

P1.2

P3.0

P3.3

P1.6

P2.5

P1.1

P3.7

P0.4

P1.5

J3CON8

12345678

P2.6

P1.4

P0.3

P2.0U1

AT89S51

91819 29

30

31

40

12345678

2122232425262728

1011121314151617

3938373635343332

RSTXTAL2XTAL1 PSEN

ALE/PROG

EA/VPP

VCC

P1.0P1.1P1.2P1.3P1.4P1.5/MOSIP1.6/MISOP1.7/SCK

P2.0/A8P2.1/A9

P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INTOP3.3/INT1

P3.4/TOP3.5/T1

P3.6/WRP3.7/RD

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

J1CON8

12345678

P2.7

J4CON8

12345678

P2.3

P3.2

P0.7

P0.2 P2.2

P2.4

P1.0

VCC

XTAL2

P0.6

P0.1

P0.5

P2.1P0.0

XTAL1

J2CON8

12345678

P3.5

P1.3

RST

P3.6

Gambar 11.1. Rangkaian target mikrokontroller 89s51

Interupsi Eksternal 0, agar terjadi interupsi pada system maka, pada pin ini harus mendapat sebuah pulsa, baik transisi hi-lo, atau berupa pulsa

Page 108: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 108

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

Page 109: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 109

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

Page 110: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 110

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 ;

Page 111: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 111

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 ;

Page 112: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 112

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 ;=============================== ; L O O K U P T A B L E ; 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

Page 113: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 113

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

Page 114: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 114

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

Page 115: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 115

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 ;======================================== ; L O O K U P T A B L E ; Decode to Seven Segmen -> g f e d c b a ;======================================== Decoder7Segmen:

Page 116: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 116

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

Page 117: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 117

; 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

Page 118: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 118

; 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

Page 119: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 119

ret ; ;=============================== ;subroutine delay time ;=============================== delay: mov R1,#2 del1: mov R2,#255 del2: djnz R2,del2 djnz R1,del1 ret ;======================================== ; L O O K U P T A B L E ; 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

Page 120: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 120

Lampiran 1 Rangkaian Interface

A. Rangkaian Pada Board Utama

1.1. Rangkaian minimum sistem

P3.6

P0.4

P3.1

Y1 ZTB

P1.2

XTAL2

U1 AT89S8252

91819 29

3031

40

12345678

2122232425262728

1011121314151617

3938373635343332

RSTXTAL2XTAL1 PSEN

ALE/PROGEA/VPP

VC

C

P1.0/T2P1.1/T2-EXP1.2P1.3P1.4/SSP1.5/MOSIP1.6/MISOP1.7/SCK

P2.0/A8P2.1/A9

P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXD

P3.2/INTOP3.3/INT1

P3.4/TOP3.5/T1

P3.6/WRP3.7/RD

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

R11220

P1.5

P2.7

J1

CON8

12345678

P3.4

P1.6

P2.3

R13220

P1.4

J2

CON8

12345678

RST

P2.0

P0.5P3.5

XTAL1

XTAL2

P1.6

RST

P0.7

P0.3

P3.3

P1.6

P3.0

P2.6

J7

CON8

12345678

P1.5

P2.1

P07.5

VCC

GND

R15220

P0.5

R40

1K

P1.3

P1.0

VCC

P0.7

P2.0

P2.1P0.0

P2.4P2.3

P3.7

P0.3

P0.6

P0.0

P0.1P0.1P2.2

P0.2

P2.5

P2.1

P3.2

P2.7

P3.7

P0.6

R1220

VCC

P3.4

P2.4

P3.1

J16

CON6

123456

VCC

P2.7

P1.5

P0.5

P1.1

C1 30P

P07.6

P1.2

RST

P0.4

P1.7

P0.1

P0.6

SW9

RESET

P07.4

P0.2

C

R41

10k

1 23456789

+ C810uF

D10

1N4148

P3.6 XTAL1

P07.1P0.0

P3.3

P1.7

J4

CON8

12345678

P07.0

P0.2

P0.7

P2.4

VCCP1.1

P1.4 P1.7

P3.0

P2.6

P0.3

R2220

P2.5

P2.2

R371K

P2.6

P07.3P2.2

P3.2

P0.4

R14220

P07.2

C2

30P

P1.0

P3.5

P2.5

P1.3

R12220

P2.3

J5

CON8

12345678

P2.0

VCC

1.2. Rangkaian LED

R4220

P0

.7

P0

.0

P0

.2

R3220

D6

LED

D5

LED

D3

LED

P0

.4

J3 CON2

12

D8

LED

R8220

VCC

P0

.5

D1

LED

P0

.3

R7220

R9220

D2

LED

R10220

P0

.1

D4

LED

P0

.6

D7

LED

R6220

R5220

Page 121: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 121

1.3. Rangkaian Push button

SW

3

P2

.3

SW

1

P2

.2

SW

6

SW

2P

2.1

P2

.0

P2

.4

SW

7

SW

4

P2

.7

P2

.6S

W8

SW

10

P2

.5

1.4. Rangkaian LCD

P0.7

P0.3

P0.2

J8

CON2

12

P0.0

P3.7

P0.4

LCD Karakter 2x16

1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

VS

SV

CC

VE

ER

SR

/WE

nab

leD

B0

DB

1D

B2

DB

3D

B4

DB

5D

B6

DB

7B

PL

GN

D

P0.5

VCC

P3.5

P0.1

GN

D

GN

D

P0.6

D9 IN40

03

1.5. Rangkaian 7 segmen

Y0

P07

.6

P0

7.2

P07

.5

P07

.5

P0

7.4

P07

.6

P0

7.4

R22220

P0

7.4

R19220

P0

7.3

P0

7.3

P0

7.4

P07

.0

P07

.5

Q7

2N

532

23

2

1

P07

.0

P07

.0

Y1

P07

.0

P07

.0

P07

.1

P07

.5

P0

7.3

P0

7.4

P0

7.2

Q8

2N

532

2

3

2

1

P0

7.3

P0

7.4

P07

.6

Q1

2N

532

23

2

1

P07

.6

R21220

Y6

P07

.1

P07

.6

P07

.5

P07

.1

Y5

SEGMENT2

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

R23220

P07

.6

Y4

Q3

2N

532

23

2

1

P07

.0

Q6

2N

532

23

2

1

Y2

P0

7.3

P0

7.2

P0

7.2

P0

7.2

SEGMENT5

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

P07

.5

P07

.1

P07

.5

R18220

P0

7.3

P0

7.3

P0

7.4

P07

.5

P0

7.2

P07

.6

R20220

SEGMENT8

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

SEGMENT3

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

SEGMENT1

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

Q4

2N

532

23

2

1

SEGMENT4

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

P07

.1

Y3

P0

7.4

VCC

P07

.0

P07

.1

Q5

2N

532

23

2

1

R24220

P0

7.2

SEGMENT7

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

P0

7.3

P07

.6

P0

7.2

Q2

2N

532

23

2

1

Y7

P07

.0

SEGMENT6

CO

NN

SO

CK

ET

5x

2

1 2 3 4 5

10

9 8 7 6

e d cm

2c d

ot

g fc

m1 a b

P07

.1

P07

.1

R17220

Page 122: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 122

Y1P3.5

U3

74LS138

123

645

15141312111097

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

VCC

Y7

Y3

VCC

Y2P3.7P3.6

Y5

R30 1K

J13

CON2

12

Y0

Y6

Y4

1.6. Rangkaian Port Serial

R2IN

P1

CONNECTOR DB9

594837261

+C510uF

U2

MAX232

138

1110

134526

129147

R1INR2INT1INT2IN

C+C1-C2+C2-V+V-

R1OUTR2OUTT1OUTT2OUT

+C6

10uFGND

T2OUT

+C310uF

R2IN P3.0

GND

P3.1

VCCT2OUT

+

C7 10uF

1.7. Rangkaian RTC

32k P2.6

J15

CON2

12

U10

DS1307

7

5126

38

SQW/OUT

SDAX1X2SCLK

VBATVCC

J11

CON2

12

VCC

VCC J14CON2

1 2

VCC

P2.7

R4510K R44

10K

Page 123: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 123

1.8. Rangkaian EEPROM

P2.5

R4610K

VCC

P2.6

VCC

VCC

U11

24C32

8

5

6

123

VCC

SDA

SCLK

A0A1A2

J14CON2

1 2R4710K

J24CON2

12

1.9. Rangkaian Astabil

C1110u

MUX

VCC

R4210k

D13

DIODE

R1610k

J10

CON3

123

QP3.4

VCC

VCC

Q

R43100k1

3

2R48220

D17

LED U7LM555

2

5

3

7

6

4

TR

CV

Q

DIS

THR

R

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

SW5

SW

VCC

J21CON3

1 2 3

R49220

J31

BUZZER

12

D18

LED

Page 124: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 124

1.11. Rangkaian Power Supply

C14100n

U12LM78L05A/TO39

1

3

2VIN

GN

D

VOUT

R35220

C121000u

GND

J17

CON2

12

C1310u

VSS

D11

LED

SW11

1 2 VCC

- +

D141

2

3

4

Page 125: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 125

B. Rangkaian pada Board Tambahan

1. Rangkaian Motor DC

J1

CON2

12

VCC

U1L293

27

1015

19

361114

16

8

4

51312

1A2A3A4A

1,2EN3,4EN

1Y2Y3Y4Y

VC

C1

VC

C2

GN

D GNDGNDGND

VCC

J2

CON3

123

2. Rangkaian Motor Stepper

J3

CON4

1234

J5

CON5

12345

VCC

U2

ULN2003

1234567 10

161514131211

I1I2I3I4I5I6I7 O7

O1O2O3O4O5O6

3. Rangkaian Simulator Trafict Light

D8

LED

J7

CON6

123456

D13

LED

VCC

D10

LED

R1220

R7220

D11

LED

D9

LED

VCC

D12

LED

Page 126: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 126

4. Rangkaian Dot Matrix

R21 4k7

R22 4k7

R18 4k7

R7R6

R3

R17 4k7

R5

R2R1

J16

CON7

1234567

R4

R19 4k7

R20 4k7

R23 4k7

R12R

Q42N1132

3

2

1

VCC

R11R

VCC

R2

VCC

R10R

R16R

Q72N1132

3

2

1

R14R

R13R

VCCVCC

Q32N1132

3

2

1

R3

Q12N1132

3

2

1

VCC

VCC

Q22N1132

3

2

1

VCC

R4

VCC

Q52N1132

3

2

1

Q62N1132

3

2

1

VCC

R6

VCC

VCC

R1

VCC

R15R

R7 R5

VCC

Page 127: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 127

O6O6

O4

O1

O5O4

O3

U7SN74HC595

14

11

10

12

13

15

1 2 3 4 5 6 7 9

SE

R

SR

CL

KS

RC

LR

RC

LK

G

QA

QB

QC

QD

QE

QF

QG

QH

QH

J11

CON4

1234

O7

O5O5

U10 DotMatrix5x71211

29456

1 3 10

7 8

R1R2R3R4R5R6R7 C

1C

2C

3C

4C

5

O5

O1

O4

U6 DotMatrix5x7121129456

1 3 10

7 8

R1R2R3R4R5R6R7 C

1C

2C

3C

4C

5 O7

O2

O4

U9 DotMatrix5x7121129456

1 3 10

7 8

R1R2R3R4R5R6R7 C

1C

2C

3C

4C

5

O1

O3O2O3

O6

O1

O7

O2

U11

SN74HC595

14

11

10

12

13

15

1 2 3 4 5 6 7 9

SE

R

SR

CL

KS

RC

LR

RC

LK

G

QA

QB

QC

QD

QE

QF

QG

QH

QH U22

SN74HC595

14

11

10

12

13

15

1 2 3 4 5 6 7 9

SE

R

SR

CL

KS

RC

LR

RC

LK

G

QA

QB

QC

QD

QE

QF

QG

QH

QH

O7O6

U12 DotMatrix5x71211

29456

1 3 10

7 8

R1R2R3R4R5R6R7 C

1C

2C

3C

4C

5

O2O3

5. Rangkaian Keyboard

D6

DIODE

D7

DIODE

R510k

DATA

J6

CON2

12

VCC

JP1

M-DIN_6-P

123 4

56CLK

R410K

VCC

Page 128: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 128

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

Page 129: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 129

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.

Page 130: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 130

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

Page 131: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 131

10. Pilih pada tabulasi Library

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

Page 132: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 132

12. Contoh lokasi folder Cport

Page 133: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 133

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.

Page 134: Manual standar listing Mikroprocessor

Microcontroller AT89sXX Trainer Kit Experiment Manual

Web:www.mytutorialcafe.com Email: [email protected] 134

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