![]() |
|
|
#19 |
|
Đệ tử 3 túi
Tham gia ngày: Dec 2007
Bài gửi: 51
: |
giúp mình về cái timer với!!
trong chương trình của mình có sử dụng cả timer và ngắt. Đây là hàm phục vụ ngắt của mình: Code:
#int_RB
void ngat_RB()
{
if((RBIF)&&(RBIE))
{
//if(khoidong0==1)
// goto Thoat;
output_low(pin_A3);
output_low(pin_A4);
output_low(pin_A5);
if(!RB4)
{
if(ver==0)
{
ver=1;
hienthicot1();
goto Thoat;
}
if(ver==1)
{
ver=2;
CPHT=1;
goto Thoat;
}
if(ver==2)
{
ver=3;
doctrunggian2();
hienthicot3();
goto Thoat;
}
if(ver==3)
{
ver=4;
phantich_so(trunggian2);
trunggian=nghin;
lcd_display_blink(0,13);
goto thoat;
}
if(ver==4)
{
ver=5;
trunggian=tram;
if(hor==6)
lcd_display_char(0,13,pw[0]);
lcd_display_blink(0,14);
goto thoat;
}
if(ver==5)
{
trunggian=chuc;
if(hor==6)
lcd_display_char(0,14,pw[0]);
ver=6;
lcd_display_blink(0,15);
goto thoat;
}
if(ver==6)
{
trunggian=donvi;
if(hor==6)
lcd_display_char(0,15,pw[0]);
ver=7;
lcd_display_blink(0,16);
goto thoat;
}
if(ver==7)
{
ver=4;
trunggian=nghin;
if(hor==6)
lcd_display_char(0,16,pw[0]);
lcd_display_blink(0,13);
goto thoat;
}
} // Xong RB4
if(!RB5)
{
if((ver==0)||(ver==1))
goto Thoat;
if(ver==2)
{
ver=1;
hienthicot1();
CPHT=0;
hor=0;
goto Thoat;
}// endif(ver==1)
if(ver==3)
{
if((hor==1)||(hor==2)||(hor==3)||(hor==4)||(hor==5))
hor=1;
if((hor==6)||(hor==7)||(hor==8)||(hor==9))
hor=6;
hienthicot2();
ver=2;
goto Thoat;
}// endif(ver==1)
if((ver==4)||(ver==5)||(ver==6)||(ver==7))
{
//RBIF=0;
tonghop_so();
}
}// Endif(RB5)
if(!RB6) // Xu ly tang gia tri
{
if((ver==4)||(ver==5)||(ver==6)||(ver==7))
tangcot();
}// Endif(RB6)
if(!RB7)
{
if(ver==2)
{
if(hor==0)
{
hor=1;
goto hienthi42;
}
if(hor==1)
{
hor=6;
goto hienthi42;
}
if(hor==6)
{
hor=0;
goto hienthi42;
}
hienthi42:
hienthicot2();
goto thoat;
}
if(ver==3)
{
if(hor==1)
{
hor=2;
goto chuyendich43;
}
if(hor==2)
{
hor=3;
goto chuyendich43;
}
if(hor==3)
{
hor=4;
goto chuyendich43;
}
if(hor==4)
{
hor=5;
goto chuyendich43;
}
if(hor==5)
{
hor=1;
goto chuyendich43;
}
if((hor==6)&(user==1))
{
hor=7;
user=0;
goto chuyendich43;
}
if(hor==7)
{
hor=8;
goto chuyendich43;
}
if(hor==8)
{
hor=9;
goto chuyendich43;
}
if(hor==9)
{
hor=7;
goto chuyendich43;
}
chuyendich43:
{
//doctrunggian2();
hienthicot3();
phantich_so(trunggian2);
// doctrunggian2();
}
} //If (ver==3)
}// Endif(RB7)
Thoat:
RBIF=0; //Xoa co ngat RB
} // Ket thuc if co ngat
}// Ket thuc ham void
mình đã thử độc lập riêng timer thì hoàn toàn đúng. mong được mọi người giúp đỡ. mình cảm ơn nhiều. |
|
|
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|
Similar Threads
|
||||
| Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
| TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
| TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
| Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
| Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
| Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |