单片机原理及应用课件(第4讲).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机原理及应用课件(第4讲)

第4章 MCS-51单片机汇编语言程序设计 4.1 程序设计概述 4.2 顺序结构的程序设计 4.3 分支结构的程序设计 4.4 循环结构的程序设计 4.5 查表程序设计 4.6 子程序设计 §4-2 顺序结构的程序 顺序结构程序是一种最简单、最基本的程序,按照程序编写的顺序逐条依次执行,直到程序结束。这是程序的最基本的形式,任何程序都离不开这种形式。 例4-1: 将片外0200H,0201H单元两个无符号数相乘,结果送片内RAM的50H,51H单元 例4-2: 将片内RAM 20H单元中的数拆成两段,每段4位,并将其分别存入21H、22H单元中。低4位存在21H单元,高4位存 在22H单元 §4-3 分支结构的程序 分支结构程序是利用条件转移指令,使程序执行到某一指令时,根据条件是否满足,来改变程序执行的顺序。 编写分支结构的程序主要在于正确使用转移指令,确定好分支条件。 例4-3: 编制程序使y按下式赋值: 例4-4: 散转程序设计 §4-4 循环结构的程序 循环程序是强制CPU重复执行某一指令序列的 一种程序结构形式。循环结构程序简化了程序书 写,减少了内存占用空间。 循环结构的程序一般由5部分组成:初始化, 循环体、循环修改、循环控制和结束部分。 §4-4 循环结构的程序 例: 1、多个单字节数据求和。 2、设在DAT开始的片内RAM中存放8个无符号字节数,找出最大值,并暂存在A中。 3、测试字符串的长度,字符串起始地址50H,以回车(0DH)结束。 4、单片机晶振12MHz,设计软件延时程序,延时1ms。 5、冒泡排序(从小到大),数据其实地址为30H,共10个字节。 例: 课堂练习: 6、10个数,去掉一个最大值、一个最小值,求剩余8个数的平均值。 7、试编程把以2000H为首地址的连续50个单元的内容按升序排列,存放到以3000H为首地址的存储区中。 §4-4 查表程序 查表可以完成数据转换、补偿和计算功能。例如查表法是对一些复杂的函数运算(如sinx)等,事先把其全部可能范围的函数值按一定的规律编成表格存放在计算机的程序存储器中。当用户程序中需要用到这些函数时,直接按编排好的索引值(或程序号)寻找答案。 查表程序指令用 MOVC A,@A+DPTR MOVC A,@A+PC 例: 8、已知数据0~9的平方,设变量x的值在累加器A中,查表后求x2的值放回累加器,试编制程序。 例: 课堂练习: 9、设计一个将十六进制数转换成ASCII码的子程序。设十六进制数存放在R0的低4位,要求转换后的ASCII码送回R0中。 10、设片内RAM中以20H开始的单元,连续存放10个非压缩BCD码,试将其转换成ASCII码,存放到片内以50H开始的单元中。 §4-5 子程序设计 在实际问题中,常常会遇到在一个程序中有许多相同的运算或操作,例如多字节的加、减、字符处理等。如果每遇到这些运算和操作,都从头做起,则使程序非常繁琐且浪费内存。因此在实际应用中,通常把这些多次使用的程序段,按一定结构编好,存放在内存中,当需要时,程序可以去调用这些独立的程序段。 §4-5 子程序设计 给每个子程序赋予名字; 现场保护与恢复; 参数的正确传递; 子程序说明; 例: 11、用程序实现y=x12+x22。设x1、x2均小于10,x1存在片内RAM31H单元中,x2存在32H单元中,把y存入33H单元中。 例: 12. 将片内RAM中30H单元开始的10个数据取反后送到片内RAM中40H开始的单元中。 §4-6 算术逻辑处理程序 4-15、两个双精度(8字节二进制数)相加 §4-6 算术逻辑处理程序 §4-6 算术逻辑处理程序 §4-7 数制转换程序 §4-7 数制转换程序 §4-7 数制转换程序 E_mail: zht_sir@126.com Author: Zhanghaitao * 第4章 MCS-51单片机汇编语言程序设计 循环控制 置初值 循环体 循环修改 结束 未完 (a) 单重循环流程图 外循环置初值 内循环置初值 内循环体 内循环控制 外循环体 外循环控制 结束 未完 未完 (b) 双重循环流程图 1.工作寄存器 传递参数 2.指针寄存器传递参数 13. 将R1中的低半字节(低4位)一个十六进制数转换为ASCII码,再放回R1。 3.用堆栈传递参数 1.多字节二进制数加法 4-16、BCD码的加数与被加数放于ADR1和ADR2开始的片内RAM中,从低位字节到高位字节一次排序存放,字节数据N。设计程序时,用R1做加数的指针,R0做被加数的指针,同时为“和”的

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档