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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機+數碼管為什么不亮?

[復制鏈接]
跳轉到指定樓層
樓主
用STC15W408AS搭建的電路,P2接數碼管+,P3接—,一共8個數碼管,全部都是a段亮。請大神幫忙看看哪里出了問題。

  1. #include <STC15F2K60S2.H>

  2. void main()
  3. {
  4.                         P2=1;                        
  5.                   P3=0;        
  6.         
  7.                 while(1)
  8.                 {
  9.                         
  10.                 }
  11. }        
復制代碼



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

使用道具 舉報

沙發
ID:1109793 發表于 2025-4-17 12:16 | 只看該作者
電路圖呢?
回復

使用道具 舉報

板凳
ID:1144680 發表于 2025-4-17 13:29 | 只看該作者

如下圖,把無關的電路刪了



回復

使用道具 舉報

地板
ID:1121801 發表于 2025-4-17 13:38 | 只看該作者
P2=1??所以P2=01H,P2=0000,0001,那不是一個段亮嗎??
回復

使用道具 舉報

5#
ID:1133081 發表于 2025-4-17 14:13 | 只看該作者
dcc60 發表于 2025-4-17 13:29
如下圖,把無關的電路刪了

P2=1當然只亮1個a點,電路圖也有毛病,給你改了。下面是測試程序。


  1. #include <STC15F2K60S2.H>

  2. unsigned char code table[]={
  3.         0x3f,0x06,0x5b,0x4f,
  4.         0x66,0x6d,0x7d,0x07,
  5.         0x7f,0x6f,0x77,0x7c,
  6.         0x39,0x5e,0x79,0x71};

  7. void Delay(unsigned int t)//1T@11.0592MHz
  8. {
  9.     unsigned int x;
  10.     while (t--)
  11.     {
  12.         x = 5000;
  13.         while (x--);
  14.     }
  15. }


  16. void main()
  17. {               
  18.         unsigned char i;
  19.         while(1)
  20.         {
  21.                 P2=0x00;
  22.                 P3=~(0x01<<i);
  23.                 P2=table[i];
  24.                 Delay(1);       
  25.                 i=++i%8;
  26.         }
  27. }
復制代碼



回復

使用道具 舉報

6#
ID:1144680 發表于 2025-4-17 14:22 | 只看該作者
cyi8 發表于 2025-4-17 13:38
P2=1??所以P2=01H,P2=0000,0001,那不是一個段亮嗎??

是這個意思啊?本意是讓所有數碼管點亮,P2輸出高電平,P3低電平,后來試了一下,給每個數碼管單獨賦值0、1就可以。

現在把代碼優化了一下,可以了。謝謝!
  1. #include <STC15F2K60S2.H>

  2. unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  3.        
  4. void Nixie(unsigned char Location,Number)
  5. {
  6.         switch(Location)
  7.         {
  8.                 case 1:P30=0; break;
  9.                 case 2:P31=0; break;               
  10.                 case 3:P32=0; break;
  11.                 case 4:P33=0; break;               
  12.                 case 5:P34=0; break;
  13.                 case 6:P35=0; break;               
  14.                 case 7:P36=0; break;
  15.                 case 8:P37=0; break;                       
  16.         }
  17.                 P2=NixieTable[Number];               
  18. }

  19. void main()
  20. {
  21.        
  22. Nixie(2,6);
  23.        
  24.                 while(1)
  25.                 {
  26.                        
  27.                 }
  28. }       
復制代碼



回復

使用道具 舉報

7#
ID:1144680 發表于 2025-4-17 14:28 | 只看該作者
WL0123 發表于 2025-4-17 14:13
P2=1當然只亮1個a點,電路圖也有毛病,給你改了。下面是測試程序。

多謝!運行正常。已經超出了我的學習進度,下一節正好要學習這個。

回復

使用道具 舉報

8#
ID:996773 發表于 2025-4-17 15:08 | 只看該作者
過來人告訴樓主,新手學習單片機盡可能從標準的51開始,io口輸出只是標準的弱上拉和強拉低
比較容易理解,15w408雖然先進些,io口有多種配置,有強拉高,懸空等多種狀態需要定義相關
的寄存器,對新手不友好,循序漸進才是最好最省力的
回復

使用道具 舉報

9#
ID:60178 發表于 2025-4-18 08:01 | 只看該作者
我也剛學,要配置輸出模式,端口要寫明白,P2是指對一字節8位給1嗎,不是寫0XFF嗎
回復

使用道具 舉報

10#
ID:402677 發表于 2025-4-18 10:20 | 只看該作者
WL0123 發表于 2025-4-17 14:13
P2=1當然只亮1個a點,電路圖也有毛病,給你改了。下面是測試程序。

好好學習,謝謝熱心的朋友
回復

使用道具 舉報

11#
ID:1144680 發表于 2025-4-18 10:25 | 只看該作者
hi等你 發表于 2025-4-17 15:08
過來人告訴樓主,新手學習單片機盡可能從標準的51開始,io口輸出只是標準的弱上拉和強拉低
比較容易理解, ...

說的極是。
想著一邊學習一邊實踐,增加自己的學習興趣,這咱芯片也便宜,先做個小東東出來。
回復

使用道具 舉報

12#
ID:1144680 發表于 2025-4-18 10:31 | 只看該作者
xayh000 發表于 2025-4-18 08:01
我也剛學,要配置輸出模式,端口要寫明白,P2是指對一字節8位給1嗎,不是寫0XFF嗎

沒錯。應該寫為0xFF,想當然地認為P2=1就是對所有端口操作。慚愧慚愧。
回復

使用道具 舉報

13#
ID:1137639 發表于 2025-4-18 20:54 | 只看該作者
是這個意思啊?本意是讓所有數碼管點亮,P2輸出高電平,P3低電平,后來試了一下,給每個數碼管單獨賦值0、1就可以。

現在把代碼優化了一下,可以了。謝謝!
  1. #include <STC15F2K60S2.H>

  2. unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
  3.       
  4. void Nixie(unsigned char Location,Number)
  5. {
  6.         switch(Location)
  7.         {
  8.                 case 1:P30=0; break;
  9.                 case 2:P31=0; break;               
  10.                 case 3:P32=0; break;
  11.                 case 4:P33=0; break;               
  12.                 case 5:P34=0; break;
  13.                 case 6:P35=0; break;               
  14.                 case 7:P36=0; break;
  15.                 case 8:P37=0; break;                       
  16.         }
  17.                 P2=NixieTable[Number];               
  18. }

  19. void main()
  20. {
  21.       
  22. Nixie(2,6);
  23.       
  24.                 while(1)
  25.                 {
  26.                        
  27.                 }
  28. }      
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清亚洲 | 国产精品免费观看 | 欧美区日韩区 | 成人国产在线观看 | 久久色视频 | 国产精品一级 | 99久久久久久99国产精品免 | 懂色一区二区三区免费观看 | 色资源在线 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 国产日韩av一区二区 | 国产高清在线精品 | 亚洲福利网 | 欧美激情视频网站 | 91精品国产色综合久久 | 亚洲精品99| 婷婷色国产偷v国产偷v小说 | 日本人做爰大片免费观看一老师 | 日韩久久久久久久久久久 | 激情网站在线观看 | 国产成人精品999在线观看 | 国产精品久久二区 | 亚洲精品www | 华丽的挑战在线观看 | 欧美毛片免费观看 | 国产成人jvid在线播放 | av中文字幕在线观看 | 久久99精品久久久久久 | 国产精品自在线 | 欧美综合久久 | 精品国产乱码久久久久久丨区2区 | 喷潮网站 | 免费精品| 亚洲欧美日韩精品久久亚洲区 | 伊人网站 | 国产一区二区三区高清 | 人妖无码| 日韩国产在线 | 久久久久国产精品一区三寸 | 中文在线一区二区 | 岛国毛片在线观看 |