打印

大家来帮忙,太奇怪了

[复制链接]
1170|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
colinluan|  楼主 | 2008-9-6 12:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <AT89x52.h>
//#include <reg52.h>
#define uchar unsigned char

#define uint  unsigned int
uchar data one_sec;
uint  data time;
//sfr T2MOD=0XC9;
void delay(uint t)
{
IE=0;     //禁止所有中断
  T2MOD=0X00;
    TCON=0;   //所有中断标志清0
  T2CON=0x00;
   ET2=1;   //允许T2中断
   TH2=-46080/256;
   TL2=-46080%256;
   RCAP2H=TH2;
   RCAP2L=TL2;
   one_sec=20;
   time=t;
   TR2=1;   //启动T2定时
   EA=1;    //CPU开中断
   while(time!=0);
   TR2=0;
   EA=0;
}

void timer2(void) interrupt 5
 { TF2=0;
   one_sec--;
   if(one_sec==0)
     { one_sec=20;
       time--;
     }
 }

 void main()
 {
     delay(1000);
    while(1);
 }


为什么退出来的时候time=0x00ff.太想不通了。

相关帖子

沙发
linqing171| | 2008-9-6 16:28 | 只看该作者

退出来以后那个变量就没有用了,所以系统其他地方又使用

贴下反汇编看看。
不知道为什么。

使用特权

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

本版积分规则

43

主题

83

帖子

0

粉丝