扩展:51单片机最小系统
扩展:51单片机最小系统
1. 导入
在前面章节, 我们已经认识了 51 单片机芯片, 51 单片机要工作, 光靠一个芯片肯定是不行的, 它必须搭配相应的外围电路, 我们把能使 51 单片机工作的最简单基础的电路统称为 51 单片机最小系统。 相信很多学完 51 单片机的朋友在后期可能会自己做一些具体的综合项目, 在项目中涉及到的硬件电路各种各样,但唯一不变的是最小系统, 因此有些朋友就会自己去制作最小系统。 本章就来介绍 51 单片机最小系统构成, 通过本章的学习, 让大家能够掌握 51 单片机最小系统的构成, 为后期自己搭建最小系统提供理论基础。
2. 51单片机最小系统构成
若要使系统正常运行, 必须确保单片机的最小系统稳定工作。 51 单片机的最小系统由以下几部分组成:
-
晶振电路
-
复位电路
-
电源电路
-
下载电路(可不要)
实际上最小系统是由前三个电路构成的,我们为什么要加入下载电路呢?仅靠前面 3 个部分电路只能使单片机正常运行, 但如果我们要给系统更新程序即烧入程序时就没有办法了, 所以我们将第4部分电路也加入到最小系统当中, 这时候我们就可以给系统自由烧入程序了。
晶振电路提供时钟给单片机工作, 犹如人的心脏。 复位电路提供系统复位操作, 当系统出现运行不正常或者死机等情况时, 可以通过复位按键重新启动系统。电源电路也是非常关键的一个部分, 因为单片机对供电电压是有要求的, 如果电压过大将烧坏芯片, 如果电压过小系统将运行不了。 所以选择一个合适稳定的电源电路是非常关键的。
还有一点非常重要, 由于 51 单片机的 P0 口是漏极开路, 即输出高电平会导致高阻态, 要让它输出高电平就必须外接上拉电阻, 如下:
2.1 晶振电路
由于单片机正常工作需要一个时钟, 因此就需要在其晶振引脚上外接晶振( 我们使用的 STC89CXX 单片机晶振引脚是 18 和 19 脚) , 至于需要多大晶振这就取决于你所使用的单片机, 由于我们使用的是 51 单片机, 其时钟频率可在0-40MHZ 上运行, 一般情况下我们建议选择 12M( 适合计算延时时间) 或者是11.0592M( 适合串口通信) 。 若直接将此晶振接入单片机晶振引脚, 会发现系统工作不稳定, 这是因为晶振起振的一瞬间会产生一些电感, 为了消除这个电感所带来的干扰, 可以在此晶振两端分别加上一个电容, 电容的选取需要无极性的,另一端需要共地。 根据选取的晶振大小决定电容值, 通常电容可在 10-33PF 值范围内选取。 我们使用的是 33PF 电容。 这样一来就构成了晶振电路。 只有保证晶振电路稳定, 单片机才能继续工作。 其电路如下所示:
2.2 复位电路
前面我们已经将晶振电路搭建完成, 我们知道晶振犹如人的心脏, 需要无时无刻给单片机提供运行周期。 但即使时钟周期在不停的运行, 系统也有可能会出现崩溃或者瘫痪状态。 这就好比人会生病一样, 人一生病就得看医生, 服用医生开的药后重新获得正常状态。 那么单片机呢, 它是如何获取重生的? 这就需要设计一个复位电路来实现此功能。 我们知道单片机引脚当中就有一个 RST 复位引脚, 而 STC89CXX 单片机又是高电平复位, 所以只需要让这个引脚保持一段时间高电平就可以。 要实现此功能通常有两种方式, 一种是通过按键进行手动复位,还有一种是上电复位, 即电源开启后自动复位。 手动复位是通过一个按键及电容电阻所组成, 利用按键的开关功能实现复位, 按键按下后 VCC 直接进入到单片机RST 引脚, 松开后 VCC 断开, RST 被电阻拉为低电平。 这一合一开就实现了手动复位。 而自动复位主要是利用 RC 充放电功能, 电源已开启, 由于电容隔直, VCC直接进入 RST, 然后电容开始慢慢充电, 直到充电完成, 此时 RST 被电阻拉低。这样就起到上电复位的效果。 这里我们采用手动复位。 不到系统崩溃, 我们几乎不会操作复位。 复位电路如下图所示:
51 单片机是高电平复位, 即 J32 端子处会有一个黄色跳线帽短接 RST 和 HRST,当按下按键 RSTK1, VCC 直接连接到 RST 复位脚, VCC 是高电平所以系统复位。如果所使用单片机需要低电平复位, 即将 J32 端子黄色跳线帽短接 RST 和 LRST,此时当按下按键 RSTK1, VCC 输入到 Q2 三极管基级, Q2 截止, 此时 LRST 为低电平复位。
2.3 电源电路
任何电子器件都需要有一个合适的电源进行供电, 这就好比人要吃饭一样,没有电源, 系统是不会工作的。 STC89CXX 单片机的工作电压是 3.3-5.5V 范围,通常我们使用 5V 直流。 将电源接入到各芯片电源引脚即可。 开发板电源电路如下图所示:
JP4 为火牛接口, 可使用 5V 直流( 电流在 2A 之内均可) 适配器接入, 然后经过 3.3V 稳压芯片转成 3.3V, 最终到 J35 端子处, J35 是用于切换系统电源的,对于 51 单片机, 系统电源是 5V, 因此 J35 端子上面黄色跳线帽会短接到 2、 3脚, 此时 VIN 即为 5V。 如果对于系统电源要求 3.3V 的单片机, 则 J35 端子需短接到 1、 2, 此时 VIN 即为 3.3V。 开发板上还预留了 P3 和 P4( 5V/3V/GND) 端子,这些端子可以很方便的给外部模块连接电源。
开发板上不仅可以使用火牛接口供电, 还可以使用 USB 口供电。 其电路就是下载电路。
2.4 下载电路
在前面已经介绍过为什么要加下载电路到最小系统中, 这里就不再重复。 程序要烧写到单片机内是通过上位机( PC 机) 及对应的软件将编译器生成的xxx.HEX 文件通过单片机串口写入进去。
我们知道现在的笔记本电脑没有 RS232 接口, 所以要使用 USB 转 TTL 串口电平芯片来建立 PC 机和单片机数据传输通路。 通常使用 CH340G 或者 CH340C 芯片来完成电平转换。 CH340G 需外接 12M 晶振, 而 CH340C 内部自带晶振, 所以可以不接外部 12M 晶振。 开发板上使用的是 CH340C 芯片。
开发板下载电路如下图所示:
从上图可以知道, USB1 接口即为程序下载接口, D-和 D+连接到 CH340 芯片的 D-和 D+, 然后 CH340 芯片的串口 TXD 和 RXD 管脚就连接到单片机的串口( P3.0、P3.1) 上, 这里不是直接连接到单片机串口, 而是通过 J39 和 J44 端子上黄色跳线帽( TXD-U 和 TXD 短接, RXD-U 和 RXD 短接) 进行转接。 这样做不仅可以让开发板 USB 接口下载程序, 还可以让单片机串口不受 CH340 干扰, 这样开发板也可以当成 USB 转 TTL 模块使用, 该设计也是考虑 WIFI、 蓝牙等模块与串口通信不受干扰问题。
USB1 接口不仅可以作为程序下载口, 还可以作为串口通信口, 因为它本身就是实现串口下载。 同时还可以作为电源供电口, 可以看到 USB1 的管脚 1 就是 5V电源脚, 所以开发板的可以直接使用 USB 线来供电, 如果提供的 USB 线有问题,可以使用安卓手机数据线, 接口都是兼容的。 当电源开关打开后, 电源指示灯DP1 即会点亮, 表明系统电源正常。
如果将 J39 端子上黄色跳线帽( TXD-R 和 TXD 短接, RXD-R 和 RXD 短接) 进行转接, 则使用 RS232 模块的 DB9 进行程序下载, 此时需要一根 USB 转 RS232线, 如下所示:
一头与 DB9 接口连接, 另一头与电脑 USB 口连接, 注意, RS232 的 DB9 接口是不带电源的, 所以还需要给开发板供电方可下载程序。
关于更多51单片机最小系统参考:51单片机入门——单片机最小系统_51单片机最小系统-CSDN博客
单片机/嵌入式小白教程—硬件(三)51单片机最小系统-CSDN博客
2024.8.28 第一次修订,后期不再维护