【51单片机】点亮第一个LED灯(含创建文件等基础操作)

51单片机现在不仅是电子信息专业学生的必修课,也是进入嵌入式领域的踏脚石。

本系列将会按照江科大的视频进行,也算是相当于一个笔记,进行巩固

实现第一个LED灯的点亮其实并不复杂,重要的是有一些准备工作比较繁琐,就像我们第一次打印HELLO WORLD,创建文件和头文件,最后保存到哪个位置,对于初学者都比较繁琐,本文将会带着大家一步一步进行操作

目录

  • 预备工作:
  • 元件介绍:
  • 代码实现:
  • 成品展示:

注意:
需要的软件:可以自己在B站观看江科大的视频进行安装,遇到困难了可以私信我,尽力帮助在这里插入图片描述

--------------------------分割线-------------------------------

预备工作:

  1. 打开keil5进行创建文件:
    在这里插入图片描述
  2. 之后会让你选一个保存的位置,默认是文档,但我们要自己创建一个新的文件夹,专门用来存储代码

下图是默认: 在这里插入图片描述

这是我自己用来存储的文件夹:(可以看到路径是在E盘的一个keilProject文件下) git是用来进行代码托管的,有或没有都不影响,可以不用关注这个文件夹。在这里插入图片描述

我们在选定的盘创建完keilproject文件夹后要再创建一个文件夹,防止存储的东西比较散乱,名字可以叫点亮一个LED灯,然后点进这个文件

在这里插入图片描述
进行文件名的命名,点击保存
------------在这里插入图片描述
最后要再在弹出的这个界面搜索at89c52,因为keil5是外国软件,对于中国的板子stc89c52并不友好,但是这两个板子功能是一致的,点击OK后会有一个弹窗,我们点击在这里插入图片描述

  1. 创建C语言文件

在这里插入图片描述
选择C语言实现,在这里插入图片描述
最后点击Add,预备工作就大工告成。以后的博客就会省略这一步。

--------------------------分割线-------------------------------

元件介绍:

进行编程要先了解LED的资料
在这里插入图片描述
发光二极管发光的条件是正接正,负接负

我们看到板子中LED的原理图,那8个电阻是限流电阻,防止LED被烧坏,此时我们要让LED发光将8个引脚进行高低电平的控制就可以操纵亮灭,
单片机的高低电平叫做TTL电平0V为低,5V为高,我们发现,原理图的左侧已经接上Vcc,那我们此时将8个引脚设置为需要的高低电平就可以控制,那我们应该如何控制高低电平呢?
在这里插入图片描述

这是单片机如何控制硬件设备的示意图(下图)(驱动器是用来增大电流以便操纵硬件),我们操纵CPU,CPU操纵寄存器,寄存器输出高低电平进行控制硬件(LED灯),而这个寄存器就是P2,也就是我们需要控制P2

P2是8个孔,我们的LED也是8个,就可以很好的匹配,

我们在P2中1代表逻辑高电平,0相反
我们在P2中写入1,那么对应的输出就是5V
在这里插入图片描述

接下来就可以写代码了

--------------------------分割线-------------------------------

代码实现:

先来看代码,在来进一步解释。
假设我们这里实现点亮1个LED灯

#include <REGX52.H>

void main()
{
	P2 = 0xfe;//1111 1110
	while(1)
	{
		
	}
}

我们在写C语言是需要include,编写单片机当然也需要,我们单击左键,会有一个insert<REGX52.H>(存放各种类似P2的寄存器的接口),我们点击就可以引用这个头文件了

关于P2 = 0xfe,我们说要用高低电平来控制,那么P2 = 1111 1110就可以,但这样单片机会识别为10进制,所以我们要用16进制来代替1111 1110,即为P2 = 0xfe(0x是代表这一串数字是16进制,方便识别,fe的大小写不重要)。

写好了后我们需要点击图中魔法棒在这里插入图片描述
-------------勾选creat,点击OK在这里插入图片描述

在左上角点击第二个,会生成.hex文件,我们在待会要用到在这里插入图片描述

然后打开STC软件(记住要先连接电脑与单片机),进行配置
在这里插入图片描述
--------接着在这里插入图片描述
进入到你写程序时创建的文件,点击Objects,进入点击在这里插入图片描述
在这里插入图片描述
此时按单片机两次开关就可以点亮你的第一个LED灯啦
在这里插入图片描述

成品展示:

在这里插入图片描述
本系列会持续更新下去,有问题及时找博主哦

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android RecyleView 使用 Gilde 加载图片引发的卡顿问题

Glide 是一个用于 Android 的图片加载和缓存库。它可以帮助开发者快速、高效地加载网络图片、本地文件和视频帧&#xff0c;并且能够自动缓存图片数据&#xff0c;减少网络请求。Glide 具有良好的性能和易用的 API&#xff0c;支持常见的图片加载需求&#xff0c;例如图片压缩、…

局部与整体的关联特性,如图所示

局部与整体的关联特性是指事物的局部部分与整体之间存在一定的关联关系。它强调整体是由局部构成&#xff0c;局部又反向影响整体。具体包括以下几个方面的特性&#xff1a; 互依性&#xff1a;局部与整体相互依赖&#xff0c;一个的变动会影响另一个的变动。局部的变化会对整体…

bootstrap5实现蛋糕店网页Bakery设计模板

一、需求分析 蛋糕店的网页通常是指蛋糕店的官方网站。这些网页的功能可以因店铺而异&#xff0c;但一般会包含以下内容&#xff1a; 主页&#xff1a;主页通常是网站的起点&#xff0c;展示店铺的品牌形象、特色蛋糕和推广信息。主页通常会设计成吸引人眼球、易于导航的页面。…

vue3 vuedraggable draggable element must have an item slot

vue3vite 看官网使用这种<template #item“{ element }”> <draggablev-model"myArray"start"onStart"end"onEnd":sort"false"item-key"id"draggable".item"handle".mover" ><template…

java发送邮件到qq邮箱

自己的授权码自己记好 引入依赖 <dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version> </dependency> <dependency><groupId>javax.mail</groupId>&…

机器视觉系统选型-镜头选型常见误区—焦距选择公式

视觉工程师在选择镜头时经常要用到一个公式来选择镜头的焦距。根据这个公式&#xff0c;如果 已知芯片大小、拍摄视野和工作距离的要求&#xff0c;可以算出镜头的焦距。在大部分情况下&#xff0c;这个 公式是可以用的。但这只是一个近似公式&#xff0c;有些情况下使用这个公…

广义双曲分布、KS检验与抄底沪指

上一篇笔记我们抛出一个问题&#xff0c;沪指大跌 4%时&#xff0c;能不能抄底&#xff1f;今天的笔记&#xff0c;我们就通过 KS 检验&#xff0c;找出沪指的概率分布&#xff0c;进而回答这个问题。在后面的笔记中&#xff0c;我们还将换一个方法继续回答这个问题。 K-S 检验…

Matlab/F#/R进行数据分析和建模算法的经验,vb.net输给他了

微软放弃了vb.net的开发&#xff0c;但是持续花费巨资投入F#,简单一看他的语法就是qbasic ,vb6一样。鹿死谁手&#xff0c;谁能相信vb.net竟然被f#给干掉了。外面有vb6语法的python成了全球第一的编程语言,内部还有强大的教授开发的这工具扯后腿。 有人说为什么中国搞不出像mat…

漏洞复现--天融信TOPSEC两处远程命令执行

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(6)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置&#xff08;5&#xff09; 2.2 HOST主桥 本节以MPC8548处理器为例&#xff0c;说明HOST主桥在PowerPC处理器中的实现机制&#xff0c;并简要介绍x86处理器系统使用的HOST主桥。 …

一文讲透Stata计量经济学中如何分中东西区域回归?

stata如何分中东西区域回归本质上是异质性检验。 异质性检验即针对样本进行分类分组&#xff0c;基于各组样本分别开展的实证检验。异质性检验通常在基准回归之后&#xff0c;基准回归依据的是全部的样本&#xff0c;当基准回归得到的结果较为显著&#xff0c;即核心解释变量显…

多线程基础入门【Linux之旅】——上篇【线程控制,线程互斥,线程安全】

目录 前文 回望页表 一&#xff0c;什么是线程 二&#xff0c;使用 pthread_create &#xff08;线程创建&#xff09; 三&#xff0c;线程控制 1 &#xff0c;线程共享进程数据&#xff0c;但也拥有自己的一部分数据: 2&#xff0c; 线程 VS 进程优点 3&#xff0c;…

服务器内存介绍

本篇文章用于介绍服务器内存&#xff0c;包括基本概念、内存演进、规格识别、内存条配置规则等 1、基本概念 服务器内存是指安装在服务器主板上的用于存储和处理数据的硬件组件。它是服务器中的主要性能关键因素之一&#xff0c;对于服务器的运行速度、多任务处理能力和数据处…

Linux 进程(九) 进程等待

子进程退出&#xff0c;父进程如果不管不顾&#xff0c;就可能造成‘僵尸进程’的问题&#xff0c;进而造成内存泄漏&#xff0c;所以父进程回收子进程是必然要做的。 另外&#xff0c;进程一旦变成僵尸状态&#xff0c;那就刀枪不入&#xff0c;“杀人不眨眼”的kill …

线性代数笔记6 1.4

学习视频&#xff1a; 2.2 矩阵运算&#xff08;二&#xff09;_哔哩哔哩_bilibili 包括内容&#xff1a; p23 3.2 线性相关线性无关 p24 3.3 向量的秩&#xff08;一&#xff09; p25 3.3 向量的秩&#xff08;二&#xff09; p26 4.1 线性方程组 p27 4.2 线性方程组有解…

一篇文章带你了解基于 Jenkins 流水线方式部署的好处

在软件开发过程中&#xff0c;部署是将代码从开发环境转移到生产环境的关键步骤。传统的部署方式可能涉及多个手动步骤和容易出错的过程。然而&#xff0c;基于 Jenkins 流水线方式部署可以带来许多好处&#xff0c;包括提高效率、一致性和可靠性。本文将探讨基于 Jenkins 流水…

【Spring实战】21 Spring Data REST 常用功能详细介绍

文章目录 1. 资源导出&#xff08;Resource Exporting&#xff09;2. 查询方法&#xff08;Query Methods&#xff09;3. 分页和排序&#xff08;Pagination and Sorting&#xff09;4. 关联关系&#xff08;Associations&#xff09;5. 事件&#xff08;Events&#xff09;6. …

Parallels虚拟机启动后,Mac主机无法上网怎么办

文章目录 1.问题2.解决 1.问题 部分用户在运行Parallels Desktop的Windows 11打开后&#xff0c;Windows上网没有问题 &#xff0c;但是Mac主机不能访问带域名的网站&#xff0c;而访问带ip的网站没问题&#xff0c;退出parallels虚拟机以后&#xff0c;mac网络恢复正常。 2.…

【管理篇 / 恢复】❀ 07. macOS下用命令刷新固件 ❀ FortiGate 防火墙

【简介】随着苹果电脑的普及&#xff0c;很多管理员都会通过苹果电脑对飞塔防火墙进行管理。当防火墙需要命令状态下刷新固件时&#xff0c;在macOS下用命令刷新固件&#xff0c;将会是一个小小的挑战。 首先是硬件的连接&#xff0c;USB配置线的USB一头&#xff0c;接入MAC的U…

【亚马逊云科技】自家的AI助手 - Amazon Q

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…