![]() |
|
Tài trợ cho PIC Vietnam |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2009
Bài gửi: 1
: |
Ngắt RB mô phỏng bình thường nhưng mạch thực tếkhông chạy dc
mình có 1 chương trình, khi mô phỏng thì bình thường nhưng thử cắm mạch thì ngắt RB ko hoạt động, nhờ mọi người chỉ giúp
Code:
#include <16f877a.h> #device *=16 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT #use delay(clock=4000000) #use rs232 (baud=9600 , parity=n , xmit=pin_C6 , rcv=pin_C7,bits=9 ) int khoang; int tang; int step=0; int khoanggui=3; int tanggui=3; int khoangnhan=1; int tangnhan=1; int tran1=1; int tran2=1; int tran3=1; char daygui='b'; char daynhan='a'; int trangthai=1; char buffer[8]; int i; #INT_RB void cn_khoang() { if (input(pin_B7)) { khoang=1; } if (input(pin_B6)) { khoang=2; } if (input(pin_B5)) { khoang=3; } if(input(pin_B4)) { step++; if(step==2) { step=0; trangthai=2; } } } #INT_RDA void nhan_lenh() { buffer[i]=getc(); i++; if (buffer[0]=='1') { tangnhan=1; } else if (buffer[0]=='2') { tangnhan=2; } else if (buffer[0]=='3') { tangnhan=3; } if (buffer[1]=='1') { khoangnhan=1; } else if (buffer[1]=='2') { khoangnhan=2; } else if (buffer[1]=='3') { khoangnhan=3; } daynhan=buffer[2]; if (buffer[3]=='1') { tanggui=1; } else if (buffer[3]=='2') { tanggui=2; } else if (buffer[3]=='3') { tanggui=3; } if (buffer[4]=='1') { khoanggui=1; } else if (buffer[4]=='2') { khoanggui=2; } else if (buffer[4]=='3') { khoanggui=3; } daygui=buffer[5]; if (i==6) { i=0; trangthai=1; tran1=1; tran2=1; tran3=1; } } void main() { setup_ccp1(ccp_pwm); setup_ccp2(ccp_pwm); enable_interrupts ( INT_RB ) ; enable_interrupts ( INT_RDA ) ; enable_interrupts ( GLOBAL ) ; setup_timer_2(t2_div_by_16,255,16); buffer[0]='1'; buffer[1]='1'; buffer[2]='a'; buffer[3]='3'; buffer[4]='3'; buffer[5]='b'; while(true) { if (trangthai==0) { set_pwm1_duty(0); } if (trangthai==1) { if(step==0) { if(khoang<khoangnhan) { output_high(pin_B1); set_pwm1_duty(1000); } if (khoang>khoangnhan) { output_low(pin_B1); set_pwm1_duty(1000); } if (khoang==khoangnhan) { set_pwm1_duty(0); if (tran1==1) { putc('s'); putc(buffer[0]); putc(buffer[2]); putc(buffer[3]); putc(buffer[5]); tran1=0; } } } if (step==1) { if (khoang==khoanggui) { set_pwm1_duty(0); if (tran2==1) { putc('c'); tran2=0; } } if (khoang<khoanggui) { output_high(pin_B1); set_pwm1_duty(1000); } if (khoang>khoanggui) { output_low(pin_B1); } } } if (trangthai==2) { if (khoang>1) { output_low(pin_B1); set_pwm1_duty(1000); } else { set_pwm1_duty(0); if (tran3==1) { putc('l'); tran3=0; trangthai=0; } } } } } ![]() |
![]() |
![]() |
|
|