其他分享
首页 > 其他分享> > 【蓝桥杯单片机学习记录3】独立按键基础操作

【蓝桥杯单片机学习记录3】独立按键基础操作

作者:互联网

声明一下,我学单片机主要看的是小蜜蜂老师的课程,所以代码肯定会和老师讲的很类似,我现在还属于一个学习的过程,主要以模仿为主


今天写的是独立按键的代码

独立按键只用到S7、S6、S5和S4

下面是一段可以正常运行的代码

#include"reg52.h"

sbit S7=P3^0;//首先对按键和用到的LED灯进行位定义
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;

sbit L1=P0^0;
sbit L2=P0^1;
sbit L3=P0^2;
sbit L4=P0^3;
sbit L5=P0^4;
sbit L6=P0^5;

void HC573(unsigned char channel)
{
  switch(channel)
  {
    case 4:
	P2=(P2&0x1f)|0x80;
	break;
	case 5:
	P2=(P2&0x1f)|0xa0;
	break;
	case 6:
	P2=(P2&0x1f)|0xc0;
	break;
	case 7:
	P2=(P2&0x1f)|0xe0;
	break;
	}
}


void Delay(unsigned char t)
{
while(t--);
 }

void chushihua()//关闭蜂鸣器
{
HC138_C=1;
HC138_B=0;
HC138_A=1;
P0=0x00;
}



void scankey()
{
   if(S7==0)
   {
     Delay(100);//起到消抖的作用
     if(S7==0)//再次确认
     {
       L1=0;
       while(S7==1);
       L1=1;
     }
   }
   if(S6==0)
   {
     Delay(100);
     if(S6==0)
     {
       L2=0;
       while(S7==1);//受S7控制,S7按下的时候S6失效
       L2=1;
     }
   }
   if(S5==0)
   {
     Delay(100);
     if(S5==0)
     {
      L3=0;
      while(S7==1);
      L3=1;
     }
   }
   if(S4==0)
   {
     Delay(100);
     if(S4==0)
     {
      L4=0;
      while(S7==1);
      L4=1;
     }
   }
}

void main()
{  
       chushihua();
       HC573(4);//打开控制LED的锁存器
       while(1)
  {
   scankey();
  }
}

先简单分享这些哈,着急改论文呜呜

标签:P2,P0,void,S7,蓝桥,单片机,while,按键,sbit
来源: https://blog.csdn.net/silver321/article/details/122656411