单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)

上传人:E**** 文档编号:89356135 上传时间:2019-05-23 格式:PPT 页数:37 大小:1.59MB
返回 下载 相关 举报
单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)_第1页
第1页 / 共37页
单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)_第2页
第2页 / 共37页
单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)_第3页
第3页 / 共37页
单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)_第4页
第4页 / 共37页
单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)》由会员分享,可在线阅读,更多相关《单片机原理及应用(应用型本科) 教学课件 ppt 作者 王波(9)(37页珍藏版)》请在金锄头文库上搜索。

1、单片机原理及应用,作者:徐新民,责任编辑:王 波 出版日期:2009年9月 IDPN:308-2009-151 课件章数:11,第3章 单片机指令系统,3.1 概 述 3.2 寻址方式 3.3 数据传送类指令 3.4 算术运算类指令 3.5 逻辑运算和移位指令 3.6 控制转移指令 3.7 位操作类指令,3 .1 .1 指令分类 3 .1 .2 指令格式 3 .1 .3 指令系统中使用一些特殊符号的意义 3 .1 .4 MCS-51 单片机执行指令的过程,3 .1 .1 指令分类,MCS-51共有111条指令,按其功能可分为5大类: ()数据传送类指令(共29条) ()算术运算类指令(共24条

2、) ()逻辑运算及移位类指令(共24条) ()控制转移类指令(共17条) ()布尔变量操作类指令(共17条)当然指令分类也可以按其执行速度分类,即可分为单机器周期指令(64条)、双机器周期指令(45条)和四机器周期指 令(2条)。,3 .1 .2 指令格式,指令格式是指令码的结构形式。 通常,指令可以分为操作码和操作数两部分。 操作码规定指令所完成的操作,而操作数表示操作的对象。MCS-51单片机指令的具体格式如下:,在MCS-51单片机的指令系统中,有单字节、双字节和三字节三种不同长度的指令。 () 单字节指令:指令只有一个字节,操作码和操作数在一个字节中。 在MCS-51单片机的指令系统中

3、,共有49条单字节指令。 () 双字节指令:双字节指令包括两个字节,其中一个字节为操作码,另一个字节为操作数。 在MCS-51单片机的指令系统中,共有45条双字节指令。 () 三字节指令:三字节指令包括三个字节,其中一个字节为操作码,其余两个字节为操作数。 在MCS-51单片机的指令系统中,共有17条三字节指令。,3 .1 .3 指令系统中使用一些特殊符号的意义,Rn :当前工作寄存器组中的 个工作寄存器R0 R7(n 0 7)。 Ri : 当前工作寄存器组中可作为地址寄存器的两个寄存器R0和R1(i 0,1) di rect : 位直接地址。 实际使用时direct应该是H FFH中的一个,

4、也可以是采用物理地址表示的特殊功能寄存器SFR中的一个。 data :指令中的8位立即数。 data16:指令中的16位立即数。 addr16:16位地址值,用于LCALL 和LJMP指令中的16位目的地址,目的 地址的 空间为64KB程序存储器地址。 addr11:11位地址值,用于ACALL 和AJMP指令中的11位目的地址,目的地址必须 放在与下条指令第一个字节同一个KB程序存储器空间之中。,rel : 8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对 应于下条指令的第一个字节开始的128 127范围内。 : 间接寄存器寻址或基址寄存器的前缀标志。 : 为操作的前缀

5、,声明对该位操作数取反。 DPTR : 数据指针。 bit : 片内RAM 和特殊功能寄存器的直接寻址位。 A : 累加器。 B : B寄存器。 用于乘法和除法指令中。 C : 进位标志位。 (x):某地址单元中的内容。 (x):由x寻址的单元中的内容。,3 .1 .4 MCS-51 单片机执行指令的过程,单片机执行程序的过程是逐条指令执行的过程,计算机每执行一条指令都可分为三个阶段进行,即取指令 分析指令 执行指令。,取指令阶段的任务:根据程序计数器PC中的值从程序存储器读出现行指令,送 到指令寄存器。 分析指令阶段的任务:将指令寄存器中的指令操作码取出后进行译码,分析其 指令性质。若指令要

6、求操作数,则寻找操作数地址。,计算机执行程序的过程实际上就是逐条地重复上述指令的操作过程,直至遇到停机指令或循环等待指令。 例如执行指令:MOV A , 0E0H ,其机器码为“74HE0H” ,该指令的功能是把操作数E0H送入累加器,0000H单元中已存放74H ,0001H单元中已存放E0H。 当单片机开始运行时,首先是进入取指阶段,其次序是:,() 程序计数器的内容(这时是0000H)送到地址寄存器; () 程序计数器的内容自动加1(变为0001H) ; () 地址寄存器的内容(0000H)通过内部或外部地址总线送到存储器,经存储器中的 地址译码电路,使地址为0000H的单元被选中; (

7、) CPU 使读控制线有效; () 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。,至此,取指阶段完成,进入译码分析和执行指令阶段。,由于本次进入指令寄存器中的内容是74H(操作码) ,即还要在存储器中取第二个字节。 其过程与取指阶段很相似,只是此时PC已为0001H。 指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。 因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A 累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。 单片机中PC 0002

8、H ,PC 在CPU 每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。 这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。,3 .2 寻址方式,3.2.1 直接寻址 3 .2.2 寄存器寻址 3.2.3 寄存器间接寻址 3.2.4 立即寻址 3.2.5 变址寻址 3.2.6 位寻址 3.2.7 相对寻址,3 .2 .1 直接寻址,直接寻址方式是指在指令中操作数直接以单元地址的形式给出,也就是在这种寻址方式中,操作数项给出的是参加运算的操作数的地址,而不是操作数。,例: MOVA ,AH 这条指令中操作数就在AH 单元中,也就是AH是操作数的地址,并非操作数。 指令的含义就是

9、把AH中的内容H送入累加器A中,如图- 所示。,图-1 直接寻址示意图,寻址对象: ()内部数据存储器,在指令中以直接地址表示; ()特殊功能寄存器SFR ,除以单元地址形式给出外,还可以以寄存器符号形式给出。,3 .2 .2 寄存器寻址,以通用寄存器的内容为操作数的寻址方式称为寄存器寻址。 寄存器寻址对选定的8个工作寄存器R0 R7进行操作,也就是操作数在寄存器中,因此指定了寄存器就得到了操作数,寄存器寻址的指令中以寄存器的符号来表示寄存器。 例: MOVA ,R 这条指令的意义是把所用的工作寄存器组中的R 的内容送到累加器A中。 值得注意的是工作状态寄存器的选择通过程序状态寄存器来控制,在

10、执行这条指令前,应通过PSW设定当前工作寄存器组。 寄存器寻址的寻址范围是: ()4个工作寄存器组共有32个通用寄存器,但在指令中只能使用当前寄存器组(工作寄存器组的选择由程序状态字PSW中的RS 和RS 来确定) ,因此在使用前常需要通过对PSW中的RS 、RS 位的状态设置,来进行对当前工作寄存器组的选择。 ()部分专用寄存器。 例如,累加器A、通用寄存器B、地址寄存器DPTR和进位位CY。寄存器寻址方式是指操作数在寄存器中,因此只要指定了寄存器名称就能得到操作数。 例: MOV A ,R INC R,3 .2 .3 寄存器间接寻址,对于寄存器寻址方式,寄存器中存放的是操作数,而寄存器间接

11、寻址方式是指寄存器中存放的是操作数的地址,即操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。,例: MOVA , R 这条指令的意义是将R 寄存器指向的地址单元中的内容送到累加器A中。 假如R0 #56H ,那么是将56H 单元中的数据送到累加器A 中,如图- 所示。,图3-2寄存器间址寻址示意图,MCS-51单片机规定工作寄存器的R0、R1作为间接寻址寄存器,用于对内部或外部数据存储器的156个单元寻址。 然而有必要指出,内部RAM 的高128字节地址与专用寄存器的地址重叠,所以这种寻址方式不能用于访问特殊功能寄存器。,当用DPTR作为间址寄存器时,因DPTR是一个16位的寄存器,所以

12、它的寻址范围就是2的16次方 65536 64K。 用DPTR作为间址寄存器的寻址空间是64K ,所以访问片外数据存储器时,通常就用DPTR作为间址寄存器。,在执行PUSH(压栈)和POP(出栈)指令时,采用堆栈指针SP作寄存器间接寻址。,作为寄存器间接寻址用的寄存器主要有四个,即R0、R1、DPTR、SP。 寄存器间接寻址范围总结如下:,()内部RAM 低128单元。 对内部RAM 低128单元的间接寻址,应使用R0或R1作间址寄存器,其通用形式为 Ri(i 0或1)。 ()外部RAM 64KB。 对外部RAM64KB的间接寻址,应使用 DPTR 作间址寻址寄存器,其形式为: DPTR。,例

13、: MOVX A , DPTR ; MOVX A , R ;,3 .2.4 立即寻址,立即寻址就是把操作数直接在指令中给出,即操作数包含在指令中,指令操作码的后面紧跟着操作数,一般把指令中的操作数称为立即数,因此而得名。 为了与直接寻址方式相区别,在立即数前加上“ ”符号。 例: MOV A , 0EH,这条指令的意义是将EH这个操作数送到累加器A中。 在这种寻址方式中,指令多是双字节的,一般第一个字节是操作码,第二个字节是操作数。 该操作数直接参与操作,所以又称立即数,由“# ”号表示。 立即数就是存放在程序存储器中的常数。 例: MOV A , AH 这条指令的指令代码为74H、AH ,是

14、双字节指令,这条指令的功能是把立即数AH送入累加器A中。 例: MOV DPTR , 8200H DPTR是一个16位的寄存器,它由DPH及DPL 两个8位的寄存器组成。 这条指令的意思就是把立即数的高 位(即82H)送入DPH 寄存器,把立即数的低8位(即00H)送入DPL 寄存器。在80C51单片机的指令系统中,仅有一条指令的操作数是16位的立即数,其功能是向地址指针DPTR 传送16位的地址,即把立即数的高8位送入DPH ,低 位送入DPL 。,3.2 .5 变址寻址,变址寻址是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将两寄存器的内容相加形成的 位地址作为操作数的实际地

15、址。 例如: MOVC A , ADPTR ;(ADPTR)A MOVC A , A PC ;(A PC)A JMP ADPTR,在这三条指令中,A作为变址寄存器,DPTR或PC作为基址寄存器,A作为无符号数与DPTR或PC的内容相加,得到访问的实际地址。 其中前两条是程序存储器读指令,后一条是无条件转移指令,前两条指令的操作如图3-3和图- 所示。,图- MOVC A , A DPTR,图- MOVC A , A PC,例3-1 已知片外ROM 的H单元中有一常数x ,现欲把它取到累加器A ,请编出相应程序,并进行必要的分析。,解 根据变址寻址的特点,基地址显然应取0300H ,地址偏移量为

16、02H ,相应程序为:,MOV DPTR , 0300H ;DPTR 0030H MOV A , 02H ;A 02H MOVC A , ADPTR ;A x,其中,第一条和第二条传送指令是为第三条变址寻址指令准备条件的。 在第三条指令执行时,单片机先把DPTR 中0030H和累加器A 中02H 相加后得到0302H ,然后到片外ROM 中取出操作数x送到累加器A。 因此,累加器A 具有双重作用,在指令执行前用来存放地址偏移量02H ,指令执行后为目的操作数x ,指令执行过程如图3-5所示。,图- 变址寻址示意图,3.2.6 位寻址,80C51单片机有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。 所

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号