当前位置: 首页 > article >正文

第2章 点亮你的LED 2.1 2.2 2.3

本章的标题是点亮LED虽然任务很简单但是需要了解的单片机基础知识却很多特别是对于初学者刚开始要在头脑中建立一个单片机的概念然后通过点亮一个LED小灯来增加初学者对单片机的兴趣和自信。2.1单片机的内部资源在这里所讲到的单片机内部资源和传统单片机书籍中讲单片机内部结构不同这里讲到的内部资源是指作为单片机用户单片机提供给用户可使用的东西。总结起来主要是三大资源1Flash——程序存储空间早期单片机是OTPROM。2RAM——数据存储空间。3SFR——特殊功能寄存器。早期的单片机中主要是用OTPROMOne Time Programmable Read-Only Memory即一次可编程只读存储器来存储单片机的程序程序只能写入一次如果发现错了没办法只能换一片重新写入。随着技术的发展Flash以其可重复擦写且容量大、成本低的优点成为现在绝大多数单片机的程序存储器。对于单片机来说Flash最大的意义是断电后数据不丢失这个概念类似于计算机的硬盘保存了电影、文档、音乐等文件把电源关掉后下次重新开计算机所有的文件都还照样存在。RAM是单片机的数据存储空间用来存储程序运行过程中产生的和需要的数据跟计算机的内存是相似的概念其实最典型的比喻是计算器。用计算器计算加减法一些中间的数据都会保存在RAM里边断电后数据丢失所以每次打开计算器都是从归零开始计算。但是它的优点是读写速度非常快理论上是可无限次写入的即寿命无限不管程序怎么运行怎么读写它都不会坏。第三个资源是SFR特殊功能寄存器。这个概念可能刚开始理解不了但需要记住。单片机有很多很多特殊功能每个功能都会对应一个或多个SFR用户就是通过对SFR的读写来实现单片机的多种多样的功能的。讲到这里首先来了解一下51单片机。通常一说到51单片机指的都是兼容Intel MCS-51体系架构的一系列单片机而51是它的一个通俗的简称。全球有众多的半导体厂商推出了无数款这一系列的单片机比如Atmel的AT89C52NXP(Philips)的P89V51宏晶科技的STC89C52……具体型号千差万别但它们的基本原理和操作都是一样的程序开发环境也是一样的。这里要分清楚51这个统称和具体的单片机型号之间的关系。单片机内部资源的三个主要部分清楚了那么就选择STC89C52RC这款单片机来进行学习。STC89C52RC是宏晶科技出品的一款51内核的单片机具有标准的51体系结构全部的51标准功能程序下载方式简单方便学习。它的资源情况Flash程序空间是8K字节(1K10241字节 8位)RAM数据空间是512字节SFR后边会逐一提到并且应用。2.2单片机最小系统什么是单片机最小系统呢单片机最小系统是指用最少的原件组成单片机可以工作的系统。单片机最小系统的三要素就是电源、晶振、复位电路如图2-1所示。图2-1 单片机最小系统电路这张最小系统的电路图节选自Kingst51开发板原理图下面就照这张电路图来具体分析最小系统的三要素。2.2.1电源这个很好理解电子设备都需要供电。目前主流单片机的电源分为5V和3.3V这两个标准当然现在还有对电压要求更低的单片机系统一般多用在一些特定场合在学习中不做过多的关注。STC89C52需要5V的供电系统Kingst51开发板是使用USB口输出的5V直流电直接供电的。从图2-1可以看到供电电路在38脚和16脚的位置上38脚接的是5V通常也称为VCC或VDD代表的是电源正极16脚接的是GND也可称为VSS代表的是电源的负极。5V和GND之间还有个电容作用下节课介绍。此处普及一个看电路原理图的知识。电路原理图是为了表达这个电路的工作原理而存在的很多器件在绘制的时候更多考虑的是方便原理分析而不是表达各个器件实际位置。比如原理图中的单片机引脚图引脚的位置是可以随意放的但是每个引脚上有一个数字标号这个数字标号代表的才是单片机真正的引脚位置。单片机通常有不同的封装形式所谓的不同封装可以理解为同样是加了水的面但是捏成不同的形状的馒头只是表现形式不同实现的功能完全一致。在2014年《手把手教你学51单片机--C语言版》第1版时所设计的Kingst51开发板采用了DIP40封装是一种双列直插式的封装形式。目前编写第3版的时候决定采用QFP-44的封装形式是一种方形扁平式如图2-2所示。除部分单片机开发板还采用DIP40封装外当前现实中的产品几乎见不到这种封装的身影了。一方面QFP封装体积更小密度更高集成度更高占据空间更少另外一方面产品设计要考虑成本QFP封装采用SMT表面贴技术焊接而DIP封装采用波峰焊或者手工焊接后者单个引脚的焊接费用接近前者的10倍。这样一片DIP40封装的单片机的焊接费可能都会超过一片单片机的价格因此在实际产品开发当中除特殊需求外比如散热性能考虑很少采用DIP封装形式的芯片了。无限接近实际项目从单片机封装选择开始。图2-2可以看出DIP封装的1脚在其最左上角逆时针旋转引脚号依次增加一直到右上角是最大引脚号40脚。QFP封装中有一个小圆圈的位置为1脚逆时针旋转引脚号依次增加一直旋转一圈到最大引脚号44脚。图2-2的封装图就是单片机实际引脚的位置。图2-2 单片机封装图2.2.2晶振晶振又叫晶体振荡器从这个名字就可以看出来它注定一生都要不停振荡的。它起到的作用是为单片机系统提供基准时钟信号类似于部队训练时喊口令的人单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的。STC89C52RC单片机的14脚和15脚是晶振引脚接了一个11.0592M的晶振它每秒钟振荡11059200次外加两个20pF的电容电容的作用是帮助晶振起振并维持振荡信号的稳定。2.2.3复位电路在图2-1左侧是一个复位电路接到了单片机的4脚RST(Reset)复位引脚上这个复位电路如何起作用后边再讲现在着重讲一下复位对单片机的作用。单片机复位一般分为三种情况上电复位、手动复位、程序自动复位。假如单片机程序有100行当某一次运行到第50行的时候突然停电了这个时候单片机内部有的区域数据会丢失有的区域数据可能还没丢失。那么下次打开设备的时候用户希望单片机能正常运行所以上电后单片机要进行一个内部的初始化过程这个过程就可以理解为上电复位上电复位保证单片机每次都从一个固定的相同的状态开始工作。这个过程跟打开计算机电源开机的过程是一致的。当单片机的程序运行时如果遭受到意外干扰而导致程序死机或者程序跑飞的时候就可以按下一个复位按键让程序重新初始化重新运行这个过程就叫做手动复位最典型的就是计算机的重启按钮目前大多数电脑都没有重启按钮了而是通过长按开机键关闭电源的方式。当程序死机或者跑飞的时候单片机往往有一套自动复位机制比如看门狗具体应用以后再了解。在这种情况下如果程序长时间失去响应单片机看门狗模块会自动复位重启单片机。还有一些情况是程序故意重启复位单片机。电源、晶振、复位构成了单片机最小系统的三要素也就是说一个单片机具备了这三个条件就可以运行下载的程序了其他的比如LED小灯、数码管、蜂鸣器等设备都是属于单片机的外部设备即外设。最终完成用户想要的功能就是通过对单片机编程来控制各种各样的外设实现的。2.3LED小灯LED(light-emitting diode)即发光二极管俗称LED小灯它的种类很多参数也不尽相同Kingst51开发板上用的是普通的贴片发光二极管。这种二极管通常的正向导通电压是1.8V到2.2V之间工作电流一般在1mA20mA之间。其中当电流在1mA5mA之间变化时随着通过LED的电流越来越大肉眼会明显感觉到这个小灯越来越亮而当电流从5mA20mA之间变化时看到的发光二极管的亮度变化就不太明显了。当电流超过20mA时LED就会有烧坏的危险了电流越大烧坏的速度也就越快。所以在使用过程中应该特别注意它在电流参数上的设计要求。下面来看一下发光二极管在Kingst51开发板上的设计应用。USB供电接口图以及电源开关图如图2-3所示。图2-3 USB接口电路和电源开关电路图2-3是Kingst51开发板上的USB接口电路。通过USB线电脑给开发板供电和下载程序以及实现电脑和开发板之间的通信。这是一个标准16引脚的type-C的USB接口从图上可以看出其中A6脚和A7脚是数据通信引脚5IN为USB电源正极GND为电源负极。将电源开关左边的LED部分的电路单独摘出来分析如图2-4所示。图2-4 LED小灯电路一发光二极管是二极管中的一种因此和普通二极管一样这个二极管也有阴极和阳极习惯上也称之为负极和正极方向必须接对了才会有电流通过让LED小灯发光。刚才提到接入的VCC电压是5V发光二极管自身压降大概是2V那么在右边R34这个电阻上承受的电压就是3V。现在要求电流范围是1~20mA的话就可以根据欧姆定律RU/I把这个电阻的上限和下限值求出来。U3V当电流是1mA的时候电阻值是3K当电流是20mA的时候电阻值是150欧也就是R34的取值范围是150~3K欧姆。这个电阻值大小的变化直接可以限制整条通路的电流的大小因此这个电阻通常称之为“限流电阻”。在图2-3中用的电阻是1K这条支路电流的大小可以计算出来了而这个发光二极管在这里的作用是作为电源指示灯的使用USB线将开发板和电脑连起来这个灯就会亮了。同理在电源开关后级控制的位置又添加了一个LED10发光二极管当打开开关时这个二极管才会亮起如图2-5所示。图2-5 电源开关电路把图2-4进行一下变化把右侧的GND去掉改成一个单片机的I/O口如图2-6所示。图2-6 LED小灯电路二图2-4由于电源从正极到负极有电压差并且电路是导通的所以就会有电流通过LED小灯因为有了电流通过就会发光。把右侧的原GND处接到单片机P0.0引脚上那么如果单片机输出一个低电平也就是跟GND一样的0V电压就可以让LED小灯和图2-4一样发光了。因为单片机是可以编程控制的可以让P0.0这个引脚输出一个高电平就是跟VCC一样的5V电压那么这个时候左侧VCC电压和右侧的P0.0的电压是一致的那就没有电压差没有电压差就不会产生电流没有电流LED小灯就不会亮也就是会处于熄灭状态。下面就用编程软件来实现控制小灯的亮和灭。

相关文章:

第2章 点亮你的LED 2.1 2.2 2.3

本章的标题是点亮LED,虽然任务很简单,但是需要了解的单片机基础知识却很多,特别是对于初学者,刚开始要在头脑中建立一个单片机的概念,然后通过点亮一个LED小灯来增加初学者对单片机的兴趣和自信。2.1单片机的内部资源在…...

设备安装工程:工业与建筑系统高效运行的关键环节

一、什么是设备安装工程?设备安装工程是工业建设和建筑机电工程中的重要组成部分,主要指将各类机械设备、电气设备、生产设备以及自动化系统按照设计要求进行运输、定位、安装、调试并投入运行的全过程。设备安装不仅影响设备的运行效率,还直…...

别再写“负责xx开发”了,用数字让HR在6秒内看到你的“战力”

前言:你的简历,HR真的会看吗? 先来看一组残酷的数据:HR平均阅读一份简历的时间只有5.8秒,83%的淘汰发生在前10秒之内。这意味着什么?意味着你熬夜三天写出来的两页纸,在HR眼中只是一次“扫一眼”…...

在深圳宝安实验室做落球冲击试验

一、测试介绍 落球冲击测试是将规定质量的球从不同高度落下,或在规定高度下将不同质量的球落下,以测定胶接试样在承受落球冲击击下产生裂痕所需的能量的试验。仪器采用标准试验钢球,钢球电磁吸挂、自动释放,可有效地避免了人为因…...

微信公众号文章保存工具-支持图文

介绍: 这是本人因一时所需即兴写的小软件。功能很简单,根据WX公众号文章链接可以把文章的文字、图片下载到本地,可以保存为HTML网页格式、DOC文档格式,方便归档保存。 现在提供给朋友们使用,有这方面需要的朋友可以下…...

5分钟完成 RS6013A 上位机连接与第一个示例程序(含截图)

在雷达技术教学与科研中,FMCW(调频连续波)雷达因其结构简单、测距精度高、无距离盲区等优点,已成为毫米波雷达应用的主流方案。然而,许多初学者在面对雷达硬件时,往往被复杂的寄存器配置、数据协议和信号处…...

跨平台符号表生成规则详解:Windows/Linux/macOS/OHOS

本文详细介绍 C/C 项目在各平台的符号表生成策略,包括 MSVC PDB 生成、GCC/Clang DWARF 生成、以及 strip 操作的原子性保证。一、各平台符号格式对比平台编译器符号格式文件位置备注WindowsMSVCPDB (Program Database)与 DLL 分离无需 stripLinuxGCC/ClangDWARF嵌入…...

品牌关键词优化:如何用5步提升你的内容搜索排名?

随着生成式AI的兴起,GEO(生成式引擎优化)已成为企业提升品牌曝光和流量获取的重要手段。为了帮助大家更好地选择适合自己的GEO服务提供商,我们对市面上主流的GEO产品进行了深度测评。以下是本次参与测评的产品名单:沐廉…...

Matlab几何特征地图法实现智能车二维路径规划

Matlab几何特征地图法 单个机器人(智能车) 二维路径规划 静态环境全局路径规划 避障 有局部避障和路径冲突解决策略源程序仿真带注释 附操作视频在智能车的二维路径规划领域,尤其是在静态环境下的全局路径规划,Matlab 的几何特征地…...

JavaScript重定义this指向(apply、call、bind)

一、apply() 在JavaScript中,apply()是函数的原型方法(Function.prototype.apply),用于调用一个函数,并显式指定该函数内部的this值,同时以数组(或类数组对象)的形式传入参数。基本语…...

智慧教育+虚拟仿真:解锁煤矿专业实训新范式

煤炭作为我国主体能源,行业安全生产与智能化转型对高素质技术技能人才提出迫切需求,职业院校煤矿专业迎来发展新机遇的同时,也面临着实训教学与行业需求精准对接的挑战。煤矿安全意识警示教育与防治实训室的建设,正是以新一代信息…...

06|AI 参与开发的安全底线:别把密钥和隐私喂进去

本篇目标:这是“卷 0”的最后一篇。在正式开始写代码前,我们必须立下“生死状”。遵守这些规则,能让你免于牢狱之灾或破产风险。一、血淋淋的教训 在你觉得“我只是个小透明,黑客不会搞我”之前,先看两个真实案例&…...

网络安全学习路线:2026年最新技术趋势与系统化成长路径

【值得收藏】网络安全学习路线:2026年最新技术趋势与系统化成长路径 这篇文章为网络安全学习者提供了一条系统化的六阶段学习路径,从基础准备到专业深耕。文章介绍了三大发展方向、2026年新趋势与热点,并提供科学学习方法和职业发展建议。强…...

书单号视频搬运软件推荐8款(2026实测版)

书单号视频搬运软件推荐(2026实测版) 做书单号搬运/二剪,核心要抓去重过原创、批量效率、配音字幕三点,以下按“新手易上手→专业高效率→专用工具”分级推荐,附适用场景与关键技巧。 一、新手首选(手机端&…...

企业培训ROI怎么算?这套可直接套用的量化表,让效果看得见

做企业培训的人,几乎都遇过这样的灵魂拷问:“花了十几万做培训,到底给公司带来了什么?”“课上大家听得很认真,怎么业绩没见涨?”“明年培训预算要砍30%,你拿什么证明这笔钱花得值?”…...

库克推最便宜MacBook,为啥还是会被骂?

这些年,苹果的产品可以说是价格越来越高,面对着高价的诟病,苹果终于下定决心推出廉价产品,这就是最新款的MacBook,然而就是这一款平价产品却反而遭到了消费者的诟病,这到底是怎么回事?一、库克推…...

洛谷 P1455 搭配购买

题目描述明天就是母亲节了,电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢?听说在某个网站上有卖云朵的,小朋友们决定一同前往去看看这种神奇的商品,这个店里有 n 朵云,云朵已经被老板编…...

2026 年上海本地靠谱财税公司榜单,服务口碑双在线

2026年,上海本地财税公司逐渐增多,服务质量和口碑备受关注。本文将盘点几家凭借专业服务和良好信誉脱颖而出的财税公司。这些公司在财税筹划、账务处理等领域表现突出,客户普遍评价其响应速度快、服务透明,成为企业发展的得力助手…...

新建虚拟机

新建虚拟机1、2、3、4、5、6、7、8、改虚拟机配置9、10、11、12、改为自己的光驱确定即可,然后开启虚拟机14、15、16、安装位置,已选择自动分区,点击“完成”即可17、软件选择,选“GNOME”桌面,点击“完成”18、命名完…...

苹果新款笔记本电脑发布:性能升级与市场定位调整

新款 MacBook 处理器升级亮点多 新款 MacBook Pro 搭载的 M5 Pro 和 M5 Max 处理器备受瞩目,不仅让苹果最快的笔记本电脑处理器速度显著提升,其内部还进行了重大改进。这两款处理器的升级,无疑为 MacBook Pro 带来了更强大的性能表现&#xf…...

基于 NXP iMX8MP ARM平台安装测试 Openclaw

By Toradex秦海 1). 简介 Openclaw AI agent 开源项目最新非常火热,目前主流是基于 Mac 或者 X68 PC 进行安装部署,本文就尝试基于 NXP iMX8MP ARM 平台通过 Docker 环境进行部署测试。另外,通过 Docker 部署的好处除了可复用性&#xff0c…...

安心部署 OpenClaw,数美科技智能体安全防护方案来了!

近期,开源AI智能体OpenClaw爆火,在GitHub上短短几周便成为有史以来最受欢迎的开源项目,引领AI正式迈入“Agent时代”。这股狂潮在中国市场引发了前所未有的部署热,不仅腾讯云、百度等大厂纷纷下场提供部署服务,各地方政…...

MFC CDialog触摸屏长按不响应右键消息解决方案

方案1 重写虚函数GetGestureStatus,返回0即可。方案2 响应WM_TABLET_QUERYSYSTEMGESTURESTATUS消息,返回0即可。方案3 用vs2010之前的版本编译,vs2010开始默认CWnd类出于性能原因返回TABLET_DISABLE_PRESSANDHOLD。注意:如果子窗口…...

在 Linux 上通过命令行上架 iOS APP,Fastlane + AppUploader(开心上架)

很多团队的 CI 或发布环境运行在 Linux 服务器上,例如 GitLab Runner、Jenkins 或自建构建节点。当应用已经生成 .ipa 文件之后,接下来就是是否可以在 Linux 上直接把 IPA 上传到 App Store? 答案是可以的,关键在于把流程分开&…...

【转行必看】程序员从零转行大模型全攻略:从入门到职业落地无坑指南

人工智能浪潮下,大模型技术的爆发彻底重塑了科技行业的人才需求版图。以GPT、BERT、LLaMA为代表的主流大模型,不仅在自然语言处理、计算机视觉等核心领域实现颠覆性突破,更催生出一大批高薪岗位。 对普通程序员而言,转行大模型绝…...

搅拌功率计算避坑指南:挡板设置对永田公式影响的7个关键点

搅拌功率计算避坑指南:挡板设置对永田公式影响的7个关键点 在搅拌工艺的研发与优化中,功率计算是绕不开的核心环节。许多工程师都熟悉永田进治公式,它结构清晰,是估算搅拌功率的经典起点。然而,公式本身只是一个数学模…...

ChatGPT Prompt Engineering实战:开发者代码运行环境全解析

背景痛点:你的代码究竟在哪儿跑? 最近在折腾ChatGPT的Prompt Engineering,我发现很多开发者朋友,包括我自己一开始,都踩过一个坑:搞不清Prompt处理代码到底在哪里执行。 这听起来像是个低级问题&#xff…...

C++三种参数传递方式:从交换函数看值、指针与引用的区别

本篇文章将通过一个简单的交换函数示例&#xff0c;详细介绍C中的三种参数传递方式&#xff1a;值传递、指针传递和引用传递。我们会分析每种方式的特点以及它们在函数调用中对实参的影响。代码预览#include <iostream> using namespace std;// 1. 值传递 void Swap01(in…...

NX二次开发C#-----NXopen测量两个面的投影距离

该代码实现了一个计算两个面之间投影距离的方法。通过创建工作部件中的测量距离构建器&#xff0c;设置投影方向为指定向量&#xff0c;并指定两个测量面对象。使用最小投影距离算法创建测量对象&#xff0c;最终返回两个面之间的投影距离值。计算完成后销毁测量构建器以释放资…...

Linux下HYM8563 RTC驱动加载失败的5种排查姿势(附i2cdetect实战)

Linux下RTC驱动加载失败&#xff1a;从硬件到内核的深度排查实战指南 最近在调试一块嵌入式板卡时&#xff0c;遇到了一个典型的RTC驱动加载问题&#xff1a;系统启动时HYM8563 RTC芯片驱动加载失败&#xff0c;但重启后却能正常工作。这种“开机失败、重启正常”的现象在嵌入式…...