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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

萌新求教有關動態數碼管的問題

  [復制鏈接]
跳轉到指定樓層
樓主
ID:652769 發表于 2019-11-30 02:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼如下(根據教程改的,非本人編寫):想實現0-7的動態顯示,只能顯示8,不會動且led模塊的d3到d5還亮著
  1. #include"reg51.h"
  2. typedef unsigned char u8;
  3. typedef unsigned int u16;
  4. sbit LSA=P2^2;
  5. sbit LSB=P2^3;
  6. sbit LSC=P2^4;
  7. u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,
  8. 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};   
  9.       
  10. void delay(u16 i)
  11. {while(i--);}
  12. void DigDisplay()
  13. {  u8 i;
  14. for(i=0;i<8;i++)
  15. { switch(i)
  16. { case 0:LSA=0;LSB=0;LSC=0;break;
  17. case 1:LSA=1;LSB=0;LSC=0;break;
  18. case 2:LSA=0;LSB=1;LSC=0;break;
  19. case 3:LSA=1;LSB=1;LSC=0;break;
  20. case 4:LSA=0;LSB=0;LSC=1;break;
  21. case 5:LSA=1;LSB=0;LSC=1;break;
  22. case 6:LSA=0;LSB=1;LSC=1;break;
  23. case 7:LSA=1;LSB=1;LSC=1;break;
  24. }}
  25. P0=smgduan[i];
  26. delay(100);
  27. P0=0x00;}
  28. void main()
  29. {   
  30. while(1)
  31. {DigDisplay();}
  32. }
復制代碼


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

使用道具 舉報

沙發
ID:213173 發表于 2019-11-30 06:34 | 只看該作者
要把P0=smgduan[ i];delay(100);P0=0x00;這3條語句納入for循環中,否則不能實現動態顯示。
  1. void DigDisplay()
  2. {
  3.         u8 i;
  4.         for(i=0;i<8;i++)
  5.         {
  6.                 switch(i)
  7.                 {
  8.                         case 0:LSA=0;LSB=0;LSC=0;break;
  9.                         case 1:LSA=1;LSB=0;LSC=0;break;
  10.                         case 2:LSA=0;LSB=1;LSC=0;break;
  11.                         case 3:LSA=1;LSB=1;LSC=0;break;
  12.                         case 4:LSA=0;LSB=0;LSC=1;break;
  13.                         case 5:LSA=1;LSB=0;LSC=1;break;
  14.                         case 6:LSA=0;LSB=1;LSC=1;break;
  15.                         case 7:LSA=1;LSB=1;LSC=1;break;
  16.                 }
  17.                 P0=smgduan[ i];
  18.                 delay(100);
  19.                 P0=0x00;
  20.         }
  21. }
復制代碼
回復

使用道具 舉報

板凳
ID:155507 發表于 2019-11-30 07:05 | 只看該作者
你的程序這里錯了,給你改了一下試試。
  1. void DigDisplay()
  2. {
  3.         u8 i;
  4.         for(i=0;i<8;i++)
  5.         {
  6.                 switch(i)         //位選,選擇點亮的數碼管,
  7.                 {
  8.                         case(0):
  9.                                 LSA=0;LSB=0;LSC=0; break;//顯示第0位
  10.                         case(1):
  11.                                 LSA=1;LSB=0;LSC=0; break;//顯示第1位
  12.                         case(2):
  13.                                 LSA=0;LSB=1;LSC=0; break;//顯示第2位
  14.                         case(3):
  15.                                 LSA=1;LSB=1;LSC=0; break;//顯示第3位
  16.                         case(4):
  17.                                 LSA=0;LSB=0;LSC=1; break;//顯示第4位
  18.                         case(5):
  19.                                 LSA=1;LSB=0;LSC=1; break;//顯示第5位
  20.                         case(6):
  21.                                 LSA=0;LSB=1;LSC=1; break;//顯示第6位
  22.                         case(7):
  23.                                 LSA=1;LSB=1;LSC=1; break;//顯示第7位       
  24.                 }   //<--------
  25.                 P0=smgduan[i];//發送段碼
  26.                 delay(100); //間隔一段時間掃描       
  27.                 P0=0x00;//消隱
  28.         }    //<--------
  29. }

復制代碼
回復

使用道具 舉報

地板
ID:645890 發表于 2019-11-30 08:00 | 只看該作者
i沒清零?
回復

使用道具 舉報

5#
ID:275826 發表于 2019-11-30 09:00 | 只看該作者
程序要與硬件電路相適應,是教程的開發板嗎?
回復

使用道具 舉報

6#
ID:470332 發表于 2019-11-30 09:52 | 只看該作者
沒電路圖,不知道你怎么接線的,所以沒法判斷那有問題
回復

使用道具 舉報

7#
ID:372888 發表于 2019-11-30 10:32 | 只看該作者
顯示的程序有問題吧
回復

使用道具 舉報

8#
ID:190832 發表于 2019-11-30 12:43 | 只看該作者
延時時間太短,肉眼分別不出來,把延時改大,LED亮是因為電路上LED和數碼管是接在一起的,不用管
回復

使用道具 舉報

9#
ID:650297 發表于 2019-11-30 13:05 | 只看該作者
24行的大括號只有一個,27行有兩個,大括號寫錯地方,邏輯關系就會改變,網上下載的程序許多都有錯誤,要仔細檢查,判斷,
回復

使用道具 舉報

10#
ID:235200 發表于 2019-11-30 13:36 | 只看該作者
把P0=smgduan[i];
delay(100);
P0=0x00;
上笑迎一個大括號
回復

使用道具 舉報

11#
ID:653047 發表于 2019-11-30 20:08 | 只看該作者
"d3到d5還亮著",這種情況要看開發板原理圖,我在我的原理圖上看了一下,發現定義的兩個口sbit LSB=P2^3; sbit LSC=P2^4;對應著led模塊上D3和D4,所以會亮是正常的
回復

使用道具 舉報

12#
ID:688584 發表于 2020-1-29 12:55 | 只看該作者
angmall 發表于 2019-11-30 07:05
你的程序這里錯了,給你改了一下試試。

想問一下switch語句中給LSA,LSB,LSC賦值是什么意思,怎么賦值0和1的
回復

使用道具 舉報

13#
ID:642838 發表于 2020-1-29 14:09 | 只看該作者
圖南o 發表于 2020-1-29 12:55
想問一下switch語句中給LSA,LSB,LSC賦值是什么意思,怎么賦值0和1的

swith的i值范圍0--7,對應二進制000到111,就是case的8種狀態
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频三级 | 国产色网站 | 一级片av| 国产精品久久国产精品99 gif | 国产一区二区观看 | 国产一级在线观看 | 亚洲精品无人区 | 羞羞的视频免费在线观看 | 天天干狠狠 | 国产精品免费看 | 国产色99| 日韩理论电影在线观看 | 久久99蜜桃综合影院免费观看 | 国产精品有限公司 | 久久久噜噜噜www成人网 | 中文字幕免费 | 久久久久久免费毛片精品 | 亚洲精品免费在线 | 99视频在线免费观看 | 久久久久久国产精品免费免费 | 免费观看黄a一级视频 | 精品亚洲一区二区三区四区五区 | 国产精品久久久久久吹潮 | 欧美日韩亚洲一区 | 二区在线观看 | 91 在线| 成人av网站在线观看 | 成人在线观看网站 | 久草视频在线播放 | 超碰97人人人人人蜜桃 | 国产日韩欧美 | 一区二区三区在线 | 欧 | 国产一区二区在线免费观看 | 午夜久久久| 干干干操操操 | 久草视频在线看 | xx视频在线观看 | 男女羞羞在线观看 | 久草青青草 | 欧美三区在线观看 | 在线日韩av电影 |