Praktikum Mikrokontroller 2007

38
PRAKTIKUM MIKROKONTROLER LABORATORIUM ELEKTRONIKA DIGITAL TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG BAB I PENDAHULUAN 1.1. Tujuan Instruksional Umum Setelah praktikum selesai dilaksanakan peserta harus dapat: Memahami cara mengoperasikan program DT-51 Windows Downloader V2.1 Memahami cara mengoperasikan program Compiler ASM51 1.2. Tujuan Instruksional Khusus Peserta harus dapat: Menjelaskan langkah-langkah pemrograman mikrokontroler dengan benar Menghubungkan modul DT-51 dan PC dengan benar Mengoperasikan program DT-51 W dengan benar Mengoperasikan Compiler ASM51 dengan benar 1.3. Kegiatan Pada tahap awal ini, peserta harus melaksanakan proses penulisan program sederhana dan mengkompilasi program serta mendownload ke dalam system mikrokontroler, dengan langkah-langkah yang terjabar dalam uraian sub bab berikut. 1.4. Perangkat Lunak Perangkat lunak yang digunakan adalah NOTEPAD.EXE (bawaan Microsoft Windows), ASM51.EXE, DT51L.EXE (bawaan DT-51 MinSys).

Transcript of Praktikum Mikrokontroller 2007

Page 1: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

BAB I

PENDAHULUAN

1.1. Tujuan Instruksional Umum

Setelah praktikum selesai dilaksanakan peserta harus dapat:

� Memahami cara mengoperasikan program DT-51 Windows Downloader V2.1

� Memahami cara mengoperasikan program Compiler ASM51

1.2. Tujuan Instruksional Khusus

Peserta harus dapat:

� Menjelaskan langkah-langkah pemrograman mikrokontroler dengan benar

� Menghubungkan modul DT-51 dan PC dengan benar

� Mengoperasikan program DT-51 W dengan benar

� Mengoperasikan Compiler ASM51 dengan benar

1.3. Kegiatan

Pada tahap awal ini, peserta harus melaksanakan proses penulisan program sederhana

dan mengkompilasi program serta mendownload ke dalam system mikrokontroler,

dengan langkah-langkah yang terjabar dalam uraian sub bab berikut.

1.4. Perangkat Lunak

Perangkat lunak yang digunakan adalah NOTEPAD.EXE (bawaan Microsoft

Windows), ASM51.EXE, DT51L.EXE (bawaan DT-51 MinSys).

Page 2: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

NOTEPAD

Notepad digunakan sebagai editor text, Listing program assembly dalam praktikum

ditulis dan diubah menggunakan notepad. Listing program tersebut disimpan dengan

format (nama file).ASM.

ASM51 (+MOD51)

ASM51 digunakan sebagai hex assembler. ASM51 akan mengubah listing program

yang sudah dibuat dengan Notepad menjadi file heksadesimal. Hasil proses ini

menghasilkan file dengan format (nama file).HEX adalah file yang di-download ke DT-

51 MinSys. File (nama file).LST adalah file yang berisi alokasi (alamat) memori pada

listing program. File ini juga berisi pesan error dan lokasinya jika terdapat kesalahan

pada listing program. MOD51 berisi semua kode kontrol untuk keluarga MCS-51 antara

lain: 8051, 8751, 8031,termasuk 89C51 dan 89C2051.

DT51L

DT51L digunakan untuk men-download file heksadesimal ke DT-51 MinSys.

1.5. Cara Menggunakan Perangkat Lunak

a. Langkah pertama dalam membuat program adalah menuliskan listing

program/instruksi terlebih dahulu pada sebuah editor. Editor yang umum digunakan

dan dapat ditemui di hampir setiap komputer berbasis windows adalah Notepad.

Program diketik dengan menggunakan Notepad dan disimpan dalam format (nama

file).ASM. Contoh tampilannya ditunjukkan oleh gambar berikut.

Page 3: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Gambar 1.1

Editor Program Notepad

b. Tahap selanjutnya adalah mengubah program tersebut menjadi format (nama

file).HEX yang dapat di-download ke DT-51 MinSys. Program yang digunakan

untuk melakukan proses tersebut adalah ASM51.EXE.

Proses assembling dilakukan dengan mengetikkan “ASM51 (nama file).ASM” pada

MS-DOS prompt (pada folder yang memuat semua file yang akan di-assembler

tersebut).

Proses assembling yang berhasil ditunjukkan oleh gambar berikut ini. Jika hasil

proses assembling ASM51 menyatakan bahwa ada kesalahan (error), maka

kesalahan tersebut dapat diperiksa dari file (nama file).LST.

Gambar 1.2

Proses Kompilasi dengan ASM51

Page 4: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

c. Tahap akhir dari pembuatan program adalah proses download ke DT-51 MinSys.

Langkah ini dilakukan dengan bantuan DT51L.EXE. Proses download dilakukan

dengan mengetikkan “DT51L (nama file).HEX “ pada MS-DOS prompt (pada

folder yang memuat file HEX tersebut). Proses download yang berhasil akan

ditandai dengan munculnya pesan seperti pada gambar berikut..

Petunjuk Penggunaan DT-51 Windows Downloader v2.1

Gambar 1.3

DT-51 Program Downloader V2.1 untuk DT-51

1. Menu

File : Open & Download (F9) = untuk membuka file Hex dan men-download file tersebut

Re-download (Ctrl+F9) = untuk men-download ulang file yang terakhir dibuka

Option : Testing = untuk melakukan testing sesuai Testing Option

Exit : = keluar dari program

Page 5: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

2. Toolbar

Open & Download (F9) = untuk membuka file Hex dan men-download file tersebut

Re-download (Ctrl+F9) = untuk men-download ulang file yang terakhir dibuka

Testing = untuk melakukan testing sesuai Testing Option

3. COM & Baud Rate

COM Option : untuk memilih Serial port yang digunakan

Baudrate Option : untuk memilih kecepatan baud rate yang digunakan

4. Auto Detect

Jika dicentang, maka COM port dan Baudrate akan dipilih secara otomatis

Jika tidak dicentang, maka COM port dan Baudrate ditentukan oleh COM Option dan

Baudrate Option

5. USB Converter (membutuhkan kernel DT-51 MinSys/PetraFuz baru)

Jika menggunakan USB to Serial RS-232 Converter, centanglah kotak ini

Jika langsung menggunakan COM port, hilangkan centang pada kotak ini

6. Testing Option

Berisi pilihan prosedur testing (keterangan lebih lengkap terdapat pada manual DT-51

MinSys ver 3.0)

7. Download Algorithm

Berisi pilihan metode download (keterangan lebih lengkap terdapat pada manual DT-

51 MinSys ver 3.0)

1.6. Peta Memori DT-51

Peta memori DT-51 menunjukkan alamat masing-masing bagian komponen seperti yang

tercantum pada gambar berikut.

Page 6: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Gambar 1-4

Tata Letak DT-51 Minimum System ver 3.3

Page 7: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

BAB II

PEMROGRAMAN PORT OUTPUT

2.1. Tujuan Instruksional Umum

Setelah praktikum selesai dilaksanakan peserta harus dapat:

� Memahami cara mengeluarkan data ke port output

2.2. Tujuan Instruksional Khusus

Peserta harus dapat:

� Membuat program untuk mengirim data ke port

2.3. Kegiatan

� Peserta praktikum menulis program I, yang berfungsi untuk mengirim data ke port

dengan instruksi MOV

� Peserta praktikum menulis program II, yang berfungsi untuk menampilkan karakter

pada display seven segment.

� Peserta praktikum menulis program III, yang berfungsi untuk menggerakkan motor

stepper

Page 8: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

2.4. Program Mengirim Data ke Port Output

2.4.1. Percobaan 1

Gambar 2.1 .

C AT89C51/AT89S51

Mikrokontroler AT89C51/AT89S51 memiliki 4 buah port I/O yang terdiri dari :

� Port 0

Port 0 merupakan port dua fungsi yang berada pada pin 32 - 39, pada rancangan

system sederhana port ini digunakan sebagai port I/O serbaguna. Untuk

rancangan yang lebih komplek yang melibatkan memori eksternal jalur ini

dimultiplek untuk bus data dan bus alamat.

� Port 1

Port 1 disediakan khusus sebagai port I/O, port ini berada pada pin 1- 8.

Page 9: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

� Port 2

Port 2 (pin 21- 28) merupakan port dua fungsi yaitu sebagai port I/O serbaguna,

dan sebagai bus alamat byte tinggi untuk rancangan system yang melibatkan

memori eksternal.

� Port 3

Port 3 adalah port dua fungsi yang berada pada pin 10 – 17, port ini memiliki

fungsi ganda seperti diuraikan pada table 1 berikut ini.

Tabel 2.1. Port 3

Langkah-langkah percobaan

� Hubungkan Port 1 DT-51 MinSys dengan “Port Output DT-51 Trainer Board

menggunakan kabel tipe Y.

� Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

� Hubungkan DT-51 MinSys dengan sumber tegangan.

� Ketikkan program berikut ini, pada editor program, kemudian compile dan

download ke DT-51 MinSys, dan amati hasilnya.

Page 10: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Program I :

Program mengirim data ke port 1 dengan instruksi bit

$mod51 CSEG ORG 4000H LJMP START ORG 4100H START: MOV SP,#30H SETB P1.0 CLR P1.1 SETB P1.2 CLR P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 SJMP $ END

� Jika tidak ada kesalahan, program tersebut akan menyebabkan Output LED pada

Tutorial Board berada pada kondisi sbb:

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Nyala Nyala Nyala Nyala Padam Nyala Padam Nyala

Tugas:

Buat program seperti diatas dengan menggunakan instruksi SETB dan CLR untuk

mendapatkan keluaran data 10101010.

Page 11: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

2.4.2. Percobaan 2

� Hubungkan Port 1 DT-51 MinSys dengan “Port Output DT-51 Trainer Board

menggunakan kabel tipe Y.

� Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

� Hubungkan DT-51 MinSys dengan sumber tegangan.

� Ketikkan program berikut ini, pada editor program, kemudian compile dan

download ke DT-51 MinSys, dan amati hasilnya.

Program II :

$MOD51 CSEG ORG 4000H AJMP START ORG 4100H Delay: MOV R2,#0FFH Del1: MOV R1,#0FFH DJNZ R1,$ DJNZ R2,Del1 RET START: MOV SP,#30H XX: MOV P1,#0FFH ACALL Delay MOV P1,#00H ACALL Delay AJMP XX END

Tugas:

Buat program seperti diatas dengan menggunakan instruksi MOV untuk mendapatkan

keluaran data 1111000 dan 00001111 secara bergantian.

Page 12: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

2.4.3. Program Untuk Menggerakkan Motor Stepper

Pendahuluan

Motor Stepper adalah motor yang bergeraknya per langkah, dan geraknya

dikendalikan oleh data digital. Inti motor (rotor) berupa magnet permanen dan stator

terdiri dari empat kumparan yang dihubungkan dengan saklar. Dengan membuka

menutupnya saklar sesuai dengan data pada tabel 4, maka kita dapat memutar inti

motor dengan arah tertentu. Adapun urutan data yang harus diberikan ditunjukkan

pada tabel 4 dibawah ini. Untuk arah putaran kebalikkannya, maka urutan data pada

tabel 4 harus dibalik.

Gambar 2.2.

Motor Stepper

Tabel 2.2.

Data Motor Stepper

Step SW1 SW2 SW3 SW4

1 1 0 0 0

2 0 1 0 0

3 0 0 1 0

4 0 0 0 1

Page 13: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Langkah-langkah percobaan

� Hubungkan Port 1 DT-51 MinSys dengan Modul motor stepper menggunakan

kabel yang ada pada motor stepper.

� Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

� Hubungkan DT-51 MinSys dengan sumber tegangan.

� Ketikkan program berikut ini, pada editor program, kemudian compile dan

download ke DT-51 MinSys, dan amati hasilnya.

Program Motor Stepper

$mod51 cseg org 4000h ljmp mulai org 4100h mulai: mov p1,#10h call tunda mov p1,#20h call tunda mov p1,#40h call tunda mov p1,#80h call tunda jmp mulai tunda: mov r2,#0ffh tunda1: mov r1,#0ffh djnz r1,$ djnz r2,tunda1 ret end

Tugas

� Buat program untuk arah putaran motor 180° ke kanan

� Buat program untuk arah putaran motor 360° ke kiri dengan membalik urutan data

motor stepper

Page 14: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

BAB III

PEMROGRAMAN PORT INPUT DAN OUTPUT PPI

3.1. Pemrograman Port Input

3.2.1 Tujuan Instruksional Umum

Setelah praktikum selesai dilaksanakan peserta harus dapat:

� Memahami cara membaca data dari port input

3.2.2 Tujuan Instruksional Khusus

Peserta harus dapat:

� Membuat program untuk membaca data dari port input

3.2.3 Kegiatan

� Peserta praktikum menulis program yang berfungsi untuk menyalakan LED

yang terhubung dengan port C PPI 8255 dengan switch yang terhubung dengan

port 1 mikrokontroler.

� Memodifikasi program untuk memahami cara kerja keypad

3.2.4 Langkah-langkah percobaan

� Hubungkan Port 1 DT-51 MinSys dengan “Port Input” DT-51 Trainer Board,

menggunakan kabel tipe Y.

� Hubungkan Port C 8255 pada DT-51 MinSys dengan “ Port Output” DT-51

Trainer Board, menggunakan kabel tipe Y.

� Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

� Hubungkan DT-51 MinSys dengan sumber tegangan.

Page 15: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

� Ketikkan program berikut ini, pada editor program, kemudian compile dan

download ke DT-51 MinSys, dan amati hasilnya.

Program I.

$mod51 CSEG ORG 4000H LJMP START ORG 4100H START: MOV SP, #30H INIT: MOV DPTR, #2003H MOV A, #80H MOVX @DPTR, A LABEL1: JB P1.4, DISPLAY DISPLAY2: MOV DPTR, #2002H MOV A, #00H MOVX @DPTR, A SJMP LABEL1 DISPLAY: MOV DPTR, #2002H MOV A, #10H MOVX @DPTR, A SJMP LABEL1 END

3.2.5 Tugas

� Modifikasi program sehingga semua switch bisa dipakai untuk menyalakan

masing-masing LED sesuai dengan urutan bit. Sebagai contoh switch 1 untuk

menyalakan atau mematikan Led 1, switch 2 untuk menyalakan atau mematikan

Led 2, dan seterusnya.

Page 16: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

3.2. Percobaan PPI port sebagai output

3.2.1 Tujuan Instruksional Umum

Setelah praktikum selesai dilaksanakan peserta harus dapat:

� Memahami cara membaca dan menulis data port PPI

3.2.2 Tujuan Instruksional Khusus

Peserta harus dapat:

� Membuat program untuk membaca dan menulis data dari PPI

3.2.3 Pendahuluan

PPI port merupakan port ekspansi (tambahan) yang terdiri dari tiga port (Port A,

Port B dan Port C). Port A berada pada alamat 2000h, Port B berada pada alamat

2001h, dan Port C berada pada alamat 2002h. Masing-masing port tersebut

memiliki jalur data input dan output selebar 8 bit.

Penggunaan PPI Port pada 82C55 tidak sesederhana penggunaan Port 1 pada

89C51. Untuk menggunakan PPI Port harus didahului dengan proses inisialisasi.

Proses inisialisasi dilakukan dengan menggunakan Control Word yang berada pada

alamat 2003h. Control Word menentukan port mana yang aktif dan mode mana

yang digunakan pada Port A, Port B, Port C PPI.

Page 17: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Berikut ini penjelasan nilai Control Word untuk inisialisasi :

MSB LSB

D7 D6 D5 D4 D3 D2 D1 D0

Simbol Fungsi

D7 Set flag, berlogika ‘1’ untuk mengaktifkan PPI Port

D6 & D5 Mode Select untuk Port A dan C Upper (bit7 – bit4), bernilai ‘00’

untuk mode 0, ‘01’ untuk mode 1, dan ‘10’ atau ‘11’ untuk mode 2.

Praktikum ini hanya menggunakan mode 0 sehingga nilainya selalu

‘00’.

D4 Port A, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk output.

D3 Port C Upper, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk

output.

D2 Mode Select untuk Port B dan C Lower (bit 3 – bit 0), berlogika ‘0’

untuk mode 0 dan berlogika ‘1’ untuk mode 1. Praktikum ini hanya

menggunakan mode 0 sehingga selalu berlogika ‘0’.

D1 Port B, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk output.

D0 Port C Lower, berlogika ‘1’ untuk input dan berlogika ‘0’ untuk

output

Setelah proses inisialisasi dilakukan , PPI Port dapat diakses per byte.

3.2.4 Langkah-langkah Percobaan

� Hubungkan Port A DT-51 MinSys dengan “ Port Output” DT-51 Trainer Board

menggunakan kabel tipe Y.

� Ketikkan program berikut ini, compile dan download ke DT-51 MinSys, dan amati

hasilnya.

Page 18: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Program PPI Sebagai Output

$mod51 CSEG ORG 4000H LJMP START ORG 4100H START: MOV SP,#30H ;inisialisasi PPI MOV DPTR,#2003H MOV A,#80H MOVX @DPTR,A ;port A MOV DPTR,#2000H MOV A,#0CFH MOVX @DPTR,A SJMP $ END

Amati hasilnya dan bandingkan denga isi table berikut ini

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

ON ON Off Off ON ON ON ON

Ket: Untuk menggunakan Port A sebagai output maka D4 berlogika ‘0’ dan set flag

berlogika ‘1’ sehingga control word bernilai ‘10000000’ atau ‘80h’.

3.2.5 Tugas

Buat program untuk menampilkan LED di port B dengan kondisi sbb:

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Off Off ON ON ON ON Off Off

Page 19: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

3.3. Percobaan PPI port sebagai Input

3.3.1. Langkah-langkah Percobaan

� Hubungkan Port C DT-51 MinSys dengan “ Port Input” DT-51 Trainer Board

menggunakan kabel tipe Y.

� Ketikkan program berikut ini, compile dan download ke DT-51 MinSys, dan amati

hasilnya.

Program PPI Sebagai Input

$mod51 PORTC EQU 2002H CW EQU 2003H CSEG ORG 4000H LJMP START ORG 4100H START: MOV SP,#30H ;inisialisasi MOV DPTR,#CW MOV A,#89H MOVX @DPTR,A ;port C LOOP: MOV DPTR,#PORTC MOVX A,@DPTR MOV P1,A SJMP LOOP END

Jika tidak ada kesalahan, program tersebut akan menampilkan nyala LED pada bit

sesuai dengan bit toggle switch yang berlogika ‘1’.

Ket: Untuk menggunakan Port C sebagai input maka D3 dan D0 berlogika ‘1’ dan

set flag berlogika ‘1’ shg control word bernilai ‘10001001’ atau 89h.

3.3.2. Tugas

Buatlah program untuk menampilkan LED di port 1 dengan toggle switch di port A

Page 20: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

BAB IV

LCD (Liquid Crystal Display)

4.1 Tujuan Instruksional Umum

Setelah praktikum selesai dilaksanakan peserta harus dapat:

� Memahami cara menampilkan data/tulisan ke LCD

4.2 Tujuan Instruksional Khusus

Peserta harus dapat:

� Membuat program untuk menampilkan data/tulisan ke LCD

4.3 Pendahuluan

LCD yang dipergunakan pada module ini adalah LCD tipe M1632 yaitu sebuah

LCD dot matrix16X2 baris dengan konsumsi daya rendah. Adapun fasilitas yang

dimiliki meliputi :

� 16 karakter, 2 baris LCD dot matrik 5X7 + cursor

� Karakter generator ROM untuk 192 karakter

� Data RAM Display maksimum 80 karakter

� Memungkinkan antarmuka dengan 4 bit data atau 8 bit data

� Memiliki beberapa instruksi :

o Display clear

o Cursor home

o Display ON/OFF

o Cursor ON/OFF

o Display Character Blink

Page 21: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

o Cursor Shift

o Display Shift

� + 5V single power supply

Tabel 4.1.

Fungsi Terminal

Nama

Signal

No.

Terminal

I/O Tujuan Fungsi

DB0-

DB3

4 I/O MPU Data bus 4 bit bawah (tristate bi-

directional): Bus data ini dipakai

untuk membaca atau menulis data.

Jika interface data menggunakan 4 bit

maka signal ini tidak digunakan.

DB4-

DB7

4 I/O MPU Data bus 4 bit atas (tristate bi-

directional): Bus data ini dipakai

untuk membaca atau menulis data.

DB7 juga digunakan untuk busy flag.

E 1 I MPU

Enable Signal

Signal untuk mengaktifkan tulis data

atau baca data

R/W 1 I MPU Signal pemilih mode read atau write

0 : write

1 : read

RS 1 I MPU Register selection signal

0 : Instruction register (read)

1 : Data register (write and read)

Page 22: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Gambar 4.1.

Rangkaian LCD

4.4 Langkah-langkah percobaan

� Pastikan koneksi ke PC sudah benar.

� Ketikkan program berikut ini, pada editor program.

� Lakukan kompilasi dan download program ke modul praktikum dan jalankan

program.

Page 23: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

$MOD51 $TITLE(TESLCD) ;----------------------------- ;Procedure Address ;----------------------------- Write EQU 0700H InitLCD EQU 0740H CommandLCD EQU 07B0H WriteLCD EQU 07D0H ReadLCD EQU 07F0H ReadAddrLCD EQU 0820H SetDDRAM EQU 0850H SetCGRAM EQU 0870H ;----------------------- ;LCD Command ;----------------------- DisplayClear EQU 01H CursorHome EQU 02H ShiftCursorRight EQU 14H ShiftCursorLeft EQU 10H ShiftDisplayRight EQU 1CH ShiftDisplayLeft EQU 18H DShiftCursorInc EQU 07H DShiftCursorDec EQU 05H CSEG ORG 4000H LJMP Start ORG 4100H LDelay: PUSH 02H PUSH 03H MOV R2,#0FFH Del1: MOV R3,#0FFH DJNZ R3,$ DJNZ R2,Del1 POP 03H POP 02H RET Start: MOV SP,#40H MOV P1,#0FFH

Page 24: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

LCALL InitLCD ; ---------------------------- ; Make New Pattern ; ---------------------------- MOV A,#00H LCALL SetCGRAM MOV A,#00011111B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00000100B LCALL WriteLCD MOV A,#00000100B LCALL WriteLCD MOV A,#00000100B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00000000B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00011000B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00011000B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00011111B LCALL WriteLCD MOV A,#00000000B LCALL WriteLCD ; ------------------------ ; Display at Line1 ; ------------------------ MOV A,#00H LCALL SetDDRAM MOV A,#00H LCALL WriteLCD MOV A,#' ' LCALL WriteLCD MOV A,#' ' LCALL WriteLCD

Page 25: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

MOV A,#'I' LCALL WriteLCD MOV A,#'N' LCALL WriteLCD MOV A,#'N' LCALL WriteLCD MOV A,#'O' LCALL WriteLCD MOV A,#'V' LCALL WriteLCD MOV A,#'A' LCALL WriteLCD MOV A,#'T' LCALL WriteLCD MOV A,#'I' LCALL WriteLCD MOV A,#'V' LCALL WriteLCD MOV A,#'E' LCALL WriteLCD ; ------------------------ ; Display at Line2 ; ------------------------ MOV A,#41H LCALL SetDDRAM MOV A,#01H LCALL WriteLCD MOV A,#' ' LCALL WriteLCD MOV A,#'E' LCALL WriteLCD MOV A,#'L' LCALL WriteLCD MOV A,#'E' LCALL WriteLCD MOV A,#'C' LCALL WriteLCD MOV A,#'T' LCALL WriteLCD MOV A,#'R' LCALL WriteLCD MOV A,#'O' LCALL WriteLCD MOV A,#'N' LCALL WriteLCD MOV A,#'I' LCALL WriteLCD MOV A,#'C' LCALL WriteLCD

Page 26: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

MOV A,#'S' LCALL WriteLCD ; ------------------------------------- ; Shift display right and left ; ------------------------------------- MOV R5,#10 EE: MOV R6,#2 BB: MOV A,#ShiftDisplayRight LCALL CommandLCD LCALL LDelay DJNZ R6,BB MOV R6,#2 CC: MOV A,#ShiftDisplayLeft LCALL CommandLCD LCALL LDelay DJNZ R6,CC DJNZ R5,EE AJMP $ END

4.5 Tugas

� Modifikasi program diatas untuk menampilkan tulisan yang anda kehendaki.

Page 27: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

BAB V

KOMUNIKASI SERIAL

5.1. Tujuan Instruksional Umum

Setelah praktikum selesai dilaksanakan peserta harus dapat:

� Memahami cara kerja pengiriman dan penerimaan data melalui port serial

5.2. Tujuan Instruksional Khusus

Peserta harus dapat:

� Membuat program untuk mengirim dan menerima data secara serial

5.3. Kegiatan

� Peserta praktikum menulis program yang berfungsi untuk mengirim data

melalui port serial.

� Memodifikasi program untuk mengirim paket data secara serial.

5.4. Pendahuluan

ATMEL AT89C51 mempunyai On Chip Serial Port yang dapat digunakan untuk

komunikasi data serial secara Full Duplex sehingga Port Serial ini masih dapat

menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang

diterima atau data yang akan dikirimkan, AT89C51 mempunyai sebuah register yaitu

SBUF yang terletak pada alamat 99H di mana register ini berfungsi sebagai buffer

sehingga pada saat mikrokontroler ini membaca data yang pertama dan data kedua

belum diterima secara penuh, maka data ini tidak akan hilang.

Page 28: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Pada kenyataannya register SBUF terdiri dari dua buah register yang memang

menempati alamat yang sama yaitu 99H. Register tersebut adalah Transmit Buffer

Register yang bersifat write only (hanya dapat ditulis) dan Receive Buffer Register

yang bersifat read only (hanya dapat dibaca). Pada proses penerimaan data dari Port

Serial, data yang masuk ke dalam Port Serial akan ditampung pada Receive Buffer

Register terlebih dahulu dan diteruskan ke jalur bus internal pada saat pembacaan

register SBUF sedangkan pada proses pengiriman data ke Port Serial, data yang

dituliskan dari bus internal akan ditampung pada Transmit Buffer Register terlebih

dahulu sebelum dikirim ke Port Serial.

Gambar 5.1

Blok Diagram Port Serial

Port Serial AT89C51 dapat digunakan untuk komunikasi data secara sinkron

maupun asinkron Komunikasi data serial secara sinkron adalah merupakan bentuk

komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi di mana

sinyal clock tersebut akan tersulut pada setiap bit pengiriman data sedangkan

komunikasi asinkron tidak memerlukan sinyal clock sebagai sinkronisasi. Pengiriman

data pada komunikasi serial AT89C51 dilakukan mulai dari bit yang paling rendah

(LSB) hingga bit yang paling tinggi (MSB).

Page 29: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

5.5. Komunikasi Asinkron

Seperti telah disebutkan sebelumnya, komunikasi asinkron tidak memerlukan

sinyal clock sebagai sinkronisasi, namun pengiriman data ini harus diawali dengan

start bit dan diakhiri dengan stop bit seperti yang tampak pada gambar 3.2. Sinyal

clock yang merupakan baud rate dari komunikasi data ini dibangkitkan oleh masing-

masing baik penerima maupun pengirim data dengan frekwensi yang sama.

Penerima hanya perlu mendeteksi adanya start bit sebagai awal pengiriman data,

selanjutnya komunikasi data terjadi antar dua buah shift register yang ada pada

pengirim maupun penerima. Setelah 8 bit data diterima, maka penerima akan

menunggu adanya stop bit sebagai tanda bahwa 1 byte data telah terkirim dan

penerima dapat siap untuk menunggu pengiriman data berikutnya.

Gambar 5.2

Komunikasi UART

Pada aplikasinya proses komunikasi asinkron ini selalu digunakan untuk mengakses

komponen-komponen yang mempunyai fasilitas UART (Universal Asynchronous

Receiver/Transmitter) seperti Port Serial PC atau Port Serial mikrokontroler yang lain.

Page 30: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

5.4 Mode Operasi Port Serial

Port Serial AT89C51 mempunyai 4 buah mode operasi yang diatur oleh bit ke 7 dan

bit ke 5 dari Register SCON (Serial Control).

Gambar 5.3.

Register SCON

SM0: Serial Port Mode bit 0, bit Pengatur Mode Serial

SM1: Serial Port Mode bit 1, bit Pengatur Mode Serial

SM2: Serial Port Mode bit 2, bit untuk mengaktifkan komunikasi multiprosesor pada

kondisi set.

REN: Receive Enable, bit untuk mengaktifkan penerimaan data dari Port Serial pada

kondisi set. Bit ini di set dan clear oleh perangkat lunak.

TB8: Transmit bit 8, bit ke 9 yang akan dikirimkan pada mode 2 atau 3. Bit ini di set

dan clear oleh perangkat lunak

RB8: Receive bit 8, bit ke 9 yang diterima pada mode 2 atau 3. Pada Mode 1 bit ini

berfungsi sebagai stop bit.

TI: Transmit Interrupt Flag, bit yang akan set pada akhir pengiriman karakter. Bit ini

diset oleh perangkat keras dan di clear oleh perangkat lunak

RI: Receive Interrupt Flag, bit yang akan set pada akhir penerimaan karakter. Bit ini

diset oleh perangkat keras dan di clear oleh perangkat lunak

Page 31: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Tabel 5.1.

Mode komunikasi

Mode 1 UART 8 bit dengan Baud Rate yang dapat diatur SCON

Pada mode ini komunikasi data dilakukan secara 8 bit data asinkron yang terdiri

10 bit yaitu 1 bit start, 8 bit data dan 1 bit stop. Baud Rate pada mode ini dapat diatur

dengan menggunakan Timer 1. Tidak seperti pada mode 0, pada mode ini yang

merupakan mode UART, fungsi-fungsi alternatif dari P3.0/RXD dan P3.1/TXD

digunakan. P3.0 berfungsi sebagai RXD yaitu kaki untuk penerimaan data serial dan P3.1

berfungsi sebagai TXD yaitu kaki untuk pengiriman data serial. Hal ini juga berlaku pada

mode-mode UART yang lain seperti mode 2 dan mode 3.

Pengiriman data dilakukan dengan menuliskan data yang akan dikirim ke Register SBUF.

Data serial akan digeser keluar diawali dengan bit start dan diakhiri dengan bit stop

dimulai dari bit yang berbobot terendah (LSB) hingga bit berbobot tertinggi (MSB). Bit

TI akan set setelah bit stop keluar melalui kaki TXD yang menandakan bahwa proses

pengiriman data telah selesai. Bit ini harus di-clear oleh perangkat lunak setelah

pengiriman data selesai.

Penerimaan data dilakukan oleh mikrokontroler dengan mendeteksi adanya perubahan

kondisi dari logika high ke logika low pada kaki RXD di mana perubahan kondisi tersebut

Page 32: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

adalah merupakan bit start. Selanjutnya data serial akan digeser masuk ke dalam SBUF

dan bit stop ke dalam bit RB8. Bit RI akan set setelah 1 byte data diterima ke dalam

SBUF kecuali bila bit stop = 0 pada komunikasi multiprosesor (SM2 = 1).

Menetukan Baud Rate

dimana K adalah konstanta bernilai 1 bila SMOD = 0 dan bernilai 2 bila SMOD=1

contoh:

menentukan isi Timer TH1 untuk baud rate=9600

x-tal yang dipasang = 11059200Hz, SMOD=0, maka

SMOD berada pada register PCON bit ke 7. Karena register PCON tidak bisa dialamati

per bit maka untuk menjadikan SMOD menjadi logika ‘1’ dapat dilakukan dengan cara

menuliskan instruksi : ORL PCON,#80H

5.5 Langkah-langkah percobaan

� Hubungkan Port 1 DT-51 MinSys dengan “Port Output” DT-51 Trainer Board

menggunakan kabel tipe Y.

� Hubungkan DT-51 MinSys dengan PC menggunakan kabel serial.

� Hubungkan DT-51 MinSys dengan sumber tegangan.

� Ketik program dibawah ini dan download ke DT-51.

� Bukalah program Hyper Terminal dan aturlah kecepatan 19200 bps.

� Amati hasilnya.

Page 33: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Program :

$mod51 CSEG ORG 4000H LJMP START ;interrupt pengiriman ORG 4023H CLR TI CJNE A, #39H, PLUS MOV A, #30H SJMP EXIT PLUS: INC A EXIT: RETI DELAY: MOV R7, #0FFH LUP: MOV R6, #0FFH DJNZ R6, $ DJNZ R7, LUP RET START: MOV SP, #30H CLR ET1 ;Serial berada pada mode 1 dengan REN = 0 MOV SCON, #40H ;inisialisasi baud rate (19200 bps) MOV TMOD, #20H MOV TL1, #0FDH MOV TH1, #0FDH MOV PCON, #80H SETB TR1 SETB ES SETB EA MOV A, #30H ULANG:MOV SBUF, A LCALL DELAY SJMP ULANG END

Page 34: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Gambar 5.4.

Hasil pengiriman data pada Hyper Terminal

5.6. Tugas

� Ubahlah data yang dikirimkan

Page 35: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

BAB VI

TIMER

6.1. Pendahuluan

Mikrokontroler AT89C51 memiliki dua buah timer, masing-masing diberi nama

Timer 0 dan Timer 1. Clock input dari kedua Timer ini diperoleh dari frequensi X-

TAL yang terpasang dibagi 12. Kedua timer bisa dipakai untuk meng-interrupt

program dengan selang waktu yang bisa dihitung dengan rumus:

a. Bila dipakai sebagai timer 8 bit maka rumusnya :

T = ( 256 - TLx ) * 1/(F.osc/12)

b. Bila dipakai sebagai Timer 16 bit maka rumusnya :

T = ( 65536 –THx TLx) * 1/(F.osc/12)

Dimana : THx = isi register TH1 atau TH0

TLx = isi register TL1 atau TL0

Timer mempunyai beberapa mode yang bisa ditentukan dengan kombinasi bit M0

dan M1 pada register TMOD sebagai berikut :

Page 36: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Tabel 6.1

Mode Timer

Mode M1 M0 Operasi

0 0 0 Timer 13 bit

1 0 1 Timer 16 bit

2 1 0 Timer auto reload 8 bit

3 1 1 TL0 = timer 8 bit yang dikontrol oleh bit timer 0

TH0 = timer 8 bit yang dikontrol oleh bit timer 1

Timer 1 = stop

Pemilihan mode ini bisa dilakukan dengan cara mengisi register TMOD sbb:

Gate C/T M1 M0 Gate C/T M1 M0

Keterangan:

Gate : Bila bit ini berlogika satu, maka Timer akan berjalan bila kaki INT1 berlogika

‘1’/High

C/T : Bit pemilih timer atau counter yaitu ‘1’=counter dan ‘0’=timer

M1 : mode bit 1

M0 : mode bit 0

Sedangkan register yang digunakan untuk mengontrol timer adalah register TCON

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Keterangan:

TF1 : Timer 1 overflow flag (diset oleh hardware)

TR1 : Timer 1 on/off (diset / clear oleh software)

TF0 : Timer 0 overflow flag

TR0 : Timer 0 ON / OFF

Page 37: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

IE1 : External interrupt 1 edge flag

IT1 : Interrupt 1 type control bit

IE0 : External interrupt 0 edge flag

IT0 : Interrupt 0 type control bit

6.2 Contoh perhitungan pewaktu 50ms

Diketahui :

T=50.10-3

s

F. Oscilator = 11,0592.106Hz (Frekuensi X’tal yang dipakai DT-51)

Rumus:

T=(65536-THxTLx) * 1 / (F.Osc/12)

50.10-3

=(65536-THx.TLx) * 1 / (11,0592.106 / 12)

50.10-3

=(65536-THx.TLx) * 1 / (921600)

50.10-3

=(65536-THx.TLx) * 1,085.10-6

50.10

-3/1,085.10

-6 = (65536-THx.TLx)

46083 = (65536-THx.TLx)

THx.TLx = (65536 – 46083)

THx.TLx = 19453

THx.TLx = 4BFDH

Jadi : TH0 = 4BH dan TL0 = FDH

Page 38: Praktikum Mikrokontroller 2007

PRAKTIKUM MIKROKONTROLER

LABORATORIUM ELEKTRONIKA DIGITAL

TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

6.3 Langkah-langkah percobaan

� Pastikan koneksi ke PC sudah benar.

� Hubungkan Port 1 DT-51 MinSys dengan “Port Output DT-51 Trainer Board

menggunakan kabel tipe Y.

� Ketikkan program berikut ini, pada editor program.

� Lakukan kompilasi dan download program ke modul praktikum dan jalankan

program.

Program

$mod51 CSEG ORG 4000H LJMP START ORG 4100H START: MOV SP,#30H

MOV TMOD,#01 ULANG: MOV R0,#20 LOOP: MOV TH0,#4BH MOV TL0,#0FDH SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 CPL P1.0 DJNZ R0,LOOP CPL P1.7 SJMP ULANG END

6.4 Tugas

� Buat timer 1 detik dengan pewaktu dasar 10ms, dengan cara menghitung ulang

TH0 dan TL0 dan menentukan isi R0.