当前位置: 首页 > news >正文

江科大51单片机学习笔记(2)

独立按键

在这里插入图片描述

轻触按键:相当于是一种电子开关,按下开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。
在这里插入图片描述
在这里插入图片描述
K1按键——P31
K2按键——P30
K3按键——P32
K4按键——P33

独立按键控制LED亮灭
#include <REGX52.H>

void main()
{

	
	while(1)
	{
			if(P3_1==0)
			{
				P2_0=0;
			}
			else
			{
			P2_0=1;
			}
	}
}

独立按键控制状态
#include <REGX52.H>

	void Delay(unsigned int xms)		//@12.000MHz
{
	unsigned char i, j;
	while(xms)
	{
			i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
		xms--;
	}

}




void main()
{	
	while(1)
	{
			if(P3_1==0)
			{
				Delay(20);
				while(P3_1==0);
				Delay(20);
				
				P2_0=~P2_0;
			}
	}	

}
独立按键控制LED显示二进制
#include <REGX52.H>

void Delay(unsigned int xms)		//@12.000MHz
{
	unsigned char i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}
	



void main()
{
	unsigned char LEDNum=0;
	while(1)
	{
		if(P3_1==0)
		
		{
			Delay(20);
			while(P3_1==0);
			Delay(20);
			 LEDNum++;
			P2=~LEDNum;
			
		}
	}
	

}

独立按键控制LED移位
#include <REGX52.H>
void Delay(unsigned int xms);

unsigned char LEDNum;


void main()
{	P2=~0x01;
	while(1)
	{
			if(P3_1==0)
			{
				Delay(20);
				while(P3_1==0);
				Delay(20);
				
				
				 LEDNum++;
				if( LEDNum>=8)
					 LEDNum=0;
				P2=~(0x01<< LEDNum);
			}
			if(P3_0==0)
			{
				Delay (20);
				while(P3_0==0);
				Delay (20);
				
				
				if( LEDNum==0)
					LEDNum=7;
				else
					LEDNum--;
				P2=~(0x01<< LEDNum);
				
				
			}
	}


}


void Delay(unsigned int xms)		//@12.000MHz
{
	unsigned char i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

在这里插入图片描述
在这里插入图片描述

按键的抖动

对于机械开关,当机械触点断开、闭合时,由于机械触电的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的都抖动。
在这里插入图片描述

相关文章:

  • 在Linux中Redis不支持lua脚本的处理方法
  • 基于 GEE 计算研究区年均地表温度数据
  • 通过C或C++编程语言实现某一个或多个具体算法
  • AI大模型(DeepSeek)科研应用、论文写作、数据分析与AI绘图学习
  • Winform禁止高分辨下缩放布局成功方法
  • 08模拟法 + 技巧 + 数学 + 缓存(D2_技巧)
  • 运用Deek Seeker协助数据分析
  • GitCode 助力 Dora SSR:开启游戏开发新征程
  • 对PosWiseFFN的改进: MoE、PKM、UltraMem
  • RocketMQ与kafka如何解决消息积压问题?
  • 网络性能测试工具ipref
  • 深入探索现代CSS:从基础到未来趋势
  • 防火墙是什么?详解网络安全的关键守护者
  • 【Abnormal build process termination: xxx, Unrecognized option: --add-opens】
  • 【SVN基础】
  • 使用 Flask 构建流式返回服务
  • 处理项目中存在多个版本的jsqlparser依赖
  • http 与 https 的区别?
  • 网络安全要学python 、爬虫吗
  • 浅谈无人机群技术的作战应用与战略意义
  • wordpress程序不能升级/seo短期课程
  • 浙江坤宇建设有限公司网站/公众号推广
  • 网站关键词标签/seo优化服务公司
  • bl做视频网站/南宁seo外包服务
  • 企业自己做网站/推广哪个平台好
  • 在政务网站建设与管理上的讲话/整合营销传播方案案例