单片机的最小系统是使单片机能够简单运行的最少的原始部件的组合。 最小系统一般由时钟电路、复位电路和电源电路三部分组成。
时钟电路由晶振(简称“晶振”)和启动电容组成。 现在也有内置电容的晶振,但价格比较高。 晶振可以为单片机提供“相对准确”的时间值,因此晶振电路也称为时钟电路。
复位电路通常由一个上拉电阻组成,以保持高电平。 如果需要复位系统,请将复位引脚短接到GND即可实现服务复位。 (具体参见单片机数据手册,有的为下拉式)
电源电路为单片机的运行提供能量。 没有电就无法工作。
晶体振荡器是最小微控制器系统的“心脏”。 我们对晶体振荡器的选择是由频率决定的。 我们比较熟悉的11.0592MHz晶振和12MHz晶振就反映了振动的频率。 我们以11.0592MHz晶振为例。 11.0592MHz体现的是1秒内晶振会完成11.0592M高低电平变化。
这里我们分析Arduino开发板的微控制器Atmega 328P的最小系统设计。 这里我们先来看看该芯片的datasheet中的相关内容。
这部分是Atmega 328P单片机的引脚图。 可以看到一共有四种封装形式,三种是贴片式的,一种是插件式的。 每个引脚都有自己的功能,如下所述。
不用说,VCC和GNG是电源引脚,为系统运行提供能量。
Port B (PB7:0) XTAL1/XTAL2/TOSC1/TOSC2,Port B 是一个 8 位双向 I/O 端口,带有内部上拉电阻(由每位选择)。 端口 B 输出缓冲器具有对称驱动特性和高灌电流和拉电流能力。 作为输入,端口 B 引脚被外部拉低,如果上拉电阻被激活,则将提供电流。 当复位条件变为活动状态时,即使时钟未运行,端口 B 引脚也会被三断言。 根据时钟选择熔丝设置,PB 可用作反相振荡器放大器和内部时钟操作电路的输入。 根据时钟选择熔丝设置,PB7 可用作反相振荡器放大器的输出。 如果使用内部校准的 RC 振荡器作为芯片时钟源,且 ASR 中的 AS2 位被置位,PB7…6 将用作异步定时器/计数器 2 输入的 TOSC2…1。
上面的数据表我翻译了一下,就是PB组。 有些引脚具有多种功能(称为“引脚复用”)。 这里的XTAL1和XTAL2是单片机的时钟引脚,我们需要连接一个时钟电路。 其他引脚功能可以根据自己的需要进行配置。 这部分我们会在后面的编程中进行讲解。
端口 C 是一个 7 位双向 I/O 端口,带有内部上拉电阻(为每位选择)。 PC5…0 输出缓冲器具有对称驱动特性以及高灌电流和拉电流能力。 作为输入,端口 C 引脚被外部拉低,如果上拉电阻被激活,则将提供电流。 当复位条件变为活动状态时,即使时钟未运行,端口 C 引脚也会被三断言。
上面的数据手册是我翻译的,是针对PC组的。 PC引脚具有ADC采集功能,PC4和PC5具有IIC通信功能。 编程时应该小心。
其中,PC6为复位引脚,默认为高电平。 当该引脚为低电平时,整个系统将被复位并重新启动。
端口 D 是一个 8 位双向 I/O 端口,带有内部上拉电阻(为每一位选择)。 端口 D 输出缓冲器具有对称驱动特性以及高灌电流和拉电流能力。 作为输入,端口 D 引脚被外部拉低,如果上拉电阻被激活,则将提供电流。 当复位条件变为有效时,即使时钟未运行,端口 D 引脚也处于三态。
上面的数据表是我翻译的,是针对PD组的。 具体功能可以查看引脚说明。 PD组的功能非常适用。
最后是 AVCC 和 AREF。 AREF 是A/D 转换器的模拟参考引脚。 我们的AD采集范围是0~5V。 这是因为 AREF 引脚的电压为 5V。 如果AREF引脚为3.3V,那么我们的AD采集范围为0~3.3V,所以AREF也称为模拟信号参考电压。 AVCC 默认连接至 5V。 我不明白数据表上说的是什么,但它说这是引脚的参考电压。
综上所述,那么我们的电路图大概就出来了!
XTAL1和说到连接低通滤波器,我们可以直接将改变的引脚连接到104电容和GND。 VCC和GND提供电源,其他引脚保留使用。 最终的最小系统图如下。
这是最小的系统,也是保证单片机运行的最低要求。 可以根据自己的需要添加一些电源指示灯、12V转5V电路等。
当然,初学者应该多了解大佬做的电路,尝试分析大佬做的电路,验证大佬做的电路。 学习电子电路没有捷径。 靠自己的知识积累和眼光。