Jumat, 22 April 2011

Memanfaatkan Timer AT89S52

Mikrokontroler

Download artikel ini :Klik Disini
Download Schematic :Klik Disini
Download Source Code :Klik Disini

Disini, saya akan menjelaskan pemanfaatan waktu timer pada Mikrokontroler keluarga MCS51. Sebelum membaca tutorial ini, alangakah baiknya membaca tutorial sebelumnya. Tutorial sebelumnya yaitu Membaca Port Pada AT89S52. Pembacaan terlebih dahulu tutorial tersebut dimaksudkan agar memudahkan untuk mencerna materi ini. Pada AT89S52 ini dilengkapi dengan tiga perangkat timer/counter, masing-masing dinamakan timer 0, timer 1, dan timer 2. Perangkat timer./counter tersebut merupakan perangkat keras yang terpadu dalam mikrokontroler AT89S52, untuk mengaksesnya digunakan register khusus yang tersimpan dalam SRF (Special Function Register).
Pencacah biner Timer 0 diakses melalui register TL0 dan register TH0, pencacah biner Timer 1 diakses melalui register TL1 dan TH1, dan pencacah biner Timer 2 menggunakan register TL2, TH2, RCAP2L, dan RCAP2H serta indicator limpahan pada bit TF2.
Untuk mengatur kerja dari Timer 0 dan Timer 1 ini digunakan 2 register tambahan. Register tambahan tersebut adalah register TCON dan register TMOD, sedangkan untuk Timer 2 digunakan register T2CON dan T2MOD. Timer/Counter ini dapat digunakan berbagai macam, misalnya membuat waktu tunda, serta dapat juga digunakan untuk menghasilkan suara dengan frekuensi tertentu, dan masih banyak lagi.
Disini yang akan saya jelaskan adalah membuat waktu tunda dengan tundaan 1 menit. Mengaktifkan LED selama 1 menit dengan menekan tombol pada port mikro. Dalam melakukan tundaan ini pemanfaatan timer-lah yang paling akurat untuk melakukan tundaan. Karena ada 4 macam mode kerja timer, maka sebelum membuat program harus memeriksa tundaan maksimal yang bias dilakukan (Mode Kerja Timer). Untuk melihatnya dapat dilihat pada tabel dibawah ini :
Tabel Timer Pada AT89S52
Tabel tundaan maksimum tiap Mode Kerja Timer
(Frekuensi Kristal = 12 MHz)
Jika dilihat dari table diatas, tidak ada satupun untuk melakukan waktu tunda 1 menit. Sehingga yang dilakukan adalah pengulangan kerja timer agar mendapatkan total waktu tunda 1 menit. 10 detik = 10.000.000 mikrodetik. Maka yang dilakukan adalah pengulangan pada Mode 1.
Mode 1 : 50.000 mikrodetik x 200 pengulangan = 10.000.000 mikrodetik
Langsung saja menuju rangkaian dan program untuk lebih jelasnya.

Gambar rangkaian :

Rangkaian Timer

Untuk Listingnya :
HITUNG EQU 200
TUNDAAN EQU -50000
   ORG 0H
   MOV P3, #0FFH
   MOV TMOD,#01H
MULAI:
   MOV A, P3
   CJNE A,#0FEH,MULAI
   MOV P2, #0H
   ACALL DELAY
   ACALL DELAY
   ACALL DELAY
   ACALL DELAY
   ACALL DELAY
   ACALL DELAY
   SJMP MULAI
DELAY:
   MOV R1, #HITUNG
TERUS:
   MOV TH0,#HIGH TUNDAAN
   MOV TL0,#LOW TUNDAAN
   SETB TR0
   JNB TF0,$
   CLR TR0
   CLR TF0
   DJNZ R1, TERUS
   RET
END

*Untuk penjelasan listingnya, dapat download artikel ini atau source code.
*Schematic dibuat oleh penulis menggunakan Proteus 7.5 SP4, dan Source Code dibuat menggunakan MIDE-51. Bagi yang belum mempunyai dapat download link dibawah ini:
Download Proteus 7.6 SP4 :Klik Disini
Download MIDE-51 :Klik Disini
Artikel Terkait Lainnya :


4 comments:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites