打印
[PIC®/AVR®/dsPIC®产品]

PIC16F877A单片机中断不执行

[复制链接]
1430|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
轩辕紫冀|  楼主 | 2015-2-5 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
跪求高手解决!!
用定时器0控制灯的闪烁。程序下进去没有反应,屏蔽中断和不使能定时器时,可以点亮LED灯。使能定时器程序就没有反应。十分感谢诸位!
程序如下:
#include <pic.h>
__CONFIG(0x3B31);
#define uint        unsigned int
void Timer0_Init(void);
uint intnum=0;
void interrupt        ISR (void)
{
        if(TMR0IE&&TMR0IF)
        {
                TMR0IF=0;
                intnum++;
                if(intnum==20)
                {
                        intnum=0;
                        PORTD=~PORTD;
                }
        }

}
main()
{
        TRISD=0;
        PORTD=0x00;
        Timer0_Init();
        while(1);
       
}
void Timer0_Init(void)
{
       
        T0CS=0;
        PSA=0;
        PS2=1;
        PS1=1;
        PS0=1;
        TMR0IF=0;
        TMR0=0;
        GIE=1;
        PEIE=1;
        T0IE=1;
}
沙发
轩辕紫冀|  楼主 | 2015-2-5 22:44 | 只看该作者
下了很多编程序,都不行,拔掉了KIT3,又插上,居然好了。真是奇怪之极。

使用特权

评论回复
板凳
轩辕紫冀|  楼主 | 2015-2-5 22:52 | 只看该作者
再下一遍程序,又不能用了。灯又不闪烁了。这是怎么回事。定时器TMR0不计数呀!

使用特权

评论回复
地板
sevenjul| | 2015-2-6 10:50 | 只看该作者
KIT3插上可以用,是指用KIT3烧可以用还是要把KIT3插着才能用?
如果是偶尔可以用偶尔不能用,可以查一下配置字,再者硬件问题。
如果是KIT3插上才能用,那可以查一下电源的情况了。

使用特权

评论回复
5
轩辕紫冀|  楼主 | 2015-2-6 11:48 | 只看该作者
sevenjul 发表于 2015-2-6 10:50
KIT3插上可以用,是指用KIT3烧可以用还是要把KIT3插着才能用?
如果是偶尔可以用偶尔不能用,可以查一下配 ...

用KIT3烧写,仿真,现在定时器都不工作,都不管用。用KIT3之前烧过和仿真过其他流水灯的程序,都没有问题。这个程序只要把中断程序加上,定时器就不工作,几个寄存器的值也不正确。配置位改成了0x3331了,也是这样。

使用特权

评论回复
6
轩辕紫冀|  楼主 | 2015-2-6 11:49 | 只看该作者
轩辕紫冀 发表于 2015-2-6 11:48
用KIT3烧写,仿真,现在定时器都不工作,都不管用。用KIT3之前烧过和仿真过其他流水灯的程序,都没有问题 ...

C:\Users\Ping\Desktop

使用特权

评论回复
7
轩辕紫冀|  楼主 | 2015-2-6 11:54 | 只看该作者
本帖最后由 轩辕紫冀 于 2015-2-6 11:56 编辑
轩辕紫冀 发表于 2015-2-6 11:48
用KIT3烧写,仿真,现在定时器都不工作,都不管用。用KIT3之前烧过和仿真过其他流水灯的程序,都没有问题 ...真是奇怪,不知道怎么回事。十分谢谢你!

使用特权

评论回复
8
hang150| | 2015-2-6 14:35 | 只看该作者
你检查下是定时器是否自动重装,硬件接地有没问题。
建议楼主使用最新的MPLAB X IDE配合XC8编译器。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

9

帖子

0

粉丝