学单片机走过许多弯路,挖过许多坑,浪费了很多时间,做过实际产品后回顾过去的学习经历,发现很多坑其实是可以避免的,单片机的入门应该可以更轻松一点,写写我的一些学习经历,希望对刚入门甚至还没有入门的新手有所帮助,心愿足矣,水平有限,求老手轻拍……

单片机的学习,模电数电是最基本的,也是最重要的,构成单片机最小系统的三个要素,是电源,晶振和复位电路,话说这是之前的STC89C52单片机了,现在的STC15系列,晶振和复位电路都内置了,但是电源还是要有的,我们就以这2者做对比来学习,看看有何不一样的地方。

51单片机晶振电路解析(单片机入门最小系统)(1)

电源

通过查看单片机的型号可知,STC89C52RC的供电电压范围在3.3V-5.5V之间,STC15W1K16PWM这款芯片的供电电压范围在2.4V-5.5V之间,他们都可以用5V供电,后者可以用3.3V来供电,STC89C52RC这块片之所以还没有退役,还是因为学习者大多以他作为学习入门,在实际项目中,我只见到过一次,某天,老板从库房里拿出2管STC89C52,大概几十片,问我还能不能用上,我只呵呵了一下。

言归正传,我们既然确定用5V来供电,那么电源是如何产生呢?我们知道可以用变压器来搞定,比如在TB上搜220V转12V变压器12W,就搜到了,变压器直接输出的是交流电12V,我们没法用啊,于是还需要整流,滤波,稳压等等,整流需要二极管,这里我们选择桥式整流,选择4只1N4007,规格1A 1000V就好了,这个1A指的是最大整流电流,这个1000V指的是最高反向工作电压,这样经过桥式整流之后,输出的电压是脉动的直流电压,已经有正负极性了,但是我们还是不能用,交流成分实在是太大,因此还需要加一个容量稍大些的电解电容,

比如1000UF/35V,电容的耐压值得选取应该大于1.1*1.414*12,电网电压也是波动的,预留出10%就好了,根据电容容量计算公式,计算出容量在1000UF-2000UF是合适的,12W的变压器,我们只要输出500MA的电流就够了,这样的设计是完全满足我们的需要的。电路图如下:

51单片机晶振电路解析(单片机入门最小系统)(2)

图中的C1,C3容量较大,作用是用于滤波,C2是消除自激震荡,高频干扰,C4也是消除噪声等高频干扰,三端稳压芯片用的是LM7805,非常常见的电路了,后面加了一个TVS,这个在实际项目产品中是必须要加的,瞬态抑制二极管,如果电压高于5V,会瞬间动作,保护后级电路,带CA的是没有方向的,直接插上就可使用,后面用了个LED红色的小灯,我们知道小灯就是一个二极管,不过发光二极管和普通的二极管的压降是不一样,像这种红色的,一般压降在1.8-2.0V可以正常工作,电流在4-20MA,如果超出这个数值,基本就烧坏了,R1是限流电阻,限制LED的电流,我选择5MA的工作电流,5/0.005 = 1K欧姆,就是这么来的,这样,电源部分就搞明白了,我们获取了5V的电源。

晶振

晶振,顾名思义,晶体振荡器,这就好比人的心脏啊,提供整齐划一的节拍,如果这个东西不准,或者不起振,单片机玩不转的,在STC89C52上,是必须要加晶振电路的,如图所示这样:

51单片机晶振电路解析(单片机入门最小系统)(3)

2个20PF的电容是帮助晶振起振的,维持信号稳定,Y1是无源晶振,啥叫无源呢?指的是没有震荡源,也就是说他自己单独玩不转的,需要内部的RC电路配合,产生一个十分稳定的时钟信号源,跟无源相对就是有源晶振了,这个价格相对来说贵一些,一般4个引脚,VCC,GND,OUT,NC,NC是直接悬空的,当给有源晶振供电以后,在其OUT端,会产生一个方波信号,直接接在XTAL1上就好,XTAL2可以悬空不接,当然这里是指STC89C52,我记得之前用STM32F103RCT6这款芯片做产品电磁兼容测试,因为有源晶振辐射超标,再加上电路布局不合理,过不了电磁兼容,没有办法,只好把晶振搞掉了,但是就算晶振换下来了,这个引脚还是可以造成干扰的,于是就配置成普通IO,然后接电阻下拉接地才过了,这都是经验教训啊。

常用复位电路

复位电路,是用来在单片机执行异常的时候,可以让他从头开始执行程序,STC89C52RC这款芯片是高电平复位,低电平正常工作,电路图如下所示:

51单片机晶振电路解析(单片机入门最小系统)(4)

来解析下这个电路图,先来看STC89C52RC,我们知道电容的特性是通交隔直,电容是个储能元件,储存的是电场的能量,在没有电到上电的瞬间,电容肯定要充电的,这个时候电容就短路成一根导线了,RST端就被拉到了5V,执行复位指令,当电容充满电后,会断开连接,RST引脚会被10K电阻下拉到低电平,所以电路开始正常的工作,之所以接上按键以及100R的电阻,是可以手动复位,当按键按下的时候,RC并联,我们知道,电阻是消耗电能的,会瞬间把电容里面的电能释放掉,具体的时间计算,可以看电路基础第4版,127页,一阶电路的零输入响应,计算比较麻烦,有一个时间参数,T = RC(念TAO,不会打),单位是秒,T的大小反映了一阶电路过渡过程的进展速度。我们只要知道电容会瞬间释放就好了,手动复位之后,电容又开始了充电断开正常工作的过程,就是这样。

51单片机和STM32不同,STM32是低电平复位,高电平正常工作,这儿原理是一样的。

好了,单片机学习最基础的部分,已经了解了,接下来,就可以动手干点别的事情了……希望此篇文章对刚入门的你有所帮助。

,