Anda di halaman 1dari 36

MODUL PRAKTIKUM MIKROPROSESOR

PRAKTIKUM
MIKROPROSESSOR

1. MIKROPROSESSOR & MIKROKONTROLLER


Istilah mikroprosessor jika diterjemahkan secara sederhana berarti sebuah
pemroses (processor) data berukuran mikro. Sedangkan mikrokontroller berarti
sebuah pengendali (controller) yang berukuran mikro. Secara umum keduanya
sama-sama memiliki kemampuan untuk pemroses data, akan tetapi
mikroprosessor memiliki kegunaan yang lebih umum /bebas. Sedangkan
mikrokontroller memiliki kegunaan yang lebih khusus, sehingga baik secara
arsitektur maupun banyaknya jumlah instruksi yang digunakan dalam
mikrikontroller lebih sedikit (disederhanakan sesuai fungsinya).
Mikrokontroller dan Mikroprosessor memiliki 3 (tiga) bagian perbedaan
utama, yaitu Hardware, Architecture, Application dan Instruction Set Features.

Perbedaan Mikroprosessor dengan Mikrokontroller :


Mikroprosessor Mikrokontroller
Dalam single chip hanya berfungsi sebagai Dalam single chip
CPU. Untuk bekerja sebagaimana fungsinya mikrokontroller terdiri dari :
Hardware

dibutuhkan komponen-komponen lain seperti CPU,ROM,RAM,I/O Port,


ROM,RAM dan I/O Port, dll. Timer/Counter dan intterupt.
Masing-masing dalam chip yang berbeda. Sehingga dapat bekerja secara
single chip.
Memiliki fungsi/kegunaan yang lebih luas. Fungsinya lebih ditekankan
Application

Mikroprosessor lebih difokuskan pada pada proses pengendali/


pemrosessan data secara umum. kontrol.
Memiliki kemampuan dalam operasi Kemampuan dalam operasi
arithmatik yang lebih luas daripada arithmatik terbatas.
mikrokontroller.
• Instruksi-instruksi pada Mikroprossesor • Instruction set
penekanannya pada pemrosesan secara Microcontroller
intensiv disediakan untuk kontrol
• Their instructions operate on nibbles, input dan output.
bytes, words, or even double words. • They have instructions to
Instruction Set

• Addressing modes provide access to large set and clear individual


arrays of data using pointers and offsets bits and perform bit
operations
• Have instructions for
input/output operations,
event timing, enabling and
setting priority levels for
interrupts caused by
external stimuli

LABE UBHARA 2007 1


MODUL PRAKTIKUM MIKROPROSESOR

Secara sistem, antara mikroprosessor dan mikrokontroller sama-sama


merupakan sebuah mikrokomputer. Keduanya merupakan perwujudan dari sebuah
komputer berukuran mikro yang terdir atas 2 (dua) piranti, yaitu Hardware dan
Software.

DT-51 Minimum System


DT-51 Minimum System merupakan sebuah modul minimum system
berbasis mikrokontroller AT89x51 (salah satu mikrokontroller keluarga MCS-
51) dengan menggunakan mode eksternal, yang memiliki spesifikasi sebagai
berikut :
o Berbasis mikrokontroller At89C51
o Memiliki ekternal memori 8KB
o Menggunakan sebuah PPI 8255 sebagai port eksternal tambahan
menggantikan Port 0, Port 2 dan Port 3 yang telah dipakai sebagai
Address Bus, Data Bus dan Control Bus. Sehingga DT-51
memiliki 4 buah PORT yaitu Port 1, Port A, Port B dan Port C.
o Disertai port-port penunjang untuk keperluan tambahan, al :
Control Port, LCD Port dan Serial Port untuk keperluan
komunikasi data serial.

Gambar 1. Diagram Blok DT-51

Blok diagram DT51 menggambarkan beberapa bagian penting dari DT51. Bagian-
bagian tersebut antara lain :
 Mikrokontroler 89C51
Mikrokontroler 89C51 adalah komponen utama dari DT51. Instruksi dan
pinout 89C51 kompatibel dengan standar industri MCS-51.
 Address Decoder

LABE UBHARA 2007 2


MODUL PRAKTIKUM MIKROPROSESOR

Address decoder memberikan alamat pada memori eksternal dan


Programmable Peripheral Interface (PPI) serta menyiapkan beberapa
alamat lagi untuk device-device lain bila ditambahkan.
 Memori Eksternal
Selain PEROM dan internal RAM yang terdapat pada 89C51, DT51 juga
mempunyai memori eksternal berjenis EEPROM (Electrically Erasable
Programmable Read Only Memory) dengan kapasitas 8 Kbytes untuk
menyimpan 'user program' yang didownload dari PC atau data.

 Programmable Peripheral Interface (PPI)


PPI berfungsi sebagai I/O Expander yang dapat diprogram. PPI yang
digunakan mempunyai 24 bit jalur input output yang dapat dihubungkan
dengan peralatan atau device lain. 24 bit I/O ini dibagi menjadi 3 port
yaitu Port A, Port B, dan Port C.
 TTL RS 232 Converter
DT51 berkomunikasi dengan PC secara serial. Proses download dan
debugging dilakukan melalui serial port. 89C51 mempunyai sebuah
serial port dengan level standar TTL. Supaya bisa
berkomunikasi dengan serial port PC (COM1/COM2) yang mempunyai
level standar RS-232, maka diperlukan Konverter Level TTL RS
232.
 LCD Port
LCD (Liquid Crystal Display) Port ini disiapkan untuk men-drive LCD
melalui Port 1 mikrokontroler 89C51. Rutin untuk keperluan LCD
sudah tersedia pada PEROM 89C51 (internal memori) sehingga user
tinggal memakainya.
 Data, Address, dan Control Bus
DT51 mempunyai data bus dengan lebar 8 bit, serta address bus 16 bit.
Sedangkan control bus yang digambarkan pada blok diagram DT51
terdiri dari beberapa sinyal kontrol, antara lain : RD, WR, PSEN, ALE,
serta chip select yang dihasilkan oleh address decoder.

Mapping Memory
Untuk dapat melakukan pemrograman pada DT-51 Minimum Sistem,
diperlukan pemahaman tentang pemetaan memori (mapping memori). Peta
Memori DT-51 menunjukkan alamat masing-masing bagian komponen seperti
yang tercantum pada gambar berikut :

LABE UBHARA 2007 3


MODUL PRAKTIKUM MIKROPROSESOR

Gambar 2. Mapping Memory DT-51 Minimum System


Pada DT-51 minimum sistem, memori internal mikrokontroller
AT89C51 telah dipakai untuk keperluan penyimpanan kode kernel. Sehingga
dalam pembuatan program harus diawali pada alamat memori 4000h yaitu
pada eksternal memori karena pada alamat ini program rancangan akan
disimpan.
Demikian juga untuk keperluan akses eksternal port PPI8255, alamat
yang diberikan harus mengikuti data mapping memori.

LABE UBHARA 2007 4


MODUL PRAKTIKUM MIKROPROSESOR

AKSES I/O PORT

A. TUJUAN
Memahami perangkat keras (hardware) sistem mikrokontroller
Mempelajari teknik perancang perangkat lunak (software)
mikrokontroller MCS-51.
Implementasi teknik pemrograman MCS-51 dalam akses input-output
melalui port pada mikrokontroller baik secara addressable bit maupun
akses data word dalam sebuah port.

B. TEORI DASAR

PORT pada Mikrokontroller MCS-51


Mikrokontroller mcs-51 memiliki 4 buah port, yaitu Port 0, Port 1, Port
2, dan Port3, dimana masing-masing port tersebut terdiri dari 8 bit data dan
dapat digunakan untuk mengakses data input / output baik secara addressable
bit (akses data per bit) maupun secara word (8 bit).

 PORT 0
Port 0 merupakan salah satu port yang berfungsi sebagai general
purpose I/O. Port 0 terdiri dari P0.0, P0.1 S/D P0.7, yang masing-masing
dapat diakses sebagai input/output secara addressable bit. Selain sebagai jalur
I/O, Port 0 juga berfungsi sebagai multiplexed address / data bus jika sistem
hardware menggunakan akses memori ekternal ataupun I/O ekternal.

 PORT 1
Port 1 merupakan salah satu port yang berfungsi sebagai general
purpose I/O. Port 1 terdiri dari P1.0, P1.1 S/D P1.7, yang masing-masing
dapat diakses sebagai input/output secara addressable bit. Port 1 tidak
memiliki fungsi lain seperti Port 0 meskipun implementasi sistem
menggunakan ekternal memori ataupun I/O.

 PORT 2
Port 2 merupakan salah satu port yang berfungsi sebagai general
purpose I/O. Port 2 terdiri dari P2.0, P2.1 S/D P2.7, yang masing-masing
dapat diakses sebagai input/output secara addressable bit. Selain sebagai jalur
I/O, Port 2 juga berfungsi sebagai high byte adressable bus.

 PORT 3
Port 3 merupakan salah satu port yang berfungsi sebagai general
purpose I/O. Port 3 terdiri dari P3.0, P3.1 S/D P3.7, yang masing-masing

LABE UBHARA 2007 5


MODUL PRAKTIKUM MIKROPROSESOR

dapat diakses sebagai input/output secara addressable bit. Port 3 juga memiliki
fungsi-fungsi khusus seperti ditunjukkan pada tabel dibawah ini :

Tabel 1. Fungsi lain dari Port 3


Bit Alamat Nama Fungsi Lain
Bit
P3.0 0B0 H RXD Jalur penerimaan data pada komunikasi
serial
P3.1 0B1 H TXD Jalur pengiriman data pada komunikasi
serial
P3.2 0B2 H /INT0 Eksternal Interrupt 0
P3.3 0B3 H /INT1 Eksternal Interrupt 1
P3.4 0B4 H T0 Timer / Counter 0
P3.5 0B5 H T1 Timer / Counter 1
P3.6 0B6 H /WR Ekternal data memori Write Strobe
P3.7 0B7 H /RD Ekternal data memori Read Strobe

Penggunaan Port 0, Port 2 dan Port 3 sebagai Jalur Ekspansi


Untuk Port 0, Port 2 dan Port 3 pada mikrokontroller MCS-51 dapat
digunakan untuk keperluan ekspansi memori eksternal ataupun I/O ekternal.
Dimana masing-masing port tersebut digunakan sebagai berikut :
 Port 0 : sebagai jalur Data Bus (D0 – D7) sekaligus sebagai
Address Bus (A0 – A7).
 Port 2 : sebagai high byte address bus (A8 – A15).
 Port 3 : sebagai jalur Control Bus. P3.6 dan P3.7 masing-masing
sebagai /WR dan /RD.

Gambar 3. Koneksi MCS-51 dengan Eksternal Memori Data

LABE UBHARA 2007 6


MODUL PRAKTIKUM MIKROPROSESOR

Gambar 2. Koneksi MCS-51 dengan Eksternal Memori Program.

Gambar 4. Address Decoding

Port PPI 82C55


PPI Port merupakan port ekspansi (tambahan) yang terdiri dari 3 (tiga)
port , yaitu Port A, Port B dan Port C masing-masing 8 bit data. Pada modul
mikrokontroller DT-51 Minimum System masing-masing port tersebut
ditempatkan pada alamat :
PORT A = 2000h
PORT B = 2001h
PORT C = 2002h
ControlRegister = 2003h

Pada penggunaan port pada PPI8255 tidak sesederhana penggunaan


Port 1 (P1) pada AT8951. untuk penggunaan port pada PPI harus diawalai
dengan proses inisialisasi. Proses inisialisasi dilakukan dengan memberikan
data Control Word pada Port Control Register dengan alamat 2003h. control
word menentukan port mana yang aktif sebagai input /output dan mode apa
yang digunakan pada PPI.
Berikut penjelasan tentang control word :
MSB LSB
D7 D6 D5 D4 D3 D2 D1 D0

Data 8 bit pada control word memiliki fungsi-fungsi sebagai berikut :


Symbol Fungsi
D7 Set Flag, berlogika “1” untuk mengaktifkan PPI port
D6,D5 Mode Select, untuk Port A dan Port C upper (PC7-PC4)
bernilai 00 = mode 0; bernilai 01 = mode 1; bernilai 10 atau 11 =
mode 2
D4 Port A, jika diset “1” sebagai Input; diset “0” sebagai Output
D3 Port C upper, jika diset “1” sebagai Input; diset “0” sebagai Output
D2 Mode Select, untuk Port B dan Port C lower (PC3-PC0)
bernilai “0” = mode 0; bernilai “1” = mode 1

LABE UBHARA 2007 7


MODUL PRAKTIKUM MIKROPROSESOR

D1 Port B, jika diset “1” sebagai Input; diset “0” sebagai Output
D0 Port C lower, jika diset “1” sebagai Input; diset “0” sebagai Output

C. PERANGKAT YANG DIGUNAKAN

1. HARDWARE :
a. Modul DT-51
b. DT-51 Trainer Kit
c. Komputer
2. SOFTWARE :
a. ASM51
b. Downloader DT-51
c. Instruksi :
SETB, CLR, MOV, MOVX, JB, JNB, JC, JNC, CJNE, SJMP,
LJMP, ACALL, LCALL

D. TUGAS PENDAHULUAN
1. Jelaskan perbedaan sistem mikrokontroller MCS-51 dalam mode single
chip dan mode eksternal !
2. Apa yang dimaksud dengan Address Bus, Data Bus dan Control Bus
dalam sistem mikrokontroller
3. Apa kegunaan sistem decoding address pada sistem mikrokontroller ?
4. Jelaskan tentang Memory Map dan kegunaannya dalam implementasi
sistem mikrokontroller.
5. Rancanglah sebuah sistem decoding address jika pada sistem
mikrokontroller digunakan sebuah IC Memory 2864 (8K) dan sebuah PPI
8255 dengan pengalamatan sebagai berikut :
- PPI 82C55 = 2000h – 3FFFh
- Memori 28C64 = 4000h – 5FFFh
6. Jelaskan fungsi instruksi-instruksi berikut :
SETB, CLR, MOV, MOVX, JB, JNB, JC, JNC, CJNE, SJMP,
LJMP, ACALL, LCALL, RR, RL
7. Buatlah flowcart dari algoritma sebuah program sebagai berikut :
- Baca penekanan tombol START (S), jika S = 1 ,maka tidak ada
program yang dijalankan dan proses pembacaan tombol akan
diulang.
- Jika S = 0, baca penekanan tombol CONTROL (C), jika C = 0
maka prosedur program akan menjalankan nyla lampu LED untuk
bergerak kekanan. Dan jika C = 1 maka maka nyala LED akan
bergerak kekiri.
- Program akan berjalan secara terus menerus hingga tombol S
kembali pada posisi S = 1.
8. Dari soal no.7. buat dalam bentuk rancangan program assembly mcs-51,
dengan assumsi sebagai berikut :
- tombol START (S) = Port 1.0
- tombol CONTROL (C) = Port 1.1
- output untuk displai LED = Port A menggunakan PPI 82C55

LABE UBHARA 2007 8


MODUL PRAKTIKUM MIKROPROSESOR

9. Buatlah prosedur insialisasi PPI82C55 untuk port a digunakan sebagai


input dan port b sebagai output dalam instruksi MCS-51!

Catatan :
- Tugas pendahulua dikerjakan sebagai persyaratan mengikuti Praktikum yang akan
diadakan.
- Jika tugas pendahuluan tidak dikerjakan, maka dianggap tidak memenuhi persyaratan
untuk mengikuti praktikum.
- Tugas Pendahuluan dikumpulkan pada masing-masing assisten praktikum yang akan
mendampingipelaksanaan praktek.
- sumber referensi : (“PANDUAN DASAR MIKROKONTROLLER KELUARGA
MCS-51”,Innovative Electronic,2004) dan (“PANDUAN PRAKTIKUM DASAR
MIKROKONTROLLER KELUARGA MCS-51menggunakan DT-51 Minimum
System dan Trainer Board”, Innovative Electronic,2004)

E. PERCOBAAN

PERCOBAAN 1 :
1. Hubungkan Port 1 DT-51 MinSys
dengan “Port Output” DT-51 Trainer Board.
2. Hubungkan “Control” DT-51
MinSys dengan “Control “ DT-51 Trainer Board.
3. Hubungkan DT-51 MinSys dengan
PC melalui jalur komunikasi serial (COM).
4. Hubungkan DT-51 MinSys dengan
power suplai.
5. Ketiklah program berikut
menggunakan NOTEPAD dan simpan dengan ekstension .ASM, assemble
dengan program ASM51, dan download ke DT-51 MinSys, dan amati
hasilnya :
;Program 1a
$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

LABE UBHARA 2007 9


MODUL PRAKTIKUM MIKROPROSESOR

6. SP dipindah ke 30H karena alamat-alamat sebelumnya dipakai untuk


keperluan lain sebagai pendukung DT-51 MinSys.
7. Dalam kondisi running amati hasilnya dan isilah tabel berikut :
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

8. Lakukan sedikit perubahan pada program diatas seperti program dibawah


ini :

;Program 1b
$mod51
CSEG CLR P1.0
ORG 4000H SETB P1.1
LJMP START CLR P1.2
SETB P1.3
ORG 4100H CLR P1.4
START: CLR P1.5
MOV SP, #30H CLR P1.6
Loop: SETB P1.0 CLR P1.7
CLR P1.1 SJMP Loop
SETB P1.2 Delay:
CLR P1.3 DJNZ R7,Delay
SETB P1.4 DJNZ R6,Delay
SETB P1.5 RET
SETB P1.6
SETB P1.7 END
ACALL Delay

9. Jalankan program diatas seperti prosedur sebelumnya dan amati hasilnya.


10. Jelaskan bagaimana instruksi ACALL, DJNZ dan RET bekerja.
11. Dengan merubah instruksi SJMP Loop menjadi SJMP $ , apa yang
terjadi ? Jelaskan bagaimana instruksi SJMP $ mempengaruhi jalannya
program diatas !
12. Jika instruksi $mod51 pada listing program diatas ditiadakan, apa yang
terjadi ? Jelaskan fungsi dari instruksi $mod51.
PERCOBAAN 2 :

1. Hubungkan Port 1 DT-51 MinSys dengan “Port Input” DT-51 Trainer


Board.
2. Hubungkan Port A DT-51 MinSys dengan “Port Output” DT-51 Trainer
Board.
3. Hubungkan “Control” DT-51 MinSys dengan “Control “ DT-51 Trainer
Board.
4. Hubungkan DT-51 MinSys dengan PC melalui jalur komunikasi serial
(COM).
5. Hubungkan DT-51 MinSys dengan power suplai.
6. Ketiklah program berikut ini, assemble, dan download ke DT-51 MinSys,
dan amati hasilnya :

;Program 2
$mod51 START:
CSEG MOV SP, #30H

LABE UBHARA 2007 10


MODUL PRAKTIKUM MIKROPROSESOR

ORG 4000H JB P1.0,START


LJMP START LOOP: JNB P1.1,LEDR
ACALL LEDL
PORTA EQU 2000H JNB P1.0,LOOP
PORTB EQU 2001H SJMP START
PORTC EQU 2002H LEDR:
CNTRL EQU 2003H RR A
MOV DPTR,#PORTC
ORG 4100H MOVX @DPTR,A
ACALL DELAY
DELAY: RET
DNJZ R7,DELAY LEDL:
DNJZ R6,DELAY RL A
RET MOV DPTR,#PORTC
MOVX @DPTR,A
INITPPI: ACALL DELAY
MOV DPTR,#CNTRL RET
MOV A,#89H
MOVX @DPTR,A END
RET

7. Amati hasil running program diatas !


8. Bandingkan dengan tugas pendahuluan no.7 dan 8 ! sesuaikan program
diatas untuk menyelesaikan permasalahan tersebut.

PERCOBAAN 3 :

1. Hubungkan Port A DT-51 MinSys dengan “DATA 7S” DT-51 Trainer


Board.
2. Hubungkan Port B DT-51 MinSys dengan “I/P S KEY” DT-51 Trainer
Board.
3. Hubungkan Port C DT-51 MinSys dengan “Port Input” DT-51 Trainer
Board.
4. Hubungkan “Control” DT-51 MinSys dengan “Port Control “ DT-51
Trainer Board.
5. Hubungkan DT-51 MinSys dengan PC melalui jalur komunikasi serial
(COM).
6. Hubungkan DT-51 MinSys dengan power suplai.
7. Ketiklah program 3, assemble, dan download ke DT-51 MinSys.
8. Jalankan program diatas dan operasikan saklar input pada trainer board.
Amati perubahan data tampilan sevent segment.
9. Jelaskan fungsi dari instruksi MOVC A,@A+DPTR pada program
diatas !

;Program 3 START:
$mod51 MOV SP, #30H
CSEG ACALL INITPPI
ORG MOV DPTR,#PORTB
4000H MOV A,#80H ;SEGMENT_1
LJMP MOVX @DPTR,A

LABE UBHARA 2007 11


MODUL PRAKTIKUM MIKROPROSESOR

START MOV A,P1


CJNE A,#10,LOP
PORTA EQU 2000H LOP: JNC START
PORTB EQU 2001H MOV DPTR,#DATA
PORTC EQU 2002H MOVC A,@A+DPTR
CNTRL EQU 2003H MOV DPTR,#PORTA
MOVX @DPTR,A
ORG ACALL DELAY
4100H SJMP START
DELAY: DATA:
DNJZ DB
R7,DELAY 3FH,0CH,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
RET
END
INITPPI:
MOV

DPTR,#CNTRL
MOV
A,#89H
MOVX
@DPTR,A
RET

LABE UBHARA 2007 12


MODUL PRAKTIKUM MIKROPROSESOR

AKSES INTERRUPT

A. TUJUAN
Mempelajari sistem interrupt pada mikrokontroller MCS-51
Mempelajari fungsi dari register-register khusus.
Akses interrupt eksternal (pin INT0 & INT1) pada mikrokontroller
MCS-51

F. TEORI DASAR

Interrupt pada mikrokontroller digunakan untuk menyela program yang


sedang diproses. Interrupt berguna jika terdapat suatu rutin yang dijalankan hanya
pada waktu tertentu yang bersifat asinkron terhadap program utama. Program
utama tidak menentukan kapan rutin interrupt dijalankan, akan tetapi jika
sewaktu-waktu terdapat sinyal masukan pada ekternal interrupt maka program
interrupt akan menyela program utama. Dan selanjutnya jika program interrupt
selesai dijalankan maka program utama akan dilanjutkan kembali.

ORGANISASI INTERRUPT

Mikrokontroller MCS-51 mengenal 5 (lima) sumber interrupt yang disusun


berdasarkan urutan polling CPU MCS-51 :
o Eksternal Interrupt 0
o Timer / Counter 0
o Eksternal Interrupt 1
o Timer / Counter 1
o Serial Port (Transmit / Receive)

 Interrupt Enable
Interrupt Enable (IE) merupakan Special Function Register (SFR)
yang digunakan untuk mengaktifkan Interrupt.

MSB LSB
BIT IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0
SIMBOL EA - - ES ET1 EX1 ET0 EX0

LABE UBHARA 2007 13


MODUL PRAKTIKUM MIKROPROSESOR

Masing-masing bit pada register IE memiliki fungsi-fungsi khusus


yang berkaitan dengan penggunaan interrupt, sebagai berikut :
- EA; jika EA = 0  mematikan semua interrupt; EA = 1
 mengaktifkan interrupt dan
pengaturan dilakukan pada masing-
masing bit.
- ES; jika ES =1  mengaktifkan interrupt untuk
komunikasi serial
- ET1; jika ET =1  mengaktifkan interrupt untuk Timer /
Counter 1
- EX1; jika ET =1  mengaktifkan interrupt untuk
Eksternal Interrupt 1
- ET0; jika ET =1  mengaktifkan interrupt untuk Timer /
Counter 0
- EX1; jika ET =1  mengaktifkan interrupt untuk
Eksternal Interrupt 0

 Interrupt Priority (IP).


Interrupt Priority (IP) merupakan SFR yang digunakan untuk
menentukan Interrupt yang akan diprioritaskan, yaitu interrupt yang
harus dikerjakan lebih dulu jika dalam sebuah program terdapat lebih
dari satu interrupt yang aktif.

MSB LSB
BIT IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0
SIMBOL - - - PS PT1 PX1 PT0 PX0

Masing-masing bit memiliki fungsi sebagai berikut :


- PS; memberi prioritas pada interrupt
komunikasi serial
- PT1; memberi prioritas pada interrupt
Timer/Counter 1
- PX1; memberi prioritas pada Eksternal
Interrupt 1
- PT0; memberi prioritas pada interrupt
Timer/Counter 0
- PX0; memberi prioritas pada Eksternal
Interrupt 0

Masing-masing bit berlogika “1” berarti interrupt yang


bersangkutan memiliki prioritas tinggi dan jika berlogika “0” berarti
interrupt memiliki prioritas rendah.
Dalam interrupt priority berlaku ketentuan sebagai berikut :
- Jika interrupt masuk bersamaan dan
keduanya memiliki prioritas yang sama, maka interrupt akan
dilayani berdasarkan urutan pooling.

LABE UBHARA 2007 14


MODUL PRAKTIKUM MIKROPROSESOR

- Jika interrupt masuk bersamaan dan salah


satu memiliki prioritas tinggi, maka interrupt dengan prioritas
tinggi akan dilayani trelebih dahulu.
- Jika interrupt masuk tidak bersamaan,
apapun prioritas nya maka akan dilayani terlebih dahulu.

 Interrupt OverflowFlag.
Apabila terjadi interrupt, maka akan terdapat interrupt overflow,
yang bernilai “1”. Nilai ini merupakan tanda/sinyal bagi CPU/ user
tentang adanya Interrupt. Interrupt Flag terdapat pada SFR Timer
Control (TCON) dan Serial Control (SCON).
Timer Control (TCON) adalah SFR yang akan digunakan untuk
pengaturan pada penggunaan interrupt timer/counter.
Serial Control (SCON) adalah SFR yang akan digunakan untuk
pengaturan pada penggunaan interrupt serial komunikasi.

EKSTERNAL INTERRUPT

MCS-51 menyediakan 2 (dua) Eksternal Interrupt yang menggunakan


pin /INT0 (P3.2) dan /INT1 (P3.3). Adanya trigger pada pin /INT0 akan
mengakibatkan IE.0 bernilai “1”. Demikian juga adanya trigger pada pin
/INT1 akan mengakibatkan IE.1 bernilai”1”.
Trigger atau pemicu interrupt ini ada 2(dua) tipe, yaitu : falling edge
trigger dan low level trigger.
Pada falling edge trigger, interrupt akan dianggap valid jika pin yang
bersangkutan bernilai high (1) selama minimal 1 siklus mesin (machine cycle)
dan bernilai low (0) selama minimal 1 siklus mesin berikutnya. Interrupt flag
akan dibersihkan secara hardware saat CPU melompat ke vector address.
Pada low level trigger, eksternal interrupt harus bernilai low (0) hingga
interrupt flag bernilai “1”. Kemudian eksternal interrupt harus dikembalikan
ke nilai high (1) sebelum CPU menganggapnya sebagai sebuah interrupt lagi.

G. PERANGKAT YANG DIGUNAKAN

1. HARDWARE :
a. Modul DT-51
b. DT-51 Trainer Kit
c. Komputer

LABE UBHARA 2007 15


MODUL PRAKTIKUM MIKROPROSESOR

2. SOFTWARE :
a. ASM51
b. Downloader DT-51
c. Instruksi :
SJMP,LJMP,DJNZ,ACALL,LCALL,RET,RETI,SETB,CLR,MOV,RL,PUS
H,POP
d. Special Function Register yang digunakan : TCON, IE, dan IP

H. TUGAS PENDAHULUAN

1. Apa fungsi dari Interrupt dalam sistem mikrokontroller MCS-51 ?


2. Jelaskan fungsi dari :
a. Eksternal Interrupt
b. Timer / Counter
c. Serial Port (Transmit / Receive)
3. Sebutkan register apa saja yang mempengaruhi kerja dari interrupt dan
jelaskan fungsinya masing-masing register tersebut! Beri contoh setting
register untuk menggunakan interrupt 1 (/INT1) pada MCS-51 !
4. Jelaskan fungsi dari masing-masing instruksi berikut :
SJMP,LJMP,DJNZ,ACALL,LCALL,RET,RETI,SETB,CLR,MOV,RL,PUS
H,POP
5. Berikan contoh rancangan program MCS-51 dalam penggunaan interrupt
0. Interrupt 0 tersebut akan menghentikan program utama yang bekerja
menyalakan LED pada P1.0 secara berkedip, dan jika interrupt terjadi
maka LED P1.0 akan padam digantikan nyala LED di P1.7.

Catatan :
- Tugas pendahulua dikerjakan sebagai persyaratan mengikuti Praktikum yang akan diadakan.
- Jika tugas pendahuluan tidak dikerjakan, maka dianggap tidak memenuhi persyaratan untuk
mengikuti praktikum.
- Tugas Pendahuluan dikumpulkan pada masing-masing assisten praktikum yang akan
mendampingipelaksanaan praktek.
- sumber referensi : (“PANDUAN DASAR MIKROKONTROLLER KELUARGA MCS-
51”,Innovative Electronic,2004) dan (“PANDUAN PRAKTIKUM DASAR
MIKROKONTROLLER KELUARGA MCS-51menggunakan DT-51 Minimum System dan
Trainer Board”, Innovative Electronic,2004)

I. PERCOBAAN

PERCOBAAN 4 :
1. Hubungkan “Port 1” DT-51
MinSys dengan “Port Output” DT-51 Trainer Board.
2. Hubungkan “Control” DT-51
MinSys dengan “Control “ DT-51 Trainer Board.

LABE UBHARA 2007 16


MODUL PRAKTIKUM MIKROPROSESOR

3. Hubungkan “IS1” dengan “ /INT0


“ pada DT-51 Trainer Board
4. Hubungkan “IS2” dengan “ /INT1
“ pada DT-51 Trainer Board
5. Hubungkan DT-51 MinSys dengan
PC melalui jalur komunikasi serial (COM).
6. Hubungkan DT-51 MinSys dengan
power suplai.
7. Perhatikan tabel interrupt vektor
pada DT-51 Minimum Sistem berikut ini :
Interrupt Vector address
System reset 4000H
External Interrupt 0 4003H
Timer 0 400BH
External Interrupt 1 4013H
Timer 1 401BH
Serial port 4023H
8. Ketiklah program berikut
menggunakan NOTEPAD dan simpan dengan ekstension .ASM, assemble
dengan program ASM51, download ke DT-51 MinSys, dan amati hasilnya
:

;program 4
$mod51
CSEG
ORG 4000H
LJMP START
ORG 4003H
RL A
MOV P1, A
MOV R7,
#04H
LUPA: MOV R6,
#0FFH
LUPB: MOV R5,
#0FFH
DJNZ R5, $
DJNZ R6,
LUPB
DJNZ R7,
LUPA
RETI

ORG 4200H
;inisialisasi
START:
MOV SP,
#30H
MOV TCON,
#01H
MOV A,
#01H
MOV P1,
#01H

LABE UBHARA 2007 17


MODUL PRAKTIKUM MIKROPROSESOR

MOV IE,
#81H
SJMP START
END

9. Jelaskan bagaimana program


interrupt diatas bekerja !
10. Jelaskan apa tujuan dari masing-
masing instruksi berikut ini :
START:
MOV SP, #30H
MOV TCON, #01H
MOV A, #01H
MOV P1, #01H
MOV IE, #81H
SJMP START
END
11. Lakukan perubahan pada listing
program diatas untuk digunakan mengakses /INT1.Berikan contoh
rancangan program MCS-51 dalam penggunaan interrupt 1. Interrupt 1
tersebut akan menghentikan program utama yang bekerja menyalakan
LED pada P1.0 secara berkedip, dan jika interrupt terjadi maka LED P1.0
akan padam digantikan nyala LED di P1.7.

LABE UBHARA 2007 18


MODUL PRAKTIKUM MIKROPROSESOR

AKSES TIMER / COUNTER

A. TUJUAN
Mempelajari sistem interrupt pada mikrokontroller MCS-51
Mempelajari fungsi dari register-register khusus.
Akses TIMER / COUNTER pada mikrokontroller MCS-51

J. TEORI DASAR

MCS-51 menyediakan 2 (dua) buah Timer/Counter yang dapat digunakan


sebagai timer maupun counter. Masing-masing Timer/Counter memiliki 4 (empat)
mode dan dapat dikombinasikan.

KONSEP TIMER DAN COUNTER


Pada dasarnya Timer dan Counter merupakan sistem yang sama-sama
menambahkan diri higga Overflow. Timer memanfaatkan frekuensi oscilator
untuk bertambah tiap siklus mesin. Counter memanfaatkan sumber dari luar
IC MCS-51. Counter akan bertambah jika terdapat transmisi ’1’ ke ’0’ pada
pin T0 (P3.4) atau T1 (P3.5). Transmisi counter sama halnya dengan falling
edge trigger pada eksternal interrupt dimana nilai ’1’ harus valid selama 1
siklus mesin lalu disusul nilai ’0’ yang valid selama siklus mesin.

LABE UBHARA 2007 19


MODUL PRAKTIKUM MIKROPROSESOR

Timer dapat digunakan untuk menghitung suatu periode waktu antara


kejadian, sebagai jarak waktu antara kejadian, dan menghasilkan baudrate
untuk komunikasi serial.
Counter dapat digunakan untuk menghitung jumlah munculnya suatu
kejadian.

TIMER REGISTER

Register yang digunakan untuk mengatur Timer/Counter terdapat pada


Timer Mode (TMOD) dan Timer Control (TCON).

 Timer Control (TCON)

Timer Mode (TCON) termasuk kelompok SFR (Special Function


Register) yang digunakan untuk mengatur penggunaan Timer/Counter.
Alokasi bit pada register TCON adalah sebagai berikut :

MSB LSB
BIT TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0
SIMBO TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
L

- TF1  Timer/Counter 1 Overflow Flag


- TR1  Timer 1 Run Control Bit
- TF0  Timer/Counter 0 Overflow Flag
- TR0  Timer 0 Run Control Bit
- IE1  Eksternal Interrupt 1 Edge Flag
- IT1  Eksternal Interrupt 1 Type Control Bit
- IE0  Eksternal Interrupt 0 Edge Flag
- IT0  Eksternal Interrupt 0 Type Control Bit

Berikut penjelasan masing-masing bit TCON yang berkaitan dengan


Timer/Counter :
- TF1 ; bernilai ’1’ secara hardware saat nilai Timer/Counter 1 (TH1
dan TL1) mengalami overflow. TF1 akan bernilai ‘0’ secara
hardware saat mikrokontroller melompat ke Interrupt Service
Routine.
- TR1 ; harus diberi nilai ‘0’ untuk menjalankan Timer 1.
- TF0 ; bernilai ’1’ secara hardware saat nilai Timer/Counter 0 (TH0
dan TL0) mengalami overflow. TF0 akan bernilai ‘0’ secara
hardware saat mikrokontroller melompat ke Interrupt Service
Routine.
- TR0 ; harus diberi nilai ‘0’ untuk menjalankan Timer 0.

LABE UBHARA 2007 20


MODUL PRAKTIKUM MIKROPROSESOR

 Timer Mode (TMOD)

Timer Mode (TMOD) termasuk kelompok SFR (Special Function


Register) yang digunakan untuk mengatur mode pada penggunaan
Timer/Counter. Alokasi bit pada register TMOD adalah sebagai berikut :

MSB LSB
GATE C/T M1 M0 GATE C/T M1 M0

Timer/Counter Timer/Counter
1 0

Masing-masing bit pada register TMOD memiliki fungsi-fungsi


khusus yang berkaitan dengan penggunaan interrupt, sebagai berikut :
- GATE  pemilih eksternal atau internal control
- C/T  pemilih Timer atau Counter
- M1  pemilih mode Timer atau Counter
- M0  pemilih mode Timer atau Counter
Berikut penjelasan masing-masing TMOD :
 GATE
Jika GATE dan TRx (TR0 atau TR1 pada TCON) diberi nilai ’1’,
maka Timer/Counter hanya meroperasi jika pin /INTx bernilai
high ’1’.

 C/T
C/T diberi nilai ’1’ untuk menjalankan mode Counter dan diberi
nilai ’0’ untuk menjalankan mode Timer.

 M1 & M0
M1 dan M0 merupakan 2 (dua) bit pemilih mode operasi Timer /
Counter. Pemilihan mode Timer/Counter dijelaskan pada tabel
berikut :

M1 M0 Mode Operasi
0 0 0 Timer/Counter , 13 bit
0 1 1 Timer/Counter , 16 bit
1 0 2 Timer/Counter , 8 bit Auto Reload
1 1 3 Split Timer Mode untuk Timer/Counter 0
1 1 3 Timer/Counter 1 berhenti

INISIALISASI TIMER

LABE UBHARA 2007 21


MODUL PRAKTIKUM MIKROPROSESOR

Proses inisialisasi adalah proses menentukan nilai semua register yang


berkaitan dengan Timer/Counter yang akan digunakan agar Timer/Counter
dapat berfungsi sebagaimana yang dikehendaki.
Register yang harus diatur meliputi :

 TMOD dan TCON


Langkah pertama dalam inisialisasi sebuah Timer adalah menentukan
Mode yang akan digunakan (mode 0, 1, 2 dan 3), fungsi yang dipilih
(sebagai Timer atau Counter), dan jenis kontrol (eksternal kontrol
melalui pin INTx atau internal kontrol melalui TRx).
Pengaturan TCON dilakukan untuk menjalankan Timer.
Misal Timer/Counter 0 digunakan sebagai Timer dalam Mode 2dengan
eksternal kontrol dan Timer/Counter 1 digunakan sebagai Counter
dalam Mode 1 dengan Internal kontrol, maka instruksinya adalah
sebagai berikut :
MOV TMOD,#01011010b
atau
MOV TMOD,#5Ah

Sedangkan untuk menjalankan kedua Timer, instruksinya adalah sebagai


berikut :
MOV TCON,#01010000b
atau
MOV TCON,#50h
atau
SETB TR0
SETB TR1

 THx dan/atau TLx


Jika diperlukan, inisialisasi atau perubahan terhadap nilai THx dan/atau
TLx dapat dilakukan dengan cara mengisikan nilai tertentu kedalam
register tersebut.
Misalnya Register Timer/Counter 0, diisi dengan nilai 814Ah dan
Register Timer/Counter 1, diisi dengan nilai 0CF32h, maka instruksinya
adalah sebagai berikut :

MOV TH0,#81h
MOV TL0,#4Ah
MOV TH1,#0CFh
MOV TL1,#32h

 IE dan/atau IP
Jika Timer/Counter yang diprogram akan digunakan sebagai sumber
Interrupt, maka IE dan IP harus diatur.
Misal kedua Timer/Counter digunakan sebagai sumber Interrupt dengan
prioritas Timer/Counter 1, maka instruksinya adalah sebagai berikut :

LABE UBHARA 2007 22


MODUL PRAKTIKUM MIKROPROSESOR

MOV IP,#00001000b
MOV IE,#10001010b
atau
MOV IP,#08h
MOV IE,#8Ah
atau
SETB PT1
SETB ET1
SETB ET0
SETB EA

K. PERANGKAT YANG DIGUNAKAN

1. HARDWARE :
a. Modul DT-51
b. DT-51 Trainer Kit
c. Komputer
2. SOFTWARE :
a. ASM51
b. Downloader DT-51
c. Instruksi :
SJMP,LJMP,DJNZ,CJNE,
ACALL,LCALL,RET,RETI,
SETB,CLR,MOV,
RL,RR,
PUSH,POP,
INC,DEC
d. Special Function Register yang digunakan : TCON,TMOD, IE, dan
IP

L. TUGAS PENDAHULUAN

6. Jelaskan cara kerjaTimer dan Counter dalam sistem MCS-51.


7. Jelaskan permasalahan berikut :
 Mode Operasi TIMER
 Membaca Sebuah TIMER
 Membaca Register TLx dan THx
 Mendeteksi Overflow
8. Sebutkan register apa saja yang mempengaruhi kerja Timer/Counter pada
MCS-51.
9. Jelaskan fungsi dari masing-masing instruksi berikut :
SJMP,LJMP,DJNZ,ACALL,LCALL,RET,RETI,SETB,CLR,MOV,RL,PUS
H,POP
Catatan :
- Tugas pendahulua dikerjakan sebagai persyaratan mengikuti Praktikum yang akan diadakan.
- Jika tugas pendahuluan tidak dikerjakan, maka dianggap tidak memenuhi persyaratan untuk

LABE UBHARA 2007 23


MODUL PRAKTIKUM MIKROPROSESOR

mengikuti praktikum.
- Tugas Pendahuluan dikumpulkan pada masing-masing assisten praktikum yang akan
mendampingi pelaksanaan praktek.
- sumber referensi : (“PANDUAN DASAR MIKROKONTROLLER KELUARGA MCS-
51”,Innovative Electronic,2004) dan (“PANDUAN PRAKTIKUM DASAR
MIKROKONTROLLER KELUARGA MCS-51menggunakan DT-51 Minimum System dan
Trainer Board”, Innovative Electronic,2004)

M. PERCOBAAN

PERCOBAAN 5 :
1. Hubungkan “Port 1” DT-51
MinSys dengan “Port Output” DT-51 Trainer Board.
2. Hubungkan “Control” DT-51
MinSys dengan “Control “ DT-51 Trainer Board.
3. Hubungkan “IS3” dengan “T0 “
pada DT-51 Trainer Board
4. Hubungkan “IS4” dengan “T1 “
pada DT-51 Trainer Board
5. Hubungkan DT-51 MinSys dengan
PC melalui jalur komunikasi serial (COM).
6. Hubungkan DT-51 MinSys dengan
power suplai.
7. Perhatikan tabel interrupt vektor
pada DT-51 Minimum Sistem berikut ini :
Interrupt Vector address
System reset 4000H
External Interrupt 0 4003H
Timer 0 400BH
External Interrupt 1 4013H
Timer 1 401BH
Serial port 4023H
8. Ketiklah program berikut
menggunakan NOTEPAD dan simpan dengan ekstension .ASM, assemble
dengan program ASM51, download ke DT-51 MinSys, dan amati hasilnya
:
;program 5
$mod51
CSEG
ORG 4000H
LJMP START
ORG 400BH
COUNT: INC R0
CJNE R0,
#10H, OUT1
SETB P1.5
MOV R7,
#0FFH

LABE UBHARA 2007 24


MODUL PRAKTIKUM MIKROPROSESOR

LUP: MOV R6,


#0FFH
DJNZ R6, $
DJNZ R7,
LUP
CLR P1.5
MOV R0,
#00H
OUT1: MOV TH0,
#2CH
MOV TL0,
#00H
RETI
;inisialisasi
ORG 4200H
START: MOV SP,
#30H
MOV R0,
#00H
MOV TMOD,
#01H
MOV TH0,
#2CH
MOV TL0,
#00H
MOV TCON,
#10H
MOV P1,
#00H
MOV IE,
#82H
SJMP $
END

9. Program diatas adalah penggunaan


register Timer/Counter 0 sebagai Timer mode 0/1.
10. Jalankan program diatas, dan catat
apa yang dihasilkan dari program tersebut diatas !
11. Perhatikan pada program utama
diatas! Jelaskan maksud dari cuplikan program dibawah ini :
………………..
MOV TMOD, #01H
MOV TH0, #2CH
MOV TL0, #00H
MOV TCON, #10H
MOV P1, #00H
MOV IE, #82H
………………..

PERCOBAAN 6 :
1. Hubungkan “Port 1” DT-51 MinSys dengan “Port Output” DT-51 Trainer
Board.
2. Hubungkan “Control” DT-51 MinSys dengan “Control “ DT-51 Trainer
Board.

LABE UBHARA 2007 25


MODUL PRAKTIKUM MIKROPROSESOR

3. Hubungkan “IS3” dengan “T0 “ pada DT-51 Trainer Board


4. Hubungkan “IS4” dengan “T1 “ pada DT-51 Trainer Board
5. Hubungkan DT-51 MinSys dengan PC melalui jalur komunikasi serial
(COM).
6. Hubungkan DT-51 MinSys dengan power suplai.
7. Perhatikan tabel interrupt vektor pada DT-51 Minimum Sistem percobaan
sebelumnya !
8. Ketiklah program berikut menggunakan NOTEPAD dan simpan dengan
ekstension .ASM, assemble dengan program ASM51, download ke DT-51
MinSys, dan amati hasilnya :

;program 6
$mod51
CSEG
ORG 4000H
LJMP START

ORG 401BH
SETB P1.5
MOV R7,
#0FFH
LUP: MOV R6,
#0FFH
DJNZ R6, $
DJNZ R7,
LUP
CLR P1.5
MOV TH1,
#0FFH
MOV TL1,
#16H
RETI
;inisialisasi
ORG 4200H
START: MOV
SP, #30H
MOV P1,
#00H
MOV TMOD,
#40H
MOV TH1,
#0FFH
MOV TL1,
#1AH
SETB TR1
CLR TF1
MOV IE,
#88H
SJMP $
END

9. Program diatas adalah penggunaan register Timer/Counter 1 sebagai


Counter mode 0/1.

LABE UBHARA 2007 26


MODUL PRAKTIKUM MIKROPROSESOR

10. Jalankan program diatas, tekan IS4 sebanyak 6 kali dan perhatikan
indikator LED pada Port 1. selanjutnya tekan IS4 sebanyak 10 kali dan
perhatikan indikator Port 1. Catat apa yang dihasilkan dari program
tersebut diatas !
11. Perhatikan pada program utama diatas! Jelaskan maksud dari cuplikan
program dibawah ini :
…………………
MOV TMOD, #40H
MOV TH1, #0FFH
MOV TL1, #1AH
SETB TR1
CLR TF1
MOV IE, #88H
………………

AKSES SERIAL

A. TUJUAN
Mempelajari sistem interrupt pada mikrokontroller MCS-51
Mempelajari fungsi dari register-register khusus.
Akses Komunikasi Serial pada mikrokontroller MCS-51

N. TEORI DASAR

MCS-51 memiliki kemampuan berkomunikasi secara serial melalui pin


RXD (P3.0) dan TXD (P3.1). satu hal yang perlu diingat adalah tingkat tegangan
yang komunikasi kedua pin serial menggunakan tingkat tegangan TTL.

STANDARD SERIAL INTERFACE


Pada prinsipnya, komunikasi serial adalah komunikasi dimana
transmisi data dilakukan per bit. Interface serial hanya membutuhkan jalur
yang sedikit (umumnya hanya 2 jalur) sehingga lebih menghemat pin jika
dibandingkan dengan interface paralel.

LABE UBHARA 2007 27


MODUL PRAKTIKUM MIKROPROSESOR

Komunikasi serial ada dua macam, asynchronous serial dan


synchronous serial. Synchronous serial adalah komunikasi dimana hanya ada
satu pihak (pengirim atau penerima) yang menghasilkan clock dan
mengirimkan clock tersebut bersama-sama dengan data. Contoh pengunaan
synchronous serial terdapat pada transmisi data keyboard.
Asynchronous serial adalah komunikasi dimana kedua pihak (pengirim
dan penerima) masing-masing menghasilkan clock namun hanya data yang
ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan data yang
diterima, maka kedua frekuensi clock harus sama dan harus terdapat
sinkronisasi. Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya
sesuai dengan frekuensi clock pengirim dan penerima akan membaca data
sesuai dengan frekuensi clock penerima. Contoh penggunaan asynchronous
serial adalah pada Universal Asynchronous Receiver Transmitter (UART)
yang digunakan pada serial port (COM) komputer.
MCS-51 mendukung komunikasi secara asinkron, bahkan tiga dari
empat serial mode yang dimiliki MCS-51 kompatibel dengan UART.

SERIAL REGISTER
Register yang digunakan untuk mengatur komunikasi serial terdapat
pada Serial Control (SCON). Alokasi bit pada register SCON adalah sebagai
berikut :

MSB LSB
BIT SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0
SIMBO SM0 SM1 SM2 REN TB8 RB8 TI RI
L

- SM0  Pemilih Mode Komunikasi Serial


- SM1  Pemilih Mode Komunikasi Serial
- SM2  Pemilih Mode Komunikasi Multiprosessorl
- REN  Reception Enable
- TB8  Bit ke-9 yang dikirim
- RB8  Bit ke-9 yang diterima
- TI  Tansmit Interrupt Flag
- RI  Receive Interrupt Flag

Berikut ini adalah penjelasan masing-masing bit SCON yang berkaitan dengan
serial port :
- SM0 & SM1 ; pemilih mode serial

LABE UBHARA 2007 28


MODUL PRAKTIKUM MIKROPROSESOR

Baud rate pada mode 1, 2, dan 3 dapat dilipatgandakan dengan


memberi nilai ‘1’ pada SMOD (dalam SFR PCON). Baud rate variabel
adalah baud rate yang dihasilkan oleh Timer 1.
- SM2; jika bernilai ‘1’ maka komunikasi multiprosessor diaktifkan
dengan kondisi seperti pada tabel berikut :

Pada mode 0, nilai SM2 harus ‘0’.


- REN ; harus diberi nilai ‘1’ untuk mengaktifkan penerimaan data. Jika
REN diberi nilai ‘0’, maka tidak akan ada penerimaan data.
- TB8 ; adalah bit ke-9 yang dikirimkan dalam mode 2 atau 3. Nilai bit
ini diatur oleh program user.
- RB8 ; adalah bit ke-9 yang diterima dalam mode 2 atau 3. Pada mode
1, RB8 adalah stop bit yang diterima. Pada mode 0, RB8 tidak
digunakan.

MODE OPERASI

MCS-51 memiliki 4 mode komunikasi serial. Mode 0 berupa


synchronous serial (shift register), sedangkan tiga mode yang lain berupa
asynchronous serial (UART).
Pada semua mode, pengiriman dilakukan jika ada instruksi yang
mengisi nilai register SBUF. Sedangkan pada saat penerimaan, data yang
diterima akan disimpan pada register SBUF.

 MODE 0
Mode 0 adalah 8-bit shift register dimana data dikirimkan dan diterima
melalui pin RXD sedangkan clock dikirimkan dan diterima melalui pin TXD.
Pengiriman data 8 bit dilakukan dengan mengirimkan Least Significant Bit
(LSB) terlebih dahulu.
Pada mode 0, baud rate yang digunakan adalah sebesar 1/12 dari
frekuensi osilator.
 MODE 1
Pada mode 1, jumlah data yang dikirimkan sebanyak 10 bit yang
terdiri dari start bit, 8 bit data (LSB terlebih dahulu), dan stop bit. Pada proses
penerimaan, nilai stop bit akan dimasukkan ke RB8 secara otomatis. Pada
proses pengiriman, stop bit akan diberi nilai ‘1’ secara otomatis.
Pada mode 1, baud rate yang digunakan dapat diatur melalui Timer 1.
 MODE 2
Pada mode 2, jumlah data yang dikirimkan sebanyak 11 bit yang
terdiri dari start bit, 8 bit data (LSB terlebih dahulu), bit ke-9, dan stop bit.

LABE UBHARA 2007 29


MODUL PRAKTIKUM MIKROPROSESOR

Pada proses pengiriman, nilai bit ke-9 dapat diatur dengan mengisi nilai TB8.
Pada proses penerimaan, bit ke-9 akan dimasukkan ke RB8 secara otomatis.
Pada mode 2, baud rate yang dapat digunakan adalah sebesar 1/64
frekuensi osilator atau 1/32 frekuensi osilator jika SMOD bernilai ‘1’.
 MODE 3
Mode 3 hampir sama dengan mode 2. Perbedaannya terdapat pada
baud rate yang digunakan. Jika mode 2 menggunakan baud rate yang pasti,
mode 3 menggunakan baud rate yang dihasilkan oleh Timer 1.

BAUDRATE
Baud rate adalah frekuensi clock yang digunakan dalam pengiriman
dan penerimaan data. Satuan baud rate pada umumnya adalah bps (bit per
second), yaitu jumlah bit yang dapat ditransmisikan per detik. Baud rate untuk
mode 0 bernilai tetap dengan rumus yang terdapat pada persamaan 1.
(1)

Sedangkan baud rate untuk mode 2 memiliki 2 variasi tergantung dari


kondisi SMOD. Rumus baud rate untuk mode 2 terdapat pada persamaan 2.
(2)

Baud rate untuk mode 1 dan 3 dihasilkan oleh Timer 1. Pengaturan


baud rate untuk mode 1 dan 3 dapat dilakukan dengan cara mengubah nilai
SMOD, TMOD, dan TH1. Nilai baud rate dapat diperoleh dengan
menggunakan persamaan 3.

(3)

Umumnya Timer 1 dioperasikan pada mode 2 (8-bit Auto Reload)


sehingga didapat persamaan 4.

(4)

Berdasarkan persamaan 4, user dapat menghitung berapa nilai TH1


yang dibutuhkan jika diketahui baud rate yang diinginkan dengan persamaan
5.

(5)

LABE UBHARA 2007 30


MODUL PRAKTIKUM MIKROPROSESOR

Satu hal yang harus diperhatikan dalam pengaturan baud rate adalah
nilai baud rate dan nilai TH1 diusahakan harus tepat dan bukan merupakan
pembulatan.
Untuk komunikasi serial kecepatan tinggi, pembulatan terhadap nilai-
nilai tersebut dapat mengakibatkan kekacauan dalam proses pengiriman atau
penerimaan. Jika terdapat nilai pecahan, user disarankan untuk mengganti
osilator dengan frekuensi yang sesuai. Untuk komunikasi dengan kecepatan
rendah, toleransi terhadap kesalahan cukup besar sehingga pembulatan masih
boleh dilakukan.
Misalkan baud rate yang diinginkan adalah 19200 bps dengan
frekuensi osilator 11,0592 MHz. Dengan memasukkan data ini ke dalam
persamaan 5 maka akan didapat persamaan 6.

TH1 = 256 – (2SMOD x 1,5) (6)

Jika 2SMOD bernilai ‘1’, maka akan didapat TH1 sebesar 254,5. Untuk
menghindari TH1 berupa pecahan, 2SMOD harus bernilai ‘2’ (SMOD bernilai
‘1’) sehingga didapat TH1 sebesar 253 atau FDh.
Untuk mendapatkan baud rate yang lambat, user dapat
mengoperasikan Timer 1 pada mode 1 dengan rumus pada persamaan 7.

(7)

Beberapa konfigurasi baud rate yang umum digunakan terdapat dalam tabel
berikut :

INISIALISASI SERIAL
Proses inisialisasi bertujuan untuk menentukan mode komunikasi
serial dan baud rate yang digunakan. Register yang harus diatur terlebih
dahulu meliputi:

LABE UBHARA 2007 31


MODUL PRAKTIKUM MIKROPROSESOR

o SCON
Langkah pertama adalah menentukan mode yang akan digunakan
(mode 0, 1, 2, atau 3), kemampuan menerima data, dan nilai bit ke-
9.
Misalnya mode yang digunakan adalah mode 1 dengan
kemampuan menerima data namun tanpa komunikasi
multiprosesor, maka instruksinya adalah sebagai berikut:
MOV SCON, #01010000b
atau
MOV SCON, #50h
atau
SETB SM1
SETB REN
o TMOD, TH1 dan/atau TL1, PCON, dan TCON
Jika komunikasi serial digunakan dalam mode 1 atau 3, maka
langkah berikutnya adalah menentukan baud rate.
Misalnya Timer/Counter 1 digunakan sebagai timer dalam mode 2
untuk membangkitkan baud rate 19200 bps, maka instruksinya
adalah sebagai berikut:
MOV TMOD, #00100000b
MOV TH1, #0FDh
MOV PCON, #10000000b
MOV TCON, #01000000b
atau
MOV TMOD, #20h
MOV TH1, #0FDh
MOV PCON, #80h
MOV TCON, #40h
atau
MOV TMOD, #20h
MOV TH1, #0FDh
MOV PCON, #80h
SETB TR1

3. IE dan/atau IP
Jika komunikasi serial yang diprogram akan digunakan sebagai
sumber interrupt, maka IE dan/atau IP juga harus diatur.
Misalnya komunikasi serial digunakan sebagai sumber interrupt
dengan prioritas tinggi, maka instruksinya adalah sebagai berikut:
MOV IP, #00010000b
MOV IE, #10010000b
atau
MOV IP, #10h
MOV IE, #90h
atau
SETB PS
SETB ES
SETB EA

O. PERANGKAT YANG DIGUNAKAN


1. HARDWARE :
a. Modul DT-51

LABE UBHARA 2007 32


MODUL PRAKTIKUM MIKROPROSESOR

b. DT-51 Trainer Kit


c. Komputer
d. Sinyal Generator
2. SOFTWARE :
a. ASM51
b. Downloader DT-51
c. Instruksi :
SETB,CLR,MOV,JB,JNB,CJNE,SJMP,LJMP,RETI
d. Special Function Register yang digunakan : SCON,TMOD, PCON
dan IE
e.
P. TUGAS PENDAHULUAN
10. Jelaskan cara kerja Serial Port dalam sistem MCS-51.
11. Sebutkan register apa saja yang mempengaruhi kerja Serial Port pada
MCS-51.
12. Jelaskan secara singkat Mode Operasi Serial Port MCS-51 dan sertakan
contoh seting register-register yang berhubungan dengan penggunaan
Serial Port tersebut.
13. Jelaskan fungsi dari masing-masing instruksi berikut :
SETB,CLR,MOV,JB,JNB,CJNE,SJMP,LJMP,RETI
14. Apakah yang dimaksud dengan Baudrate ?
15. Buatlah cuplikan program MCS-51 untuk inisialisasi baudrate pada serial
port untuk menghasilkan baudrate 9600bps (9,6 Kbps) dan 19200bps (19,2
Kbps)
16. Buatlah program sederhana untuk membaca data dari serial port dengan
baudrate 9600 bps dan hasil pembacaan ditampilkan pada indikator LED
di Port 1.
Catatan :
- Tugas pendahulua dikerjakan sebagai persyaratan mengikuti Praktikum yang akan diadakan.
- Jika tugas pendahuluan tidak dikerjakan, maka dianggap tidak memenuhi persyaratan untuk
mengikuti praktikum.
- Tugas Pendahuluan dikumpulkan pada masing-masing assisten praktikum yang akan
mendampingipelaksanaan praktek.
- sumber referensi : (“PANDUAN DASAR MIKROKONTROLLER KELUARGA MCS-
51”,Innovative Electronic,2004) dan (“PANDUAN PRAKTIKUM DASAR
MIKROKONTROLLER KELUARGA MCS-51menggunakan DT-51 Minimum System dan
Trainer Board”, Innovative Electronic,2004)

Q. PERCOBAAN
PERCOBAAN7 :
1. Hubungkan “Port 1” DT-51
MinSys dengan “Port Output” DT-51 Trainer Board.
2. Hubungkan “Control” DT-51
MinSys dengan “Control “ DT-51 Trainer Board.
3. Hubungkan DT-51 MinSys dengan
PC melalui jalur komunikasi serial (COM).

LABE UBHARA 2007 33


MODUL PRAKTIKUM MIKROPROSESOR

4. Hubungkan DT-51 MinSys dengan


power suplai.
5. Perhatikan tabel interrupt vektor
pada DT-51 Minimum Sistem berikut ini :
Interrupt Vector address
System reset 4000H
External Interrupt 0 4003H
Timer 0 400BH
External Interrupt 1 4013H
Timer 1 401BH
Serial port 4023H
6. Ketiklah program berikut
menggunakan NOTEPAD dan simpan dengan ekstension .ASM, assemble
dengan program ASM51.
;program 7
$mod51
CSEG
ORG 4000H
LJMP START
;interrupt penerimaan
ORG 4023H
CLR RI
MOV A, SBUF
MOV P1, A
RETI
;interrupt diaktifkan dan serial berada
;pada mode 1 dengan REN = 1
START: MOV SP, #30H
MOV SCON, #50H
;inisialisasi baud rate (9600 bps)
MOV TMOD, #20H
MOV TL1, #0FDH
MOV TH1, #0FDH
MOV PCON, #00H
SETB TR1
SETB ES
SETB EA
SJMP $
END
7. Bukalah program Hyperterminal
dan aturlah kecepatan 9600 bps (9,6Kbps) pada posisi serial port yang
digunakan. Simpan dan tutup program tersebut.
8. Download program diatas pada
DT-51 MinSys, dalam kondisi running bukalah program Hyperterminal
yang sudah anda setting sebelumnya.
9. Jika tidak ada kesalahan, program
tersebut akan menampilkan kode ASCII dari tombol keyboard yang
ditekan ke output Port 1 (menyalakan LED).
10. Perhatikan pada program utama
diatas! Jelaskan maksud dari cuplikan program dibawah ini :
………………..
MOV SCON, #50H
;inisialisasi baud rate (9600 bps)

LABE UBHARA 2007 34


MODUL PRAKTIKUM MIKROPROSESOR

MOV TMOD, #20H


MOV TL1, #0FDH
MOV TH1, #0FDH
MOV PCON, #00H
SETB TR1
SETB ES
SETB EA
………………..

PERCOBAAN 8 :
1. Hubungkan “Port 1” DT-51 MinSys dengan “Port Output” DT-51 Trainer
Board.
2. Hubungkan “Control” DT-51 MinSys dengan “Control “ DT-51 Trainer
Board.
3. Hubungkan DT-51 MinSys dengan PC melalui jalur komunikasi serial
(COM).
4. Hubungkan DT-51 MinSys dengan power suplai.
5. Dari percobaan 7 diatas. Ubahlah DT-51 dalam posisi stand alone agar
serial komunikasi (COM) pada komputer dapat dijabut dan
mikrokontroller masih dalam kondisi running. Saat merubah posisi Jumper
ke stand alone Dt-51 dalam kondisi masih ON.
6. Untuk sementara matikan power suplai DT-51, dan hubungkan sebuah
sinyal generator pada pin RXD (P3.0).
7. Atur keluaran sinyal generator pada level tegangan TTL (5Vdc).
8. Atur keluaran sinyal generator pada frekuensi 1KHz.
9. Hidupkan power suplai DT-51, dan amati nyala LED pada Port 1.
10. Naikkan frekuensi sinyal generator dari 1KHz sampai 100KHz.
11. Isilah tabel dibawah ini :
Serial Port Setting
Mode Operasi : 1
Baudrate : 9600 bps
Freq.Input Data Ouput Freq.Input Data Ouput
(RXD) (Port 1) (RXD) (Port 1)
(KHz) (KHz)
1 55
5 60
10 65
15 70
20 75
25 80
30 85
35 90
40 95
45 100
50

12. Program diatas memiliki Baudrate 9600 bps. Ubahlah Baudrate tersebut
menjadi 19200 bps (19,2 Kbps). Dan lengkapi tabel dibawah ini :
Serial Port Setting
Mode Operasi : 1

LABE UBHARA 2007 35


MODUL PRAKTIKUM MIKROPROSESOR

Baudrate : 19200 bps


Freq.Input Data Ouput Freq.Input Data Ouput
(RXD) (Port 1) (RXD) (Port 1)
(KHz) (KHz)
1 55
5 60
10 65
15 70
20 75
25 80
30 85
35 90
40 95
45 100
50

13. Bandingkan data tabel diatas ! dan buat kesimpulan dari percobaan yang
telah dilakukan.

LABE UBHARA 2007 36

Anda mungkin juga menyukai