大家如果觉得买个现成的试验板贵的话,可以自己动手做个,下面是详细做的过程 :
首先用一块万能板(图1)(有人也叫洞洞板)做一个单片机的最小
系统.
(图1)
C51最小系统电路在网上一搜一大把,大同小异。我略做改动后如图2
(图2)
加一个11.0592MHZ的晶振是为了以后做串口通信时和PC有相同的波特率。可用短路帽切换。说说板子的布局:网上卖的最小系统都是把板子做的非常小,如果仅仅只学习最小系统,那是可以的。我以后是要做扩展的,所以不能做的太小。因此该有的应留着,不该有的都去掉。很重要的是以后在做其它扩展
功能块时的连接线就用一组排线而不能再有其它飞线。因此做一个好的布局是非常有必要的如图3。
(图3)
在板上除了最小系统外还有键盘输入、数码管、LCD、I2C存储器。它们的数据接口和电源接口也是完全独立的。其它的功能都准备在以后通过上方的接口另外用板子扩展。
图上方的弯脚插针就是向外扩展的接口。我在弯脚下方又安排了一组直插针。它是和弯脚插针并行连接的。这样在扩展功能块时我先在AT89S51板上将要输出的引线(包括数据线、控制线、电源线等)跳至直插针上。这样通过弯脚插针引到扩展板上的线就只有一组排线。不用再零乱地接上几组连接线了。这也是我用买的学习板常常垢病而最终弃而自制的主要原因之一。因为当时我扩展LCD12864,我既要连上数据线,又要连电源线,LCD模块上还拖着背光电源限流电阻线。还有液晶驱动电压调节电位器。所以感觉拖的到处是线,很不方便。
实施:通过检查各元件的好坏后便进行焊接工作。焊接进行的还是比较顺利。见下图4,图5
(图4)
(图5)
完成了。在检查了线路的正确性后,用万用表测了是否有短路。一切正常!
之前我的AT89S51里已写好了个最小系统测试程序,就是让P1.0上的红色发光管闪烁。
C语言
# include <at89x51.h>
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;
}
}
汇编语言
ORG 0000H
START:MOV P1,#11111110B;LED点亮
LCALL DELAY;延时1秒
MOV P1,#11111111B;LED灭
AJMP START;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY:
MOV R4,#2
L3: MOV R2 ,#250
L1: MOV R3 ,#250
L2: DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R4 ,L3
RET
END
如果程序在学习板上运行,不正常。那么重点检查以下几个部分(见图6)
1.晶振部分、2.复位部分、3.电源部分(最不可以忘掉EA接V+5v),4.还有就是P1_0发光管最基本的一个应用部分。。
(图6)
处理19脚时可能的话还是要尽量短些的,毕竟它比18脚要对外界干扰敏感的多。手摸上去就停振了。