CHỦ ĐỀ TUẦN 2: TIMER
Trang 1 trong tổng số 1 trang
CHỦ ĐỀ TUẦN 2: TIMER
Trong Pic16f877a có 3 timer :
+ Timer0 : 8 bit
+ Timer1 : 16 bit
+ Timer2 : 8 bit
Timer dùng cho nhiều ứng dụng : định thời, capture, pwm, ...
1.Timer0
Thanh ghi tác động:
Code:
setup_TIMER_0(mode);
setup_COUNTERS (rtcc_state, ps_state); // hay setup_WDT()
set_TIMER0(value); // hay set_RTCC(value) : xác định giá trị ban đầu (8bit) cho Timer0
get_TIMER0(); // hay get_RTCC() :trả về số nguyên (8bit) của Timer0
//////////////////////////////////////////////////////////////////////////////
Trong đó mode là một hoặc hai constant (nếu dùng hai thì chèn dấu "|"ở giữa) được định nghĩa trong file 16F877A.h gồm :
RTCC_INTERNAL : chọn xung clock nội
RTCC_EXT_L_TO_H : chọn bit cạnh lên trên chân RA4
RTCC_EXT_H_TO_L : chọn bit cạnh xuống trên chân RA4
RTCC_DIV_2 :chia prescaler 1:2
RTCC_DIV_4 1:4
RTCC_DIV_8 1:8
RTCC_DIV_16 1:16
RTCC_DIV_32 1:32
RTCC_DIV_64 1:64
RTCC_DIV_128 1:128
RTCC_DIV_256 1:256
rtcc_state là một trong những constant sau:
RTCC_INTERNAL
RTCC_EXT_L_TO_H
RTCC_EXT_H_TO_L
ps_state là một trong những constant sau:
RTCC_DIV_2
RTCC_DIV_4
RTCC_DIV_8
RTCC_DIV_16
RTCC_DIV_32
RTCC_DIV_64
RTCC_DIV_128
RTCC_DIV_256
WDT_18MS
WDT_36MS
WDT_72MS
WDT_144MS
WDT_288MS
WDT_576MS
WDT_1152MS
WDT_2304MS
+ Timer0 : 8 bit
+ Timer1 : 16 bit
+ Timer2 : 8 bit
Timer dùng cho nhiều ứng dụng : định thời, capture, pwm, ...
1.Timer0
Thanh ghi tác động:
Code:
setup_TIMER_0(mode);
setup_COUNTERS (rtcc_state, ps_state); // hay setup_WDT()
set_TIMER0(value); // hay set_RTCC(value) : xác định giá trị ban đầu (8bit) cho Timer0
get_TIMER0(); // hay get_RTCC() :trả về số nguyên (8bit) của Timer0
//////////////////////////////////////////////////////////////////////////////
Trong đó mode là một hoặc hai constant (nếu dùng hai thì chèn dấu "|"ở giữa) được định nghĩa trong file 16F877A.h gồm :
RTCC_INTERNAL : chọn xung clock nội
RTCC_EXT_L_TO_H : chọn bit cạnh lên trên chân RA4
RTCC_EXT_H_TO_L : chọn bit cạnh xuống trên chân RA4
RTCC_DIV_2 :chia prescaler 1:2
RTCC_DIV_4 1:4
RTCC_DIV_8 1:8
RTCC_DIV_16 1:16
RTCC_DIV_32 1:32
RTCC_DIV_64 1:64
RTCC_DIV_128 1:128
RTCC_DIV_256 1:256
rtcc_state là một trong những constant sau:
RTCC_INTERNAL
RTCC_EXT_L_TO_H
RTCC_EXT_H_TO_L
ps_state là một trong những constant sau:
RTCC_DIV_2
RTCC_DIV_4
RTCC_DIV_8
RTCC_DIV_16
RTCC_DIV_32
RTCC_DIV_64
RTCC_DIV_128
RTCC_DIV_256
WDT_18MS
WDT_36MS
WDT_72MS
WDT_144MS
WDT_288MS
WDT_576MS
WDT_1152MS
WDT_2304MS
Được sửa bởi Admin ngày Fri Jun 12, 2009 8:57 am; sửa lần 4.
TIMER
2.Timer1
Thanh ghi tác động:
Code:
setup_TIMER_1(mode);
set_TIMER1(value); // xác định giá trị ban đầu (16bit) cho Timer1
get_TIMER1(); // trả về số nguyên (16bit) của Timer1
///////////////////////////////////////////////////////////////////////
mode gồm (có thể kết hợp bằng dấu "|"):
T1_DISABLED : tắt Timer1
T1_INTERNAL : xung clock nội (Fosc/4)
T1_EXTERNAL : xung clock ngoài trên chân RC0
T1_EXTERNAL_SYNC : xung clock ngoài đồng bộ
T1_CLK_OUT
T1_DIV_BY_1
T1_DIV_BY_2
T1_DIV_BY_4
T1_DIV_BY_8
Thanh ghi tác động:
Code:
setup_TIMER_1(mode);
set_TIMER1(value); // xác định giá trị ban đầu (16bit) cho Timer1
get_TIMER1(); // trả về số nguyên (16bit) của Timer1
///////////////////////////////////////////////////////////////////////
mode gồm (có thể kết hợp bằng dấu "|"):
T1_DISABLED : tắt Timer1
T1_INTERNAL : xung clock nội (Fosc/4)
T1_EXTERNAL : xung clock ngoài trên chân RC0
T1_EXTERNAL_SYNC : xung clock ngoài đồng bộ
T1_CLK_OUT
T1_DIV_BY_1
T1_DIV_BY_2
T1_DIV_BY_4
T1_DIV_BY_8
Được sửa bởi Admin ngày Fri Jun 12, 2009 8:18 am; sửa lần 2.
TIMER
3.Timer2
Thanh ghi tác động
Code:
setup_TIMER_2(mode, period, postscale);
set_TIMER2(value); // xác định giá trị ban đầu (8bit) cho Timer2
get_TIMER2(); // trả về số nguyên 8bit
///////////////////////////////////////////////////////////////////////
Với mode gồm (co the ket hop bang dau "|"):
T2_DISABLED
T2_DIV_BY_1
T2_DIV_BY_4
T2_DIV_BY_16
period là số nguyên từ 0-255, xác định giá trị xung reset
postscale là số nguyên 1-16, xác định reset bao nhiêu lần trước khi ngắt.
Thanh ghi tác động
Code:
setup_TIMER_2(mode, period, postscale);
set_TIMER2(value); // xác định giá trị ban đầu (8bit) cho Timer2
get_TIMER2(); // trả về số nguyên 8bit
///////////////////////////////////////////////////////////////////////
Với mode gồm (co the ket hop bang dau "|"):
T2_DISABLED
T2_DIV_BY_1
T2_DIV_BY_4
T2_DIV_BY_16
period là số nguyên từ 0-255, xác định giá trị xung reset
postscale là số nguyên 1-16, xác định reset bao nhiêu lần trước khi ngắt.
Similar topics
» CHỦ ĐỀ TUẦN 4: LCD (TIẾP)
» CHỦ ĐỀ TUẦN 1: GIỚI THIỆU PIC 16F877A
» CHỦ ĐỀ TUẦN 3: LCD 16*2 (cùng giải thích các câu lệnh LCD)
» CÙNG HỌC TIMER QUA BÀI TOÁN
» CHỦ ĐỀ TUẦN 1: GIỚI THIỆU PIC 16F877A
» CHỦ ĐỀ TUẦN 3: LCD 16*2 (cùng giải thích các câu lệnh LCD)
» CÙNG HỌC TIMER QUA BÀI TOÁN
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|