Anda di halaman 1dari 9
Laboratorium Digital Departemen Teknik Elektro Fakultas Teknik Universitas Indonesia MODUL PRAKTIKUM SISTEM BERBASIS
Laboratorium Digital Departemen Teknik Elektro Fakultas Teknik Universitas Indonesia MODUL PRAKTIKUM SISTEM BERBASIS

Laboratorium Digital Departemen Teknik Elektro Fakultas Teknik Universitas Indonesia

MODUL PRAKTIKUM SISTEM BERBASIS KOMPUTER

Modul 8: Timer Interrupt

Tujuan:

1. Memahami timer interrupt pada mikrokontroler

8051.

2. Memahami cara pembuatan program dengan fitur timer interrupt.

Modul Praktikum Sistem Berbasis Komputer

Laboratorium Digital, Departemen Teknik Elektro

Modul 8: Timer Interrupt

Contents

1 | TIMER & MACHINE CYCLE

2

2 | TIMER SFR

3

1. THx & TLx

3

2. TMOD

3

3. TCON

4

3 | TIMER INTERRUPT

6

4 | PWM

8

Copyright

©2016

Modul Praktikum Sistem Berbasis Komputer

MODUL 8:

TIMER INTERRUPT

1 | TIMER & MACHINE CYCLE

Mikrokontroler 8051 beroperasi berdasarkan pada eksternal crystal/kristal. Kristal adalah sebuah perangkat elektronik yang menghasilkan pulsa dengan suatu frekuensi tetap. Mikrokontroler 8051 biasanya menggunakan kristal dengan frekuensi 12MHz atau 11,059MHz. Mikrokontroler 8051 bekerja berdasarkan pada siklus mesin. Satu siklus mesin pada mikrokontroler sama dengan 12 pulsa kristal. Sehingga pada mikrokontroler 8051 yang menggunakan kristal sebesar 12MHz kita dapat menghitung berapa siklus mesin yang dijalankan per detiknya dengan:

12.000.000 ÷ 12 = 1.000.000 siklus mesin

Siklus mesin yang dibutuhkan untuk menjalankan instruksi dapat dilihat pada datasheet dari mikrokontroler yang digunakan.

Mikrokontroler 8051 dilengkapi dengan dua buah fitur timer. Pada mikrokontroler, secara umum timer memiliki empat fungsi yaitu menghitung waktu antar events (waktu kalkulasi), membuat event periodik (timer interrupt), menghasilkan baud rate untuk komunikasi serial dan untuk pulse with modulation. Timer akan bertambah setiap 1 siklus mesin. Sehingga untuk membuat program delay dapat dilakukan dengan memanfaatkan fungsi timer dan kalkulasi siklus mesin sesuai dengan kristal yang digunakan.

Modul Praktikum Sistem Berbasis Komputer

2 | TIMER SFR

Mikrokontroler 8051 memiliki dua buah timer yaitu TIMER0 dan TIMER1 yang memiliki fungsi yang serupa. Kedua timer ini saling berbagi dua SFR (Special Function Register) yaitu TMOD (timer mode) dan TCON (timer control) dan memiliki dua SFR khusus untuk setiap timer yaitu TH0/TL0 dan TH1/TL1.

SFR Name

Description

SFR Address

TH0

Timer 0 High Byte

8Ch

TL0

Timer 0 Low Byte

8Ah

TH1

Timer 1 High Byte

8Dh

TL1

Timer 1 Low Byte

8Bh

TCON

Timer Control

88h

TMOD

Timer Mode

89h

1. THx & TLx

SFR THx dan TLx adalah register yang menyimpan nilai dari timer. THx adalah nilai high byte sedangkan TLx adalah low byte. Sehingga setiap timer memiliki nilai maksimal yaitu 0FFFF dalam heksadesimal atau 65535 dalam desimal. Misalnya jika ingin memasukkan nilai 1000 desimal atau 3E8 heksadesimal pada TIMER0 maka yang harus dilakukan adalah:

MOV TL0, #0E8h MOV TH0, #3h

Sehingga pada register akan terlihat seperti:

 

TH0 bernilai 3h

   

TL0 Bernilai 0E8h

 

0

0

0

0

0

0

1

1

1

1

1

0

1

0

0

0

2. TMOD

TMOD SFR digunakan untuk mengendalikan mode dari operasi kedua timer. Setiap bit dari TMOD memiliki fungsi spesifik dalam menjalankan timer. Empat bit

Modul Praktikum Sistem Berbasis Komputer

pertama (4 high byte) pada TMOD mengendalikan fungsi TIMER1. Sedangkan empat

bit terakhir (4 low byte) mengendalikan fungsi TIMER0.

Bit

Name

Explanation of Function

Timer

7

GATE1

When this bit is set the timer will only run when INT1 (P3.3) is high. When this bit is clear the timer will run regardless of the state of INT1.

1

6

C/T1

When this bit is set the timer will count events on T1 (P3.5). When this bit is clear the timer will be incremented every machine cycle.

1

5

T1M1

Timer mode bit (see below)

1

4

T1M0

Timer mode bit (see below)

1

3

GATE0

When this bit is set the timer will only run when INT0 (P3.2) is high. When this bit is clear the timer will run regardless of the state of INT0.

0

2

C/T0

When this bit is set the timer will count events on T0 (P3.4). When this bit is clear the timer will be incremented every machine cycle.

0

1

T0M1

Timer mode bit (see below)

0

0

T0M0

Timer mode bit (see below)

0

Bit timer mode mengatur mode operasi pada timer. Mode tersebut adalah:

TxM1

TxM0

Timer Mode

Description of Mode

0

0

 

0 13-bit Timer.

0

1

 

1 16-bit Timer

1

0

 

2 8-bit auto-reload

1

1

 

3 Split timer mode

Contoh program untuk mengatur mode operasi timer 16 bit:

MOV TMOD, #11h

3.

TCON

Bit-bit pada TCON SFR berfungsi untuk mengaktifkan timer dan melakukan

pengecekan apakah nilai timer sudah melebihi.

Modul Praktikum Sistem Berbasis Komputer

   

Bit

   

Bit

Name

Address

Explanation of Function

Timer

7

TF1

8Fh

Timer 1 Overflow. This bit is set by the microcontroller when Timer 1 overflows.

1

     

Timer 1 Run. When this bit is set Timer

 

6

TR1

8Eh

is turned on. When this bit is clear Timer 1 is off.

1

1

5

TF0

8Dh

Timer 0 Overflow. This bit is set by the microcontroller when Timer 0 overflows.

0

     

Timer 0 Run. When this bit is set Timer

 

4

TR0

8Ch

is turned on. When this bit is clear Timer 0 is off.

0

0

Bit 0-3 pada TCON SFR merupakan bit untuk external interrupt. Contoh program

untuk mengaktifkan timer:

SETB TR0 JNB TF0, $

; mengaktifkan TIMER0 ; menunggu hingga TIMER0 overflow

Modul Praktikum Sistem Berbasis Komputer

3 | TIMER INTERRUPT

Mikrokontroler

8051

menghasilkan interrupt:

dapat

diatur

sehingga

beberapa

Timer 0 Overflow.

Timer 1 Overflow.

Penerimaan/Pengiriman Karakter Serial.

External Event 0.

External Event 1.

event

berikut

akan

Pada saat interrupt diaktifkan dan telah terpicu maka program akan melompat ke alamat

yang telah ditetapkan.

Interrupt

Flag

Interrupt Handler Address

External 0

IE0

0003h

Timer 0

TF0

000Bh

External 1

IE1

0013h

Timer 1

TF1

001Bh

Serial

RI/TI

0023h

Untuk menulis program yang akan dijalankan pada saat interrupt dapat dilakukan dengan

instruksi ORG:

ORG 0Bh

; menulis pada alamat 0Bh untuk interrupt timer0

CLR TF0

; tulis kode program yang ingin dieksekusi disini ; Clear timer flag karena interrupt dipanggil saat flag

;

berubah dari low ke high

RETI

; kembali ke program utama

IE SFR (interrupt enable) berfungsi untuk mengaktifkan interrupt. Berikut fungsi dari bit-

bit pada IE SFR:

Bit

Name

Bit Address

Explanation of Function

7

EA

AFh

Global Interrupt Enable/Disable

6

-

AEh

Undefined

5

-

ADh

Undefined

4

ES

ACh

Enable Serial Interrupt

3

ET1

ABh

Enable Timer 1 Interrupt

2

EX1

AAh

Enable External 1 Interrupt

Modul Praktikum Sistem Berbasis Komputer

1

ET0

A9h

Enable Timer 0 Interrupt

0

EX0

A8h

Enable External 0 Interrupt

Untuk mengaktifkan salah satu interrupt maka global interrupt juga harus diaktifkan. Berikut contoh program sederhana yang memanfaatkan interrupt untuk melakukan pengecekan terhadap sensor yang terpasang pada port 0 (8 bit data sensor) setiap 65536 (16 bit) siklus mesin atau 65,536 ms jika menggunakan kristal 12MHz:

ORG 0h

; Program akan dieksekusi mulai dari alamat 0

JMP SETUP

; Lompat ke program utama

ORG 0Bh

; Menulis pada alamat 0Bh untuk interrupt timer0

TIMER_0_INTERRUPT:

MOV R7, P0 CLR TF0

; Memindahkan nilai port0 (misalnya sensor) ke R7 ; Set timer flag low karena interrupt dipanggil saat

RETI

flag berubah dari low ke high ; Kembali ke program utama

;

ORG 100h SETUP:

; Menulis program pada alamat 100h

MOV TMOD, #01h SETB ET0 SETB EA MOV TH0, #0FFh MOV TL0, #0FFh SETB TR0

; Set timer 0 mode 0 yaitu timer 16 bit ; Mengaktifkan timer interrupt 0 ; Mengaktifkan timer interrupt global ; Set nilai awal timer 0 (nilai maksimal) ; Set nilai awal timer 0 (nilai maksimal) ; Mulai timer 0

LOOP:

; Program utama yang berjalan

JMP LOOP

; Disini bisa melakukan proses pengolahan data sensor ; Looping

END

Modul Praktikum Sistem Berbasis Komputer

4 | PWM

PWM atau Pulse Width Modulation merupakan suatu teknik untuk menghasilkan sinyal analog dengan pin digital. Teknik ini menghasilkan gelombang kotak yaitu perubahan antar sinyal 1 dan sinyal 0. Pola hidup-mati sinyal ini dapat mensimulasikan voltase antara sinyal hidup (5 V) dan sinyal mati (0 V) dengan cara mengubah porsi dari sinyal hidup dan sinyal mati pada suatu periode. Durasi dari sinyal hidup dalam satu periode waktu biasa disebut dengan pulse width.

dalam satu periode waktu biasa disebut dengan pulse width . Nilai persentase dari pulse width dikalikan

Nilai persentase dari pulse width dikalikan dengan nilai voltase maksimal dari sinyal hidup akan menghasilkan nilai voltase yang diinginkan. Misalnya nilai voltase sinyal hidup adalah 5 V dan pulse width 50% maka akan menghasilkan keluaran 2,5 V. PWM pada mikrokontroler 8051 dapat dihasilkan dengan menggunakan timer interrupt. Timer interrupt akan bertugas untuk melakukan perubahan sinyal hidup dan mati secara periodik.