Praktikum Mikrokontroller 2007
-
Upload
dicky-cakcuk-cuy -
Category
Documents
-
view
120 -
download
0
Embed Size (px)
Transcript of 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).

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.

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

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

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.

PRAKTIKUM MIKROKONTROLER
LABORATORIUM ELEKTRONIKA DIGITAL
TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL MALANG
Gambar 1-4
Tata Letak DT-51 Minimum System ver 3.3

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

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.

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.

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.

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.

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

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

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.

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.

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.

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.

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

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

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

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)

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.

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

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

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

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.

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.

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

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.

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

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

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.

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

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

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 :

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

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

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.