单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第5章 程序设计.pptVIP

单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第5章 程序设计.ppt

  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文档。上传文档
查看更多
尚辅网 尚辅网 第5章 程序设计 程序设计就是利用计算机所能识别的语言把解决问题的步骤描述出来,也就是编写程序,在MCS-51型单片机的实际应用中,相当多的程序采用汇编语言编写。因此汇编语言程序设计不仅关系到系统的特性和效率,还与系统的硬件有密切的关系 5.1 程序设计的步骤 汇编语言程序设计有以下几个步骤: 1.分析问题,明确所要解决问题的要求,确定算法或解题思路 2.画流程图 流程图又称为程序框图,它用各种图形、符号、指向线等来说明程序的执行过程,能充分表达程序的设计思路,可帮助设计程序、阅读程序和查找程序中的错误。常用的流程图符号如下: 3.编写源程序 根据流程图编写源程序,如上。编写源程序的时候要注意以下3点: 1)合理分配存储器单元和了解I/O接口地址。 2)按功能设计程序,明确各程序之间的相互关系。 3)用注释行说明程序,便于阅读和修改调试和修改 4.汇编和调试 对已编写好的程序,先进行汇编。再汇编过程中,还可能会出现一些错误,需要对源程序进行修改。汇编工作完成后,就可上机调试运行。 5.2 汇编语言程序的书写格式 程序书写的格式又两种形式: 1.完整的程序格式形式。 2.子程序的形式 5.3 程序设计方法 顺序程序是最简单的一种程序结构,又叫直线程序,它是按照顺序依次执行的程序,也是所有程序设计中最基本、最重要的程序,因为编写程序就是按照逻辑上的顺序来编写的。主要用数据传递类指令和数据运算类指令来实现。 主要特点:完全按程序书写顺序,从第一条语句开始顺序执行,直至最后一条语句。 解:先画出流程图如图5.2 根据流程图编写源程序如下 : ORG 0040H MOV A,20H ADD A,30H MOV R0,A CLR A ADDC A,#00H MOV R0,A MOV A,30H ADD A,R1 MOV R1,A CLR A ADDC A,R0 MOV R0,A END 5.3.2 循环程序 在许多实际应用中,往往需要多次反复执行某种相同的操作,而只是参与操作的操作数不同,这时就可采用循环程序结构。循环程序常用于求和、统计、寻找、排序、延时、求平均值等程序。循环程序可以缩短程序,减少程序所占的内存空间。 主要特点:可对某程序段多次重复执行。 比如LED灯闪烁程序的延时子程序: 例4.11中的8个LED循环点亮,亮的时间就是用循环程序结构的,也就是一个延时子程序, 【例5.3】从22H单元开始存放一个数据块,其长度存放在20H单元中。将数据块求和,要求将和存放入21H单元中(和不超过255)。 解:用计数器控制的单重循环程序源程序如下 ORG 0040H CLR A ;A清0 MOV R2,20H ;置数据块长度于R2中 MOV R1,22H ;置数据块首地址 LOOP:ADD A,@R1 ;加数 INC R1 ;依次取数据块的地址 DJNZ R2,LOOP ;循环控制,判断求和的数据块个数到了吗?没到,继续执行求和 MOV 21H,A ;求和的数据块个数到了,把结果放入21H END 【例5.6】 根据图4.4的线路设计灯亮程序,要求8只发光二极管间隔分二组,即1、3、5、7为一组,0、2、4、6为一组,二组交叉轮流发光,反复循环不止,变换时间为100ms,已知时钟频率为6MHz。 源程序如下:ORG 0040H MOV A,#55H L1:MOV P1,A ;初始化为1、3、5、7位先亮 LCALL DELAY ;亮100 ms CPL A ;各位取反 SJMP L1 ;反复循环 DELAY:MOV R0,#100 ;毫秒数→R0 DL2:MOV R1,#250 ;1ms延时的预定值250→R1 DL1:DJNZ R1,DL1 ;1ms延时循环 DJNZ R0,DL2 ;毫秒数未到,继续 RET ;子程序返回 END 5.3.3 分支程序 在许多情况下,需要根据不同的条件转向不同的处理程序,这种结构的程序称为分支程序。也就是本条指令执行完后并不是象顺序结构那样执行下一条指令,而是看本条指令所给的条件是否满足,如果满足条件就跳转到其他的指令,如果不满足就顺序执行。 在分支结构的程序设计中必须注意:执行一条判断指令只可以形成两路分支,如果要形成多路分支就必须进行多次判断,也就是多条指令

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档