PIC单片机定时器中断不工作,求助PIC大神们,仅有20全出了!

小弟的程序如下:
功能就是一个LED闪烁:
芯片型号:PIC 16F690

#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
void init();
void main()
{
init();
while(1==1);
}
void interrupt tmr1()
{
if(T0IF==1)
{
T0IF=0; //标志位清零
RC5=!RC5;
}
}
void init()
{
TRISC5=0; //C5输出模式
T0CS=0; //内部时钟(定时器模式)
PSA=0; //预分频定时器
PS2=1; //1:256预分频
PS1=1;
PS0=1;
GIE=1; //全局中断使能
T0IE=1; //定时器中断使能
T0IF=0; //TO中断标志位清零
TMR0=0; //T0赋初值
RC5=0;
}

你内部时钟用多大的?可能是时间太短了看不到灯的闪烁。你在中断里面再用个变量来延时一下。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-27
在中断程序里把TMR0再送初值,在中断里加一句TMR0=0;试试看看。
第2个回答  2011-10-26
程序不完整啊 初始化执行一遍就结束了 里面加个循环等待定时器中断发生

单片机中断函数不工作了?咋回事呀?
it 没有初始化,可能一出来就大于20了。还有比较的时候用 if( it >= 20 ){ it = 0;} 比较妥。

求助关于PIC单片机串口中断的接受和发送问题
你在主函数中先把RCIF标志位清零,你做的应该是SCI串行通信吧,一上电,就表示程序开始执行了,你程序一开始执行就是要进行SCI串行通信,当然一开始就进入中断了,如果你不想这样,你可以连一个按钮,当此按钮按下后就进入中断执行SCI通信

pic单片机程序无法进入中断
这种问题重点查二种状态,一为,定时器是否工作,即它是不是不停的加1.二是,中断设置是否对,如全局中断,定时器中断,和外围中断(如果你用的是定时器1或定时器2的话)是否允许了。

pic单片机时钟中断程序怎么执行的啊?初学,望赐教!帮忙解释一下这个程...
\/定时器装初值 执行while(1)定时器标志位溢出时 程序就进入中断了 中断中 副初值 清除定时器中断的标志位 s加1 主函数while1中 如果s加到25(就是中断了25次) 就 清零s 将c口移位 你用什么型号的pic单片机啊 你确定程序可以运行么???

PIC 定时器为什么进不了中断
在初始化中将 外部中断PEIE=1;使能 总中断GIE=1;使能

PIC单片机汇编语言的中断程序 ,求人分析一下怎么运行的
很简单的。在main主程序里面 LOOP GOTO LOOP 这条程序,会不停的执行,到了TMR0溢出的时候就会执行中断程序 ORG 0004H为中断程序的地址

PIC单片机有定时器,没中断,怎么判断数据溢出
读TMR0IF就能知道T0是否溢出。if(TMR0IF){...}

关于PIC定时器问题
你应该去找PIC16F873的数据说明书来看看(电子版免费可下载的)。说明书里连样例程序都有。就如图可以看出:这是873的定时器1的结构图。当4Mhz的晶振时候,则单个指令周期为1uS,而定时器1的TMR1是16位的,如果预分频1:1,则从0计算到0xffff溢出时间需要65536个指令周期,也就是65mS多点。而当...

计算机PIC定时器的工作原理是什么?
计算机 PIC 定时器的工作原理主要围绕其内部结构和操作机制。 PIC 是基于微处理器的单片机系统,定时器是 PIC 微控制器中的一个关键组成部分,用于实现时间控制功能。在 PIC 微控制器中,定时器由计数器、控制寄存器、中断机制和定时器模式等组成。计数器是定时器的核心,它通过递增计数值来计算时间。

关于单片机中断时两个中断出现的不同情况
外部中断1,定时器1,串口中断!你按下中断0的时候,因为她的中断优先级是最高的,所以他执行的时候,其他的中断是不能执行的。所以只有显示,没有闪烁。你按下中断1的时候,因为定时器0的优先级是比他搞的,那么这样的话就会使得你中断1执行的时候中断0也是可以执行的!现象是既有显示还有闪烁!

相似回答