找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

新人請教一個51單片機(jī)動態(tài)閃爍問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:216335 發(fā)表于 2017-10-25 12:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
3黑幣
學(xué)習(xí)版上用的是鎖存器,主函數(shù)如下

第一個數(shù)碼管閃爍很厲害,我把按鍵延遲調(diào)低很好些,但是這樣按鍵一按就是好幾個數(shù),按鍵延時調(diào)高,按鍵上是好了很多但是第一個數(shù)碼管可以非常慢的速度閃爍。感覺就是從上到下的執(zhí)行時間太長了。。。。。主程序里我還加了儲存,無視好了

void main()
{

       while(1)
       {
                                                        unsigned char buf[2];

                                                        E2Read(buf, 0x80, 2);
                                                        ge = buf[0];
                                                        shi = buf[1];
                                                        if ( ge>9 )
                                                        { ge=0; }
                                                        if ( shi>9 )
                                                        { shi=0; }

                                                   

                            wei=1;
                            P0=0xfe;
                            wei=0;
                            duan=1;
                            P0=LedChar[shi];
                            Delay(10);
                            duan=0;

                            wei=1;
                            P0=0xfd;
                            wei=0;
                            duan=1;
                            P0=LedChar[ge];
                            Delay(10);
                            duan=0;

                                                

                                                        if(k1==1)
                                                        {
                                                        Delay(15);
                                                        if(k1==1)
                                                        {
                                                         ge++;
                                                         if(ge>9)
                                                         {
                                                           ge=0;
                                                           shi++;
                                                          if(shi>9)
                                                         {
                                                             shi=0;
                                                         }
                                                         }
                                                        }

                                                         buf[0] = ge;
                                      buf[1] = shi;
         
                                 E2Write(buf, 0x80, 2);

                                                        }


                                                    if(k2==1)
                                                        {
                                                        Delay(15);
                                                        if(k2==1)
                                                        {
                                                         ge--;
                                                         if(ge<0)
                                                         {
                                                           ge=9;
                                                           shi--;
                                                           if(shi<0)
                                                         {                                       
                                                             shi=9;
                                                         }
                                                         }
                                                        }

                                                         buf[0] = ge;
                                      buf[1] = shi;
         
                                 E2Write(buf, 0x80, 2);

                                                        }

           }
}


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

使用道具 舉報

沙發(fā)
ID:242770 發(fā)表于 2017-10-25 13:54 | 只看該作者
通過位選信號控制8段數(shù)碼管,用switch函數(shù)實現(xiàn)。
回復(fù)

使用道具 舉報

板凳
ID:242770 發(fā)表于 2017-10-25 13:57 | 只看該作者
通過位選信號信號控制8段數(shù)碼管顯示,使用switch函數(shù)實現(xiàn),另外,各種參數(shù)取名太草率了吧。!
回復(fù)

使用道具 舉報

地板
ID:216335 發(fā)表于 2017-10-25 17:25 | 只看該作者
jden 發(fā)表于 2017-10-25 13:57
通過位選信號信號控制8段數(shù)碼管顯示,使用switch函數(shù)實現(xiàn),另外,各種參數(shù)取名太草率了吧。!

改成這個樣子,原來一個 閃,現(xiàn)在兩個閃,很有規(guī)律的一亮一滅、、、、、
                             switch(i)
                                  {
                                   case 0 : wei=1;P0=0xfe;wei=0;duan=1;P0=LedChar[shi];duan=0;i=1;break;
                                   case 1 : wei=1;P0=0xfd;wei=0;duan=1;P0=LedChar[ge];duan=0;i=0;break;
                                   default: break;
                                  }  
回復(fù)

使用道具 舉報

5#
ID:216335 發(fā)表于 2017-10-25 18:52 | 只看該作者
jden 發(fā)表于 2017-10-25 13:57
通過位選信號信號控制8段數(shù)碼管顯示,使用switch函數(shù)實現(xiàn),另外,各種參數(shù)取名太草率了吧。。

改成這樣不行呀                                
                                  switch(i)
                                  {
                                   case 0 : wei=1;P0=0xfe;wei=0;duan=1;P0=LedChar[shi];duan=0;i=1;break;
                                   case 1 : wei=1;P0=0xfd;wei=0;duan=1;P0=LedChar[ge];duan=0;i=0;break;
                                   default: break;
                                  }     
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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