Connect with us

Timer interrupt programming

Discussion in 'Microcontrollers, Programming and IoT' started by vead, Jan 30, 2018.

  1. vead

    vead

    473
    14
    Nov 27, 2011
    Hello

    I have written program to set timer interrupt on 8051 microconroller. I want to set interuupt for 50 ms

    Fosc = 11.0592Mhz
    tick = 12/11.0592M = 1.085069444us = 1.085us
    Interrupt time = 60 ms
    60,000*1.085= 55299
    65536-55299= 10237 =ox27FD
    Code:
    #include<reg51.h>
     
    sbit LED = P1^0; 
     
    int main(void)
    {
    /* Make all ports zero */
       P0 = 0x00; 
       P1 = 0x00; 
       P2 = 0x00; 
       P3 = 0x00;
     
       TR0 = 0;                 //turn Off Timer 0
       TF0 = 0;                 //Clear the interrupt flag
       TMOD = 0x01;             //Set timer0 in mode 1
       TH0 = 0x27;               //Load the timer value
       TL0 = 0xFD; 
       ET0 = 1;                /* Enable Timer0 interrupts */ 
       EA  = 1;                /* Global interrupt enable */
       TR0 = 1;                //turn ON Timer 0 
     
       while(1)
        {
            
        }
    }
     
    void timer(void) interrupt 1 
      {
           LED=~LED;               /*toggle LED on interrupt */
           TH0=0x48;                /* initial values loaded to timer */
           TL0=0x01;
      }
    I am setting interrupt for 60 ms. does it means interrupt will generate after 60 ms second,

    Does it happen, Led blink after every 60 ms and for 60 ms

    I am not sure weather my interrupt calculation is correct or wrong?
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-