View Single Post
Old 08-12-2012, 09:26 AM   #1
zhangthang
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;
         }
      }
   }
}
}
File Kèm Theo
File Type: rar chuongtrinh.rar (7.4 KB, 0 lần tải)
zhangthang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn