Laboratorium MIKROKONTROLER 1
AVR AT89S52
Proyek 07
Timer Counter
Disusun oleh:
Kelompok EK-2A / 01
06 - Ari Hardoyo Abdur Rahman NIM 3.32.15.0.06
12 - Helmi Adi Pradana 3.32.15.0.12
18 - Prasetyo Muhammad Sakti 3.32.15.0.18
Proyek 07
TIMER COUNTER
1. Tujuan
Tujuan dari percobaan ini praktikan dapat :
Mahasiswa mampu memahami cara kerja sistem timer dan counter AVR AT 8952.
Mahasiswa mampu membuat sistem timer dan counter.
Mahasiswa mampu memahami perintah-perintah pada perangkat lunak (program), dan
mampu membuat perangkat lunak (program) untuk timer dan counter pada AVR AT
8952
Mahasiswa mampu menghubungkan dan mengfungsikan perangkat lunak (program)
pada modul keluaran (modul kit) dan contoh rangkaian simulasi pada software Proteus.
2. Dasar Teori
2.1. Mikrokontroler AVR AT 8952
Mikrokontroler AT89S51 memiliki dua buah timer / counter yang disebut Timer0
danTimer1 dengan kapasitas 16 bit. Istilah timer dan counter keduanya memiliki kesamaan
yaitu, adanya sumber detak yang akan mengaktifkannya. Keduanya juga merupakan pencacah
atau penghitung. Berikut hal yang membedakan antara keduanya yaitu:
Timer memiliki sumber detak yang tetap, yaitu oscillator.
Counter memiliki sumber detak yang tidak tetap, yaitu berasal dari mikrokontroler eksternal.
Berikut beberapa register untuk timer / counter yaitu :
1. THx, TLx (register timer / counter high dan low)
Subscript x dapat berarti 0 atau 1. X diisi 0 jika dimaksudkan timer0 dan x bernilai 1 jika
dimaksudkan timer1.
2. TMOD (register timer mode)
Register ini digunakan untuk mengatur mode timer. Register ini juga digunakan untuk
mengatur penggunaan timer saja atau counter saja.
3. TCON (register timer control)
Register ini digunakan untuk menyimpan hasil limpahan suatu cacahan / penghitungan.
Dalam register ini, terdapat juga register bit untuk mengaktifkan atau menonaktifkan
suatu timer.
Register TMOD
Register TCON digunakan untuk menampung bit overflow dan digunakan untuk
mengaktifkan timer / counter. Hanya bit ke-7 sampai dengan bit ke-4 yang digunakan untuk
operasi timer / counter sedangkan bit ke-3 sampai dengan bit ke-0 digunakan untuk interrupt.
Register TCON
Bit TFx bernilai 1 jika ada limpahan timer dan perlu di-nol-kan kembali secara manual.
Bit TRx digunakan untuk mengaktifkan timer / counter
3. Praktikum
3.1. Timer Counter
3.1.1. Permasalahan
a. Membuat progam untuk menampilkan penghitung waktu pada tujuh ruas. Timer 0
sebagai Counter MOD 0.
Masukan :-
Proses : peralihan data segera ke pintu P0
Keluaran : pintu P0.(7 Ruas).
b. Membuat progam untuk menampilkan penghitung waktu pada tujuh ruas. Timer 0
sebagai Counter MOD 1.
Masukan :-
Proses : peralihan data segera ke pintu P0
Keluaran : pintu P0.(7 Ruas).
c. Membuat progam untuk menampilkan penghitung waktu pada tujuh ruas. Timer 0
sebagai Counter MOD 2 Autoreload.
Masukan :-
Proses : peralihan data segera ke pintu P0
Keluaran : pintu P0.(7 Ruas).
c.) P071c-mod2-reload.asm
RET ;kembali
;--------------------------------------------------------------------------
END ;selesai
b). P071b-T0CounterM1.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Kamis, 13 April 2017
;==========================================================================
;Proyek07-TimerCounter
;P071a-T0CounterM0
; program Timer 0 sebagai Counter Mode0 (5+8) bit
;nilai TH0 dan TL0 ditampilkan pada Tampilan 7 ruas
;--------------------------------------------------------------------------
;Materi baru:
;- Timer-Counter
;--------------------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;======================================================================= */
RET ;kembali
;--------------------------------------------------------------------------
END ;selesai
b). P071c-T0CounterM2.asm
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Kamis, 13 April 2017
;==========================================================================
;Proyek07-TimerCounter
;P071a-T0CounterM0
; program Timer 0 sebagai Counter Mode0 (5+8) bit
;nilai TH0 dan TL0 ditampilkan pada Tampilan 7 ruas
;--------------------------------------------------------------------------
;Materi baru:
;- Timer-Counter
;--------------------------------------------------------------------------
;Komponen:
;- 8x Tampilan 7 Ruas Anoda Bersama
;- 8x R220
;- 8x R1K
;- Transistor PNP
;- Dekoder 74138
;======================================================================= */
MOV TH0,#0Ah
MOV nilai,TH0 ;baca nilai TH0
P01 Pengendali Luaran Digital
Lab. Mikrokontroler I 14
CALL rapusa ;konversi ratus-puluh-satu-an
CALL tampil7r123 ;tampilkan di posisi Y 1-2-3
RET ;kembali
;--------------------------------------------------------------------------
Kemudian setelah 31 :
a. P071a- T0CounterM0.asm
Pada Program P071a- T0CounterM0.asm menjalankan program timer 0 sebagai
counter Mode0 nilai TL0 adalah 5bit dan nilai TH0 adalah 8 bit. Counter akan
menghitung nilai pada TL0 dari 000 sampai 031, dan nilai TH0 dari 000 sampai 255.
Pengaturan mode counter di atur pada Tmod, untuk mode 0 digunakan kode
0000 0100b. Untuk memulai timer dengan memberikan logik 1 pada TR0.
Nilai TL0 ditampilkan pada 7 segmen posisi 123, sedangkan nilai TH0
ditampilkan pada posisi 567.
Penampilan pada 7 segmen menggunakan rapusa (ratusan, puluhan,satuan)
dimana nilai awal didapat dari nilai TL0 dan TH0.
Pertanyaan :
4. Simpulan
Beberapa simpulan yang dapat ditarik dari dari praktikum ini:
1. Pengaturan mode pada program akan mempengaruhi hitungan pada counter jika ingin
mengubah batas hitungan tinggal mengganti perintah mode counter pada program.
2. Saat program diaktifkan dan disimulasikan, keadaan pertama akan seperti (000 000).
Setelah itu keadaan seanjutnya program akan menghitung dari 1 sampai 31 lalu pindah
ke counter depan sehingga counter depan akan menghitung hingga 31 juga dan
akhirnya ke-reset (000 000).
3. IC 8051 mempunyai fitur Timer 0 dan 1 , Counter 0 dan Counter 1.
4. Terdapat 4 fungsi timer :
a. 13 bit timer
b. 16 bit timer
c. 8 bit autoreload
d. Two 8 bit timer
5. Terdapat 4 fungsi counter :
a. 13 bit counter
b. 16 bit counter
c. 8 bit autoreload
d. one 8 bit counter
=====================