TIMER DAN COUNTER MIKROKONTROLER ATMEL

dokumen-dokumen yang mirip
PORT SERIAL MIKROKONTROLER ATMEL AT89C51

Timer Counter. D3 Telekomunikasi.

SISTEM INTERUPSI MIKROKONTROLER ATMEL

PERTEMUAN TIMER & COUNTER MIKROKONTROLER 89C51

MAKALAH. Timer atau Counter 0 dan 1. Oleh : Rizky Dwi N ( ) Satrio Teguh Yulianto ( ) D3 TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO

Percobaan 5. TIMER/COUNTER Menggunakan DT-51 MinSys

MODE OPERASI TIMER/COUNTER. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

4. Port Input/Output Mikrokontroler MCS-51

AT89S52 8kByte In-System Programmable Mikrokontroler

Tabel Perbandingan ROM dan RAM pada beberapa seri ATMEL

Memprogram Timer Counter

PERCOBAAN 9 T I M E R/ COUNTER

Pertemuan 10 Arsitektur Mikrokontroler 8051

Memprogram Interupsi AT89S51

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

Alarm Pintu, Harap Pintu Tutup Kembali, Jangan Buka Pintu Lama-lama versi 2

ORGANISASI MEMORI MIKROKONTROLER MCS-51. Yoyo Somantri dan Erik Haritman Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

REGISTER-REGISTER Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

Mikrokontroler 89C51 Bagian II :

Gambar 3.1 Blok Diagram Port Serial RXD (P3.0) D SHIFT REGISTER. Clk. SBUF Receive Buffer Register (read only)

Laporan Modul 2, EL3006 Timer/Counter dan Interrupt Jongguran Sondang DN ( )/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius

Wireless Infrared Printer dengan DST-51 (Komunikasi Infra Merah dengan DST-51)

TERJADI INTERRUPT MELAYANI INTERRUPT KEMBALI MENERUSKAN PROGRAM YANG TERHENTI PROGRAM YANG SEDANG BERJALAN. Gambar 4.1 Interrupt

PERCOBAAN 11 PULSE WIDHT MODULATION

Perancangan Serial Stepper

BAB III ANALISA DAN CARA KERJA RANGKAIAN

BAB V HASIL DAN PEMBAHASAN Perangkat Keras (Hardware)

Gambar 1.1. Diagram blok mikrokontroller 8051

Percobaan 5 PENGENALAN MIKROKONTROLER 8051

I. Pendahuluan. Mikroprosesor CPU. Gambar 1. Perbedaan Mikrokontroler dengan Mikroprosesor

PORT PARALEL MIKROKONTROLER ATMEL AT89C51

Apa itu timer/counter?

BAB IV ANALISA DAN HASIL UJI COBA RANGKAIAN

PERTEMUAN INTERUPSI MIKROKONTROLER 89C51

TAMPILKAN NADA DTMF DAN DERING TELEPHONE OLEH MODUL DF-88 DAN MODUL DST-51 PADA LCD

BAB III KEGIATAN PENELITIAN TERAPAN

BAB 3 PERANCANGAN ALAT DAN PROGRAM

Wireless Infrared Printer dengan DST-51 (Pengambilan Data dari Standard Parallel Port)

Pengendalian 8 buah Motor oleh DST-51

BAB II LANDASAN TEORI

PERCOBAAN 15 I N T E R U P S I

BAB IV PENGUJIAN DAN ANALISA DATA

MIKROKONTROLER Arsitektur Mikrokontroler AT89S51

BAB II DASAR TEORI MIKROKONTROLER II (PENERIMA DATA) MEDIA PENGIRIMAN DATA. Gambar 2.1 Blok Pengiriman Data Mikrokontroler I ke Mikrokontroler II

Tabel 1. Karakteristik IC TTL dan CMOS

Percobaan 8 INTERFACE MIKROKONTROLER DAN KOMPUTER SECARA SERIAL

Blastica Press Release 2008

PENGHITUNG WAKTU DENGAN TAMPILAN LCD M1632 OLEH DST-51

Percobaan 6. SERIAL INTERFACE Menggunakan DT-51 MinSys

Teknik Interface Keypad 4x3 ke DST-51

PANDUAN DASAR MIKROKONTROLER KELUARGA MCS-51

Pendahuluan Mikrokontroler 8051

KOMUNIKASI DATA DENGAN MENGGUNAKAN TEKNIK RS485

BAB III PERANCANGAN DAN IMPLEMENTASI. Pada tugas akhir ini akan dibuat sebuah perangkat keras PLC dengan fasilitas

KENDALI LENGAN ROBOT MENGGUNAKAN MIKROKONTROLLER AT89S51

ANTAR MUKA DST-51 DENGAN MODUL AD-0809

PERCOBAAN 1 DISPLAY LED

BAB IV PENGUJIAN DAN ANALISA. Pengujian terhadap sistem yang telah dibuat dilakukan untuk mengetahui

DASAR INPUT/OUTPUT (1) (PORT PPI DAN PORT 1 SEBAGAI OUTPUT)

AKSES MEMORI Menggunakan DT-51 MinSys

BAB III RANCANGAN SISTEM. dirancanag. Setiap diagram blok mempunyai fungsi masing-masing. Adapun diagram

Timer/Counter. AVR ATMega 8535

AD Channel AD Conversion

USER MANUAL TIMER MICROCONTROLLER MATA DIKLAT : RANCANGAN ELEKTRONIKA

Memprogram Port sebagai Output dan Input Sederhana

DT-51 Application Note

BAB II TEORI DASAR PENUNJANG

BAB III PERANCANGAN SISTEM. 3.1 Pengantar Perancangan Sistem Pengendalian Lampu Pada Lapangan Bulu

BAB III PERANCANGAN ALAT

APLIKASI MIKROKONTROLER

Mikrokontroler Atmel 89C51

Register-register MT8888

Gambar Komunikasi serial dengan komputer

PETUNJUK PEMROGRAMAN DAN SET INSTRUKSI

ABSTRAK. rumah pelanggan listrik. Fungsi dari alat ini adalah menghitung seberapa besar

BAB VII DASAR FLIP-FLOP

BAB II TEORI DASAR 2.1 Suara Ultrasonik 2.2 Mikrokontroler AT89C51

PERCOBAAN 2 SAKLAR PUSH BUTTON

Praktek 1. Interfacing Layer. 1. Tujuan : 2. Alat-alat 1 Unit PC atau notebook Koneksi internet

MODUL 5 SISTEM PENGENDALIAN BERBASIS MIKROKONTROLER

BAB 3 PERANCANGAN SISTEM

PERTEMUAN. KOMUNIKASI MIKROKONTROLER 89C51 DENGAN KOMPUTER (Lanjutan)

DT-51 Application Note

BAB 2 LANDASAN TEORI. Mikrokontroler AT89S52 termasuk kedalam keluarga MCS-51 merupakan suatu. dua macam memori yang sifatnya berbeda yaitu:

BAB 3 PERANCANGAN SISTEM. pada sistem pengendali lampu telah dijelaskan pada bab 2. Pada bab ini akan dijelaskan

Simple As Possible (SAP) - 1. Abdul Syukur

PERANCANGAN ALAT PENYINARAN SCREEN SABLON PCB DENGAN PENGATURAN INTENSITAS CAHAYA BERBASIS MIKROKONTROLLER AT89S52

BAB 3 PERANCANGAN SISTEM

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR INSTRUKSI PERCABANGAN DAN LOOP

DASAR INPUT/OUTPUT (2) (PORT PPI DAN PORT 1 SEBAGAI INPUT/OUTPUT)

Akuisasi data dengan remote host AT89s51 melalui serial RS232

Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

BAB IV PROTOTYPE ROBOT TANGGA BERODA. beroda yang dapat menaiki tangga dengan metode pengangkatan beban pada roda

=== PENCACAH dan REGISTER ===

PERTEMUAN MEMORY DAN REGISTER MIKROKONTROLER

BAB III RANCANG BANGUN SISTEM KARAKTERISASI LED. Rancangan sistem karakterisasi LED diperlihatkan pada blok diagram Gambar

BAB 2 TINJAUAN TEORITIS

PERCOBAAN 4 INSTRUKSI PERCABANGAN. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

Program di computer (visual basic) Private Sub Command1_Click() End Sub. Private Sub Command2_Click() End Sub. Private Sub Command3_Click() End Sub

BAB II TINJAUAN PUSTAKA

Transkripsi:

Lab Elektronika Industri Mikrokontroler - 1 TIMER DAN COUNTER MIKROKONTROLER ATMEL I. TIMER DAN COUNTER Timer atau counter pada dasarnya adalah sebuah pencacah. Pencacah itu bisa dipakai sebagai pewaktu (timer) atau pencacah (counter). Jika sumber clock mempunyai frekuensi yang tetap dan telah diketahui, maka disebut pewaktu (timer) karena ini bekerja seperti penanda waktu. Umumnya untuk keperluan ini sumber clock berasal dari frekuensi kristal itu sendiri. Ketika sumber clock mempunyai frekuensi yang berubah-ubah, maka disebut sebagai pencacah (counter) karena bekerja seperti menghitung jumlah clock yang masuk. Umumnya sumber clock berasal dari luar mikrokontroler. Penghitungan clock oleh counter dilakukan ketika switch dalam keadaan on. Isi awal counter bisa diisi nilai awal, sehingga counter akan mencacah dari nilai awal tertentu. Isi cacahan setiap saat juga dapat dilihat untuk membaca nilai cacahan saat itu. Setelah hasil cacahan mencapai maksimum, isi cacahan akan kembali lagi ke nol. Keadaan ini disebut cacahan melimpah atau overflow. Pada AT89C51 terdapat 2 pencacah 16 bit yang dinamakan Timer 0 dan Timer 1. Sedang untuk AT89C52/55 mempunyai 3 pencacah hingga mempunyai Timer 0, 1, dan 2. Pencacah itu sendiri berada di register fungsi khusus yaitu: Timer 0 TL0 (alamat 8AH) dan TH0 (alamat 8CH) Timer 1 TL1 (alamat 8BH) dan TH1 (alamat 8DH) Timer 2 TL2 (alamat CCH) dan TH2 (alamat CDH) Untuk mengatur kerja timer digunakan 2 register tambahan yaitu TCON (Timer Control Register) di alamat 88H dan TMOD (Timer Mode Register) di alamat 89H. Dan khusus untuk timer 2 register yang digunakan adalah T2CON di alamat C8H dan T2MOD di alamat C9H. Ketika hasil cacahan overflow, ada bit khusus yang dipakai untuk menandai yaitu TF0 dan TF1 yang berada di register TCON bit 5 dan bit 7. Sedang untuk timer 2, dipakai TF2 yang berada di register T2CON bit 7. Pada timer 2 terdapat register RCAP2L dan RCAP2H yang digunakan untuk mengisi nilai awal cacahan dan juga untuk menyimpan hasil cacahan sehingga disebut register tangkap. Setiap timer yang ada bisa digunakan menjadi 4 mode operasi yaitu mode 0, 1, 2 dan 3. Dan setiap timer dapat bekerja secara sendiri-sendiri. Sehingga bisa saja timer 0 kerja pada mode 2 dan timer 1 kerja pada mode 1. Untuk jelasnya masing operasi kerja setiap mode akan dijelaskan di bawah. II. MODE KERJA TIMER 0 DAN TIMER 1

Lab Elektronika Industri Mikrokontroler - 2 Terdapat 4 macam mode kerja pada setiap timer. Masing-masing mode beroperasi sebagai berikut: Mode 0 : Pencacah Biner 13 bit Pencacah biner dibentuk dari TLx (TL0 atau TL1) dipakai hanya 5bit dan THx (TH0 atau TH1) sebagai 8bit. Limpahan dari TLx diumpankan ke THx yang keseluruhan menjadi pencacah 13 bit. Dari diagram terlihat bahwa sumber clock bisa berasal dari frekuensi kristal (Oscilator) yang telah dibagi 12 atau dari sumber eksternal yang dimasukkan ke pin T0 atau T1 yaitu fungsi alternatif dari P3.4 (pin 14) atau P3.5 (pin 15). Pemilihan dilakukan dengan mengatur C/ T. Jika C/ T = 0, sumber clock dari oscilator dan jika C/ T = 1, sumber clock dari luar. Untuk memulai pencacahan diatur dari TRx (TR0 atau TR1), GATE dan INTx. Jika GATE = 0, maka pengatur hanya berasal dari TRx saja. Jika GATE = 1, pencacah diatur dengan TRx dan pin INTx. Kondisi penting terjadi ketika isi cacahan melimpah dari 1FFFH ke 0000H sehingga terjadi overflow. Jika overflow terjadi maka bit interupsi TFx akan dibuat 1. Mode 1 : Pencacah Biner 16 bit Pada mode 1, timer bekerja seperti mode 0 tetapi kedua register TLx dan THx dipakai penuh sehingga membentuk pencacah biner 16 bit. Overflow terjadi ketika isi cacahan melimpah dari FFFFH ke 0000H dan bit interupsi TFx akan dibuat 1. Mode 2 : Pencacah Biner 8 bit isi ulang Pada mode 2, pencacah dibentuk dari register TLx yang membentuk pencacah 8 bit. Nilai isi ulang berada pada register THx. Setiap kali terjadi overflow, yaitu isi TLx melimpah dari FFH ke 00H, maka bit interupsi TFx dibuat 1 dan isi pencacah akan diisi nilai awal cacah dari isi THx.

Lab Elektronika Industri Mikrokontroler - 3 Pada mode ini bisa diatur frekuensi limpahan (overflow) dengan mengatur nilai yang disimpan di register THx. Aplikasi yang umum adalah memakai mode 2 untuk menentukan baudrate komunikasi serial. Mode 3 : Gabungan Pencacah Biner 16 bit dan 8 bit Pada mode ini Timer 0 dipakai untuk membentuk 2 rangkaian pencacah. Pertama, TL0 sebagai pencacah 8 bit dengan TF0 sebagai pemantau overflow, kedua TH0 juga sebagai pencacah 8 bit dengan sumber clock internal dan TF1 sebagai pemantau overflownya. Timer 1 masih dapat digunakan, hanya sudah tidak mempunyai sarana bit interupsi overflow TF1 lagi. Dengan ini, Timer 1 bisa dimanfaatkan untuk mengatur baudrate bagi port serial atau aplikasi yang tidak memerlukan interupsi. Pada mode 3, Timer 1 dihidupkan (mulai mencacah) dan dimatikan (berhenti mencacah) ketika masuk atau keluar mode 3 itu terjadi. Dengan mode 3 ini, seakan AT89C51 mempunyai 3 timer tidak hanya 2 dan untuk AT89C52/55 mempunyai 4 timer. III. REGISTER TIMER TMOD Timer Mode Register : 89H Reset TMOD = 00H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 GATE C/ T M1 M0 GATE C/ T M1 M0 Timer 1 Timer 0 Keterangan:

Lab Elektronika Industri Mikrokontroler - 4 Simbol Posisi Nama dan kegunaan GATE bit 7/bit 3 C/ T bit 6/bit 2 Jika GATEx = 0, pencacahan dimulai atau dihentikan tergantung TRx saja. Jika GATEx = 1, pencacahan dimulai atau dihentikan tergantung TRx dan INTx. Pengatur sumber clock, jika C/ T = 0 maka sumber clock adalah 1/12 Osc dan jika C/ T = 1, sumber clock dari luar lewat pin Tx atau P3.4 atau P3.5 M1 bit 5/bit 1 Pengatur mode Timer/Counter (lihat tabel di bawah) M0 bit 4/bit 0 Pengatur mode Timer/Counter (lihat tabel di bawah) M1 M0 MODE Keterangan 0 0 Mode 0 Pencacah 13 bit dengan register THx = 8 bit dan TLx = 5 bit 0 1 Mode 1 Pencacah 16 bit dengan register THx = 8 bit dan TLx = 8 bit 1 0 Mode 2 Pencacah 8 bit isi ulang. THx = isian ke counter 8 bit 1 1 Mode 3 Gabungan pencacah 8 bit (TL0 dan TH0) dan 16 bit (Timer 1) TCON Timer Control Register : 88H Reset TCON = 00H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 Keterangan: Simbol Posisi Nama dan kegunaan TF1 TCON.7 Tanda (flag) timer 1 yang akan diset 1 oleh hardware ketika terjadi overflow TR1 TCON.6 Bit kontrol timer 1 yang diset/diclear dengan software untuk on/off timer 1 TF0 TCON.5 Tanda (flag) timer 0 yang akan diset 1 oleh hardware ketika terjadi overflow TR0 TCON.4 Bit kontrol timer 0 yang diset/diclear dengan software untuk on/off timer 0 IE1 TCON.3 Tanda sisi interupsi eksternal 1. Di-set jika terdeteksi interupsi eksternal 1 pada sisi turun dan akan di-clear ketika rutin interupsi kemudian diproses. IT1 TCON.2 Control interupsi eksternal 1 yang di-set/clear untuk memilih triger interupsi eksternal 1 dengan sisi turun atau level rendah IE0 TCON.1 Tanda sisi interupsi eksternal 0. Di-set jika terdeteksi interupsi eksternal 0 pada sisi turun dan akan di-clear ketika rutin interupsi kemudian diproses. IT0 TCON.0 Control interupsi eksternal 0 yang di-set/clear untuk memilih triger interupsi

Lab Elektronika Industri Mikrokontroler - 5 eksternal 0 dengan sisi turun atau level rendah IV.MODE KERJA TIMER 2 KHUSUS PADA AT89C52/55 Pada AT89C52/55 terdapat tambahan 1 timer lagi yang disebut Timer 2. Ada 5 register pengatur Timer 2 adalah TL2, TH2, T2CON dan register tangkap (capture) yaitu RCAP2L dan RCAP2H. T2CON Timer 2 Control Register : 0C8H Reset T2CON = 00H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 TF2 EXF2 RCLK TCLK EXEN2 TR2 C/ T2 CP/ RL2 Keterangan: Simbol Posisi Nama dan kegunaan TF2 T2CON.7 Tanda (flag) timer 2 yang akan diset 1 oleh hardware ketika terjadi overflow dan harus di-clear dengan software. TF2 tidak akan di-set jika salah satu dari RCLK = 1 atau TCLK = 1 EXF2 T2CON.6 Tanda (flag) eksternal Timer 2 yang akan di-set jika suatu capture atau isi ulang disebabkan oleh adanya transisi negatif pada pin T2EX dan EXEN2 = 1. Jika interupsi Timer 2 aktif dan EXF2 = 1, maka CPU akan lompat ke rutin interupsi Timer 2. EXF2 harus di-clear dengan software. RCLK T2CON.5 Tanda (flag) clock Receive bagi port serial. Jika RCLK = 1, pulsa overflow Timer 2 digunakan untuk clock terima serial dan baudrate kirim diatur oleh Timer 1 pada komunikasi serial mode 1 dan 3. Jika RCLK = 0, overflow Timer 1 yang dipakai untuk clock terima serial. TCLK T2CON.4 Tanda (flag) clock Transmit bagi port serial. Jika TCLK = 1, pulsa overflow Timer 2 digunakan untuk clock kirim serial dan baudrate kirim diatur oleh Timer 1 pada komunikasi serial mode 1 dan 3. Jika TCLK = 0, overflow Timer 1 yang dipakai untuk clock kirim serial. EXEN2 T2CON.3 Tanda (flag) aktif eksternal Timer 2. Jika diset EXEN2 = 1 menyebabkan terjadi capture atau pengisian ulang counter saat ada transisi negatif pada pin T2EX dan Timer 2 tidak digunakan untuk clock serial. Jika EXEN2 = 0 menyebabkan Timer 2 akan mengabaikan kondisi pin T2EX. TR2 T2CON.2 Kontrol start/stop Timer 2. Jika diset TR2 = 1, Timer 2 akan memulai cacahan. C/ T2 T2CON.1 Pemilih sumber clock Timer 2. Jika C/ T2 = 0, clock dari 1/12 Osc dan jika C/ T2 = 1, clock dari eksternal di pin T2 pada transisi negatif. CP/ RL2 T2CON.0 Tanda (flag) capture atau isi ulang. Jika diset CP/ RL2 = 1, capture akan terjadi pada transisi negatif pin T2EX apabila EXEN2 = 1. Jika CP/ RL2 = 0, isi ulang akan terjadi pada transisi negatif pin T2EX jika EXEN2 = 1 atau jika terjadi overflow di Timer 2. Jika salah satu RCLK = 1 atau TCLK = 1, bit flag ini akan diabaikan dan menjadi mode isi ulang ketika Timer 2 overflow. Timer 2 juga bisa dioperasikan kedalam 3 mode operasi seperti terlihat pada tabel di bawah. RCLK + TCLK CP/ RL2 TR2 Mode operasi 0 0 1 Pencacah 16 bit isi ulang 0 1 1 Pencacah 16 bit capture 1 X 1 Pembangkit baudrate X X 0 Timer 2 mati 1. Mode Isi Ulang 16 Bit Pada mode pencacah 16 bit isi ulang register TL2 dan TH2 membentuk pencacah biner 16 bit. Nilai isi ulang (preset yaitu nilai awal cacahan) diambil dari register capture: RCAP2L dan

Lab Elektronika Industri Mikrokontroler - 6 RCAP2H. Mode isi ulang 16 bit diatur dengan TR2 = 1, CP/ RL2= 0, RCLK = 0 dan TCLK = 0. Sumber clock pencacah bisa berasal dari 1/12 Osc atau sumber eksternal yang masuk melalui pin T2 (P1.0). Pemilihan sumber clock diatur dengan bit C/ T2 di register T2CON. Jika C/ T2 = 0, maka sumber clock dari 1/12 Osc dan jika C/ T2 = 1, sumber clock dari eksternal. Gambar di atas adalah skema blok Timer 2 sebagai pencacah biner 16 isi ulang. Ketika sumber clock adalah internal sering kita menyebutnya pewaktu (timer) karena clock memakai frekuensi yang sudah diketahui yaitu sebesar 1/12 frekuensi oscilator. Jika memakai kristal 12MHz, maka clock akan mempunyai frekuensi 1Mhz. Jadi setiap hasil cacahan naik 1 maka akan memakan waktu 1µ detik. Sehingga waktu timer paling lama adalah 2 16 = 65 536µ detik atau 65,536 mili detik dan waktu terpendek adalah 1µ detik. Untuk kebutuhan waktu timer yang lebih lama bisa dilakukan dengan memakai kristal dengan frekuensi yang lebih rendah, atau dengan software melakukan pengulangan timer beberapa kali. Jika sumber clock dari ekstenal biasanya kita sebut sebagai pencacah (counter) karena disini biasanya kita ingin mencacah clock yang masuk melalui T2. Misalnya untuk mencacah jumlah item/barang yang lewat konveyor, menghitung kejadian dst. Jumlah cacahan maksimum adalah 65536 clock. Ketika jumlah cacahan telah maksimum sedang clock masih masuk lagi maka akan terjadi overflow dan bit TF2 akan diset 1. Jika bit TF2 = 1 (terjadi overflow) maka isi pencacah yaitu register TL2 dan TH2 akan otomatis akan diisi ulang oleh nilai dari register RCAP2L dan RCAP2H. Dari operasi kerja seperti ini mode isi ulang bekerja. RCAP2L dan RCAP2H diisi dengan software. Dengan cara ini dapat diatur overflow akan terjadi setiap berapa clock yang masuk. Overflow juga membuat bit TF2 diset sehingga terjadi interupsi Timer 2. Isi ulang otomatis juga akan terjadi ketika terdeteksi transisi negatif pada pin T2EX jika EXEN = 1. Bit EXEN (external enable) di register T2CON akan membolehkan isi ulang terjadi ketika ada transisi negatif di pin T2EX. Selain terjadi pengisian ulang, bit EXF2 juga diset sehingga terjadi interupsi Timer 2. 2. Mode Capture 16 Bit Mode capture 16 bit hampir sama dengan mode isi ulang. Sumber clock pencacah bisa dari internal maupun eksternal dengan mangatur bit C/ T2. Bit TR2 untuk men-start/stop pencacah. Ketika cacahan overflow akan mengeset bit TF2 sehingga timbul interupsi Timer 2. Jika EXEN2 = 1 dan terjadi transisi negatif di pin eksternal T2EX, maka bit EXF2 juga akan diset 1 sehingga juga terjadi interupsi Timer 2. Sampai disini mode ini masih sama seperti mode isi ulang.

Lab Elektronika Industri Mikrokontroler - 7 Mode capture 16 bit terlihat seperti gambar di atas. Yang membedakan dengan mode isi ulang adalah bahwa register RCAP2L dan RCAP2H bukan untuk mengisi nilai awal cacahan tetapi pada mode capture kedua register itu dipakai untuk menangkap dan menyimpan isi cacahan. Perintah meng-capture isi cacahan didapat ketika terdeteksi transisi negatif di pin T2EX saat EXEN2 = 1. 3. Mode Generator Baudrate Pada mode ini hasil overflow Timer 2 digunakan untuk mengatur baudrate saat komunikasi serial terjadi di mode 1 serial atau mode 3 serial. Prinsip bekerjanya Timer 2 hampir sama dengan mode isi ulang. Nilai isi ulang diambil dari register RCAP2L dan RCAP2H yang digunakan untuk mengatur nilai preset pencacah untuk mengatur terjadinya overflow yang berarti mengatur baudrate. Jika overflow terjadi, terjadi juga proses mengisi ulang pencacah, tetapi bit TF2 tidak diset sehingga tidak terjadi interupsi Timer 2 pada mode ini. Perhatikan gambar di atas untuk memperjelas operasi mode generator baudrate. Baudrate untuk receive data serial dan transmit data serial bisa dibuat berbeda kecepatan. Hal ini diatur dari bit RCLK dan TCLK di register T2CON. Untuk lebih jelasnya lihat tabel di bawah. Yang perlu diperhatikan adalah bahwa sumber clock internal besarnya adalah 1/2 frekuensi kristal bukan 1/12 frekuensi kristal seperti mode lain atau timer lain. Interupsi Timer 2 masih bisa dihasilkan dengan cara membuat EXEN2 = 1 dan memberikan transisi negatif pada pin eksternal T2EX.

Lab Elektronika Industri Mikrokontroler - 8 Perhitungan baudrate mengikuti persamaan berikut: Baudrate Frekuensi Kristal Mode 1& 3 = 32 x [65536 - (RCAP2H, RCAP2L)] Tabel baudrate komunikasi serial mode 1 dan 3 RCLK TCLK SMOD Receive Baudrate Transmit Baudrate 0 0 0 1/32 Laju overflow Timer 1 1/32 Laju overflow Timer 1 0 0 1 1/16 Laju overflow Timer 1 1/16 Laju overflow Timer 1 0 1 0 1/32 Laju overflow Timer 1 1/16 Laju overflow Timer 2 0 1 1 1/16 Laju overflow Timer 1 1/16 Laju overflow Timer 2 1 0 0 1/16 Laju overflow Timer 2 1/32 Laju overflow Timer 1 1 0 1 1/16 Laju overflow Timer 2 1/16 Laju overflow Timer 1 1 1 X 1/16 Laju overflow Timer 2 1/16 Laju overflow Timer 2 T2MOD Timer 2 Mode Register : 0C9H Reset TMOD = X0H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - - - - - T2OE DCEN Keterangan: Simbol Posisi Nama dan kegunaan T2OE DCEN T2MOD. 1 T2MOD. 0 Bit yang meng-enable output Timer 2 Jika bit DCEN = 1 mengatur Timer 2 sebgai pencacah naik/turun Pada mode pencacah 16 bit isi ulang, Timer 2 bisa diatur sebagai pencacah naik/turun. Pada kondisi reset, bit DCEN di register T2MOD adalah 0 sehingga Timer2 adalah pencacah naik. Jika DCEN = 1, maka Timer 2 bisa dibuat sebagai pencacah naik/turun tergantung pada pin T2EX. Lihat skema blok di bawah ini:

Lab Elektronika Industri Mikrokontroler - 9 Jika T2EX = 1, maka Timer 2 sebagai pencacah naik (up-counter) dan jika T2EX = 0, maka Timer 2 sebagai pencacah turun (down-counter). Sebagai pencacah naik, nilai isi ulang diambil dari register RCAP2L dan RCAP2H. Dan sebagai pencacah turun, nilai isi ulang adalah cacahan maksimum atau 0FFFFH. Ketika mencacah turun dari 0FFFFH sampai nilai cacahan (register TL2 dan TH2) sama dengan isi register RCAP2L dan RCAP2H maka akan terjadi underflow. Jika Timer 2 underflow, maka bit TF2 akan diset dan pencacah diisi ulang nilai 0FFFFH lagi. Pada mode ini, bit EXF2 akan berubah dari 0 ke 1 jika Timer 2 overflow dan bit EXF2 akan berubah dari 1 ke 0 jika Timer 2 underflow. Pada mode ini, bit EXF2 tidak menyebabkan terjadi interupsi Timer 2. 4. Programmable Clock Out Timer 2 juga dapat dipakai untuk menghasilkan clock di pin T2 (P1.0) dengan frekuensi yang dapat diprogram dan dengan duty cycle 50%. Frekuensi clock dapat diprogram dari 61Hz hingga 4MHz pada frekuensi kristas 16MHz. Frekuensi clock yang dihasilkan dapat dihitung dari persamaan berikut: Frekuensi Kristal Frekuensi clock = 4 x [65536 - (RCAP2H, RCAP2L)] Programmable clock out dibuat dengan cara bit start/stop Timer 2. C/ T2 = 0 dan bit T2OE = 1 sedang TR2 untuk V. PENGGUNAAN TIMER/COUNTER a. Mengendalikan LED dengan waktu tunda 1 detik Pada contoh ini akan dikendalikan 8 LED di port 1 yang dinyalakan dan dimatikan dengan waktu tunda 1 detik. Untuk membuat penundaan 1 detik akan tepat jika digunakan timer. Dalam hal ini bisa dipakai Timer 0, Timer 1 ataupun Timer 2 dengan sama baiknya. Rangkaian yang digunakan seperti gambar di bawah. Misal dipilih Timer 0, pada mode 1 yaitu pencacah biner 16 bit yang sumber clock dari 1/12 Osc. Kristal yang dipakai adalah 12MHz, jadi frekuensi clock = 1/12 x 12MHz = 1MHz atau

Lab Elektronika Industri Mikrokontroler - 10 mencacah setiap 1µdetik. Pencacah akan overflow setelah mencacah dari 0 sampai 65535. Waktu yang dibutuhkan berarti 65536 µdetik untuk terjadi overflow. Karena yang diinginkan adalah menunda selama 1 detik = 1 000 000 µdetik, maka harus dilakukan pengulangan beberapa kali pencacahan. Ada beberapa cara yaitu: 1. Timer 0 mencacah 10 000 berarti menunda 10 000µdetik dan diulang 100 kali, atau 2. Timer 0 mencacah 20 000 berarti menunda 20 000µdetik dan diulang 50 kali, atau 3. Timer 0 mencacah 50 000 berarti menunda 50 000µdetik dan diulang 20 kali, dll Yang dipilih adalah cara 3 karena jumlah pengulangan yang terkecil (lebih tepat). Jadi rancangannya adalah: a. Memakai Timer 0 pada mode 1 untuk mencacah 50 000 clock b. Tunggu hingga Timer 0 overflow yaitu ditandai dengan bit TF0 = 1 c. Diulang sebanyak 20 pengulangan ;------------------------------------------------------------------------------------------ ; Program Kendali 8 LED di Port 1 dengan waktu tunda 1 detik ;------------------------------------------------------------------------------------------ ORG 0H Cacah EQU 20 ;cacah pengulangan Isi EQU -50000 ;isi Timer 0 yang mencacah dari -50 000 MOV TMOD, #01H ;Timer 0 mode 1 -> GATE = 0, C/ T = 0, M1 = 0, M0 = 1 Start: MOV P1, #0FH ;Hidupkan 4 LED kanan CALL Tunda ;Tunda 1 detik MOV P1, #0F0H ;Hidupkan 4 LED kiri CALL Tunda ;Tunda 1 detik SJMP Start ;Ulang ke start lagi ;------------------------------------------------------------------------------------------- ; Prosedur Tunda 1 detik ;------------------------------------------------------------------------------------------- Tunda: MOV R0, #Cacah ;Register R0 untuk pengulangan 20x Ulang: MOV TH0, #HIGH Isi ;Register TH0 diisi byte tinggi isi counter -50000 MOV TL0, #LOW Isi ;Register TL0 diisi byte rendah isi counter -50000

Lab Elektronika Industri Mikrokontroler - 11 SETB TR0 ;Hidupkan Timer 0 JNB TF0, $ ;Menunggu hingga Timer 0 overflow CLR TF0 ;Clear bit TF0 agar bisa dicek lagi nanti kalau overflow CLR TR0 ;Matikan dulu Timer 0 DJNZ R0, Ulang ;Cek R0 = 0? untuk pengulangan 20x RET ;Kembali dari pemanggilan prosedur END b. Menghitung pulsa dari eksternal dan ditampilkan di port 1 Aplikasi ini akan menghitung clock dari luar (eksternal) yang dimasukkan dan menampilkan sebagai biner di port 1. Sumber clock eksternal disimulasikan dengan menekan switch. ;---------------------------------------------------------------------------------------------------- ; Program menghitung clock eksternal dari switch SW1 ;---------------------------------------------------------------------------------------------------- ORG 0H MOV TMOD, #00000101b ;Timer 0 mode 1 SETB TR0 ;Hidupkan counter Start: MOV A, TL0 ;Baca isi cacahan ke A CPL A MOV P1, A ;Tampilkan isi cacahan sbg biner di port 1 SJMP Start END