Holtek(合泰)单片机指令介绍[1].ppt_第1页
Holtek(合泰)单片机指令介绍[1].ppt_第2页
Holtek(合泰)单片机指令介绍[1].ppt_第3页
Holtek(合泰)单片机指令介绍[1].ppt_第4页
Holtek(合泰)单片机指令介绍[1].ppt_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HOLTEK MCU,软件指令介绍,MCU概述 指令系统概述 HOLTEK指令系统,MCU概述 指令系统概述 HOLTEK指令系统,MCU概述(组成架构),MCU的基本结构由以下几个部分组成: PC(Program counter 程序计数器) ROM(Program memory 程序存储器) RAM(Data memory 数据存储器) ACC(Accumulator 累加器) ALU(Arithmetic and logic unit 算术逻 辑单元) STATUS(Status register 状态寄存器) STACK(Stack register 堆栈寄存器),MCU概述 指令系统

2、概述 HOLTEK指令系统,指令系统概述,分类 寻址方式 指令周期 状态寄存器 指令中的常用符号,分类,HOLTEK8位系列单片机共有63条功能强大的汇编指令。这些指令按功能可分为以下七类。 数据传送指令 算术运算指令 逻辑运算指令 控制和转移指令 位操作指令 读表指令 其它指令,寻址方式,立即寻址:指令中直接给出操作数(立即数) 例:MOV A, 直接寻址:指令中给出操作数的地址,该方式只允许在存储器之间传 送数据 例:MOV ,A CLR,33H,20H,30H,寻址方式,间接寻址:用到间接寻址寄存器(R0,R1)进行寻址操作 例:MOV ,A 特殊寄存器寻址:针对某一特殊寄存器作运算 例

3、:CLR 指针寻址:配合查表指令使用 例:MOV ,A TABRDC ACC,R0,WDT,TBLP,指令周期,一个指令周期包括四个系统时钟周期。 指令的提取和执行呈流水线工作。,指令周期,由于采用了流水线的工作方式,因此多数指令都能在1个指令周期内执行完成。 查表指令是2周期指令。(若查表所得内容的低8位送往PCL,则该指令的执行就需要3个指令周期。) 凡是使程序非顺序执行的指令,其执行时间需要2个指令周期。(包括:JMP、CALL等,指令MOV PCL,A、以及SZ、SIZ等判断条件成立时。),状态寄存器,零标志,进位标志,半进位标志,溢出标志,掉电标志,WDT溢出标志,指令中的常用符号,

4、X:8位立即数 M:数据存储器地址 A:累加器 I:0-7位 Addr:程序存储器地址 :数据传送方向,MCU概述 指令系统概述 HOLTEK指令系统,HOLTEK指令系统,数据传送指令(3条) 算术运算指令(15条) 逻辑运算指令(19条) 控制和转移指令(11条) 位运算指令(4条) 读表指令(2条) 其它指令(9条),数据传送指令,数据传送指令是应用最频繁的指令 助记符为MOV,其汇编语言指令格式为 MOV 目的字节,源字节 指令功能是将源字节的内容传送到目的字节,源字节的内容不变。 这类指令不影响标志位。,MOV A,m,指令说明:,RAM,ACC,MOV m,A,指令说明:,RAM,

5、ACC,MOV A,X,指令说明:,ROM,ACC,MOV A,50H,ACC,50H,51H,RAM,00H,10H,20H,10H,10H,55H,MOV 51H,A,MOV A,55H,例,算术运算指令,算术运算指令包括加、减、加1、减1等指令。 这类指令大都影响标志位。,带进位的加法指令,ADC A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU Shifter,STATUS,RAM,ACC+m+C,ADCM A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU Shifter,STATUS,RAM,ACC+m+C,例,ACC,50H,51H,RAM,55H,

6、10H,10H,66H,76H,ADC A,50H,ADCM A,51H,加法指令,ADD A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU Shifter,RAM,ACC+m,ADDM A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU Shifter,RAM,ACC+m,ADD A,X,指令说明: 影响标志: OV,Z,AC,C,ROM,ALU Shifter,ACC,ACC+X,例,ACC,60H,61H,RAM,66H,5BH,22H,C1H,E3H,ADD A,60H,ADDM A,61H,1,1,ADD A,51H,0,0,12H,1,BCD码修正指令

7、,DAA m,指令说明: 影响标志:C,若ACC低四位的值大于9或AC1, 則低四位加上6;,ACC,ALU Shifter,RAM,若ACC高四位的值大于9或C1, 則高四位加上6;,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,53H,54H,RAM,12H,00H,00H,69H,E1H,MOV A,69H,ADD A,78H,DAA 53H,1,1,47H,1,带借位的减法指令,SBC A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU Shifter,STATUS,RAM,SBCM A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU S

8、hifter,STATUS,RAM,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,70H,71H,RAM,E1H,23H,45H,BDH,78H,SBC A,70H,SBCM A,71H,1,1,1,减法指令,SUB A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU Shifter,RAM,SUBM A,m,指令说明: 影响标志:OV,Z,AC,C,ACC,ALU Shifter,RAM,SUB A,X,指令说明: 影响标志:OV,Z,AC,C,ROM,ALU Shifter,ACC,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,80H,

9、81H,RAM,BDH,12H,34H,ABH,77H,SUB A,80H,SUBM A,81H,1,1,SUB A,56H,1,55H,加1指令,INC m,指令说明: 影响标志:Z,ALU Shifter,RAM,m+1,INCA m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,m+1,减1指令,DEC m,指令说明: 影响标志:Z,ALU Shifter,RAM,m-1,DECA m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,m-1,STATUS,-,-,TO,PD,OV,Z,AC,C,例,ACC,90H,91H,RAM,55H,FEH,20

10、H,FFH,00H,INC 90H,INCA 90H,1,0,DEC 91H,DECA 91H,1FH,1EH,逻辑运算指令,逻辑运算指令包括与、或、异或、循环及求反指令。 它们在执行时大都影响标志位。,逻辑与指令,AND A,m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,ACC “AND” m,ANDM A,m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,ACC“AND”m,AND A,X,指令说明: 影响标志:Z,ROM,ALU Shifter,ACC,ACC“AND”X,例AND A,40H,运算前: ACC=19H00011001B 40H

11、=B8H10111000B 运算后: ACC=18H00011000B 40H=B8H,逻辑或指令,OR A,m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,ACC “OR” m,ORM A,m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,ACC“OR”m,OR A,X,指令说明: 影响标志:Z,ROM,ALU Shifter,ACC,ACC“OR”X,例ORM A,41H,运算前: ACC=12H00010010B 41H=11H00010001B 运算后: ACC=12H00010011B 41H=13H,逻辑异或指令,XOR A,m,指令说明:

12、 影响标志:Z,ACC,ALU Shifter,RAM,ACC “XOR” m,XORM A,m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,ACC“XOR”m,XOR A,X,指令说明: 影响标志:Z,ROM,ALU Shifter,ACC,ACC“XOR”X,例XOR A,25H,运算前: ACC=33H00110011B 25H00100101B 运算后: ACC=16H00010110B,取反指令,CPL m,指令说明: 影响标志:Z,ALU Shifter,RAM,CPLA m,指令说明: 影响标志:Z,ACC,ALU Shifter,RAM,例CPL 42H,

13、运算前: 42H=11H00010001B 运算后: 42H=EEH11101110B,移位指令,RR m,指令说明: 影响标志:none,ALU Shifter,RAM,RRA m,指令说明: 影响标志:none,ACC,ALU Shifter,RAM,RRC m,指令说明: 影响标志:C,ALU Shifter,STATUS,RAM,RRCA m,指令说明: 影响标志:C,ACC,ALU Shifter,STATUS,RAM,例RR 50H,运算前: 50H=30H 运算后: 50H=18H,00110000B,00011000B,例RRCA 51H,运算前: ACC=01H C 51H=

14、10H00010000B1 运算后: ACC=88H10001000B0 51H=10H,RL m,指令说明: 影响标志:none,ALU Shifter,RAM,RLA m,指令说明: 影响标志:none,ACC,ALU Shifter,RAM,RLC m,指令说明: 影响标志:C,ALU Shifter,STATUS,RAM,RLCA m,指令说明: 影响标志:C,ACC,ALU Shifter,STATUS,RAM,例RLA 52H,运算前: ACC=01H 52H=10H00010000B 运算后: ACC=20H00100000B 52H=10H,例RLC 20H,运算前: C 20

15、H=10H00010000B1 运算后: 20H=21H00100001B0,控制和转移指令,控制和转移指令包括无条件转移指令、条件转移指令、循环转移指令及调用与返回指令。 这类指令通过修改PC的内容(占用2个指令周期)来控制程序的执行过程,可极大的提高程序的效率,实现复杂的功能。 它们在执行时不影响标志位,无条件转移指令,JMP addr,指令说明: 影响标志:none,ROM,PC,將要跳往的目的地地址直接送到程序計數器內。,PC addr,例,MOV A,20H,JMP DELAY,DELAY:,MOV A,30H,条件转移指令,SZ m,指令说明: 影响标志:none,ALU Shif

16、ter,RAM,PC,PC+2,if m=0,SZA m,指令说明: 影响标志:none,ACC,ALU Shifter,RAM,PC,PC+2,if m=0,例,ACC,55H,56H,RAM,57H,58H,SZ 55H,SZ 56H,SZA 57H,SZA 58H,MOV A,00H,MOV A,01H,MOV A,02H,MOV A,03H,00H,34H,03H,循环转移指令,SDZ m,指令说明: 影响标志:none,ALU Shifter,RAM,PC,mm-1, PC+2,if m=0,SDZA m,指令说明: 影响标志:none,ACC,ALU Shifter,RAM,PC,

17、PC+2,if (m-1=0),ACC m-1,例,ACC,60H,61H,RAM,62H,63H,LOOP1:,JMP LOOP1,LOOP2:,JMP LOOP2,SDZ 60H,SDZA 62H,MOV A,02H,04H,04H,04H,MOV A,04H,03H,02H,01H,MOV 62H,A,03H,02H,01H,00H,03H,02H,01H,02H,00H,SIZ m,指令说明: 影响标志:none,ALU Shifter,RAM,PC,m m+1, PC+2,if m=0,SIZA m,指令说明: 影响标志:none,ACC,ALU Shifter,RAM,PC,PC+

18、2,if (m+1=0),ACC m+1,例,ACC,60H,61H,RAM,62H,63H,LOOP1:,JMP LOOP1,LOOP2:,JMP LOOP2,SIZ 61H,SIZA ACC,MOV A,55H,FEH,MOV A,FEH,FFH,FFH,00H,55H,00H,调用及返回指令,CALL addr,指令说明: 影响标志:none,STACK,ROM,PC,PC+1,PCaddr,RET,指令说明: 影响标志:none,STACK,PC,例,MOV A,20H,CALL 0123H,RET,ORG 0123H,MOV A,30H,PC+1值压入堆栈,返回堆栈中的PC值,RET

19、I,指令说明: 影响标志:none,该指令使用在中斷程序返回時,它同时将INTC的第0位(中斷使能位)置為1。,EMI 1,STACK,PC,RET A,X,指令说明: 影响标志:none,STACK,PC,ROM,ACC,位操作指令,位操作指令包括位逻辑操作指令、位条件转移指令。 指令中的操作数都是1 位的。 这类指令的执行不影响标志位。,CLR m.i,指令说明:将存储器内第i位值清零。 m.i 0 影响标志:none,例CLR 20H.3,运算前: 20H=88H 10001000B 运算后: 20H=80H 10000000B,SET m.i,指令说明:将存储器内第i位值置为1。 m.

20、i 1 影响标志:none,例SET 20H.3,运算前: 20H=10H 00010000B 运算后: 20H=18H 00011000B,SZ m.i,指令说明:判断存储器内第i位值是否为0, 若为0则跳过下一行指令。 m.i=0,PC+2 影响标志:none,SNZ m.i,指令说明:判断存储器内第i位值是否为0, 若不为0则程序计数器加一, 跳过下一行指令。 Skip if m.i0 影响标志:none,例SZ20H.3 运算前: PC=0100H 20H=18H 运算后: PC=0101H 20H=18H,例SZ30H.3 运算前: PC=0100H 30H=10H 运算后: PC=

21、0102H 30H=10H,例SNZ20H.4 运算前: PC=0100H 20H=28H 运算后: PC=0101H 20H=28H,例SNZ30H.4 运算前: PC=0100H 30H=10H 运算后: PC=0102H 30H=10H,读表指令,HOLTEK8位单片机的程序存储器除了存放程序外,还可以存放一些常数,称为表格。 指令系统提供了2条访问程序存储器的指令,我们称为读表指令。读表指令的执行需要2个指令周期的时间。 这类指令的执行不影响标志位。,TABRDC m,指令说明:查ROM当前页,由TBLP确定页内 地址。将该地址中数据的低8位 送到m,高8位送到TBLH m程序存储器低位 TBLH 程序存储器高位 页:一页的大小为256个字节,即PC低八位 的范围为00H-FFH 影响标志:none,TABRDL m,指令说明:查ROM最后一页,由TBL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论