51单片机入门(三)

目录:

1.独立按键控制LED灯亮灭

2.独立按键控制LED状态

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

4.独立按键控制LED移位

1.独立按键控制LED灯亮灭

器件:

可以单独控制一位,不用写八位的方式了

写寄存器,会把这个状态送到lo口 ,如果lo口产生的电平,也会把电平的数据送回给寄存器,直接读寄存器

第一个程序的功能,通过按独立按键的第一个键实现led灯的亮灭:按下灯点亮,松手熄灭

k1和k2同时按才会亮

按位左移

按位右移

按位与、按位或:

按位异或:一样就是0,不一样就是1

按位取反:

2.独立按键控制LED状态

实现按键取反:按下的一瞬间会有抖动,会产生干扰

消斗:两种解决办法

1.硬件的消斗,加一个电路,里面经过触发器等等,把抖动进行过滤

2.通过软件,当按下按键的时候,延迟20毫秒,松开按键的时候,也延迟20毫秒

验证一下是否延迟闪烁:

就实现,按下没反应,松手亮了,再按下没反应,松手灭了

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

定义一个变量:

unsigned char 无符号的字符型,是8位的二进制数据,正好跟p2口和其他的寄存器都是一样的,用它来表示一个寄存器

就实现了案例,按一下加一位的效果,按一下逐渐+1

4.独立按键控制LED移位

函数要先定义,放到main的上面

如果放到下面,需要再main上面声明

定义在main函数外面的变量是全局变量,初始值是0,在里面是局部变量,初始值不为0

开始第一个灯不亮,按一下直接第二个灯亮,逐渐后面的亮

给第一个灯一个初始化:

复位后就会亮,逐渐按一下,递增的亮

实现按第二个按键向右移动

按第二个按键,向右移动

相关推荐
硅农程序猿3 分钟前
芯片设计中的门级仿真(GLS):从零延迟验证到 SDF 时序反标
嵌入式硬件·硬件架构·risc-v·芯片
智购科技智能售货柜1 小时前
自动售货机主控方案怎么选?——单片机、树莓派、ESP32的实战对比~YH
单片机·嵌入式硬件
米饭不加菜1 小时前
电平转换电路
经验分享·嵌入式硬件·硬件工程
老k一步步来15 小时前
STM32 HAL库CAN通信核心函数详解,参数以及作用
stm32·单片机·嵌入式硬件
gwf21615 小时前
SSD读写速度深度解析:顺序读写vs随机读写、IOPS、延迟,你的硬盘性能到底怎么看?
git·嵌入式硬件·缓存·github·智能硬件
Freak嵌入式19 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
wuyk55519 小时前
77.嵌入式 C 语言中 enum 枚举的工程化实践:告别魔法数字,提升代码可维护性
c语言·开发语言·stm32·单片机·嵌入式硬件
义嘉泰19 小时前
XT25F128F-W Flash芯片全面解析
人工智能·嵌入式硬件·芯片
QH1392923188020 小时前
Keysight N9917B N9918B手持式综合微波分析仪
网络·科技·嵌入式硬件·集成测试·信息与通信