Anda di halaman 1dari 38

PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

Gambar 1-4
Tata Letak DT-51 Minimum System ver 3.3

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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


LABORATORIUM ELEKTRONIKA DIGITAL
TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

o Cursor Shift

o Display Shift

+ 5V single power supply

Tabel 4.1.

Fungsi Terminal

Nama No. I/O Tujuan Fungsi


Signal Terminal
DB0- 4 I/O MPU Data bus 4 bit bawah (tristate bi-
DB3 directional): Bus data ini dipakai
untuk membaca atau menulis data.
Jika interface data menggunakan 4 bit
maka signal ini tidak digunakan.
DB4- 4 I/O MPU Data bus 4 bit atas (tristate bi-
DB7 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)

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

$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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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


LABORATORIUM ELEKTRONIKA DIGITAL
TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

Gambar 5.4.

Hasil pengiriman data pada Hyper Terminal

5.6. Tugas

Ubahlah data yang dikirimkan

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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 :

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
PRAKTIKUM MIKROKONTROLER

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.

LABORATORIUM ELEKTRONIKA DIGITAL


TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG

Anda mungkin juga menyukai