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 operati on
交换 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组成的送数组指令。
由助记符CJNE形成的四条指令,也可以用图示法表示。 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 ABA除以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;这个代码文件必须送到单片机中单片机在电路中才能按你的“计划”去工作。将这个代码文件送到单片机中的工具就是编程器,与电脑连接的编程器一般都通过并口或者串口与编程器的硬件连接,也有相应的服务程序;在连接好电脑与编程后运行其服务程序,在服务程序中先选择所要编程的单片机型号,再调入前面所得到的代码文件,接下来就用编程器将这个代码文件烧写到单片机中。到此,单片机开发的一个过程就大致完成。
当然,你不可能一次就把你的“计划”用单片机的语言完美正确的将源程序写好(就是我们平常制订的计划在实际中也有修改的),这就需要反复修改源程序,反复编译、烧写到单片机中、反复将单片机装到电路中去实验。由于单片机执行每一条语句所用的时间很短,有时你无法得到其中间的结果,也无法判断程序出错的位置,这时你可以使用软件模拟的方法,让程序一步一步的执行,每执行一步,通过查看单片机中各关键数据的变化情况,来找到错误或没按你“计划”执行的语句,从而达到排错的目的。若你资金不成问题的话,也可以购买单片机仿真 器,他可以取代实际电路中的单片机,在电脑的控制下一步一步的去排错。实际上无论软件模拟(仿真)还是硬件仿真,其功能远不止这里讲的这一点点。
单片机控制下的动量轮能否识别弯道?转向环值降低能否正常转弯?
本文仅在今日头条首发,未发布其他任何平台,请勿搬运抄袭,违者必追究版权责任。
【绯娱罐头】编辑的精彩原创:《自行车机器人:动量轮引领的智能循迹探索》
在当今科技不断刷新边界的时代,机器人的应用领域也愈发广阔。在这个充满可能性的领域中,自行车机器人以其独特的平衡控制技术引发了无限遐想。曾经,在无人控制的情况下,两轮非机动车的平衡成为了一大难题。
而如今,传统的脚踏式两轮平衡车已经脱胎换骨,引入了单级角度环PID平衡控制,实现了自动平衡。
然而,更引人瞩目的是自行车机器人的横空出世。其不同于过去的模式,基于动量守恒原理,在自行车上加装外置动量轮。通过精心设计的电机控制算法,动量轮在合理转动中产生回复力,从而让整个车身保持平衡。这种创新的平衡控制技术,为自行车的智能化循迹打开了全新的可能性。
研究者们在自行车机器人的平衡控制方面付出了大量心血。高维度的滑模控制器结合复杂的非线性物理建模,为自行车平衡控制带来了重大突破。然而,设计的复杂性也成为了一大挑战。为了深入探讨这一难题,研究团队倾心设计并实现了基于无刷电机控制的动量轮自平衡循迹自行车系统,为整个领域注入了新的活力。
整个系统方案的设计令人瞩目。
摄像头模块采集道路灰度图像,图像处理算法识别道路元素,控制舵机模块和后轮电机,使得小车能够在道路上稳定行驶。陀螺仪模块配合姿态解算算法,为小车提供了准确的姿态角信息。串级PID控制算法使得动量轮得以平稳转动,确保车身平衡。
硬件设计也是系统成功的关键。TC264单片机的优越性能为整个系统的稳定运行提供了有力保障。
通过精心的电源模式选择,晶振构建等手段,为硬件系统的稳定性和可靠性提供了有力保障。驱动电路的设计更是经过精雕细琢,以保证电机的高效驱动和稳定运行。
在软件设计方面,陀螺仪姿态解算、串级PID平衡控制、图像处理等多个模块的协同作用,使得自行车机器人能够在复杂的道路环境中保持平衡。图像处理算法的高效二值化和边缘提取,为车辆的道路识别提供了有力支持。
而针对不同道路元素的转向控制策略,使得自行车机器人能够应对各种复杂路况,保持稳定行驶。
在实验中,通过精准的参数调整和系统优化,自行车机器人呈现出最大回复角17°的惊人效果。系统的稳定性、抗扰动性和高速性使其在不同场景下都能表现出色。长直道、弯道、十字路口、环岛,自行车机器人的表现都让人印象深刻。
自行车机器人不仅仅是一种工程创新,更是科技智慧的结晶。
在自行车机器人的世界里,科技与智能的融合创造了奇迹。动量轮的引入,PID控制算法的优化,图像处理的精准,无不展现出研究者们的智慧和毅力。自行车机器人不仅是科技的探索,更是未来交通领域的一大希望。或许,在不远的将来,我们将能够在街头巷尾见到这些智能的小车,它们在城市中穿梭,成为我们生活中的一部分。
期待着那一天的到来,让我们为自行车机器人的未来,共同憧憬。阅读文章前辛苦您点下“关注”,方便讨论和分享,为了回馈您的支持,我将每日更新优质内容。
编辑:绯娱罐头
【绯娱罐头】编辑的精彩原创:《自行车机器人:动量轮引领的智能循迹探索》
回顾自行车机器人的探索历程,每一个阶段都是智慧的结晶。无论是平衡控制的突破,还是图像处理的精准,都离不开团队的不懈努力。
探索的过程并不平坦,但正是这种无畏的追求,让自行车机器人得以从概念走向现实,成为一项令人瞩目的创新成果。
当今社会,科技的创新正在加速。自行车机器人的出现,不仅让我们目睹了智能控制在移动机器人领域的突破,更为未来的智能出行指明了方向。无论是在城市交通拥堵的挑战面前,还是在智能出行的需求中,自行车机器人都有着巨大的潜力。
它或许会成为人们日常出行的一种新方式,也可能在物流、配送等领域发挥重要作用。
自行车机器人的探索之路还在继续,新的挑战和机遇正等待着科技的先驱者们。无论是平衡控制的更精准,还是道路识别的更智能,都需要更多的智慧和勇气去迎接。让我们一同期待自行车机器人未来更加精彩的表现,也期待着科技在不断拓展的道路上带来更多的惊喜。
正如文章开头所言,为了更好地回馈您的支持,我将会继续更新优质内容。科技的进步永远不会停止,未来的探索充满了无限的可能性。让我们携手前行,在创新的征途上,共同创造更加美好的明天。感谢您的关注,让我们一同见证科技的奇迹,共同探索未来的前景。
编辑:绯娱罐头
感谢您的阅读欣赏与互动交流,再次申明,本人所创作的文章仅在今日头条首发,未在其他平台发布,任何盗用行为将承担法律责任。
相关问答
海尔客服电话-ZOL问答另外,如果自家空调安装时铜管喇叭处螺帽没拧紧,或者曾经移过机,问题很有可能是缺氟造成的。除此以外,线路控制故障也比较常见。比如,如果外机不工作了,多半为...
编码器怎么实现定位功能,用plc怎么设计梯形图?严格来讲,编码器只会告诉你改如何定位,要如何执行,是需要靠数控系统(或者PLC之类控制器)控制伺服或者步进电机来实现定位的,编码器好比人的眼睛,知道电机...PLC...
430 单片机 中FLL+是什么意思?在MSP430系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL和FLL+)时钟系统和DCO数字振荡器时钟系统。可以只使用一个晶体振荡器(32768Hz),也可以使...
谁有日本著名的西部机线切割操作及编程说明书(中文)?[回答]先将电源->主板->硬盘->光驱固定在机箱,并扭好螺丝然后将CPU->CPU风扇->内存->显卡(声卡等等)装到主板接好主板、硬盘、光驱电源线/数据线,然后对着.....
PLC如何与常用输入输出电气元件连接?PLC外表硬邦邦,看起来是个黑盒子,一般厂家只会给出输入输出端子接线图,根据端子接线图就可以了。而电路的本质还是要形成回路,每个输入端对应一个回路,同样...如...
集成电路是啥?集成电路是个啥啊,这个东西。昨天你是不是问的有点太水了?这个问题。集成电路就是芯片,就是中一块一块的芯片,在电路板上,你可以看到一块一块的黑的东西,而...集...
伊莱克斯空调f6故障怎么解决?_住范儿家装官网至少应在压缩机启动5分钟后才出现,可能存在的问题有:变频机出现F6代码,意思是过负荷降频。指示灯灭3S闪烁6次.一台格力空调移机之后,出现F6故障,...
铣床数控改造有什么详细内容?[回答]用单片机扩展系统将普通铣床改造为经济型铣床,简便易行,能保证零件的加工精度,对复杂零件尤其是对弧面和凸面的加工效果显著。采用直流伺服电动机...
伺服电机与变频电机有什么区别?伺服电机,它与变频电机最主要的区别是自身带有编码器,然后将其传输到伺服电机驱动器里面,再利用控制理论,比如增益,调节时间,简单的说伺服电机所构成的是一...
电路中为什么要用V/f转换V/f变换一个是方便传感器信号的传输,微小电压信号经过线路传输,容易受到线路温度的影响,导致误差.如果经过压/频变换后传输,效果就会得到明显改变...