《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第5次课)_第1页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第5次课)_第2页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第5次课)_第3页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第5次课)_第4页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第5次课)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1第3章

指令系统与编程技术23.3.4控制转移指令1.无条件转移指令

(1)长转移指令

LJMPaddr16;(PC)←addr16(2)绝对移指令

AJMPaddr11 ;(PC)←(PC)+2;(PC10~0)←a10~03(3)相对转移指令SJMPrel ;(PC)←(PC)+2

;(PC)←(PC)+rel4(4)散转指令(间接长转移指令)

JMP@A+DPTR

;(PC)←(A)+(DPTR)

执行该指令时,把累加器A中的8位无符号数与数据指针中的16位数相加,结果作为下条指令的地址送入PC,利用这条指令能实现程序的散转。

ORLP0,#0FFH MOVA,P0 ;00000101 RLA ;00001010 MOVDPTR,#2000H JMP@A+DPTRORG2000H AJMPZY1 ;2000H,2001H AJMPZY2 ;2002H,2003H AJMPZY3 ;2004H,2005H AJMPZY4 ;2006H,2007H AJMPZY5 ;2008H,2009H AJMPZY6 ;200AH,200BH AJMPZY7 ;200CH,200DH AJMPZY8 ;200EH,200FH

课堂举例

ORG2100HZY1: MOVP1,#00H SJMPEXITZY2: MOVP1,#01H SJMPEXITZY3: MOVP1,#02H SJMPEXITZY4: MOVP1,#03H SJMPEXITZY5: MOVP1,#04H SJMPEXITZY6: MOVP1,#05H SJMPEXITZY7: MOVP1,#06H SJMPEXITZY8: MOVP1,#07H SJMPEXITEXIT: SJMP$ 62.条件转移指令JZrel

;当A=0时跳转,A≠0时则顺序执行下面的指令,即不跳转JNZrel

;A≠0时跳转,A=0时不跳转继续执行程序7LOOP: MOVA,P1 JZLOOP CPLA MOVP2,A课堂举例防盗系统硬件电路如图,K0-K7为8个常闭开关,L0-L7为8个发光管,编程:将开关状态显示出来。83.比较转移指令CJNEA,direct,relCJNEA,#data,relCJNERn,#data,relCJNE@Ri,#data,rel9例:在内部RAM30H~4FH单元里查找55H,若有请将地址存在60H,若无请在60H单元写FFH。课堂练习10 MOVR0,#30H MOVR7,#20HLOOP:MOVA, @R0 CJNEA,#55H,MZD MOV60H,R0 SJMPNEXTMZD: INCR0 DJNZR7,LOOP MOV60H,#0FFHNEXT:SJMP$ MOVR0,#30H MOVR7,#20HLP:CJNE@R0,#55H,MZD MOV60H,R0 SJMPNEXTMZD: INCR0 DJNZR7,LP MOV60H,#0FFHNEXT:SJMP$114.减1不为0转移指令DJNZRn,relDJNZdirect,relDECR7MOVA,R7JNZrel125.进位条件转移指令JCrel

;若Cy=1,则转移(PC)←(PC)+2+rJNCrel;若Cy=0,则转移(PC)←(PC)+2+relMOVA,30HRLCAJCFS136.位测试转移指令JBbit,rel

;若(bit)=1,则转移(PC)←(PC)+3+relJNBbit,rel

;若(bit)=0,则转移(PC)←(PC)+3+relJBCbit,rel

;若(bit)=1,则转移(PC)←(PC)+3+rel,并bit←0147.子程序调用及返回指令(1)长调用指令

LCALLaddr16

(2)绝对调用指令

ACALLaddr11

(3)子程序返回指令

RET

(4)中断返回指令

RETI153.3.5位操作指令1.位数据传送指令

MOVC,bit

;C←(bit)

MOVbit,C

;(bit)←C2.位清0置1指令

CLRC

;Cy←0

CLRbit

;(bit)←0

SETBC

;Cy←1

SETBbit

;(bit)←1163.位变量逻辑运算指令(1)位逻辑与指令

ANLC,bit

;Cy←Cy∧(bit)

ANLC,/bit

;Cy←Cy∧/(bit)(2)位逻辑或指令

ORLC,bit

;Cy←Cy∨(bit)

ORLC,/bit

;Cy←Cy∨/(bit)(3)位取反指令

CPLC

;Cy←/Cy

CPLbit

;(bit)←/(bit)17例:利用位操作指令实现如图中的逻辑电路的功能。请你编程!18解:参考程序如下:

MOVC,P1.1 ORLC,P1.2 ANLC,P1.0 ANLC,/P1.3 CPLC MOVP1.7,C194.空操作指令

NOP;(PC)←(PC)+1

执行空操作指令NOP时,CPU什么事也不做,只是消耗了1个机器周期的执行时间,常用于实现短时间的延迟等待,编程时处理少量的空余单元等。203.4常用伪指令1.设置目标程序起始地址伪指令ORG

格式:[标号:]ORGaddr162.结束汇编伪指令END

格式:[标号:]END21例:P1口接了8个发光管负极,发光管正极通过上拉电阻接电源,请编程形成一个循环灯。电路如图所示。已有0.5秒的延时程序:YS05 课堂练习请您编程22

ORG0000H LJMPMAIN;循环灯左循环 ORG0040HMAIN: MOVSP,#60H MOVA,#0FEHLOOP1: MOVP1,A LCALLDELAY RLA SJMPLOOP1

DELAY: MOVR1,#00HDELAY1:MOVR0,#80HDELAY2:NOP NOP DJNZR0,DELAY2 DJNZR1,DELAY1

RETEND设置初值送端口移位延时 MOVA,#11111110BLOOP: MOVP1,A RLA LCALLYS05 SJMPLOOP23;功能描述:将00H--0FH共16个数写入片内RAM区30H--3FH. ORG0000H LJMPMAIN ORG0100HMAIN: MOVSP,#60H MOVR1,#30H ;片内

温馨提示

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

评论

0/150

提交评论