Trích:
Nguyên văn bởi kiemkhach10
với cách mắc này thì cách bắt phím như thế nào nhỉ các bác?( bắt các phím đơn và bắt nhiều phím một lúc)
cám ơn các bác!
|
Mình viết lại đoạn code lấy từ trang chaokhun và có chỉnh sửa một chút nhé

Nếu bạn sử dụng thì chỉnh sửa lại cho phù hợp (ở đây mình chỉ viết dưới dạng thuật toán)
Code:
key[]=-1//xoa mang key[] ve -1
for(i=0;i<4;i++) /* 4-DIGIT scanning */
{
position = digit;
bus_led = buffer[i];//data_led
delay_ms(5)
bus_led = off;
/*phan lay ma phim*/
if (RB5==1)
key[i] = 1; //cac phim dc bam se dc set len 1 trong mang key
digit<<=1;
}
if (key[] != -1)//kiem tra mang key[i], co cai nao khac -1 thi thuc hien
{
if(flag1== 0)
{
flag1=1;
delay = 50;//thiet lap thoi gian delay phim
for(i=0;i<4;i++)
{
switch(key[i])
{
case (0): /* key position 0*/
break;
case (1): /* key position 1*/
break;
case (2): /* key position 2*/
break;
case (3): /* key position 3*/
break;
}
}
}
}
if (flag1 !=0)//sau khi bam nut thi delay phim
{
delay--;
if(delay==0)flag1=0;
}
tham khảo
http://www.kmitl.ac.th/~kswichit/clock/clock.htm