سلام من برنامه صفحه کلید رو در codevision نوشتم کلیدها رو نشون میده ولی بدون زدن دکمه هم بعضی کلید ها رو نشون میده کسی میتونه راهنمایی کنه؟
int find(){
temp=PINA;
if((temp&0x1)==0)
return 0;
if((temp&0x2)==0)
return 1;
if((temp&0x4)==0)
return 2;
if((temp&0x8)==0)
return 3;
return -1;
}
void main(void)
{
while (1)
{
lcd_clear();
PORTA.4=PORTA.5=PORTA.6=0;
do{
while((PINA&0x0f)==0x0f);
delay_ms(5);
}while((PINA&0x0f)==0x0f);
PORTA.5=PORTA.6=1;
col=0;
row=find();
if(row!=-1)
lcd_putchar(lookup[row][col]);
else{
PORTA.4=PORTA.6=1;
PORTA.5=0;
col++;
row=find();
if(row!=-1)
lcd_putchar(lookup[row][col]);
else{
PORTA.4=PORTA.5=1;
PORTA.6=0;
col++;
row=find();
if(row!=-1)
lcd_putchar(lookup[row][col]);
}
}
};
}
int find(){
temp=PINA;
if((temp&0x1)==0)
return 0;
if((temp&0x2)==0)
return 1;
if((temp&0x4)==0)
return 2;
if((temp&0x8)==0)
return 3;
return -1;
}
void main(void)
{
while (1)
{
lcd_clear();
PORTA.4=PORTA.5=PORTA.6=0;
do{
while((PINA&0x0f)==0x0f);
delay_ms(5);
}while((PINA&0x0f)==0x0f);
PORTA.5=PORTA.6=1;
col=0;
row=find();
if(row!=-1)
lcd_putchar(lookup[row][col]);
else{
PORTA.4=PORTA.6=1;
PORTA.5=0;
col++;
row=find();
if(row!=-1)
lcd_putchar(lookup[row][col]);
else{
PORTA.4=PORTA.5=1;
PORTA.6=0;
col++;
row=find();
if(row!=-1)
lcd_putchar(lookup[row][col]);
}
}
};
}
دیدگاه