• Tin mới

    [PIC TUTORIAL] Bài 3 Định thời tạo xung vuông có tần số 100Hz, duty cycle 40% tại RD0

    Sơ đồ mạch điện 




    Chương trình mẫu
    #include "16f887.h"
    #include "def_16f887.h"
    #fuses   HS,PUT,NOWDT,NOPROTECT,NOLVP 
    #use     delay(Clock = 8000000)        //Thach anh 8MHz
    
    #define offset    20   // 
    int8 temp = 0;
    #int_TIMER1
    void  TIMER1_isr(void) 
    {  
       set_timer1(63536+offset);
       temp++;
       if(temp==10) temp=0;
       if(temp <=4)   RD0 = 1;     
       else  RD0 = 0;     
                             
       
       
    }
    
    void main()
    {
    //Khoi tao T1 va ngat.
       setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);  //T1 dem xung noi, ti le chia 1
       enable_interrupts(INT_TIMER1);
       enable_interrupts(GLOBAL);
       set_timer1(63536+offset);         //Thach anh 8 MHz => CK may = 4/8 = 0,5us                                
                                  //1000US ngat 1 lan = 2000xung = 65536 - 63536
    //Thiet lap cac pin xuat nhap
       set_tris_d(0x00);          //PORTD xuat du lieu.                
    //----------------------------
       while(1);
    }
    
    





    DOWNLOAD FILE MÔ PHỎNG + CODE
    (Bấm vào link đợi 5s, sau đó bấm "Skip Ad" sẽ ra link download) 




    No comments