单片机的编程技术.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文档。上传文档
查看更多

例5有一巡回检测报警装置,需对16路输入信号进行控制,每路设有一个报警上限值(等于或超出此值即报警,置报警标志F0),设16路输入信号存放在以50H为首地址的内RAM中,16路报警上限值存在以2000H为首地址的ROM中,试编制该程序。程序如下:START:MOVDPTR,#2000H;置16路报警上限值首地址MOVR0,#50H;置16路输入信号数据区首地址MOVR7,#0;置16路输入信号的序号0LOOP:MOVR1,@R0;检测信号存R1MOVA,R7;读输入信号序号MOVCA,@A+DPTR;查找该序号对应的报警上限值CJNEA,R1,NEXT;与对应的输入信号比较AJMPALAM;输入信号等于报警上限值,转报警(1)字节操作程序第30页,共70页,星期日,2025年,2月5日NEXT:JCALAM;输入信号超出报警上限值,转报警INCR0;输入信号小于报警上限值,指向下一路输入信号INCR7;指向下一路输入信号序号CJNER7,#16,LOOP;看16路是否全查完?未完继续CLRF0;16路全查完,清报警标志AJMP$;暂停ALAM:SETBF0;置报警标志RET第31页,共70页,星期日,2025年,2月5日3.3.3循环程序1.循环结构在程序设计时,常常遇到需要反复执行的某种操作,这时可编写一个程序段重复执行,这就是循环。循环程序一般包括4部分,如图3-6所示。对这4部分的含义,我们以例题的形式加以说明。例6编程实现以下数据传送功能:将BUF为起始地址的50个数取反后,传送到以DATA为起始地址的内存单元中。第32页,共70页,星期日,2025年,2月5日分析:如果采用顺序结构编写,程序会很麻烦,要执行50次从源地址中取数的MOV指令,50次数据取反的CPL指令,50次向目的地址送数的MOV指令。经过观察,我们发现,可以把顺序结构中重复执行的部分提取出来,编成一个独立的小程序段(即循环体部分),然后对这个小程序段重复执行50次(循环次数),这就构成了循环。图3-6循环结构第33页,共70页,星期日,2025年,2月5日1.初始化规定循环体中各控制变量的初始状态。2.循环体这是循环程序需要重复执行的部分。对这部分编程的时候要注意两个问题:指令要具有通用性,程序要便于修改。程序尽可能简化。第34页,共70页,星期日,2025年,2月5日(3)循环修改循环程序每执行一次,都要对数据的地址指针、循环次数等作一次修改,这就是循环修改。(4)循环控制根据循环结束条件,判断循环是否结束。常用作循环控制的变量是循环次数。第35页,共70页,星期日,2025年,2月5日参考程序如下:START:MOVR0,#SBUF;数据的源地址MOVR1,#DATA;数据的目的地址MOVR7,#50;循环次数LOOP:MOVA,@R0;源地址中数据送ACPLA;取反MOV@R1,A;取反后的数据送目的地址INCR0

文档评论(0)

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

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

1亿VIP精品文档

相关文档