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

📄 keyscan.c

📁 PIC单片机上的键盘扫描
💻 C
字号:
#include<pic.h>

#define uint unsigned int
#define uchar unsigned char

//uchar keyscan(void)

const	uchar	Led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};


uchar temp;

void delay(uchar a)    //8+3*(a-1)
{
  uchar b;
  b = a;
  while(b--);
}

void rb_initial(void)
{
  TRISB = 0XF0;
  OPTION = 0X00;//启动RB弱上啦RBPU\
}

void rd_initial(void)
{
  TRISD = 0X00;
}

/*void delay(void)
{
  uchar i;
 for(i=50;i--;)
{;}
}*/

uchar keyscan(void)
{
 PORTB = 0XFE;
      if(RB4 == 0)delay(30);if(RB4 == 0) temp = 1;
      if(RB5 == 0)delay(30);if(RB5 == 0) temp = 2;
      if(RB6 == 0)delay(30);if(RB6 == 0) temp = 3;
      if(RB7 == 0)delay(30);if(RB7 == 0) temp = 4;
 PORTB = 0XFD;
      if(RB4 == 0)delay(30);if(RB4 == 0) temp = 5;
      if(RB5 == 0)delay(30);if(RB5 == 0) temp = 6;
      if(RB6 == 0)delay(30);if(RB6 == 0) temp = 7;
      if(RB7 == 0)delay(30);if(RB7 == 0) temp = 8;
 PORTB = 0XFB;
      if(RB4 == 0)delay(30);if(RB4 == 0) temp = 9;
      if(RB5 == 0)delay(30);if(RB5 == 0) temp = 10;
      if(RB6 == 0)delay(30);if(RB6 == 0) temp = 11;
      if(RB7 == 0)delay(30);if(RB7 == 0) temp = 12;
 PORTB = 0XF7;
      if(RB4 == 0)delay(30);if(RB4 == 0) temp = 13;
      if(RB5 == 0)delay(30);if(RB5 == 0) temp = 14;
      if(RB6 == 0)delay(30);if(RB6 == 0) temp = 15;
      if(RB7 == 0)delay(30);if(RB7 == 0) temp = 16; 
 return(temp);

} 


main()
{
 uchar TEMP;
  rb_initial();
  rd_initial();
  while(1)
   {
     keyscan();
     PORTD = Led[temp] ;
    }
}

⌨️ 快捷键说明

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