设计常按设计制作、程序设计、调试程序、综合调试这么几个步骤来操作。
第一阶段:电路设计制作
单片机的硬件相关的设置必须到位,该给高的就要给高电平,无论是用万能板还是电路板,走线都要考虑抗干扰,大且多点接地,一步都不能马虎,这些细节做到了就能让单片机初学者少走好多弯路。具体要注意的硬件设置,总结了这么几点:
(1)51系列单片机的EA信号脚不可空置,接一个lOkΩ接V,表示程序从内部ROM开始执行。外中断要注意硬件重置位设计。
(2)RST管脚上的复位一般取10μF,RST管脚与地之间的大于lkΩ。
(3)XTAL1和XTAL2管脚上的不能省略,注意在设计印刷电路板或万能板时,电容和都尽量靠近XTAL1和XTAL2管脚。
(4)注意P3口第二功能的使能是高电平还是低电平,如RD一管脚,上划线代表该管脚是低电平使能。
第二阶段:软件编程
如何开好软件的“头”。初学单片机要找到几个好编译软件,比如:KeilC51、伟福Wave等等都是界面友好且功能强大的编译软件;而且,它们都支持2进制(.bin格式)和16进制(.hex格式)文件,方便将程序编程器直接烧录到单片机里,保证初学者使用起来得心应手。总结了几点:
(1)程序起始位置要通过指令ORG OOH说明,如果你的程序不是从OOH开始的,要用无条件跳转指令SJMP或AJMP“跳”到程序入口地址。
例:
(2)初始化好了程序就是起好了头。不管什么程序,哪怕是一个简单的程序初始化都要认真的设置。
例:
上面一小段程序就是初始化设置,这里面牵涉到的是中断设置,包括外中断,定时器的工作方式设置,高低位定时寄存器的置数,四个I/O端口的设置以及相关的标志位的设置,都必须交待清楚。需要说明的,一个易读懂的程序格式设置也是很重要的,比如程序中指令对齐,地址标志层次分明。语句说明简短明白,排列整齐。
(3)中断程序入口必须仔细设置,上面例子中的ORGOOOBH就是设置定时中断入口程序的地址,接下来的定时中断程序入口地址就由AJMPCSH1语句说明。外中断0程序入口:0003H,外中断1程序人口:
0013H,定时0中断人口:OOOBH,定时1中断入口:
OOIBH,串行口中断入口:0023H。
(4)子程序调用后别忘了返回。初学单片机编程,常常会发现程序莫名其妙地走丢了,死循环。发生这样的故障常常导致工作的中断,程序重来,其实很多时候问题就出在返回上了,返回指令有两条:RET和RETI。
当用了子程序调用类指令,比如:ACALL、LCALL-定要用返回指令RET,如果从中断服务子程序返回则使用RETI。