ช่วยดูโปรแกรมหน่อยครับ

กระทู้คำถาม
#include<reg51.h>
sbit P33 = P3^3;
sbit LED1 = P3^4;
sbit LED2 = P3^5;
sbit LED3 = P3^7;
void delay_30ms(unsigned char i)
{

// 3S = 3000mS = 100*30mS  
// 30ms = 65536-( (30*10^-3)/(12/(11.0592*10^6)) ) = 37888
// 37888 = 0x5580

  TL1=0x80;        // load TL with 0x00
  TH1=0x55;        //load TH with 0xDC
  TF1=0;        //clear timer1 flag
  TR1=1;        //start Timer1

  for(  ; i ; i--) {
   while(!TF1){;}   //wait for timer1 overflow
       TL1=0x80;    // load TL with 0x00
       TH1=0x55;    //load TH with 0xDC
       TF1=0;        //clear timer1 flag
}
       TR1=0;        //stop Timer1    
}          
void main(void)
{  
TMOD = 0x10;  //Timer 1, mode 1 (16-bit)
while(1){
   delay_30ms(100);  // 3s
   if(P33==1){
           LED1 = 0;
        LED2 = 1;
        LED3 = 0;
        }
    else{
        LED1 = 1;
        LED2 = 0;
        LED3 = 1;
        }
}
}
อยากเขียนแบบใช้ timer2 auto reload ค่า tl2 th2 ครับ ใครพอจะมีตัวอย่างให้ดูบ้างไหมครับ ขอบคุณพี่ขนมสาคูที่ช่วยแก้โค้ดข้างบนด้วยครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่