大家来看看我这个程序。。我新人一个
时间:10-02
整理:3721RD
点击:
这城西是希望实现一个0到9的数秒器。但是数码管却没反应,有大神能伴我看看这个代码吗?我是刚学编程的,希望各位能指导下
#include<reg52.h>
#define uint unsigned int
unsigned char code SZ[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint i,j,x;
void delay1s();
void main()
{
x=0;
while(1)
{
while(x<9)
{
P1=SZ[x];
delay1s();
x=x+1;
}
x=0;
}
}
void delay1s()
{
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
#include<reg52.h>
#define uint unsigned int
unsigned char code SZ[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint i,j,x;
void delay1s();
void main()
{
x=0;
while(1)
{
while(x<9)
{
P1=SZ[x];
delay1s();
x=x+1;
}
x=0;
}
}
void delay1s()
{
for(i=1000;i>0;i--)
for(j=110;j>0;j--);
}
程序没看出问题,建议把原理图贴上来。
没原理图我也不好说,不过你这程序少了点东西,先的请零啊。
原理图,没原理图不好办啊
请问原理图是指那一部分?是电路板的电路图?还是别的什么。
我上面直接令X=0,这是清零了。
数码管与单片机连接图。
在P1=SZ[x];这句话之前建议先消影!
以上是我在学习板上找到的资料,而且,我上面的代码0到9的显示是测试过的。但是,我将程序考到单片机里面的时候,并不能完成一个记秒器这么一个任务。
这个是数码管的电路图。
这个是单片机与电路板电路图
好的,我再仔细看看。消影我还有点不清楚,请问能够大概解释下嘛?谢谢。
没问题呀,接在独立的数码管可以显示0-8,你把x<9改成想x<=9就可以显示0-9了
意思就是说假如是公阳的,IO低电平表示亮,假如上一次显示8那么全部都是亮就是0X00,那么你这次想显示0那么上一次的低电平就会留在IO上,导致你显示出问题。
谢谢,这个后来我也看到了,现在搞清楚了。回了趟老家,没网最近没怎么上。
谢谢提醒,这个我确实没注意到。