Chào các bạn! Truyen4U chính thức đã quay trở lại rồi đây!^^. Mong các bạn tiếp tục ủng hộ truy cập tên miền Truyen4U.Com 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: Truyen4U.Com

Tags: