vuliemtd
05-10-2011, 05:36 PM
mình vừa nghiên cứu họ vi điều khiển này. có viết một chương trình đọc số lần ngắt xảy ra trên chân RB0, ở đây mình giả tín hiệu là nút nhấn được nối xuống mass.Mình đã test thử, thấy kết quả đôi lúc bị nhảy mất 2,3 tín hiệu, ví dụ như xung số lần tác động đang là 15, mình nhấn nút bấm một lần nữa đã lên 16,17 luôn. mình đưa chương trình lên nhờ mọi người góp ý nha!
#include <16F877a.h>
#device *=16 //ADC=8
#use delay(clock = 20000000)
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#INT_EXT
void ngat()
{
a=a+1;
printf("gia tri dem la : %u ", a);
delay_ms(20);
}
void main() {
set_tris_b(0x01);
enable_interrupts(global);
enable_interrupts(INT_EXT);// thiet lap ngat ngoai rb0
ext_int_edge(l_TO_h);
port_b_pullups(true);
while (TRUE)
{
}
}
#include <16F877a.h>
#device *=16 //ADC=8
#use delay(clock = 20000000)
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#INT_EXT
void ngat()
{
a=a+1;
printf("gia tri dem la : %u ", a);
delay_ms(20);
}
void main() {
set_tris_b(0x01);
enable_interrupts(global);
enable_interrupts(INT_EXT);// thiet lap ngat ngoai rb0
ext_int_edge(l_TO_h);
port_b_pullups(true);
while (TRUE)
{
}
}