为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

第7讲 单片机指令系统

2012-06-11 27页 ppt 548KB 33阅读

用户头像

is_271050

暂无简介

举报
第7讲 单片机指令系统nullnull第7讲(2010-09-27) 10-11第1学期第5周汽车单片机null1.指令系统简介; 2.寻址方式; 3.指令系统; 4.汇编语言程序设计; 5.程序设计实例; 第3章 MCS-51指令系统及汇编语言null复习 算术运算类指令 单字节的加、减、乘、除法指令,都是针对8位二进制无符号数。 执行的结果对Cy、Ac、OV 三种标志位有影响。 但增1和减1指令不影响上述标志。 主要包括 (1)加法(带、不带进位加法、加1、十进制调整); (2)减法(带借位、减1); (3)乘法; ...
第7讲 单片机指令系统
nullnull第7讲(2010-09-27) 10-11第1学期第5周汽车单片机null1.指令系统简介; 2.寻址方式; 3.指令系统; 4.汇编语言程序设计; 5.程序设计实例; 第3章 MCS-51指令系统及汇编语言null复习 算术运算类指令 单字节的加、减、乘、除法指令,都是针对8位二进制无符号数。 执行的结果对Cy、Ac、OV 三种标志位有影响。 但增1和减1指令不影响上述标志。 主要包括 (1)加法(带、不带进位加法、加1、十进制调整); (2)减法(带借位、减1); (3)乘法; (4)除法; 3.3.4 控制转移类指令  3.3.4 控制转移类指令  程序的顺序执行是由PC自动递增实现的,要改变程序的执行顺序,实现分支转向,必须通过强迫改变PC值的方法来实现,这就是控制转移类指令的基本功能。 控制转移类指令可以控制程序根据不同情况执行不同的程序段,使单片机具有“智能化”功能。 51单片机有17条控制转移指令,包括无条件转移指令、条件转移指令及子程序调用返回指令。  1 无条件转移指令---------类似goto语句  1 无条件转移指令---------类似goto语句 (1)长转移指令LJMP LJMP addr16 ; PC ← (PC)+2 ; PC ← addr16 功能:指令执行后将16位地址(addr16)传送给PC,从而实现程序转移到新的地址开始运行。 说明:该指令可实现64KB范围的任意转移。 例题3-32包括:LJMP, STMP, AJMP,JMP,功能相同,只是转移范围不同。 null AJMP addr11 ;PC ← (PC)+2, ;PC10~0 ← addr11 功能:addr11的11位数取代该指令执行后程序指针PC的低11位PC10~0,程序根据PC值转移运行。 说明: addr11为11位无符号数,程序转移最大范围为2KB。 (2)绝对转移指令AJMP,null SJMP rel ;PC ← (PC)+2+rel 功能:执行指令后,程序从当前位置向前或向后跳转rel个单元运行。 转移相对范围图是-128~+127H共256个单元;(3)相对转移指令SJMP 例子: LOOP:SJMP LOOP 或 SJMP $ 功能:程序原地踏步。教材错误例题3-33null JMP @ A+DPTR ;PC ← (A)+(DPTR) 功能:由A及DPTR的内容决定程序转移的目的地址。 说明: ①DPTR为基址寄存器,A为变址寄存器,为基址加变址寻址方式。 ②把DPTR值固定,赋与A不同的值,则可实现程序的多分支转移(散转)。 64K(4)间接长转移指令JMP2. 条件转移指令---------类似if语句 2. 条件转移指令---------类似if语句 (1)累加器A判0转移指令 JZ rel ;若(A)=0,转移,PC ← (PC)+2+rel ;若(A)≠0,顺序执行。 JNZ rel ;若(A)≠0,转移,PC ← (PC)+2+rel ;若(A) =0,顺序执行。 所谓条件转移就是程序的转移是有条件的,当指令中规定的条则满足时,程序转移,否则程序不转移, 仍顺序执行。 nullJZ rel (b) JNZ rel 累加器A判零转移指令的执行过程null格式为:CJNE <被比较数>,<比较数>, rel CJNE A,direct,rel ;累加器A与direct单元不等转移。 CJNE A,#data,rel ;累加器A与立即数data不等转移 CJNE Rn,#data,rel ;寄存器Rn与立即数data不等转移 CJNE @Ri,#data,rel ;间接寻址的片内RAM单元 与立即数data不等转移(2)比较不相等转移指令CJNE(三状态判断) 说明:①数据比较转移指令为三字节指令。 ②利用该类指令不但可以实现程序的转移功能,也可以用以比较两数值的大小。 ③指令执行后进位位Cy的状态,反映了被比较数与比较数相减有无借位。 null注意:1)比较按减法操作,目的操作数-源操作数; 2)影响标志位,但指令执行结果不影响任何操作数。例题3-34null DJNZ Rn,rel DJNZ direct,rel 功能:寄存器Rn或direct单元内容减1,如果结果为零,则程序顺序执行;如果还没有减到0,则程序转移。 说明:这两条指令主要用于控制程序循环,又称循环指令。预先赋值Rn或RAM单元,以控制循环次数。 (3)减1不为0转移指令DJNZ ----类似for语句例题3-35null〔解〕:这是一个重复操作过程,可以使用循环指令。30H~7FH共50H个单元 ,循环次数为50H。 程序如下: MOV R7,#50H MOV R0,#30H NEXT:MOV @R0,#0 INC R0 DJNZ R7,NEXT〔例〕 将内部RAM的30H~7FH单元清0。null 1)位传送指令;MOV C 2)位置位1、复位0指令;SETB,CLR 3)位逻辑指令;ANL,ORL,CPL非 4)位条件转移指令;JC,JNC,JB, JNB,JBC3.3.5 位控制转移类指令 位操作指令 位操作指令 MOV C,bit ;C ← (bit) MOV bit,C ;bit ← (C) 〔例〕 将20H位的内容送至50H位,并要求不改变C的状态。 〔解〕 MOV 10H,C ;保护C内容     MOV C,20H MOV 50H,C MOV C,10H ;恢复C内容 1 位传送指令MOV  说明:①多数位操作指令由C参与,C称位累加器。 ②位操作指令寻址方式为位寻址。 位置位/复位指令 位置位/复位指令 1.位置位(置1)命令SETB SETB C ;C ← 1 SETB bit ;bit ← 1 2.位复位(清0)命令   CLR C ;C ← 0 CLR bit ;bit ← 0说明:位置位/复位命令可以方便改变位空间的单个位的内容,十分灵活。 位运算指令  位运算指令 1.逻辑与指令ANL ANL C,bit ;C ←(C)∧(bit) ANL C,/bit ;C ←(C)∧(/bit) 2.逻辑或指令ORL ORL C,bit ;C ← (C)∨(bit) ORL C,/bit ;C ← (C)∨(/bit) 3.逻辑非(求反)指令CPL CPL bit ; bit ← (/bit) null例1 当位地址(2AH)=1,(32H)=1,同时累加器中(ACC.7)=0时,进位位C=1,否则C清0,可编程序如下: MOV C, 2AH ;(C)←(2AH) ANL C, 32H ;(C)←(C)∧(32H) ANL C, /ACC.7 ;(C)←(C)∧(/ACC.7)例2 写出位地址(2AH)=1和(32H)=1、累加器(ACC.7)=0相或的程序: MOV C, 2AH ;(C)←(2AH) ORL C, 32H ;(C)←(C)∨(32H) ORL C, ACC.7 ;(C)←(C)∨(ACC.7) 结果:(C)=1。null程序如下: MOV C, P0.1 ANL C, / P0.0 ORL C, / P0.2 MOV P1.7,C 〔例3〕 编程实现逻辑功能。写出例题3-37注解null位条件转移指令1. 判C转移指令JC rel ;若(C)=1,则(PC)←(PC)+2+rel ;若(C)=0,则(PC)←(PC)+2 JNC rel ;若(C)=0,则(PC)←(PC)+rel ;若(C)=1,则(PC)←(PC)+2(a) JC rel (b) JNC rel 图3.7 判C转移指令的执行过程 nullJB bit, rel ;若(bit)=1,则(PC)←(PC)+3+rel ;若(bit)=0,则(PC)←(PC)+3 JNB bit, rel ;若(bit)=0,则(PC)←(PC)+3+rel ;若(bit)=1,则(PC)←(PC)+3 JBC bit, rel ;若(bit)=1,则(PC)←(PC)+3+rel,而且(bit)清0 ;若(bit)=0,则(PC)←(PC)+32. 判直接寻址位转移指令(a) JB bit, rel (b) JNB bit, rel (c) JBC bit, rel例题3-38  注意: 1.保护断点 断点是子程序调用指令的下一条指令首地址。将断点压入堆栈SP,执行完子程序,取出送PC。 2.建立子程序入口 子程序第一条指令首地址。送PC。 3.保护现场  调用子程序前,保护原程序寄存器、存储器内容。压入堆栈SP。3.3.6 子程序调用返回指令  1.长调用指令LCALL LCALL addr16 2.绝对调用指令ACALL ACALL addr11 3.返回指令   RET RETI ;中断服务子程序返回指令 3.3.6 子程序调用返回指令null1. 长调用指令 指令格式 保护断点P83,例题3-53null2. 绝对调用指令 指令格式:3. 返回指令 指令格式: null4. 中断返回指令 指令格式: RETI 该指令用于中断返回。执行过程类似于RET。 RET与RETI指令应分别放在子程序和中断服务程序的最后。
/
本文档为【第7讲 单片机指令系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索