Aplikasi Counter 8 Bit
-
Upload
rummanzah-indra -
Category
Documents
-
view
232 -
download
0
Transcript of Aplikasi Counter 8 Bit
-
8/3/2019 Aplikasi Counter 8 Bit
1/7
APLIKASI COUNTER 8 BIT
Gambar 4.4. Blok diagram Timer-Counter sebagai counter 8 bit mode 3
Agar mikrokontroler dapat bekerja sebagai counter 8 bit, maka TMOD harus dikonfigurasikan denganmengisi data sebagai berikut:
TIMER-COUNTER 1 TIMER-COUNTER 0
GATE C/T M1 M0 GATE C/T M1 M0
0 1 1 1 0 0 0 0
GATE = 0 :Menyatakan bahwa interupsi eksternal INT1 tidak difungsikan, sehingga satu-satunya BIT yang mengendalikan saklar S2 adalah TR1, agar register counter dapatbekerja, maka TR1 harus diset sama dengan 1
C/T = 1 :Untuk mengkonfigurasikan mikrokontroler sebagai counter
M1=1 M0=1 :Pemilihan mode 3
Pada contoh aplikasi tersebut, clock yang akan dihitung diumpankan pada pin T1( P3.5 ) untukdihitung oleh counter 8 bit. Overflow dari counter ini dapat ditangkap oleh flag TF1, hasil cacahanyang dilakukanoleh counter 8 bit dapat dilihat pada LED yang terkoneksi ke port P1.
http://elektronika-elektronika.blogspot.com/2007/03/aplikasi-counter-8-bit.htmlhttp://bp3.blogger.com/_YF5WDLLK2nA/RflSdM3MHkI/AAAAAAAAAqs/ZrznqjjtZPM/s1600-h/mode_31.gifhttp://elektronika-elektronika.blogspot.com/2007/03/aplikasi-counter-8-bit.html -
8/3/2019 Aplikasi Counter 8 Bit
2/7
Gambar 4.5. Aplikasi sebagai counter 8 bit dengan output ke LED
; Percobaan 4.2.
;Listing Program output data counter 8 bit mode 3 pada LED untuk timer 1
Org 0h
Start: Mov TMOD,#01110000b ; mode 3 counter 8 bit timer 1
Setb TR1 ; TR1 = 1, start countingUlang: Mov A, TL1 ; A = TL1
Mov P1, A ; P1 = A
Sjmp Ulang ; Disinilah awal dari Looping Forever
End
; Percobaan 4.2.b
;Kerjakan Program output data counter 8 bit mode 3 pada LED untuk timer 0
Gambar 4.6. Aplikasi counter 8 bit dengan output ke LCD Character
D a t a C o u n t e r : 2 1 4
; Percobaan 4.3.
; Rencanakan Program untuk mengeluarkan data counter pada LCD Character
dispclr equ 00000001b
http://bp0.blogger.com/_YF5WDLLK2nA/RflS7c3MHmI/AAAAAAAAAq8/0d6oD1Fz8v0/s1600-h/mode3_1.gifhttp://bp2.blogger.com/_YF5WDLLK2nA/RflSn83MHlI/AAAAAAAAAq0/XxBy4xQy9sU/s1600-h/mode_32.gif -
8/3/2019 Aplikasi Counter 8 Bit
3/7
funcset equ 00111000bentrmod equ 00000110bdispon equ 00001100b
Org 0h
Mulai: Mov TMOD,#01110000b
Setb TR1
acall init_lcdacall tulis
Again: Mov A, TL1
acall konversi
acall printoutchar
sjmp again
;
konversi:mov b,#100ddiv abmov Ratusan,a
mov a,bmov b,#10ddiv abmov Puluhan,amov Satuan,b
ret
;
Printoutchar:mov r1,#0c9hacall write_instmov a,Ratusan
add a,#30hmov r1,aacall write_datamov r1,#0cahacall write_instmov a,puluhanadd a,#30hmov r1,aacall write_datamov r1,#0cbhacall write_instmov a,satuanadd a,#30hmov r1,aacall write_dataret
;
Tulis: mov dptr,#tulisan1
mov r3,#8
mov r1,#0c0h
-
8/3/2019 Aplikasi Counter 8 Bit
4/7
acall write_inst
Tulis1: clr a
movc a,@a+dptr
mov r1,A
inc dptr
acall write_data
djnz r3,tulis1ret
;
Write_inst:Clr P1.0 ; RS = P1.0 = 0, mode tulis instruksi ke LCDMov P0,R1 ; D7 s/d D0 = P0 = R1Setb P1.1 ; EN = 1 = P1.1Acall delay ; panggil waktu tundaClr P1.1 ; EN = 0 = P1.1ret;
Write_data:Setb P1.0 ; RS = P1.0 = 1, mode tulis data ke LCDMov P0,R1 ; D7 s/d D0 = P0 = R1Setb P1.1 ; EN = 1 = P1.1Acall delay ; panggil waktu tundaClr p1.1 ; EN = 0 = P1.1ret;
init_lcd:mov r1,#dispclracall write_instmov r1,#funcsetacall write_instmov r1,#disponacall write_instmov r1,#entrmodacall write_instret
;
Tulisan1: DB 'Data counter :'
end
http://bp3.blogger.com/_YF5WDLLK2nA/RflTOM3MHnI/AAAAAAAAArE/wYteAwMY1qo/s1600-h/mode3_2.gif -
8/3/2019 Aplikasi Counter 8 Bit
5/7
Gambar 4.7. Aplikasi counter 8 bit dengan output ke 7 Segmen
; Percobaan 4.4.
Org 0h
Mulai: Mov TMOD,#01110000b
Setb TR1Again: Mov A, TL1
acall konversi
acall display7Segmen
sjmp again
;
Konversi:mov b,#100ddiv abmov Ratusan,amov a,b
mov b,#10ddiv abmov Puluhan,amov Satuan,b
ret
;
Display7segmen:
Mov P1,#11111111bmov A, Ratusanmov DPTR,#Data7segmenmovc A,@A+DPTR
mov P0,Aclr P1.5Acall delay;mov A,Puluhanmov DPTR,#Data7segmenmovc A,@A+DPTRsetb P1.5mov P0,Aclr P1.6Acall delay;mov A,Satuanmov DPTR,#Data7segmenmovc A,@A+DPTRsetb P1.6mov P0,Aclr P1.7Acall delay;ret
-
8/3/2019 Aplikasi Counter 8 Bit
6/7
Data7segmen:db11000000b,11111001b,10100100b,10110000b,10011001b,
db10010010b,10000010b,11111000b,10000000b,10010000b
Posted by generated at 9:03 PM
Tags:Mikrokontroller0 comments
Membangun oscilator 1 Hz dengan Timer 16 bit
Gambar 4.4. Blok diagram pembangkit clock 1 Hz
Gambar 4.5. Bentuk gelombang kotak frekuensi 1 Hz
65535 -10000 = 55535 d atau D8EF h, akan menghasilkan interupsi setelah: 1000 x 1 mikro detik= 0.01 detik. Dengan melalui pembagi 50 maka akan dihasilkan lebar Ton = Toff = 0.5 detiksehingga frekuensi yang dihasilkan f=1 Hz
;Percobaan 4.1.
http://elektronika-elektronika.blogspot.com/2007/03/aplikasi-counter-8-bit.htmlhttp://elektronika-elektronika.blogspot.com/search/label/Mikrokontrollerhttp://elektronika-elektronika.blogspot.com/search/label/Mikrokontrollerhttp://www.blogger.com/comment.g?blogID=3742259245954595860&postID=311971025118334681http://elektronika-elektronika.blogspot.com/2007/03/membangun-oscilator-1-hz-dengan-timer.htmlhttp://bp3.blogger.com/_YF5WDLLK2nA/RflR1M3MHjI/AAAAAAAAAqk/gJ13K95LsaQ/s1600-h/mode_15.gifhttp://bp3.blogger.com/_YF5WDLLK2nA/RflRiM3MHiI/AAAAAAAAAqc/9qb2lBxMlj8/s1600-h/mode_14.gifhttp://www.blogger.com/post-edit.g?blogID=3742259245954595860&postID=311971025118334681http://elektronika-elektronika.blogspot.com/2007/03/aplikasi-counter-8-bit.htmlhttp://www.blogger.com/email-post.g?blogID=3742259245954595860&postID=311971025118334681http://elektronika-elektronika.blogspot.com/search/label/Mikrokontrollerhttp://www.blogger.com/comment.g?blogID=3742259245954595860&postID=311971025118334681http://elektronika-elektronika.blogspot.com/2007/03/membangun-oscilator-1-hz-dengan-timer.html -
8/3/2019 Aplikasi Counter 8 Bit
7/7
;Program untuk membangkitkan clock dengan frekuensi f=1 Hz
Org 0h
Start: Setb P0.0 ;P0.0 = 1
Acall Tunda ;Memanggil waktu tunda
Clr P0.0 ;P0.0 = 0
Sjmp Start ;Looping Forever
Tunda: Mov R0,#0 ;R0 = 0Lagi: Mov TMOD,#00010000b ;Pemilihan mode 1
Mov TH1, #0D8h ;TH1 = D8h
Mov TL1, #0EFh ; TL1 = EFh
Setb TR1 ; TR1 = 1, mulai bekerja
Ulang: JBC TF1, Hitung ; Lompat ke Hitung jika TF1 =1
Sjmp Ulang
Hitung: Inc R0 ; R0 = R0+1
CJNE R0,#50,Lagi ; Bandingkan R0 dengan 50, jika tidak sama
; lompat ke lagi
RetEnd
;Percobaan 4.2.
;Program untuk membangkitkan clock dengan frekuensi f=10 Hz
;Lakukan perhitungan untuk frekuensi tersebut