unsigned char bdata keyword;
unsigned char bdata keyboard;
sbit keyword0=keyword^0;
sbit keyword1=keyword^1;
sbit keyword2=keyword^2;
sbit keyword3=keyword^3;
sbit keyword4=keyword^4;
void coms() interrupt 1
{ TH0=0xf8;
TL0=30;
SBUF=tb[a[count]];
p2_4=count0;
p0_6=count1;
p0_5=count2;
while(TI) {
TI=0; }
if(count <7)count++;
else count=0;
}
void sinit(void)
{SCON=0;
TMOD=1;
TH0=0x80;
TL0=0x20;
TR0=1;
EA=1;
ET0=1;
TI=0;
}
void keyinit(void)
{PinScanKey1=1;
PinScanKey2=1;
PinScanKey3=1;
PinScanKey4=1;
PinScanKey5=1;
}
void delay(short i)
{
int k=0;
k=i*DELAY_value;
while(k--);
}
unsigned char test(unsigned char bdata keyword,unsigned char data j)
{ keyword0=PinScanKey1;
keyword1=PinScanKey2;
keyword2=PinScanKey3;
keyword3=PinScanKey4;
keyword4=PinScanKey5;
keyboard=~keyword;
keyboard=keyboard&0x1f;
if(keyboard==j)
{delay(DELAY_value);
keyboard=~keyword;
keyboard=keyboard&0x1f;
if(keyboard==j)
{delay(DELAY_value);
keyboard=~keyword;
keyboard=keyboard&0x1f;
if(keyboard==j)
return(j);
}
}
}
unsigned char keyscan(unsigned char bdata keyword)
{
if(test(keyword,0x00)==0x00)
return 0;
if(test(keyword,0x01)==0x01)
return 1;
if(test(keyword,0x02)==0x02)
return 2;
if(test(keyword,0x04)==0x04)
return 3;
if(test(keyword,0x08)==0x08)
return 4;
if(test(keyword,0x10)==0x10)
return 5;
if(test(keyword,0x03)==0x03)
return 6;
if(test(keyword,0x05)==0x05)
return 7;
}
void main(void)
{
sinit();
do
{keyinit();
a[7]=keyscan();
}while(1);
}
该程序是按键,并在数码管显示出来,共有7种情况,1,2,3,4,5,1与2同时,1与3同时按下,分别要求返回1,2,3,4,5,6,7。
编译时出现以下问题,请问是何原因,如何修改。
warning c258 in line 72 of 该文件 :'keyword':mspace on parameter ignored
error c185 in line 72 of 该文件 :'j':different memory space
急,希望能够得到答复。