废话这儿就不多说了,干活吧!
C51最小体系电路在网上一搜一大把,迥然不同。我略做改动后如图:
加一个11.0592MHZ的晶振是为了今后做串口通讯时和PC有相同的波特率。可用短路帽切换。
说说板子的布局:网上卖的最小体系都是把板子做的十分小,假如只是只学习最小体系,那是能够的。我今后是要做扩展的,所以不能做的太小。因而该有的应藏着,不应有的都去掉。很重要的是今后在做其它扩展功用块时的衔接线就用一组排线而不能再有其它飞线。因而做一个好的布局是十分有必要的。
在板上除了最小体系外还有键盘输入、数码管、LCD、I2C存储器。它们的数据接口和电源接口也是彻底独立的。其它的功用都预备在今后经过上方的接口另外用板子扩展。
图上方的弯脚插针便是向外扩展的接口。我在弯脚下方又组织了一组直插针。它是和弯脚插针并行衔接的。这样在扩展功用块时我先在AT89S51板上即将输出的引线(包含数据线、控制线、电源线等)跳至直插针上。这样经过弯脚插针引到扩展板上的线就只有一组排线。不必再零乱地接上几组衔接线了。这也是我用买的学习板常常垢病而终究弃而克己的主要原因之一。由于其时我扩展LCD12864,我既要连上数据线,又要连电源线,LCD模块上还拖着背光电源限流电阻线。还有液晶驱动电压调理电位器。所以感觉拖的到处是线,很不便利。
施行:经过查看各元件的好坏后便进行焊接作业。焊接进行的仍是比较顺利。见下图:
完成了。在查看了线路的正确性后,用万用表测了是否有短路。一切正常!
之前我的AT89S51里已写好了个最小体系测验程序,便是让P1.0上的赤色发光管闪耀。
# include
void main(void)
{ unsigned char i,j,k;
while(1)
{
for(i=0;i<100;i++)
{
for(j=0;j<255;j++)
for(k=0;k<255;k++);
}
P1_0= !P1_0;
}
}
我把它先插在我买的学习板上运转,一切正常。但插在我做的的最小体系上却没反响。就那么点线路查来查去仍是没问题呀!是晶振不起振?在学习板上用手拿着改锥别离碰18脚(XTAL2)和19脚(XTAL1)。发现当人体碰到19脚时程序会乱掉,便是说或许会停振。所以又把我的体系板上晶振方位的电路重焊一遍,尽量缩短了19脚处线的长度。C4、C5又别离换了15PF、20PF、30PF的%&&&&&%试试。毛病仍然,没办法,得静一静,看书! 在看到介绍第31脚(EA/VPP)时突然想到31脚没有接到电源正啊!起来当即把31脚接到电源正,赤色发光管当即闪耀起来。此刻的快乐真不可名状啊!
总结:除了在焊接时要细心外,先画好电路图也是很重要的。像上面的电路图在89S51的31脚上就只写了Vcc的字样,因而焊接时就被忽视了。应该先画出一张完好的图才行。
其实这个板子上的晶振电路是十分简略起振的。19脚上的引线也没那么灵敏。但处理19脚时或许的话仍是要尽量短些的,究竟它比18脚要对外界搅扰灵敏的多。手摸上去就停振了。
还有便是学习单片机怎么着也得先买块最最简略的板子。不然你焊好你的板子后有毛病到底是程序问题仍是线路问题就无从查起,查错查得还不疯掉呀! 程序也无法写进片子里去。你或许会说再做一个ISP下载线呀。做下载线愈加不稳定,下一篇我会专门讲做ISP下载线的问题。再来个特写鼓舞一下自己。