任务八学习、应用位操作指令.ppt

上传人:za****8 文档编号:15858821 上传时间:2020-09-10 格式:PPT 页数:21 大小:306.05KB
返回 下载 相关 举报
任务八学习、应用位操作指令.ppt_第1页
第1页 / 共21页
任务八学习、应用位操作指令.ppt_第2页
第2页 / 共21页
任务八学习、应用位操作指令.ppt_第3页
第3页 / 共21页
点击查看更多>>
资源描述
上午2时47分,单片机应用技术,1,任务八 学习、应用位操作指令,1. 位传送指令(2条) MOV C, bit ;(bit)Cy MOV bit, C ;(Cy)bit 2. 位置位、清零、取反指令(6条) SETB C ; 1Cy CLR bit ; 0bit CPL C ; cy SETB bit ; 1bit CLR C ; 0Cy CPL bit ;bit 3. 位运算指令(4条) ANL C, bit;(Cy)( bit)Cy ANL C, /bit;(Cy)Cy ORL C, bit;(Cy)( bit)Cy ORL C, /bit;(Cy)Cy,上午2时47分,单片机应用技术,2,4、位控制转移指令(5条) JC re ; 若(Cy)=1,则PC+2+relPC,程序转移执行; 若(Cy)=0,则PC+2PC,程序顺序执行 JNC rel ;若(Cy)=0,则PC+2+relPC,程序转移执行; 若(Cy)=1,则PC+2PC,程序顺序执行 JB bit, rel ;若(bit)=1,则PC+3+relPC,程序转移执行; 若(bit)=0,则PC+3PC,程序顺序执行 JNB bit, rel; 若(bit)=0,则PC+3+relPC,程序转移执行; 若(bit)=1,则PC+3PC,程序顺序执行 JBC bit, rel;若(bit)=1,则PC+3+relPC,程序转移执行 且 0bit; 若(bit)=0,则PC+3PC,程序顺序执行,任务八 学习、应用位操作指令,上午2时47分,单片机应用技术,3,【例3-29】试编程实现将内RAM中以BUF开始的一批有符号数,将正数送外RAM的正数区,负数送外RAM的负数区,遇到0中止。(设正数区起点地址是30H,负数区起点地址是60H) 源程序: MOV R0, #BUF ; 将数据块的首地址送到R0中 MOV R1, #30H ;将正数的首地址送到R1中 MOV DPTR, #0060H ;将负数的首地址送到DPTR中 MP3: MOV A, R0 ; 将数据读到累加器A中 JNZ MP4 ;判断A中数据不是0 SJMP $ ; 累加器A中数据是0中止 MP4: JB ACC.7 ,MP5 ; 累加器A中数据是负数? MOVX R1, A ;将正数送正数区 INC R0 ;指向数据块的下一个数据 INC R1 ;指向正数区的下一个单元 MP5: MOVX DPTR, A ;将负数送负数区 INC R0 ;指向数据块的下一个数据 INC DPTR ;指向负数区的下一个单元 AJMP MP3 ;返回继续 END,任务八 学习、应用位操作指令,上午2时47分,单片机应用技术,4,任务八 初步掌握MCS51单片机汇编程序设计,认知1 了解单片机伪指令,伪指令又称指示性指令,具有和指令类似的形式,但汇编时伪指令并不产生可执行的目标代码,只是对汇编过程进行某种控制或提供某些汇编信息。 定位伪指令ORG 定义字节数据伪指令DB 定义字数据伪指令DW 定义空间伪指令DS 符号定义伪指令EQU或 数据赋值伪指令DATA 数据地址赋值伪指令XDATA 汇编结束伪指令END,上午2时47分,单片机应用技术,5,1. 定位伪指令ORG 格式:标号: ORG 地址表达式 功能:规定程序块或数据块存放的起始位置 例如:ORG 1000H; MOV A,#20H 存放于1000H开始的单元。 表示下面指令MOV A,#20H存放于1000H开始的单元。 说明:程序中可以出现多个ORG指令。 2. 定义字节数据伪指令DB 格式:标号: DB 字节数据表 功能:字节数据表可以是多个字节数据、字符串或表达式,它表示将字节数据表中的数据从左到右依次存放在指定地址单元。 例如:ORG 1000H TAB:DB 2BH,0A0H,A,2*4 ; 表示从1000H单元开始的地方存放数据2BH,0A0H,41H(字母A的ASCII码),08H。,任务八 初步掌握MCS51单片机汇编程序设计,认知1 了解单片机伪指令,上午2时47分,单片机应用技术,6,任务八 初步掌握MCS51单片机汇编程序设计,认知1 了解单片机伪指令,3. 定义字数据伪指令DW 格式:标号: DW 字数据表 功能: 与DB类似,但DW定义的数据项为字,包括两个字节,存放时高位在前,低位在后。 例如: ORG 1000H DATA:DW 324AH,3CH ; 表示从1000H单元开始的地方存放数据32H,4AH,00H,3CH(3CH以字的形式表示为003CH)。 4. 定义空间伪指令DS 格式:标号: DS 表达式 功能:从指定的地址开始,保留多少个存储单元作为备用空间。 例如:ORG 1000H BUF:DS 50 TAB:DB 22H ;表示从1000H开始的地方预留50(1000H1031H)个存储字节空间,22H存放在1032H单元。,上午2时47分,单片机应用技术,7,任务八 初步掌握MCS51单片机汇编程序设计,认知1 了解单片机伪指令,5. 符号定义伪指令EQU或= 格式:符号名 EQU 表达式 符号名=表达式 功能:将表达式的值或某个特定汇编符号定义为一个指定的符号名,只能定义单字节数据,并且必须遵循先定义后使用的原则,因此该语句通常放在源程序的开头部分。 例如: SUM EQU 21H MOV A,SUM ;执行指令后,累加器A中的值为21H中的数据 6. 数据赋值伪指令DATA 格式:符号名 DATA 表达式 功能:将表达式的值或某个特定汇编符号定义一个指定的符号名,只能定义单字节数据,但可以先使用后定义,因此用它定义数据可以放在程序末尾进行数据定义。 举例: MOV A,#LEN LEN DATA 10,上午2时47分,单片机应用技术,8,任务八 初步掌握MCS51单片机汇编程序设计,认知1 了解单片机伪指令,7. 数据地址赋值伪指令XDATA 格式:符号名 XDATA 表达式 功能:将表达式的值或某个特定汇编符号定义一个指定的符号名,可以先使用后定义,并且用于双字节数据定义。 举例: DELAY XDATA 0356H LCALL DELAY ;执行指令后,程序转到0356H单元执行 8. 汇编结束伪指令END 格式:标号: END 功能:汇编语言源程序结束标志,用于整个汇编语言程序的末尾处。,上午2时47分,单片机应用技术,9,程序设计概述设计语言,最早人们只能用机器语言(二进制)编写程序; 为了方便记忆,人们开始用助记符形式的汇编语言编写程序,称为低级语言。然后再用汇编系统将其翻译成机器语言,该过程称为汇编; 为了用更接近人的语言编写程序,程序设计师们发明了高级语言,如: BASIC、FORTRAN、PASCAL、 C、JAVA 然后再用编译系统将其翻译成机器语言,该过程称为编译; 机器只能识别机器语言。所以必须用编译系统将高级语言编写的源程序编译成机器语言,用汇编系统将用汇编语言编写的源程序汇编成机器语言; 由低级或高级语言构成的程序称为源程序,由机器语言构成的程序称作目标程序;,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,10,1. 汇编程序设计步骤 (1) 分析问题,确定算法 (2) 画出程序流程图 编写较复杂的程序,画出程序流程图是十分必要的。所谓程序流程图也称为程序框图,是根据控制流程设计的,它直接反映了整个系统以及各个部分之间的相互关系,同时也反映操作顺序,因而有助于分析出错原因。 (3) 分配内存工作区及有关端口地址 (4) 编制汇编源程序 (5) 仿真调试程序 (6) 固化程序,1、单片机汇编语言程序设计的基本步骤如下,认知2 掌握汇编语言程序设计与汇编,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,11,顺序程序:顺序程序是最简单、最基本的程序结构,其特点是按指令的排列顺序一条条地执行,直到全部指令执行完毕为止。 分支程序:分支程序是通过转移指令对相应条件的判断实现改变程序的执行方向的设计方法。 循环程序:在程序中需要反复的执行的程序段,为了避免在程序中多次的编写,可以通过利用条件转移或无条件转移指令来控制程序的执行。 子程序结构:把实现一定功能的程序编制好,供其他程序调用。,单片机汇编语言程序主要的几种程序设计方法:,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,12,顺序结构 结构特点: 按指令的先后顺序依次执行。 例:将内RAM20H单元的两个压缩BCD码拆开变成ASCII码,存入21H、22H单元。(假设20H中的BCD码为00110100),什么是BCD码? 什么是ASII码?,0011,压缩BCD码,0011,0011,0100,低四位ASII码,高四位ASII码,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,13,方法1:将BCD码除以10H,恰好是将BCD码分别移到了A、B的低4位。然后再各自与30H相或,即成为ASCII码。,方法2:利用半字节交换指令来实现。,任务八 初步掌握MCS51单片机汇编程序设计,认知2 掌握汇编语言程序设计,上午2时47分,单片机应用技术,14,ORG 0000H MOV A,20H MOV B,#10H DIV AB ORL B,#30H MOV 22H,B ORL A,#30H MOV 21H,A SJMP $,方法1,源程序如下:,0011,0100,PC,PC,PC,0011 0100,0001 0000,PC,0011,0000,0000 0100,PC,0011 0100,PC,PC,PC,0011,PC,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,15,ORG 0000H MOV R0,#20H MOV A,#30H XCHD A,R0 MOV 22H,A MOV A,R0 SWAP A ORL A , #30H MOV 21H, A SJMP $,方法2,PC,PC,PC,PC,PC,PC,PC,PC,PC,源程序如下:,0011,0010 0000,0011,0100,0000,0100,0011,0100,0011,0000,0011,0000,0011,PC,0011,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,16,分支程序结构 结构特点:不一定按指令的先后顺序依次运行程序,程序的流向有两个或两个以上分支,根据指定条件选择程序的流向。 实例:已知30H单元中有一变量X,要求编写一程序按下述要求给Y赋值,结果存入31H单元。 X+1, X0 Y = 0 , X = 0 1 , X0 题意:根据X的不同,程序编写时有三个出口,即有三个分支!,想一想:程序怎么编写?,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,17,开始,XA,A= 1,A= A+1,存结果,结束,Y,Y,N,N,程序框图:,A0?,A=0?,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,18,源程序如下: ORG 2000H MOV A,30H JZ LP1 ;X = 0,转LP1处理 JNB ACC.7,LP2 ;X0,转LP2处理 MOV A,#0FFH ;X0,则Y= 1 SJMP LP1 LP2:ADD A,#01 ;X 0,Y=X+1 LP1:MOV 31H,A ;存结果 SJMP $ ;循环等待,$表示转至 本地址,此方法适用 于一字节的偏移量,最高位为符号位。,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,19,结构特点:利用转移指令反复运行需要多次重复的程序段。 例如:延时程序:(DELAY) DELAY: MOV R3, #OFFH DEL2: MOV R4,#0FFH DEL1: DJNZ R4,DEL1 DJNZ R3,DEL2 RET 循环程序的组成: 1. 初始化部分(设定循环次数等)。 2. 循环体(重复执行的部分,用于完成实际操作) 3. 循环控制(不断修改和判别循环变量,直至结束)。 4. 循环结束处理。,循环程序结构,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,20,子程序结构,在实际问题中,常常会遇到在一个程序中多次用到相同的运算或操作,若每遇到这些运算或操作,都从头编起,将使程序繁琐、浪费内存。因此在实际中,经常把这种多次使用的程序段,按一定结构编好,存放在存储器中,当需要时,可以调用这些独立的程序段。通常将这种可以被调用的程序段称为子程序。,主要内容: 1. 主程序与子程序的关系 2. 子程序嵌套 3. 子程序的调用与返回,任务八 初步掌握MCS51单片机汇编程序设计,上午2时47分,单片机应用技术,21,任务八 初步掌握MCS51单片机汇编程序设计,【例3-33】设有一长度为30H的字符串在单片机内RAM中,其首地址为40H,要求将该字符串中的每一个字符加偶校验位,试编程用子程序的方法来实现。 参考程序: ORG0030H MAIN: MOV R0, #40H ; 置地址指针R0初值 MOV R7, #30H ; 置字符串长度 LOOP: MOV A, R0 ;取未加检验位的ASCII码 LCALL MP3 ;调用子程序 MOV R0, A ;将加检验位的ASCII码送回 INC R0 ;修改数据指针 DJNZ R7, LOOP ;判断数据循环是否结束? SJMP $ MP3: ADD A , #00H JNB PSW.0, MP4 ORL A, #80H MP4: RET END,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!