ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

51_按键_查询法

2022-02-06 16:35:11  阅读:130  来源: 互联网

标签:-- void 51 unsigned 查询 K1 Delay10ms 按键


 

 /**********************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--);         }              }       }

  

标签:--,void,51,unsigned,查询,K1,Delay10ms,按键
来源: https://www.cnblogs.com/54programer/p/15865792.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有