51单片机错误141,不知道错在那里,想请问一下
#include "regx52.h"
#include "T0_Chu.h"
unsigned int Timecount;
unsigned char IR[4];
unsigned char IR_add;
unsigned char IR_Flagrepeat;
unsigned char Command;
unsigned char Address;
unsigned char Data_Flag;
unsigned char Start;
#include "regx52.h"
unsigned int T;
void T0_Chu(void)
{
TMOD &=0xF0;
TMOD |=0x01;
TH0=0;
TL0=0;
TR0=1;
TF0=0;
ET0=1;
EA=1;
PT0=0;
}
void Time0_setcount(unsigned int m)
{
TL0 = m % 256;
TH0 = m / 256;
}
void Time0_run(unsigned char n)
{
TR0 = n;
}
unsigned int Time0_out(void)
{
T=(TH0<<8)|TL0;
return T;
}
unsigned char IR_Repeatcommand(void)
{
if (IR_Flagrepeat == 1)
{
IR_Flagrepeat = 0;
return 1;
}
return 0;
}
void INT0_init(void)
{
TR0 = 0;
IT0 = 1; IE0 = 0;
EX0 = 1; EA = 1; PX0 = 1;
}
void IR_init(void)
{
T0_Chu(void); INT0_init(void);
}
unsigned char IR_Datacommand(void)
{
if (Data_Flag == 1)
{
Data_Flag = 0;
return 1;
}
return 0;
}
unsigned char IR_address(void)
{
return Address;
}
unsigned char IR_command(void)
{
return Command;
}
void INT0_stop() interrupt 0
{
if(Start==0)
{
Time0_setcount(0); Time0_run(1); Start = 1;
}
else if (Start)
{
Timecount = Time0_out(void); Time0_setcount(0);
if (Timecount >= 13500 - 500 && Timecount <= 13500 + 500)
{
Start=2;
}
else if (Timecount >= 11250 - 500 && Timecount <= 11250 + 500)
{
Time0_run(0); Start = 0; IR_Flagrepeat = 1;
}
else
{
Start = 1;
}
}
else
{
Timecount = Time0_out(void);
Time0_setcount(0);
if (Timecount >= 1120 - 500 && Timecount <= 1120 + 500)
{
IR[IR_add / 8] &= ~(0x01 << (IR_add % 8));
IR_add++;
}
else if (Timecount >= 2250 - 500 && Timecount <= 2250 + 500)
{
IR[IR_add / 8] |= 0x01 << (IR_add % 8);
IR_add++;
}
else
{
IR_add = 0;
Start = 1;
}
if (IR_add >= 32)
{
IR_add = 0;
if(IR[0]==~IR[1] && IR[2]==~IR[3])
{
Data_Flag = 1;
Address = IR[0];
Command = IR[2];
}
Time0_run(0);
Start = 0;
}
}
}
如果函数没参数的话括号里面空即可无需这样(void)写,另外也无需写2个#include "regx52
【以下回答由 GPT 生成】
我很乐意帮助你解决问题。但是你并没有提供具体的问题,请提供一个具体的问题,我将尽力给出解决方案。
【相关推荐】