em đang mắc một chỗ trong khi lập trình để làm thuật toán trên, vd em muốn nhập số 12, 13, 14 lần lượt tại các vị trí 0xc0, 0xc3, 0xc6 . CODE em viết đã nhập được một số nhưng thử nhập nhiều số mà mãi chua được , mong các bác chỉ giáo , code dưới đây em viết cho Keypad Phone trong Proteus :
unsigned char ma[4]={0xF7,0xFB,0xFD,0xFE};
// ham quet ban fim
int quet(void)
{
unsigned char x,y;
//Quet 4 hang phim
for(x=0; x<4;x++)
{
P1=ma[x]; // Dua lan luot cac hang xuong 0
for(y=0;y<100;y++)// Kiem tra solanquetphim lan
{
if(P1_4==0) value_ph=1+3*x; // Gia tri phim tuong ung
if(P1_5==0) value_ph=2+3*x; // Tuy thuoc vao hang x
if(P1_6==0) value_ph=3+3*x; //
}
}
return(value_ph);
}
// main
while (1)
{
khoitao();// khoi tao cho lcd
n=quet();
dk(0xc0); // hien thi so duoc nhan tai vi tri C0, dk la ham thuc hien 1 lenh tren LCD
ht(48+n); // ht là ham hien thi 1 ky tu len lcd
dk(0x0c); // bat hien thi , tat con tro
}
nhu tren là nhạp duoc mot so roi day , vậy mà em thử làm nhập theo yc mà không được , mong các bác chỉ giáo , bác nào giúp được thì pót len cả code giúp với nhé . Thuật toán này chắc cũng không khó với các bác mà . thanks
unsigned char ma[4]={0xF7,0xFB,0xFD,0xFE};
// ham quet ban fim
int quet(void)
{
unsigned char x,y;
//Quet 4 hang phim
for(x=0; x<4;x++)
{
P1=ma[x]; // Dua lan luot cac hang xuong 0
for(y=0;y<100;y++)// Kiem tra solanquetphim lan
{
if(P1_4==0) value_ph=1+3*x; // Gia tri phim tuong ung
if(P1_5==0) value_ph=2+3*x; // Tuy thuoc vao hang x
if(P1_6==0) value_ph=3+3*x; //
}
}
return(value_ph);
}
// main
while (1)
{
khoitao();// khoi tao cho lcd
n=quet();
dk(0xc0); // hien thi so duoc nhan tai vi tri C0, dk la ham thuc hien 1 lenh tren LCD
ht(48+n); // ht là ham hien thi 1 ky tu len lcd
dk(0x0c); // bat hien thi , tat con tro
}
nhu tren là nhạp duoc mot so roi day , vậy mà em thử làm nhập theo yc mà không được , mong các bác chỉ giáo , bác nào giúp được thì pót len cả code giúp với nhé . Thuật toán này chắc cũng không khó với các bác mà . thanks