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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4555|回復: 9
打印 上一主題 下一主題
收起左側

單片機數碼管程序顯示不正常,最后一個一直全亮

[復制鏈接]
跳轉到指定樓層
樓主
剛剛學習幾天,求大佬幫忙檢查一下這段代碼,自己檢查了很多遍,實在發現不了問題所在
問題是:下載后8個數碼管最后一個一直全亮,用別人的代碼最后一個正常顯示
單片機源程序如下:
  1. #include <reg52.h>
  2. #define SEG P0 //數碼管段選

  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 增大發現最后一個數碼管的顯示方式是----正常代碼與全亮交替顯示
  37.                 while(j--);
  38.                 SEG=0x00;//消隱        
  39.         }
  40. }
復制代碼


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

使用道具 舉報

沙發
ID:814525 發表于 2021-2-5 17:25 | 只看該作者
看了下,你要的顯示應該是掃描顯示。而你的程式只有單循環,所以停留在最后一位。這樣改改試下:
void mian()
{
        
MenuDisplay();        
}
回復

使用道具 舉報

板凳
ID:814525 發表于 2021-2-5 17:36 | 只看該作者
大概看了下,你要求的應該是逐位掃描顯示。而你的程式只有單循環,沒反復循環,所以顯示停留在最后一位。這樣改改試下:
void mian()
{
       while(1)
        {      
           MenuDisplay();   
        }   
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:213173 發表于 2021-2-5 22:16 | 只看該作者



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

使用道具 舉報

5#
ID:19198 發表于 2021-2-6 01:49 | 只看該作者
貌似只有6個數據
回復

使用道具 舉報

6#
ID:883149 發表于 2021-2-6 09:35 | 只看該作者
沒有循環吧,試試while或者for循環,我個人習慣for
回復

使用道具 舉報

7#
ID:811405 發表于 2021-2-6 10:58 | 只看該作者
你的掃描過程沒有循環
回復

使用道具 舉報

8#
ID:564486 發表于 2021-2-7 08:42 | 只看該作者
加個while(1)讓他一直循環你的 MenuDisplay()函數,不然只會運行一遍整個程序就結束了,只會停留在你最后顯示的那個數
回復

使用道具 舉報

9#
ID:869650 發表于 2021-2-9 12:13 | 只看該作者
Crazy· 發表于 2021-2-7 08:42
加個while(1)讓他一直循環你的 MenuDisplay()函數,不然只會運行一遍整個程序就結束了,只會停留在你最后 ...

感謝!
回復

使用道具 舉報

10#
ID:869650 發表于 2021-2-9 12:14 | 只看該作者
張天師 發表于 2021-2-5 17:36
大概看了下,你要求的應該是逐位掃描顯示。而你的程式只有單循環,沒反復循環,所以顯示停留在最后一位。這 ...

感謝!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品久久久久久久久久入口 | 精品一区在线 | 欧美日韩国产综合在线 | 国产99久久久国产精品 | 三级av免费 | 激情五月婷婷在线 | 久在线视频播放免费视频 | 狠狠av | 九九热免费观看 | 国产区在线免费观看 | 性色综合| 欧美日韩国产在线观看 | 男女性毛片 | 国产精品777一区二区 | 日韩精品一区中文字幕 | 精品国产乱码久久久久久中文 | 日韩在线一区二区三区 | 免费在线a视频 | 中文字幕在线第二页 | 99热这里只有精品8 激情毛片 | 精品国产青草久久久久96 | 国产一级一片免费播放 | 免费看爱爱视频 | 欧美性猛交一区二区三区精品 | 人人干人人爽 | 亚洲一区久久 | 中国一级特黄真人毛片 | 亚洲综合无码一区二区 | 中文字幕99 | 91久久 | 欧美日韩精品久久久免费观看 | 成人三级网址 | 日韩av三区 | 一区二区三区网站 | 午夜伦4480yy私人影院 | 成人福利在线观看 | 欧美日韩综合 | 国产在线中文字幕 | 亚洲精品一区二区三区四区高清 | 日韩一级免费看 | 亚洲精品成人网 |