×
单片机 > 单片机程序设计 > 详情

PIC16F877A-定时器0

发布时间:2020-05-16 发布时间:
|
/********************************************************

PIC16F877A_Timer0_定时器

********************************************************/

#include "pic.h"

__CONFIG(0X3F71);

 

/********************************************************

定时器0初始化函数

********************************************************/

void Init_T0()

{

    T0CS = 0;//内部时钟源

    T0SE = 1;//下降沿增计数

    PSA = 1;//预分频器分配给WDT,TMR0不分频

    

    TMR0IF = 0;

    GIE = 1;//打开总中断

    TMR0IE = 1;//打开定时器0中断允许

    TMR0 = 238;//加载初值

}

/********************************************************

中断服务函数:PIC16F877A只有一个中断入口地址,进入中断之后第一件事

就是根据中断标志位判断是哪个模块产生的中断,再做相应的处理

********************************************************/

void interrupt Timer0()

{

  if(TMR0IF)//判断是否为定时器0溢出中民   

  { 

    TMR0IF = 0;//清除溢出标志

    TMR0 = 238;//重新加载初值

    PORTD = ~PORTD;//输出指示

  }  

}

 

/********************************************************

主函数

********************************************************/

void main(void)

{

  Init_T0();//定时器0初始化

  PORTD = 0xff;

  TRISD = 0x00;

  while(1)

  {

    asm("nop");

  }

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计