51单片机基础01 单片机最小系统

embedded/2024/11/19 23:53:57/

目录

一、什么是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

        XTAL1XTAL2单片机的外部晶振引脚。

        用于连接外部的晶体振荡器或外部时钟源。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

        INT0INT1:外部中断引脚。用于响应外部事件触发中断信号(例如按键输入或外部传感器信号)。通过这两个引脚,8051可以处理外部中断,使系统能够响应外部环境变化。一般悬空。

9、T0、T1

        T0T1:定时器/计数器引脚。用于连接定时器和外部事件源,提供精确的时间间隔控制。可以用来实现定时操作、计数外部信号等功能。一般悬空。

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不能悬空引脚的问题,并提供驱动电流的功能。


http://www.ppmy.cn/embedded/138905.html

相关文章

小林Coding—Java「五、Java虚拟机面试篇」

五、Java虚拟机面试篇(难⭐️⭐️⭐️) 内存模型 JVM的内存模型介绍一下 JVM运行时内存共分为虚拟机栈、堆、元空间、程序计数器、本地方法栈 五个部分。还有一部分内存叫直接内存,属于操作系统的本地内存,也是可以直接操作的。 …

thinkphp6 入门(2)--视图、渲染html页面、赋值

use think\facade\View;View::assign([name > ThinkPHP,email > thinkphpqq.com]);View::assign(data,[name > ThinkPHP,email > thinkphpqq.com]); View::fetch(index);助手函数 view(index, [name > ThinkPHP,email > thinkphpqq.com ]); 模板输出 {$na…

集群聊天服务器(12)nginx负载均衡器

目录 负载均衡器nginx负载均衡器优势 如何解决集群聊天服务器跨服务器通信问题?nginx的TCP负载均衡配置nginx配置 负载均衡器 目前最多只能支持2w台客户机进行同时聊天 所以要引入集群,多服务器。 但是客户连哪一台服务器呢?客户并不知道哪一…

【jvm】方法区的理解

目录 1. 说明2. 方法区的演进3. 内部结构4. 作用5.内存管理 1. 说明 1.方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码缓存等数据。它是各个线程共享的内存区域。2.尽管《Java虚拟机规范》中把方法区描述为堆的一个逻辑部分,但它却…

泷羽sec渗透DC靶场(1)完全保姆级学习笔记

前言 本次学习的是在b站up主泷羽sec课程完整版跳转链接有感而发,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 &#xff0…

SQLite3 JDBC Java工具类

最近生产环境mysql各种无法使用,要求下线。有一堆小工具,平时因为mysql用着方便,配置啊,临时的一些比对数据存在里面。迁移很麻烦。 发现SQLite 3.47.0版本之后,性能大增,支持多线程,记录级锁。…

深入解析GIC中断处理与内核初始化:基于Linux 4.9.88内核的详细分析

往期内容 本专栏往期内容,interrtupr子系统: 深入解析Linux内核中断管理:从IRQ描述符到irq domain的设计与实现Linux内核中IRQ Domain的结构、操作及映射机制详解中断描述符irq_desc成员详解Linux 内核中断描述符 (irq_desc) 的初始化与动态分…

IPv6基础知识

IPv6是由IEIF提出的互聯網協議第六版,用來替代IPv4的下一代協議,它的提出不僅解決了網絡地址資源匱乏問題,也解決了多種接入設備接入互聯網的障礙。IPv6的地址長度為128位,可支持340多萬億個地址。如下圖,3ffe:1900:fe…