我用的实验板是用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);
}
}
-
你好,其实之前试过从左到右依次显示8~1,显示效果OK的数码管和对应的顺序也正确。
J21跳线帽接的VCC,开发板上没有J15和J16.
单个数码管的话,试了几个,都点不亮
单个数码管程序:
#include <STC89.H>
void main()
{
while(1)
{
P24=1;
P23=0;
P22=0;
P0=0x3f;
}
}
先测一下LED0~LED8的电平有没发生对应的变化。如果没有就是138的问题。如果138没问题很大可能是数码管的问题了。一步步分析问题到底出现在哪里
一周热门 更多>