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

📄 8led.c

📁 包括了4*4键盘程序及数码管显示程序
💻 C
字号:
#include <REG52.H>
#include<stdio.h>
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
sbit H1=P1^4;
sbit H2=P1^5;
sbit H3=P1^6;
sbit H4=P1^7;
sbit CS=P2^0;//使能端
unsigned char LED_Display[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~4
void KeyScan(void);//
void delay10ms(unsigned char time);
void display(unsigned char k);
unsigned char key,  temp;


void main(void) //主函数
{ while(1)
   { 
    CS=1;
    KeyScan();
   }
}


void KeyScan(void)//键盘扫描子程序
{ 
     P1=0xff;
     L1=0;
     temp=P1;//读取P1口的值
     temp&=0xf0;
     if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
         { 
		   delay10ms(1);
           switch(temp)
              { 
			    case 0x70:key=0;break;
                case 0xb0:key=1;break;
                case 0xd0:key=2;break;
			    case 0xe0:key=3;break;
			
				 }
                display(key);
           }

   P1=0xff;
   L2=0;
   temp=P1;//读取P1口的值
   temp&=0xf0;
   if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
      { 
	   delay10ms(1);
     switch(temp)
         { case 0x70: key=4;break;
		   case 0xb0: key=5;break;
		   case 0xd0: key=6;break;
		   case 0xe0: key=7; break;
		  
           } 
           display(key);
        }

 

  P1=0xff;
  L3=0;
  temp=P1;//读取P1口的值
  temp&=0xf0;
  if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
      { 
	    delay10ms(1);
     switch(temp)
           { case 0x70: key=8;break;
             case 0xb0: key=9;break;
             case 0xd0: key=10;break;
			 case 0xe0: key=11;break;
           }
           display(key);
        }

 

  P1=0xff;
  L4=0;
  temp=P1;//读取P1口的值
  temp&=0xf0;
  if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
      { 
	  
	      delay10ms(1);
          switch(temp)
           { case 0x70: key=12;break;
             case 0xb0: key=13;break;
             case 0xd0: key=14;break;
			 case 0xe0: key=15;break;
           }
           display(key);
        }

 }


//延时函数

void delay10ms(unsigned char time)
{
 unsigned int i;
 while(time--)
 {
   for(i=0;i<125;i++)
   {;}
   }

}

//LED显示
void display(unsigned char k)
 { P0=LED_Display[k]; //P0的8位接LED
  
  }

⌨️ 快捷键说明

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