标题:
单片机程序一直编译不成功 missing function-prototype
[打印本页]
作者:
51mcu学习
时间:
2021-1-17 20:24
标题:
单片机程序一直编译不成功 missing function-prototype
以下是抄书上的程序,keil一直编译不过,新手小白不知道什么原因,自己对照书一直找不出错误。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit led1=P1^0;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delayms(uint);
void dispaly(uchar,uchar);
uchar num,num1,num2,shi,ge;
void main()
{
TMOD=0x11;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1)
{
display(shi,ge);
}
}
void display(uchar shi,uchar ge) //μ÷óÃÏÔê¾×óoˉêy
{
dula=1;
P0=table[shi]; //μúò»¸öêyÂë1üÏÔê¾ê®Î»êy¾Y
dula=0;
P0=0xff; //1رÕËùóDÏÔê¾
wela=1;
P0=0xfe;
wela=0;
delayms(5);
dula=1;
P0=table[ge]; //μú¶t¸öêyÂë1üÏÔ꾸öλêy¾Y
dula=0;
P0=0xff; //1رÕËùóDÏÔê¾
wela=1;
P0=0xfd;
wela=0;
delayms(5);
}
void delayms(uint xms) //μ÷óÃmsÑóê±×óoˉêy
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num1++;
if(num1==4)
{
num1=0;
led1=~led1;
}
}
void T1_time() interrupt 3
{
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
num2++;
if(num2==20)
{
num2=0;
num++;
if(num==60)
num=0;
shi=num/10;
ge=num%10;
}
}
作者:
51mcu学习
时间:
2021-1-17 20:25
请求大师傅告知一下。
keil
compiling 数码管2.c...
数码管2.c(31): warning C206: 'display': missing function-prototype
数码管2.c(31): error C267: 'display': requires ANSI-style prototype
数码管2.c(38): error C231: 'display': redefinition
数码管2.c(56): error C231: 'display': redefinition
Target not created.
Build Time Elapsed: 00:00:00
作者:
51mcu学习
时间:
2021-1-17 20:26
compiling 数码管2.c... 数码管2.c(31): warning C206: 'display': missing function-prototype 数码管2.c(31): error C267: 'display': requires ANSI-style prototype 数码管2.c(38): error C231: 'display': redefinition 数码管2.c(56): error C231: 'display': redefinition Target not created. Build Time Elapsed: 00:00:00
作者:
51mcu学习
时间:
2021-1-17 21:03
找到错误dispaly写错了,正确display
作者:
zwf33
时间:
2021-1-22 14:23
void display(uchar shi,uchar ge);
要放到主函数前面声明:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit led1=P1^0;
void display(uchar shi,uchar ge);
uchar code table[]= {
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void delayms(uint);
void dispaly(uchar,uchar);
uchar num,num1,num2,shi,ge;
void main()
{
TMOD=0x11;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1)
{
display(shi,ge);
}
}
void display(uchar shi,uchar ge) //μ÷ó???ê?×óoˉêy
{
dula=1;
P0=table[shi]; //μúò???êy??1ü??ê?ê???êy?Y
dula=0;
P0=0xff; //1?±??ùóD??ê?
wela=1;
P0=0xfe;
wela=0;
delayms(5);
dula=1;
P0=table[ge]; //μú?t??êy??1ü??ê?????êy?Y
dula=0;
P0=0xff; //1?±??ùóD??ê?
wela=1;
P0=0xfd;
wela=0;
delayms(5);
}
void delayms(uint xms) //μ÷ó?ms?óê±×óoˉêy
{
uint i,j;
for(i=xms; i>0; i--)
for(j=110; j>0; j--);
}
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num1++;
if(num1==4)
{
num1=0;
led1=~led1;
}
}
void T1_time() interrupt 3
{
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
num2++;
if(num2==20)
{
num2=0;
num++;
if(num==60)
num=0;
shi=num/10;
ge=num%10;
}
}
作者:
zwf33
时间:
2021-1-22 14:24
void display(uchar shi,uchar ge);
要放到主函数前面声明
作者:
名字不是重点
时间:
2021-1-22 15:37
void main()这个主函数只能在C文件的最末端。不然就要把其它函数在C文件的前端声明一次。这是C的规则。
作者:
51mcu学习
时间:
2021-1-23 19:32
显示子函数在主函数前面已经声明,显示英文写错了。谢谢各位工程师!
作者:
370894249
时间:
2021-1-25 11:45
函数没有定义,或者是苦衷没有相应函数。
作者:
求解答
时间:
2021-1-27 15:22
void dispaly(uchar,uchar); 写错了,是display
作者:
2030908237
时间:
2022-3-3 23:47
#include <AT89X51.h>
bit dsinit();
void write_data();
unsigned char readdata();
sbit ds=P3^3;
unsigned int i;
unsigned int t1;
unsigned char t2;
unsigned char t;
int j;
unsigned char dat,rdata;
bit b;
void main()
{
while(1)
{
dsinit();
write_data(0xCC);
write_data(0x44);
dsinit();
write_data(0xCC);
write_data(0xbe);
t1=readdata();
t2=readdata();
t2=(t2<<8)|t1;
}
}
bit dsinit()
{
ds=0;
i=60;
while(i>0)i--;
ds=1;
i=4;
while(i>0)i--;
while(!ds);
i=60;
while(i>0)i--;
}
void write_data()
{
for(j=0;j>0;j--)
{
b=dat&0x01;
dat>>=1;
if(b)
{
ds=0;
i=2;
while(i>0)i--;
ds=1;
i=7;
while(i>0)i--;
}
else
{
ds=0;
i=8;
while(i>0)i--;
ds=1;
i++;i++;
}
}}
unsigned char readdata()
{
for(j=8;j>0;j--)
{
rdata>>=1;
ds=0;
i++;
ds=1;
i++;i++;
if(ds)
rdata=rdata|0x80;
i=8;
while(i>0)i--;
ds=1;
}
return rdata;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1