Code:
void TM1_INT() interrupt 3 using 0 { TH1=0x3c; TL1=0xb0; TF1=0; TR1=0; dem++; //Lap 20 lan se duoc 1 s if(dem==20) {giay++; dem=0;} if(giay>=60) { giay=0; phut++; } if(phut>=60) { phut=0; gio++; } if(gio>=24) gio =0; TR1=1; }
Để tính 1 s thì mình làm như sau : Sử dùng timer1 để đếm 50000 xung(TH1=0x3c;TL1=0xb0);, mỗi lần đếm được như vậy thì tăng biến dem lên 1. Sau 20 lần ta được 1 triệu xung tức 1 s. Lý thuyết là thế nhưng khi nạp vào VĐK thì nó lại đếm 1 s rất nhanh . Có phải mình tính toán sai chỗ nào không???
Comment