第三节 独立按键模块

article/2025/8/22 0:35:57

目录

一、独立按键介绍

二、C语言知识

1.C51数据运算 

2.C51基本语句

三、程序设计

1、独立按键控制LED灯 

2、独立按键控制LED状态

3、独立按键控制LED显示二进制

4、独立按键控制LED位移

一、独立按键介绍

  1. 轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。

 2、C51单片机的独立按键(左下角)

注意:

  1. 按键按下时低电平为0,没有按下时是高电平为1。
  2. K1P3_1口,K2P3_0口,顺序上是反过来的

3、电路原理图

        当按键K1按下时, K1为低电平。

3、按键消抖

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

如何解决按键抖动问题?

1)、软件:使用延迟函数延长20ms

2)、硬件:加一个电路来消抖,成本高,不建议使用。

二、C语言知识

1.C51数据运算 

 

(1)、算术运算

       5 / 2 = 2 ; 5 % 2 = 1。

(2)、逻辑运算

        &&:要所有条件为真才真,即一假全假。

        || : 有真则真。

        !: 用于对单个命题的真值进行取反操作

3)、位运算

(一)按位左移(<<)

         将一个数的各二进制位全部左移若干位,高位丢弃,低位补 0 。

       例如,a = 0000 0010(十进制 2 ),a << 1 后变为 0000 0100(十进制 4 )。

(二)按位右移(>>)

      运算规则:把一个数的各二进制位全部右移若干位,正数时,高位补 0;负数时,高位补 1 。

比如 a = 0000 0100,a >> 1 后变为0000 0010。

(三)按位与(&)

        运算规则:两个相应的二进制位都为 1 时,结果位才为 1 ,否则为 0。即 0&0 = 00&1 = 01&0 = 01&1 = 1 。

        例如 a = 0000 0101b = 0000 0110 ,a & b = 0000 0100 。

(四)按位或(|)

        运算规则:两个相应的二进制位只要有一个为 1 ,结果位就为 1 。即 0|0 = 00|1 = 11|0 = 11|1 = 1 。

        例如 a = 0000 0101b = 0000 0110 ,a | b = 0000 0111 。

(六)按位取反(~)

        运算规则:对一个数的所有二进制位取反,即 0 变 1 ,1 变 0 。

        例如 a = 0000 0101 ,~a = 1111 1010 。

2.C51基本语句

三、程序设计

1、独立按键控制LED灯 

#include<regx52.h>      
void main()
{while(1){if (P3_2==0){P2_0=0;    //press the key and turn on the LED}else{P2_0=1;}}

2、独立按键控制LED状态

1、设计延迟函数

 2、程序

#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){// 判断K3按键是否按下if (P3_2==0){Delay(20);  //按下前消抖while(P3_2==0); // 继续判断K3按键是否按下Delay(20); // 松开按键消抖P2_0 = ~P2_0;// 初始时,P2_0为高电平,取反后为低电平}}
}

3、独立按键控制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);xms--;}}void main()
{unsigned char LEDNum = 0;while(1){if (P3_2==0){Delay(20); while(P3_2==0); Delay(20); LEDNum++;P2 = ~LEDNum;}}
}

代码讲解: 

  • LEDNum=0时,P2=0xFF,所有 LED 灭(显示二进制11111111
  • LEDNum=1时,P2=0xFE,仅 D1 亮(显示二进制11111110
  • LEDNum=2时,P2=0xFD,仅 D2 亮(显示二进制11111101
  • 依此类推,直到LEDNum=255时,P2=0x00,所有 LED 亮(显示二进制00000000

4、独立按键控制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);xms--;}}unsigned char LEDNum;
void main()
{P2 = ~0x01;while(1){// ÅжÏK3°´¼üÊÇ·ñ°´ÏÂif (P3_2==0){Delay(20);  while(P3_2==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);}}}


http://www.hkcw.cn/article/TVRNViqDbG.shtml

相关文章

财管2 - 财务预测(内含增长率,可持续增长率)

1.内含增长率 概念&#xff1a;内含增长率是没有可动用的金融资产&#xff0c;且外部融资为零时的销售增长率。 计算方法&#xff1a;根据外部融资销售增长比的公式&#xff0c;令外部融资额占销售增长百分比为0&#xff0c;求销售增长率即可 a) 融资总需求 预计销售收入的…

Vue-列表渲染

列表渲染 指令&#xff1a; v-for语法&#xff1a;v-for"(item,index) in list" :key"index":key : 强烈建议使用数据中唯一标识&#xff0c;避免数据乱序后渲染差错问题 数组 数据 persons:[{id:001,name:刘德华,age:18},{id:002,name:张学友,age:18}…

Browser-Use实践

构建一个包含 3 轮对话的上下文&#xff0c;调用 API 获取最终回复 and 发送一张图片并获取描述。 自行探索&#xff0c;并使用 Browser-use Web-UI 自带的录制功能&#xff0c;将书生大模型操作浏览器过程录制下来&#xff0c;放到作业中。 安装虚拟环境 conda create -n I…

何小鹏谈智能辅助驾驶技术路线 选择强大大脑

小鹏汽车在辅助驾驶技术路线上已经放弃了激光雷达,转而采用视觉融合方案,但仍然保留了毫米波雷达和超声波雷达。小鹏汽车董事长何小鹏在接受采访时对此进行了说明,他表示:“拥有聪明的眼睛好呢还是一个更强大的大脑更好?我们选择了更强大的大脑。”友商们选择了不同的技术…

Flutte ListView 列表组件

目录 1、垂直列表 1.1 实现用户中心的垂直列表 2、垂直图文列表 2.1 动态配置列表 2.2 for循环生成一个动态列表 2.3 ListView.builder配置列表 列表布局是我们项目开发中最常用的一种布局方式。Flutter中我们可以通过ListView来定义列表项&#xff0c;支持垂直和水平方向展示…

53岁男子诱骗近百名中小学女生,手机藏满未成年人隐私视频

丧心病狂!53岁男子诱骗近百名中小学女生,手机藏满未成年人隐私视频!5月29日,江苏省人民检察院召开新闻发布会,介绍近年来加强未成年人网络司法保护的工作情况及典型案例。如皋市检察院副检察长卢海琴介绍了其中一例典型案例,该案,检察院通过深挖彻查,案件从1名被告人追…

大连梅花鹿遭野狗追逐坠落死亡 流浪狗威胁野生动物安全

大连梅花鹿遭野狗追逐坠落死亡 流浪狗威胁野生动物安全!近日,有网友反映辽宁大连出现多起梅花鹿被流浪狗撕咬致死的情况。据大连野境自然保护中心透露,这类事件已持续一段时间,最近的一起发生在5月27日凌晨。当时一只母鹿在被狗群追逐时从土墙上坠落摔伤,全身多处撕咬伤,…

sourcetree无法获取远程所有的tag

2025年5月29日11:30:17 sourcetree widnwos v3.4.23版本 突然发现线上的代码库里有很多新打的tag&#xff0c;但是sourcetree死活无法拉去所有的tag&#xff0c;尝试卸载重新安装也不行&#xff0c;全网也找了还是不知道&#xff0c;但是mac版本好像没有这个问题 方法1&…

高性能DeepSeek V3上线星辰MaaS平台,更快、更稳定

以DeepSeek模型为代表的MoE技术路线&#xff0c;正不断突破通用大模型的效果上限。其创新的PD优化与大EP推理方案&#xff0c;推动大模型迈向“高性能、低成本、强普惠”的新阶段。 事实上&#xff0c;早在1991年&#xff0c;两位人工智能界的泰斗Michael Jordan与Geoffrey Hin…

github双重验证密码忘记或者获取不了了怎么办

背景 近期由于换了新手机&#xff0c;之前配置好的Authenticator这个App无法使用&#xff0c;导致获取不到二次验证的Authenticator code&#xff0c;登陆不上GitHub&#xff0c;不知道有没有人和我遇到同样的问题&#xff1f; 当我们配置2FA双重验证后&#xff0c;每次登陆gi…

Spring框架学习day4--Spring集成Mybatis(IOC)

Spring集成Mybatis1.添加jar包&#xff08;pom.xml&#xff09;2.配置sqlSessionFactiory&#xff08;spring.xml)3.再service类中注入Dao代理接口4.测试类5文件结构 Spring集成Mybatis Spring集成Mybatis其核心是将SqlSessionFactory交由Spring管理&#xff0c;并由 Spring管理…

Nexus仓库数据高可用备份与恢复方案(上)

#作者&#xff1a;闫乾苓 文章目录 1、要解决的问题2、解决方案方案说明 3、方案验证部署nexus pvc部署nexus deployment部署nexus svc查看部署状态访问UI页面创建基于minio 的Blob Store 库准备测试数据 1、要解决的问题 Nexus使用容器化部署并使用NFS或者HostPath作为数据持…

今天北京最高气温32℃,午后阵风明显 出行注意防暑防风

今天白天多云,北风一级转南风三级,阵风六级,最高气温32℃;夜间多云,南转北风一二级,最低气温22℃。今天云量增多,气温仍较高,午后阵风明显,出行注意防暑防风勤补水。温红征 摄责任编辑:0882

工具识别系统Python+深度学习+人工智能+卷积神经网络算法+TensorFlow+图像识别

一、介绍 工具识别系统&#xff0c;使用Python作为主要编程语言&#xff0c;基于TensorFlow搭建卷积神经网络算法&#xff0c;通过收集了8种常见的日常工具图片&#xff08;“汽油罐&#xff08;Gasoline Can&#xff09;”, “锤子&#xff08;Hammer&#xff09;”, “钳子&…

歌手终于炒出新菜了!

歌手终于炒出新菜了!《歌手2025》迎来了一位新面孔,原创歌手兼音乐剧演员湛嘉丽。她凭借代表作《海鸥》展现了不俗的实力,网友们对这位新人充满期待,并评论说:“歌手终于炒出新菜了。”今年的《歌手》节目给了音乐剧很大的舞台,不仅打破了以往依赖“回锅肉”的模式,还注…

机器学习-线性回归基础

一、什么是回归 依据输入x写出一个目标值y的计算方程&#xff0c;求回归系数的过程就叫回归。简言之&#xff1a;根据题意列出方程&#xff0c;求出系数的过程就叫做回归。 回归的目的是预测数值型的目标值y&#xff0c;分类的目的预测标称型的目标值y。 二、线性回归 2.1线性…

什么是MSBC

mSBC&#xff08;Modified SubBand Coding&#xff09;是蓝牙协议中用于语音通话的一种音频编码格式&#xff0c;专为HFP/HSP&#xff08;蓝牙免提/耳机规范&#xff09;设计。它是对SBC&#xff08;SubBand Coding&#xff09;的改进版本&#xff0c;核心目标是在有限带宽下保…

2024长春全国邀请赛CCPC

文章目录 G - Platform GameI - The Easiest ProblemL - Recharge G - Platform Game 题目来源&#xff1a;G - Platform Game 解题思路 可以先对每个平台的高度从大到小排序&#xff0c;高度相同再根据横坐标从左往右排序&#xff0c;依次遍历每个平台&#xff0c;如果高…

王树森推荐系统公开课 排序06:粗排模型

shared bottom 表示神经网络被所有特征共享。精排模型主要开销在神经网络&#xff0c;神经网络很大且很复杂。 每做一次推荐&#xff0c;用户塔只做一次推理。物品塔存放入向量数据库。 后期融合模型常用于召回&#xff0c;前期融合模型常用于精排。 物品塔短时间内比较稳…

中国车企经营状况几何 高负债背后的研发投入

近日,“车圈恒大”这一话题在舆论界引起广泛关注,资本市场因此出现连续震荡,汽车股集体下跌。恒大的问题主要在于其“高负债、高周转、高风险”的扩张模式,最终导致资金链断裂。汽车行业是否存在类似现象?这种论调能否作为行业洞察?从可收集到的上市整车公司公开财务数据…