理解51单片机最小系统的工作原理

article/2025/6/22 15:05:10

51单片机最小应用系统

概述

要想使用单片机,第一个要搭建的电路就是单片机的最小系统,有了这个最小系统单片机就可以去正常的工作,即使没有其他的外围电路(显示器啥的),也可以对单片机进行程序的编写,程序也可以在单片机里面正常的运行。其包括MCS-51系列芯片一块,(51初步认识)电源电路,时钟电路,复位电路。

51单片机最小系统原理图

51单片机最小系统原理图

最小系统用到的引脚

1、主电源引脚
VCC(40):电源输入,接+5V电源
GND(20):接地线

2、外接晶振引脚
XTAL1(19):片内振荡电路的输入端(片内反向放大器输入)
XTAL2(18):片内振荡电路的输出端(片内反向放大器输出)1

3、控制引脚
RST/VPP(9):复位引脚,引脚上出现2个机器周期(如果用11.0592Mhz的晶振,一个机器周期为1us,一个机器周期等于12个时钟周期)的高电平将使单片机复位

4、 EA ‾ \overline{\text{EA}} EA/VDD
ROM选用端。该引脚有效时(低电平)只选用片外ROM,否则计算机上电或复位后先用片内ROM。如果选择外部的存储器,太浪费单片机仅有的资源,所以这一脚永远接电源5V(如上图所示),使用单片机的内部存储器。

1.电源电路

任何的电子设备都需要给其供应相对应的工作电源才可以正常工作,此芯片可用+5V的直流电源供电
在这里插入图片描述

电源电路

2.时钟电路

单片机的芯片是数字电路芯片,数字芯片要想正常工作,都需要有一个基本的时钟基准,要在这个时钟脉冲的步调下去工作。时钟电路主要由外部的时钟晶振来提供(晶体振荡器产生一定频率的方波,单片机常用6MHz、11.0592MHz、12MHz),用作单片机内部各功能部件按序协调工作的控制信号,其周期称为时钟周期。
在这里插入图片描述
Y1为晶振,这个是无源晶振,配合单片机内部的振荡电路能够产生单片机工作的时钟基准。
电容的作用

  1. 辅助晶振起振
  2. 维持晶振稳定工作,过滤掉晶振部分的高频信号,让晶振工作的时候更加稳定。产生稳定的时钟信号。

3.复位电路2

复位电路使单片机从一个初始的状态去执行程序
在这里插入图片描述

复位电路

此图的为高电平复位,低电平正常工作, RST是复位端,单片机的振荡器工作时,该引脚上出现持续两个机器周期3的高电平就可以实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。

实现高电平脉冲方法:电容充放电,上电瞬间,电容充电,RST为高电平复位;电容充满电,断路,RST为低电平。以此产生一段时间高电平再变成低电平,为单片机提供复位信号。

详细解释:当这个电路处于稳态时,电容起到隔离直流的作用,隔离了+5V,下边部分电路就没有电压差的产生,所以电容C1 以下部分的电位都是和GND 相等的,也就是 0V。

电容 C1 上方电压是 5V,下方是 0V,根据我们初中所学的知识,电容 C1 要进行充电,正离子从上往下充电,负电子从 GND 往上充电,这个时候电容对电路来说相当于一根导线,全部电压都加在了 R1 这个电阻上,那么 RST端口位置的电压就是 5V,随着电容充电越来越多,即将充满的时候,电流会越来越小,那RST 端口上的电压值等于电流乘以 R1 的阻值,也就会越来越小,一直到电容完全充满后,线路上不再有电流,这个时候RST 和 GND 的电位就相等了也就是 0V 了。这个单片机是高电平复位,低电平正常工作,所以正常工作的电压是 0V,没有问题。
原文所在:布尔青年连接

欢迎关注技术公众号,获取更多硬件学习干货!
在这里插入图片描述

我们能为你提供什么?
技术辅导:C++、Java、嵌入式软件/硬件
项目辅导:软件/硬件项目、大厂实训项目
就业辅导:就业全流程辅导、技术创业支持
对接企业HR:培养输送优质性人才


  1. 外接晶体时,XTAL1与XTAL2各接晶体的一端,接外界晶体与片内发现放大器构成振荡器
    添加链接描述 ↩︎

  2. 复位电路描述更详细,这部分应用了这篇文章 ↩︎

  3. 6个时钟周期构成1个机器周期 ↩︎


http://chatgpt.dhexx.cn/article/A513BjVK.shtml

相关文章

51单片机原理与设计方案(包含原理图与PCB)

一、单片机简介 单片机:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Microcomputer)也叫…

如何获得海量的RoboCode代码

原文地址:如何获得海量的RoboCode代码 作者:胡泊1982 很多对人工智能感兴趣的朋友受限于资金和场地的限制,只能转向虚拟平台发展。我们机器人天空网站也曾经做过专门的专题介绍了几种常见的虚拟机器人竞赛平台(http://www.robotsk…

Robocode 参数大揭密

Robocode 参数大揭密 文档选项 将此页作为电子邮件发送 最新推荐 Java 应用开发源动力 - 下载免费软件,快速启动开发 级别: 初级 天翼.李Skyala.Li, 2002 年 12 月 02 日 下面天翼.李(Skyala.Li)就和大家一起来看看Robocode中重要的参数并分析分析…

在IDEA上部署Robocode

Robocode的下载和安装 下载网址:https://robocode.sourceforge.io/ 下载Robocode 解压,点击运行压缩包中的jar包完成安装,安装完成后得到肉搏code的文件夹 在Idea上部署robocode 打开IDEA,新建Java项目,注意项目的…

教你玩Robocode(4)——规则系统

理解Robocode的规则系统,你才能写出更好的坦克。许多规则在Robotcode的Roles类中进行了描述。为了便于大家理解,本文对各种规则参数进行详细叙述。 时间 robocode的时间单位为”轮”(turn)。因此,在描述移动速度时,单位为”像素每…

RoboCode的Intellij环境搭建

2019独角兽企业重金招聘Python工程师标准>>> RoboCode自带的源码编辑器十分不便,本次参考youtube上的教程搭建Intellij的roboCode开发环境,最终实现能够编写、编译、运行、调试机器人。 创建项目 首先,用Intellij IDEA新建一个pro…

利用Jython开发Robocode机器人

(转载请注明来源于 金庆的专栏)先用Python写个简单的机器人: from robocode import * class SampleBlaze(Robot): def run(self): while 1 : self.ahead( 100 ) self.back( 100 ) 编译为jar包,注意…

Robocode Rumble: 冠军的技巧

Robocode Rumble: 冠军的技巧 Rumble 冠军揭示胜利的机器人背后的策略 文档选项 将此页作为电子邮件发送 最新推荐 Java 应用开发源动力 - 下载免费软件,快速启动开发 级别: 初级 Dana Triplett Barrow, 自由技术撰稿人 2002 年 12 月 03 日 Roboc…

Robocode教程7——雷达锁定

在这次教程中,我们要写这样一个代码,它将让敌人逃不出我们的眼睛。雷达锁定是一个高效战斗机器人的基础,因为robot只有执行onScannedRobot方法,我们才能够获取敌人的信息,而onScannedRobot方法只有在我们的雷达扫描到敌…

robocode 安装 使用

记录一下 环境: Windows 7 64 JDK 1.8.0_131 一、安装 1、下载 https://robocode.sourceforge.io/ 当前最新版本:robocode-1.9.3.6-setup.jar 2、安装 双击 robocode-1.9.3.6-setup.jar 默认安装在C盘,并创建桌面快捷方式&#xff1b…

robocode java_IBM Robocode Java学习利器(1)Robocode 入门

编程肯定要学语言,相信很多人都会选java,无论什么书千篇一律都是从语法讲起,语法的枯燥反正我是深有体会的,但不先学语法还能学什么?编程的成就感来源于能做出什么东西,能实现什么,在没有做出实际的东西之前…

智能机器人编程游戏robocode的运行代码简析

智能机器人编程游戏robocode的运行代码简析金庆2007.6.1阅读robocode1.3的源代码,查看运行的原理。 (转载请注明来源于 金庆的专栏) 主线程Battle.run()-------------------主线程是Battle.run(), 循环进行多局的较量。每一局初始化后&…

Robocode

原文地址:Robocode 作者:麦麦和阿纳内 什么是Robocode? 其实我对机器人一直很感兴趣。我记得在我还是初中的时候,就知道 AplleⅡ上有一个程序,用它来编写简单的机器人程序,然后相互作战。当时自己还完全不懂编程&…

教你玩Robocode(1)

最近在上网时发现了一个叫做Robocode的游戏。最近我已经对它上瘾了。Robocode官方网站上对Robocode的介绍: Robocode is a programming game, where the goal is to develop a robot battle tank to battle against other tanks in Java or .NET. The robot battles are runni…

Robocode:基础知识及入门示例

文章目录 参考定义坐标系简单的API可Overwrite的方法一个简单示例 参考 百度文库-Robocode 定义 机器人:一些可以旋转、移动、射击、侦测的小型坦克。 机器人的底盘、火炮和雷达系统都可以独立运动,也可以相互“锁定”,一起移动。换句话说…

robocode 相关的总结

基础知识 1. heading 角度系 如图所示,所谓heading角,即从Y轴出发,然后顺时针绕回Y轴的这么个角度区间,取值范围: [0,360] 2. bearing角度系 所谓bearing 角,即从Y轴顺、逆时针出发,绕半圈回到…

世界robocode机器人的四大运动方式分析

摘要:前言Robocode在短短的时间内风靡全球,全世界的robocode爱好者设计出了大量的优秀智能机器人,他们都拥有各自的运动方式,有的很轻易被击中,有的却很难射击。设计一个好的运动方式是优秀robocode机器人取胜的要害。上届世界中级组冠军Fermat就是靠他让敌人难以琢…

Robocode教程1——安装、运行、配置

Robocode 的安装 系统安装最小环境要求: CPU:Pentium2/400MHz以上 内存:64MB以上 硬盘:10M以上 对硬件要求也不是完全绝对的,你用小的机器配置,带来的是比较慢的运行速度。当然具备以上硬件条件后,还要具有Java运行环…

笔记:Istio 组件 基础概念学习

文章目录 1. Istio是什么?1.1 读音1.2 简介1.3 服务网格是什么?1.4 为什么使用Isito?1.5 Istio 是如何诞生的?1.6 为什么我想用 ISTIO?1.7 目前Istio支持哪些部署环境?1.8 架构1.8.1 组件1.8.1.1 Envoy1.8.1.2 Pilot1…