![Holtek(合泰)单片机指令介绍[1].ppt_第1页](http://file1.renrendoc.com/fileroot_temp2/2020-3/15/92d63a8f-421c-4902-91d2-34fe27eb57b4/92d63a8f-421c-4902-91d2-34fe27eb57b41.gif)
![Holtek(合泰)单片机指令介绍[1].ppt_第2页](http://file1.renrendoc.com/fileroot_temp2/2020-3/15/92d63a8f-421c-4902-91d2-34fe27eb57b4/92d63a8f-421c-4902-91d2-34fe27eb57b42.gif)
![Holtek(合泰)单片机指令介绍[1].ppt_第3页](http://file1.renrendoc.com/fileroot_temp2/2020-3/15/92d63a8f-421c-4902-91d2-34fe27eb57b4/92d63a8f-421c-4902-91d2-34fe27eb57b43.gif)
![Holtek(合泰)单片机指令介绍[1].ppt_第4页](http://file1.renrendoc.com/fileroot_temp2/2020-3/15/92d63a8f-421c-4902-91d2-34fe27eb57b4/92d63a8f-421c-4902-91d2-34fe27eb57b44.gif)
![Holtek(合泰)单片机指令介绍[1].ppt_第5页](http://file1.renrendoc.com/fileroot_temp2/2020-3/15/92d63a8f-421c-4902-91d2-34fe27eb57b4/92d63a8f-421c-4902-91d2-34fe27eb57b45.gif)
已阅读5页,还剩131页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HOLTEKMCU,软件指令介绍,MCU概述指令系统概述HOLTEK指令系统,MCU概述指令系统概述HOLTEK指令系统,MCU概述(组成架构),MCU的基本结构由以下几个部分组成:PC(Programcounter程序计数器)ROM(Programmemory程序存储器)RAM(Datamemory数据存储器)ACC(Accumulator累加器)ALU(Arithmeticandlogicunit算术逻辑单元)STATUS(Statusregister状态寄存器)STACK(Stackregister堆栈寄存器),MCU概述指令系统概述HOLTEK指令系统,指令系统概述,分类寻址方式指令周期状态寄存器指令中的常用符号,分类,HOLTEK8位系列单片机共有63条功能强大的汇编指令。这些指令按功能可分为以下七类。数据传送指令算术运算指令逻辑运算指令控制和转移指令位操作指令读表指令其它指令,寻址方式,立即寻址:指令中直接给出操作数(立即数)例:MOVA,直接寻址:指令中给出操作数的地址,该方式只允许在存储器之间传送数据例:MOV,ACLR,33H,20H,30H,寻址方式,间接寻址:用到间接寻址寄存器(R0,R1)进行寻址操作例:MOV,A特殊寄存器寻址:针对某一特殊寄存器作运算例:CLR指针寻址:配合查表指令使用例:MOV,ATABRDCACC,R0,WDT,TBLP,指令周期,一个指令周期包括四个系统时钟周期。指令的提取和执行呈流水线工作。,指令周期,由于采用了流水线的工作方式,因此多数指令都能在1个指令周期内执行完成。查表指令是2周期指令。(若查表所得内容的低8位送往PCL,则该指令的执行就需要3个指令周期。)凡是使程序非顺序执行的指令,其执行时间需要2个指令周期。(包括:JMP、CALL等,指令MOVPCL,A、以及SZ、SIZ等判断条件成立时。),状态寄存器,零标志,进位标志,半进位标志,溢出标志,掉电标志,WDT溢出标志,指令中的常用符号,X:8位立即数M:数据存储器地址A:累加器I:0-7位Addr:程序存储器地址:数据传送方向,MCU概述指令系统概述HOLTEK指令系统,HOLTEK指令系统,数据传送指令(3条)算术运算指令(15条)逻辑运算指令(19条)控制和转移指令(11条)位运算指令(4条)读表指令(2条)其它指令(9条),数据传送指令,数据传送指令是应用最频繁的指令助记符为MOV,其汇编语言指令格式为MOV目的字节,源字节指令功能是将源字节的内容传送到目的字节,源字节的内容不变。这类指令不影响标志位。,MOVA,m,指令说明:,RAM,ACC,MOVm,A,指令说明:,RAM,ACC,MOVA,X,指令说明:,ROM,ACC,MOVA,50H,ACC,50H,51H,RAM,00H,10H,20H,10H,10H,55H,MOV51H,A,MOVA,55H,例,算术运算指令,算术运算指令包括加、减、加1、减1等指令。这类指令大都影响标志位。,带进位的加法指令,ADCA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,STATUS,RAM,ACC+m+C,ADCMA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,STATUS,RAM,ACC+m+C,例,ACC,50H,51H,RAM,55H,10H,10H,66H,76H,ADCA,50H,ADCMA,51H,加法指令,ADDA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,RAM,ACC+m,ADDMA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,RAM,ACC+m,ADDA,X,指令说明:影响标志:OV,Z,AC,C,ROM,ALUShifter,ACC,ACC+X,例,ACC,60H,61H,RAM,66H,5BH,22H,C1H,E3H,ADDA,60H,ADDMA,61H,1,1,ADDA,51H,0,0,12H,1,BCD码修正指令,DAAm,指令说明:影响标志:C,若ACC低四位的值大于9或AC1,則低四位加上6;,ACC,ALUShifter,RAM,若ACC高四位的值大于9或C1,則高四位加上6;,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,53H,54H,RAM,12H,00H,00H,69H,E1H,MOVA,69H,ADDA,78H,DAA53H,1,1,47H,1,带借位的减法指令,SBCA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,STATUS,RAM,SBCMA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,STATUS,RAM,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,70H,71H,RAM,E1H,23H,45H,BDH,78H,SBCA,70H,SBCMA,71H,1,1,1,减法指令,SUBA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,RAM,SUBMA,m,指令说明:影响标志:OV,Z,AC,C,ACC,ALUShifter,RAM,SUBA,X,指令说明:影响标志:OV,Z,AC,C,ROM,ALUShifter,ACC,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,80H,81H,RAM,BDH,12H,34H,ABH,77H,SUBA,80H,SUBMA,81H,1,1,SUBA,56H,1,55H,加1指令,INCm,指令说明:影响标志:Z,ALUShifter,RAM,m+1,INCAm,指令说明:影响标志:Z,ACC,ALUShifter,RAM,m+1,减1指令,DECm,指令说明:影响标志:Z,ALUShifter,RAM,m-1,DECAm,指令说明:影响标志:Z,ACC,ALUShifter,RAM,m-1,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,90H,91H,RAM,55H,FEH,20H,FFH,00H,INC90H,INCA90H,1,0,DEC91H,DECA91H,1FH,1EH,逻辑运算指令,逻辑运算指令包括与、或、异或、循环及求反指令。它们在执行时大都影响标志位。,逻辑与指令,ANDA,m,指令说明:影响标志:Z,ACC,ALUShifter,RAM,ACC“AND”m,ANDMA,m,指令说明:影响标志:Z,ACC,ALUShifter,RAM,ACC“AND”m,ANDA,X,指令说明:影响标志:Z,ROM,ALUShifter,ACC,ACC“AND”X,例ANDA,40H,运算前:ACC=19H00011001B40H=B8H10111000B运算后:ACC=18H00011000B40H=B8H,逻辑或指令,ORA,m,指令说明:影响标志:Z,ACC,ALUShifter,RAM,ACC“OR”m,ORMA,m,指令说明:影响标志:Z,ACC,ALUShifter,RAM,ACC“OR”m,ORA,X,指令说明:影响标志:Z,ROM,ALUShifter,ACC,ACC“OR”X,例ORMA,41H,运算前:ACC=12H00010010B41H=11H00010001B运算后:ACC=12H00010011B41H=13H,逻辑异或指令,XORA,m,指令说明:影响标志:Z,ACC,ALUShifter,RAM,ACC“XOR”m,XORMA,m,指令说明:影响标志:Z,ACC,ALUShifter,RAM,ACC“XOR”m,XORA,X,指令说明:影响标志:Z,ROM,ALUShifter,ACC,ACC“XOR”X,例XORA,25H,运算前:ACC=33H00110011B25H00100101B运算后:ACC=16H00010110B,取反指令,CPLm,指令说明:影响标志:Z,ALUShifter,RAM,CPLAm,指令说明:影响标志:Z,ACC,ALUShifter,RAM,例CPL42H,运算前:42H=11H00010001B运算后:42H=EEH11101110B,移位指令,RRm,指令说明:影响标志:none,ALUShifter,RAM,RRAm,指令说明:影响标志:none,ACC,ALUShifter,RAM,RRCm,指令说明:影响标志:C,ALUShifter,STATUS,RAM,RRCAm,指令说明:影响标志:C,ACC,ALUShifter,STATUS,RAM,例RR50H,运算前:50H=30H运算后:50H=18H,00110000B,00011000B,例RRCA51H,运算前:ACC=01HC51H=10H00010000B1运算后:ACC=88H10001000B051H=10H,RLm,指令说明:影响标志:none,ALUShifter,RAM,RLAm,指令说明:影响标志:none,ACC,ALUShifter,RAM,RLCm,指令说明:影响标志:C,ALUShifter,STATUS,RAM,RLCAm,指令说明:影响标志:C,ACC,ALUShifter,STATUS,RAM,例RLA52H,运算前:ACC=01H52H=10H00010000B运算后:ACC=20H00100000B52H=10H,例RLC20H,运算前:C20H=10H00010000B1运算后:20H=21H00100001B0,控制和转移指令,控制和转移指令包括无条件转移指令、条件转移指令、循环转移指令及调用与返回指令。这类指令通过修改PC的内容(占用2个指令周期)来控制程序的执行过程,可极大的提高程序的效率,实现复杂的功能。它们在执行时不影响标志位,无条件转移指令,JMPaddr,指令说明:影响标志:none,ROM,PC,將要跳往的目的地地址直接送到程序計數器內。,PCaddr,例,MOVA,20H,JMPDELAY,DELAY:,MOVA,30H,条件转移指令,SZm,指令说明:影响标志:none,ALUShifter,RAM,PC,PC+2,ifm=0,SZAm,指令说明:影响标志:none,ACC,ALUShifter,RAM,PC,PC+2,ifm=0,例,ACC,55H,56H,RAM,57H,58H,SZ55H,SZ56H,SZA57H,SZA58H,MOVA,00H,MOVA,01H,MOVA,02H,MOVA,03H,00H,34H,03H,循环转移指令,SDZm,指令说明:影响标志:none,ALUShifter,RAM,PC,mm-1,PC+2,ifm=0,SDZAm,指令说明:影响标志:none,ACC,ALUShifter,RAM,PC,PC+2,if(m-1=0),ACCm-1,例,ACC,60H,61H,RAM,62H,63H,LOOP1:,JMPLOOP1,LOOP2:,JMPLOOP2,SDZ60H,SDZA62H,MOVA,02H,04H,04H,04H,MOVA,04H,03H,02H,01H,MOV62H,A,03H,02H,01H,00H,03H,02H,01H,02H,00H,SIZm,指令说明:影响标志:none,ALUShifter,RAM,PC,mm+1,PC+2,ifm=0,SIZAm,指令说明:影响标志:none,ACC,ALUShifter,RAM,PC,PC+2,if(m+1=0),ACCm+1,例,ACC,60H,61H,RAM,62H,63H,LOOP1:,JMPLOOP1,LOOP2:,JMPLOOP2,SIZ61H,SIZAACC,MOVA,55H,FEH,MOVA,FEH,FFH,FFH,00H,55H,00H,调用及返回指令,CALLaddr,指令说明:影响标志:none,STACK,ROM,PC,PC+1,PCaddr,RET,指令说明:影响标志:none,STACK,PC,例,MOVA,20H,CALL0123H,RET,ORG0123H,MOVA,30H,PC+1值压入堆栈,返回堆栈中的PC值,RETI,指令说明:影响标志:none,该指令使用在中斷程序返回時,它同时将INTC的第0位(中斷使能位)置為1。,EMI1,STACK,PC,RETA,X,指令说明:影响标志:none,STACK,PC,ROM,ACC,位操作指令,位操作指令包括位逻辑操作指令、位条件转移指令。指令中的操作数都是1位的。这类指令的执行不影响标志位。,CLRm.i,指令说明:将存储器内第i位值清零。m.i0影响标志:none,例CLR20H.3,运算前:20H=88H10001000B运算后:20H=80H10000000B,SETm.i,指令说明:将存储器内第i位值置为1。m.i1影响标志:none,例SET20H.3,运算前:20H=10H00010000B运算后:20H=18H00011000B,SZm.i,指令说明:判断存储器内第i位值是否为0,若为0则跳过下一行指令。m.i=0,PC+2影响标志:none,SNZm.i,指令说明:判断存储器内第i位值是否为0,若不为0则程序计数器加一,跳过下一行指令。Skipifm.i0影响标志:none,例SZ20H.3运算前:PC=0100H20H=18H运算后:PC=0101H20H=18H,例SZ30H.3运算前:PC=0100H30H=10H运算后:PC=0102H30H=10H,例SNZ20H.4运算前:PC=0100H20H=28H运算后:PC=0101H20H=28H,例SNZ30H.4运算前:PC=0100H30H=10H运算后:PC=0102H30H=10H,读表指令,HOLTEK8位单片机的程序存储器除了存放程序外,还可以存放一些常数,称为表格。指令系统提供了2条访问程序存储器的指令,我们称为读表指令。读表指令的执行需要2个指令周期的时间。这类指令的执行不影响标志位。,TABRDCm,指令说明:查ROM当前页,由TBLP确定页内地址。将该地址中数据的低8位送到m,高8位送到TBLHm程序存储器低位TBLH程序存储器高位页:一页的大小为256个字节,即PC低八位的范围为00H-FFH影响标志:none,TABRDLm,指令说明:查ROM最后一页,由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一次性纸杯生产建设项目可行性实施报告
- 2025年八年级上学期英语第二次月考试卷含答案
- 3.2物质的导电性(第二课时)课件浙教版科学八年级上册
- 药物外渗指南解读
- 诱导痰细胞学检查临床应用
- 《在柏林》课件教学课件
- 13基因工程的应用微课获奖课件公开课一等奖课件省赛课获奖课件
- 肿瘤患者营养支持及护理
- 邮政经营分析会汇报材料
- 幼儿地理趣味讲解
- 2025年燃气电厂笔试题库及答案
- 2025年科技咨询师考试题库
- 四川省凉山州2024-2025学年高一下册期末统一检测数学检测试卷
- 2025年道路运输两类人员安全员考试考核试题库答案
- 2025年历年医疗卫生卫健委面试真题及答案解析
- 心衰病人的观察与护理
- 食品安全卫生试题及答案
- GB/T 30807-2025建筑用绝热制品浸泡法测定长期吸水性
- 矿业公司环保培训课件
- 驾校项目施工方案
- 李咏梅元音教学课件
评论
0/150
提交评论