Em đang có 1 ma trận phím 3*4. Quét được từng phím rồi. Khi nhấn 1 trong 12 phím thí nó cho 1 giá trị phím là giatriphim từ 0 đến 11 khi nhấn trong 12 nút nhấn đó.
Bây giờ em muốn nhập từ ma trận phím số 235 chả hạn tức là sau 3 lần nhấn phím thì được số này. Em không bit thuật toán của nó thế nào? viết hoài mà không được!
ở đây alarm là giá trị 253 em cần nhập hay 3 số khác.
Bây giờ em muốn nhập từ ma trận phím số 235 chả hạn tức là sau 3 lần nhấn phím thì được số này. Em không bit thuật toán của nó thế nào? viết hoài mà không được!
Code:
unsigned char quethang[3]={0xff7f,0xffbf,0xdf};
unsigned int x,y;
unsigned char a[100],phim,n;
unsigned int alarm;
void Scanmatrix()
{
for(x=0;x<3;x++)
{
Delay_ms(1);
LATB=quethang[x];
for(y=0;y<50;y++)
{
if(!cot1)
{
phim=4*x;
//while(!cot1)
a[n++]=phim;
}
if(!cot2)
{
phim=1+4*x;
// while(!cot2)
a[n++]=phim;
}
if(!cot3)
{
phim=2+4*x;
// while(!cot3)
a[n++]=phim;
}
if(!cot4)
{
phim=3+4*x;
//while(!cot4)
a[n++]=phim;
}
}
}
}
void inport_matrix()
{
if(n==1) alarm=a[1];
else if(n==2) alarm = a[1]*10+a[2];
else if(n==3) n=0;
LCD_Position(2,10);
LCD_WriteNumber(alarm);
LCD_Position(2,13);
LCD_WriteNumber(phim);
LCD_Position(2,15);
LCD_WriteNumber(n);
}

Comment