Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

ngắt ngoài trên chân RB0 và trên các chân RB4 đến RB7

Ví dụ về ngắt Timer, sau đây là 2 ví dụ về ngắt ngoài trên chân RB0 và trên các chân RB4 đến RB7:

Chương trình sau dùng ngắt ngoài trên RB0 đếm số lần cái button được nhấn xuống, hiển thị lên led 7 đoạn (common cathode).Nếu số lần nhấn vượt quá 9, chương trình sẽ quay về hiển thị lên led từ số 1.

Code:

//*****************************************************************************

// Author : nhh

// Date : 03/04/06

// Hardware: PIC16F877A

//*****************************************************************************

#include <16F877A.h>

#fuses NOWDT,PUT,XT,NOPROTECT

#use delay(clock=4000000)

#use fast_io(b)

#use fast_io(d)

#byte portb=0x06

#byte portd=0x08

const unsigned char digital[]={0b00000110, 0b01011011, 0b01001111, 0b01100110,\

0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111};

// ma hoa digital duoi dang mang

// Chuong trinh ngat

#int_ext

void ngat_RB0()

{

if(i<9)

{

portd=digital[i];

++i;

}

if(i==9)

{

i=0;

}

}

// Chuong trinh chinh

main()

{

set_tris_b(0b00000001);

set_tris_d(0);

enable_interrupts(global);

enable_interrupts(int_ext);

ext_int_edge(H_to_L);

portd=0b00111111;

while(true)

{

// chi doi ngat nen vong lap nay ko co gi ca !

}

}

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: