两个数码管只有一个是正常的

2019-07-15 00:38发布

写了一个计数的程序,用数码管显示的,可是问题出现了,两个数码管只有一个是正常的,另一个数码管
该灭的地方倒不灭了,程序如下,求高手指点:
  sbit LS138A=P2^2;   
sbit LS138B=P2^3;
sbit LS138C=P2^4;
sbit LED8_1=P1^1;
unsigned char table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
unsigned int i,n ,DelayCNT;
unsigned char m;
void delay()
{
{
     
    for(n; n > 0; n--)
         for(m = 2000; m > 0; m--);
}
}
void main()
{
    unsigned int i,LedNumVal=1 ;
    unsigned int LedOut[10];
   
    DelayCNT=0;
   while(1)  //进入循环状态
   {  
      if(++DelayCNT>=500)
   {
    DelayCNT=0;     //延时计数 每扫描一次加一次
      ++LedNumVal;       //每隔50个扫描周期加一次
   }
      LedOut[6]=table[LedNumVal%10];     //十位  
      LedOut[7]=table[LedNumVal%100/10];
      
for(i=0;i<9;i++)
{
P0=LedOut[i];
switch(i)
{     
    case 0:
          case 1:            
          case 2:;
         case 3:
    case 4:
    case 5:
    case 6: LS138A=0; LS138B=1; LS138C=1; LED8_1=1; break;
    case 7: LS138A=1; LS138B=1; LS138C=1; LED8_1=1; break;;
}
delay();
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
午夜粪车
1楼-- · 2019-07-16 10:46

这个有可能是你的数码管之间没有加延时程序的。
zhaoxqi
2楼-- · 2019-07-16 11:52

同意楼上各位的,延时程序很重要的。
liliang9554
3楼-- · 2019-07-16 13:45
 精彩回答 2  元偷偷看……
shenmu2012
4楼-- · 2019-07-16 16:33
jiajs 发表于 2017-11-12 12:41
void delay()
{
{

这个是不是有啥特殊的设计目的?
myiclife
5楼-- · 2019-07-16 17:29
你的硬件电路呢?
uytyu
6楼-- · 2019-07-16 22:27
可能延时时间不够。

一周热门 更多>