⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer_int...c

📁 timer int for pic 16f877
💻 C
字号:
/*
* Example Source Code For PIC Timers
*   THis blinks LEDs on PORTB to show interrupt rates
*
* Barton Dring
* Dring Engineering Services
* www.eng-serve.com
*
* Example only!  Use any code at your own risk.
*/

#include<pic.h>
//unsigned int i;
// Interrupt Handler
void interrupt timer1()
{

  // Timer1 Interrupt - Freq = 76.29 Hz - Period = 0.013107 seconds
  if (TMR1IF == 1) // timer 1 interrupt flag
  {
    PORTB = ~PORTB;      // Toggle PORTB bit1 LED
    TMR1IF = 0;           // interrupt must be cleared by software
    TMR1IE  =   1;        // reenable the interrupt
    TMR1H = 0;             // preset for timer1 MSB register
    TMR1L = 0;             // preset for timer1 LSB register
//	i=0;
  }

}



// code starts here...
void main()
{

  // setup portb to show the interrupts by blibking LEDs
  TRISB = 0x00;    // PORT is all output...to show the interrupts
  PORTB = 0;       // start with all outputs low

//Timer1 Registers Prescaler= 1 - TMR1 Preset = 0 - Freq = 76.29 Hz - Period = 0.013107 seconds
T1CKPS1 = 0;   // bits 5-4  Prescaler Rate Select bits
T1CKPS0 = 0;   // bit 4
T1OSCEN = 1;   // bit 3 Timer1 Oscillator Enable Control bit 1 = on
T1SYNC = 1;    // bit 2 Timer1 External Clock Input Synchronization Control bit...1 = Do not synchronize external clock input
TMR1CS = 0;    // bit 1 Timer1 Clock Source Select bit...0 = Internal clock (FOSC/4)
TMR1ON = 1;    // bit 0 enables timer
TMR1H = 0;             // preset for timer1 MSB register
TMR1L = 0;             // preset for timer1 LSB register


// Interrupt Registers
INTCON = 0;           // clear the interrpt control register
TMR0IE = 0;        // bit5 TMR0 Overflow Interrupt Enable bit...0 = Disables the TMR0 interrupt
TMR1IF = 0;            // clear timer1 interupt flag TMR1IF
TMR1IE  =   1;         // enable Timer1 interrupts
TMR0IF = 0;        // bit2 clear timer 0 interrupt flag
GIE = 1;           // bit7 global interrupt enable
PEIE = 1;          // bit6 Peripheral Interrupt Enable bit...1 = Enables all unmasked peripheral interrupts


  while(1)  //endless loop
  {
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -