这个bug怎么回事?求指教

qq_42696844 2018-11-23 05:14:47


void Display()
{

char h,l;

h=Time_EW/10;
l=Time_EW%10;
P2=table[l];
EW_LED2=0;
Delay(2);
EW_LED2=1;
P2=table[h];
EW_LED1=0;
Delay(2);
EW_LED1=1;



h=Time_SN/10;
l=Time_SN%10;
P2=table[l];
SN_LED2=0;
Delay(2);
SN_LED2=1;
P2=table[h];
SN_LED1=0;
Delay(2);
SN_LED1=1;



if(Special_Btton==0) //?????,???10S
{
uchar i;
for(i=0;i<50;i++) //??50?
{Flag_SN_Yellow=0;
Flag_EW_Yellow=0;
P1=0xEE;
Delay(200); //??200ms

}
}
}
/**********************??0??????************************/

void EXINT0(void)interrupt 0 using 1
{
EX0=0; //???
if(Reduces_Button==0) //???
{
EW1-=5;
SN1-=5;
if(EW1<=25)
{
EW1=25;
SN1=15;
}
}
EX0=1;//???
}
/**********************??1??????************************/

void EXINT1(void)interrupt 2 using 1
{
EX1=0; //???
if(Add_Button==0) //???
{
EW1+=5;
SN1+=5;
if(EW1>=45)
{
EW1=45;
SN1=35;
}
}

EX1=1;//???
}
/**********************T0??????*******************/
void timer0(void)interrupt 1 using 1
{
static uchar count;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==10)
{
if(Flag_SN_Yellow==1) //?????????
{SN_Yellow=~SN_Yellow;}
if(Flag_EW_Yellow==1) //?????????
{EW_Yellow=~EW_Yellow;}
}

if(count==20)
{
Time_EW--;
Time_SN--;
if(Flag_SN_Yellow==1)//?????????
{SN_Yellow=~SN_Yellow;}
if(Flag_EW_Yellow==1)//?????????
{EW_Yellow=~EW_Yellow;}
count=0;
}
}
???,??????,???????????s1-s7??
/*********************?????**********************/
void main(void)
{
IT0=1; //INT0?????
IT1=1; //INT1?????
TMOD=0x01; //????????1
TH0=(65536-50000)/256;//??????50ms
TL0=(65536-50000)%256;
EA=1; //CPU??????
ET0=1;//?????
EX0=1;//???INTO??
EX1=1;//???INT1??
TR0=1;//????
Flag_SN_Yellow=0; //SN???????
Flag_EW_Yellow=0; //EW???????
Time_EW=TZ;
Time_SN=TZ;
P1=0xFF;
while(Time_SN>=0)
{
EW_Red=0; //???3S 0xEE
SN_Red=0;
Display();
}
while(1)
{ /*******S0??**********/
Flag_EW_Yellow=0; //EW???????
Time_EW=EW1;
Time_SN=SN1;

while(Time_SN>=0)
{P1=S[0]; //SN??,EW?? 0xBE
Display();}



/*******S1??**********/
/*P1=0xFF;
while(Time_SN>=0)
{Flag_SN_Yellow=1; //SN??????
EW_Red=0; //SN???,??????,EW?? 0xDE
Display();}


/*******S2??**********/
Flag_SN_Yellow=0; //SN???????
Time_SN=SNL;
while(Time_SN>=3)
{P1=S[2];//SN??????????,EW?? 0x3E
Display();}



/*******S3??**********/
P1=0xFF;
while(Time_SN>=0)
{Flag_SN_Yellow=1;//SN??????
EW_Red=0; //SN???,??????,EW?? 0xDE
Display();}


/***********??**********/
EW=EW1;
SN=SN1;
EWL=EWL1;
SNL=SNL1;


/*******S4??**********/
Flag_SN_Yellow=0; //SN???????
Time_EW=SN;
Time_SN=EW;
while(Time_EW>=0)
{P1=S[4]; //EW??,SN?? 0xEB
Display();}

/*******S5??**********/
/*P1=0XFF;
while(Time_EW>=0)
{Flag_EW_Yellow=1;//EW??????
SN_Red=0;//EW???,??????,SN?? 0xED
Display();}

/*******S6??**********/
Flag_EW_Yellow=0;//EW??????? 0xE3
Time_EW=EWL;
while(Time_EW>=3)
{P1=S[6];//EW?????,SN??
Display();}


/*******S7??**********/
P1=0xFF;
while(Time_EW>=0)
{Flag_EW_Yellow=1; //EN??????
SN_Red=0;//EW???,??????,SN?? 0xE7
Display();}

/***********??**********/
EW=EW1;
SN=SN1;
EWL=EWL1;
SNL=SNL1;
}
}
...全文
707 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kavin Huang 2018-12-03
  • 打赏
  • 举报
回复
不是bug,这是错误提示,错误为变量未定义,变量如果在工程里的其他c文件里定义了的话需要用extern来进行外部变量声明。 代码我比较懒没细看哈,Keil的话我一般会Ctrl+F在整个工程里搜索看看。
今夕昨夕 2018-11-29
  • 打赏
  • 举报
回复
你的这几个变量没有定义对,我看你在很多函数中都有用这几个变量,但是却没有看到你在哪里定义了这几个变量,你可以把这几个变量定义为全局变量,但是在其他.c文本中想用这几个变量要使用external把这几个变量扩展过来才能用。
大苟姬 2018-11-27
  • 打赏
  • 举报
回复
引用 4 楼 mc_li的回复:
P2是没有包含头文件件 在开头加个#include< reg21.h>
其余是没有定义需要具体看硬件连接
再具体定义就行了
#define Time_EW XXX
#define LED_EN XXX
你这是定义常量吧,这出错的是变量
我有一个idea 2018-11-27
  • 打赏
  • 举报
回复
这个问题在于DAC输出前状态是高电平或者低电平,在DAC工作时,有个电平的跳变就有这个问题。可以隔
fly 100% 2018-11-26
  • 打赏
  • 举报
回复
include 路径不完整,搜到包含的加进去就好了
ruan1978 2018-11-26
  • 打赏
  • 举报
回复
头文件路径问题,你查下这些函数在哪个头文件?
mc_li 2018-11-25
  • 打赏
  • 举报
回复
P2是没有包含头文件件 在开头加个#include< reg21.h>
其余是没有定义需要具体看硬件连接
再具体定义就行了
#define Time_EW XXX
#define LED_EN XXX
qq_25853405 2018-11-24
  • 打赏
  • 举报
回复
这个问题在于DAC输出前状态是高电平或者低电平,在DAC工作时,有个电平的跳变就有这个问题。可以隔直流试试。
qq_25853405 2018-11-24
  • 打赏
  • 举报
回复
这个问题在于DAC输出前状态是高电平或者低电平,在DAC工作时,有个电平的跳变就有这个问题。可以隔直流试试。
dceacho 2018-11-23
  • 打赏
  • 举报
回复
这是错误,不是BUG 缺少reg51.h之类的头文件,导致编译器不认识那几个东西,你前面加上 #include <reg51.h> 或者其他什么头文件

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧