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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2365|回復: 3
打印 上一主題 下一主題
收起左側(cè)

我的單片機流水燈程序不知道為什么無法很好的顯示?

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:972866 發(fā)表于 2021-10-17 23:24 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 sophist 于 2021-10-18 09:05 編輯

剛學51,按郭天祥的那本紅書和那個配套的單片機做的,芯片是89C52RC
具體就是我剛學流水燈,然后自己寫了一個程序,我想讓一共六個數(shù)碼管輪流顯示0——9,a——f的功能,就是第一個顯示1,第二個顯示2,這樣輪流下去,第六個管子顯5,第一個顯6,這樣輪下去。

接下來是一些問題
① 不太明白為什么前面4個數(shù)碼管總是一起變化,后兩個數(shù)碼管卻可以單獨變化,

②有時候數(shù)碼管會顯示錯誤,這里本應(yīng)該顯示8的,包括后面字符的顯示也有很多有問題。有時候能顯示0,有時候又不能了

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. sbit dula=P2^6;  //送段選數(shù)據(jù)的那個鎖存端,對應(yīng)U1鎖存器(后面有圖)
  4. sbit wela=P2^7;   //送位選數(shù)據(jù)的鎖存端,對應(yīng)U2鎖存器
  5. unsigned char code table[]={0X3F,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f,0X77,0X7c,0X39,0X5e,0X79,0X71};                                          unsigned char aa;            //  ↑這個是數(shù)碼管的字母表,分別實現(xiàn)0—9,a--f的字符顯示,下面的變量j與之對應(yīng)。
  6. void delayms(unsigned int xms);    //實現(xiàn)延遲

  7. void main()
  8. {
  9.         unsigned int i=0,j=0;
  10. while(1)
  11. {
  12.          aa=0XFE;            //每次for語句前重啟aa地址
  13.          for(i=0;i<6;i++)
  14.          {
  15.                  dula=1;                 
  16.                  P0=table[j++];  
  17.                 dula=0;
  18.                  P0=0Xff;

  19.                  wela=1;
  20.                  P0=aa;     //共陰極接法,0的時候?qū)?yīng)的數(shù)碼管亮
  21.                  wela=0;
  22.                  aa=_crol_(aa,1);                 
  23.                  delayms(1000);
  24.          }
  25. if(j>15)
  26.          j=0;         //防j越界
  27. }
  28. }
  29. void delayms(unsigned int xms)
  30. {unsigned int p,q;
  31.         for(p=xms;p>0;p--)
  32.         for(q=110;q>0;q--);
  33. }
復制代碼


圖1.jpg (1.26 MB, 下載次數(shù): 83)

前四個管子一起顯示數(shù)字

前四個管子一起顯示數(shù)字

圖2.jpg (1.21 MB, 下載次數(shù): 87)

后兩個管子可以單獨顯示數(shù)字

后兩個管子可以單獨顯示數(shù)字

圖3.jpg (1.18 MB, 下載次數(shù): 89)

本該是8的

本該是8的

4572322a14f352f114b63ea80f55d51.jpg (1.03 MB, 下載次數(shù): 86)

書上的電路

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

使用道具 舉報

沙發(fā)
ID:956872 發(fā)表于 2021-10-18 07:39 來自手機 | 只看該作者
給你推薦bilibili 金善愚老師的視頻,我是跟他視頻自學的。 先點亮一個,一個的程序理順了,多個也跟一個一樣
回復

使用道具 舉報

板凳
ID:332444 發(fā)表于 2021-10-18 08:28 | 只看該作者
本帖最后由 xianfajushi 于 2021-10-18 16:43 編輯

如果按每6個顯示的話,數(shù)組個數(shù)是希望分3次顯示還是分2次顯示?分3次顯示顯然數(shù)組個數(shù)不足,不足的部分就要另外處理,第一次顯示后切換下一次顯示應(yīng)該按6步進才對.
回復

使用道具 舉報

地板
ID:213173 發(fā)表于 2021-10-18 08:50 | 只看該作者
天祥板子只有6位數(shù)碼管,樓主初學單片機寫這個程序有點難度。給你稍改一下基本可以滿足設(shè)計目標。
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. sbit dula=P2^6;  //送段選數(shù)據(jù)的那個鎖存端,對應(yīng)U1鎖存器(后面有圖)
  4. sbit wela=P2^7;   //送位選數(shù)據(jù)的鎖存端,對應(yīng)U2鎖存器
  5. unsigned char code table[]={//數(shù)碼管字庫
  6. //         0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
  7.         0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
  8. //   H    J          K         L           N          o    P            U
  9.    0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E};
  10. unsigned char aa;//  ↑這個是數(shù)碼管的字母表,分別實現(xiàn)0—9,a--f的字符顯示,雖然我實在不明白a 怎么顯示。。。
  11. void delayms(unsigned int xms);    //實現(xiàn)延遲

  12. void main()
  13. {
  14.         unsigned int i=0,j=0;
  15.         while(1)
  16.         {
  17. //                aa=0XFE;            //每次for語句前重啟aa地址
  18. //                for(i=0;i<16;i++)
  19. //                {
  20.                         dula=1;                 
  21.                         P0=table[i];  
  22.                         dula=0;
  23. //                        P0=0Xff;
  24.        
  25.                         aa=~(0x01<<i%6);
  26.                         wela=1;
  27.                         P0=aa;     //共陰極接法,0的時候?qū)?yīng)的數(shù)碼管亮
  28.                         wela=0;
  29.                         delayms(1000);
  30.                         i=++i%24;
  31. //                        aa=_crol_(aa,1);                 

  32. //                }
  33. //                if(j>15)
  34. //                        j=0;         //防j越界
  35.         }
  36. }
  37. void delayms(unsigned int xms)
  38. {
  39.         unsigned int p,q;
  40.         for(p=xms;p>0;p--)
  41.                 for(q=110;q>0;q--);
  42. }
復制代碼
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩精品在线 | 免费av观看| 国产精品123区 | 久久九九99 | 久久精品 | 日韩影院一区 | 亚洲精品成人免费 | 日韩在线精品强乱中文字幕 | 色视频在线播放 | 久久久久久99 | 人人鲁人人莫人人爱精品 | 综合色在线 | 国产视频一区二区 | 国产一区二区三区久久久久久久久 | 欧美一级欧美一级在线播放 | 欧美不卡 | av中文网 | www.午夜 | 国产精品美女www爽爽爽 | 成人三级视频 | 四虎最新视频 | 国产精品久久久久久久久动漫 | 黄色免费网站在线看 | 亚洲精品中文字幕av | 色爱综合| 一区二区三区四区不卡 | 一级在线免费观看 | 亚洲国产精品一区二区三区 | 美女黄色在线观看 | 亚洲综合大片69999 | 日韩国产中文字幕 | 国产视频久 | 亚洲天堂999| 成人高清视频在线观看 | 国产日韩久久 | 亚洲精品视频久久 | 成人免费视频网站在线观看 | av网站推荐 | 天天看夜夜| 久干网| 欧美freesex黑人又粗又大 |