#include <16F877A.h>
#fuses HS,NOWDT, NOPROTECT
#use delay(clock=8000000)
#include <LCD1.c>
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
#use fast_io(b)
int16 CCP1Value;
int16 CCP1OldValue;
BOOLEAN CCP1Captured;
int16 DORONGXUNGON ;
BOOLEAN CHIEU ;
FLOAT GIATRI ;
#int_CCP1
CCP1_isr()
{
//// viết code đếm số xung ở đây, cứ 200 xung = 1vong tùy thuộc vào encoder nữa bạn,
xung++ ;
if(xung == 200) vong++ ;
printf(lcd_putc,"so vong quay: %2d",vong) ;
}
//--------------------------------------------------------------------------
void Init_ccp(void)
{
setup_ccp1(CCP_CAPTURE_RE);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
CCP1Value = 0;
CCP1OldValue = 0;
CCP1Captured = TRUE;
enable_interrupts(INT_CCP1);
enable_interrupts(GLOBAL);
}
|