PDA

View Full Version : cach dung timer va counter


agnort
23-10-2007, 10:58 PM
Các bạn cho minh hỏi làm thế nào để khai báo sử dụng timer cũng như counter trong PIC16F877a.thanks

tiendungkct
24-10-2007, 06:26 PM
bạn dung ccs or assem

agnort
24-10-2007, 09:59 PM
mình dùng assembly

tiendungkct
25-10-2007, 08:46 AM
đây là 1 đoan mình viết delay cho timer 1 hy vọng co ích cho bạn


;=================DELAY=========================
DELAY
BSF STATUS,RP0
BCF STATUS,RP1;BANK1
CLRF PIE1 ;XOA CO NGAT TMR1IE
CLRF INTCON ;CAM CAC NGAT GIE
BCF STATUS,RP0
BCF STATUS,RP1 ;BANK0
CLRF T1CON
CLRF PIR1 ;XOA CO TRAN TIMER1(TMR1IF)
CLRF TMR1L ; xoa gia tri
CLRF TMR1H
MOVLW 0X30 ;PRESCALES 1:8
;KO CHO TIMER 1 HOAT DONG TMR1ON=0
;CHE DO TIMER TMR1CS=0
;KO CHO BO DAO DONG HOAT DONG T1CSCEN=0
MOVWF T1CON
BSF T1CON,TMR1ON; CHO TIMER CHAY
RE1
BTFSS PIR1,TMR1IF ; KIEM TRA CO TRAN
GOTO RE1 ; NEU CHU TRAN
BCF PIR1,TMR1IF ; XOA CO TRAN
RETURN
END

Chunhatonline
25-10-2007, 11:12 AM
Tôi lấy ví dụ thế này cho bạn dễ hiểu :
-Đầu tiên là bạn mở datasheet 877A hình 5.1 trang 53 quan sát đầu vào xung clock của timer0.
+Chế độ timer, nguồn xung clock lấy từ thạch anh, liên tục không ngừng nghỉ (với timer0)
+Chế độ đếm (counter) lấn nguồn xung đếm từ chân RA4, nguồn này có thể liên tục có thể không, cứ có một xung vào thì timer mới đếm, nên gọi đây là chế độ đếm xung. Quan sát bạn cũng thấy là T0CS = 1 để chọn chế độ đếm, T0SE để chọn sườn tích cực cho clock tại chân RA4 (T0SE = 1 --> khi có một sườn xuống ở chân RA4 thì timer mới đếm lên một đơn vị và ngược lại)
- Đối với các timer1 khác cũng tương tự.

agnort
30-10-2007, 10:28 PM
Vậy cho mình hỏi ,còn counter thì sao, cách khai báo, va khởi tạo counter như thế nào. Chỉ giúp mình với

tiendungkct
01-11-2007, 09:44 AM
bạn cũng khơi tạo giông như timer nhưng:
trong thanh ghi option: bit số 5 TOCS bạn chọn là 0 ---> chế độ counter
bit số 4: TOSE : dếm cạnh lên ỏ xuống
thế là xong nhớ xung đưa vào chân RA4

toanck86
02-11-2007, 12:39 PM
vậy nếu dùng CCS thì khai báo thế nào các bác :(