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

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

给第一个灯一个初始化:

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

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

按第二个按键,向右移动

相关推荐
电子工程师成长日记-C512 小时前
51单片机16路抢答器
单片机·嵌入式硬件·51单片机
xiaobuding_QAQ2 小时前
51汇编仿真proteus8.15学习篇三(附源码)
汇编·单片机·学习·proteus
程序员_小兵2 小时前
STM32之中断详解
c语言·stm32·单片机·嵌入式硬件·mcu
List<String> error_P11 小时前
STM32窗口看门狗WWDG详解
stm32·单片机·嵌入式硬件·定时器
鑫—萍12 小时前
嵌入式开发学习——STM32单片机入门教程
c语言·驱动开发·stm32·单片机·嵌入式硬件·学习·硬件工程
来自晴朗的明天12 小时前
高速画板-USB模块的PCB设计7-USB3.0 接口原理图详细解析
单片机·嵌入式硬件·硬件工程
boneStudent12 小时前
STM32H750多通道数据采集系统
stm32·单片机·嵌入式硬件
S火星人S12 小时前
LVGL[display]
单片机·学习
龙大大L13 小时前
第七章、7.1 ESP32 触摸传感器超详细教程(Arduino 环境)实战指南
单片机·嵌入式硬件·esp32