Upload
tandiallo
View
945
Download
0
Embed Size (px)
Citation preview
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]
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
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)
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
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
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.
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
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.
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)
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
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
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
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
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
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).
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
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”.
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
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
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
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
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
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
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
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
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.
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
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
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
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
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.
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.
Microcontroller AT89sXX Trainer Kit Experiment Manual
Web:www.mytutorialcafe.com Email: [email protected] 33
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
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
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
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 ;
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
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
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
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
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.
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=
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
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
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
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
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
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
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
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 ;
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 ;===============================================
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
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
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
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 ;
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
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
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
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
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]
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
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
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
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
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
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 ;
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
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
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
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
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
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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.
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:
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:
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
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
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
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
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
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
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 ;
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.
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:
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.
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
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
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
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.
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:
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 ;
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
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
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
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
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 ;
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 ;
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
Microcontroller AT89sXX Trainer Kit Experiment Manual
Web:www.mytutorialcafe.com Email: [email protected] 132
12. Contoh lokasi folder Cport
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.
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