程序正常,但P23换成1数码管就完全点不亮了。

2019-07-15 19:37发布

我用的实验板是用138进行共阴数码管选择的。然后发现相邻位的数码管能点亮(如可以点亮最右边的两个数码管),但不能点亮相隔的数码管。不知有老鸟能看出原因么。
以下程序正常,但P23换成1数码管就完全点不亮了。
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x07f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0123456789ABCDEF 共阴
void delay(uchar c)
{
uchar x,y;
for(x=0;x<c;x++)
  for(y=0;y<110;y++);
}
void main()
{
while(1)
{
P24=0;
P23=0;
P22=0;
P0=table[1];
delay(5);
P24=0;
P23=0;     //比如改成P23=1,照理应该是右边倒数第一和第四个能显示字符,但实际是数码管完全不显示
P22=1;   
P0=table[2];
delay(5);
}
}
u=1020851307,2123759424&amp;fm=21&amp;gp=0.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
依然落叶飘零
1楼-- · 2019-07-16 00:51
首先你确定你的接线是否有问题。J21接VCC,J15接J16。也可能是线松了,先将LED1~LED8接LED,再写一个简单的程序逐个点亮。看看LED显示正常不正常。如果不正常有可能是P2.2~p2.4的问题。
olive2003
2楼-- · 2019-07-16 03:24
依然落叶飘零 发表于 2014-5-23 09:41
首先你确定你的接线是否有问题。J21接VCC,J15接J16。也可能是线松了,先将LED1~LED8接LED,再写一个简单的程 ...

你好,其实之前试过从左到右依次显示8~1,显示效果OK的数码管和对应的顺序也正确。
J21跳线帽接的VCC,开发板上没有J15和J16.
单个数码管的话,试了几个,都点不亮
单个数码管程序:
#include <STC89.H>
void main()
{
while(1)
{
P24=1;
P23=0;
P22=0;
P0=0x3f;
}   
}
依然落叶飘零
3楼-- · 2019-07-16 08:50
olive2003 发表于 2014-5-23 23:39
你好,其实之前试过从左到右依次显示8~1,显示效果OK的数码管和对应的顺序也正确。
J21跳线帽接的VCC,开 ...

先测一下LED0~LED8的电平有没发生对应的变化。如果没有就是138的问题。如果138没问题很大可能是数码管的问题了。一步步分析问题到底出现在哪里
olive2003
4楼-- · 2019-07-16 14:23
 精彩回答 2  元偷偷看……

一周热门 更多>