新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 由专家提出的51系列单片机指令速记法

由专家提出的51系列单片机指令速记法

作者:时间:2013-02-05来源:网络收藏
专家建议

  学之初,你必须懂一些数字电路,若对数字电路中的一般概念很模糊,则应补习一下数字电路再学。目前机种较多,其结构和指令均不相同,所以最好先选一种单片机机种进行学习,然后再进行其他机种的学习。若这种学几天,那种学几天往往会滩多嚼不烂。建议你最好先学8051单片机,因关于8051方面的书籍、资料、器材较多。PIC和AVR以及其它类型的单片机虽有其长处,但与8051单片机相反,现在关于它们的书籍、资料以及器件供应并不太理想,不太适合初学者选择。若你对这些并不在意,也可选择后者进行学习,只要觉得适合你自己学的都行。

80的派生品很多,这也是建议你先学8051单片机的原因。例如ATMEL公司的AT89C单片机就是完全兼容MSC-51 80的(即AT89C51的指令、管脚、内部主要结构,以及用法与MSC-51相同),它不但兼容,且还有不少创新,如它的程序存储器可以电擦、写,一片IC就拥有了过去单片机的最小系统,不需要以前的373和EPROM元件。故实验时的电路连接、电路板自制都比较容易,再加上目前其价格较低。再者你学习的片子也可以做产品,做产品的片子也可以做实验。当然AVR系列也有这些特点,但PIC及其它系列在这一点上则显得不太理想。

而在你购买单片机的书籍时,最好选择前面你能看懂而后面你看不懂的,因为前后都看不懂的书在短时间内不会对你起多大作用。当然不是把书用来当资料查的也不必买前后你都懂的,因它对你来说太简单易懂了。应以原理书籍为主,其次购买一些应用方面的书籍以供参考。

电子技术本身是与实验相辅相成的,光靠看书是很难理解其原理和学会单片机开发的。此时为了能够学好单片机,你应该购置相关单片机的芯片、编程器、实验板,以及开发它的相关软件。以边看书边实验的方式进行理论与实践相结合的学习,这样效果更佳!由于初学,不可能购置很多昂贵的设备,故建议购置其程序储存器是可以反复可擦写的供学习用的单片机芯片,如AT89C系列或AVR系列。这样,在学习烧写(编程)时就无后顾之忧了。

  接下来说说单片机开发的步骤。为了让单片机按你的想法完成一项任务,必须先编写供其运行的程序,编写单片机的程序应使用该单片机可以识别的“语言”,否则程序写得再完美,对单片机来说都是无用功。目前较流行的有汇编和C语言,汇编语言可以精确地控制单片机工作的每一步,而C语言则注重结果,不关心单片机具体的每一步。习惯上宜先学汇编语言后学C语言,这样可以对单片机有一个更深的了解。而且用C语言编程,在需要精确控制时还需要嵌入汇编语句,较为麻烦。当然,也有人一开始就用C语言的,后来再学汇编;若你学过计算机的 Turbo C(快速的c编译器),那么学单片机的C语言也许会更快一些。

  单片机程序是用文本编辑器编写的纯文本文件。像在Windows记事本中用汉语写计划,先写这件事再写那件事,以所使用单片机语言的语法,按我们的想法把单片机要做的事“一件一件”的依次写下来。若遇到“有些事”是重复的,就指明在那些地方已有说明(跳转);若在正常安排中,出现其它突发事件,则必须写一段突发事件处理计划(中断)... ...最后保存文件的扩展名也应与所使用的语言要求的名字一致,同记事本上汉语的文章一般保存为*.txt扩展名,而汇编语言的文件扩展名一般应保存为*.asm。有的开发系统则有自己的规定,如用 Keil C51开发系统,编写的汇编程序扩展名为*.a51,当然Keil C51开发系统也有自己的编辑器,不必使用Windows中的记事本。

  不管是使用汇编语言,还是C语言编写的程序也好,编写后的程序不只是给我们自己看的,还必须经过与该语言相对应的软件将我们能看懂的汇编语言或C语言编译成所用单片机可以识别的代码。再将单片机可以识别的代码烧写到单片机程序存储器中,那样单片机装的实际电路才能依你的“计划”去工作。

对于8051系列单片机来说,Keil C51开发系统具有编辑、编译、模拟单片机C语言程序的功能,也能编辑、编译、模拟汇编语言程序。对于初学者,开始编写程序难免会出现语法错误或出现其它不规范的语句,由于Keil C51编译时对错误语句提示的是英文,不好理解。若用汇编的话,则可使用DOS下的宏汇编编译器ASM51,它可以对出错语句进行中文提示,而且源程序的注释部分还可以使用中文,给你今后对程序的维护提供了很多方便。

编译出的代码一般扩展名为*.hex或*.bin。这个代码文件必须送到单片机中,单片机在电路中才能按你的“计划”去工作。而将这个代码文件送到单片机中的工具就是编程器,与电脑连接的编程器一般都通过并口或者串口与编程器的硬件连接,还有相应的服务程序。在连接好电脑与编程后运行其服务程序,先在服务程序中选择所要编程的单片机型号,再调入前面所得到的代码文件,接下来就用编程器将这个代码文件烧写到单片机中。到此,单片机开发的一个过程就大致完成。

  当然,对于初学者的你不可能一次就把你所想的“计划”用单片机的语言正确完美的写出来,此时,就需要反复修改源程序,反复编译、烧写到单片机中,反复将单片机装到电路中去实验。由于单片机执行每一条语句所用的时间极短,以致你有时无法得出中间的结果,也无法判断程序出错的具体位置,那么这时你就可以使用软件模拟的方法,让程序一步一步的执行,每执行一步,通过查看单片机中各关键数据的变化情况,以便找到错误或没按你“计划”执行的语句,从而达到排除错误的目的。如果你资金充足,也可以购买单片机仿真器,它可以很好的取代实际电路中的单片机,在电脑的控制下一步一步的去排错。实际上无论软件模拟(仿真)还是硬件仿真,其功能远不止这一点。



评论


相关推荐

技术专区

关闭