单片机最小系统讲解

一最小系统解释:

面试当中常常问到的,一个题目什么是单片机最小系统?

本质上是问?要能够使单片机能够工作的最小组部分有哪些

对于单片机而言,要想能够工作,就和人一样我们要有心脏推动我们身体器官的活动,对应单片机而言就是,时钟电路又叫晶振电路。而且单片机要能具有像人类一样改错修正的,复位电路。除此以外单片机还要吃饭供电的电源电路。

所以主要就是三部分:
1.时钟电路/晶振电路;

2.复位电路;

3.电源电路;

二时钟电路:

时钟电路,就是单片机的核心,推动单片机程序的一步一步进行。对于51单片机而言往往没有内置的时钟,所以需要外挂时钟电路。

我这边网上搜的最小系统电路:

红色框所示,STC89C51单片机的时钟电路主要由晶振和电容组成。晶振是一种具有较高频率的振荡器,通常选择12MHz或24MHz的频率。电容则是用来配合晶振工作,与晶振一起形成一个振荡回路,产生稳定的时钟信号,往往电容阻值30PF。

而电容的作用,主要就是一个滤波,就是去除外界的一些噪声干扰,使得信号更加准确

具体一点通过在振荡器电路中添加适当的电容,可以形成一个滤波网络,用于滤除这些噪声,从而提供一个更稳定和纯净的时钟信号。

对于32单片机而言,内部具有高速时钟和低速时钟,但是这种时钟进度比较低,所以我们往往使用外部时钟。

内部时钟精度低,原因主要在于其内部时钟是由芯片内部的RC振荡器产生的。这种振荡器的精度存在一定的问题,大约有1%左右的误差,对于程序运行而言就比较容易出错。因此,在精度要求较高的应用场合,如果可能,最好使用外部的晶振来提供时钟信号

对于32时钟电路,以我最近画的电路图所示:

32时钟源有四个,内部高低速时钟,外部高低速时钟,对应的对象是不一样的。

外部高速电路,主要组成8M晶振和2个20PF的电容,还有1M电阻的作用在于:

1.阻抗匹配:该电阻可以作为阻抗匹配,使晶体的驱动电路或晶体本身处于更良好的工作条件。

2.帮助晶振起振:并联1MΩ的电阻有助于晶振的起振。原因:它可以增加电路中的负性阻抗(-R),即提升增益,从而缩短晶振的起振时间,使晶振更容易起振。

3.微调时钟频率:两个外接电容能够微调晶振产生的时钟频率。

4.保护电路的作用。

外部低速时钟电路,组要组成在于32.768KHZ和2个20PF的电容。作用和之前是一样的。

三复位电路讲解:

无论对于51还是32单片机而言,复位电路关键在于,防止单片机程序跑飞导致死机,以及防止出现BUG重启,让程序从头开始运行。

而51和32区别,对于重启而言,就是需要理解单片机重启区域的理解。

51单片机复位电路关键:

而对于51单片机而言,我们需要有上电复位和按键复位。必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。也就是电容充电时间最小需要2个机械周期。1/11059200决定了电容充电时间,从而决定了电容阻值。

复位分为软件和硬件,对于硬件电路分为上电复位和按键复位两种方式。上电复位是通过外部复位电路的电容充放电来实现的。在系统上电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位,这也就是为什么带电路上电就会从头开始运行程序。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。

按键复位是指通过接通一按钮开关,使单片机进入复位状态。当按键按下的时候,电容C通过200Ω电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高电平会维持到按键释放,从而满足单片机复位的条件实现按键复位。对于按键按下到松手的时间远远超过2个机械周期。

对于32单片机,复位电路稍微复杂一点,主要包含软件复位和硬件复位

硬件包含:NRST引脚上的低电平(外部复位)

软件包含:窗口看门狗计数终止(WWDG复位)  独立看门狗计数终止(IWDG复位) 软件复位(SW复位)  低功耗管理复位 可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。

对于电路讲解,和51单片机而言不同部分在于,32单片机是低电平复位,其次不一样的部分在于需要复位的时间不同。

复位源将最终作用于RESET引脚,并在复位过程中保持低电平。复位入口矢量被固定在 地址0x0000_0004。芯片内部的复位信号会在NRST引脚上输出,脉冲发生器保证每一个(外部或内部)复位源都能有 至少20μs的脉冲延时;当NRST引脚被拉低产生外部复位时,它将产生复位脉冲。

四电源电路:

电源就是供电,但是对于单片机而言,电源不能够波动太大,负责输入电压变化太大的话,

因为就容易导致单片机一些外设工作需要的电压不同,有的高有的低,3.3V/5V左右能够使得外设正常工作。但是一旦不同太大就容易使得电路很多外设无法正常工作。

所以往往电源电路的设计就需要,稳压电路,使得输入电压非常稳定,能够让单片机正常工作。

对于51单片机而言运用的比较少,因为以下几点:

  1. 电源适应性:51单片机的工作电压范围相对较宽,通常可以在较大的电压范围内正常工作。因此,在一些对电源稳定性要求不高的场合,可以直接使用未经稳压的电源为单片机供电。
  2. 简化设计:省略稳压电路可以简化电源电路的设计,减少元器件数量,降低成本和故障率。在一些低成本、低复杂度的应用中,这是可以接受的。

需要注意地方在于51单片机的EA引脚需要连接。

因为51单片机EA引脚决定了,程序从哪里的区域,开始运行。EA高电平就从内部的ROM开始运行,如果接低电平就从外挂ROM开始运行。

这点设计主要是针对于单片机,有时候程序太多了存不下就会选择外挂ROM。对于默认而言就需使用EA高电平。

对于32单片机就需要稳压模块,原因有以下几点:

1.电压稳定性要求高:32单片机通常需要稳定的电源来保证其正常工作,因为电源电压的波动可能会影响单片机的性能和稳定性。稳压电路可以将输入电压转换成稳定的输出电压,为32单片机提供稳定的电源。

2.降低电源噪声:稳压电路可以降低电源中的噪声和干扰,从而减少对单片机工作的影响。

3.防止电源过压和欠压:稳压电路可以防止电源过压和欠压对单片机的影响,从而保护单片机不受损坏。

稳压电路过程大概讲解:ASM1117-3.3这里3.3也就是3.3V,ASM1117有很多种电压稳压的模块不止3.3V。大概过程就是ASM1117将输入的电压,线性转化为3.3V电压输送给电路,然后为了电压稳定输送,因为有时候对吧,电压来不及转化输送就容易导致单片机有时间内,电路没有电。所以需要电容充电放电,充当一个稳定的蓄水池,永远有电输送给单片机供电。

ASM1117-3.3V的输入电压范围为4.75V至12V,输出电压为3.3V。在最大输出电流下,该稳压器的压降保证不超过1.3V,并随着负载电流的减小而逐渐减小。作用如下:

1.微调与调整:ASM1117-3.3V的片上微调将参考电压调整到1.5%的误差范围内,并调整电流限制以最大限度地减少稳压器和电源电路过载造成的压力。

2.线路调整与负载调节:在最大输出电流下,该稳压器的线路调整最大为10mV,负载调节最大为15mV。此外,电压线性度为0.2%,负载线性度为0.4%。

3.温度范围与电气特性:ASM1117-3.3V的工作结温范围为-40℃至125℃,存储温度范围为-65℃至150℃。其电气特性包括输出电压精度高达±2%,稳定工作电压范围高达12V,纹波抑制最小为60dB等。

以上就是对单片机最小系统的讲解。B站也有我相关讲解视频,ID同博客。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker基础(持续更新中)

# 第1步,去DockerHub查看nginx镜像仓库及相关信息# 第2步,拉取Nginx镜像 docker pull nginx# 第3步,查看镜像 docker images # 结果如下: REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 60…

【DDD】学习笔记-代码模型的架构决策

代码模型属于软件架构的一部分,它是设计模型的进化与实现,体现出了代码模块(包)的结构层次。在架构视图中,代码模型甚至会作为其中的一个视图,通过它来展现模块的划分,并定义运行时实体与执行视…

Cmake语法学习3:语法

1.双引号 1.1 命令参数 1)介绍 命令中多个参数之间使用空格进行分隔,而 cmake 会将双引号引起来的内容作为一个整体,当它当成一个参数,假如你的参数中有空格(空格是参数的一部分),那么就可以使…

Python中with管理上下文

上下文管理器 上下文管理器本质就是能够支持with操作。 任何实现了 __enter__() 和 __exit__() 方法的对象都可称之为上下文管理器,上下文管理器对象可以使用 with 关键字。显然,文件(file)对象也实现了上下文管理器协议。 实现…

一文速学-selenium高阶操作连接已存在浏览器

前言 不得不说selenium不仅在自动化测试作为不可或缺的工具,在数据获取方面也是十分好用,能够十分快速的见到效果,这都取决于selenium框架的足够的灵活性,甚至在一些基于web端的自动化办公都十分有效。 通过selenium连接已经存在…

幻兽帕鲁能在Mac上运行吗?幻兽帕鲁Palworld新手攻略

幻兽帕鲁能在Mac上运行吗? 《幻兽帕鲁》目前还未正式登陆Mac平台,不过通过一些方法是可以让游戏在该平台运行的。 虽然游戏不能在最高配置下运行,但如果你安装了CrossOver这个软件,就可以玩了。这是为Mac、Linux和ChromeOS等设计…

oracle19C 密码包含特殊字符@ 导致ORA-12154

oracle 19C 密码包含特殊字符 出现登录失败,针对此问题一次说个明白 ORA-12154: TNS:could not resolve the connect identifier specified Oracle 19c之前密码是可以包含特殊字符,但是如果包含特殊字符需要双引号 比如oracle11g 正常 如果密码包含特殊…

MongoDB从入门到实战之MongoDB快速入门

前言 上一章节主要概述了MongoDB的优劣势、应用场景和发展史。这一章节将快速的概述一下MongoDB的基本概念,带领大家快速入门MongoDB这个文档型的NoSQL数据库。 MongoDB从入门到实战的相关教程 MongoDB从入门到实战之MongoDB简介👉 MongoDB从入门到实战…

大数据本地环境搭建03-Spark搭建

需要提前部署好 Zookeeper/Hadoop/Hive 环境 1 Local模式 1.1 上传压缩包 下载链接 链接:https://pan.baidu.com/s/1rLq39ddxh7np7JKiuRAhDA?pwde20h 提取码:e20h 将spark-3.1.2-bin-hadoop3.2.tar.gz压缩包到node1下的/export/server目录 1.2 解压压…

数据结构——实验01-线性表的链式存储和操作

一、实验内容 二、算法思想与算法实现 1、解题思想 (1)逆序创建链表La就是使用头插法创建一个链表,所谓头插法就是在创建链表时始终将新元素插入到头结点之后,而正序创建链表Lb就是使用尾插法创建一个链表,所谓尾插法…

Pycharm python用matplotlib 3D绘图显示空白解决办法

问题原因: matplotlib版本升级之后显示代码变了,修改为新的 # ax Axes3D(fig) # 原代码 ax fig.add_axes(Axes3D(fig)) # 新代码import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Ax…

五大架构风格之一:数据流风格

数据流风格详细介绍 系统架构数据流风格是一种软件体系结构风格,它强调了系统内部不同部分之间的数据流动。这种风格侧重于描述系统中的数据处理过程,以及数据是如何从一个组件传递到另一个组件的。以下是系统架构数据流风格的详细介绍: 1 基…

Hadoop:HDFS学习巩固——基础习题及编程实战

一 HDFS 选择题 1.对HDFS通信协议的理解错误的是? A.客户端与数据节点的交互是通过RPC(Remote Procedure Call)来实现的 B.HDFS通信协议都是构建在IoT协议基础之上的 C.名称节点和数据节点之间则使用数据节点协议进行交互 D.客户端通过一…

代码随想录算法训练营29期Day41|LeetCode 343,96

文档讲解:整数拆分 不同的二叉搜索树 343.整数拆分 题目链接:https://leetcode.cn/problems/integer-break/description/ 思路: 题目要求我们拆分n,拆成k个数使其乘积和最大,然而题目中并没有给出k,所以…

影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)

电影院订票选座小程序目录 目录 基于微信小程序的电影院购票系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户功能实现 2、管理员功能实现 (1)影院信息管理 (2)电影信息管理 (3)已…

算法学习——华为机考题库6(HJ36 - HJ40)

算法学习——华为机考题库6(HJ36 - HJ40) HJ36 字符串加密 描述 有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中…

链表——C语言——day17

链表 链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。在用数组存放数据时,必须事先定义固定的长度(即元素个数)。链表则没有这种缺点,它根据需要开辟内存单元。 链表有一个“头指针“变量,图中…

kubekey网页版安装k8s集群操作流程

kubekey可以一键拉起k8s集群并完成kubesphere的部署,以后kubekey简称kk。kk 3.2版本以前都是在宿主机上完成对应的创建集群、添加节点、升级等操作的,3.2版本后开始往页面操作的方向演进,kk 3.2版本现在还是alpha,所以不推荐在生产…

fastadmin后台自定义按钮和弹窗

工具栏自定义按钮-ajax请求 前端代码 1.在对应模块的模板文件index.html添加自定义按钮&#xff0c;注意按钮要添加id以绑定点击事件 <div class"panel panel-default panel-intro">{:build_heading()}<div class"panel-body"><div id&qu…

STM32通用定时器、计数器

时间记录&#xff1a;2024/1/30 一、时钟介绍&#xff08;TIM2-TIM5&#xff09; &#xff08;1&#xff09;通用定时器时钟频率介绍 内部时钟AHB为72MHz&#xff0c;经过APB1预分频器2分频变为36MHz&#xff0c;TIMxClk定时器时钟由时钟树可以看出&#xff0c;如果APB1预分…