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--);
} 展开
#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--);
} 展开
3个回答
展开全部
程序功能能否实现你自己验证,先把错误给你改了,已编译通过。
#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--);
}
#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--);
}
展开全部
报一堆错不要怕,先搞定第一个错再rebuild, 也许很多后面的错就不存在了。
你先把下面这几行中
sbit K8=P0^7;
void anjian()
void yanshi(uint nms);
改为
sbit K8=P0^7;
void anjian(); // 这里漏了个分号
void yanshi(uint nms);
然后编译,报错的话,永远先找第一个错
你先把下面这几行中
sbit K8=P0^7;
void anjian()
void yanshi(uint nms);
改为
sbit K8=P0^7;
void anjian(); // 这里漏了个分号
void yanshi(uint nms);
然后编译,报错的话,永远先找第一个错
追问
嗯,会加油的,谢谢
追答
一次次查,记住每次查第一个,
锻炼几回有经验了,找错变快,出错变少,就成为高手了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加分号,还要对按键程序宏定义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询