电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

单片机应用技术(高职高专)

  • 资源ID:51819033       资源大小:922KB        全文页数:47页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

单片机应用技术(高职高专)

第3章 汇编语言程序设计 书名:单片机应用技术 ISBN: 978-7-111-30844-7 作者:廖世海 吴政江 出版社:机械工业出版社 本书配有电子课件第3章 汇编语言程序设计 第3章 汇编语言程序设计 廖世海制作第3章 汇编语言程序设计 3.1 计算机语言概述 3.2 汇编语言程序设计基础 3.3 汇编语言程序设计 3.4 汇编语言程序举例 3.5基本技能训练 编程使P1.7输出1kHz 的方波 第3章 汇编语言程序设计第3章 汇编语言程序设计 3.1 计算机语言概述3.1.1 机器语言机器语言是直接用二进制代码“0”和“1”来表达计算机程序的指令和数据的原始语言,是早期为计算机编程使用的语言,是一种低级语言。特点:被计算机直接识别,能直接运行。缺点:机器语言书写不便,而且难以记忆。第3章 汇编语言程序设计 3.1.2 汇编语言汇编语言是一种用缩写的英文词符号或数字符号代替机器的二进制指令进行编写的程序设计语言,也是面向机器的低级语言。汇编语言书写的指令与机器语言书写的指令是一一对应的。 特点:记忆方便,不能直接运行,面向机器的,属于低级语言。缺点:不同厂家的MCU,指令系统不同,通用性不强,对程序员有较高的要求。 第3章 汇编语言程序设计 3.1.3 高级语言高级语言是一种语法和结构更类似普通英文、独立于计算机硬件结构的通用的程序设计语言,比如C、C+、VB、PASCAL语言等。高级语言优点:接近算法语言,提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;远离机器语言,与具体的计算机硬件关系不大,程序可移植性好,代码重用率高。 第3章 汇编语言程序设计 3.2 汇编语言程序设计基础3.2.1 汇编语言格式MCS-51单片机的汇编语言的指令语句由4个部分组成,分别是标号、操作码、操作数和注释。在书写时,各部分严格用定界符加以分隔。其格式为:标号(名字):操作码(助记符) 操作数(参数) ;注释第3章 汇编语言程序设计 3.2.2 汇编语言程序设计步骤汇编语言程序设计过程是用汇编方式对指令序列进行 正确合理组合编排,并调试完成形成一定功能的可执 行程序的过程。为了完成这一过程,一般可以分为以下六个步骤:1分析问题。2确定符合计算机运算的算法。3绘制程序流程图。 第3章 汇编语言程序设计 4存储器分配。5根据流程图编写汇编语言程序。6程序调试与修改。3.2.2 汇编语言程序设计步骤3.2.3 汇编语言源程序的汇编 汇编语言源程序的汇编过程就是将汇编语言的源程序转换成机器的二进制目标代码。汇编有两种方法:手工汇编、机器汇编 第3章 汇编语言程序设计 3.3 汇编语言程序设计 汇编语言程序设计的基本结构通常有:顺序结构分支结构循环结构子程序任何复杂的程序都可由它们组合而成。第3章 汇编语言程序设计 3.3.1 顺序程序设计单片机程序的顺序结构是最简单的一种程序结构,这种程序中,没有任何分支转移指令。单片机执行这类程序时,是按照指令编写的先后顺序逐一完成的。第3章 汇编语言程序设计 拆字程序 【例3.1】将30H的内容拆开,高位送31H低位,低位送32H低位。 解 :屏蔽高位后送( 32H)高低位交换,屏蔽高 位后送(31H)开始A(30H)A(30H)返回拆字程序流程图ORG 0050H CWORD:MOV A, 30H SWAP A ANL A, #0FH MOV 31H, A ;将(30H)高位存入( 31H) MOV A, 30H ANL A, #0FH MOV 32H, A ;将(30H)低位存入( 32H) END 第3章 汇编语言程序设计 3.3.2 分支程序设计分支程序是单片机利用条件转移指令实现转移的,其主要特点是程序的流向有两个或两个以上的出口,根据指定的条件进行选择确定。分支结构程序可根据程序要求无条件或有条件地改变程序执行的顺序,选择程序序流向。编写这类结构程序的关键是正确使用转移指令,即无条件转移、条件转移和散转。第3章 汇编语言程序设计 【例3.2】 设补码数x存放在30H单元之中,函数值y按下式进行赋值:Y=MAIN:MOV A,30HJZ LOOP1JNB ACC.7,LOOP2ADD A,#5MOV 30H,ALOOP2:SJMP $LOOP1:MOV 30H,#10HSJMP $ 程序流程图第3章 汇编语言程序设计 3.3.3 循环程序设计循环结构的程序一般包括下面几个部分:1.置循环初值:2.循环体3.循环修改4.循环控制若循环程序的循环体中不再包括循环程序,即为单循环程序。如果在循环体中还包含循环程序,就称为循环嵌套,循环嵌套有二重、三重、甚至多重嵌套。第3章 汇编语言程序设计 【例3.3】数据传送程序将内部RAM 40H单元开始的内容依次传送到外部RAM 1000H单元开始的区域,直到遇到传送的内容是0为止。数据传送程序流图程图开 始DPTR、R0赋初值(R0)A A(DPTR)A=0DPTR加1结 束YN第3章 汇编语言程序设计 ORG 2000HMOV R0, #40H ;指向数据首地址MOV DPTR, #1000H ;指向外部数据首地址MAIN:MOV A, R0 ;A(R0)MOVX DPTR, A ;(DPTR)ACJNE A,#00H, NEXTSJMP FINISH ;若A=0,传送完成NEXT:INC R0 ;修改地址指针INC DPTRAJMP MAIN ;继续传送FINISH:SJMP $END 第3章 汇编语言程序设计 【例3.4】使用软件延时的方法,设计一段延时时间约为1ms的延时子程序。假设单片机晶振频率fosc=12MHz,则机器周期Tcy=1s,DJNZ R1,$为2机器周期指令,一重循环最多耗时为255×2s=510s,要延时1ms,子程序为两层循环程序段,其对应的程序流程图如图所示。编程如下: 延时子程序第3章 汇编语言程序设计 RELAY:MOV R0,#02 ;外层层循环环次数为为2次LOOP1:MOV R1,#250 ;内层循环次数为250次DJNZ R1,$ ;内层循环DJNZ R0,LOOP1 ;外层循环RET 第3章 汇编语言程序设计 所谓子程序,是指能够完成一定功能,可以被其它程序段(相对而言,称为主程序)调用执行,并能返回调用程序处的程序段。子程序的调用可以嵌套进行,即子程序可以调用其它子程序,甚至可以调用自身(称为递归调用)。3.3.4 子程序设计第3章 汇编语言程序设计 子程序在编写和调用时应注意以下几点:(1)子程序结构要独立(2)现场保护和现场恢复 现场保护和现场恢复一般是通过堆栈操作指令来完成的。例如,以下子程序就是通过堆栈操作指令来完成现场保护和现场恢复的。第3章 汇编语言程序设计 LP1: PUSH ACC ;LP1为子程序的入口地址,将A的值压入堆栈进行保护PUSH PSW ;将PSW的值压入堆栈进行保护PUSH B ;将B的值压入堆栈进行保护POP B ;从堆栈中弹出B并恢复B的值POP PSW ;从堆栈中弹出PSW并恢复PSW的值POP ACC ;从堆栈中弹出A并恢复A的值RET ;返回第3章 汇编语言程序设计 (3)参数传递 子程序可分为有参数子程序和无参数子程序。 在有参子程序的调用与返回过程中,就需要 在主程序和子程序之间进行参数的传递。第3章 汇编语言程序设计 子程序示例【例3.5】试编程,计算C=A2+B2;并将C送内部RAM 40H单元(设A、B分别放在20H、21H内部单元中;且C0FFH)。 解:由于要求两次平方,所以可以用子 程序结构,其程序流程图如下图所示。第3章 汇编语言程序设计 子程序流程图 第3章 汇编语言程序设计 ORG 0030HSTART: MOV A,20HLCALL PF ;调用求平方子程序MOV R1,A ;20H赋值MOV A,21HLCALL PFADD A,R1 MOV 40H, ASJMP $PF: INC A ;求平方子程序MOVC A, A+PCRETTAB:DB 0,1,4,9,16,25,36,49,64,81END 第3章 汇编语言程序设计 3.4 汇编语言程序举例3.4.1 代码转换程序计算机中的数制较多,在实际应用中,常常需要将一种 数制转换成另一种数制。数制之间的转换方法较多,不 同数制之间的转换方法也不同。【例3.6】将8位无符号二进制数转换为BCD数。设8位二 进制数在R2中,BCD数存放到R1(百位)和R0(十位 和个位)中。解:把8位二进制数分别除以100、10,分离出百位、十位 和个位,并把百位存放到R1,把十位和个位组合后存放到 R0中。 程序如下:第3章 汇编语言程序设计 ORG 2000HMOV A,R2 ;将8位二进制数送A中MOV B,#100 ;除数为100DIV AB ;A为百位,B为100以下的二进制数MOV R1,A ;存百位BCD数MOV A,#10 ;除数为10XCH A,BDIV AB ;A为十位数,B为个位数SWAP AADD A,B ;十位、个位BCD数组合在一起MOV R0,A ;存十位和个位BCD数END第3章 汇编语言程序设计 【例3.7】 四位二进制数转换为ASCII代码。 解:由二进制数和ASCII代码之间的对应关系可知,对于小于10的四位二进制数加30H得到相应的ASCII代码,对于大于等于10的四位二进制数加37H得到相应的ASCII代码,假设四位二进制数存放于R2中,转换后的ASCII代码也存于R2中。 第3章 汇编语言程序设计 BINASC:PUSH PSWMOV A, R2 ;取四位二进制ANL A,#0FH ;屏蔽高四位PUSH ACCCLR CSUBB A,#0AHPOP ACCJC LOOP ;该数=10(A)+07HA(A)+30HA存结果ASCII码开始结束二进制数转换为ASCII码第3章 汇编语言程序设计 3.4.2 算术运算程序进行多字节加、减运算时,应按照从低位字节向高位字节的顺序进行,高位字节运算时应考虑低位字节运算的进位或借位。【例3.8】 已知两个10字节的无符号数分别存放在以BLOCK1和BLOCK2为起始地址的存储区中,求两个数的和,并把结果存放在以BLOCK1为起始地址的存储区中。解:设R0、R1为地址指针,R0指向第一个加数,R1指向另一个加数。R2为循环计数器,初值为字节数10。编程如下:第3章 汇编语言程序设计 ORG 0100HBLOCK1 DATA 20HBLOCK2 DATA 30HMOV R0,#BLOCK1MOV R1,#BLOCK2 ;设置两个地址指针MOV R2,#10 ;设置循环计 数器初值CLR C ;进位标志初值为 0LOOP: MOV A,R0 ;取被加数到AADDC A,R1 ;加数与被加数相加并加低位进位,结果放A中MOV R0,A ;存结果INC R0 ;指针指向被加数更高位INC R1 ;指针指向加数更高

注意事项

本文(单片机应用技术(高职高专))为本站会员(xzh****18)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.