请各位大神帮忙看看,新人刚接触单片机
程序如下:
void main()
{
unsigned int count=0;
long num=3420;
while(1)
{
a[5]=num/100000%10;
a[4]=num/10000%10;
a[3]=num/1000%10;
a[2]=num/100%10;
a[1]=num/10%10;
a[0]=num%10;
disp();
count++;
if(count==1000)
{
num++;
count=0;
}
}
}
void disp()
{
unsigned char i;
for(i=0;i<6;i++)
{
WE=1;
P0=wei[i];
WE=0;
DU=1;
P0=numbercode[a[i]];
DU=0;
delay1ms();
}
}
好像还真没看出啥问题来,把整个程序贴上来看看吧
前面没什么,就头文件和引脚定义#include <reg52.h>
#include <intrins.h>
unsigned char numbercode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char wei[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
unsigned char a[5]=0;
sbit DU=P2^6;
sbit WE=P2^7;
void delay1ms(void) //误差 -1.074652777778us
{
unsigned char a,b;
for(b=2;b>0;b--)
for(a=215;a>0;a--);
}
void disp();
这是前面的部分
这个我也是遇到了,不知道怎么去解决的,而且课本上面的没有看懂
这个还真没遇到过,把他也放到最前面试试呢
估计是你调试器的问题而已
亲,我知道你这个问题在哪里,
void disp()
{
unsigned char i;//吧这里修改成unsigned int i试一试
for(i=0;i<6;i++)
{
WE=1;
P0=wei[i];
WE=0;
DU=1;
P0=numbercode[a[i]];
DU=0;
delay1ms();
}
}
