欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 這個單片機程序 為什么數碼管不亮呢? [打印本頁]

作者: 孫韜    時間: 2018-4-4 12:40
標題: 這個單片機程序 為什么數碼管不亮呢?
初學者,求解答,程序如下
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. xdata uchar num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  4. void delay(uchar i)
  5. {
  6. uchar t;
  7. while(i--)
  8. {
  9.   for(t=0;t<120;t++);
  10. }
  11. }
  12. void main()
  13. {
  14. uchar i;
  15. P0=0Xff;
  16. while(1)
  17. {
  18.   for(i=1;i<=9;i+=2)
  19.   {
  20.    P0=num[i];
  21.    delay(500);
  22.   }
  23.   for(i=0;i<=8;i+=2)
  24.   {
  25.    P0=num[i];
  26.    delay(500);
  27.    }
  28. }
  29. }
復制代碼

]}22])4}FQEAAOB3`I{(%S5.png (82.48 KB, 下載次數: 62)

]}22])4}FQEAAOB3`I{(%S5.png

作者: tdhlq    時間: 2018-4-4 13:29
P0口加上拉試試.
作者: cqys2014    時間: 2018-4-4 14:21
如果是 51 的話,注意 P0口的上拉設計
作者: 孫韜    時間: 2018-4-4 15:40
行,我試試
作者: 孫韜    時間: 2018-4-4 15:55
這個程序的問題是運行開始后,P0口的電平始終不變
作者: 孫韜    時間: 2018-4-4 15:56
加了上拉電阻也沒反應

作者: ahshmj    時間: 2018-4-4 16:27
數碼管最好別用P0口。其他口內部都有上拉,唯獨P0沒有。而且其推拉能力小一些。
作者: fomm    時間: 2018-4-4 16:31
加上拉電阻
作者: andrew1285    時間: 2018-4-4 16:32
PO要加上啦
作者: 狐貍爸爸    時間: 2018-4-4 16:56
P0口是需要上拉電阻的,10歐左右吧

作者: zhangxiaozi    時間: 2018-4-4 17:47
問題出在xdata uchar num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
你的碼表存到xdata中,而89c51就沒有xdata,應該定義成data
作者: zhangxiaozi    時間: 2018-4-4 17:51
樓上說接10歐姆的上拉,那是要命的,當輸出高的時候,還不致命,當P0輸出低的時候,就會燒毀IO口,從而燒掉單片機
作者: 明白    時間: 2018-4-4 18:37
接10歐姆的上拉,那是要單片機的命。我也是發現過同樣的情況,是仿真軟件的問題,換成其他2位或者4位數碼管試試看
作者: 辛辣酒香    時間: 2018-4-4 19:10
把p0口改成p2口(程序和數碼管一起改)試試看
作者: csl940828    時間: 2018-4-4 21:17
加上拉電阻應該就可以了
作者: xxj1975    時間: 2018-4-4 21:35
lz用的是共陽數碼管P0口好像不用加上拉電阻吧,
作者: wxxl    時間: 2018-4-4 22:02
還是用個鎖存器,比較靠譜!
雖然我從來沒有直接把數碼管接在IO口上,但是我考慮IO口的輸出電流本來就小,再串個電阻,數碼管還能正常工作嗎?
作者: 230000    時間: 2018-4-4 22:05
上拉電阻1K以上,限制電流小于5mA。
作者: QIANLILI    時間: 2018-4-4 22:38
我把你的程序修整和精簡了下。實現0到9數字每秒變化一次。 另外 AT89C51單片機是需要加上拉電阻的。 仿真程序里只有AT89系列單片機。所以 做仿真時盡量不用P0口。 我這里先改成了P1口。實際使用時 STC89C52單片機  P0口也不需要加上拉的。 其它STC12或15或F8系列單片機還可以設置4種輸出模式。晶振也可以用內部的。這個視你自己的用途選擇吧。以下程序 仿真通過。 另外  仿真的數碼管選共陽數碼管。

#include<reg51.h>

unsigned char num[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void delay(unsigned int i)
{
   while(i--);
}

void main()
{
  unsigned char i;
       
  while(1)
  {
    for(i=0;i<10;i++)
    {
     P1=num[i];
     delay(50000);
    }
  }
}
作者: QIANLILI    時間: 2018-4-4 22:41
仿真圖片如下。運行程序就可以看到數碼管從0到9變化。
作者: pmsjzj    時間: 2018-4-4 23:52
看看p0 上拉 看看
作者: 孫韜    時間: 2018-4-5 09:08
行,小生多謝各位前輩啦!
作者: 2584638243    時間: 2018-4-5 18:08
數組定義應該是死循環里面這樣寫
作者: 2584638243    時間: 2018-4-5 18:12
數組定義應該是unsigned char code num[]=  for循環應該是這樣for(i=0;i<9;i++)  并且只用寫一個for循環……
作者: jary1314    時間: 2018-4-5 21:09
P0口加上拉試試.
作者: robator    時間: 2018-4-6 11:33
P0口加上拉試試,應該就解決了
作者: robator    時間: 2018-4-6 11:33
P0口加上上拉,估計問題就解決了




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1