![]() |
![]() |
#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 | |
|
|
![]() |
||||
Ðề 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 |