• Tidak ada hasil yang ditemukan

mode operasi timer counter

N/A
N/A
Protected

Academic year: 2017

Membagikan "mode operasi timer counter"

Copied!
5
0
0

Teks penuh

(1)

MODE OPERASI TIMER/COUNTER

Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY E-mail : sumarna@uny.ac.id

[image:1.610.152.521.268.393.2]

1. Mode 0 : Timer/Counter 13 bit.

Gambar berikut menunjukkan konfigurasi operasi timer/counter mode 0. Salah satu timer di dalam mode 0 merupakan counter 8 bit dengan prescaler dibagi 32. Register 13 bit ini terdiri dari 8 bit pada seluruh THX dan 5 bit rendah pada TLX. Sedangkan 3 bit tinggi pada TLX tidak ditetapkan dan harus diabaikan.

Counter 13 bit dapat mencacah naik hingga 213 = 8192, dari 0 sanpai dengan 8191. Timer/Counter 8051 merupakan pencacah naik yang menambah 1 (increment) nilainya dari nilai awal (initial). Nilai yang telah dicacah sama dengan nilai cacahan maksimum dikurangi nilai awal. Sebagai contoh, jika sejumlah 5000 yang harus dicacah, nilai awal dari timer/counter dalam mode 0 harus di-preset pada :

8192 – 5000 = 3192

Dalam hal demikian, counter tersebut mulai mencacah dari nilai preset 3192 dan terjadi overflow setelah 5000 pulsa detak. Overflow akan men-set bit TFX yang sesuai pada register TCON dan counter tersebut kembali ke nol. Jika diinginkan pencacahan ulang dari nilai preset sebelumnya, nilai preset tersebut harus diisikan ulang dengan software. Flag overflow TFX di-clear oleh hardware ketika CPU mengeksekusi routine pelayanan interupsi dari timer/counter.

Untuk mem-preset nilai cacahan awal kepada TLX dan THX, nilai preset dalam biner harus dihitung dan 5 bit rendah diisikan ke dalam TLX serta 8 bit tinggi ke dalam THX. Sebagai contoh, untuk cacahan 5000, nilai awalnya dihitung dengan :

8192 – 5000 = 3192

3192D = 0110001111000B OSC  12

THX (8 bit) TLX

(5 bit) TFX

Interupsi TRX

TX

GATE

INTX

C/T = 0

C/T = 1

(2)

Sehingga :

TLX = 11000 THX = 01100011

Karena TLX merupakan prescaler terbagi 32 dalam mode 0, nilai preset dari TLX dan THX dapat dihitung secara langsung dengan persamaan berikut :

THX = Quotient dari nilai cacahan awal dibagi 32 TLX = Remainder dari nilai cacahan awal dibagi 32 Atau :

THX = nilai cacahan awal / 32 TLX = nilai cacahan awal .MOD. 32

Di mana “/” merepresentasikan pembagian integer, dan “MOD” merepresentasikan sisanya (remainder). Oleh karena itu, contoh di atas dapat dicapai dengan instruksi berikut :

MOV TL0,#(8192 – 5000).MOD.32 MOV TH0,#(8192 – 5000)/32

Assembler tersebut akan menghitung dan mengisikan hasilnya ke dalam TH0 dan TL0. Ingat bahwa titik desimal (.) harus ditambahkan sebelum dan sesudah MOD. Sebagai contoh, instruksi berikut :

MOV TL1,#(8192 – 2500).MOD.32 MOV TH1,#(8192 – 2500)/32

Men-set counter 1 untuk mencacah 2500 pulsa.

2. Mode 1 : Counter 16 bit.

Operasi mode 1 adalah sama dengan mode 0, kecuali bahwa register timer-nya akan berjalan untuk 16 bit seluruhnya. Counter 16 bit tersebut dapat mencacah naik hingga 216 = 65536, 0 sampai dengan 65535. Sebagaimana dijelaskan sebelumnya, nilai preset dari TLX dan THX dihitung sebagai :

TLX = nilai cacahan awal MOD 256 THX = nilai cacahan awal / 256

Dalam kode assembly, nilai awal dari counter 0 dapat di-preset dengan :

MOV TL0,#(65536 – 5000).MOD.256 MOV TH0,#(65536 – 5000)/256

(3)

MOV TL0,#<(65536 – 5000) MOV TH0,#>(65536 – 5000)

Konfigurasi Timer/Counter mode 1 ditunjukkan pada gambar berikut :

3. Mode 2 : Counter 8 bit Isi-Ulang Otomatis

Gambar berikut menunjukkan konfigurasi Timer/Counter pada mode 2. Mode 2 mengkonfigurasi register timer sebagai counter 8 bit (TLX) dengan isi-ulang otomatis. Nilai cacahan maksimumnya 28 = 256, 0 sampai dengan 255. Overflow dari TLX tidak hanya men-set TFX, tetapi juga mengisi ulang dengan isi dari THX yang di-preset dengan software. Pengisian ulang meninggalkan THX tidak berubah. Operasi mode 2 adalah sama untuk timer/counter 0 dan 1.

Dalam mode 2, nilai awal dihitung dengan

Nilai awal = 256 – nilai cacahan OSC  12

THX (8 bit) TLX

(8 bit) TFX

Interupsi TRX

TX

GATE

GATE

C/T = 0

[image:3.610.138.505.186.313.2] [image:3.610.147.488.504.629.2]

C/T = 1

Gambar : Timer/Counter Mode 1

OSC  12

THX (8 bit)

TLX

(8 bit) TFX

Interupsi TRX

TX

GATE

INTX

C/T = 0

C/T = 1

(4)

Sebagi contoh, suatu instruksi MOV TH1,#(256 – 100) menentukan timer 1 untuk mencacah 100 pulsa. Karena nilai THX dan TLX di-reset sesudah power 8051 hidup atau reset software, maka nilai cacahan awal dari YHX dan TLX harus di-preset secara awal (initially).

4. Mode 3 : Dua Counter 8 bit Individual

Konfigurasi operasi timer/counter pada mode 3 ditunjukkan pada gambar berikut. Timer 1 dalam mode 3 secara langsung mempertahankan cacahannya. Akibatnya adalah sama dengan men-set TR1 = 0. Timer 0 dalam mode 3 membangun TL0 dan TH0 sebagai dua counter yang terpisah. TL0 menggunakan kendali bit timer 0, yakni C/T, GATE, TR0, INT0, dan TF0. TH0 dikunci ke dalam fungsi timer (siklus mesin pencacahan) dan mengambil alih kegunaan dari TR1 dan TF1 dari timer 1. Kemudian, TH0 sekarang mengendalikan interupsi timer 1.

Nilai cacahan awal TH0 dan TL0 dihitung dengan :

TH0 = 256 – nilai cacahan TL0 = 256 – nilai cacahan

Sebagai contoh, instruksi berikut menunjukkan TL0 timer 0 mencacah 50 pulsa dan TH0 mencacah 100 pulsa.

MOV TL0,#(250 – 50) MOV TH0,#(256 – 100) OSC  12

THX (8 bit) TLX (8 bit)

TFX Interupsi TRX

TX

GATE

INTX

C/T = 0

[image:4.610.159.503.310.509.2]

C/T = 1

Gambar : Timer/Counter Mode 3 OSC  12

Interupsi TFX

(5)

Mode 3 disediakan untuk keperluan aplikasi sebuah timer atau counter 8 bit tambahan (ekxtra). Dengan timer 0 dalam mode 3, 8051 dapat terlihat seperti memiliki 3 timer/counter, dan 8052 seperti memiliki 4 timer/counter. Ketika timer 0 dalam mode 3, timer 1 dapat dihidupkan atau dimatikan dengan mensaklarnya keluar dan masuk mode 3 sendiri, atau dapat tetap digunakan dengan port serial sebagai generator baud rate, atau dalam kenyataannya, dalam banyak aplikasi yang tidak memerlukan interupsi. Sebagai terlihat dapam gambar, instruksi “SETB TR1” men-start TH0 dan instruksi “CLR TR1” menghentikan TH0.

Untuk menggunakan Timer/Counter, ikuti prosedur berikut :

Dalam program utama :

1. Tetapkan register IE untuk meng-enable interupsi timer/counter.

2. Tetapkan register IP untuk menentukan tingkat prioritas interupsi timer/counter (jika diperlukan).

3. Tetapkan register TMOD untuk menentukan mode operasi dan kendali jalan (run control).

4. Men-set nilai awal dari THX dan TLX. 5. Men-strat timer/counter (SETB TRX).

Dalam routine pelayanan interupsi :

1. Hentikan (stop) timer/counter.

2. Proseslah suatu tugas dari routine pelayanan interupsi. 3. Isi ulang (reload) nilai awal dari THX dan TLX. 4. Start kembali (re-start) timer/counter.

Gambar

Gambar berikut menunjukkan konfigurasi operasi timer/counter mode 0. Salah satu timer di dalam mode 0 merupakan counter 8 bit dengan prescaler dibagi 32
Gambar  :  Timer/Counter Mode 2
Gambar  :  Timer/Counter Mode 3

Referensi

Dokumen terkait

Menyediakan pekerja dan lain-lain peralatan bagi kerja-kerja membersih, menggred dan merata bahu jalan sedia ada dari segala bahan yang tidak dikehendaki dari tapak bina

Dengan cara yang sama seperti pada percobaan ikan-ikanan berukuran 20 x 25 cm, perbandingan spektrum frekuensi dari ikan-ikanan berukuran 30 cm untuk 5 (lima) percobaan

Kendalan-kendala yang dihadapi guru dalam mengikuti serta membuat media menggunakan Macromedia Flash yaitu guru masih kurang memahami atau dengan kata lain guru masih kakuh serta

Atas berbagai peran yang dimiliki oleh wanita karir yang juga single parent dan memiliki anak tunarungu tentunya tidak sedikit beban dan tantangan yang harus

1) Perhatian murid dapat dipusatkan kepada hal-hal yang dianggap penting oleh guru sehingga hal yang penting itu dapat diamati secara teliti.. 2) Dapat membimbing

Spektra reflektansi dari lapisan tembaga kobal yang disintesis menggunakan prekursor 0.1M dengan 10 kali siklus pencelupan-pengeringan (coating dengan absorptansi

Sindrom Guillain-Barre (SGB) adalah suatu polineuropati yang dapat bersifat ascending dan akut yang sering terjadi setelah 1 sampai 3 minggu setelah infeksi akut pada

Bila sebaliknya arus tidak akan mengalir aan tidak dipancarkan cahaya, Perhatikan kode-kode huruf a, b, c, dl el f, g menunjukkan segmen-segmen dioda LED dan satu segmen