Anda di halaman 1dari 20

Laporan Praktikum

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

Dosen: Dr. Samuel BETA; Ing-Tech.,M.T.

PROGRAM STUDI TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2016-2017
Lab. Mikrokontroler I 1

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.

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 2
Register THx dan TLx digunakan untuk menampung hasil
hitungan timer / counterkapasitas maksimum TH dan TL seluruhnya adalah 16 bit. Namun, ada
dua modetimer yang tidak menggunakannya secara maksimum melainkan hanya 13 bit dan 8
bit saja.

Pembagian bit register THx dan TLx


Register TMOD berfungsi untuk mengatur penggunaan mode suatu timer,
pemakaian counter atau timer, dan pengaturan Gate.

Register TMOD

Bit register TMOD


Mode timer menentukan kapasitas maksimal penggunaan register TH dan TL. Berikut
pembahasan mode 0, mode 1, mode 2, dan mode 3.
1 Mode 0
Mode ini dikenal dengan nama mode timer / counter 13 bit.

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 3

Bit THx dan TLx pada mode 0


2 Mode 1
Mode 1 menggunakan kapasitas register TLx dan THx secara maksimal sehingga dinamakan
mode 16 bit.
3 Mode 2
Mode 2 sering disebut sebagai pencacah biner 8 bit dengan isi ulang (auto reload).
Register yang digunakan untuk mencacah adalah TLx sedangkan THx digunakan sebagai
tempat menyimpan data yang akan dituliskan ke TLx saat terjadi limpahan pada TLx. Isi THx
diisikan pertama kali oleh pemrogram sedangkan isi TLx akan terus bertambah sesuai adanya
detak. Setiap kali nilai TLx berubah dari FF heksa menjadi 00 heksa akan
terjadi overflow sehingga TFx (pada register TCON) akan bernilai 1. Nilai TFx perlu di-nol-
kan secara manual untuk kembali menggunakantimer.
4 Mode 3
Timer mode 3 sering disebut sebagai two 8 bit timer / counter karena memang
menggunakan dua buah timer 8 bit yang kerjanya sendiri-sendiri.register yang digunakan
adalah TL0 dan TH0 dengan masing-masing pengaturan adalah sebagai berikut:
TL0 dapat berfungsi sebagai counter maupun timer 8 bit dengan sumber detak yang dapat
dipilih yaitu sumber detak yang berasal dari P3.4 (T0) atau dari osilator/12.
TH0 hanya dapat difungsikan sebagai timer 8 bit karena sumber detak hanya berasal dari
osilator/12.

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

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 4

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).

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 5
3.1.2. Penyelesaian
3.1.2.1. Diagram Alir
a.) P071a-T0CounterM0.asm

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 6
b.) P071b-8+8.asm

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 7

c.) P071c-mod2-reload.asm

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 8
3.1.2.2. Program
a). P071a-T0CounterM0
;/* =======================================================================
; 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
;======================================================================= */

;=== Deklarasi variabel ===


t7r equ P0 ;T7R dipasang pada P0

PosC equ P3.7 ;Posisi T7R CBA 74138


PosB equ P3.6
PosA equ P3.5

nilai equ 30h ;nilai bilangan


ratusan equ 31h ; ratusan
puluhan equ 32h ; puluhan
satuan equ 33h ; satuan

jeda equ 1 ;lama jeda


;=== Pengesetan Awal ====
ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
MOV TMOD,#000000100b ;T0 sebagai Counter Mode 0(5+8) bit
SETB TR0 ;aktifkan (0:stop/1:run)
ambil:
MOV nilai,TL0 ;baca nilai TL0
CALL rapusa ;konversi ratus-puluh-satu-an
CALL tampil7r567 ;tampilkan di posisi Y 5-6-7

MOV nilai,TH0 ;baca nilai TH0


CALL rapusa ;konversi ratus-puluh-satu-an
CALL tampil7r123 ;tampilkan di posisi Y 1-2-3

SJMP ambil ;ambil nilai selanjutnya


;--------------------------------------------------------------------------

;=== Sub program ===

;- rapusa : konversi nilai ke ratus-puluh-satu-an -------------------------


rapusa:
MOV A,nilai ;nilai yang akan dikonversi

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 9
MOV B,#100 ;proses ratusan
DIV AB
MOV ratusan,A ;simpan ratusan
MOV A,B
MOV B,#10 ;proses puluhan
DIV AB
MOV puluhan,A ;simpan puluhan
MOV satuan,B ;simpan satuan
RET ;kembali
;--------------------------------------------------------------------------

;-tampil7r123/567: tampilkan nilai ratus-puluh-satu-an diT7R sesuai posisi


tampil7r123:
;--- Ratusan di Posisi Y1 (0-0-1)
MOV A,ratusan ;baca ratusan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
CLR PosC ;posisi tampilan 1
CLR PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Puluhan di Posisi Y2 (0-1-0)
MOV A,puluhan ;baca puluhan
MOV DPTR,#hex7r
MOVC A,@A+DPTR
CLR PosC ;posisi tampilan 2
SETB PosB
CLR PosA
MOV t7r,A
CALL tunda
;--- Satuan di Posisi Y3 (0-1-1)
MOV A,satuan ;baca satuan
MOV DPTR,#hex7r
MOVC A,@A+DPTR
CLR PosC ;posisi tampilan 3
SETB PosB
SETB PosA
MOV t7r,A
CALL tunda
RET ;kembali
;--------------------------------------------------------------------------
tampil7r567:
;--- Ratusan di Posisi Y5 (1-0-1)
MOV A,ratusan ;baca ratusan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 5
CLR PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Puluhan di Posisi Y6 (1-1-0)
MOV A,puluhan ;baca puluhan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 6
SETB PosB
CLR PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Satuan di Posisi Y7 (1-1-1)
MOV A,satuan ;baca satuan

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 10
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 7
SETB PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
RET ;kembali
;--------------------------------------------------------------------------

;- tunda : penunda waktu --------------------------------------------------


tunda: ;tunda:
MOV 71h,#jeda ;nilai awal t1 (sesuai jeda)
tunda1: ; tunda1:
MOV 72h,#100 ;nilai awal t2
tunda2: ; tunda2:
MOV 73h,#100 ;nilai awal t3
tunda3: ; tunda3:
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1

RET ;kembali
;--------------------------------------------------------------------------

;=== Tabel Konversi ===


;-Tabel Konversi Hex-7ruas (aktif 0) --------------------------------------
hex7r:
; 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7
db 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h
; 8 - 9 - A - B - C - D - E - F
db 080h,090h,088h,083h,0C6h,0A1h,086h,08Eh
;--------------------------------------------------------------------------

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
;======================================================================= */

;=== Deklarasi variabel ===

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 11
t7r equ P0 ;T7R dipasang pada P0

PosC equ P3.7 ;Posisi T7R CBA 74138


PosB equ P3.6
PosA equ P3.5

nilai equ 30h ;nilai bilangan


ratusan equ 31h ; ratusan
puluhan equ 32h ; puluhan
satuan equ 33h ; satuan

jeda equ 1 ;lama jeda


;=== Pengesetan Awal ====
ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
MOV TMOD,#000000101b ;T0 sebagai Counter Mode 1(8+8) bit
SETB TR0 ;aktifkan (0:stop/1:run)
ambil:
MOV nilai,TL0 ;baca nilai TL0
CALL rapusa ;konversi ratus-puluh-satu-an
CALL tampil7r567 ;tampilkan di posisi Y 5-6-7

MOV nilai,TH0 ;baca nilai TH0


CALL rapusa ;konversi ratus-puluh-satu-an
CALL tampil7r123 ;tampilkan di posisi Y 1-2-3

SJMP ambil ;ambil nilai selanjutnya


;--------------------------------------------------------------------------

;=== Sub program ===

;- rapusa : konversi nilai ke ratus-puluh-satu-an -------------------------


rapusa:
MOV A,nilai ;nilai yang akan dikonversi
MOV B,#100 ;proses ratusan
DIV AB
MOV ratusan,A ;simpan ratusan
MOV A,B
MOV B,#10 ;proses puluhan
DIV AB
MOV puluhan,A ;simpan puluhan
MOV satuan,B ;simpan satuan
RET ;kembali
;--------------------------------------------------------------------------

;-tampil7r123/567: tampilkan nilai ratus-puluh-satu-an diT7R sesuai posisi


tampil7r123:
;--- Ratusan di Posisi Y1 (0-0-1)
MOV A,ratusan ;baca ratusan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
CLR PosC ;posisi tampilan 1
CLR PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Puluhan di Posisi Y2 (0-1-0)
MOV A,puluhan ;baca puluhan
MOV DPTR,#hex7r
MOVC A,@A+DPTR
CLR PosC ;posisi tampilan 2

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 12
SETB PosB
CLR PosA
MOV t7r,A
CALL tunda
;--- Satuan di Posisi Y3 (0-1-1)
MOV A,satuan ;baca satuan
MOV DPTR,#hex7r
MOVC A,@A+DPTR
CLR PosC ;posisi tampilan 3
SETB PosB
SETB PosA
MOV t7r,A
CALL tunda
RET ;kembali
;--------------------------------------------------------------------------
tampil7r567:
;--- Ratusan di Posisi Y5 (1-0-1)
MOV A,ratusan ;baca ratusan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 5
CLR PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Puluhan di Posisi Y6 (1-1-0)
MOV A,puluhan ;baca puluhan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 6
SETB PosB
CLR PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Satuan di Posisi Y7 (1-1-1)
MOV A,satuan ;baca satuan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 7
SETB PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
RET ;kembali
;--------------------------------------------------------------------------

;- tunda : penunda waktu --------------------------------------------------


tunda: ;tunda:
MOV 71h,#jeda ;nilai awal t1 (sesuai jeda)
tunda1: ; tunda1:
MOV 72h,#1 ;nilai awal t2
tunda2: ; tunda2:
MOV 73h,#0 ;nilai awal t3
tunda3: ; tunda3:
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1

RET ;kembali
;--------------------------------------------------------------------------

;=== Tabel Konversi ===

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 13
;-Tabel Konversi Hex-7ruas (aktif 0) --------------------------------------
hex7r:
; 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7
db 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h
; 8 - 9 - A - B - C - D - E - F
db 080h,090h,088h,083h,0C6h,0A1h,086h,08Eh
;--------------------------------------------------------------------------

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
;======================================================================= */

;=== Deklarasi variabel ===


t7r equ P0 ;T7R dipasang pada P0

PosC equ P3.7 ;Posisi T7R CBA 74138


PosB equ P3.6
PosA equ P3.5

nilai equ 30h ;nilai bilangan


ratusan equ 31h ; ratusan
puluhan equ 32h ; puluhan
satuan equ 33h ; satuan

jeda equ 1 ;lama jeda


;=== Pengesetan Awal ====
ORG 0 ;alamat awal

;=== Program Utama ===


mulai:
MOV TMOD,#00000110b ;T0 sebagai Counter Mode 2
SETB TR0 ;aktifkan (0:stop/1:run)
ambil:
MOV nilai,TL0 ;baca nilai TL0
CALL rapusa ;konversi ratus-puluh-satu-an
CALL tampil7r567 ;tampilkan di posisi Y 5-6-7

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

SJMP ambil ;ambil nilai selanjutnya


;--------------------------------------------------------------------------

;=== Sub program ===

;- rapusa : konversi nilai ke ratus-puluh-satu-an -------------------------


rapusa:
MOV A,nilai ;nilai yang akan dikonversi
MOV B,#100 ;proses ratusan
DIV AB
MOV ratusan,A ;simpan ratusan
MOV A,B
MOV B,#10 ;proses puluhan
DIV AB
MOV puluhan,A ;simpan puluhan
MOV satuan,B ;simpan satuan
RET ;kembali
;--------------------------------------------------------------------------

;-tampil7r123/567: tampilkan nilai ratus-puluh-satu-an diT7R sesuai posisi


tampil7r123:
;--- Ratusan di Posisi Y1 (0-0-1)
MOV A,ratusan ;baca ratusan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
CLR PosC ;posisi tampilan 1
CLR PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Puluhan di Posisi Y2 (0-1-0)
MOV A,puluhan ;baca puluhan
MOV DPTR,#hex7r
MOVC A,@A+DPTR
CLR PosC ;posisi tampilan 2
SETB PosB
CLR PosA
MOV t7r,A
CALL tunda
;--- Satuan di Posisi Y3 (0-1-1)
MOV A,satuan ;baca satuan
MOV DPTR,#hex7r
MOVC A,@A+DPTR
CLR PosC ;posisi tampilan 3
SETB PosB
SETB PosA
MOV t7r,A
CALL tunda
RET ;kembali
;--------------------------------------------------------------------------
tampil7r567:
;--- Ratusan di Posisi Y5 (1-0-1)
MOV A,ratusan ;baca ratusan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 5
CLR PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 15
;--- Puluhan di Posisi Y6 (1-1-0)
MOV A,puluhan ;baca puluhan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 6
SETB PosB
CLR PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
;--- Satuan di Posisi Y7 (1-1-1)
MOV A,satuan ;baca satuan
MOV DPTR,#hex7r ;lihat tabel konversi hex ke 7r
MOVC A,@A+DPTR ;hasil
SETB PosC ;posisi tampilan 7
SETB PosB
SETB PosA
MOV t7r,A ;tampilkan di T7R
CALL tunda
RET ;kembali
;--------------------------------------------------------------------------

;- tunda : penunda waktu --------------------------------------------------


tunda: ;tunda:
MOV 71h,#jeda ;nilai awal t1 (sesuai jeda)
tunda1: ; tunda1:
MOV 72h,#1 ;nilai awal t2
tunda2: ; tunda2:
MOV 73h,#0 ;nilai awal t3
tunda3: ; tunda3:
NOP ;diam
DJNZ 73h,tunda3 ;balik ke tunda3
DJNZ 72h,tunda2 ;balik ke tunda2
DJNZ 71h,tunda1 ;balik ke tunda1

RET ;kembali
;--------------------------------------------------------------------------

;=== Tabel Konversi ===


;-Tabel Konversi Hex-7ruas (aktif 0) --------------------------------------
hex7r:
; 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7
db 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h
; 8 - 9 - A - B - C - D - E - F
db 080h,090h,088h,083h,0C6h,0A1h,086h,08Eh
;--------------------------------------------------------------------------

3.1.2.3. Hasil Percobaan


a. P071a- T0CounterM0.asm
Setelah penulisan perangkat lunak (program) selesai, lalu menjalan perangkat
lunak (program) dengan cara klik Assm pada menu edSim dan juga
menyimulasikannya dengan proteus dan modul kit maka akan menghasilkan
tampilan seperti berikut :

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 16
Tampilan simulasi proteus.
Terus menghitung dari 0 sampai 31 dan kembali nol lagi seperti berikut

Kemudian setelah 31 :

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 17

Kemudian kembali ke 0 kembali

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.

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 18
b. P071b- T0CounterM1.asm
Pada Program P071b- T0CounterM1.asm menjalankan program timer 0 sebagai
counter Mode1 nilai TL0 adalah 8bit dan nilai TH0 adalah 8 bit. Counter akan
menghitung nilai pada TL0 dari 000 sampai 255, dan nilai TH0 dari 000 sampai 255.
Pengaturan mode counter di atur pada Tmod, untuk mode 0 digunakan kode
0000 0101b. 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.
c. P071c- T0CounterM2.asm
Pada Program P071c- T0CounterM2.asm menjalankan program timer 0 sebagai
counter Mode 2 (Reload) nilai TL0 adalah 8bit dan nilai TH0 adalah 8 bit. Counter
akan menghitung nilai pada TL0 dari 020 sampai 255, dan nilai TH0 tetap 020.
Pengaturan mode counter di atur pada Tmod, untuk mode 0 digunakan kode
00000110b. 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 :

1. Apa perbedaan Timer dan Counter?


Jawab :
a. Timer : Menghitung waktu clock dari dalam (pulsa clock).
b. Counter : Menghitung dari luar.
2. Fitur T/C apa yang dimiliki oleh 8051? (jumlah dan mode) ?
Jawab : IC 8051 mempunyai fitur Timer 0 dan 1 , Counter 0 dan Counter 1.
Terdapat 4 fungsi timer :
a. 13 bit timer
b. 16 bit timer
c. 8 bit autoreload
d. Two 8 bit timer
Terdapat 4 fungsi counter :

P01 Pengendali Luaran Digital


Lab. Mikrokontroler I 19
a. 13 bit counter
b. 16 bit counter
c. 8 bit autoreload
d. one 8 bit counter
3. Bagaimana cara menghitung Nilai Awal untuk mendapatkan hitungan sesuai dengan
yang dibutuhkan ?
Jawab : Digunakan pengesetan awal nilai awalpada TH0 dan TL0. Misal nilai 20 untuk
menghitung dari awal, dengan nilai 20

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

=====================

P01 Pengendali Luaran Digital

Anda mungkin juga menyukai