久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1976|回復: 15
收起左側

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

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


void main(){            init();        //初始化24C02    led=1;        led3=0;        led1=read24c02(2);         if(!s4)           write24c02(2,1);           num1=read24c02(0);        //用地址0單元存儲num十六進制表示時的低兩位        num2=read24c02(1);        //用地址0單元存儲num十六進制表示時的高兩位        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單元存儲num十六進制表示時的低兩位        num2a=read24c02(4);        //用地址0單元存儲num十六進制表示時的高兩位        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);        }        }

回復

使用道具 舉報

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

使用道具 舉報

ID:399179 發表于 2021-12-14 12:18 來自手機 | 顯示全部樓層
黃youhui 發表于 2021-12-13 08:37
太亂了,不看。

不知道怎么回事,復制過來就這樣了。
回復

使用道具 舉報

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

在Keil 里打開后,再貼過來
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

ID:399179 發表于 2021-12-14 21:40 來自手機 | 顯示全部樓層
不好意思啊!用手機發的,等回家了用電腦貼過來試試,謝謝大家了!
回復

使用道具 舉報

ID:399179 發表于 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單元存儲num十六進制表示時的低兩位
        num2=read24c02(1);        //用地址0單元存儲num十六進制表示時的高兩位
        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單元存儲num十六進制表示時的低兩位
        num2a=read24c02(4);        //用地址0單元存儲num十六進制表示時的高兩位
        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);
        }
       
}
回復

使用道具 舉報

ID:399179 發表于 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單元存儲num十六進制表示時的低兩位
        num2=read24c02(1);        //用地址0單元存儲num十六進制表示時的高兩位
        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單元存儲num十六進制表示時的低兩位
        num2a=read24c02(4);        //用地址0單元存儲num十六進制表示時的高兩位
        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);
        }
       
}


現在這個還亂嗎
回復

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

num > numa  就 停在這里不動了

是的,但是在num<numa時按S2num++但不能儲存
回復

使用道具 舉報

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

關鍵是,  只要 num > numa  之后,程序就再也不會動了, 除非重啟動。
回復

使用道具 舉報

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

根據你的描述,我覺得你要存儲的數據超過0XFF,或者不是unsigned char類型的數據
回復

使用道具 舉報

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

使用道具 舉報

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

這是一個可預置開機次數限制程序,到了預設的開機次數就不能工作了,等再回家了都貼上來大家看看
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区av | 亚洲久草 | 999久久久久久久 | 天天搞天天搞 | 久久国产精品一区二区 | 亚洲激情一区二区三区 | 成人国产毛片 | 欧美一区二区三区在线 | 在线观看电影av | 草久久免费视频 | 亚洲国产片 | 99视频在线免费观看 | 蜜桃久久| 一级a性色生活片久久毛片 一级特黄a大片 | 在线观看av网站永久 | 国产一区二区电影网 | 欧美一区二区免费电影 | 国产亚洲一区在线 | 男女视频免费 | 欧美成人第一页 | 成人国产精品色哟哟 | 97久久精品午夜一区二区 | 国产精品福利在线 | 欧美视频精品 | 一级黄色片在线免费观看 | 午夜看看| 欧美一级在线观看 | 91日日 | 久久亚洲精品久久国产一区二区 | 一级片免费视频 | 日韩中文一区二区三区 | 国产欧美精品一区二区 | 一区二区三区精品视频 | 成人欧美一区二区三区黑人孕妇 | 亚洲欧美国产精品久久 | 国产 日韩 欧美 在线 | 国产亚洲黄色片 | 国产精品资源在线 | 国产精品视频一区二区三区不卡 | 男人的天堂久久 | 97久久久久久久久 |