navypro
04-06-2013, 12:01 AM
em mới học pic nghr các bác nói con 887 ra đời sau con 877a tính năng tương đương mà giá cả lại phù hợp với túi tiền của phần đa anh em sinh viên tuy nhiên tài liệu cho pic16f887 đang còn ít nhiều vấn đề chưa được giải đáp. em cũng đã làm với 887 nhưng chưa ăn thua vậy em viết luồng này mong các Bro chỉ giáo và thông qua đây giúp cho những người đang bí đường như em tìm thấy ánh sáng nơi cuối đường hầm
Thân!!!
đây là đoạn code đã được test thành côn trên 877a nhưng sang 887 thì tit
#include <16F887.h>
#use delay(clock=4000000)
#fuses XT
#include "hienthiLCD.c"
int count;
int32 suon_len,suon_xuong;
int32 d;
#int_TIMER1
void TIMER1_isr()
{
++count;
}
#int_CCP2
void CCP2_isr()
{
suon_len = CCP_2;
suon_xuong = CCP_1;
set_timer1(1);
}
void main()
{
setup_ccp2(CCP_CAPTURE_FE);
setup_ccp1(CCP_CAPTURE_RE);
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 );//set timer1 to run at system clock/4
enable_interrupts(INT_TIMER1); //unmask Timer1 overflow interrupt
enable_interrupts(INT_CCP2); //unmask capture event interrupt
enable_interrupts(global); //enable all unmasked interrupts
while(true)
{
d = suon_len-suon_xuong;
LCD_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"do rong: %lu", d);
}
}
Thân!!!
đây là đoạn code đã được test thành côn trên 877a nhưng sang 887 thì tit
#include <16F887.h>
#use delay(clock=4000000)
#fuses XT
#include "hienthiLCD.c"
int count;
int32 suon_len,suon_xuong;
int32 d;
#int_TIMER1
void TIMER1_isr()
{
++count;
}
#int_CCP2
void CCP2_isr()
{
suon_len = CCP_2;
suon_xuong = CCP_1;
set_timer1(1);
}
void main()
{
setup_ccp2(CCP_CAPTURE_FE);
setup_ccp1(CCP_CAPTURE_RE);
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 );//set timer1 to run at system clock/4
enable_interrupts(INT_TIMER1); //unmask Timer1 overflow interrupt
enable_interrupts(INT_CCP2); //unmask capture event interrupt
enable_interrupts(global); //enable all unmasked interrupts
while(true)
{
d = suon_len-suon_xuong;
LCD_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"do rong: %lu", d);
}
}