欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)數(shù)碼管程序顯示不正常,最后一個(gè)一直全亮

[復(fù)制鏈接]
ID:869650 發(fā)表于 2021-2-5 14:38 | 顯示全部樓層 |閱讀模式
剛剛學(xué)習(xí)幾天,求大佬幫忙檢查一下這段代碼,自己檢查了很多遍,實(shí)在發(fā)現(xiàn)不了問題所在
問題是:下載后8個(gè)數(shù)碼管最后一個(gè)一直全亮,用別人的代碼最后一個(gè)正常顯示
單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #define SEG P0 //數(shù)碼管段選

  3. //***********************************
  4. sbit c=P2^7;        //138譯碼器                   **
  5. sbit b=P2^6;        //        端口                       **
  6. sbit a=P2^5;        //        分配                           **
  7. //***********************************

  8. unsigned char code Display[6]={0xb0,0x71,0xdb,0x76,0xcf,0x5e};//菜單段碼
  9. void MenuDisplay();//菜單顯示

  10. void mian()
  11. {
  12.         MenuDisplay();        
  13. }

  14. void MenuDisplay()
  15. {
  16.         unsigned char i;
  17.         unsigned int j;
  18.         for(i=0;i<6;i++)
  19.         {
  20.                 switch(i)
  21.                 {
  22.                         case(0):
  23.                                         c=0;b=0;a=0;break;
  24.                         case(1):
  25.                                         c=0;b=0;a=1;break;
  26.                         case(2):
  27.                                         c=0;b=1;a=1;break;
  28.                         case(3):
  29.                                         c=1;b=0;a=0;break;
  30.                         case(4):
  31.                                         c=1;b=1;a=0;break;
  32.                         case(5):
  33.                                         c=1;b=1;a=1;break;
  34.                 }
  35.                 SEG=Display[i];
  36.                 j=50;        //將變量 j 增大發(fā)現(xiàn)最后一個(gè)數(shù)碼管的顯示方式是----正常代碼與全亮交替顯示
  37.                 while(j--);
  38.                 SEG=0x00;//消隱        
  39.         }
  40. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:814525 發(fā)表于 2021-2-5 17:25 | 顯示全部樓層
看了下,你要的顯示應(yīng)該是掃描顯示。而你的程式只有單循環(huán),所以停留在最后一位。這樣改改試下:
void mian()
{
        
MenuDisplay();        
}
回復(fù)

使用道具 舉報(bào)

ID:814525 發(fā)表于 2021-2-5 17:36 | 顯示全部樓層
大概看了下,你要求的應(yīng)該是逐位掃描顯示。而你的程式只有單循環(huán),沒反復(fù)循環(huán),所以顯示停留在最后一位。這樣改改試下:
void mian()
{
       while(1)
        {      
           MenuDisplay();   
        }   
}

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-2-5 22:16 | 顯示全部樓層
無標(biāo)題.jpg


void mian()//函數(shù)名錯(cuò)
{     //函數(shù)體錯(cuò)
        MenuDisplay();        
}
正確;
void main()
{
        while(1)
        {
                MenuDisplay();        
        }
}
回復(fù)

使用道具 舉報(bào)

ID:19198 發(fā)表于 2021-2-6 01:49 | 顯示全部樓層
貌似只有6個(gè)數(shù)據(jù)
回復(fù)

使用道具 舉報(bào)

ID:883149 發(fā)表于 2021-2-6 09:35 | 顯示全部樓層
沒有循環(huán)吧,試試while或者for循環(huán),我個(gè)人習(xí)慣for
回復(fù)

使用道具 舉報(bào)

ID:811405 發(fā)表于 2021-2-6 10:58 | 顯示全部樓層
你的掃描過程沒有循環(huán)
回復(fù)

使用道具 舉報(bào)

ID:564486 發(fā)表于 2021-2-7 08:42 | 顯示全部樓層
加個(gè)while(1)讓他一直循環(huán)你的 MenuDisplay()函數(shù),不然只會(huì)運(yùn)行一遍整個(gè)程序就結(jié)束了,只會(huì)停留在你最后顯示的那個(gè)數(shù)
回復(fù)

使用道具 舉報(bào)

ID:869650 發(fā)表于 2021-2-9 12:13 | 顯示全部樓層
Crazy· 發(fā)表于 2021-2-7 08:42
加個(gè)while(1)讓他一直循環(huán)你的 MenuDisplay()函數(shù),不然只會(huì)運(yùn)行一遍整個(gè)程序就結(jié)束了,只會(huì)停留在你最后 ...

感謝!
回復(fù)

使用道具 舉報(bào)

ID:869650 發(fā)表于 2021-2-9 12:14 | 顯示全部樓層
張?zhí)鞄?發(fā)表于 2021-2-5 17:36
大概看了下,你要求的應(yīng)該是逐位掃描顯示。而你的程式只有單循環(huán),沒反復(fù)循環(huán),所以顯示停留在最后一位。這 ...

感謝!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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