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

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

QQ登錄

只需一步,快速開始

搜索
查看: 2209|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)兩路延時(shí)時(shí)間 存儲(chǔ)的程序問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:405193 發(fā)表于 2019-7-17 12:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
各位師傅您們好,我用STC15W404AS和TM1650編程兩路延時(shí)程序,不能存儲(chǔ)兩個(gè)時(shí)間,哪位師傅幫我看看,怎樣修改,非常感謝。

if(key_timeto)//如果按鍵掃描時(shí)間到,此變量在定時(shí)器中會(huì)被每隔60ms置1一次
                    {                 
                                 key_L = key;
                                     key_timeto = 0; //清0
                                     key = Scan_Key();//讀按鍵
                                     //第一個(gè)按鍵按下
                                     if(key == 0x44)   //此鍵值和數(shù)據(jù)手冊(cè)上對(duì)應(yīng)
                                     {
                                      if(key_ok==0) //按鍵按下
                                       {
                                         key_ok = 1;
                                        mode = (mode+1)%2;//切換模式
                                       }
                                     }
                                    //第二個(gè)按鍵按下
                                    else if(key == 0x4c)
                                     {        if(mode == 0)//模式0為設(shè)置模式
                                       {
                                         if(time2<999)
                                        time2 = (time2+1);//按此鍵加時(shí)間
                                       }
                                      if(mode == 1)//模式1為設(shè)置模式
                                       {
                                         if(time1<999)
                                        time1 = (time1+1);//按此鍵加時(shí)間
                                       }
                                    
                                     timea=time1;
                                        IapEraseSector(0);//保持改變后的時(shí)間值
                                    IapProgramByte(0,(timea>>8));
                                    IapProgramByte(1,(uchar)timea);
                                     timeb=time2;
                                        IapEraseSector(1);//保持改變后的時(shí)間值
                                    IapProgramByte(1,(timea>>8));
                                    IapProgramByte(2,(uchar)timea);
                                       
                                        }
                                    //第三個(gè)按鍵按下
                                   else if(key == 0x54)
                                   {  if(mode == 0)//模式0
                                       {
                                         if(time2>0)
                                         {
                                           time2--;//減時(shí)間
                                         }
                                       }
                                   
                                    
                                    if(mode == 1)//模式1
                                    {
                                     if(time1>0)
                                      {
                                       time1--;//減時(shí)間
                                      }
                                    }
                                   
                                     timea=time1;
                                        IapEraseSector(0); //保存時(shí)間
                                    IapProgramByte(0,(timea>>8));
                                    IapProgramByte(1,(uchar)timea);
                                            timeb=time2;
                                           IapEraseSector(1); //保存時(shí)間
                                    IapProgramByte(1,(timeb>>8));
                                    IapProgramByte(2,(uchar)timeb);
                                   }
                                   else
                                   {
                                    key_ok = 0;
                                    }
                  
                  
                   }
        if(update_dis) //30ms到,更新顯示
         {
                        update_dis = 0;
                        TM1650_Set(0x48,0x11);

                        if(stat ==0)
                          {
                            if(mode == 1)//如果是模式1
                              {
                                                TM1650_Set(0x68,CODE[timea/100]);        //顯示
                                                TM1650_Set(0x6A,CODE[timea/10%10]);
                                                TM1650_Set(0x6C,CODE[timea%10]);
                                                
                             }
                           else if(mode == 0)
                              {
                                           TM1650_Set(0x68,CODE[timeb/100]);
                                           TM1650_Set(0x6A,CODE[timeb/10%10]);
                                           TM1650_Set(0x6C,CODE[timeb%10]);
                                          
                              }
                           }
                        else if(stat == 1)//最后倒計(jì)時(shí)完后顯示的內(nèi)容
                          {         
                            timea=time1;
                                TM1650_Set(0x68,CODE[timea/100]);
                                TM1650_Set(0x6A,CODE[timea/10%10]);
                                TM1650_Set(0x6C,CODE[timea%10]);         
                                stat=0;         
                          }  
         }

   }

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:405193 發(fā)表于 2019-7-17 12:13 | 只看該作者
初始化:uchar key,key_L,key_ok;
          TM1650_Set(0x48,0x11);//初始化數(shù)碼管
          TM1650_Set(0x68,CODE[0]);//初始化后要把顯存先寫數(shù)據(jù)就能顯示
          TM1650_Set(0x6A,CODE[0]);
          TM1650_Set(0x6C,CODE[0]);
       
          time1 = (IapReadByte(0)<<8)+IapReadByte(1);//讀eeproM中數(shù)據(jù),初始化時(shí)間初值
          time2 = (IapReadByte(0)<<8)+IapReadByte(2);//讀eeproM中數(shù)據(jù),初始化時(shí)間初值
          if(time1 >= 999)//如果時(shí)間值大于999則是第一次上電
           {
             time1 = 000;//則為默認(rèn)值
                 time2 = 002;
           }
         Timer0Init();//定時(shí)器初始化
         timea = time1;//初始化時(shí)間
         timeb = time2;
回復(fù)

使用道具 舉報(bào)

板凳
ID:405193 發(fā)表于 2019-7-18 13:48 | 只看該作者
有哪位師傅可以幫忙看看嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:388197 發(fā)表于 2019-7-19 23:22 | 只看該作者
程序有點(diǎn)長(zhǎng),代碼得一行行看,挺費(fèi)腦筋的.這里只說說思路吧.
粗略看了下,你這程序大概是利用TM1650讀按鍵,根據(jù)輸入來決定具體操作,保存之類的.
既然程序存儲(chǔ)有問題,而且是根據(jù)輸入的東西來決定保存,那么影響它不能保存的可能是輸入狀態(tài)的那部分代碼沒寫好導(dǎo)致保存的代碼沒有得到執(zhí)行,或者用于保存的那部分代碼沒寫好.你可以先另建個(gè)工程,寫個(gè)很簡(jiǎn)單的小程序.建立個(gè)兩個(gè)常量比如 0xa3和0xb4把他保存到FLASH的某個(gè)地址里,然后再從這個(gè)地址里讀出來,假如讀出來的數(shù)字也是0XA3和0xb4,那么就點(diǎn)亮LED1,如果不是 就點(diǎn)亮LED2.這樣很容易驗(yàn)證你保存的代碼是否有誤.
用類似的辦法,也很容易驗(yàn)證輸入部分的代碼有無出錯(cuò)了.
兩者都調(diào)試完,整合一下就可以了.
或者會(huì)用單步調(diào)試的話,用單步調(diào)試也是不錯(cuò)的辦法.(51的單步調(diào)試以前學(xué)的時(shí)候沒怎么研究過,現(xiàn)在也很少用51,所以懶得去研究了)

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
yong761228 + 10 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:405193 發(fā)表于 2019-7-20 06:14 | 只看該作者
cjm82 發(fā)表于 2019-7-19 23:22
程序有點(diǎn)長(zhǎng),代碼得一行行看,挺費(fèi)腦筋的.這里只說說思路吧.
粗略看了下,你這程序大概是利用TM1650讀按鍵,根 ...

非常感謝師傅,我昨晚已經(jīng)搞好了,就是根據(jù)您的類似方法,我先存儲(chǔ)1個(gè)時(shí)間,沒問題了,再存儲(chǔ)第二個(gè)時(shí)間。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美国产一区二区 | 欧美日韩三区 | 亚洲高清在线免费观看 | 亚洲二区在线观看 | 精品欧美乱码久久久久久 | 一区二区久久 | 色吊丝2288sds中文字幕 | 亚洲国产一区二区三区 | 中文字幕在线一区 | 成人免费在线观看 | 亚洲成人精品在线观看 | 精品视频在线免费观看 | 成人精品国产一区二区4080 | 在线免费观看毛片 | 日本a级大片 | 亚洲成人免费视频 | chinese中国真实乱对白 | 久久网亚洲 | 欧美成人免费在线视频 | 羞羞视频在线观看网站 | 国产一区不卡在线观看 | 欧美一区二区三区视频在线播放 | 欧美日韩久久精品 | 国产精品免费av | 一区二区三区四区在线视频 | 久久久久久九九九九九九 | 国产大毛片 | 在线观看精品视频网站 | 亚洲在线视频 | 中文字幕av网站 | 欧美电影在线观看网站 | 色精品视频 | 激情av网站 | 久久久久久91 | 国产精品免费一区二区三区四区 | 激情五月婷婷综合 | 日韩中文字幕在线观看 | 成人蜜桃av | 永久精品 | 国产精品视频免费观看 | 精品精品 |