打印

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

[复制链接]
2969|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;
   }
}

test1 for PIC timer0.rar

20.83 KB

沙发
笑傲浆糊|  楼主 | 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可能和看门狗有一定的关联,查一下相关设置。

使用特权

评论回复
5
笑傲浆糊|  楼主 | 2010-9-30 14:43 | 只看该作者
都试过了,还是不行,调试时可以进入timer0的中断,但是和proteus调试时始终没有中断

使用特权

评论回复
6
yewuyi| | 2010-9-30 16:17 | 只看该作者
请以实际芯片调试看看,不排除proteus出错的可能

使用特权

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

本版积分规则

0

主题

35

帖子

1

粉丝