初学PIC,利用PIC18F8720做时间中断跑马灯,有疑问

[复制链接]
4074|5
 楼主| 笑傲浆糊 发表于 2010-9-29 10:12 | 显示全部楼层 |阅读模式
初学PIC,利用PIC18F8720做跑马灯,想法是利用timer0中1s时间中断,利用该中断进行
跑马灯实验,程序如下,该程序在MPLAB里调试ok,可以进入中断,PORTJ的值也是依次循环左移,但是利用protues进行仿真,不能进入timer0时间中断,J口所有的灯都不亮。望大虾指导,非常感激。附件是proteus的仿真。
#include <pic18.h>
void main(void)
{
  TRISJ=0X00;//设置J口为输出口
  PORTJ=0X00;//J口初始化
        T0CON=0X87;//timer0 设置成定时器模式,1/256分频,
  TMR0L=0X12;//低8位数值
  TMR0H=0X7A;//高8位数值,定时1s中断(8MZ)
  GIE=1;     //中断使能
  TMR0IE=1;  //time0中断使能
  while(1)
   {
    ;
      }

}
void interrupt timer0(void)
{
    if(TMR0IE&&TMR0IF)
   {
    TMR0IF=0; //time0 中断标志位清0
    if(PORTJ==0)PORTJ=0X01;
    else PORTJ=PORTJ<<1;
    TMR0L=0X12;
       TMR0H=0X7A;
   }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 笑傲浆糊 发表于 2010-9-29 11:02 | 显示全部楼层
版主,能顶下嘛,自学PIC,感觉走好多弯路啊
yewuyi 发表于 2010-9-29 11:44 | 显示全部楼层
TRISJ=0X00;//设置J口为输出口
首先把类似的0X00全部改成0x再说吧。

0X是不被编译器认可的吧。

另外,俺不用PROTUES调试程序。
yewuyi 发表于 2010-9-29 11:47 | 显示全部楼层
再查一下有无类似OPTION的寄存器,T0可能和看门狗有一定的关联,查一下相关设置。
 楼主| 笑傲浆糊 发表于 2010-9-30 14:43 | 显示全部楼层
都试过了,还是不行,调试时可以进入timer0的中断,但是和proteus调试时始终没有中断
yewuyi 发表于 2010-9-30 16:17 | 显示全部楼层
请以实际芯片调试看看,不排除proteus出错的可能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

35

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部