⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kbdio.c

📁 本程序是基于PIC24的Calculator程序,其实现Calculator多个功能,具体自己体会,这程序旨在让大家熟悉PIC24的编程问题.
💻 C
字号:
/*********************************************************************
**********************************************************************
*****                                                             ****
*****         L A B C E N T E R    E L E C T R O N I C S          ****
*****                                                             ****
*****                  PIC 24FJ64GA006 Keypad Scanner             ****
*****                                                             ****
**********************************************************************
*********************************************************************/

// Rows are connected to Port B 
// Columns are connected to Port D with external pull-up resistors.

#include "p24FJ64GA006.h"
#include "calc.h"

CHAR keycodes[16] = {'7','8','9','/','4','5','6','*','1','2','3','-','.','0','=','+'};

CHAR keypadread()
// Find a key, wait for it to be released and return.
 { CHAR key = scankeypad();
   if (key)
      while (scankeypad() != 0)
         /* Nothing */  ;  
   return key;
 } 

CHAR scankeypad()
// Scan the keypad for a keypress.
// Return 0 for no press or the char pressed.
 { INT8 row,col,tmp;
   CHAR key=0;
	INT wait;


   // Initialise Port Dfor input, and PORTC for output   
   TRISG = 0xFFFF;
   TRISD = 0x0000;
   TRISB = 0;

   for (row=0; row < KEYP_NUM_ROWS; row++)
    { // Drive appropriate row low and read columns:
      PORTD = (~(1 << row)) & 0xFF;
      for (wait=0; wait<100; ++wait)
         ;
      tmp = (PORTG & G_MASK) >> G_SHIFT;
    
      // See if any column is active (low):
      for (col=0; col<KEYP_NUM_COLS; ++col)
         if ((tmp & (1<<col)) == 0)
          { INT idx = (row*KEYP_NUM_COLS) + col;
            key = keycodes[idx]; 
            PORTB = idx;
            goto DONE;
          }

    }
   DONE:

   // Disable Port Drive and return.
   PORTD = 0x00FF;
   TRISD = 0x00FF;
   return key;
 }



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -