单片机最小系统是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般包括单片机芯片、晶振电路、复位电路。
复位电路
用途:单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。
单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
工作原理:在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。
开机复位:在电路图中,电容大小是10uF,电阻大小是10k。根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。
也就是说,在单片机启动的0.1S内,电容两端的电压从0V增加到3.5V。这个时候10K电阻两端的电压为从5V减少到1.5V(串联电路各处电压之和为总电压)。
在51单片机中,小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。
按键复位:在单片机启动0.1S后,电容两端的电压持续充电,这是时候10K电阻两端的电压接近于0V,RST处于低电平,所以系统正常工作。
当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,开始释放之前充的电量。
随着时间的推移,电容电压在0.1S内,从5V释放到变为了1.5V,甚至更小。
根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平,单片机系统自动复位。
晶振电路
晶振是给单片机提供工作信号脉冲的,这个脉冲就是单片机的工作速度。例如,12M晶振单片机工作速度就是每秒12M。
晶振与单片机的XTAL0脚和脚XTAL1构成的振荡电路中会产生谐波,这个波对电路的影响不大,但会降低电路时钟振荡器的稳定性。
为了电路的稳定性起见, ATMEL公司(89C51系列厂商)建议在晶振的两引脚处接入两个10pf-50pf的瓷片电容,并接地来削减谐波对电路稳定性的影响,所以晶振电路的电容在10pf-50pf之间都可以。
P0口的上拉电阻
P0口作为I/O口输出时,输出低电平为0,输出高电平为高组态(并非5V,相当于悬空状态),也就是说P0 口不能真正的输出高电平,给所接的负载提供电流,因此必须接上拉电阻(一电阻连接到VCC),由电源通过这个上拉电阻给负载提供电流。
由于P0口内部没有上拉电阻,是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必须加上拉电阻的。
P0口使用注意事项:
1、一般51单片机的P0口在作为地址/数据复用时不接上拉电阻;
2、作为一般的I/O口使用时,由于内部没有上拉电阻,故必须接上拉电阻;
3、当P0口用来驱动PNP三极管时,不需要接上拉电阻;