单片机简单介绍

作者:_the_sun日期:2025/11/21

目录

一、单片机简介

二、单片机的命名规则与封装

三、单片机内部结构图与最小系统

(1)内部模块结构图

(2)最小系统


虽然以前也简单学习过单片机,但是当时还未曾学习数电模电,对于各种芯片、工作原理的理解较为浅显,只是停留在代码如何写的方面。现在补充了一定的数模电基础后想巩固一下知识,考虑到并未写一份单片机使用说明,于是开始尝试本系列。

一、单片机简介

单片机(Micro Controller Unit),简称MCU。即微小控制单元,通常用于简单场景的工业控制。他内部集成了CPU、RAM、ROM、定时器、通讯接口、中断系统等一系列电脑中的常用硬件功能,所以你可以简单理解:单片机就是一个功能简单、效率较低的迷你版电脑。

在常见的家用电脑中,各种模块往往是独立开的(模块化设计方便迭代+提高运行效率),并通过各种总线进行连接。而单片机的定位就是简便、结构简单、成本低廉。所以单片机会把各种模块直接集成到一块芯片中,单独就是一个电脑。简单来说,无论是单片机还是家用电脑,都会有不同模块的连接,但是单片机是将各模块集成设计到一个芯片中,后续无法修改替换;而电脑则各个模块独立,方便扩展、替换。

不过也正是因此,他的性能远低于电脑。但他的任务一般是数据采集、简单分析、硬件控制等,通常不会有运行大软件或者高级操作系统的需求,所以性能也还够用。不过随着物联网的发展,不分高性能单片机(如 ARM Cortex - M 系列的一些型号)的性能已经有显著的提升,甚至支持运行简单操作系统(如FreeRTOS),但他整体上各模块集成、结构简单、成本低廉的本质并未改变。

二、单片机的命名规则与封装

你可能发现明明都是51单片机系列,但是芯片的名字却不同。下图是STC公司对于51系列单片机的封装命名规则。这个有所了解即可。

所有51系列的单片机,可能因为封装的方式不同,对外呈现的样子形状也不同。但你千万不要误认为他们就是不同的内核。

外面这个黑色的其实是塑料而非芯片本身,其中大部分都是走线,他对于芯片起到封装、保护的作用。不同的场景可能会封装不同的样子,比如这里是DIP双列直插封装,而有的人可能需要贴片封装。

然后封装还将芯片的引脚引出,可以实现引脚扩展等功能。

只要芯片的内核是一样的,无论他外部怎么封装,运算性能、支持功能都是完全相同的。

三、单片机内部结构图与最小系统

(1)内部模块结构图

可以看到单片机的本质就是各种模块连接到一根总线上,并将数据传输给CPU执行。这个结构还是比较复杂的,笔者还未曾学习计算机组成原理,只能简单看看。

(2)最小系统

一个单片机芯片已经集成了计算机运行需要的各种模块,可以说的上是一个较为完善的系统。但是一般还需要补充上电源、晶振时钟等。

(1)电源用来提供系统运行的动力。

(2)晶振则提供CLK时钟信号,在数电中我们了解到很多芯片都需要CLK的边沿触发/水平触发才能正常工作,比如JK触发器、D触发器、T触发器构成的计数器等等,都是在时钟信号的控制下运行的。可以说晶振时钟信号就是单片机的心跳,每跳一次就会触发一次芯片运算,跳动的频率越高往往芯片的运算效率也就越高,这也是为什么我们在评价电脑性能时候CPU频率是一个非常重要的因素了。

(3)复位按键在刚刚上电时候,电容会有短暂的充电于是形成通路,而复位端口是高电平使能的,所以上电时会自动复位。当复位后电容开路,只要你不按下就会正常往后运行。复位功能在数电中也比较常见,大部分模块必须要先施加复位信号才能工作在正常状态循环中。


单片机简单介绍》 是转载文章,点击查看原文


相关推荐


Lua 的 collectgarbage 函数
IMPYLH2025/11/19

Lua 的 collectgarbage 函数 是用于控制垃圾回收机制的重要工具。该函数提供了多种操作模式来管理内存回收: 基本语法: collectgarbage(opt [, arg]) 主要操作选项: "collect" - 执行一次完整的垃圾回收循环"stop" - 暂停垃圾回收器"restart" - 重新启动垃圾回收器"count" - 返回当前 Lua 使用的内存总量(以 KB 为单位)"step" - 执行单步垃圾回收"setpause" - 设置回收器的暂停参数"set


马斯克Grok 4.1低调发布!通用能力碾压其他一切模型
机器之心2025/11/18

几乎毫无预兆,马斯克人工智能公司 xAI 发布了最新模型 Grok 4.1。 就在刚刚,xAI 宣布,Grok 4.1 已经向所有用户开放,可以在 Grok 官网、X 以及 iOS 和 Android 应用中使用。 Grok 4.1将立即在 Auto 模式中推送,并可在模型选择器中手动选择。 此次,Grok 4.1 将在真实世界可用性方面带来显著提升,尤其是在创造力、情感互动和协作交互方面表现出色。Grok 4.1 对细微意图的感知能力更强,与用户对话更加吸引人,整体人格也更连贯,同时完全保


Python 的内置函数 sorted
IMPYLH2025/11/17

Python 内建函数列表 > Python 的内置函数 sorted Python 的内置函数 sorted() 是一个用于排序的可迭代对象的高阶函数,它接受一个可迭代对象作为输入,并返回一个新的已排序的列表。与列表的 sort() 方法不同,sorted() 不会修改原始的可迭代对象,而是生成一个新的排序后的列表。 基本用法 sorted(iterable, key=None, reverse=False) iterable:需要排序的可迭代对象(如列表、元组、字符串等)key(可


线性代数 - 叉积的分量形式与矩阵形式
二分掌柜的2025/11/16

线性代数 - 叉积的分量形式与矩阵形式 flyfish 单位基向量与 向量的分解 1. 三维坐标系与单位基向量 图中蓝色的x轴、红色的y轴、绿色的z轴构成了一个右手系三维笛卡尔坐标系(符合“右手定则”的空间定向)。 在这个坐标系中,有三个单位基向量: i^\hat{i}i^(蓝色箭头):沿x轴方向的单位向量; j^\hat{j}j^​(红色箭头):沿y轴方向的单位向量; k^\hat{k}k^(绿色箭头):沿z轴方向的单位向量。 这三个基向量两两垂直(夹角为90∘90^\circ90∘) 2.


docker启动失败
AI小胖2025/11/15

** ** 问题很明确了:Failed at step LIMITS spawning /usr/bin/dockerd: Operation not permitted 和 status=205/LIMITS。这表明 systemd 在设置资源限制时遇到了权限问题。 解决方案: 1. 移除或修复有问题的资源限制配置 # 移除我们之前创建的 override 配置 rm -f /etc/systemd/system/docker.service.d/override.conf # 重新加载


实时大数据计算中,Spark的滑动窗口和允许消息迟到机制
sword_csdn2025/11/13

目录 1.开发环境2.几句话先概括3.例子说明3.1.参数配置3.2.窗口是如何产生的3.3.Trigger触发机制3.4.迟到的消息数据 最近做了个实时大数据分析的项目,发现很多东西都忘记了,属实没有好好整理笔记之过,趁眼下闲暇,做个回忆和记录。 1.开发环境 这次环境采用Java17+,Scala2.13,Spark的版本为4.0.0,且基于Kafka创建读取流。其它环境可参考以下maven pom。 <?xml version="1.0" encoding="UTF-8"


centos运维常用命令
KV_T2025/11/12

CentOS 服务器运维中,以下是按场景分类的常用命令,涵盖系统监控、用户管理、服务管理、文件操作等核心场景,适合日常运维参考: 一、系统状态监控 查看系统负载 uptime # 显示系统运行时间、用户数、1/5/15分钟负载 w # 更详细的负载信息,包括登录用户和进程 CPU 监控 top # 实时查看CPU、内存占用(按q退出) htop # 交互式CPU/内存监控(需安装:yum install htop) lscpu


C++中实现多线程编程
Alex艾力的IT数字空间2025/11/10

一、基于POSIX线程库(pthreads) 适用场景:Linux/Unix系统、需要底层线程控制或兼容旧代码。 核心步骤: 包含头文件:#include <pthread.h> 定义线程函数:返回类型为void*,参数为void*指针。 创建线程:使用pthread_create函数。 等待线程结束:使用pthread_join回收资源。 示例代码: #include <iostream> #include <pthread.h> void* thread


微信小程序开发案例 | 个人相册小程序(上)
志昂张呀2025/11/8

阶段案例-个人相册小程序 01、准备工作 1 导入代码包 为了节约时间,这里我们直接把完成的小程序空白模板代码包templateDemo复制一份并重命名为demo07_myAlbum, 导入开发工具等待改造。 2 启动服务器 这里我们使用本地电脑安装phpStudy v8.1套件来模拟服务器效果,本次阶段案例不需要使用MySQL数据库,因此直接启动Apache或者Nginx来模拟Web服务器即可。 以Nginx为例,启动效果如图7-8所示。 ■ 图7-8  ph


Python 的内置函数 getattr
IMPYLH2025/11/6

Python 内建函数列表 > Python 的内置函数 getattr def getattr(obj, name:str): ''' 获取属性的值 :param obj: 一个对象 :param name: 属性的名字 ''' Python 的内置函数 getattr 是一个非常有用的反射工具,主要用于动态获取对象的属性或方法。其基本语法为:getattr(object, name[, default]),其中 object 是目标对象,nam

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读