51_按键_查询法

 

 /**********************51单片机学习例程************************
*  平台:Keil U4 + STC89C52
*  名称:按键控制左右流水灯实验
*  编写:Tony
*  日期:2022-2-6
*   QQ : 674749794
*  晶体:12MHZ
*	 变更记录:无
******************************************************************/
#include<reg51.h>
#include<intrins.h>	

#define GPIO_LED P1
sbit K1=P3^1;
void Delay10ms( );   //延时10ms

/*******************************************************************************
* 函 数 名         : main
* 函数功能		   : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void main(void)
{
	unsigned int i,j;
	j=0x01; //1111_1110
	
	while(1)
	{	
		GPIO_LED=j;	 
		if(K1==0)		//检测按键K1是否按下
		{
			Delay10ms();	//消除抖动
			if(K1==0)
			{
				j=_cror_(j,1);
				while((i<50)&&(K1==0))	 //检测按键是否松开
				{
					Delay10ms(1);
					i++;
				}
				i=0;
			}
		}		

	}				
}
/*******************************************************************************
* 函 数 名         : Delay10ms
* 函数功能		   : 延时函数,延时10ms
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Delay10ms(unsigned int c)   //误差 0us {     unsigned char a, b;       //--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//     for (;c>0;c--)     {         for (b=38;b>0;b--)         {             for (a=130;a>0;a--);         }              }       }

  

上一篇:CodeQL分析python代码4-python中的表达式和语句


下一篇:Java学习之路(一):什么是Java?[从入门到放弃]