51单片机入门 第一篇:LED灯

news2024/11/18 8:15:15

文章目录

  • 前言
  • 一、LED原理图
  • 二、创建keil5工程
  • 三、代码的编写
  • 四、程序的烧录
  • 总结


前言

本篇文章讲正式带大家开始学习51单片机,希望这些文章能够很好的帮助到大家学习51单片机。

一、LED原理图

一般的51单片机上都带有8个LED灯,这里8个LED灯分别接到了板子上面的P2.0-P2.7。
这里LED灯采用了共阳接法,共阳极就是发光二极管的正极连接在一起,这里的8个LED灯通过共阳接法接到了VCC(电源)。
当P2.0-P2.7中任意一个端口赋值为低电平时,发光二极管就会被导通,LED灯亮。
比如想要让D1亮,那么就让P2.0输出低电平,此时就可以将D1点亮。
这里补充一个知识:
一般VCC在编程中都被定义为逻辑1,而低电平或者GND都被定义为逻辑0。
所以上面让P2.0 = 0,就可以将D1点亮。
在这里插入图片描述

二、创建keil5工程

1.选择Project,然后选择第一个创建新的工程。
在这里插入图片描述
2.选择工程保存路径和文件名
在这里插入图片描述
3.芯片选择
选择完成后点击OK即可。
在这里插入图片描述
4.创建文件并保存
在这里插入图片描述
5.将创建好的文件加入工程中
在这里插入图片描述
添加成功后可以在Source Group 1里面看见添加好的LED.c文件。
在这里插入图片描述
6.勾选生成hex可执行文件
在这里插入图片描述
在这里插入图片描述

三、代码的编写

1.包含51单片机的头文件
学过C语言的都知道头文件的作用,这里就不多介绍。

#include <reg52.h>

2.主函数的编写
我们编写的代码都将在下面的main函数里面执行。
while(1)循环就是为了让代码不断的执行。

void main()
{
	
	while(1)
	{
		
	}
}

3.LED端口的定义
这里使用了sbit,sbit很多人学习51单片机时都不知道是什么意思,因为在平时学习C语言时是没有这个关键字的。
在C51里面添加有这个关键字,sbit是定义特殊功能寄存器的位变量。
使用sbit定义了相关的位后就可以对这个定义好的位进行直接操作了。

sbit LED0 = P2^0;

4.给LED端口赋值低电平点亮LED

LED0 = 0;

5.全部代码

#include <reg52.h>

sbit LED0 = P2^0;

void main()
{
	
	while(1)
	{
		LED0 = 0;
	}
}

四、程序的烧录

这里我使用的是普中的烧录软件,烧录起来还是非常方便快捷的。只需要选择对应的hex文件点击下载即可。
在这里插入图片描述
代码运行效果:
这里可以看到D1已经被点亮了。
在这里插入图片描述

总结

点亮LED的文章到这里就结束了,大家有什么疑问可以留言提问。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JS逆向——工信部ICP、IP、域名信息备案管理平台

问题&#xff1a;&#xff08;1&#xff09;数据列表接口token参数验证&#xff08;2&#xff09;authKey参数加密生成 1、页面中请求接口&#xff0c;观察请求头可发现&#xff0c;校验参数token为加密的字符串&#xff0c;根据该字符串并不能直观得到所用的加密方式是什么。 …

数据库大小写不敏感后,值也不敏感了

现象&#xff1a;我有一个账号admin&#xff0c;结果莫名多了一个ADMIN、Admin、AdMin等一些列账号&#xff1b;细品你的密码就算密文签名&#xff0c;是不是在你不知情的情况下也有很多。 原因&#xff1a;数据库安装的时候设置的大小写不敏感导致 解决&#xff1a;建议第三…

Spark 的学习笔记

Spark 的学习笔记 文章目录Spark 的学习笔记1. 概述Spark 优势及特点优秀的数据模型和丰富计算抽象Spark 生态圈Spark 特点Spark 与 HadoopSpark与MRSpark Streaming与StormSpark SQL与HiveSpark 运行模式2. 快速入门使用 Spark Shell 进行交互式分析基础Dataset 上的更多操作缓…

【机器学习】LDA算法原理

问题 线性判别分析&#xff08;Linear Discriminant Analysis&#xff0c;LDA&#xff09;是机器学习中常用的降维方法之一&#xff0c;本文旨在介绍LDA算法的思想&#xff0c;其数学推导过程可能会稍作简化。 LDA的思想 ● LDA是一种线性的、有监督的降维方法&#xff0c;即…

销售流程标准化重要吗?

各行各业都存在销售&#xff0c;但并不是每个销售都可以成为优秀的销售&#xff0c;优秀的销售往往有一套完整的销售流程&#xff0c;为了保证销售新人销售工作的顺利进行&#xff0c;销售流程标准化很有必要。 前言 各行各业都存在销售&#xff0c;但并不是每个销售都可以成为…

前端面试题之计算机网络篇--WebSocket基本使用

WebSocket 普通的包的请求和响应过程 1. 对 WebSocket 的理解 WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术&#xff0c;属于应用层协议。它基于TCP传输协议&#xff0c;并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手&#xff0c;两者之间…

HDLBits练习汇总-13-时序逻辑设计测试--状态机(一)

简单摩尔状态机1&#xff08;Fsm1&#xff09; 是一个摩尔状态机&#xff0c;具有两种状态&#xff0c;一种输入&#xff0c;一种输出。实现此状态机。请注意&#xff0c;重置状态为 B。使用异步复位。 模块声明 module top_module(input clk,input areset, // Asynchrono…

基础数学复习(3)——曲线拟合

文章目录基础概念曲线拟合的流程极小化损失函数线性最小二乘超定方程组的最小二乘解&#xff08;必考&#xff09;例题&#xff08;必考&#xff09;使用法方程计算拟合方程使用最小二乘法求解总结基础概念 曲线拟合的流程 选取函数类选取参数的准则&#xff1a;极小化损失函…

实习-------数据库基础

检索数据 1、如果使用DISTINCT关键字&#xff0c;它必须直接放在列名的前面。不能部分使用DISTINCT&#xff0c;DISTINCT关键字应用于所有列而不仅是前置它的列 例如&#xff1a;SELECT DISTINCT vend_id告诉MySQL只返回不同&#xff08;唯一&#xff09;的vend_id行 2、带一…

(六)devops持续集成开发——jenkins的全局工具配置之node环境安装及配置

前言 本节内容主要是关于jenkins集成node组件&#xff0c;从而实现前端node项目的流水线CICD发布功能。我们需要先安装好前端组件node,并在jenkins中配置好node组件&#xff0c;这样就可以流水线发布一个前端工程了。 正文 安装node组件①上传node安装包 ②解压node安装包 t…

用纯python脚本玩转UU加速器

1. 前言 之前几期内容&#xff0c;我们出过纯py形式的Android自动化脚本。同学们一直让再出一下纯py形式的Windows脚本&#xff0c;今天我们以UU加速器为例&#xff0c;给大家出一个简单的学习demo。 2. UU加速器的自动化demo 今天的练习demo也非常简单&#xff0c;大致内容…

张勇用最严厉的内部信,敲打阿里云,也在提振阿里士气

“「客户第一」的价值观&#xff0c;从来都不是高高挂在公司墙上的标语&#xff0c;而是支撑我们每一天获得成长的基石”。这应该是阿里巴巴董事局主席兼CEO张勇&#xff0c;自2015年来最严厉的一封内部信。信件里&#xff0c;张勇一改往日温情形象&#xff0c;措辞严厉的批评了…

pybind11 | 绑定CGAL几何算法(numpy数据交换)

文章目录一 前言二 numpy数据交换2.1 pybind11对numpy的支持2.2 Numpy VF(py::array_t)与CGAL mesh(Surface Mesh)之间的转换三 绑定CGAL算法示例3.1 示例函数3.2 绑定部分代码3.3 示例完整代码四 编译生成和测试4.1 编译生成pyd文件4.2 Python调用测试五 总结参考和拓展一 前言…

day04 IDEA数组

第一部分 : IDEA开发工具 参见 &#xff1a;IEDA的安装请参考文件夹PPT中的 04_IDEA.ppt 1.数组 1.1 数组介绍 ​ 数组就是存储数据长度固定的容器&#xff0c;存储多个数据的数据类型要一致。 1.2 数组的定义格式 1.2.1 第一种格式 ​ 数据类型[] 数组名 ​ 示例&…

【Linux】进程创建|进程终止|进程等待|进程程序替换

索引1.进程创建fork函数初识&#x1f60a;我们先来看这样的一个程序:写时拷贝fork返回值的三个问题2.进程终止进程退出场景进程常见退出方法进程退出码&#xff1a;3.进程等待进程等待的方法wait方法waitpid方法获取子进程status进程的阻塞等待方式&#xff1a;进程的非阻塞等待…

vue实现导入表格数据【纯前端实现】

一、文章引导 #mermaid-svg-3VJi5rNvrLDOy2MT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3VJi5rNvrLDOy2MT .error-icon{fill:#552222;}#mermaid-svg-3VJi5rNvrLDOy2MT .error-text{fill:#552222;stroke:#55222…

WSL Ubuntu SSH

WSL中的IP wsl中的ubuntu的ip是动态分配的&#xff0c;每次开机都不一样&#xff0c;而且动态分配的ip和windows系统中的ip不在同一网段&#xff0c;但是我发现在windows中能ping通wsl中ubuntu的ip&#xff0c;这说明子系统与虚拟机不同&#xff0c;在查看ubuntu系统ip时&…

第010课 - docker安装mysql

第010课 - docker安装mysql docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ # 这个里面是容器内mysql相关的日志 -v /mydata/mysql/data:/var/lib/mysql \ # 这个里面是msyql数据相关的内容 -v /mydata/mysql/conf:/etc/mysql \ # 这个里面是容…

数据结构进阶 二叉树OJ题

作者&#xff1a;小萌新 专栏&#xff1a;数据结构进阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;介绍几道二叉树的oj题 二叉树OJ题题目一 根据二叉树创建字符串题目二 二叉树的层序遍历题目三 二叉树的最近公共祖先题目一 根据…

华为机试 HJ35 蛇形矩阵

华为机试 HJ35 蛇形矩阵[HJ35 蛇形矩阵](https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e)方法一&#xff1a;顺序填表方法2&#xff1a;数学规律HJ35 蛇形矩阵 描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。 例如&#xff0c;当输入5…