终于有时间来写写啦。
前面一段时间应老师所托,做一个单片机的最小系统加部分外围模块,于是就做了一些工作,在几天前完成了,还算过得去吧。在这个过程,有些微的感想,来和大家分享一下。
系统的要求:
1、设计单片机的最小系统(复位、时钟),另外加一些外围模块(蜂鸣器、数码管——用三极管来进行控制、按键及温度传感器)。
2、串口下载,供电通过其他的电源线。
先看下原理图:
画这个图也花了蛮多时间,虽然我知道这个图蛮简单,但是因为之前没好好学,硬件部分差了太远, 问了学长蛮多,也和老师讨论了蛮多,最近在做出PCB之后还修改了一些,才有了现在这个图,相对来说是比较正确的。
接下来就来详细的介绍一下每个模块的设计思想:
首先是MCU部分,显示用的是共阳极的数码管,没有用芯片来进行驱动,而是换成了三极管(9012),利用了它的开关性质,即B极置0时导通,数码管的位选便为高电平,从而选通。这里的基极加了1K的限流电阻,是为了防止基极电流过大,驱动电路无法承受,但是这里的具体计算我却不会(唉,只怪自己以前不用心学。)然后数码管的段线到P0口,也接了限流电阻,这里还上拉了,看了一些资料,共阳极的数码管的话是不需要接上拉电阻的,只要限流就可以了,但是共阴极的数码管就要接上拉电阻来增强驱动能力,所以,这里的排阻不需要接电源。
限流电阻的计算:5V - 0.2V(PNPce压降) - 1.8V(数码管压降) = 3V左右;3mA * 8段 = 24mA ,所以 3V / 3mA = 1 K ,24个mA的电流P0口是可以承受的,而且只有在显示8时才会有这么大的电流。接下来是按键,P2^2/3/4口直接接一个按键到GND,然后为了使用中断(主要为跳沿触发),我这里把这三个按键接到P3^2(INT0)了,用了三个二极管接电阻到VCC,在没有按键按下时,P32是为1的,然后有键按下就会置0,产生一个下降沿,触发中断,这里的电阻也是限流。然后P26就是一个LED,灌电流驱动,以提高它的驱动能力。
电源开关/指示灯那一块可能会有点问题,因为这个没有做实际电路的,是后来加上去的。因为用的是STC的单片机,所以下载时必须断电,在开始的设计中没考虑到这一点,于是在调试的时候只能傻傻的用夹子来控制它的电源关断。开关应该没问题,但是电源指示灯就不太敢保证,可以试试看。这里的开关为6引脚自锁开关,它的连接可参照本站点之前的博文。
接下来是晶振与复位电路。晶振那里就不说了,这个电路随便拿本书就能找到。复位电路的那个极性极性电容记得要正极朝向电源。蜂鸣器也是用的9012来进行驱动。在调试电路的时候没有蜂鸣器,加了个发光二极管,发现用9013的话亮度比较低,但是换成9012亮度就大了蛮多,这应该和它们的放大倍数有关系(没去细究),所以后来就换成了9012。
DS18b20为单总线(1-Wire)的温度传感器,它的电路很容易,地接地,电源接电源,然后IO口接上拉电阻到VCC。关于4K7电阻的计算:18B20工作电流约为1mA,VCC= 5V,so,R = 5V / 1mA = 5K,而市面上与5K相近的只有5K1、4K7,所以就近选4K7。
MAX232。这个地方稍微有点麻烦,先说9针串口,一定要记得接地,它的第5脚为信号地,5脚要是没接地的话就无法完成下载。然后要记得接它的电源与地,电源这里就是接一个10uF的极性电容并联一个104到地。
好了,电路就到这里了。其实蛮简单的一个电路。下面来说一些其他问题。
1、布线:我用是Altium Designer 6.9,简称AD6.9,这里说一下布线时线宽的设置:
信号线 —— 一般大于15mil
VCC —— 40mil足够了
GND —— 网上说法是地线应该大于电源线,可是我看到有些布线地线还细一点,这里建议与电源线一样,40mil
这里的线宽设置主要是在我们实验室的设备基础上设定的,如果是发工厂的话可以做得更细,一般线宽与间隙大于6mil就可以了,这个软件的默认间隙是10mil,具体的工艺可参考此链接。http://www.sz-jlc.com/home/technology.jsp
2、快捷键(AD6.9)
T+S : 锁定原理图中选中的元件在PCB中的位置
L : 打开层面设置,比如说,我想只显示飞线,我就在PCB中按“L”键,然后把这个地方的勾去掉就可以了
3、数码管的摆放
数码管正对着自己,最左边的即为第1脚,所以在PCB中记得要把第1脚放在左下角,不然就上下颠倒了
注意事项
1、9针串口(母头)的5脚为信号地,必须接地。不接地无法完成下载。
2、PCB排版:9针串口(母头)应该朝外摆放(即只有4个脚的一边朝向外边),方便接线。
3、原来驱动蜂鸣器的9013改换成9012,若在实际情况中有问题,可换回9013。
4、共阳数码管的封装与库中封装有差异,建议先自己测量数码管实际尺寸,再与提供的库中封装比对,不同则需要自己画。
5、注意单片机的原理图库的引脚,建议查阅51官方资料,如有差别自己稍做修改。
6、9012(PNP)与9013(NPN)用作开关的区别:
NPN:B给高电平导通
PNP:B给低电平导通
7、三极管极性的判断方法:
元件清单
附实物图
(本博文系原创,转载请注明出处,谢谢!)
(本博文系原创,转载请注明出处,谢谢!)