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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 sophist 于 2021-10-18 09:05 編輯

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

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

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

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. sbit dula=P2^6;  //送段選數據的那個鎖存端,對應U1鎖存器(后面有圖)
  4. sbit wela=P2^7;   //送位選數據的鎖存端,對應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;            //  ↑這個是數碼管的字母表,分別實現0—9,a--f的字符顯示,下面的變量j與之對應。
  6. void delayms(unsigned int xms);    //實現延遲

  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的時候對應的數碼管亮
  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, 下載次數: 83)

前四個管子一起顯示數字

前四個管子一起顯示數字

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

后兩個管子可以單獨顯示數字

后兩個管子可以單獨顯示數字

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

本該是8的

本該是8的

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

書上的電路

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

地板
ID:213173 發表于 2021-10-18 08:50 | 只看該作者
天祥板子只有6位數碼管,樓主初學單片機寫這個程序有點難度。給你稍改一下基本可以滿足設計目標。
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. sbit dula=P2^6;  //送段選數據的那個鎖存端,對應U1鎖存器(后面有圖)
  4. sbit wela=P2^7;   //送位選數據的鎖存端,對應U2鎖存器
  5. unsigned char code table[]={//數碼管字庫
  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;//  ↑這個是數碼管的字母表,分別實現0—9,a--f的字符顯示,雖然我實在不明白a 怎么顯示。。。
  11. void delayms(unsigned int xms);    //實現延遲

  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的時候對應的數碼管亮
  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. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美毛片免费观看 | 久久成人av| 成人在线观看免费 | 午夜国产在线 | 午夜影院普通用户体验区 | av免费在线播放 | 日韩在线欧美 | 国产精品视频999 | 国产亚洲网站 | 日韩综合色| 最近中文字幕在线视频1 | 亚洲国产91| 秋霞av国产精品一区 | 男女羞羞视频在线 | 亚洲高清电影 | 欧美一区二区在线 | 国产电影一区二区 | 伊人久久免费 | 国产a级黄色录像 | 午夜a v电影 | 亚洲一二视频 | 羞羞羞视频 | 日本一二三区电影 | 日韩在线一区二区三区 | 日韩欧美手机在线 | aa级毛片毛片免费观看久 | 国产精品一区二区日韩 | 中文字幕日韩一区 | 亚洲精品一区二区冲田杏梨 | 亚洲国产成人精品在线 | 青青久草 | 亚洲国产精品久久久久婷婷老年 | 天天干天天干 | 日韩精品区 | 99精品国自产在线观看 | 一级一片在线观看 | 一区二区在线不卡 | 羞羞视频网站免费观看 | 成人午夜在线 | 日韩精品不卡 | 久久黄色网 |