![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
|
Ðiều Chỉnh | Xếp Bài |
|
|
#1 |
|
Đệ tử 1 túi
Tham gia ngày: Jul 2009
Bài gửi: 11
: |
Tốc độ động cơ hiển thị không chính xác
Em có lập trình đoạn chương trình sau:
Code:
lcd_putchar(" PC or Manual?");
while(down&S_t);
If(!down) {
lcd_putcmd(0x80);
lcd_putchar(" Manual");
delay_ms(1000);
goto Manual;
}
If(!S_t) {
lcd_putcmd(0x01);
lcd_putchar(" PC");
delay_ms(1000);
goto Maytinh;
}
Code:
#INT_RDA // Ngat RS232
void Receive_isr()
{
text[dem]=getc(); // Du lieu duoc dua vao mang
if(text[dem]=='@') // Kiem tra dieu kien ket thuc
{
flag =1; // Ket thuc nhan, bat co bao
dem=0;
}
else dem++;
}
#INT_EXT // Ngat RB0
void ngatR0()
{
count++; // Ham duoc goi khi co suon len tai RB0
}
#int_timer1
void Timer1_isr()
{ // Ham duoc goi khi TImer1 tran (65535->0)
set_timer1(53036); // Chu ky trich mau (65536-53036)*4*4/20000000 = 0.01
tocdo= 30*(count + get_timer0()); // Tocdo=soxung*60/200/0.01
count = 0; //
set_timer0(0);
}
Em không biết nên làm thế nào nữa, chỉ ghép 2 chương trình đúng lại mà thành 1 chương trình sai. Hix. Mong mọi người cho em lời khuyên. |
|
|
|
|
|