因为一条语句整个单片机不运行了。。。

2019-07-14 19:35发布

就因为一条赋值语句(标记那条),整个单片机就不运行了。。。下面是我的主程序
void main()
{
    read_9byte_eeprom(0,0);
    delay(300);
    TT=D1;
    PP=D2*100000+D3*10000+D4*1000+D5*100+D6*10+D7;


    EA=1;                                     //打开中断总开关
    EX0=0;                                     //允许外部中断0
    EX1=1;                                     //允许外部中断1
    IT0=1;                                     //外部中断0采用下降沿触发
    IT1=1;                                     //外部中断1采用下降沿触发
    ET0=1;                                     //允许定时器0中断
    ET1=1;                                     //允许定时器1中断
    PT0=1;                                     //定时器0设置为最高优先级
    TMOD=0x11;                                 //设置定时器0和1为工作方式1

    timer0=0;
    Timer1=0;
    buzzer=1;
    count=1;

    lcd_init();
    while(1)
    {
      Timer1=0;
      bmp180_convert();
      deplay_and_save();
      buzzer=1;
      if((Temperature>(TT*10))|(Pressure>PP)) buzzer=0;
      EX0=1;
      EX1=1;   
      TR1=1;
      while(Timer1<100);
      TR1=0;
      EX1=0;
      EX0=0;
    }  
}
就是标记的那条语句。编译没有错误,能生成hex文件,也可以下载进单片机,但单片机就不运行,没有反应。如果把这条语句注释掉,单片机又能正常运行。。。。。我实在搞不懂。我用的是stc89C52RC

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
CT0618
1楼-- · 2019-07-15 20:09
 精彩回答 2  元偷偷看……
人中狼
2楼-- · 2019-07-15 21:05
试试把这段read_9byte_eeprom(0,0);
    delay(300);
    TT=D1;
    PP=D2*100000+D3*10000+D4*1000+D5*100+D6*10+D7;
移到液晶初始化之后
CT0618
3楼-- · 2019-07-16 01:26
人中狼 发表于 2017-5-4 22:40
试试把这段read_9byte_eeprom(0,0);
    delay(300);
    TT=D1;

不行啊。。。
CT0618
4楼-- · 2019-07-16 05:55
目前解决了。我猜应该是代码量超了的原因。我修改了不少非必要的全局变量,剪短了几十行代码,现在运行正常了
houjue
5楼-- · 2019-07-16 10:14
CT0618 发表于 2017-5-5 11:38
目前解决了。我猜应该是代码量超了的原因。我修改了不少非必要的全局变量,剪短了几十行代码,现在运行正常了

正常就好。这说明就是你用的数据类型不一样所致程序跑非了!
akqbdlk
6楼-- · 2019-07-16 13:15
 精彩回答 2  元偷偷看……

一周热门 更多>