51单片机基础01 单片机最小系统
目录
一、什么是51单片机
二、51单片机的引脚介绍
1、VCC GND
2、XTAL1 2
3、RST
4、EA
5、PSEN
6、ALE
7、RXD、TXD
8、INT0、INT1
9、T0、T1
10、MOSI、MISO、SCK
11、WR、RD
12、通用IO P0
13、通用IO P1
14、通用IO P2
三、51单片机的最小系统
1、供电与功能选择
2、复位
3、时钟-11.0592MHz与12MHz
(1)12MHz晶振频率
(2)11.0592MHz晶振频率
4、P0口
一、什么是51单片机
51单片机(如8051)是非常经典的一款微控制器,它的最小系统是指将8051微控制器核心部分与必要的外围硬件连接起来,形成一个能正常工作的最简单系统。最小系统通常包括以下几个重要的引脚和电路元件,每个引脚都有其特定的作用。
二、51单片机的引脚介绍
51单片机(如8051)是非常经典的一款微控制器,它的最小系统是指将8051微控制器核心部分与必要的外围硬件连接起来,形成一个能正常工作的最简单系统。最小系统通常包括以下几个重要的引脚和电路元件,每个引脚都有其特定的作用。下面是各个引脚和信号的详细阐述:
1、VCC GND
VCC:电源正极,提供单片机所需的电压,通常为5V。
GND:电源负极,也就是地,供电系统的参考点。
这些引脚是单片机正常工作所必须的,VCC为单片机提供电力,GND提供回路的接地。
2、XTAL1 2
XTAL1和 XTAL2是单片机的外部晶振引脚。
用于连接外部的晶体振荡器或外部时钟源。8051单片机内部的时钟源通常由这两个引脚与一个晶体振荡器共同组成。
XTAL1为输入端,连接外部晶体的一个端口,XTAL2为输出端,连接外部晶体的另一个端口。
该振荡器用来为单片机提供时钟信号,通常为12MHz,影响CPU的时钟频率。
3、RST
RST:复位引脚,用于将单片机初始化。通过外部电路,给该引脚提供一个高电平脉冲,能够使51单片机重新启动,恢复到初始状态。
通常在启动时,或者系统异常时,进行复位操作,以确保单片机从已知状态开始工作。
4、EA
EA(External Access):外部存储器访问控制引脚。通常连接到高电平,表示程序存储器(如ROM)来自内部存储器。
5、PSEN
PSEN:程序存储器使能引脚。用于控制外部存储器的读取。
当PSEN为低/高电平时,8051单片机会从外部程序存储器(如EPROM或Flash)读取程序代码,一般悬置空。
6、ALE
ALE(地址锁存使能):地址锁存使能引脚。用来提供地址锁存信号,当8051需要访问外部数据存储器或程序存储器时,ALE信号会产生一个脉冲来锁存地址。一般悬空。
7、RXD、TXD
RXD(接收数据引脚):串行口的接收端,通常与外部设备的发送端连接。用于接收来自外部设备的串行数据。
TXD(发送数据引脚):串行口的发送端,通常与外部设备的接收端连接。用于向外部设备发送串行数据。
51单片机下载程序也需要通过这两个IO,所以一般需要进行排针引出。
8、INT0、INT1
INT0 和 INT1:外部中断引脚。用于响应外部事件触发中断信号(例如按键输入或外部传感器信号)。通过这两个引脚,8051可以处理外部中断,使系统能够响应外部环境变化。一般悬空。
9、T0、T1
T0 和 T1:定时器/计数器引脚。用于连接定时器和外部事件源,提供精确的时间间隔控制。可以用来实现定时操作、计数外部信号等功能。一般悬空。
10、MOSI、MISO、SCK
MOSI(主输出从输入):用于SPI通信协议中,主设备通过该引脚向从设备发送数据。
MISO(主输入从输出):用于SPI通信协议中,主设备通过该引脚接收从设备发送的数据。
SCK(时钟):用于SPI协议中,提供时钟信号,同步数据传输的速率。
11、WR、RD
WR(写使能):用于控制外部存储器的写操作。当WR信号为低电平时,表示数据将被写入外部存储器。
RD(读使能):用于控制外部存储器的读操作。当RD信号为低电平时,表示数据将从外部存储器读取。
12、通用IO P0
P0:8051单片机的第一个I/O口,通常由8个引脚组成,提供双向数据传输。该端口通常用于与外部设备的数据交换,可以作为输入或者输出。一般需要通过电阻上拉到VCC上提供驱动能力。
13、通用IO P1
P1:8051单片机的第二个I/O口,类似于P0,提供双向数据传输,通常用来与外部设备进行通信。P1口通常也连接到外部设备,比如LED显示、按钮等。不需要通过电阻上拉到VCC上提供驱动能力。
14、通用IO P2
P2:8051单片机的第三个I/O口,和P0、P1类似,用于数据传输。P2口通常用于连接外部的设备、传感器、开关等。
三、51单片机的最小系统

1、供电与功能选择
如图所示为51单片机的最小系统,其中EA、VCC需要连接到VCC供电,GND需要连接GND供电。
2、复位

可以看到按下按键之前NRST处于GND,按下按键后NRST就被接到VCC,从而实现手动复位,而C3用于实现削弱按键的抖动。
3、时钟-11.0592MHz与12MHz

一般电容选择20-40pf区间,晶振则选择11.0592MHz或12MHz。
(1)12MHz晶振频率
主要原因:
系统时钟的标准化:12MHz 是8051单片机时钟频率的常见标准之一,因为许多8051系列单片机(以及其他类似的8位单片机)都默认使用12MHz频率,这使得该频率成为业界的标准。
性能需求:12MHz的频率能提供适当的处理速度,既满足了基本控制需求,又不会导致功耗过高。
优点:
较高的计算速度:12MHz频率下,8051单片机的机器周期为1微秒(12 MHz / 12 = 1 微秒)。较高的频率使得单片机在进行运算、控制和数据处理时能够更快响应更高的时钟频率,提供了相对较高的处理能力,适合一些需要较快响应的应用场景。
缺点:
较高功耗:较高的频率意味着功耗更大,尤其是在高负载条件下。这对于低功耗应用不是最佳选择。
定时器精度:12 MHz的时钟频率和标准的通信协议(如串口通信的波特率)之间有一定的差异,可能导致需要进行额外的计算或调整,才能确保定时精度。
(2)11.0592MHz晶振频率
主要原因:
精确的波特率生成:11.0592 MHz 的晶振频率是为了提供一个精确的串口波特率,特别是在标准的串行通信中(例如RS-232、UART等)。
波特率生成:使用11.0592 MHz时,8051单片机的时钟频率能够与标准的波特率(如9600、19200等)实现较好的匹配,因为8051单片机内部的时钟频率与波特率生成器之间有直接的关系。
计算方法:
对于11.0592MHz,执行单周期指令时间为1/11.0592MHz,而机器周期在此基础上*12
对于12MHz,执行单周期指令时间为1/12MHz,而机器周期在此基础上*12
对于9600波特率,要求速度为1/9600
分别对应的分频系数为:1/9600 / (1/11059200*12)=96
分别对应的分频系数为:1/9600 / (1/12*12)=104.1666
可以看到对于11.0592MHz,其分频系数为整数倍,从而可以实现精确的波特率。同理可计算115200波特率等。
优点:
精确的串口波特率:11.0592 MHz 是为了与常见的串行通信标准波特率精确匹配(例如9600、19200等),这对于通信应用至关重要。以11.0592 MHz频率为基准,能确保波特率的计算更加精确,减少误差。
兼容性强:大多数使用11.0592 MHz频率的8051单片机能够与外部设备、通信协议等更好兼容,尤其是在需要高精度串口通信的场合。
缺点:
性能较低:与12 MHz相比,11.0592 MHz频率的时钟周期略长,这意味着它的处理速度稍微慢一些,可能会影响一些对处理速度要求较高的应用。
功耗略高:虽然频率略低,但相比于更低频率的晶振,11.0592 MHz仍然可能产生较高的功耗。
4、P0口
由于内部没有上拉电阻,如果直接输出高电平,则由内部寄存器提供直接输出,这个电流是极其微弱的,其无法正常输出到5V,通常为4.0V左右的高阻态,不易被外部电路识别。

一般根据所需电流,常用阻值为4.7KΩ、5.1KΩ、10KΩ。上拉电阻还可以提供稳定的输出端电位,不会出现高阻态的情况;同时解决了CMOS不能悬空引脚的问题,并提供驱动电流的功能。
相关文章:
51单片机基础01 单片机最小系统
目录 一、什么是51单片机 二、51单片机的引脚介绍 1、VCC GND 2、XTAL1 2 3、RST 4、EA 5、PSEN 6、ALE 7、RXD、TXD 8、INT0、INT1 9、T0、T1 10、MOSI、MISO、SCK 11、WR、RD 12、通用IO P0 13、通用IO P1 14、通用IO P2 三、51单片机的最小系统 1、供电与…...
RocketMQ文件刷盘机制深度解析与Java模拟实现
引言 在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、…...
python语言基础-5 进阶语法-5.3 流式编程
声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。 5.3 流式编程(参考链接:https://www.zhihu.com/question/59062…...
JVM性能分析工具JProfiler的使用
一、基本概念 JProfiler:即“Java Profiler”,即“Java分析器”或“Java性能分析工具”。它是一款用于Java应用程序的性能分析和调试工具,主要帮助开发人员识别和解决性能瓶颈问题。 JVM:即“Java Virtual Machine”,…...
面试题: Spring中的事务是如何实现的?
Spring中的事务是如何实现的? 背景个人原因的背景正规一点的背景 答案一些思绪和灵感个人理解程度拓展知识Spring的事务管理主要涉及哪几个类?在Spring中,事务管理的流程是怎样的? 背景 个人原因的背景 想换工作, 刷面试题看到的问题, 简单记录一下, 算是个人…...
vue2-代理服务器插槽
解决跨域问题 配置代理服务器 代理服务器位于前端应用(客户端)和真实的后端服务器之间。当配置了代理服务器后,前端应用的请求不再直接发送到后端服务器,而是发送到代理服务器。代理服务器在接收到请求后,会根据预先配置的规则将请求转发到真…...
(python)unittest框架
unittest unnitest介绍 TestCase测试用例 书写真正的用例脚本...
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务 IDS入侵检测系统 Intrusion Detection System 安全检测系统,通过监控网络流量、系统日志等信息,来检测系统中的安全漏洞、异常行为和入侵行为。 分为&am…...
面试小结(一)
1、hashmap的底层设计原理以及扩容规则,是否线程安全,如何线程安全。 底层原理:数组 链表 红黑树。HashMap 的底层实现是一个数组,数组中的每个元素是一个链表或红黑树(JDK 1.8 以后,当链表长度超过一定…...
笔试-笔记2
1.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是() A.int mmax(22,59,70); B.int mmax(22,max(59,70)); C.int mmax(max(22,59),70); D.int mmax(59,max(22,70)); 解析…...
html5复习二
知识点: 1、音频标签 <audio controls"controls" loop"loop" preload"auto" src"张恒远 - 追梦赤子心.mp3" muted"muted" > </audio> controls:显示控件 必须写 loop:循环播放&#x…...
大模型呼入机器人系统如何建设?
大模型呼入机器人系统如何建设? 作者:开源呼叫中心系统 FreeIPCC, Github地址:https://github.com/lihaiya/freeipcc 大模型呼叫中心呼入机器人系统的建设是一个涉及多个环节和领域的综合性工程。以下是一个详细的步骤指南,涵盖了…...
docker 部署 kvm 图形化管理工具 WebVirtMgr
镜像构建 官方最后一次更新已经是 2015年6月22日 了,官方也没有 docker 镜像,这边选择咱们自己构建如果你的服务器有魔法,可以直接 git clone 一下 webvirtmgr 的包,没有的话,可以和我一样,提前从 github 上…...
【Unity How】Unity中如何实现物体的匀速往返移动
直接上代码 using UnityEngine;public class CubeBouncePingPong : MonoBehaviour {[Header("移动参数")][Tooltip("移动速度")]public float moveSpeed 2f; // 控制移动的速度[Tooltip("最大移动距离")]public float maxDistance 5f; // 最大…...
Block Successive Upper Bound Minimization Method(BSUM)算法
BSUM优化方法学习 先验知识参考资料1 A Unified Convergence Analysis of Block Successive Minimization Methods for Nonsmooth OptimizationSUCCESSIVE UPPER-BOUND MINIMIZATION (SUM) 连续上限最小化算法THE BLOCK SUCCESSIVE UPPER-BOUND MINIMIZATION ALGORITHM 块连续上…...
力扣2388. 将表中的空值更改为前一个值
一、数据 2388. 将表中的空值更改为前一个值 表: CoffeeShop ---------------------- | Column Name | Type | ---------------------- | id | int | | drink | varchar | ---------------------- id 是该表的主键(具有唯一值的列…...
【从零开始的LeetCode-算法】3233. 统计不是特殊数字的数字数量
给你两个 正整数 l 和 r。对于任何数字 x,x 的所有正因数(除了 x 本身)被称为 x 的 真因数。 如果一个数字恰好仅有两个 真因数,则称该数字为 特殊数字。例如: 数字 4 是 特殊数字,因为它的真因数为 1 和…...
Redis配置主从架构、集群架构模式 redis主从架构配置 redis主从配置 redis主从架构 redis集群配置
Redis配置主从架构、集群架构模式 redis主从架构配置 redis主从配置 redis主从架构 redis集群配置 1、主从模式1.1、主节点配置1.2、从节点配置1.3、测试 2、集群模式 1、主从模式 1.1、主节点配置 # 监听所有网络接口 bind 0.0.0.0# cluster-enabled表示为集群模式ÿ…...
2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略 完整参考论文(2)
5.2 问题一模型的建立与求解 5.2.1 分析发展情况 为了更好地理解数据的变化趋势,利用matlab通过六个子图对宠物行业中的关键变量进行了可视化展示。 图 1. 宠物数量变化展示了 猫数量、狗数量 和 总宠物数量 在 2019-2023 年间的变化趋势。结果显示:猫的数量呈逐年上升的趋…...
HTML实现 扫雷游戏
前言: 游戏起源与发展 扫雷游戏的雏形可追溯到 1973 年的 “方块(cube)” 游戏,后经改编出现了 “rlogic” 游戏,玩家需为指挥中心探出安全路线避开地雷。在此基础上,开发者汤姆・安德森编写出了扫雷游戏的…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
工厂方法模式和抽象工厂方法模式的battle
1.案例直接上手 在这个案例里面,我们会实现这个普通的工厂方法,并且对比这个普通工厂方法和我们直接创建对象的差别在哪里,为什么需要一个工厂: 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类: 两个发…...
