Thứ Ba, 20 tháng 3, 2018

Published tháng 3 20, 2018 by Nặc danh with 1 comment

[PIC16F877A] Sử dụng Timer 1 tạo ngắt để tắt mở led chu kỳ 210ms


Ở bài này mình sẽ hưởng dẫn các bạn tạo hàm delay có thời gian là 210ms bằng cách ngắt Timer1.
Bài toán giải quyết như sau :
+ Khởi tạo 1 timer1 với thạch anh nội là 40M , sử dụng bộ chia 8, và xuất ra Port D
+ Vì timer 1 có 16bit nên giá trị tràn là 65536
+ Thạch anh nội 40M và dùng bộ chia 8 ( đầu tiên ta lấy 20/4 sau đó lấy (20/4)/8= 0.625 M)
 0.625M  lấy T=1/f = 1/625 = 1.6us . Như vậy mỗi chu kỳ máy ta được 1.6us do đó
khi tràn ta được 65536*1.6 = 104857.6 us xấp xỉ 105ms.
+ Cờ tràn nằm ở bit thứ 0 trong thanh ghi PIR1(00001100) do đó ta định nghĩa #bit tmr1if=0x0C.0 nếu
xảy ra tràn thì tmr1if=1 , để xóa cờ tràn thì gán tmr1if=0
Lưu ý mở file <16f877a.h> ra và thêm vào #bit tmr1if 0x0c.0 hoặc thêm trực tiếp vào code phía dưới nhé
Code C đây : 


/* dieu khien cac led don sang tat dung timer 1 voi chu ky delay la 210ms */
/*
thuat toan nhu sau T=210ms vay Ton=Toff=105ms
dung he so chia 8 va port D xuat va bat dau dem timer

*/

#include

unsigned int8 X=0x00;
void main()
{
SET_TRIS_D(0x00);
setup_timer_1(T1_internal| T1_div_by_8);
set_timer1(0); // dem bat dau tu 0

while (true)
{
if (tmr1if==1)
{
X=~X;
output_D(x);
tmr1if=0;

}
}
}


      edit

1 nhận xét:

  1. [Pic16F877A] Sử Dụng Timer 1 Tạo Ngắt Để Tắt Mở Led Chu Kỳ 210Ms ~ Thủ Thuật Word >>>>> Download Now

    >>>>> Download Full

    [Pic16F877A] Sử Dụng Timer 1 Tạo Ngắt Để Tắt Mở Led Chu Kỳ 210Ms ~ Thủ Thuật Word >>>>> Download LINK

    >>>>> Download Now

    [Pic16F877A] Sử Dụng Timer 1 Tạo Ngắt Để Tắt Mở Led Chu Kỳ 210Ms ~ Thủ Thuật Word >>>>> Download Full

    >>>>> Download LINK

    Trả lờiXóa