Anda di halaman 1dari 16

PRAKTIKUM TEKNIK ANTARMUKA KOMPUTER

KOMUNIKASI SERIAL (receiver)

II

MIRZA ALVIAN N

3 D4 ELEKTRO INDUSTRI A

1310141003

FARID DWI

29 MARET 2017
PRAKTIKUM I
INTERFACE MIKROKONTROLER DAN
KOMPUTER SECARA SERIAL
(Receiver)

I. TUJUAN
a. Memahami komunikasi serial.
b. Memahami cara mengggunakan interrupt serial pada
mikrokontroller 8051.
c. Memahami cara kerja transfer data lewat komunikasi serial RS-
232 .
d. Mampu membuat serta mengembangkan program bagi transfer
data antar mikrokontroller 8051 dengan Personal Computer.

II. DASAR TEORI


Komunikasi serial adalah komunikasi yang mengantarkan data
digital secara bit per bit secara bergantian melalui media interface
serial, contoh: modem, mouse dll
Pengiriman data melalui interface serial dapat dilakukan secara bit per
bit (setiap satu step waktu 1 bit) atau juga dalam satuan baud
dimana 1 baud tidak mesti senilai dengan 1 bit per second, tergantung
besaran data untuk setiap kali clock transfer.

Kerugian Komunikasi Paralel


Penggunaan kabel yang lebih pendek, sebab keterbatasan proses
transfer
Membutuhkan banyak kabel penghantar

Konsekuensi terhadap Komunikasi Serial


Tingginya tingkat keamanan terhadap gangguan karena tingginya
ayunan tegangan (dengan jangkauan max. 50 Volt) Sehingga
dapat direalisasikan dengan kabel yang lebih panjang.
Membutuhkan sedikit kabel penghantar (misalkan dg tiga utas
kabel: Tx, Rx dan Ground)
Membutuhkan penyesuaian protokol komunikasi data terutama
untuk sinkronisasi antara pengirim dan penerima.

Perbedaan diantara Komunikasi Serial


Perbedaan data rate (jumlah data per waktu)
Jumlah dan jenis penghantar (min. 1 kabel koaxial)
Penggunaan protokol komunikasi

Komunikasi Asynchrone pada RS -232 (mis. 1 simbol = 1 Byte)

Gambar diatas memperlihatkan bentuk gelombang komunikasi serial


dengan format 8N1, yaitu 8-bit data, tanpa parity, 1 stop bit.
Pada keadaan idle atau menganggur (idle), jalur RS-232 ditandai
dengan mark state atau Logika HIGH.
Pengiriman data diawali dengan start bit yang berlogika 0 atau
LOW, berikutnya data dikirimkan bit demi bit mulai dari LSB
(Least Significant Bit) atau bit ke-0.
Pengiriman setiap byte diakhiri dengan stop bit yang berlogika
HIGH.
Gambar ini memperlihatkan kondisi LOW setelah stop bit, ini adalah
start bit yang menandakan data berikutnya akan dikirimkan. Jika
tidak ada lagi data yang ingin dikirim, maka jalur transmisi ini akan
dibiarkan dalam keadaan HIGH.
Ada yang disebut Break Signal, yaitu keadaan LOW yang
lamanya cukup untuk mengirimkan 8-bit data. Jika pengirim
menyebabkan jalur komunikasi dalam keadaan seperti ini, penerima
akan menganggap ini adalah break signal atau sinyal rusak.
Data yang dikirimkan dengan cara seperti pada gambar diatas disebut
data yang terbingkai (to be framed) oleh start dan stop bit. Jika
stop bit dalam keadaan LOW, berarti telah terjadi framing error.
Biasanya hal ini terjadi karena perbedaan kecepatan komunikasi
antara pengirim dengan penerima.

UART pada 8051


UART: Universal Asynchronous Receiver Transmitter.
Fungsi UART membangun komunikasi aliran data digital secara serial
dalam frame yang ditetapkan. Frame ini terdiri dari Start Bit, 5 s/d 9
Bits Data, optional memiliki bit Parity yang berperan untuk
mendeteksi kesalahan transfer data, dan Stop Bit.
UART juga merupakan salah satu sarana yang disediakan oleh Intel
8051, yang melayani pengiriman dan penerimaan data dengan
bantuan register SBUF.
Dengan adanya UART, programer hanya butuh membaca data dari
register SBUF tanpa harus susah payah mengatur pengiriman data bit
demi bit dengan baudrate tertentu.
Baudrate : besaran kecepatan komunikasi data untuk setiap kali step
(clok) pengiriman. Satuannya adalah baud atau symbol/second
Sebelum komunikasi berlangsung, harus dilakukan dulu inisialisasi
register-register tertentu pada SFR yang terkait dengan komunikasi
serial termasuk penentuan baudrate. Saat proses pengiriman maupun
penerimaan data sedang berlangsung, kosong dan penuhnya SBUF
akan diberitakan melalui bit indikator TI dan RI. Pemantauan TI dan
RI dapat dilakukan dengan atau tanpa melibatkan sistem interupsi.
1. Setting Mode Komunikasi Serial
Sebelum komunikasi dilakukan, programer harus melakukan setting-
an register:
SCON apabila komunikasi yang dilakukan secara sinkron
SCON serta TMOD (utk settingan Timer Mode), TH1, dan SMOD
(salah satu bit register PCON) apabila komunikasi dilakukan
secara asynchrone
Isi Register SCON
Bit Nama Addres Explanation of Function
ke- bit s
7 SM0 9F Serial port mode bit 0
6 SM1 9E Serial port mode bit 1.
5 SM2 9D Multiprocessor Communications Enable
4 REN 9C Receiver Enable.
3 TB8 9B Transmit bit 8. The 9th bit to transmit in
mode 2 and 3.
2 RB8 9A Receive bit 8. The 9th bit received in mode
2 and 3.
1 TI 99 Transmit Flag. Set when a byte has been
completely transmitted.
0 RI 98 Receive Flag. Set when a byte has been
completely received.
Sebagai tambahannya, tabel diatas berisi mode komunikasi serial
yang sesuai dengan keadaan bit-bit SM0 dan SM1.
Mode komunikasi serial berdasarkan bit pada SM0 dan SM1
SM SM Serial Explanation Baud Rate
0 1 Mode
0 0 0 8-bit Shift Oscillator / 12
Register
0 1 1 8-bit UART Terkait dengan
Timer 1
1 0 2 9-bit UART Oscillator / 32
or / 64
1 1 3 9-bit UART Terkait dengan
Timer 1

Bit ke-7 sampai bit ke-4 pada SCON merupakan bit konfigurasi. Seperti
tampak pada Tabel 10.2, setting bit SM0 dan bit SM1 memungkinkan
kita memilih 1 dari 4 mode komunikasi. Mode 0 berarti komunikasi
asinkron dengan kecepatan transfer 1/12 kali frekuensi osilator. Jika
kita menggunakan osilator 12 MHZ, berarti kecepatan transfernya 1
Mbaud. Mode 1 adalah mode yang palign sering dipilih. Pada mode ini,
komunikasi dilakukan secara asinkron dengan baudrate ditentukan
berdasarkan setting pada Timer 1. Jika mode 1 ini dipilih, Timer 1
harus diset pada mode 8-bit autoreload. Pengisian register TH1 dan bit
SMOD pada register PCON menentukan baudrate yang akan berlaku
pada komunikasi serial tipe ini.
Mode 2 dan 3 adalah mode komunikasi serial dengan bingkai atau
frame berukuran 9-bit. Karena 1-byte data hanya terdiri dari 8-bit, bit
kesembilan diambil dari bit TB8 atau RB8 pada register SCON. Bit TB8
adalah bit yang ditambahkan ketika dilakukan transmit atau
pengiriman data, sedangkan bit RB8 ditambahkan ketika prosesor
sedanga menerima atau receive data.
Bit SM2 hanya digunakan untuk komunikasi multiprosesor. Biasanya,
jika prosesor sedang berperan sebagai penerima data, saat SBUF
penuh, bit RI akan berubah menjadi HIGH. Tetapi jika SM2 diset HIGH,
maka perubahan RI menjadi HIGH ini bergantung pada bit ke-9 yang
diterima, jika bit ke-9 ini HIGH, maka RI juga ikut menjadi HIGH.
Meskipun SBUF telah penuh, jika bit ke-9 LOW, maka bit indikator RI
tidak akan berubah menjadi HIGH. Hal seperti ini berguna pada
aplikasi tertentu yang melibatkan beberapa prosesor untuk
berkomunikasi antar mereka. Dengan kata lain setting SM2 bisa
membuat prosesor bersangkutan menjadi tuli, tidak menghiraukan
datangnya data pada SBUF karena memang data tersebut bukan
untuknya tetapi untuk prosesor lainnya yang ada pada jalur
komunikasi serial yang sama.
Bit REN atau Receive Enable diset jika kita ingin komunikasi
berlangsung 2 arah, prosesor juga dapat menerima data selain dapat
mengirim data melalui saluran serial. Jika bit ini diset LOW, maka
prosesor menjadi tuli, sama sekali tidak dapat menerima data.
Empat bit LSB pada register SCON merupakan bit-bit operasional. Bit
TB8 dan bit RB8 terkait dengan komunikasi serial mode 2 dan 3
seperti telah dijelaskan sebelumnya. Sedangkan bit RI dan TI
merupakan bit indikator yang menyatakan SBUF telah dalam keadaan
penuh atau kosong. Jika prosesor mengirim data, data tsb cukup
diletakkan di register SBUF, pengiriman bit demi bit dilakukan oleh
internal USART. Saat SBUF kosong karena semua bit telah dikirimkan
ke saluran serial TxD, maka bit indikator TI (transmit interrupt) akan
berubah menjadi HIGH. Sedangkan bit indikator RI bekerja sebaliknya.
Ketika prosesor sedang menerima data bit demi bit dari saluran serial
RxD, bit indikator RI (receive interrupt) akan berubah menjadi HIGH
saat SBUF telah dipenuhi 8-bit data.
Perlu dicatat bahwa sebenarnya bit TI diset HIGH pada pertengahan
pengiriman stop bit, sedangkan bit RI diset pada pertengahan
penerimaan stop bit. Untuk komunikasi dengan standard RS-485
programmer tidak boleh melakukan disable saluran komunikasi terlalu
cepat, ia harus menunggu paling tidak selama setengah periode stop
bit setelah RI atau TI berubah menjadi HIGH, jika tidak, maka akan
terjadi transmission error.

2. Setting untuk menentukan Baudrate


Seperti tampak pada tabel sebelumnya penentuan kondisi bit SM0 dan
SM1 berakibat pada pilihan 1 dari 4 mode komunikasi serial. Mode 0
dan 2 menggunakan baudrate yang hanya bergantung pada frekuensi
osilator. Pada mode 0, hanya satu macam baudrate yang diizinkan,
1
12
yaitu frekuensi kristal. Jika kita menggunaka kristal 11.0592 Mhz,
baudrate untuk mode 0 adalah 921600 baud. Untuk mode 2,
1 1
32 64
disediakan 2 pilihan baudrate, yaitu atau kali frekuensi kristal,
bergantung pada kondisi bit SMOD pada register PCON. Jika SMOD
1
32
diset HIGH, maka baudrate sama dengan kali frekuensi kristal. Jika
frekuensi kristal 11.0592 Mhz dan SMOD diset LOW, maka baudrate
untuk mode 2 adalah 172800 baud.
Untuk mode 1 dan 3, penentuan baudrate harus melibatkan Timer 1.
Timer 1 harus digunakan dengan mode 8-bit autoreload dan pengisian
TH1 harus disesuaikan dengan baudrate yang diinginkan. Rumus
untuk menentukan isi TH1 terkait dengan budrate yang diinginkan
adalah sebagai berikut.
f XTAL
TH 1 256
384.BAUD
, jika bit SMOD pada register PCON diset LOW.
f XTAL
TH 1 256
192.BAUD
, jika bit SMOD = HIGH.
Misalnya, jika kita menggunakan kristal 11.0592 Mhz, untuk
memperoleh baudrate 19200 baud, TH1 harus diisi dengan angka
berikut ini,
TH1 = 256 - ((f / 384) / Baud)
TH1 = 256 - ((11059200 / 384) / 19200)
TH1 = 256 - ((28,799) / 19200)
TH1 = 256 - 1.5 = 254.5
Tetapi karena TH1 harus diisi dengan bilangan integer, maka kita
harus memilih pembulatan dari 254.5 menjadi 254 atau 255. Jika kita
pilih TH1 = 254, maka baudrate yang akan kita peroleh adalah 14400
baud, sedangkan jika kita pilih TH1 = 255, maka baudratenya menjadi
28800 baud. Tentu saja ini menyulitkan kita. Untuk mengatasinya, kita
dapat memanfaatkan bit SMOD pada register PCON. Jika SMOD diset
HIGH, maka perhitungan TH1 menjadi seperti berikut ini,
TH1 = 256 - ((f / 192) / Baud)
TH1 = 256 - ((11059200 / 192) / 19200)
TH1 = 256 - ((57699) / 19200)
TH1 = 256 - 3 = 253
Karena yang diperoleh adalah bilangan integer, yaitu 253, maka
baudrate yang kita peroleh akan sama dengan 19200 baud.
Secara ringkas, untuk memperoleh baudrate 19200 baud, kita harus
melakukan langkah-langkah berikut ini,
1. Pilih komunikasi serial mode 1 atau 3.
2. Pilih mode 2 atau 8-bit autoreload untuk Timer 1.
3. Isi register TH1 dengan bilangan 253.
4. Set bit SMOD pada register PCON menjadi HIGH.

3. Mengirim dan Menerima Data melalui saluran Serial


Secara ringkas, pengiriman data cukup dilakukan dengan mengisi
register SBUF dengan data yang akan dikirimkan, byte selanjutnya
dikirim ketika bit TI berubah menjadi HIGH. Sedangkan penerimaan
ada cukup dilakukan dengan mengambil data dari SBUF setelah bit RI
menjadi HIGH.
Berikut ini adalah contoh potongan program tanpa interupsi untuk
mengirimkan 8-byte data dari RAM mulai alamat 30H melalui saluran
serial TxD dengan kecepatan transfer 19200 baud. Frekuensi kristal
yang digunakan harus 11.0592 MHz.

Jika kita ingin mengambil 8-byte data dari saluran serial RxD kemudian
meletakkannya di RAM mulai alamat 30H, maka potongan programnya sebagai
berikut,
$MOD51
DSEG
ORG 30H
Buffer: DS 10 ;pesan tempat 10-byte pada RAM mulai 30H
Loop: DS 1 ;sebagai counter pengulangan

CSEG
ORG 0H
LJMP START
ORG 30H
START:
MOV SCON,#01010000B
MOV TMOD,#00100001B
MOV PCON,#10000000B
MOV TH1,#253
MOV TL1,#253
SETB TR1

MOV R1,#buffer
MOV Loop,#8
Ulang:
JNB RI,$
MOV @R1,SBUF ;copy data dari SBUF ke RAM internal
CLR RI
INC R1
DJNZ Loop,ulang

END
5. Menghubungkan pin TxD dan RxD dengan konektor DB9.
Untuk melakukan komunikasi serial dengan standar RS-232, harus
dilakukan penyesuaian level sinyal dari level TTL menjadi level RS-232
menggunakan IC tertentu, misalnya DS 275 atau MAX232. Gambar
5.1. di bawah ini merupakan contoh penggunaan IC MAX232 untuk
menyesuaikan tegangan dari prosesor dengan tegangan standar RS-
232 yang melalui konektor DB9. Pin TxD dari prosesor dihubungkan
dengan pin T1IN pada MAX232, sedangkan pin RxD dari prosesor
dihubungkan dengan pin R1OUT pada MAX232.
Keterangan
Pin 1 = Data Carrier Detect (DCD)
Pin 2 = Received Data (RxD)
Pin 3 = Transmitted Data (TxD)
Pin 4 = Data Terminal Ready (DTR)
Pin 5 = Signal Ground (common)
Pin 6 = Data Set Ready (DSR)
Pin 7 = Request To Send (RTS)
Pin 8 = Clear To Send (CTS)
Pin 9 = Ring Indicator (RI)

Gambar 5.1. Contoh penggunaan IC pengubah level sinyal.


Gambar 5.2. memperlihatkan contoh sambungan prosesor AT89C2051
dengan konektor DB9. Karena prosesor terhubung juga dengan driver
stepper motor, maka dapat dibuat program untuk memungkinkan
pengendalian stepper tersebut melalui saluran serial. Informasi dapat
berasal dari PC maupun alat lainnya seperti handphone.
Gambar 5.2. Contoh sambungan antara DB9 dengan prosesor
AT89C2051.
Metode Sinkronisasi
Problem utama komunikasi serial adalah metode sinkronisasi,
yakni pengendalian clock pengirim dan penerima. Kedua clok
seharusnya berada pada frekuensi yang sama, agar penerima
dapat mengambil data tepat pada waktunya.
Tujuan sinkronisasi adalah menghindari keterlambatan dan
kesalahan pengambilan data sehingga perlu dilakukan penyesuaian
clok penerima dengan clok pengirim.

Komunikasi Sinkron
Ditandai dg: Clok penerima disetting hanya pada awal komunikasi
clok pengirim.
Terdapat dua bentuk realisasi:
1. Menyediakan 3 penghantar ( untuk data yang dikirim, data
yang diterima dan external clok). Dengan bantuan penghantar
clok, penerima dapat mengendalikan proses pengambilan data
(sampling data).
2. Interface serial terdiri hanya satu penghantar atau
pasangan penghantar, dimana diawal paket data dikirimkan bit
preamble sebagai bit sinkronisasi. Clok penerima akan
mengalami settingan selama bit preamble berjalan.

Komunikasi Asynchrone (Tidak Sinkron)


Ditandai dg: Dimana sinkronisasi clok pengirim dan penerima
terjadi pada awal dari setiap simbol data yang dikirim.
Realisasinya: sebelum bits data terdapat satu atau dua startbit.
Starbit ini menentukan kapan penerima mengambil data, dan ini
berjalan dalam sebagian dari periode clok.
Komunikasi Asynchrone mengirimkan data secara simbol per
simbol, dimana disini ditandai acknowledge untuk setiap
penyelesaian masing-masing simbol.
Format Data Komunikasi Asynchrone tidak standard, bervariasi
tergantung pada:
1. Genap atau ganjilnya parity (parity menandakan genap
atau ganjilnya jumlah dari bit 1 )
2. Satu atau dua stopbits

Interupsi 8051
Pada Metode Interupt, kapan saja device butuh layanan, maka
CPU akan sedapat mungkin untuk segera melayani, device akan
memberitahukan pada CPU dengan mengirim sinyal interupsi. Setelah
sinyal interupsi ini diterima, CPU akan berhenti mengerjakan tugasnya
dan segera melayani device tadi. Program (instruksi-instruksi) dimana
yang berisi layanan interupsi, disebut dengan Interupt Service Routine
( ISR )atau juga Interupt Handler. Sedang pada polling, CPU secara terus
menerus akan memonitor status yang diberikan oleh device-device,
saat kondisi tertentu di mana nampak device membutuhkan layanan,
maka CPU akan mulai mengerjakan layanannya. Setelah CPU selasai
dengan layanan, maka CPU akan kembali mengerjakan pekerjaan
semula yaitu memmonitor device selanjutnya sampai ketemu device
yang meminta layanan.

Interupt Service Routine


Setiap interupsi, selalu memiliki Interupt Service Routine (ISR),
atau disebut juga Interupt Handler. Yaitu rutin-rutin yang khusus
dijalankan sebagai layanan dari sebuah interupsi. Saat interupsi terjadi,
CPU akan mulai menjalankan rutin ISR ini. Setiap Interupsi selalu
memiliki lokasi tetap dalam memory program yang disebut Interupt
Vector Table, seperti ditampilkan pada gambar 11-1.

Langkah-langkah Mengeksekusi Interupsi

Setelah adanya aktifasi interupsi, 8051 akan mengerjakan tugas seperti


langkah-langkah di bawah ini.
1. Begitu adanya sinyal interupsi, CPU mulai merespon. Namun jika
saat itu CPU sedang dalam proses menjalankan instruksi, tentu CPU
harus menyelesaikan instruksi tersebut, sehingga tidak ada instruksi
apapun yang terhenti di tengah-tengah. Baru kemudian CPU
memulai proses menanggapi interupsi dengan menyimpan PC pada
stack, agar nantinya proses benar-benar kembali ke alamat ini.
Prosesnya serupa dengan CALL.
2. CPU juga menyimpan secara internal akan status dari semua
interupsi.
3. Kemudian program Counter akan melompat pada alamat yang
sudah ditetapkan, yang disebut Interupt Vector Table, di mana ISR
berada.
4. Setelah mendapatkan alamat tersebut, CPU mulai mengeksekusi
alamat yang sudah ditetapkan tersebut. Yang berarti ISR dimulai dari
alamat ini. Setiap kode-kode-nya dieksekusi sampai ditemukannya
perintah RETI, yang berarti akhir dari layanan interupsi.
5. Setelah mengeksekusi perintah RETI, mikrokontrolller kembali
ke alamat yang ditinggalkan tadi sesaat sebelum interupsi. Yaitu
dengan cara mengambil kembali simpanan alamat yang tadi
diletakkan di STACK, dengan mem-POP dua kali dan dimasukkan ke
PC.

Sekarang PC sudah berisi alamat yang tadi ditinggalkan. Prosesnya


mirip dengan RET.

Harap dicatat, isi dari STACK adalah sangat penting bagi hal ke 5.
Sehingga kita harus hati-hati untuk memodifikasi STACK. Yaitu hati-hati
dalam penggunaan CALL serta jumlah POP dan PUSH yang harus sama
dalam sebuah ISR.

Enam Interupsi dalam 8051

Sebenarnya ada 5 interupsi yang bisa kita gunakan pada 8051. Namun
beberapa datasheet menyebutkan dengan 6 interupsi. Itu karena
datasheet memasukkan reset sebagai interupsi. Adapun ke-enam
interupsi ini dialokasikan sebagai berikut.
1. RESET. Saat pin reset diaktifkan, PC menjadi 0000h (Awal
program). Semua isi register dihapus menjadi 00h. Semua port
menjadi FFh. Sehingga dengan reset ini, CPU benar-benar
memulai dari awal. (sebagaimana yang dibahas pada BAB 4)
2. Dua interupt lainnya adalah Timer. Salah satunya adalah Timer-0
dan satunya lagi adalah Timer-1. Lokasi memory pada Interupt
Vector Table dari Timer ini masing-masing adalah 000Bh dan
001Bh.
3. Dua Interupt lainnya lagi adalah eksternal hardware interupt. Pin
12 (P3.2) dan pin 13 (P3.3) pada port 3 digunakan sebagai
Interupsi Hardware Ekternal masing-masing INT0 dan INT1. Lokasi
memory untuk kedua interupsi ini adalah 0003h dan 0013h.
4. Komunikasi serial juga memiliki satu Interupsi yang digunakan
oleh kedua mode transfer data, baik itu pengiriman (melibatkan
TI) dan penerimaan (melibatkan RI). Lokasi dari ISR interupsi ini
adalah 0023h.

Harap dilihat pada tabel 11.1 bahwa ada batasan jumlah byte diantara
tiap-tiap interupt vektor Table. Misalnya untuk INT-0, interupt hardware
eksternal 0, total hanya memiliki 8-byte mulai dari 0003h 000Ah. Hal
yang sama juga ada pada alamat-alamat yang lain. Bagaimana kalau
ternyata besar ISR lebih dari 8-byte. Oleh karena itu buatlah ISR
ditempat lain yang aman. Dan berikanlah instruksi Ajmp atau LJmp
pada Interupt Vektr Table tersebut, sehingga CPU dapat menunjuk pada
ISR yang lokasinya lebih jauh dan aman.

Dari tabel 11-1, pada kenyataannya hanya ada 3 byte yang disediakan
untuk RESET. Yaitu alamat 0000, 0001 dan 0002. Sedang 0003 sudah
menjadi milik INT0. Dengan alasan ini pembuat program selalu
menggunakan alamat tersebut untuk diisi instruksi LJMP atau AJMP
sebagai instruksi pertama. Sehingga progam dapat melompati Interupt
Vector Table. Tapi jika kita memang tidak menggunakan interupsi
apapun, tentu saja alamat pada Interupt Vector Table dapat digunakan
secara bebas.

Menghidupkan dan mematikan interupt

Setelah reset, semua interupsi dalam keadaan mati (disabled / masked),


yang berarti CPU tidak akan merespon interupsi apapun. Interupsi harus
dihidupkan melalui software agar mikrokontroller bisa meresponnya.
Ada sebuah register yang dinamakan IE (Interupt Enable) yang bertugas
untuk menghidupkan dan mematikan masing-masing interupsi. Gambar
11-2 menunjukkan register IE ini. Ingat IE adalah register yang juga bisa
dialamati Bit.
Dari gambar 11-2 kita dapat melihat D7 dari register tersebut
adalah EA (Enable All). Kita harus men-set bit ini menjadi 1s agar bit-bit
yang lain dalam register ini berpengaruh. D6 tidak digunakan, sedang
D5 hanya digunakan pada 8052. D4 adalah milik interupt serial, dan
demikian seterusnya. Misalnya jika kita hendak mengaktifkan interupsi
Timer-0, maka kita harus men-set D1. Interupsi masih belum bisa
dikatakan aktif, sebelum kita juga men-set D7. Sebaliknya jika D7 clear
atau rendah. Maka semua bit interupsi yang lain dianggap tidak aktif.
Lho jadi apa kegunaan Bit EA ini? Ada kalanya kita menginginkan
sebuah rutin, dimana rutin tersebut tidak boleh diganggu oleh interupsi
apapun, cukup hanya dengan satu instruksi CLR IE.7 atau CLR EA.
Setelah rutin selesai kita bisa mengembalikan pada keadaan semua,
juga hanya dengan satu instruksi SETB IE.7 atau SETB EA. Cara
tersebut jauh lebih efisien dari pada kita harus memeriksa semua bit
interupsi yang aktif.

Langkah-langkah menghidupkan Interupsi

Untuk menghidupkan interupsi kita harus ikuti langkah-langkah ini.


1. Bit D7 dari register IE, yaitu EA harus di-set menjadi 1s. Agar bit-bit
yang lain bekerja.
2. Setelah EA = 1, maka setiap bit pada IE yang bersangkutan akan
membuat interupsi bekerja. Namun jika EA = 0, tidak akan ada interupsi
walaupun bit-bit interupsi yang lain dalam keadaaan tinggi (1s).

III. ALAT DAN BAHAN


1. Komputer / laptop
2. Modul ARM
3. Kabel konektor
4. Adaptor

IV. PROSEDUR PERCOBAAN


1. Buka software STM32 Cube
2. Tampilan awal STM32 Cube

3. Pilih New Project kemudian pilih MCU STM32F407VGX

4. Pilih USART yang akan digunakan (Misal USART1 mode Asynchronous) dan
tentukan RCC HSE Crystal

5. Atur Clock Configuration seperti pada tampilan dibawah


6. Atur Baud Rate, Word Length, Parity, dan Stop Bits pada USART1 Configuration

7. Periksa pengaturan diatas. Bila semua sudah sesuai, simpan file

8. Bila tahapan diatas telah dilakukan, maka program akan Generate Code, yang
selanjutnya akan dialihkan ke program Keil uVision 5 untuk pemrograman C.

Anda mungkin juga menyukai