JOBSHEET PRATIKUMLABOR MIKROKONTROLER dan INTERFACING
OLEH
TIM LABOR MIKROPROSESOR DAN INTERFACING
NAMA : BEKTI S ETIO ARSONO BP : 1001041008KELAS : II B EC REGULERNO KELOMPOK : IINAMA PARTNER : AWANDA
UNTUK PRATIKUM MAHASISWA PROGRAM STUDI ELEKTRONIKAPROGRAM D-III DAN D-IV
SEMESTER IV
JURUSAN TEKNIK ELEKTROPOLITEKNIK NEGERI PADANG
TAHUN 2010
JOB 1PENGAKTIFAN LED DENGAN TOP VIEW
Tujuan pratikum: Setelah melakukan pratikum pengaktifan LED dengan berbagai variasi ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 dan Topview simulator2. mengoperasikan system mikrokontroler AT89S51.3. mengoperasikan Topview simulator sebagai media simulasi program
Landasan Teori
Gambar 1. Rangkaian tampilan deret LED
Perhatikan gambar 1 di atas. Delapan buah LED sebagai keluaran terhubung ke port 2. LED akan
menyala jika pada port keluaran diberi logika HIGH ‘1’dan padam jika diberi logika LOW ‘0’.
Untuk mengaktifkan konfigurasi seperti gambar 1.1, pin LED pada posisi 0
Langkah Kerja
1. Membuat dan compile programProsedur pembuatan dan meng-compile program yang akan didownload ke system
mikrokontroler AT89S51 adalah sebagai berikut:1. Klik start, dari tampilan menu pilih Run. Ditampilan menu Run, ketik command dan
selanjutnya pilih OK.
1
Gambar 2. Tampilan Run
2. Dari layar DOS prompt yang muncul, tukar folder “C:document and setting” ke folder compiler untuk AT89S51 yaitu D:\master\mcs51 dengan langkah-langkah seperti yang tampak pada gambar 3.
Gambar 3. Tampilan DOS prompt
3. Ketik program pada DOS prompt ini dengan menggunakan DOS teks editor seperti yang tampak pada gambar 4. Editor ini dapat ditampilkan dengan mengetikkan:
D:\master \mcs51\edit
2
Gambar 4. Tampilan DOS Teks Editor
Ketiklah program pada DOS teks editor dan simpan dalam bentuk nama file.asm, misal: Contoh1.asm
(Untuk selanjutnya nama file yang akan digunakan adalah Contoh1)
Gambar 5. Tampilan DOS Teks Editor dengan program
4. Setelah program selesai, keluarlah ke DOS prompt dengan memilih menu Exit pada menu File.
5. Compile-lah program yang telah selesai dengan mengetikkan:D:\master \mcs51\x8051 Contoh1.asm
Langkah diatas akan menghasilkan file baru dengan extension obj dengan nama file yang sama dengan nama file yang diberikan.
6. Compile program sekali lagi untuk menghasilkan file yang sama tapi dengan extension hex dengan caraKetikkan ;
D:\master \mcs51\L8051Sehingga tampil :
Input file : Contoh1Isikan nama file yang akan dicompile dengan nama file yang sama pada langkah 5 pada Input file dan tekan
7. Tekanlah untuk tampilan setelah langkah 6 sampai muncul :
3
Gambar 6. Output format
Output format ini menandakan akhir dari proses meng-compile file.
2. Menguji program pada Topview Simulator1. Aktifkan Topview Simulator.2. Kotak dialog Cek Device akan muncul begitu Topview Simulator aktif. Pilih Atmel 89C51
pada cek device dan atur operating frequensi pada 12 Mhz. Selanjutnya pilih OK3. Seting external modul yang akan digunakan:
File – External Modul Setting - LEDKotak dialog port line dan activating level akan muncul.Pada port line, beri tanda (V) pada port 2 karena port yang terhubung ke LED adalah port 2.Activating level digunakan untuk menentukan level pengaktifan LED, Jika program yang digunakan mengaktifkan LED pada level 0 maka activating level ini tidak perlu diberi tanda (V) dan sebaliknya.
4. Load file yang akan ditampilkan ditopview simulator.File – Load program – folder menyimpan file yang sudah dicompile – klik namafile.hex – open
Langkah ini akan menampilkan file holding details seperti yang tampak pada gambar 7 dan klik OK
Gambar 7. File holding details
4
5. Tampilkan simulasi LED yang digunakan untuk menampilkan output program seperti yang nampak pada gambar 8 :
View – External modules – LED
Gambar 8. Tampilan simulasi LED
6. Jalankan program dengan memilih icon GO pada toolbar. Simulator akan menampilkan output program seperti tampak pada gambar 9.
Gambar 9. Contoh tampilan LED
7. Untuk menghentikan jalannya simulasi dan memulai program yang lain pilih icon Stop yang ada pada toolbar.
Contoh program
ORG 0HJMP START
START:MOV A,#1MOV R0,#7
KIRI:MOV P2,AACALL DELAYRL ADEC R0CJNE R0,#0,KIRIMOV R0,#7
KANAN:
5
MOV P2,AACALL DELAYRR ADEC R0CJNE R0,#0,KANANSJMP START
DELAY:MOV R7,#00H
ULANG2: MOV R6,#00HULANG1: MOV R5,#00HULANG: INC R5
CJNE R5,#50H,ULANGINC R6CJNE R6,#50H,ULANG1INC R7CJNE R7,#50H,ULANG2RET
Data tampilan
1. Tampilan 1
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 0 0 0 1 1 1 11 1 1 1 0 0 0 0
2. Tampilan 2
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 1 0 1 0 1 0 11 0 1 0 1 0 1 0
3. Tampilan 3
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 0 0 1 1 0 0 00 0 1 0 0 1 0 00 1 0 0 0 0 1 01 0 0 0 0 0 0 1
4. Tampilan 4
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 1 0 0
6
0 0 0 0 1 0 0 00 0 0 1 0 0 0 00 0 1 0 0 0 0 00 1 0 0 0 0 0 01 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 1 00 0 0 0 0 0 0 10 0 0 0 0 0 1 0
PROGRAM PERCOBAAN
7
JOB 2 PENGAKTIFAN LED DENGAN MODUL
Tujuan pratikum: Setelah melakukan pratikum pengaktifan LED dengan berbagai variasi ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 mengoperasikan system mikrokontroler AT89S51.
2. menampilkan output program dengan menggunakan system mikrokontroler AT89S51
Landasan Teori
Gambar 1. Rangkaian tampilan deret LED
Perhatikan gambar 1 di atas. Delapan buah LED sebagai keluaran terhubung ke port 2. LED akan menyala jika pada port keluaran diberi logika HIGH ‘1’dan padam jika diberi logika LOW ‘0’. Untuk mengaktifkan konfigurasi seperti gambar 1.1, pin LED pada posisi 0
Langkah Kerja1. Membuat program
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper led dengan menghubungkan pin tengah – 0 pada terminal jumper.
2. Download program ke modul1. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper LED dengan menhubungkan pin tengah – 0 pada terminal jumper.2. Pada DOS prompt, ketik
8
PERCOBAA 1 PERCOBAAN 2
D:\master \mcs51\aec_isp3. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer
Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS prompt seperti yang tampak pada gambar 10.
Gambar 10. Input nama file
4. Selanjutnya akan tampil Hex file loaded, press any key to continue
Maka untuk melanjutkan proses load tekan 6. Pilih E. Program dan tunggu sampai program terloading 100%.7. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LED
Contoh program
ORG 0HJMP START
START:MOV A,#1MOV R0,#7
KIRI:MOV P2,AACALL DELAY
9
RL ADEC R0CJNE R0,#0,KIRIMOV R0,#7
KANAN:MOV P2,AACALL DELAYRR ADEC R0CJNE R0,#0,KANANSJMP START
DELAY:MOV R7,#00H
ULANG2: MOV R6,#00HULANG1: MOV R5,#00HULANG: INC R5
CJNE R5,#50H,ULANGINC R6CJNE R6,#50H,ULANG1INC R7CJNE R7,#50H,ULANG2RET
Data tampilan
1. Tampilan 1
L7 L6 L5 L4 L3 L2 L1 L0 LED yang mati
0 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 1 0 00 0 0 0 1 0 0 00 0 0 1 0 0 0 00 0 1 0 0 0 0 00 1 0 0 0 0 0 01 0 0 0 0 0 0 0
Berulang kembali ke – awal
2. Tampilan 2
L7 L6 L5 L4 L3 L2 L1 L0
1 0 0 0 0 0 0 01 1 0 0 0 0 0 01 1 1 0 0 0 0 01 1 1 1 0 0 0 01 1 1 1 1 0 0 01 1 1 1 1 1 0 01 1 1 1 1 1 1 01 1 1 1 1 1 1 1
10
JOB 3PENGAKTIFAN SEVEN SEGMENT
Tujuan pratikum: Setelah melakukan pratikum pengaktifan seven segment ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. menampilkan output program pada seven segment dengan menggunakan system
mikrokontroler AT89S51
Teori
Gambar 1 Display 7 segmen
Perhatikan gambar 1. di atas. 7 segmen adalah 7 buah LED yang dikemas dalam bentuk digit 8 standar. Ada 2 jenis 7 segmen yaitu common anode dimana kaki anodanya dijadikan 1 dan common cathode dimana kaki katodanya dijadikan 1. Empat buah 7 segmen common anode dirangkaikan paralel. Kaki a,b,c,d,e,f,g dari 7 segmen masing-masing dihubungkan secara paralel dengan kaki a,b,c,d,e,f,g dari IC74245. IC 74245 adalah IC decoder BCD to 7 segment. Data BCD IC74245 dihubungkan dengan 4 bit bawah dari P2 dan 4 bit atasnya dihubungkan dengan driver transistor dan common anode nya.
Misalkan angka 1 diberikan ke 74245 dan ditampilkan di digit3, maka data yang diberikan ke P2 adalah (lihat tabel):
P2.7 P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
Keterangan
0 1 1 1 0 0 0 1 Angka 1 di digit 3
1 0 1 1 0 0 1 0 Angka 2 di digit 2
1 1 0 1 0 0 1 1 Angka 3 di digit 1
11
1 1 1 0 0 1 0 0 Angka 4 di digit 0
Jika ingin ditampilkan secara bersamaan angka2 pada digit 3 dan angka1 pada digit2, maka harus diatur hidup matinya display secara bergantian. Walaupun sebenarnya display tersebut mati secara bergantian tapi mata manusia akan melihat kedua display tersebut hidup secara bersamaan karena delay antara hidup dan mati sangat singkat.
Langkah Kerja1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder
compiler untuk mcs51.2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asm
Compile program dengan menggunakan instruksi : x8051 namafile 3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan
instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LED
Tampilan Seven SegmentUntuk tampilan pada seven segment, program dapat dibuat dengan menampilkan data seven segment.
1. Tampilkanlah angka 0 sampai 9 di digit 0 dan 3 didigit yang lain dalam keadaan OFF2. Tampilkanlah angka 0 sampai 9 dengan tampilan berjalan dari kiri ke kanan.3. Tampilkanlah angka 0 sampai 99 pada digit 0 dan 1 dan 2 digit yang lain dalam keadaan
OFF.
Contoh program
ORG 0HJMP START
START:MOV A,#1ORL A,#11100000BMOV P2,AACALL DELAY
MOV A,#2ORL A,#11100000BMOV P2,AACALL DELAY
MOV A,#3ORL A,#11100000BMOV P2,AACALL DELAYdst………
SJMP START
DELAY:MOV R7,#00H
ULANG2: MOV R6,#00HULANG1: MOV R5,#00HULANG: INC R5
12
CJNE R5,#50H,ULANGINC R6CJNE R6,#50H,ULANG1INC R7CJNE R7,#50H,ULANG2RET
BANDINGKAN DENGAN PROGRAM BERIKUT:
ORG 0HJMP START
START:MOV A,#11100001BMOV P2,AACALL DELAY
MOV A, #11100010BMOV P2,AACALL DELAY
MOV A,#11100011BMOV P2,AACALL DELAY
dst………SJMP START
Data tampilan
Variasi Digit 3 Digit 2 Digit 1 Digit 0
1
2
3
13
JOB 4
INPUT DIPSWITCH DENGAN TAMPILAN LED
Tujuan pratikum: Setelah melakukan pratikum pengaktifan seven segment ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. mengambil data input program dari dipswitch dan menampilkannya pada LED dengan
menggunakan system mikrokontroler AT89S51
Teori
Gambar 1. Aplikasi DIPSWITCH dan LED
Perhatikan gambar 1. di atas. DIPSWITCH digunakan sebagai input digit dan mempunyai logika
‘0’ apabila saklar ke arah ON dan ‘1’ jika ke arah OFF.
Resistor pull up berfungsi untuk :
memastikan logika ‘1’ pada saat DIPSWITCH OFF
port 0 bersifat open drain sehingga untuk membuat rangkaian close loop, maka butuh
tambahan resistor
Langkah Kerja
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
14
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile.
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LED
Input dipswitch dengan tampilan pada LED
1. Tampilkanlah data yang bersesuaian dengan input yang diberikan menggunakan dipswitch
dengan output pada LED.
2. Tampilkanlah variasi LED running kiri-kanan pada LED dengan mengaktifkan dipswitch
yaitu switch S0
3. Tampilkan variasi LED sesuai keinginan anda dengan mengaktifkan switch S2 dan S4
terlebih dahulu
Contoh program
; PROGRAM UNTUK MENGAMBIL DATA DARI DIPSWITCH ; DAN DIKELUARKAN KE LED
ORG 0HJMP START
START:MOV P2,P0SJMP START
Data Tampilan
Tampilan 1
15
S7 S6 S5 S4 S3 S2 S1 S0 Tampilan LED
0 1 1 1 1 1 1 0
1 0 1 1 1 1 0 1
1 1 0 1 1 0 1 1
1 1 1 0 0 1 1 1
1 1 0 1 0 1 1 1
1 1 0 1 1 0 1 1
1 0 1 1 1 1 0 1
0 1 1 1 1 1 1 0
Tampilan 2
S7 S6 S5 S4 S3 S2 S1 S0 Tampilan LED
1 1 1 1 1 1 1 0
Tampilan 3
S7 S6 S5 S4 S3 S2 S1 S0 Tampilan LED
1 1 1 0 1 0 1 1
JOB 5
INPUT DIPSWITCH DENGAN TAMPILAN SEVEN SEGMENT
16
Tujuan pratikum: Setelah melakukan pratikum pengaktifan seven segment ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. mengambil data input program dari dipswitch dan menampilkannya pada seven segment
dengan menggunakan system mikrokontroler AT89S51
Teori
Gambar 1. Input dipswitch dengan tampilan 7 segmen
Perhatikan gambar 1 di atas. Empat buah tampilan 7 segmen sebagai output dihubungkan ke port 2
dan 8 buah input dihubungkan ke port 0. Letakkan jumper pada DISP dan DIP_SW pada posisi 0.
Langkah Kerja
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile.
17
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LED
Input dipswitch dengan tampilan pada seven segment
1. Tampilkanlah data yang bersesuaian dengan input yang diberikan menggunakan dipswitch
dengan output pada seven segment.
2. Tampilkanlah variasi seven segment 0-9 pada digit ke 2 dengan mengaktifkan dipswitch
yaitu switch S2 dan S4
Contoh Program
ORG 0HJMP START
START:MOV A,P0MOV B,#100DIV ABMOV 32H,A ; RATUSAN
MOV A,BMOV B,#10DIV ABMOV 31H,A ; PULUHANMOV 30H,B ; SATUAN
ORL A,#11110000B ; DIGIT 3 OFFMOV P2,AACALLDELAY
MOV A,32H ; DIGIT 2ORL A,#10110000BMOV P2,AACALLDELAY
MOV A,31H ; DIGIT 1ORL A,#11010000BMOV P2,A
18
ACALLDELAY
MOV A,30H ; DIGIT 0ORL A,#11100000BMOV P2,AACALLDELAY
SJMP START
DELAY:MOV R7,#00H
ULANG2: MOV R6,#00HULANG1: MOV R5,#00HULANG: INC R5
CJNE R5,#50H,ULANGINC R6CJNE R6,#50H,ULANG1INC R7CJNE R7,#50H,ULANG2RET
DATA TAMPILAN
Tampilan 1
S7 S6 S5 S4 S3 S2 S1 S0 Digit 3 Digit 2 Digit 1 Digit 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0
0 0 0 1 1 0 0 0
1 0 0 0 0 0 0 0
1 0 0 0 0 1 0 0
1 0 0 0 1 0 0 0
1 0 1 1 0 0 0 0
1 1 1 1 1 1 1 1
Tampilan 2
S7 S6 S5 S4 S3 S2 S1 S0 Digit 3 Digit 2 Digit 1 Digit 0
0 0 0 1 0 1 0 0
JOB 6
INPUT KEYPAD DENGAN TAMPILAN LED
19
Tujuan pratikum: Setelah melakukan pratikum pengaktifan seven segment ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. mengambil data input program dari keypad dan menampilkannya pada led dengan
menggunakan system mikrokontroler AT89S51
Teori
gambar 7.1. Rangkaian keypad dan enkodernya
Percobaan ini lanjutan dari percobaan 1 yaitu output delapan buah LED dengan tambahan input
dari keypad. Data yang ditampilkan pada LED adalah biner dari angka pada keypad. LED akan
menyala jika pada port keluaran diberi logika HIGH ‘1’dan padam jika diberi logika LOW ‘0’.
Untuk mengaktifkan konfigurasi seperti gambar 7.1, pin LED pada posisi 0
Pada keypad, jika ada satu tombol yang ditekan, maka OE akan LOW dan A,B,C,D akan
menampilkan bentuk binernya.
Enkoder keypad menggunakan mikrokontroler 89C2051 dengan sistem scanning sehingga
keluarannya sudah dalam bentuk biner dengan status OE apabila ada tombol yang ditekan.
Langkah Kerja
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile.
20
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LED
Contoh Program Scanning Keypad
; PROGRAM KEYPAD 4X4 DENGAN 892051 SEBAGAI ENCODER; KOLOM 0 : P1.1; KOLOM 1 : P1.0; KOLOM 2 : P1.2
; BARIS 0 : P1.7; BARIS 1 : P1.6; BARIS 2 : P1.5; BARIS 3 : P1.4
; A : P3.0; B : P3.1; C : P3.2; D : P3.3; OE : P3.4
ORG 0000H JMP START
START:;KOLOM 0 1 4 7 *CLR P1.1SETB P1.0SETB P1.2MOV A,P1ACALL KOLOM0
;KOLOM 1 2 5 8 0 SETB P1.1CLR P1.0SETB P1.2MOV A,P1ACALL KOLOM1
;KOLOM 2 3 6 9 #SETB P1.1
21
SETB P1.0CLR P1.2MOV A,P1ACALL KOLOM2
SETB P1.1SETB P1.0SETB P1.2
SJMP START
;------------------------------------; KEYPAD KOLOM 0;------------------------------------KOLOM0:
ANL A,#11110000BCJNE A,#01110000B,K01
MOV P3,#00010001B ;1ACALL PULSERET
K01:CJNE A,#10110000B,K02MOV P3,#00010100B ;4ACALL PULSERET
K02:CJNE A,#11010000B,K03MOV P3,#00010111B ;7ACALL PULSERET
K03:CJNE A,#11100000B,K04MOV P3,#00011010B ;*10ACALL PULSE
K04:RET
;------------------------------------; KEYPAD KOLOM 1;------------------------------------KOLOM1:
ANL A,#11110000BCJNE A,#01110000B,K11
MOV P3,#00010010B ;2ACALL PULSERET
K11:CJNE A,#10110000B,K12MOV P3,#00010101B ;5ACALL PULSERET
K12:CJNE A,#11010000B,K13MOV P3,#00011000B ;8ACALL PULSE
22
RETK13:
CJNE A,#11100000B,K14MOV P3,#00010000B ;0ACALL PULSE
K14:RET
;------------------------------------; KEYPAD KOLOM 2;------------------------------------KOLOM2:
ANL A,#11110000BCJNE A,#01110000B,K21
MOV P3,#00010011B ;3ACALL PULSERET
K21:CJNE A,#10110000B,K22MOV P3,#00010110B ;6ACALL PULSERET
K22:CJNE A,#11010000B,K23MOV P3,#00011001B ;9ACALL PULSERET
K23:CJNE A,#11100000B,K24MOV P3,#00011011B ;11ACALL PULSE
K24:RET
PULSE:SETB P3.4CLR P3.4ACALL DELAYSETB P3.4ACALL DELAYRET
;----------------------------------; PROSEDUR DELAY;----------------------------------DELAY: MOV R7,#0U3: MOV R6,#0U2: MOV R5,#0U1: INC R5
CJNE R5,#50,U1INC R6CJNE R6,#50,U2INC R7
23
CJNE R7,#50,U3 RET
Contoh Program Menampilkan Data Keypad ke LED
ORG 0HJMP START
START:JB P3.3,$ ; TUNGGU TOMBOL DITEKANMOV A,P0ANL A,#0FHMOV P2,AJNB P3.3,$ ; TUNGGU TOMBOL DILEPASSJMP START
Input keypad dengan tampilan pada LED
1. Tampilkanlah data yang bersesuaian dengan input yang diberikan menggunakan keypad
dengan output pada led.
2. Tampilkanlah variasi led dari tepi ke tengah dengan mengaktifkan keypad yaitu tombol 4
Data Tampilan
Tampilan 1
L7 L6 L5 L4 L3 L2 L1 L0 Tombol Keypad
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 1 0 2
0 0 0 0 0 0 1 1 3
0 0 0 0 0 1 0 0 4
0 0 0 0 0 1 0 1 5
0 0 0 0 0 1 1 0 6
0 0 0 0 0 1 1 1 7
24
0 0 0 0 1 0 0 0 8
0 0 0 0 1 0 0 1 9
0 0 0 0 1 0 1 0 *
0 0 0 0 1 0 1 1 #
Tampilan 2
L7 L6 L5 L4 L3 L2 L1 L0 Tombol Keypad
4
JOB 7
25
INPUT KEYPAD DENGAN TAMPILAN SEVEN SEGMENT
Tujuan pratikum: Setelah melakukan pratikum pengaktifan seven segment ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. mengambil data input program dari keypad dan menampilkannya pada seven segment
dengan menggunakan system mikrokontroler AT89S51
Teori
gambar 1. Rangkaian keypad dan enkodernya
Percobaan ini lanjutan dari percobaan 2 dengan data diambil dari keypad seperti pada percobaan 4.
Tombol yang ditekan ditampilkan di 7 segmen pada digit 0 yang paling kanan
Pada keypad, jika ada satu tombol yang ditekan, maka OE akan LOW dan A,B,C,D akan
menampilkan bentuk binernya.
Enkoder keypad menggunakan mikrokontroler 89C2051 dengan sistem scanning sehingga
keluarannya sudah dalam bentuk biner dengan status OE apabila ada tombol yang ditekan.
Contoh program
26
ORG 0HJMP START
START:JB P3.3,$ ; TUNGGU TOMBOL DITEKANMOV A,P0ANL A,#0FHJNB P3.3,$
ORL A,#11100000BMOV P2,AACALLDELAY
SJMP START
Input keypad dengan tampilan pada seven segment
1. Tampilkanlah data yang bersesuaian dengan input yang diberikan menggunakan keypad
dengan output pada seven segment.
2. Tampilkanlah variasi led dari tepi data 9-0 pada seven segment dengan mengaktifkan
keypad yaitu tombol 1 dan 3
Data tampilanTampilan 1
Tombol Keypad Digit 3 Digit 2 Digit 1 Digit 0
0
1
2
3
4
5
6
7
8
9
*
#
Tampilan 2
Tombol Keypad Digit 3 Digit 2 Digit 1 Digit 0
0
JOB 8
27
PENGAKTIFAN LCD
Tujuan pratikum: Setelah melakukan pratikum pengaktifan LCD ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. menampilkan output program pada LCD dengan menggunakan system mikrokontroler
AT89S51
Teori
gambar 3.1. Aplikasi tampilan LCD dengan input DIPSWITCH dan ADC
LCD yang digunakan adalah : M1632 yang terdiri dari 2 baris, 16 kolom dimulai dari baris1 paling atas dan kolom 0 paling kiri.Sebelum menampilkan karakter pada LCD, maka harus mengikuti prosedur sebagai berikut:
Inisialisasi Pemesanan tempat Penulisan data
Inisialisasi terdiri dari
Display Clear
0 0 0 0 0 0 0 0 0 1RS R/-W D7 D6 D5 D4 D3 D2 D1 D0
Instruksi ini akan menghapus semua display dan mengembalikan kursor ke posisi awal (alamat 0)
Cursor Home0 0 0 0 0 0 0 0 1 XRS R/-W D7 D6 D5 D4 D3 D2 D1 D0
Instruksi ini mengembalikan kursor ke posisi awal (alamat 0)
Entry Mode Set
28
0 0 0 0 0 0 0 1 I/D SRS R/-W D7 D6 D5 D4 D3 D2 D1 D0
Instruksi ini mengatur arah pergerakan kursor dan apakah display akan digeser.
Jika I/D = 1 alamat akan dinaikkan dan kursor bergerak ke kanan dan jika I/D = 0 alamat akan diturunkan dan kursor bergerak ke kiri
Jika S = 1, semua display akan digeser, tetapi posisi kursor tidak berubah, Jika S = 1 dan I/D = 1 , display akan digeser ke kiri dan jika S = 1 dan I/D = 0 display akan
digeser ke kanan. Jika S = 0 , display tidak akan digeser.
Display ON/OFF Control0 0 0 0 0 0 1 D C BRS R/-W D7 D6 D5 D4 D3 D2 D1 D0
D = 1, display akan ditampilkan
D = 0, display tidak ditampilkan
C = 1, kursor akan ditampilkan
C = 0 , kursor tidak ditampilkan
B = 1, karakter tempat posisi kursor berkedip
B = 0, karakter tempat posisi kursor tidak berkedip
Cursor/Display Shift
0 0 0 0 0 1 S/C R/L * *RS R/-W D7 D6 D5 D4 D3 D2 D1 D0
Instruksi ini akan menggerakkan kursor dan menggeser display tanpa mengubah RAM
S/C R/L Operasi
0 0 Posisi kursor digeser ke kiri
0 1 Posisi kursor digeser ke kanan
1 0 Seluruh display digeser ke kiri dengan kursornya
1 1 Seluruh display digeser ke kanan dengan kursornya
`
Function Set0 0 0 0 1 DL 1 * * *
29
RS R/-W D7 D6 D5 D4 D3 D2 D1 D0
DL = 1, panjang data diatur 8 bit
DL = 0, panjang data 4 bit (D7 – D4)
Pin yang digunakan
Pin dari LCD tipe ini terdiri dari 16 pin
No Nama Fungsi
1 Vss GND
2 Vcc + 5 V
3 Vee LCD Contrast
4 RS 1 = Input data, 0 = Input Instruksi
5 R/W 1= Read, 0 = Write
6 E Enable
7 D0 Data 0
8 D1 Data 1
9 D2 Data 2
10 D3 Data 3
11 D4 Data 4
12 D5 Data 5
13 D6 Data 6
14 D7 Data 7
15 VBL+ 4 - 4.2 volt
16 VBL- GND
Pemesanan tempat Ke baris dan kolom dengan memberi RS = 0. Untuk baris 1 data yang dikirim adalah 8XH atau 1000 xxxxB dan baris 2 data yang dikirim adalah CXH atau 1100xxxxB dimana x menunjukkan kolom 0 - 15 (0H - FH).
Penulisan karakter Ke baris dan kolom tersebut dengan memberi RS =1. Karakter yang dikirim dalam format ASCII.
Langkah Kerja1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder
compiler untuk mcs51.2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asm
Compile program dengan menggunakan instruksi : x8051 namafile 3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan
instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
30
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LCD
Contoh Program
ORG 00HSJMP START
;---------------------------------------; LCD CONSTANTA;---------------------------------------DISPCLR EQU 00000001BFUNCSET EQU 00111000BENTRMOD EQU 00000110BDISPON EQU 00001100B
START:ACALLINIT_LCDMOV DPTR,#BARIS1ACALLPRINTSTRING1
MOV DPTR,#BARIS2ACALLPRINTSTRING2
MAIN:SJMP MAIN
;------------------------------------------==----------------; PROSEDUR PEMESANAN TEMPAT;----------------------------------------------------------; RS : 0 : P3.5; E : 0 - 1 - 0 : P3.4; DATA : P2CONTROLOUT:
CLR P3.5 ; RS = 0ACALLDELAYCLR P3.4 ACALLDELAYSETB P3.4 ACALLDELAY
31
MOV P2,A
CLR P3.4 ACALLDELAYRET
;-------------------------------------------------------; PROSEDUR PENEMPATAN DATA;-------------------------------------------------------; RS : 0 : P3.5 ; E : 0 - 1 - 0 : P3.4
DATAOUT:SETB P3.5 ; RS = 1ACALLDELAYCLR P3.4 ; E = 0ACALLDELAYSETB P3.4 ; E = 1ACALLDELAY
MOV P2,A
CLR P3.4 ; E = 0ACALLDELAYRET
;------------------------------------------; PROSEDUR DELAY LCD;------------------------------------------DELAY.INIT.LCD:
MOV R6,#20HDLY.LCD.LP:
MOV R7,#10HDJNZ R7,$DJNZ R6,DLY.LCD.LPRET
INIT_LCD:MOV A,#FUNCSETACALLCONTROLOUTACALLDELAY.INIT.LCD
MOV A,#DISPONACALLCONTROLOUTACALLDELAY.INIT.LCD
MOV A,#DISPCLRACALLCONTROLOUTACALLDELAY.INIT.LCD
MOV A,#ENTRMODACALLCONTROLOUTACALLDELAY.INIT.LCDRET
;----------------------------------------------------------; PROCEDURE LCD BARIS KOLOM LCD
32
;----------------------------------------------------------POSISI2.1:
MOV A,#1POSISI2:
ADD A,#11000000B ; BARIS KEDUADEC AACALL CONTROLOUTACALLDELAY.INIT.LCDRET
POSISI1.1:MOV A,#1
POSISI1:ADD A,#10000000B ; BARIS PERTAMADEC AACALL CONTROLOUTACALLDELAY.INIT.LCDRET
PRINTSTRING2:ACALL POSISI2.1CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP
PRINTSTRINGLOOP:ACALL DATAOUTACALLDELAY.INIT.LCDINC DPTRCLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOPRET
PRINTSTRING1:ACALL POSISI1.1CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP2
PRINTSTRINGLOOP2:LCALL DATAOUTACALLDELAY.INIT.LCDINC DPTRCLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP2RET
;------------------------------------; PROCEDURE DELAY
33
;------------------------------------DELAY:
MOV R5,#0U1: MOV R6,#0U2: MOV R7,#0U3: INC R7
CJNE R7,#5,U3INC R6CJNE R6,#5,U2INC R5CJNE R5,#5,U1RET
BARIS1:DB ' ABCDEFGHIJKLMNOP',0
BARIS2:DB 'QRSTUVWXYZ012345',0
Tampilan LainUbahlah tampilan pada LCD dengan POLITEKNIK pada baris 1 dan TEKNOLOGI pada baris kedua
Data tampilan1. Tampilan 1
Baris 1
Baris 2
2. Tampilan 2
Baris 1
Baris 2
JOB 9SCANNING KEYPAD DENGAN OUTPUT LCD
34
Tujuan pratikum: Setelah melakukan pratikum scanning keypad dengan output LCD ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. menampilkan output program pada LCD dengan input keypad dengan menggunakan
system mikrokontroler AT89S51
Teori JOB 8 merupakan gabungan JOB 5 dan JOB 6, yaitu pemberian input melalui keypad dan menampilkannya pada LCD.
gambar 7.1. Rangkaian keypad dan enkodernya
Percobaan ini lanjutan dari percobaan 1 yaitu output delapan buah LED dengan tambahan input
dari keypad. Data yang ditampilkan pada LED adalah biner dari angka pada keypad. LED akan
menyala jika pada port keluaran diberi logika HIGH ‘1’dan padam jika diberi logika LOW ‘0’.
Untuk mengaktifkan konfigurasi seperti gambar 7.1, pin LED pada posisi 0
Pada keypad, jika ada satu tombol yang ditekan, maka OE akan LOW dan A,B,C,D akan
menampilkan bentuk binernya.
Enkoder keypad menggunakan mikrokontroler 89C2051 dengan sistem scanning sehingga
keluarannya sudah dalam bentuk biner dengan status OE apabila ada tombol yang ditekan.
Langkah Kerja
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile.
35
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LCD
Contoh Program
ORG 00HSJMP START
;--------------------------------------; LCD CONSTANTA;--------------------------------------DISPCLR EQU 00000001BFUNCSET EQU 00111000BENTRMOD EQU 00000110BDISPON EQU 00001100B
START:ACALLINIT_LCDMOV DPTR,#BARIS1ACALLPRINTSTRING1
MOV DPTR,#BARIS2ACALLPRINTSTRING2
MAIN:ACALLKEYPADSJMP MAIN
;---------------------------------------------------------; PENGAMBILAN DATA DARI KEYPAD;---------------------------------------------------------KEYPAD:
JB P3.3,$ ; TUNGGU TOMBOL DITEKANMOV A,P0ANL A,#0FHMOV R0,AMOV A,#0CFH ; PESAN TEMPAT DI KOLOM 15 BARIS 2ACALLCONTROLOUTMOV A,R0ADD A,#30H ; ASCII DARI DATA KEYPADACALLDATAOUTJNB P3.3,$ ; TUNGGU TOMBOL DILEPASRET
36
;--------------------------------------------------------; PROSEDUR PEMESANAN TEMPAT;--------------------------------------------------------; RS : 0 : P3.5; E : 0 - 1 - 0 : P3.4; DATA : P2CONTROLOUT:
CLR P3.5 ; RS = 0ACALLDELAYCLR P3.4 ACALLDELAYSETB P3.4 ACALLDELAYMOV P2,ACLR P3.4 ACALLDELAYRET
;-------------------------------------------------------; PROSEDUR PENEMPATAN DATA;-------------------------------------------------------; RS : 0 : P3.5 ; E : 0 - 1 - 0 : P3.4
DATAOUT:SETB P3.5 ; RS = 1ACALLDELAYCLR P3.4 ; E = 0ACALLDELAYSETB P3.4 ; E = 1ACALLDELAYMOV P2,ACLR P3.4 ; E = 0ACALLDELAYRET
;--------------------------------------------; PROSEDUR DELAY LCD;--------------------------------------------DELAY.INIT.LCD:
MOV R6,#20HDLY.LCD.LP:
MOV R7,#10HDJNZ R7,$DJNZ R6,DLY.LCD.LPRET
INIT_LCD:MOV A,#FUNCSETACALLCONTROLOUTACALLDELAY.INIT.LCD
MOV A,#DISPONACALLCONTROLOUT
37
ACALLDELAY.INIT.LCD
MOV A,#DISPCLRACALLCONTROLOUTACALLDELAY.INIT.LCD
MOV A,#ENTRMODACALLCONTROLOUTACALLDELAY.INIT.LCDRET
;----------------------------------------------------------; PROCEDURE LCD BARIS KOLOM LCD;----------------------------------------------------------POSISI2.1:
MOV A,#1POSISI2:
ADD A,#11000000B ; BARIS KEDUADEC AACALL CONTROLOUTACALLDELAY.INIT.LCDRET
POSISI1.1:MOV A,#1
POSISI1:ADD A,#10000000B ; BARIS PERTAMADEC AACALL CONTROLOUTACALLDELAY.INIT.LCDRET
PRINTSTRING2:ACALL POSISI2.1CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP
PRINTSTRINGLOOP:ACALL DATAOUTACALLDELAY.INIT.LCDINC DPTRCLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOPRET
PRINTSTRING1:ACALL POSISI1.1CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP2
PRINTSTRINGLOOP2:LCALL DATAOUTACALLDELAY.INIT.LCDINC DPTR
38
CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP2RET
;-----------------------------------------; PROCEDURE DELAY;-----------------------------------------DELAY:
MOV R5,#0U1: MOV R6,#0U2: MOV R7,#0U3: INC R7
CJNE R7,#5,U3INC R6CJNE R6,#5,U2INC R5CJNE R5,#5,U1RET
BARIS1:DB 'INPUT KEYPAD',0
BARIS2:DB 'KEYPAD: ',0
Data Tampilan
Tombol Keypad Tampilan LCD
0
1
2
3
4
5
6
7
8
9
*
#
JOB 10
39
KONVERSI ADC DENGAN DISPLAY LED
Tujuan pratikum: Setelah melakukan pratikum konversi ADC dengan output LED ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. menampilkan output program konversi ADC pada LED dengan menggunakan system
mikrokontroler AT89S51
gambar 10. Multiplekser, ADC
Perhatikan gambar 10 di atas.
Multiplekser analog 4051
IC ini digunakan untuk memasukkan input analog ke ADC secara bergantian dengan mengatur sinyal kontrol A, B dan C. IC ini akan bekerja sesuai dengan tabel kebenaran berikut:
INH C B A X1 X X X -0 0 0 0 X00 0 0 1 X10 0 1 0 X20 0 1 1 X30 1 0 0 X40 1 0 1 X50 1 1 0 X60 1 1 1 X7
ADC0804
IC ini berfungsi untuk mengubah besaran analog menjadi digital 8 bit. Mode kerja IC ini
ada beberapa macam diantaranya adalah mode WR-RD, yaitu :
WR = 1, RD = 1
WR = 0, RD = 1
WR = 1, RD = 1
40
Apakah INT = 0, jika tidak tunggu dan jika ya ambil datanya dengan memberi WR
= 1, RD = 0
WR = 1, RD = 1
Input analog ( 0 - 7 ) dipilih melalui multiplekser analog yang dikontrol melalui P1.0, P1.1 dan
P1.2. Input 0 dan 7 dihubungkan ke sumber tegangan analog yang diberikan oleh potensiometer.
Output multiplekser analog dihubungkan ke ADC. ADC dikontrol oleh mikrokontroler melalui :
WR : P3.6
RD : P3.7
dan sinyal interupsi dipilih melalui INT0 atau INT1.
Output data digital hasil konversi dihubungkan ke port 0 dan ditampilkan ke deretan LED melalui
port 2.
Tugas pratikum
Tampilkan data input analog dari 0 – 5 volt pada LED dan isikan pada table data tampilan
Langkah Kerja
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile.
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada seven segment
Contoh program
Prosedur pengambilan data ADC adalah sbb:
;---------------------------------------------------; P0.5 : A; P0.6 : B; P0.7 : C; P3.6 : WR; P3.7 : RD
41
;---------------------------------------------------READ_ADC:
SETB P3.6 ; WR = 1SETB P3.7 ; RD = 1ACALLDELAYCLR P3.6 ; WR = 0ACALLDELAYSETB P3.6 ; WR = 1JB P3.2,$ACALLDELAYCLR P3.7 ; RD = 0MOV A,P1MOV DATAADC,ASETB P3.7 ; RD = 1RET
Sedangkan program utamanya adalah sbb :
MAIN:ACALLCHANNEL_0ACALLREAD_ADCMOV A,DATAADCMOV P2,ASJMP MAIN
Multiplekser bekerja pada kanal 0, kemudian data diambil dari ADC dan disimpan di variabel
DATAADC dan selanjutnya dikeluarkan ke LED
Program lengkap
; PROG10.ASM DIGUNAKAN UNTUK MENGAMBIL DATA DARI ADC ; DAN DITAMPILKAN KE DERETAN LED; JUMPER OUTPUT : DI LED POSISI '0'
ORG 00HSJMP MAIN
DATAADC EQU 60H;-------------------------------------; MAIN PROGRAM;-------------------------------------MAIN:
ACALLCHANNEL_0ACALLREAD_ADCMOV A,DATAADCMOV P2,ASJMP MAIN
CHANNEL_0:CLR P0.5CLR P0.6CLR P0.7RET
CHANNEL_7:
42
SETB P0.5SETB P0.6SETB P0.7RET
;--------------------------------------------------; PENAMBILAN DATA DARI ADC; P0.5 : A; P0.6 : B; P0.7 : C; P3.6 : WR; P3.7 : RD;---------------------------------------------------READ_ADC:
SETB P3.6 ; WR = 1SETB P3.7 ; RD = 1ACALLDELAYCLR P3.6 ; WR = 0ACALLDELAYSETB P3.6 ; WR = 1JB P3.2,$ACALLDELAYCLR P3.7 ; RD = 0MOV A,P1MOV DATAADC,ASETB P3.7 ; RD = 1RET
; DELAY 1 mSDELAY:
MOV R1,#100LOOP1:
NOPNOPNOPNOPNOPNOPNOPNOPNOPDJNZ R1,LOOP1RET
Data tampilan
Untuk mengisi tabel di bawah , tegangan referensi di titik REF harus = 2.55 volt, jika belum
sama aturlah multiturn tegak yang berwarna biru
IN0 (VOLT)
D7 D6 D5 D4 D3 D2 D1 D0
0.020.5
43
1.01.52.02.53.03.54.04.55.0
JOB 11KONVERSI ADC DENGAN DISPLAY SEVEN SEGMENT
Tujuan pratikum: Setelah melakukan pratikum konversi ADC dengan output seven segment ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. menampilkan output program konversi ADC pada seven segment dengan menggunakan
system mikrokontroler AT89S51
Teori
gambar 1. Multiplekser, ADC
Perhatikan gambar 1 di atas.
Multiplekser analog 4051
IC ini digunakan untuk memasukkan input analog ke ADC secara bergantian dengan mengatur sinyal kontrol A, B dan C. IC ini akan bekerja sesuai dengan tabel kebenaran berikut:
INH C B A X1 X X X -0 0 0 0 X00 0 0 1 X10 0 1 0 X20 0 1 1 X30 1 0 0 X4
44
0 1 0 1 X50 1 1 0 X60 1 1 1 X7
ADC0804
IC ini berfungsi untuk mengubah besaran analog menjadi digital 8 bit. Mode kerja IC ini
ada beberapa macam diantaranya adalah mode WR-RD, yaitu :
WR = 1, RD = 1
WR = 0, RD = 1
WR = 1, RD = 1
Apakah INT = 0, jika tidak tunggu dan jika ya ambil datanya dengan memberi WR
= 1, RD = 0
WR = 1, RD = 1
Input analog ( 0 - 7 ) dipilih melalui multiplekser analog yang dikontrol melalui P1.0, P1.1 dan
P1.2. Input 0 dan 7 dihubungkan ke sumber tegangan analog yang diberikan oleh potensiometer.
Output multiplekser analog dihubungkan ke ADC. ADC dikontrol oleh mikrokontroler melalui :
WR : P3.6
RD : P3.7
dan sinyal interupsi dipilih melalui INT0 atau INT1.
Output data digital hasil konversi dihubungkan ke port 0 dan ditampilkan ke deretan display 7
segmen melalui port 2.
Langkah Kerja
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile.
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
a. Load HEX File to flash buffer
45
7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS prompt dan selanjutnya akan tampil
Hex file loaded, press any key to continuePilih E. Program dan tunggu sampai program terloading 100%.
8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada seven segment
Contoh Program
ORG 00HSJMP MAIN
DATAADC EQU 60H
;--------------------------------; MAIN PROGRAM;--------------------------------MAIN:
ACALLCHANNEL_0ACALLREAD_ADCACALLDISPSJMP MAIN
CHANNEL_0:CLR P0.5CLR P0.6CLR P0.7RET
CHANNEL_7:SETB P0.5SETB P0.6SETB P0.7RET
;----------------------------------------------------; PENGAMBILAN DATA DARI ADC; P0.5 : A; P0.6 : B; P0.7 : C; P3.6 : WR; P3.7 : RD;----------------------------------------------------READ_ADC:
SETB P3.6 ; WR = 1SETB P3.7 ; RD = 1ACALLDELAYCLR P3.6 ; WR = 0ACALLDELAYSETB P3.6 ; WR = 1JB P3.2,$ACALLDELAYCLR P3.7 ; RD = 0MOV A,P1MOV DATAADC,A
46
SETB P3.7 ; RD = 1RET
DISP:MOV A,DATAADCMOV B,#100DIV ABMOV 32H,A ; RATUSAN
MOV A,BMOV B,#10DIV ABMOV 31H,A ; PULUHANMOV 30H,B ; SATUANORL A,#11110000B ; DIGIT 3 OFFMOV P2,AACALLDELAY
MOV A,32H ; DIGIT 2ORL A,#10110000BMOV P2,AACALLDELAY
MOV A,31H ; DIGIT 1ORL A,#11010000BMOV P2,AACALLDELAY
MOV A,30H ; DIGIT 0ORL A,#11100000BMOV P2,AACALLDELAYRET
Data Tampilan
VIN (V) Digit 3 Digit 2 Digit 1 Digit 0
0.02
0.5
1.0
1.5
2.0
2.5
3.0
3.5
47
4.0
4.5
5
JOB 12KONVERSI ADC DENGAN DISPLAY LCD
Tujuan pratikum: Setelah melakukan pratikum konversi ADC dengan output LCD ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. menampilkan output program konversi ADC pada LCD dengan menggunakan system
mikrokontroler AT89S51
Teori
gambar 1. Multiplekser, ADC
Perhatikan gambar 1 di atas.
Multiplekser analog 4051
IC ini digunakan untuk memasukkan input analog ke ADC secara bergantian dengan mengatur sinyal kontrol A, B dan C. IC ini akan bekerja sesuai dengan tabel kebenaran berikut:
INH C B A X1 X X X -0 0 0 0 X0
48
0 0 0 1 X10 0 1 0 X20 0 1 1 X30 1 0 0 X40 1 0 1 X50 1 1 0 X60 1 1 1 X7
ADC0804
IC ini berfungsi untuk mengubah besaran analog menjadi digital 8 bit. Mode kerja IC ini
ada beberapa macam diantaranya adalah mode WR-RD, yaitu :
WR = 1, RD = 1
WR = 0, RD = 1
WR = 1, RD = 1
Apakah INT = 0, jika tidak tunggu dan jika ya ambil datanya dengan memberi WR
= 1, RD = 0
WR = 1, RD = 1
Input analog ( 0 - 7 ) dipilih melalui multiplekser analog yang dikontrol melalui P1.0, P1.1 dan
P1.2. Input 0 dan 7 dihubungkan ke sumber tegangan analog yang diberikan oleh potensiometer.
Output multiplekser analog dihubungkan ke ADC. ADC dikontrol oleh mikrokontroler melalui :
WR : P3.6
RD : P3.7
dan sinyal interupsi dipilih melalui INT0 atau INT1.
Output data digital hasil konversi dihubungkan ke port 0 dan ditampilkan ke LCD melalui P2
Langkah Kerja
1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder compiler untuk mcs51.
2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asmCompile program dengan menggunakan instruksi : x8051 namafile.
3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.
49
8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LED
Contoh Program
ORG 00HSJMP START
;-------------------------------------; LCD CONSTANTA;--------------------------------------DISPCLR EQU 00000001BFUNCSET EQU 00111000BENTRMOD EQU 00000110BDISPON EQU 00001100B
DATAADC EQU 60H
START:ACALLINIT_LCDMOV DPTR,#BARIS1ACALLPRINTSTRING1
MOV DPTR,#BARIS2ACALLPRINTSTRING2
;--------------------------------; MAIN PROGRAM;--------------------------------MAIN:
ACALLCHANNEL_0ACALLREAD_ADCACALLDISPSJMP MAIN
CHANNEL_0:CLR P0.5CLR P0.6CLR P0.7RET
CHANNEL_7:SETB P0.5SETB P0.6SETB P0.7RET
;---------------------------------------------------; PENAMBILAN DATA DARI ADC; P0.5 : A; P0.6 : B; P0.7 : C
50
; P3.6 : WR; P3.7 : RD;---------------------------------------------------READ_ADC:
SETB P3.6 ; WR = 1SETB P3.7 ; RD = 1ACALLDELAYCLR P3.6 ; WR = 0ACALLDELAYSETB P3.6 ; WR = 1JB P3.2,$ACALLDELAYCLR P3.7 ; RD = 0MOV A,P1MOV DATAADC,ASETB P3.7 ; RD = 1RET
;-------------------------------------------------; MENAMPILKAN DATA KE LCD;------------------------------------------------DISP:
MOV A,DATAADCMOV B,#100DIV ABMOV 32H,A ; 32H : RATUSAN
MOV A,BMOV B,#10DIV ABMOV 31H,A ; 31H : PULUHANMOV 30H,B ; 30H : SATUAN
MOV A,#0CFH ; PESAN TEMPAT DI KOLOM 15 BARIS 2ACALLCONTROLOUTMOV A,30HADD A,#30H ; ASCII DARI SATUANACALLDATAOUT
MOV A,#0CEH ; PESAN TEMPAT DI KOLOM 14 BARIS 2ACALLCONTROLOUTMOV A,31HADD A,#30H ; ASCII DARI PULUHANACALLDATAOUT
MOV A,#0CDH ; PESAN TEMPAT DI KOLOM 13 BARIS 2ACALLCONTROLOUTMOV A,32HADD A,#30H ; ASCII DARI RATUSANACALLDATAOUTRET
;---------------------------------------------------------; PROSEDUR PEMESANAN TEMPAT;---------------------------------------------------------
51
; RS : 0 : P3.5; E : 0 - 1 - 0 : P3.4; DATA : P2CONTROLOUT:
CLR P3.5 ; RS = 0ACALLDELAYCLR P3.4 ACALLDELAYSETB P3.4 ACALLDELAYMOV P2,ACLR P3.4 ACALLDELAYRET
;-------------------------------------------------------; PROSEDUR PENEMPATAN DATA;-------------------------------------------------------; RS : 0 : P3.5 ; E : 0 - 1 - 0 : P3.4
DATAOUT:SETB P3.5 ; RS = 1ACALLDELAYCLR P3.4 ; E = 0ACALLDELAYSETB P3.4 ; E = 1ACALLDELAYMOV P2,ACLR P3.4 ; E = 0ACALLDELAYRET
;-----------------------------------------------; PROSEDUR DELAY LCD;-----------------------------------------------DELAY.INIT.LCD:
MOV R6,#20HDLY.LCD.LP:
MOV R7,#10HDJNZ R7,$DJNZ R6,DLY.LCD.LPRET
INIT_LCD:MOV A,#FUNCSETACALLCONTROLOUTACALLDELAY.INIT.LCD
MOV A,#DISPONACALLCONTROLOUTACALLDELAY.INIT.LCD
52
MOV A,#DISPCLRACALLCONTROLOUTACALLDELAY.INIT.LCD
MOV A,#ENTRMODACALLCONTROLOUTACALLDELAY.INIT.LCDRET
;-----------------------------------------------------------; PROCEDURE LCD BARIS KOLOM LCD;-----------------------------------------------------------POSISI2.1:
MOV A,#1POSISI2:
ADD A,#11000000B ; BARIS KEDUADEC AACALL CONTROLOUTACALLDELAY.INIT.LCDRET
POSISI1.1:MOV A,#1
POSISI1:ADD A,#10000000B ; BARIS PERTAMADEC AACALL CONTROLOUTACALLDELAY.INIT.LCDRET
PRINTSTRING2:ACALL POSISI2.1CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP
PRINTSTRINGLOOP:ACALL DATAOUTACALLDELAY.INIT.LCDINC DPTRCLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOPRET
PRINTSTRING1:ACALL POSISI1.1CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP2
PRINTSTRINGLOOP2:LCALL DATAOUTACALLDELAY.INIT.LCDINC DPTRCLR AMOVC A,@A+DPTR
53
JNZ PRINTSTRINGLOOP2RET
;-----------------------------------------; PROCEDURE DELAY;-----------------------------------------DELAY:
MOV R5,#0U1: MOV R6,#0U2: MOV R7,#0U3: INC R7
CJNE R7,#10,U3INC R6CJNE R6,#10,U2INC R5CJNE R5,#10,U1RET
BARIS1:DB ' DATA DARI ADC ',0
BARIS2:DB 'DATA ADC : ',0
Data Tampilan
VIN (V) Tampilan LCD
0.02
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5
54
JOB 13PENGONTROLAN MOTOR STEPPER
Tujuan pratikum: Setelah melakukan pratikum pengontrolan motor stepper ini, mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. mengontrol motor stepper dengan menggunakan system mikrokontroler AT89S51
TeoriStepper motor adalah salah satu tipe motor yang sangat populer digunakan sebagai peralatan penggerak/pemutar (movement unit/ actuator) dalam sistem kontrol otomasi diindustri, instrumentasi bahkan printer yang sering kita pakai sehari-hari.
Perhatikan Gambar 1. Bila kumparan mendapat tegangan -- dengan analogi mendapat logika 1 -- maka akan dibangkitkan kutub magnet yang berlawanan dengan kutub magnet tetap pada rotor. Dengan demikian, posisi kutub magnet rotor akan ditarik mendekati lilitan yang menghasilkan kutub magnet berlawanan tadi. Bila pada langkah berikutnya lilitan yang bersebe1ahan diberi tegangan, sedangkan catu tegangan pada lilitan sebelumnya dilepas, maka kutub magnet tetap pada rotor itu akan berpindah posisi menuju kutub magnet lilitan yang dihasilkan sekarang. Berarti, telah terjadi gerakan 1 step. Bila langkah ini diulang terusmenerus, dengan memberikan tegangan secara bergantian ke lilitan-liIitan yang bersebelahan, rotor akan "berputar".
Gambar 1. Motor stepper dengan full step
Untuk Stepper Motor 4 fase, pada prinsipnya ada dua macam cara kerja yaitu Full Step dan Half Step (lihat Tabel 1). Penjabaran formasi logika dalam tabel ini adalah untuk mewakili putaran penuh 360° relatif terhadap fase dari motor.
55
Tabel 1 . Formasi input pada motor stepper
Step ke Full Step Half step
1 1 0 0 0 1 0 0 0
2 0 1 0 0 1 1 0 0
3 0 0 1 0 0 1 0 0
4 0 0 0 1 0 1 1 0
5 Berulang ke step 1 0 0 1 0
6 0 0 1 1
7 0 0 0 1
8 1 0 0 1
Berulang ke step 1
Langkah Kerja1. Buatlah program pada DOS editor dengan mengaktifkan DOS prompt dan bukalah folder
compiler untuk mcs51.2. Ketiklah program pada DOS teks editor dan simpanlah dalam bentuk namafile.asm
Compile program dengan menggunakan instruksi : x8051 namafile. 3. Setelah dihasilkan file dengan ekstension obj, lanjutkanlah meng-compile program dengan
instruksi L8051dan inputkan nama file yang akan dicompile sehingga diperoleh
Output format : Intel Hex4. Cek jumper pada system mikrocontroler yang akan digunakan dengan menempatkan
jumper seven segment dengan menghubungkan pin tengah – 0 pada terminal jumper.5. Pada DOS prompt, ketik
C:\mcs51\aec_isp6. Dari tampilan program AEC_ASP, pilihlah option
A. Load HEX File to flash buffer7. Ketikkan nama file dengan extension hex pada Input file name: yang tampil pada DOS
prompt dan selanjutnya akan tampil Hex file loaded, press any key to continue
Pilih E. Program dan tunggu sampai program terloading 100%.8. Pilih I. Reset sehingga bernilai Low dan lihat output yang dihasilkan pada LED
Tugas pratikum
1. Tampilkan putaran motor stepper searah jarum jam (CW)
2. Tampilkan putaran motor stepper berlawanan arah jarum jam (CCW).
3. Tampilkan putaran motor dengan S0 untuk putaran motor stepper searah jarum jam (CW)
dan S1 untuk putaran motor stepper berlawanan arah jarum jam (CCW).
4. Tampilkan putaran motor stepper searah jarum jam (CW) untuk posisi 900
Contoh Program
56
ORG 0H
SJMP START
START: MOV P2,#01H
ACALL DELAY
MOV P2,#02H
ACALL DELAY
MOV P2,#04H
ACALL DELAY
MOV P2,#08H
ACALL DELAY
SJMP START
DELAY:
MOV R5,#0
U1: MOV R6,#0
U2: MOV R7,#0
U3: INC R7
CJNE R7,#30,U3
INC R6
CJNE R6,#30,U2
INC R5
CJNE R5,#30,U1
RET
DATA TAMPILAN
L7 L6 L5 L4 L3 L2 L1 L0 Arah Putaran
CW
CCW
57
JOB 14APLIKASI MODUL MIKROKONTROLER
Tujuan pratikum: Setelah melakukan pratikum 1 - 13 mahasiswa dapat :
1. memahami cara pengoperasian system mikrokontroler AT89S51 2. mengoperasikan system mikrokontroler AT89S51.3. mengaplikasikansistem dengan menggunakan system mikrokontroler AT89S51
PratikumRancanglah sebuah sistem pada modul mikroprosesor dengan menggunakan input dan output sebagai simulasi sebuah sistem.
Contoh aplikasi:Sistem portal pada pintu masuk gedung.Input: Keypad (password untuk mengaktifkan motor)Output: Motor Stepper (bergerak 750 searah jarum jam untuk membuka portal, setelah 3 detik
motor akan berputar berlawanan arah jarum jam untuk menutup portal kembali)
Tugas Pratikum
Rancanglah sebuah simulasi system dengan menggunakan input dan output yang ada pada modul mikrokontroler. Perlu diingat bahwa beberapa input dan output yang ada pada modul berada pada satu port sehingga tidak memungkinkan untuk mengaktifkan lebih dari 1 output dalam waktu yang bersamaan.
58