这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » KEIL,C51 怎么取消KEIL C51的优化功能?调程序没得到要的结果

共2条 1/1 1 跳转至

KEIL,C51 怎么取消KEIL C51的优化功能?调程序没得到要的结果

院士
2006-09-17 18:14:16     打赏
KEIL,C51 怎么取消KEIL C51的优化功能?调程序没得到要的结果



关键词: 怎么     取消     优化     功能     程序     得到     要的     结果    

院士
2006-12-22 22:43:00     打赏
2楼

void displayLED()
{
    uchar LEDdata,i,j;
    bit LEDdot;
    hc595STcp1=0;
    for(i=5;i>0;)
        {
        j=(LEDvalue[--i])&0x7f;
        LEDdata=LEDcode[j];
        if(i==3)
            {
            LEDdot=LEDvalue[3]&0x80;
            if(LEDdot)
                LEDdata|=0x80;
            }
        for(j=8;j>0;j--)
            {
            hc595DS=LEDdata&0x01;
            hc595SHcp=0;
            hc595SHcp=0;
            LEDdata>>=1;
            hc595SHcp=1;
            }
        }
    hc595STcp1=1;
    hc595DS=1;
    hc595SHcp=1;
    hc595STcp1=0;
}

void displayLEDshow()
{
    uchar i,j;
    i=LEDshow;
    hc595STcp2=0;
    for(j=8;j>0;j--)
        {
        hc595DS=i&0x01;
        hc595SHcp=0;
        hc595SHcp=0;
        i>>=1;
        hc595SHcp=1;
        }
    hc595STcp2=1;
    hc595DS=1;
    hc595SHcp=1;
    hc595STcp2=0;
}

void dispLEDtimes()
{
    uchar LEDda,i,j;
    hc595STcp3=0;
    for(i=2;i>0;)
        {
        j=LEDtimes[--i];
        LEDda=LEDcode[j];
        if(i==0x01)
            {
            if(goLEDshow==0x02)                LEDda|=0x80;
            }
        else
            {
            if(i==0x00)
                {
                if(goLEDshow==0x01)                        LEDda|=0x80;
                }
            }
        for(j=8;j>0;j--)
            {
            hc595DS3=LEDda&0x01;
            hc595SHcp3=0;
            LEDda>>=1;
            hc595SHcp3=0;
            hc595SHcp3=1;
            }
        }
    hc595STcp3=1;
    hc595DS3=1;
    hc595SHcp3=1;
    hc595STcp3=0;
}

函数displayLED()能正确,但函数dispLEDtimes()中的LEDda变化时,无法LEDda|=0x80;得到结果,而且LEDda变化时displayLED()中的LEDdata跟着变化,反之displayLED()中的LEDdata变化,dispLEDtimes()中的LEDda没被改.
请教高手指点.这个问题搞得我很郁闷.

1: 有哪位碰到过这样的问题呀?    2: 各位有何妙招后来我将dispLEDtimes()中的这个LEDda变量用其他名字设成全局变量,取消局部那个变量,这样才行,郁闷.

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]