请单片机编程高手来帮我看看错在哪里了?
来源:百度知道 编辑:UC知道 时间:2024/05/07 14:38:10
数码管显示实验
---交替显示
******************/
#include<reg52.h>
void delay1m(int) ;
void disply(void);
/*声明驱动信号数组*/
char TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x83,0xf8,0x80,0x98};
char disp1[4]={2,0,0,8};//声明显示数据一
char disp2[4]={8,0,5,1};//声明显示数据二,?也可以用二维数组?
int i,j,k,scan ;
main()
{
delay1m(10);
while(1)
{
void display();
}
}
//==============子程序=============================================
/*延迟函数,延迟约x×1ms*/
void delay1m(int x)
{
int m,n;
for(m=0;m<x;m++) //循环三次
for(n=1;n<=120;n++);//计数120次
}
/*显示函数,两组数据交替显示*/
display()
{
//================显示第一组数据=============
for(k=0;k<30;k++)
{
scan=0x07;
for(i=3;i>0;i--)
{
j=disp1[i];
P0=TAB[j];
P1=s
main()
{
delay1m(10);
while(1)
{
display(); //???????不要加那个void
}
}
/*显示函数,两组数据交替显示*/
void display()//????????这个地方应该加一个void
{
//================显示第一组数据=============
for(k=0;k<30;k++)
、、、、、、、、、、、、、、、、、、、、、、
scan>>=1; //你这个也会有问题的,你这样写等效于scan=scan/2;
这是改过错的源程序(你在开头的显示子函数申明中把 void display(void)打成了 void disply(void)其次 子函数处的 display()前面要有void):
#include<reg52.h>
void delay1m(int) ;
void display(void);
/*声明驱动信号数组*/
char TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x83,0xf8,0x80,0x98};
char disp1[4]={2,0,0,8};//声明显示数据一
char disp2[4]={8,0,5,1};//声明显示数据二,?也可以用二维数组?
int i,j,k,scan ;
main()
{
delay1m(10);
while(1)
{
void display();
}
}
//==============子程序=============================================
/*延迟函数,延迟约x×1ms*/
void delay1m(int