c51单片机程序错在哪里?

#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbi... #include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1 = p1^0;
sbit key2 = p1^1;
sbit key3 = p1^2;
sbit key4 = p1^3;
sbit fmq=p2^1;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x0ff};
void jia();
void jian();
uchar table1[8],table2[8],table3[8],table4[8];
uchar shi=12,fen=0,miao=0;
uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;
uchar shi4,fen4,miao4;
uchar flag,flag1,wss,cnt,cnt1,alm1,alm2,alm3;
uint flag2;
void delay(uchar i)
{ uchar x,y;
for(x=i;x>0;x--)
for(y=120;y>0;y--);
}
void init()
{ TMOD=0x01;
TH0=0x3c;
TL0=0x0b0;
ET0=1;
EA=1;
TR0=1;
}
void disply()
{ uchar i,j;
if(cnt!=10||wss==0)
{table1[0]=miao%10;
table1[1]=miao/10;
}
else
{table1[0]=table1[1]=11;}
if(cnt!=11||wss==0)
{table1[3]=fen%10;
table1[4]=fen/10;
}
else
{table1[3]=table1[4]=11;}
if(cnt!=12||wss==0)
{table1[6]=shi%10;
table1[7]=shi/10;
}
else
{table1[6]=table1[7]=11;}
table1[2]=table1[5]=10;
j=0x7f;
for(i=0;i<=7;i++)
{p3=j;
p0=table[table1[i]];
delay(10)
j=_cror_(j,1);
}
}
viod disply1()
{ uchar i,j;
if(alm1==0)
{if(cnt!=1||wss==0)
{table2[0]=miao1%10;
table2[1]=miao1/10;
}
else
{table2[0]=table2[1]=11;}
if(cnt!=2||wss==0)
{table2[3]=fen1%10;
table2[4]=fen1/10;
}
else
{table2[3]=table2[4]=11;}
if(cnt!=3||wss==0)
{table2[6]=shi1%10;
table2[7]=shi1/10;
}
else
{table2[6]=table2[7]=11;}
else
table2[0]=table2[1]=table2[3]=table2[4]=table2[6]=table2[7]=10
table2[2]=table2[5]=10;
j=0x7f;
for(i=0;i<=7;i++)
{p3=j;
p0=table[table2[i]];
delay(10)
j=_cror_(j,1);
}
}
void display2()
{ uchar i,j;
if(alm2==0)
{if(cnt!=4||wss==0)
{table3[0]=miao2%10;
table3[1]=miao2/10;
}
else
{table3[0]=table3[1]=11;}
if(cnt!=5||wss==0)
{table3[3]=fen2%10;
table3[4]=fen2/10;
}
else
{table3[3]=table3[4]=11;}
if(cnt!=6||wss==0)
{table3[6]=shi2%10;
table3[7]=shi2/10;
}
else
{table3[6]=table3[7]=11;}
else
table3[0]=table3[1]=table3[3]=table3[4]=table3[6]=table3[7]=10
table3[2]=table3[5]=10;
j=0x7f;
for(i=0;i<=7;i++)
{p3=j;
p0=table[table3[i]];
depley(10)
j=_cror_(j,1);
}
}
展开
 我来答
CFDNKJ2010
2012-03-26
知道答主
回答量:4
采纳率:0%
帮助的人:3.1万
展开全部
1,你的程序存在书写错误:
I/O端口的要用大写字母P,你写成了小写;
2,你写程序时,漏写了花括号,注意检查花括号要配成对才行;在93行处和126行处补上}
3,第57行的delay() 行末忘记了加分号;
4,程序不完整,缺乏main()函数体;
你按照我给你指出的1,2,3,4,步,你逐一修改,即可全部编译通过。
编程要养成严谨,细心的好习惯。
祝你学习进步。^-^
追问
恩  刚刚发现了 谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
快乐小斯
2012-03-26 · TA获得超过195个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:104万
展开全部
1、对p口的操作应该大写。例如p0=table[table3[i]];改成P0=table[table3[i]];
2、disply,1,2中倒数第二行delay没有分号.且delay不是deplay;
3、disply,1,2中少},且之前为void不是viod;
4、display1,2中table2[0]=table2[1]=table2[3]=table2[4]=table2[6]=table2[7]=10后面少分号
改正后:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
sbit fmq=P2^1;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x0ff};
void jia();
void jian();
uchar table1[8],table2[8],table3[8],table4[8];
uchar shi=12,fen=0,miao=0;
uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;
uchar shi4,fen4,miao4;
uchar flag,flag1,wss,cnt,cnt1,alm1,alm2,alm3;
uint flag2;
void delay(uchar i)
{ uchar x,y;
for(x=i;x>0;x--)
for(y=120;y>0;y--);
}
void init()
{ TMOD=0x01;
TH0=0x3c;
TL0=0x0b0;
ET0=1;
EA=1;
TR0=1;
}
void disply()
{ uchar i,j;
if(cnt!=10||wss==0)
{table1[0]=miao%10;
table1[1]=miao/10;
}
else
{table1[0]=table1[1]=11;}
if(cnt!=11||wss==0)
{table1[3]=fen%10;
table1[4]=fen/10;
}
else
{table1[3]=table1[4]=11;}
if(cnt!=12||wss==0)
{table1[6]=shi%10;
table1[7]=shi/10;
}
else
{table1[6]=table1[7]=11;}
table1[2]=table1[5]=10;
j=0x7f;
for(i=0;i<=7;i++)
{P3=j;
P0=table[table1[i]];
delay(10);
j=_cror_(j,1);
}
}
void disply1()
{ uchar i,j;
if(alm1==0)
{if(cnt!=1||wss==0)
{table2[0]=miao1%10;
table2[1]=miao1/10;
}
else
{table2[0]=table2[1]=11;}
if(cnt!=2||wss==0)
{table2[3]=fen1%10;
table2[4]=fen1/10;
}
else
{table2[3]=table2[4]=11;}
if(cnt!=3||wss==0)
{table2[6]=shi1%10;
table2[7]=shi1/10;
}
else
{table2[6]=table2[7]=11;}
}
else
table2[0]=table2[1]=table2[3]=table2[4]=table2[6]=table2[7]=10;
table2[2]=table2[5]=10;
j=0x7f;
for(i=0;i<=7;i++)
{P3=j;
P0=table[table2[i]];
delay(10);
j=_cror_(j,1);
}
}
void display2()
{ uchar i,j;
if(alm2==0)
{if(cnt!=4||wss==0)
{table3[0]=miao2%10;
table3[1]=miao2/10;
}
else
{table3[0]=table3[1]=11;}
if(cnt!=5||wss==0)
{table3[3]=fen2%10;
table3[4]=fen2/10;
}
else
{table3[3]=table3[4]=11;}
if(cnt!=6||wss==0)
{table3[6]=shi2%10;
table3[7]=shi2/10;
}
else
{table3[6]=table3[7]=11;}
}
else
table3[0]=table3[1]=table3[3]=table3[4]=table3[6]=table3[7]=10;
table3[2]=table3[5]=10;
j=0x7f;
for(i=0;i<=7;i++)
{P3=j;
P0=table[table3[i]];
delay(10);
j=_cror_(j,1);
}
} 谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abcd910725
2012-03-26
知道答主
回答量:20
采纳率:0%
帮助的人:5.9万
展开全部
没有问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式