51单片机,用独立键盘控制静态数码管显示1-8,自学的,错误连篇,求大神帮忙

#include<reg51.h>#include<intrins.h>#definedigP2#defineuintunsignedint#defineucharuns... #include<reg51.h>
#include<intrins.h>
#define dig P2
#define uint unsigned int
#define uchar unsigned char code

uchar number[10]={0xc0,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit K1=P0^0;
sbit K2=P0^1;//10
sbit K3=P0^2;
sbit K4=P0^3;
sbit K5=P0^4;
sbit K6=P0^5;
sbit K7=P0^6;
sbit K8=P0^7;

void anjian()
void yanshi(uint nms);
void main()//20
{
P0=0xff;//初始化
void anjian()

}

/**********************************
按键程序
***********************************/ //30
void anjian()
{
if(K1==0)
{
yanshi(10);
if(K1==0)
{
dig=number[1];
while((K1==0)&&(i<50))
{//40
yanshi(10);
i++;
}
i=0;
}
}
if(K2==0)
{
yanshi(10);
if(K2==0)//50
{
dig=number[2];
while((K2==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;
}
}//60
if(K3==0)
{
yanshi(10);
if(K3==0)
{
dig=number[3];
while((K3==0)&&(i<50))
{
yanshi(10);
i++;//70
}
i=0;
}
}
if(K4==0)
{
yanshi(10);
if(K4==0)
{
dig=number[4];//80
while((K4==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;
}
}
if(K5==0)
{//90
yanshi(10);
if(K5==0)
{
dig=number[5];
while((K5==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;//100
}
}
if(K6==0)
{
yanshi(10);
if(K6==0)
{
dig=number[6];
while((K6==0)&&(i<50))
{//110
yanshi(10);
i++;
}
i=0;
}
}
if(K7==0)
{
yanshi(10);
if(K7==0)//130
{
dig=number[7];
while((K7==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;
}
}//140
if(K8==0)
{
yanshi(10);
if(K8==0)
{
dig=number[8];
while((K8==0)&&(i<50))
{
yanshi(10);
i++;//150
}
i=0;
}
}
}

/**********************************
延时子程序
***********************************/
void yanshi(uint xms)//160
{
uint a,b;
for(a=xms;a>0;a--)
for(b=110;b>0;b--);
}
展开
 我来答
NJGQZF
推荐于2018-04-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1253万
展开全部
程序功能能否实现你自己验证,先把错误给你改了,已编译通过。

#include<reg51.h>
#include<intrins.h>
#define dig P2
#define uint unsigned int
#define uchar unsigned char code

uchar number[10]={0xc0,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit K1=P0^0;
sbit K2=P0^1;//10
sbit K3=P0^2;
sbit K4=P0^3;
sbit K5=P0^4;
sbit K6=P0^5;
sbit K7=P0^6;
sbit K8=P0^7;

void anjian();//这里没分号
void yanshi(uint nms);
void main()//20
{
P0=0xff;//初始化
anjian();//这里多void 少分号
}

/**********************************
按键程序
***********************************/ //30
void anjian()
{
uint i;//这以后的错误是变量i没定义
if(K1==0)
{
yanshi(10);
if(K1==0)
{
dig=number[1];
while((K1==0)&&(i<50))
{//40
yanshi(10);
i++;
}
i=0;
}
}
if(K2==0)
{
yanshi(10);
if(K2==0)//50
{
dig=number[2];
while((K2==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;
}
}//60
if(K3==0)
{
yanshi(10);
if(K3==0)
{
dig=number[3];
while((K3==0)&&(i<50))
{
yanshi(10);
i++;//70
}
i=0;
}
}
if(K4==0)
{
yanshi(10);
if(K4==0)
{
dig=number[4];//80
while((K4==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;
}
}
if(K5==0)
{//90
yanshi(10);
if(K5==0)
{
dig=number[5];
while((K5==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;//100
}
}
if(K6==0)
{
yanshi(10);
if(K6==0)
{
dig=number[6];
while((K6==0)&&(i<50))
{//110
yanshi(10);
i++;
}
i=0;
}
}
if(K7==0)
{
yanshi(10);
if(K7==0)//130
{
dig=number[7];
while((K7==0)&&(i<50))
{
yanshi(10);
i++;
}
i=0;
}
}//140
if(K8==0)
{
yanshi(10);
if(K8==0)
{
dig=number[8];
while((K8==0)&&(i<50))
{
yanshi(10);
i++;//150
}
i=0;
}
}
}

/**********************************
延时子程序
***********************************/
void yanshi(uint xms)//160
{
uint a,b;
for(a=xms;a>0;a--)
for(b=110;b>0;b--);
}
he_123456
2015-04-03 · TA获得超过2892个赞
知道大有可为答主
回答量:3162
采纳率:58%
帮助的人:1345万
展开全部
报一堆错不要怕,先搞定第一个错再rebuild, 也许很多后面的错就不存在了。

你先把下面这几行中
sbit K8=P0^7;
void anjian()
void yanshi(uint nms);
改为
sbit K8=P0^7;
void anjian(); // 这里漏了个分号
void yanshi(uint nms);
然后编译,报错的话,永远先找第一个错
追问
嗯,会加油的,谢谢
追答
一次次查,记住每次查第一个,
锻炼几回有经验了,找错变快,出错变少,就成为高手了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
单片机的战斗机
2015-04-03 · 超过31用户采纳过TA的回答
知道答主
回答量:445
采纳率:0%
帮助的人:93.3万
展开全部
加分号,还要对按键程序宏定义
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式