由专家提出的51系列单片机指令速记法
学单片机之初,你必须懂一些数字电路,若对数字电路中的一般概念很模糊,则应补习一下数字电路再学单片机。目前单片机机种较多,其结构和指令均不相同,所以最好先选一种单片机机种进行学习,然后再进行其他机种的学习。若这种学几天,那种学几天往往会滩多嚼不烂。建议你最好先学8051单片机,因关于8051方面的书籍、资料、器材较多。PIC和AVR以及其它类型的单片机虽有其长处,但与8051单片机相反,现在关于它们的书籍、资料以及器件供应并不太理想,不太适合初学者选择。若你对这些并不在意,也可选择后者进行学习,只要觉得适合你自己学的都行。
8051系列的派生品很多,这也是建议你先学8051单片机的原因。例如ATMEL公司的AT89C51系列单片机就是完全兼容MSC-51 8051系列的(即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。这个代码文件必须送到单片机中,单片机在电路中才能按你的“计划”去工作。而将这个代码文件送到单片机中的工具就是编程
- MCS-51系列单片机的结构(12-02)
- 单片机课程设计-ATMEL51系列单片机编程器(12-01)
- MCS-51系列单片机的指令系统的指令中操作数的描述符号(11-29)
- 51系列中data,idata,xdata,pdata的区别(11-27)
- 51系列单片机12M晶振与9600波特率漫谈(11-26)
- 学习51系列单片机个人经验(11-26)