C8051F040串口发数据,定时器中断不能进入

[复制链接]
 楼主| lezhongxian 发表于 2010-10-11 09:48 | 显示全部楼层 |阅读模式
本帖最后由 lezhongxian 于 2010-10-13 19:28 编辑

我用的是C8051F040单片机,向串口发送单个数据时能进中断,为什么发送一串数据时就不能进入定时器中断,是不是串口程序把定时器程序给冲了?现把定时器,主程序的程序贴出来,请各位大侠看看
void  t2() interrupt 5  //定时器T2中断
{
           static pdata uint number=0;
           TMR2CN = 0x04;        //T2标志位清零
            led1 = ~led1;           //指示灯亮
}

void  main() //主函数
{
       uchar aa[5]={0x55,0x11,0x22,0x33,0xaa};//发送的数据
       uchar i;
       initial(); //初始化

       for(i=0;i<5;i++)
      {
             SBUF0=aa;
             while(!TI0);//等待发送完成
            TI0 = 0;
       }
       while(1);


}
java0735 发表于 2010-10-24 22:48 | 显示全部楼层
你是不是没见led1等闪烁所以认为没进定时器中断吧,灯没闪是因为没有换页寄存器,在led1 = ~led1; 前加上一句SFRPAGE = CONFIG_PAGE;就ok啦
java0735 发表于 2010-10-24 22:50 | 显示全部楼层
你是040新手吧,040里面有个SFRPAGE特殊功能寄存器,好好看看,就知道你程序问题出在哪了
shseo 发表于 2010-10-25 14:41 | 显示全部楼层













------------------------------用户言论/签名并不代表本站观点
title="上海seo"
 楼主| lezhongxian 发表于 2010-10-27 22:39 | 显示全部楼层
本帖最后由 lezhongxian 于 2010-10-27 22:53 编辑

3# java0735
应该不是这个问题,我的LED1是放在P0口的,任何页的,我断点设在LED1处单步运行是可以进去,但也只能进去几次,如果只是单单只是用中断做LED的话,别的程序不加的话SFRPAGE = CONFIG_PAGE是不用加的
wang668 发表于 2010-10-28 12:45 | 显示全部楼层
俺也要 学习啊……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

1

粉丝
快速回复 返回顶部 返回列表