【51单片机】LED与独立按键(学习笔记)

一、点亮一个LED

1、LED介绍

LED:发光二极管

补:电阻读数

102 => 10 00 = 1k

473 => 47 000

2、Keil的使用

1、新建工程:Project => New Project

Ctrl + Shift + N :新建文件夹

2、选型号:Atmel-AT89C52

3、xxx提示?选否

4、Source Group => 右键 => Add New Item … => C文件"main.c"

5、设置勾选创建HEX File文件

6、编译

3、单片机控制硬件的原理

CPU通过对寄存器的控制,寄存器通过驱动器、引脚控制硬件设备

4、代码的编写

#include <REGX52.H>
void main() {while(1){P2=0xFE;	//1111 1110}
}

5、程序的下载

STC-ISP软件

单片器型号:STC89C52

串口号:USB…

打开程序文件:*.hex

下载进单片机

二、LED的闪烁

利用STC-ISP软件生成Delayxxxms()延时函数

#include <REGX52.H>
void main() {while(1){P2=0xFE;	//1111 1110Delay500ms();P2=0xFF;	//1111 1111Delay500ms();}
}

三、 独立按键实现LED亮灭

1、轻触按键

独立按键:按下接通、松开断开

2、代码实现

1、P2 = 0xFE 相当于 P2_0 = 0

2、独立按键对应顺序

  1. K1:P3_1
  2. K2:P3_0
  3. K3:P3_2
  4. K4:P3_3
#include <REGX52.H>
void main() {while(1){if(P3_1 == 0) {P2_0 = 0;} else {P2_0 = 1;}}
}

四、独立按键控制LED状态

1、按键的抖动

机械开关断开和闭合时会产生抖动

消抖:硬件过滤、软件算法(Delay)

2、代码实现

#include <REGX52.H>
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 main() {unsigned char LEDNum = 0;while(1){if(P3_1 == 0) {Delay(20);			// 消除前抖动while(P3_1 == 0);	// 等待松手Delay(20);			// 消除后抖动LEDNum++;P2_0 = ~LEDNum;}}
}

六、独立按键控制LED位移

#include <REGX52.H>
void main() {P2 = ~0x01;unsigned char LEDNum = 0;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_1 == 0);	// 等待松手Delay(20);			// 消除后抖动if(LEDNum == 0) LEDNum = 7;else LEDNum--;P2 = ~(0x01 << LEDNum);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/159640.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

349.两个数组的交集+350.两个数组的交集II(set/multiset)

目录 一、349.两个数组的交集 二、350.两个数组的交集II 一、349.两个数组的交集 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {//…

3D模型格式转换工具HOOPS Exchange对工业级3D产品HOOPS的支持与应用

一、概述 HOOPS Exchange是一套高性能模型转换软件库&#xff0c;可以给软件提供强大的模型的导入和导出功能&#xff0c;我们可以将其单独作为转换工具使用&#xff0c;也可以将其集成到自己的软件中。 同样&#xff0c;HOOPS 的其它产品&#xff0c;也离不开HOOPS Exchange…

[LeetCode]-876.链表的中间结点-206.反转链表-21.合并两个有序链表-203.移除链表元素

目录 876.链表的中间结点 题目 思路 代码 206.反转链表 题目 思路 代码 21.合并两个有序链表 题目 思路 代码 203.移除链表元素 题目 思路 代码 876.链表的中间结点 876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/mi…

Sentinel热点参数限流动

什么是热点 限流是统计访问某个资源的所有请求&#xff0c;判断是否超过QPS阈值。而热点参数限流是分别统计参数值相同的请求&#xff0c;判断是否超过QPS阈值。 何为热点&#xff1f;热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据&am…

Vue3问题:如何实现组件拖拽实时预览功能?

前端功能问题系列文章&#xff0c;点击上方合集↑ 序言 大家好&#xff0c;我是大澈&#xff01; 本文约3000字&#xff0c;整篇阅读大约需要5分钟。 本文主要内容分三部分&#xff0c;第一部分是需求分析&#xff0c;第二部分是实现步骤&#xff0c;第三部分是问题详解。 …

怎样做好金融投资翻译

我们知道&#xff0c; 金融投资翻译所需的译文往往是会议文献、年终报表、信贷审批等重要企业金融资料&#xff0c;其准确性事关整个企业在今后一段时期内的发展战略与经营成效。尤其像年报&#xff0c;对于上市公司来说更是至关重要的。那么&#xff0c;怎样做好金融投资翻译&…

Spring Boot 面试题——自动装配

目录 Spring Boot 中的自动装配是指什么&#xff1f;解决了什么问题&#xff1f;Spring Boot 自动装配的流程有哪些&#xff1f;Spring Boot 中实现自动装配的原理是什么&#xff1f;Spring 中的 ConfigurationClassPostProcessor 类有什么作用&#xff1f;Spring Boot 自动装配…

react使用react-sortable-hoc实现拖拽

react-sortable-hoc拖拽 安装 npm install react-sortable-hoc --save 代码如下&#xff08;示例&#xff09;&#xff1a; import React, { useImperativeHandle, forwardRef, memo, useState } from react;import { DrawerForm } from ant-design/pro-form;import { messag…

无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制

目前&#xff0c;ChatGPT、Llama 2、文心一言等主流大语言模型&#xff0c;因技术架构的问题上下文输入一直受到限制&#xff0c;即便是Claude 最多只支持10万token输入&#xff0c;这对于解读上百页报告、书籍、论文来说非常不方便。 为了解决这一难题&#xff0c;加州伯克利…

深度学习_4 数据训练之线性回归

训练数据 线性回归 基本原理 比如我们要买房&#xff0c;机器学习深度学习来预测房价。房价的影响因素有&#xff1a;卧室数量&#xff0c;卫生间数量&#xff0c;居住面积。此外&#xff0c;还需要加上偏差值来计算。我们要找到一个正确率高的计算方法来计算。 首先&#…

SpringCloud 微服务全栈体系(十)

第十章 RabbitMQ 一、初识 MQ 1. 同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得…

默认路由配置

默认路由&#xff1a; 在末节路由器上使用。&#xff08;末节路由器是前往其他网络只有一条路可以走的路由器&#xff09; 默认路由被称为最后的关卡&#xff0c;也就是静态路由不可用并且动态路由也不可用&#xff0c;最后就会选择默认路由。有时在末节路由器上写静态路由时…