新闻中心

EEPW首页>嵌入式系统>设计应用> PIC16F877A-定时器0

PIC16F877A-定时器0

作者: 时间:2016-11-13 来源:网络 收藏
/********************************************************

PIC16F877A_Timer0_定时器

本文引用地址://m.amcfsurvey.com/article/201611/316100.htm

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

#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只有一个中断入口地址,进入中断之后第一件事

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

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

voidinterruptTimer0()

{

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

{

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

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

PORTD = ~PORTD;//输出指示

}

}

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

主函数

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

void main(void)

{

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

PORTD = 0xff;

TRISD = 0x00;

while(1)

{

asm("nop");

}

}



关键词:PIC16F877A定时器

评论


技术专区

关闭