TIMER / COUNTER


T I M E R/ COUNTER

TUJUAN
1. Mahasiswa memahami fungsi timer dan counter pada mikrokontroller
2. Mahasiswa memahami rangkaian interface untuk aplikasi timer dan counter
3. Mahasiswa dapat memanfaatkan fungsi counter untuk mencacah pulsa
4. Mahasiswa dapat memanfaatkan fungsi timer untuk membangkitkan clock dengan periode tertentu.

FUNGSI COUNTER

Pada keluarga MCS-51 terdapat dua buah timer/ counter 16 bit, yang dapat dikonfigurasikan sebagai timer atau counter, 8 bit, 13 bit atau 16 bit sesuai dengan mode yang dipilih. Gambar berikut merupakan contoh aplikasi Counter 8 bit dengan menggunakan mode 3

Percobaan 9.1. Aplikasi Mode 3 sebagai counter 8 bit dengan output LED

Pada percobaan ini, pulsa diambil melalui clock generator yang dibangkitkan oleh IC 555 yang mempunyai frekuensi 1 Hz, hasil cacahan biner pada register counter akan ditampilkan pada LED.

Lakukan beberapa langkah percobaan sebagai berikut:
1. Hubungkan 1 buah kabel antara P3.5 dengan output clock IC 555
2. Hubungkan jumper konektor LED_EN
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
6. Ketik program berikut ini: (download file prog91a.asm)

 org 0h
Start: Mov TMOD,#00000111b ; mode 3 counter 8 bit timer 0
 Setb TR0 ; TR1 = 0, start counting
Get: Mov A, TL0 ; A = TL0
 CPL A ; A = NOT A
 Mov P0, A ; P0 = A
 Sjmp Get ; Looping Forever
 End

7. Simpanlah program yang anda ketik dan beri nama : prog91a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
10. Lakukan pengamatan pada LED ? dan lengkapi tabel berikut.

INPUT
Clock
DISPLAY LED
D1
D2
D3
D4
D5
D6
D7
D8
1
2
3
4
:
20

Percobaan 9.2. Aplikasi Timer 0, Mode 3 sebagai counter 8 bit dengan output 7 Segmen

Pada percobaan ini, pulsa diambil melalui clock generator yang dibangkitkan oleh IC 555 yang mempunyai frekuensi 1 Hz, hasil cacahan biner pada register counter akan ditampilkan pada 7 Segmen.
Lakukan beberapa langkah percobaan sebagai berikut:
1. Hubungkan 1 buah kabel antara P3.5 dengan output clock IC 555
2. Hubungkan jumper konektor 7Segmen_EN
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
6. Ketik program berikut ini: (download file prog92a.asm)

ratusan equ 30h
puluhan equ 31h
satuan equ 32h 
 Org 0h
 Mov TMOD,#00000111b ; mode 3 counter 8 bit timer 0
 Setb TR0 ; TR1 = 0, start counting
Get: Mov A, TL0 ; A = TL0
 Call Bin2Dec ; panggil subroutine biner ke desimal
 Call Display7Segmen; panggil subroutine display 7 segmen
 Sjmp Get ;Looping Forever
;
Bin2Dec:
 mov b,#100d
 div ab
 mov ratusan,a
 mov a,b
 mov b,#10d
 div ab
 mov puluhan,a
 mov satuan,b
 ret 
;
Display7Segmen:
 clr P3.5 
 clr P3.6
 clr P3.7
 mov A, ratusan
 mov DPTR,#Data7segmen
 movc A,@A+DPTR
 mov P0,A
 call delay 
;
 setb P3.5 
 clr P3.6
 clr P3.7
 mov A, puluhan
 mov DPTR,#Data7segmen
 movc A,@A+DPTR
 mov P0,A
 call delay 
; 
 clr P3.5 ;
 setb P3.6
 clr P3.7
 mov A, satuan
 mov DPTR,#Data7segmen
 movc A,@A+DPTR
 mov P0,A
 call delay 
 ret
;
delay: mov R0,#0
delay1:mov R2,#0fh
 djnz R2,$
 djnz R0,delay1
 ret
;
Data7segmen:
 db 11000000b,11111001b,10100100b,10110000b,10011001b
 db 10010010b,10000010b,11111000b,10000000b,10010000b
;
end

7. Simpanlah program yang anda ketik dan beri nama : prog92a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
10. Lakukan pengamatan pada display 7 segmen ? dan lengkapi tabel berikut.

 

Clock ke
Display 7 Segmen
1
?
2
?
3
?
4
?
5
?
:
:
20
?

FUNGSI TIMER

Pada keluarga MCS-51 terdapat dua buah timer/ counter 16 bit, yang dapat dikonfigurasikan sebagai timer atau counter, 8 bit, 13 bit atau 16 bit sesuai dengan mode yang dipilih. Gambar berikut merupakan contoh aplikasi Counter 16 bit dengan menggunakan mode 1

Percobaan 9.3. Aplikasi Timer 1, sebagai timer 16 bit dengan output LED

Pada percobaan ini, clock akan dibangkitkan dengan menggunakan fungsi timer 16 bit, dengan periode 1 detik, Ton = 0,5 detik dan Toff = 0,5 detik, dengan tampilan LED

Pada mode ini, dengan kristal 12MHz maka timer akan overflow setiap 65.536 udetik. Pada percobaan ini, untuk membangkitkan interupsi setiap 1000 udetik maka data yang harus diisikan pada register TL1 dan TH1 adalah sebagai berikut:
65536 – 10000 = 55536 d or D8F0h
Maka interupsi TF1 akan segera dibangkitkan setiap 1000 x 1 udetik = 0,01 detik
pada pemrograman ini, RO diimplementasikan sebagai counter software, Register R0 akan increment setiap Timer 1 overflow. Jika register R7 telah mendeteksi nilai 50 maka port P0.0 ( LED D0 ) akan nyala selama = 0,01 x 50 detik = 0,5 detik.

Lakukan beberapa langkah percobaan sebagai berikut:
1. Lepas kabel yang menghubungkan antara P3.5 dengan output clock IC 555
2. Hubungkan jumper konektor LED_EN
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
6. Ketik program berikut ini: (download file prog93a.asm)

 Org 0h Start: Setb P0.0 ;P0.0 = 1 call Delay ;
call delay time Clr P0.0 ;
P0.0 = 0 call delay ;
call delay time Sjmp Start ;
Looping Forever ; 
Delay: Mov R0,#0 ;
R0 = 0 Mov TMOD,#00010000b ;
Mode 1, Fungsi =Timer 1 16 bit Load: Mov TH1, #0D8h ;
TH1 = D8h Mov TL1, #0F0h ; TL1 = F0h Setb TR1 ; 
TR1 = 1, Start Running OFlow: JNB TF1, OFlow ; 
jump to OFlow if TF1 =0 Clr TR1 ; 
TR1 = 0 Clr TF1 : TF1 = 0 Inc R0 ; 
R0 = R0+1 CJNE R0,#50,Load Ret ; 
End

7. Simpanlah program yang anda ketik dan beri nama : prog93a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
10. Lakukan pengamatan pada nyala LED
11. Lakukan modifikasi pada program tersebut untuk membangkitkan frekuensi 10 Hz, 100 Hz, dan 500 Hz dan lakukan pengamatan pada layar osciloscope

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s