mikro c5

   ใบรายงานผลการปฏิบัติงาน
Code

char readKeyboard()
{
 unsigned int i = 0;
 for(i=0;i<4;i++)
 {
  if(i == 0)
  PORTB = 1;
  else if(i == 1)
  PORTB = 2;
  else if(i == 2)
  PORTB = 4;
  else if(i == 3)
  PORTB = 8;

  if(PORTB.F4)
    return findKey(i,0);
  if(PORTB.F5)
   return findKey(i,1);
  if(PORTB.F6)
   return findKey(i,2);
  if(PORTB.F7)
   return findKey(i,3);
 }
 return ' ';
}
char findKey(unsigned short a, unsigned short b)
{
 if(b == 0)
 {
   if(a == 3)
    return '0';
   else if(a == 2)
    return '1';
   else if(a == 1)
    return '2';
   else if(a == 0)
    return '3';
 }
 else if(b == 1)
 {
   if(a == 3)
    return '4';
   else if(a == 2)
    return '5';
   else if(a == 1)
    return '6';
   else if(a == 0)
    return '7';
 }
 else if(b == 2)
 {
   if(a == 3)
    return '8';
   else if(a == 2)
    return '9';
   else if(a == 1)
    return 'A';
   else if(a == 0)
    return '-';
 }
 else if(b == 3)
 {
   if(a == 3)
    return 'C';
   else if(a == 2)
    return 'U';
   else if(a == 1)
    return 'E';
   else if(a == 0)
    return 'F';
 }
}

ภาพจำลองการทำงานด้วยโปรแกรม Proteus
อ้างอิง
https://electrosome.com/matrix-keypad-pic-microcontroller/

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

arduino กลับทางหมุนมอเตอร์

mikro c 1

arduino analog RGB