单片机最小系统构成
若要使系统正常运行,必须确保单片机的最小系统稳定工作。51 单片机的最 小系统由以下几部分组成: (1)晶振电路 (2)复位电路 (3)电源电路 (4)程序下载电路 第(4)是我们添加进来的,实际上最小系统只由前面 3 个部分组成。为什么要加入第(4)部分呢?仅靠前面 3 个部分电路只能使单片机正常运行,但如果我们要给系统更新程序即烧入程序时就没有办法了,所以我们将第(4)部分电路也加入到最小系统当中,这时候我们就可以给系统任意烧入程序了。晶振电路提供时钟给单片机工作,犹如人的心脏。
复位电路提供系统复位操作,当系统出现运行不正常或者死机等情况时,可以通过复位按键重新启动系统。
电源电路也是非常关键的一个部分,因为单片机对供电电压是有要求的,如果电压过大将烧坏芯片,如果电压过小系统将运行不了。所以如果一个合适稳定的电源电路是非常关键的。
还有一点非常重要,因为 51 单片机的 P0 口是漏极开路的,要让它输出高电平就必须外接上拉电阻,原理图中如下:
相同网络标号的表示其线路是连接在一起的,这个在后面章节会介绍。为了增强其他 IO 口的驱动能力,开发板上也都为其外接了上拉电阻(除了串口),通常上拉电阻选择 10K 左右
晶振电路
由于单片机正常工作需要一个时钟,因此就需要在单片机晶振引脚上外接一个晶振(我们使用的STC89CXX 单片机晶振引脚是 18 和 19 脚),至于需要多大晶振这就取决于你所使用的单片机,由于我们使用的是 51 单片机,其时钟频率可在 0-40MHZ 上运行,一般情况下我们建议选择 12M(适合计算延时时间)或者是 11.0592M(适合串口通信)。若直接将此晶振接入单片机晶振引脚,会发现系统工作不稳定,这是因为晶振起振的一瞬间会产生一些电感,为了消除这个电感所带来的干扰,可以在此晶振两端分别加上一个电容,电容的选取需要无极性的,另一端需要共地。根据选取的晶振大小决定电容值,通常电容可在 10-33PF值范围内选取。我们使用的是 33PF 电容。这样一来就构成了晶振电路。只有保证晶振电路稳定,单片机才能继续工作。其电路如下所示
复位电路
前面我们已经将晶振电路搭建完成,我们知道晶振犹如人的心脏,需要无时无刻给单片机提供运行周期。但即使时钟周期在不停的运行,系统也有可能会出现崩溃或者瘫痪状态。这就好比人会生病一样,人一生病就得看医生,服用医生开的药后重新获得正常状态。那么单片机呢,它是如何获取重生的?这就需要设计一个复位电路来实现此功能。我们知道单片机引脚当中就有一个 RST 复位引脚,而 STC89CXX 单片机又是高电平复位,所以只需要让这个引脚保持一段时间高电平就可以。要实现此功能通常有两种方式,一种是通过按键进行手动复位,还有一种是上电复位,即电源开启后自动复位。手动复位是通过一个按键及电容 电阻所组成,利用按键的开关功能实现复位,按键按下后 VCC 直接进入到单片机RST 引脚,松开后 VCC 断开,RST 被电阻拉为低电平。这一合一开就实现了手动复位。而自动复位主要是利用 RC 充放电功能,电源已开启,由于电容隔直,VCC直接进入 RST,然后电容开始慢慢充电,直到充电完成,此时 RST 被电阻拉低。这样就起到上电复位的效果。这里我们采用手动复位。不到系统崩溃,我们几乎不会操作复位。复位电路如下图所示:
当按下按键 RSTK1,VCC 直接连接到 RST 复位脚,VCC 是高电平所以系统复位。本来复位电路只需上图左半部分,即按键 RSTK1 和 C14、R9 组成的复位电路,
但考虑到开发板兼容 AVR、ARM 等单片机,所以使用一个三极管 Q2 将复位信号翻转,即变为低电平复位,此时要记得将 J31 端子的 2 和 3 脚短接。(具体电路具体分析)
电源电路
任何电子器件都需要有一个合适的电源进行供电,这就好比人要吃饭一样,没有电源,系统是不会工作的。STC89CXX 单片机的工作电压是 3.3-5.5V 范围,通常我们使用 5V 直流。将电源接入到各芯片电源引脚即可。开发板电源电路如下图所示:
开发板上还预留了 P3(5V/3V)端子,这些端子可以很方便的给外部模块连接电源。
下载电路
在前面小节中已经介绍了为什么要加下载电路到最小系统中,这里就不再重复。程序要烧写到单片机内是通过上位机(PC 机)及对应的软件将编译器生成的 xxx.HEX 文件通过单片机串口写入进去。我们知道现在的笔记本电脑没有 RS232 接口,所以要使用 USB 转 TTL 串口电平芯片来建立 PC 机和单片机数据传输通路。通常使用 CH340G 或者 CH340C 芯片来完成电平转换。CH340G 需外接 12M 晶振,而 CH340C 内部自带晶振,所以可以不接外部 12M 晶振。开发板上使用的是 CH340G 电路,这样可以兼容 CH340C 电路。 开发板下载电路如下图所示:
本电路是我们自主研发的一键自动下载电路,无需冷启动。 从上图可以知道,USB1 接口即为程序下载接口,D-和 D+连接到 CH340 芯片的 D-和 D+,然后CH340 芯片的串口 TXD和 RXD管脚就连接到单片机的串口(P3.0、P3.1)上,这里不是直接连接到单片机串口,而是通过 J44 和 J39 端子进行转接。这样做不仅可以让开发板 USB 接口下载程序,还可以使用 RS232 接口下载程序,这部分内容在后面章节会介绍。而且还有一点比较重要的是可以让单片机串口不受 CH340 或者 RS232 干扰,这样开发板也可以当成 USB 转 TTL 模块使用,该设计
也是考虑 WIFI、蓝牙等模块与串口通信不受干扰问题。USB1 接口不仅可以作为程序下载口,还可以作为串口通信口,因为它本身就是实现串口下载。同时还可以作为电源供电口,可以看到 USB1 的管脚 1 就是 5V电源脚,所以开发板的可以直接使用 USB 线来供电,如果提供的 USB 线有问题,可以使用安卓手机数据线,接口都是兼容的。当电源开关打开后,电源指示灯DP1 即会点亮,表明系统电源正常。至此,我们就把 51 单片机的最小系统介绍完,大家在制作最小系统时,可以参考我们的电路,这样成功率会更高。
硬件连接 首先将 usart 转 usb 转换器和单片机接线,分别 GND 接 GND、VCC 接VCC,单片机P3.0(RXD) 引脚接转换器 TXD、单片机 P3.1(TXD) 引脚接转换器 RXD。然后将转换器USB 接口插电脑上,USB 要安装 CH340 驱动才能识别到端口,由于 CH340 资源较多,而且安装简单,这里就不进行介绍了。
波特率可以选高一些,现在的工艺可以调高一些了了
舒适!!!使用VSCode写51单片机代码
原理跟STM32一样