Thứ Ba, 4 tháng 12, 2018

Chương trình ví dụ về ngắt ở port RB0

Khi có sự thay đổi xung cạnh lên, hoặc xung cạnh xuống tại chân RB0, thì sẽ tạo ra một ngắt. Ngắt xảy ra tại cạnh lên hoặc cạnh xuống phụ thuộc cách thiết lập bit INTEDG ở thanh ghi OPTION.
Khi bit INTEDG=1 thì ngắt xảy ra ở cạnh lên.
Khi bit INTEDG=0 thì ngắt xảy ra ở cạnh xuống.
Ngắt Port B0
Chương trình dưới đây sử dụng ngắt ngoại vi ở chân RB0, khi xảy ra ngắt( có xung cạnh xuống tại chân RB0), thì thiết lập chân RB1 lên mức 1
#include <16F877A.h>
#device *=16 ADC=10
#use delay(clock=20000000)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT 
#int_ext     //ngắt ngoại vi ở chân RB0
void ISR() //hàm xữ lý ngắt ngoại vi RB0

  output_high(pin_b1); // Chân RB1 =1;

//Đoạn chương trình chính
void main() 

  set_tris_b(0x01);    // thiết lập chân RB0 là input, chân RB1 đến RB7 là output 
  output_low(pin_b1); // Chân RB1 =0;
  ext_int_edge(H_TO_L);   //Ngắt xung cạnh xuống chân chân RB0 (từ mức cao-> mức thấp)
  enable_interrupts(INT_EXT);  //cho phép ngắt RB0
  enable_interrupts(GLOBAL);  //cho phép ngắt toàn cục
  while (1)   //vòng lặp vô tận
  {  
  } 
}
 
Chương trình dưới đây sử dụng ngắt ngoại vi ở chân RB0, khi xảy ra ngắt( có xung cạnh xuống tại chân RB0), thì đảo trạng thái ở chân RB1
#include <16F877A.h>
#device *=16 ADC=10
#use delay(clock=20000000)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT 
#int_ext     //ngắt ngoại vi ở chân RB0
void ISR() //hàm xữ lý ngắt ngoại vi RB0

  output_toggle(pin_b1); //Đảo trạng thái của của chân RB1

//Đoạn chương trình chính
void main() 

  set_tris_b(0x01);    // thiết lập chân RB0 là input, chân RB1 đến RB7 là output 
  output_low(pin_b1); // Chân RB1 =0;
  ext_int_edge(H_TO_L);   //Ngắt xung cạnh xuống chân chân RB0 (từ mức cao-> mức thấp)
  enable_interrupts(INT_EXT);  //cho phép ngắt RB0
  enable_interrupts(GLOBAL);  //cho phép ngắt toàn cục
  while (1)   //vòng lặp vô tận
  {  
  } 
}

Không có nhận xét nào:

Đăng nhận xét

Bài đăng mới nhất

Valdes Fernando - Microcontrollers Applications With Pic

Bài đăng phổ biến