51单片机基础部分——LED

article/2025/8/2 14:41:40

前言

之前更新过了蓝桥杯单片机的相关部分,那也是一款51单片机,主控芯片是STC15,现在我们要使用的是AT89C52,操作基于普中的51开发板进行开发,入门款的芯片,属于比较简单的,所以我们了解一下就直奔代码,主要为了做到拿到代码能用,能改(高阶程序员首先要掌握CTRL+C以及CTRL+V)能用
做简单的开发其实不需要C语言的基础,直接开始51单片机的学习也可以做到C语言的一个入门

在这里插入图片描述
这是我们锁用到的开发板,看起来比较杂乱,但是相对好上手
在这里插入图片描述
这是我们的单片机的核心,我们所有的命令都是通过这个芯片进行操作,我们看中间的部分,这里是核心部分,他两侧有两排的数字,大家看是PX.X,这里我们叫他IO口,也可以叫PXX端口,自己怎么舒服怎么来,我们通过控制不同的IO口,来进行相应的控制

下面我们就开始我们的LED。

LED

单片机嵌入式学习的第一步,往往是点亮一颗LED灯,就像软件里面的输出一个“Hello World”一样经典,所以我们先来点亮一颗LED灯,再去逐步的点亮一颗电容,一间实验室之类的操作

话不多说,我们先看代码

P2_0 = 0;

就这么多的代码,看起来很懵吧,下面我们再来看
在小学的时候,我们做过电池点亮小灯泡的实验,把电池的正负极用导线接到小灯泡上面,小灯泡就可以发光了
在这里插入图片描述

我们板子上面的LED已经接了一个正极(VCC),另一边还没有明确接了什么东西,我们需要接一个负极,LED灯就能点亮了,这里看到了P2_0 = 0;这是C语言里面的赋值的语句,把0赋给P2_1,相当于给LED所在的地方接了一个负极,这样LED灯就点亮了成功,但是代码不仅仅是上面这么简单,我们现在把代码整体的写出来

#include <REGX52.H>void main()
{		P2_1= 0;
}

我们来逐步分析一下上面的代码
第一行:#include <REGX52.H>这个地方我们调用了一个库,是AT89C52这个芯片的库,我们要基于这个库对板子进行开发,我们需要用别的外设的时候也要用#include后面接<xxxxxx.h>来进行调用

第二行:void main(){}
这里是一个整体,我们看到main的时候,就说明这个是代码的入口函数,所有的代码都是从这里开始运行的,这里有一对大括号,所有的东西在这里面执行

最后:P2_1= 0;这里我们就是一个赋值,把0赋给P2_1,给他一个低电平,使这个LED点亮
这个时候我们点编译
在这里插入图片描述
检查我们的代码没有问题就OK了,我们的代码部分就写完了

从上到下我们只说的代码怎么写,而没有说在哪写,怎么让代码跑起来,下面带大家从开始建立工程,并且烧录进去,新建工程这里我们在蓝桥杯的里面说到过了,大家可以从这里跳过去蓝桥杯单片机基础部分——0、新建工程,和这里是一样的,大家可以跟着创建
创建完了之后,我们在我们简历工程所在的文件夹里面找到Objects文件夹,找到一个HEX文件类型的文件,这里就是我们生成可执行文件

我们打开我们的stc—isp,这个是我们烧录用到的,
在这里插入图片描述
首先我们先选出我们的芯片,这里可以看芯片上面的丝印,跟上面能对上就行,我的是TSTC89C52RC,我就选这个
然后我们连接我们的单片机和我们的电脑
在这里插入图片描述
在扫描串口的地方,有个向下的箭头,找CH340,找到这个端口,选择,这时才能将我们的代码烧写进去
在这里插入图片描述
然后我们在打开程序文件的地方,选择我们生成的HEX文件,选择后,点击下载编程就好了,下载编程后,一定要重启一下单片机
在这里插入图片描述
双击这个按钮完成重启,下载完成后,在右侧空白处,会出现成功的字符,这时候,我们的一整个操作就都完成了


http://www.hkcw.cn/article/IeSdeNkSKK.shtml

相关文章

js实现猜数字案例

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body></body><script>// 猜随机数// 生成一个随机数并取整var guessNumber Math.floor(Math.random() * 100)console.log(…

[AI算法] LLM中LoRA的占用显存没有减少多少?

文章目录 Lora为什么没有减少多少显存几种Freeze的设置方式torch.no_gradrequire_gradFalseeval() Lora为什么没有减少多少显存 在使用 PEFT&#xff08;Parameter-Efficient Fine-Tuning&#xff09; 方法&#xff08;如 LoRA、IA 等&#xff09;时&#xff0c;你可能会观察到…

C++命名空间深度解析

1.命名空间的价值 在C/C中&#xff0c;变量、函数和类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace…

上海工作机会:Technical Writer Senior Technical Writer - 中微半导体设备

大名鼎鼎的中微半导体招聘文档工程师了,就是那家由中国半导体产业的领军人物尹志尧领导的、全员持股的公司。如果你还不了解他,赶快Deepseek一下“尹志尧”了解。 招聘职位:Technical Writer & Senior Technical Writer 公司名称:中微半导体设备(上海)股份有限公司…

2024年12月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:最近的斐波那契数 斐波那契数列 Fn 的定义为:对 n ≥ 0 有 Fn+2 = Fn+1 + Fn,初始值为 F0 = 0 和 F1 = 1。所谓与给定的整数 N 最近的斐波那契数是指与 N 的差之绝对值最小的斐波那契数。 本题就请你为任意给定的整数 N 找出与之最…

大数据集群架构hadoop集群、Hbase集群、zookeeper、kafka、spark、flink、doris、dataease(三)

hbase集群部署 wget -c https://dlcdn.apache.org/hbase/2.5.10/hbase-2.5.10-bin.tar.gz 下载地址 在master-1操作 tar xf hbase-2.5.10-bin.tar.gz -C /data/ && mv /data/hbase-2.5.10 /data/hbase vim /etc/profile export HBASE_HOME/data/hbase export PAT…

2022—2025年:申博之路及硕士阶段总结

文章目录 1 前景概要2 打造神兵利器2.1 夺天地之精2.2 锻兵魂之形2.3 契人兵之命 3 潜心闭关修炼3.1 第一阶段&#xff1a;苦心智3.2 第二阶段&#xff1a;劳筋骨3.3 第三阶段&#xff1a;摧意志 4 突破晋级4.1 突破失败4.2 聚气凝神4.3 心魔再现4.4 新起点 5 回顾及深思 1 前景…

NetSuite Bundle - Dashboard Refresh

儿童节快乐&#xff01; 今朝发一个Bundle&#xff0c;解决一个NetSuite Dashboard的老问题。出于性能上的考虑&#xff0c;NetSuite的Dashboard中的Portlet&#xff0c;只能逐一手工刷新。有人基于浏览器做了插件&#xff0c;可以进行自动刷新。但是在我们做项目部署时&#…

简析PointNet++

简析PointNet 更好的阅读体验&#xff0c;欢迎访问 简析PointNet 获得 论文: https://arxiv.org/abs/1706.02413 TensorFlow 版本代码: https://github.com/charlesq34/pointnet2 Pytorch 版本代码: https://github.com/yanx27/Pointnet_Pointnet2_pytorch 背景 在PointNet中…

2024 CKA模拟系统制作 | Step-By-Step | 8、题目搭建-创建 Ingress

目录 ​​​​​​免费获取题库配套 CKA_v1.31_模拟系统 一、题目 二、核心考点 Ingress 资源定义 Ingress Controller 依赖 服务暴露验证 网络层次关系 三、搭建模拟环境 1.创建命名空间 2.安装ingress ingress-nginx-controller 3.创建hello.yaml并部署 四、总结 …

Android Java 版本与 Gradle 版本兼容问题:use incompatible Java 21.0.3 and Gradle 4.8.1.

问题与处理策略 问题描述 打开一个 Android 项目&#xff0c;报如下错误 Your build is currently configured to use incompatible Java 21.0.3 and Gradle 4.8.1. Cannot sync the project.We recommend upgrading to Gradle version 8.9.The minimum compatible Gradle v…

深度理解Restful开发规范【总结】

目录 &#x1f499;一、为啥要遵循 Restful 开发规范 ❤️二、Restful 初印象 &#x1f49a;&#xff08;一&#xff09;啥是 Restful &#x1f49c;&#xff08;二&#xff09;核心原则 &#x1f499;三、Restful 在 Java 中的实战 &#x1f49b;&#xff08;一&#xf…

【SF顺丰】顺丰开放平台API对接(Java对接篇)

对接前置篇&#xff1a; 【SF顺丰】顺丰开放平台API对接&#xff08;注册、API测试篇&#xff09;_顺丰api接口对接指南-CSDN博客 1.实现效果展示 2.SF顺丰开放平台&#xff0c;JDK资源下载。 下载地址&#xff1a;顺丰开放平台 3.将下载的JDK放入项目中。 4.将JDK资源引入p…

Java 大视界 —— Java 大数据在智能建筑室内环境舒适度预测与调控中的应用(269)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

树莓派3B小练习

PWM驱动LED灯 3B引脚图 PWM通道 GPIO号 物理引脚 复用功能 PWM0 GPIO12 32 Alt Fun 0 PWM1 GPIO13 33 Alt Fun 0 PWM0 GPIO18 12 Alt Fun 5 PWM1 GPIO19 35 Alt Fun 5 第一步 启用pwm&#xff08;默认情况下未启用&#xff09; 简而言之&#xff0c;你无法通过Linux内核API…

中国信通院:《“机器人+人工智能”工业应用研究报告》| 人工智能赋能机器人,如何重塑工业版图?

在数字经济蓬勃兴起的浪潮中&#xff0c;《中国信通院&苏州机器人产业协会-“机器人人工智能”工业应用研究报告》为我们揭示了智能制造的未来图景。 这份报告不仅是技术发展的记录&#xff0c;更是产业升级的指南。它以深刻的洞察力&#xff0c;剖析了“机器人人工智能”…

LangChain-结合GLM+SQL+函数调用实现数据库查询(三)

针对 LangChain-结合GLM+SQL+函数调用实现数据库查询(二)-CSDN博客 进一步简化 通过 LangChain 和大语言模型(GLM-4)实现了一个 AI 代理,能够根据自然语言提问自动生成 SQL 查询语句,并连接 MySQL 数据库执行查询,最终返回结果。 整个流程如下: 用户提问 → AI 生成 SQ…

8天Python从入门到精通【itheima】-62~63

目录 第六章开始-62节-数据容器入门 1.学习目标 2.为什么要学习数据容器&#xff1f; 3.什么是Python中的数据容器 4.小节总结 63节-列表的定义语法 1.学习目标 2.为什么需要列表&#xff1f; 3.列表定义的基本语法 4.列表定义的基本语法-案例演示 5.列表定义的基本语…

重学计算机网络之以太网

一&#xff1a;历史发展进程 DIX EtherNet V2 战胜IEEE802.3成为主流版本。总线型交换机拓扑机构代替集线器星型拓扑机构 1990年IEEE制定出星形以太网10BASE-T的标准**802.3i**。“10”代表10 Mbit/s 的数据率&#xff0c;BASE表示连接线上的信号是基带信号&#xff0c;T代表…

4、数据标注的武林秘籍:Label-Studio vs CVAT vs Roboflow

开篇痛点&#xff1a;90%的模型效果取决于数据质量 "标注3小时&#xff0c;训练5分钟"——这是很多AI工程师的真实写照。上周有位读者训练YOLOv12时发现&#xff0c;同样的代码&#xff0c;换批数据mAP直接跌了15%&#xff0c;根本原因是标注不规范&#xff01;本文…