PIC单片机定时器中断程序怎么进不去?

各位好!我用PIC16F73单片机编一个定时器程序,但无法进入中断程序,如果把中断程序放到主函数中能正常运行。程序如下:
#include "init.h"
#define set_bit(a,b) a|=1<<b
#define clr_bit(a,b) a&=~(1<<b)
uchar timecnt;
//看门狗初始化
void watchdoginit(void)
{
OPTION = 0x0F; //B口上拉,内部RC时钟,预分频给WDT,WDT分频为1:128
}
//定时器1初始化,10ms定时
void timer1init(void)
{
TMR1H = 0XFB;
TMR1L = 0X1E;
TMR1IF = 0;
PEIE = 1;
TMR1IE = 1;
T1CON = 0X31;
}
//端口初始化
void portinit(void)
{
//clr_bit(OPTION,7); //端口B内部上拉使能
TRISA = 0xFF;
TRISB = 0x7F;
clr_bit(PORTB,7);
TRISC = 0x00;
PORTC = 0x10;
}
void init(void)
{
di();
portinit();
timer1init();
ei();
}
//中断服务程序
void interrupt ISR(void)
{
if(TMR1IF)
{
TMR1IF = 0;
TMR1H = 0XFB;
TMR1L = 0X1E;
timecnt++;
if(timecnt<30)
{
set_bit(PORTC,0);
}
else
{
clr_bit(PORTC,0);
}
if(timecnt>60)
timecnt = 0;
}
}
void main(void)
{
clr_bit(TRISC,0);
clr_bit(TRISC,1);
clr_bit(TRISC,3);
watchdoginit();
init();
while(1)
{
CLRWDT();
}
}
求高手求解!

第1个回答  2012-05-22
他用EI();打开全局中断的
首先你仔细调试看看TI的计数器是否能溢出
溢出后中断标志是否为1,为1了清零;
T1中断使能相关:GIE,PEIE,TMRIE这三个
你在特殊寄存器中单步调试仔细看看本回答被提问者采纳
第2个回答  2012-05-17
你把总的中断设置INTCON的GIE忘了置1,当然就进不了中断!

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

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

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

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

单片机常见故障及处理
2.引脚电平变化触发中断,和外部INT中断,在总中断GIE清零的时候,不会进入中断程序执行。3.单片机进入休眠时,要唤醒,常常使用引脚电平变化中断或者外部INT中断。若是前者,按键按下时会唤醒,按键抬起时也会唤醒。如果这个时候还有别的中断,如初始化了定时器,GIE置位了,两种中断就会冲突 4.如果PIC...

计算机PIC定时器的工作原理是什么?
定时器通过内部振荡器产生时钟信号,时钟信号的频率决定了计数器的计数速度。预分频因子可以调整时钟信号的频率,以适应不同的定时需求。在计数过程中,当计数值达到预设值时,计数器会复位,并触发中断,从而执行相应的程序代码。中断机制是 PIC 定时器工作原理中的重要一环。当计数器完成计数并触发中断时...

PIC单片机 RCIE&&RCIF语句是什么意思
接收中断允许位 1 = 允许 USART 接收中断 0 = 禁止 USART 接收中断 RCIF: :USART 接收中断标志位 1 = 中断等待响应 0 = 没有等待响应的中断 收到帧头后,开个1ms定时器,1ms内来一个数收一个数,把这些数放到自己的开的数组里,然后再分析数据 ...

中断分配问题
不可以,一个程序里可以用到3个定时器,但不能用一个定时器去处理3个中断函数。一定要一一对应,定时器0对应中断1 定时器1对应中断3 定时器2对应中断5,52单片机有3个定时器,51有2个定时器。利用一个定时器实现多个定时任务 单片机资源有限,当要实现多个定时任务时可以利用一个片上定时器作基准...

pic16F887定时器0中断和串口中断能同时使用吗
一、PIC16F887 的所有中断源都可以同时使用。所以定时器0中断和串口的发送中断、串口接收中断可以同时使用 二、PIC16F887 的所有中断入口是同一个 三、CPU在进入中断处理程序后,需要先判别中断标志然后再进入各自的中断处理

PIC单片机用timer0作为timer1的门控信号源时,timer1怎么工作
迷茫,你既然用了TIMER0中断,干嘛还要用TIMER1中断呢。。。你只要在TIMER0里弄个变量计数不就行了。。。

相似回答