当前位置: 首页 > article >正文

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

        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.kler.cn/a/401916.html

相关文章:

  • 阿里云轻量应用服务器可以用在哪些场景呢
  • 【概率统计通俗版】极大似然估计
  • VSCode自定义插件创建教程
  • 语义分割(semantic segmentation)
  • Vscode 远程切换Python虚拟环境
  • 小鹏汽车嵌入式面试题及参考答案
  • freemarker 读取template.xml ,通过response 输出文件,解决中文乱码问题
  • 【大选】2024年美国总统选举数据分析可视化
  • HbuilderX的使用
  • 从零开始学习JVM(九)- 垃圾收集器
  • 【逐行注释】MATLAB的EKF和UKF例程与详细注释|附下载链接
  • LDR6500:C to DP与DP to C视频转接线双向方案
  • RTK技术算法概述!
  • 【Vue笔记】基于vue3 + element-plus + el-dialog封装一个自定义的dialog弹出窗口组件
  • 车轮上的科技:Spring Boot汽车新闻集散地
  • 线性代数[ 矩阵 矩阵的初等变换 线性方程组 ]第二三章
  • LeetCode74. 搜索二维矩阵(2024冬季每日一题 6)
  • ES5 (SM-SR-eUICC) 接口上的 OTA 通信笔记
  • 多目标优化算法:多目标鳗鱼和石斑鱼优化算法(MOEGO)求解DTLZ1-DTLZ9,提供完整MATLAB代码
  • mysql 的乐观锁和 mvcc 是一回事吗
  • Spring Security 中的 UserDetailsService(获取用户详细信息)
  • WebSocket简易聊天室实现(有详细解释)
  • 使用Python语言编写一个简单的网页爬虫,从网站上抓取指定关键词的新闻标题和链接。
  • 简单爬虫的实现
  • 小程序-基于java+SpringBoot+Vue的小区服务管理系统设计与实现
  • 力扣-Hot100-链表其三【算法学习day.36】