找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1986|回復(fù): 15
收起左側(cè)

老師們幫我看看這個(gè)程序哪里有問題啊?

[復(fù)制鏈接]
ID:399179 發(fā)表于 2021-12-12 20:23 來(lái)自手機(jī) | 顯示全部樓層 |閱讀模式
S2按下后顯示正常數(shù)值也能增加,就是不能儲(chǔ)存,S5和S6按下后都能正常顯示和儲(chǔ)存。這是什么情況啊?望知道的老師指導(dǎo)一下,謝謝!


void main(){            init();        //初始化24C02    led=1;        led3=0;        led1=read24c02(2);         if(!s4)           write24c02(2,1);           num1=read24c02(0);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的低兩位        num2=read24c02(1);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的高兩位        num=num2*256+num1;        num++;        num2=num/256;        num1=num%256;        write24c02(0,num1);        write24c02(1,num2);                if(!s3)                {  led1=0;                   write24c02(2,0);                         num=0;                                num2=num/256;        num1=num%256;        write24c02(0,num1);        write24c02(1,num2);                        }           num1a=read24c02(3);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的低兩位        num2a=read24c02(4);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的高兩位        numa=num2a*256+num1a;                num2a=numa/256;        num1a=numa%256;        write24c02(3,num1a);        write24c02(4,num2a);        if(num>numa)        {led2=0;        led3=1;}        while(num>numa);                  while(1)        {                        /*                          if(num>300)                led=0;                else                led=1;        */          while(num>numa);                if(!s5)                {                numa++;        num2a=numa/256;        num1a=numa%256;        write24c02(3,num1a);        write24c02(4,num2a);        }                 if(!s2)                {        num++;        num2=num/256;        num1=num%256;        write24c02(0,num1);        write24c02(1,num2);                }                    if(!s6)                {                numa--;        num2a=numa/256;        num1a=numa%256;        write24c02(3,num1a);        write24c02(4,num2a);        }                 display(num);                display1(numa);        }        }

回復(fù)

使用道具 舉報(bào)

ID:592807 發(fā)表于 2021-12-13 08:37 | 顯示全部樓層
太亂了,不看。
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2021-12-14 12:18 來(lái)自手機(jī) | 顯示全部樓層
黃youhui 發(fā)表于 2021-12-13 08:37
太亂了,不看。

不知道怎么回事,復(fù)制過來(lái)就這樣了。
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-12-14 13:33 | 顯示全部樓層
快樂眼淚 發(fā)表于 2021-12-14 12:18
不知道怎么回事,復(fù)制過來(lái)就這樣了。

在Keil 里打開后,再貼過來(lái)
回復(fù)

使用道具 舉報(bào)

ID:992178 發(fā)表于 2021-12-14 13:54 | 顯示全部樓層
太亂了,建議在keil打開后再看
回復(fù)

使用道具 舉報(bào)

ID:908826 發(fā)表于 2021-12-14 13:58 | 顯示全部樓層
你調(diào)一下格式再問吧,你這樣問看的發(fā)懵。
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2021-12-14 21:40 來(lái)自手機(jī) | 顯示全部樓層
不好意思。∮檬謾C(jī)發(fā)的,等回家了用電腦貼過來(lái)試試,謝謝大家了!
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2021-12-15 19:04 | 顯示全部樓層
void main()
{       

    init();        //初始化24C02
    led=1;
        led3=0;
        led1=read24c02(2);
         if(!s4)

           write24c02(2,1);   
        num1=read24c02(0);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的低兩位
        num2=read24c02(1);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的高兩位
        num=num2*256+num1;
        num++;

        num2=num/256;
        num1=num%256;
        write24c02(0,num1);
        write24c02(1,num2);
                if(!s3)
                {  led1=0;
                   write24c02(2,0);
                        num=0;
                       
        num2=num/256;
        num1=num%256;
        write24c02(0,num1);
        write24c02(1,num2);
       
                }
           num1a=read24c02(3);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的低兩位
        num2a=read24c02(4);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的高兩位
        numa=num2a*256+num1a;
       

        num2a=numa/256;
        num1a=numa%256;
        write24c02(3,num1a);
        write24c02(4,num2a);
        if(num>numa)
        {led2=0;
        led3=1;}
        while(num>numa);
          
        while(1)
        {       
       
       
/*          
                if(num>300)
                led=0;

                else
                led=1;        */
          while(num>numa);
                if(!s5)
                {
                numa++;
        num2a=numa/256;
        num1a=numa%256;
        write24c02(3,num1a);
        write24c02(4,num2a);
        }
                if(!s2)
                {

        num++;
        num2=num/256;
        num1=num%256;
        write24c02(0,num1);
        write24c02(1,num2);
                }
   

                 if(!s6)
                {
                numa--;
        num2a=numa/256;
        num1a=numa%256;
        write24c02(3,num1a);
        write24c02(4,num2a);
        }
                display(num);
                display1(numa);
        }
       
}
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2021-12-15 19:06 | 顯示全部樓層
void main()
{       

    init();        //初始化24C02
    led=1;
        led3=0;
        led1=read24c02(2);
         if(!s4)

           write24c02(2,1);   
        num1=read24c02(0);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的低兩位
        num2=read24c02(1);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的高兩位
        num=num2*256+num1;
        num++;

        num2=num/256;
        num1=num%256;
        write24c02(0,num1);
        write24c02(1,num2);
                if(!s3)
                {  led1=0;
                   write24c02(2,0);
                        num=0;
                       
        num2=num/256;
        num1=num%256;
        write24c02(0,num1);
        write24c02(1,num2);
       
                }
           num1a=read24c02(3);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的低兩位
        num2a=read24c02(4);        //用地址0單元存儲(chǔ)num十六進(jìn)制表示時(shí)的高兩位
        numa=num2a*256+num1a;
       

        num2a=numa/256;
        num1a=numa%256;
        write24c02(3,num1a);
        write24c02(4,num2a);
        if(num>numa)
        {led2=0;
        led3=1;}
        while(num>numa);
          
        while(1)
        {       
       
       
/*          
                if(num>300)
                led=0;

                else
                led=1;        */
          while(num>numa);
                if(!s5)
                {
                numa++;
        num2a=numa/256;
        num1a=numa%256;
        write24c02(3,num1a);
        write24c02(4,num2a);
        }
                if(!s2)
                {

        num++;
        num2=num/256;
        num1=num%256;
        write24c02(0,num1);
        write24c02(1,num2);
                }
   

                 if(!s6)
                {
                numa--;
        num2a=numa/256;
        num1a=numa%256;
        write24c02(3,num1a);
        write24c02(4,num2a);
        }
                display(num);
                display1(numa);
        }
       
}


現(xiàn)在這個(gè)還亂嗎
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-12-15 19:44 | 顯示全部樓層
         while(num>numa);

num > numa  就 停在這里不動(dòng)了
那么 你按了 S2  num++ 之后, 大于了 numa  自然就停在上面的位置不動(dòng)了。 者有什么問題么?
回復(fù)

使用道具 舉報(bào)

ID:992889 發(fā)表于 2021-12-15 20:25 | 顯示全部樓層
while(num>numa);
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2021-12-15 21:46 來(lái)自手機(jī) | 顯示全部樓層
188610329 發(fā)表于 2021-12-15 19:44
while(num>numa);

num > numa  就 停在這里不動(dòng)了

是的,但是在num<numa時(shí)按S2num++但不能儲(chǔ)存
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-12-15 22:10 | 顯示全部樓層

關(guān)鍵是,  只要 num > numa  之后,程序就再也不會(huì)動(dòng)了, 除非重啟動(dòng)。
回復(fù)

使用道具 舉報(bào)

ID:592807 發(fā)表于 2021-12-16 09:10 | 顯示全部樓層

根據(jù)你的描述,我覺得你要存儲(chǔ)的數(shù)據(jù)超過0XFF,或者不是unsigned char類型的數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2021-12-16 09:57 | 顯示全部樓層
不知道你說(shuō)的"不能儲(chǔ)存"是什么意思
定位void main()為第1行
第8行的if(!s4)只能控制第10行的write24c02(2,1);
從第11行到第19行都會(huì)在每次開機(jī)時(shí)無(wú)條件直接運(yùn)行
經(jīng)過第14行num++;
num永遠(yuǎn)比上一次關(guān)機(jī)時(shí)多了一
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2021-12-16 19:51 來(lái)自手機(jī) | 顯示全部樓層
lkc8210 發(fā)表于 2021-12-16 09:57
不知道你說(shuō)的"不能儲(chǔ)存"是什么意思
定位void main()為第1行
第8行的if(!s4)只能控制第10行的write24c02(2 ...

這是一個(gè)可預(yù)置開機(jī)次數(shù)限制程序,到了預(yù)設(shè)的開機(jī)次數(shù)就不能工作了,等再回家了都貼上來(lái)大家看看
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表