打印

定时器对程序有影响???求救各位大虾

[复制链接]
1812|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kinggate|  楼主 | 2007-4-23 19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大虾帮我看看下面的程序啊,怎么定时器对程序的运行有影响的?
程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

extern show(uchar showdata);

ulong IRcode=0x00000000;  //32位的键代码
uchar Lcustomcode=0x92;    //低八位用户码
uchar Hcustomcode=0x82;       //高---- 
uchar datacode=0xf8;       //8位键数据码
uchar Rdatacode=0x80;      //8位键数据反码

void delay()
{
 uchar i,j,k;
 for(i=200;i>0;i--)
    for(j=200;j>0;j--)
       for(k=5;k>0;k--) ;
}
  


void init()
{  
  TMOD=0x11; //定时器0,工作方式1 ;  定时器1,工作方式1
  TCON=0x01; //外中断0下降沿触发,(包括TR1=0,TR0=0)
  TH0=0x3c;  //初始化定时器0,定时50ms
  TL0=0xb0;
  TH1=0x00;  //初始化定时器1 
  TL1=0x00;
  
  EA=1;         //开全中断
  ET0=1;     //开放T0中断
  ET1=1;     //开放T1中断
  EX0=1;     //开放外中断0
  
}

void remoteint() interrupt 0 using 0    //遥控器中断处理函数
{
    
  EX0=0; 
  IRcode=code;  //code为读到的32位的值
    
  Lcustomcode=IRcode;              
  IRcode=IRcode>>8;                
  Hcustomcode=IRcode;
  IRcode=IRcode>>8;     
  datacode=IRcode;     
  IRcode=IRcode>>8;    
  Rdatacode=IRcode;            
 
  TR1=1;  //开始计时?????????    
  EX0=1;
  
}

void main()
{
   
    init();   
   
  while(1)       
  {             
        
     show(Lcustomcode);        
     delay();
     show(Hcustomcode);
     delay();      
     show(datacode);
     delay();
     show(Rdatacode);     
     delay();  
        
  }                                                            
}
问题就出在TR1=1上,有了这句之后显示的数码管就一闪一闪的了,并且数据也不正确,但删掉这句后,程序就正常,或者一开始就关闭T1(ET1=0)也没影响,程序运行也正常,难到定时器的中断对程序也有影响吗?
谢谢各位!

相关帖子

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

本版积分规则

13

主题

37

帖子

0

粉丝