百度博客上有个“边学边秀单片机”的博客是我的主要参考,给个链接:http://hi.baidu.com/txz01/blog/index/1。元器件买之前要做的事是画原理图和PCB图,用的软件是protel 99SE,学习protel 99SE看的是youku上很好的叫perfectcool的入门视频,给个链接:http://v.youku.com/v_show/id_XNjMzMjIzMjA=.html。
开始学protel 99SE的时候没有atmel单片机的原理图库,从网上当了一个,后来照着视频学自己画元器件的原理图后就发现,只要有datasheet或实物,完全可以自己画出来,而且不用费多少时间。画连线的时候,先用的是placeLine工具,结果在画完进行ERC检测的时候就有一大堆没有连的线。上网搜原因,才发现应该选placeWire工具,想必这个错误初学者很容易犯。原理图是照着“边学边秀单片机”的原理图画的
有必要对各个功能模块做些说明:
1)左下的是起振电路,用短路帽选择晶振,用11.0952MHZ是为了在与串口通信的时候不会产生错误。两个接地的小电容是起振电容,使晶振更容易起振。
2)起振电路上方的是复位电路,AT89S51的datasheet上说复位需要reset引脚维持100ms的高电平状态,具体电容电阻数值不会计算(正在看电路分析的书),原理是懂的。接电源的时候电容会充电,开关按下去的时候电容会放电,把reset引脚的电平拉高,开关断开的时候再充电到满。
3)单片机芯片上方的电路是JTAG接口电路,后面的ISP接并口的不同是受所用的下载软件的影响,软件说你引脚1必须接地,那你就得这么接,要么自己写一个,网上也有可以配置接法的flash烧写的软件,像Easy_51Pro2.0。
4) 电源和地之间(电路图右侧)还有个电容滤波电路,增加直流电源输出的稳定性。
5)还有的电路,一个是电源指示灯电路,一个是测试程序的电路,通过控制P1.0的电平来实现LED的闪烁。
画完了原理图,然后要做的是填写元器件的封装,也就是实物的外形和焊盘,英文是footprint,直译就是“脚印”,各个元器件在PCB板子上的脚印,很形象不是吗。看着视频做没有多少困难,需要注意的是工作层面的选择:不同的层面有不同的颜色,一开始没有概念我选择的是红色的topLayer,结果就和黄色的protel 99SE默认的封装不一致了。还发现protel自带的库中的一个问题,就是LED的name和number写反了,也许是我的版本太旧了。经由网络表生成了扎堆的元器件,然后就需要手动的摆放位置,下面是最终图:
难点是要不产生交叉线,主要是各个元器件要接电源和地,而且默认protel中连在一起的线是会自动选择最近的,但有时最近的反而会产生交叉。图中的重点是左边穿过两个极性电容和电阻的那根地线,这是解决交叉线的一种办法,还有一种是看“边学边秀单片机”博客上的图片学到的:。本来电源引脚是在电源座的屁股上的,他从反面引线到正面,为了正面的美观又把一段隐藏在电源座底下,最后从正面穿到反面进行焊接。这样就把电源和地的交叉解决了,实际上市运用了多层走线的方法。网上有华为硬件工程师的规范,上面提到极性电容的方向最好一致,上面的图碰巧做到了这一点~。还有走线最好不要产生平行,会有干扰,不同工作层面的走线最好有所不同。