BÀI 10 : TIMER 0 PIC16F877A CCS

1:20:00 AM
Chào các bạn trong bài đăng này mình sẽ hướng dẫn về timer của PIC16F877A. Các bạn chú ý đây là 1 trong các modun của PIC16F877A và nó cũng rất quan trọng và được sử dụng rất nhiều nên các bạn phải chú  ý để nắm rõ về nó.
Về phần lý thuyết các bạn đọc Datasheet hoặc lên mạng tìm hoặc qua bên TUT về PIC16F877A XC8 tìm đọc nha !
Các bạn tự lên mạng tìm cách tính thời gian để khởi tạo timer 0 nha ! Nếu không biết tính thì comment ở dưới mình chỉ cho !
Chúng ta sẽ có công thức tính thời gian để cài đặt cho Timer 0 như sau : Ví dụ sử dụng thạch anh 4 MHz, timer 0 (8 bit), bộ chia tần 4, đếm 200us thì ta tính theo công thức sau :
256 - (200/4.1) = 206
Giải thích các số trên như sau : 
- 256 vì đây là Timer 8 bit.
- 200 : đếm 200us
- 4 : bộ chia tần 4
- 1 : chu kỳ lệnh = 4*(1/OST)
Như vậy chúng ta phải cài đặt giá trị cho Timer 0 như sau :
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);
set_timer0(206);
- Đây là ảnh mô phỏng protues.
timer 0 pic16f877a ccs
- Đây là code chương trình.
#include <16F877a.h>
#include <def_877a.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use Delay(Clock=4000000)
#define led RC0
#int_TIMER0
void TIMER0_isr(void) 
{
set_timer0(206);
led=!led;
}
void main()
{
set_tris_c(0x00);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4);//0-255 tran 51.2us
set_timer0(206);
enable_interrupts(INT_TIMER0);
enable_interrupts(GlOBAL);
while(true)
{

}
}
Link download project Click here

Share this

Related Posts

Previous
Next Post »

4 nhận xét

Write nhận xét
May 3, 2017 at 6:44 AM delete

chỉ ch mình cách cách tính dc ko, tks

Reply
avatar
May 3, 2017 at 5:46 PM delete

Cách tính ở trên có mà không chịu đọc !

Reply
avatar
October 16, 2018 at 5:40 AM delete

Chỉ giúp cách tính thời gian với, nếu đếm 3s thì tính như thế nào

Reply
avatar
November 29, 2018 at 9:01 PM delete

nếu tính 1s là ko đc rồi anh ơi ~!~

Reply
avatar