单片机学习方法 单片机学习技巧

学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令的方法,供大家参考。

大家都知道,汇编语言指令由操作码、操作数两部分组成。MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。这里先介绍指令助记符及其相关符号的记忆方法。

2.jpg


一、助记符号的记忆方法
1表格列举法 把44个指令助记符按功能分为五类,每类列表记忆。此处从略,请读者自己总结。

2英文还原法
单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加强记忆。例如:
增量 INC-Incremect 减量 DNC-Decrement
短转移 SJMP-Short jump 长转移 LJMP-Long jump
比较转移 CJNE-Compare jump not equality
绝对转移 AJMP-Absolute jump 空操作 NOP-No operation
交换 XCH-Exchange 加法 ADD-Addition
乘法 MUL-Multiplication 除法 DIV-Division
左环移 RL-Rotate left 进位左环移 RLC-Rotate
left carry
右环移 RR-Rotate right 进位右环移RRC-Rotate
right carry
3功能模块记忆法 单片机的44个指令助记符,按所属指令功能可分为五大类,每类又可以按功能相似原则为2~3组。这样,化整为零,各个击破,实现快速记忆。
1)数据传送组。 2)加减运算组
MOV 内部数据传送 ADD 加法
MOVC 程序存储器传送 ADDC 带进位加法 MOVX 外部数据传送 SUBB 带进位减法
3)逻辑运算组。 4)子程序调用组。
ANL 逻辑与 LCALL 长调用
ORL 逻辑或 ALALL 绝对调用

XRL 逻辑异或 RET 子程序返回

1.jpg


二、指令的记忆方法
1指令操作数的有关符号
MCS-51的寻址方式共有六种:立即数寻址、直接寻址、寄存器寻址、寄存器间址、变址寻址、相对寻址。我们必须掌握其表示的方法。
1)立即数与直接地址。
ata表示八位立即数,#data16表示是十六位立即数,data或direct表示直接地址。
2)Rn(n=0-7)、A、B、CY、DPTR寄存器寻址变量。
3)@R0、@R1、@DPTR、SP表示寄存器间址变量。
4)DPTR+A、PC+A表示变址寻址的变量。
5)PC+rel(相对量)表示相对寻址变量。
记住指令的助记符,掌握不同寻址方式的指令操作数的表示方法,为我们记忆汇编指令打下了基础。MCS-51指令虽多,但按功能可分为五类,其中数据传送类28条,算术运算类24条,逻辑操作类25条,控制转移类17条,布尔位操作类17条。在每类指令里,根据其功能,抓住其源、目的操作数的不同组合,再辅之以下方法,是完全能记住的。我们约定,可能的目的操作数按(#data/direct/A/Rn/@Ri)顺序表示。
对于MOV指令,其目的操作数按A、Rn、direct、@Ri的顺序书写,则可以记住MOV的15条指令。例如以累加器A为目的操作数,可写出如下4条指令。
MOV A,#data/direct/A/Rn/@Ri
以此类推,写出其它指令。
MOV Rn,#data/direct/A
MOV direct,#data/direct/A/Rn/@Ri

MOV @Ri,#data/direct/A


2指令图示记忆法
图示记忆法是把操作功能相同或相似、但其操作数不同的指令,用图形和箭头将目的、源操作数的关系表示出来的一种记忆方法。例如:由助记符MOV、MOVX、MOVC组成的送数组指令,可以用图1、2帮助记忆。
由助记符CJNE形成的四条指令,也可以用图示法表示,如图3。
CJNE A,#data,rel CJNE A,direct,rel
CJNE @Rn,#data,rel CJNE @Ri,#data,rel

另外,对于由(ANL、ORL、ARL)形成的18条逻辑操作指令,有关A的四条环移指令,也可以用图示法表示,请读者自行画出记忆。


3相似功能归类法
在MCS-51指令中,我们发现部分指令其操作码不同,但功能相似,而操作数则完全一样。相似功能归类法就是把具有这样特点的指令放在一起记忆,只要记住其中的一条,其余的也就记住了。如加、减法的十二条指令,与、或、非的十八条指令,现列举如下:
ADD/ADDC/SUBB A,#data/direct/Rn/@Ri
ANL/ORL/XRL A,#data/direct/Rn/@Ri
ANL/ORL/XRL direct,#data/a

上述每一排指令,功能相似,其操作数都相同。其它的如加1(INC)、减1(DEC)指令也可照此办理。

0.jpg


4口诀记忆法
对于有些指令,我们可以把相关的功能用精练的语言编成一句话来记忆。如PUSH direct和POP direct这两条指令。初学者常常分不清堆栈SP的变化情况,为此编成这样一句话:(SP的内容)加1(direct的内容)再入栈,(SP的内容)弹出(到direct单元)SP才减1。又如乘法指令中积的存放,除法指令中被除数和除数以及商的存放,都可以编成口诀记忆如下。
MUL AB 高位积(存于)B,低位积(存于)A。
DIV AB A除以B,商(存于)A余(下)B。
上面介绍了几种快速记忆单片机指令的方法,希望能起到抛砖引玉的作用,相信读者在学习单片机的过程中能找到适合自己的方法来记忆。但是,有了好的方法还不够,还需要实践,即多读书上的例题和别人编写的程序,自己再结合实际编写一些程序。只有这样,才能更好更快地掌握单片机指令系统。