2 ttom1995 TTom1995 于 2015.07.22 19:57 提问

关于单片机的数码管扫描

为什么下面的程序在现实的不是扫描而是有点乱
#include
#define uint unsigned int
#define uchar unsigned char

sbit LE1=P2^0; //位选573锁存器使能
sbit LE2=P2^1; //段选573锁存器使能
void delay (int time)
{
uint i,j;
for (i=0;i<time;i++)
for (j=0;j<50;j++);
}
uchar code dis[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

uchar code step[8]={0x7f,0xbf,0xcf,0xdf,0xf7,0xfb,0xfc,0xfd};
void main ()
{
while (1)
{
uint i;
for (i=0;i<8;i++)
{
P1=step[i];
LE1=1;
LE1=0;
P1=dis[i];
LE2=1;
LE2=0;
delay(8000);
}
}
}

5个回答

CSDNXIAON
CSDNXIAON   2015.07.22 20:00

单片机——数码管
单片机之静态数码管
51单片机--数码管
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Dagegeili
Dagegeili   2015.07.24 16:18

代码这么贴,太乱了。

liu_yp_
liu_yp_   2015.07.24 16:50

你把for循环里的代码改成这样看看
for (i=0;i<8;i++)
{
P1=step[i];
LE1=1;
P1=dis[i];
LE2=1;
delay(8000);
LE1=0;
LE2=0;
}

qq_16924151
qq_16924151   2015.08.06 07:52

这完全不能真正理解你的程序啊

shidizai1993
shidizai1993   2015.08.28 12:39

能明白你的意思 看看锁存器的连接对不对 断选位选的数组编码有没有问题 程序上 P1每次赋值前先置0一下 看看有没有效果

Csdn user default icon
上传中...
上传图片
插入图片