您的位置 首页 动态

51单片机指令快速回忆办法总结

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽

单片机是一种集成在电路芯片,是选用超大规模集成电路技能把具有数据处理才干的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中止体系、定时器/计时器等功用(或许还包含显现驱动电路、脉宽调制电路、模仿多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机体系。

MCS-51是指由美国INTEL公司出产的一系列单片机的总称,这一系列单片机包含了好些种类,如8031,8051,8751,8032,8052,8752等,其间8051是最早最典型的产品。

学习单片机,除了搞清单片机内部功用、存储空间分配及I/O接口外,还应把握其指令体系。MCS-51共有111条指令,现介绍咱们总结出的快速回忆MCS-51指令的办法,供咱们参阅。

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

一、助记符号的回忆办法

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 指令操作数的有关符号

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)指令也 可照此办理。

4 口诀回忆法

关于有些指令,咱们能够把相关的功用用精练的言语编成一句话来回忆。如PUSH direct和POP direct这两条指令。 初学者常常分不清仓库SP的改变状况,为此编成这样一句话:(SP的内容)加1(direct的内 容)再入栈,(SP的内容)弹出(到direct单元)SP才减1。 又如乘法指令中积的寄存,除法指令中被除数和除数以及商的寄存,都能够编成口诀回忆如下:

MUL AB

高位积(存于)B,低位积(存于)A。

DIV AB

A除以B,商(存于)A余(下)B。

上面介绍了几种快速回忆单片机指令的办法,希望能起到抛砖引玉的作用,信任读者在学习单片机的进程中能找到合适自己的办法来回忆。可是,有了好的办法还不行,还需求实践,即多读书上的例题和他人编写的程序,自己再结合实践编写一些程序。只要这样, 才干更好更快地把握单片机指令体系。

主张

学单片机之初,你有必要懂一些数字电路,若对数字电路中的一般概念都很含糊,最好仍是再补习一下再来学单片机。接下来你最好先选一种单片机机种进行学习,因为现在单片机机种较多,其结构和指令均不相同,若这种学两天,那种学两天往往会滩多嚼不烂。这儿主张你最好先学8051单片机,因为8051方面的书本、材料、器材都较多。PIC和AVR以及其它类型的单片机虽有其利益,但现在的书本、材料以及器材供给并不抱负,不太合适初学者挑选。若你对这些并不介意的话那挑选后者进行学习也未尚不行。

咱们主张你挑选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或许会更快一些。

单片机程序是用文本修正器编写的纯文本文件,象咱们往常在windows计事本顶用汉语写方案相同,先这件过后那件事的去写,以所运用单片机言语的语法,按咱们的主意把单片机要做的事“一件一件”的顺次写下来,遇到“有些事”是重复的,就指明在什么什么地方已有阐明(跳转),在正常组织中若有其它突发事件呈现,有必要写一段突发事件处理方案(中止)… …。最终保存文件的扩展名应与所运用的言语要求的姓名共同;咱们汉语的文章一般保存为*.txt扩展名,而汇编言语的文件扩展名一般应为*.asm;有的开发体系则有自己的规则,如用 Keil C51开发体系,编写的汇编程序扩展名为*.a51;当然Keil C51开发体系也有自己的修正器,不用用Windows中的记事本。

不管咱们运用汇编言语,仍是C言语编写的程序,仅仅给咱们看的,这个程序还有必要经过与该言语对应的软件将咱们能看懂的汇编或C“翻译”(编译)成所用单片机能够辨认的代码。将单片机能够辨认的代码烧写(编程)到单片机程序存储器中,单片机装的实践电路中才干依你的“方案”去作业。

关于8051系列单片机来说,Keil C开发体系具有修正、编译、模仿单片机C言语程序的功用,也能修正、编译、模仿汇编言语程序;关于初学者,开端编写的程序不免呈现语法过错或其它不标准的句子,因为Keil C编译时对过错句子提示的是英文,不太好了解,若用汇编的话,可运用DOS下的宏汇编编译器ASM51;他能够对犯错句子进行中文提示;你源程序的注释部分还能够运用中文,这更便于你往后对程序的保护。

编译出的代码一般扩展名为*.hex或*.bin;这个代码文件有必要送到单片机中单片机在电路中才干按你的“方案”去作业。将这个代码文件送到单片机中的东西便是编程器,与电脑衔接的编程器一般都经过并口或许串口与编程器的硬件衔接,也有相应的服务程序;在衔接好电脑与编程后运转其服务程序,在服务程序中先挑选所要编程的单片机类型,再调入前面所得到的代码文件,接下来就用编程器将这个代码文件烧写到单片机中。到此,单片机开发的一个进程就大致完结。

当然,你不或许一次就把你的“方案”用单片机的言语完美正确的将源程序写好(便是咱们往常制定的方案在实践中也有修正的),这就需求重复修正源程序,重复编译、烧写到单片机中、重复将单片机装到电路中去试验。因为单片机履行每一条句子所用的时刻很短,有时你无法得到其间间的成果,也无法判别程序犯错的方位,这时你能够运用软件模仿的办法,让程序一步一步的履行,每履行一步,经过检查单片机中各要害数据的改变状况,来找到过错或没按你“方案”履行的句子,然后到达排错的意图。若你资金不成问题的话,也能够购买单片机仿真器,他能够替代实践电路中的单片机,在电脑的操控下一步一步的去排错。实践上不管软件模仿(仿真)仍是硬件仿真,其功用远不止这儿讲的这一点点。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/292523.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部