单片机原理及接口技术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文档。上传文档
查看更多
(1)计数循环结构 计数循环控制结构是依据计数器的值来决定循环次数,一般为减“1” 计数器,计数器减到“0”时,结束循环。计数器的初值是在初始化时设定。 AT89C51的指令系统提供了功能极强的循环控制指令: DJNZ Rn,rel ;工作寄存器作控制计数器 DJNZ direct,rel ;以直接寻址单元作控制计数 器。 计数控制方法只有在循环次数已知的情况下才适用。对循环次数未知的问题,不能用循环次数来控制。往往需要根据某种条件来判断是否应该终止循环。例如,计算n个数据的和。程序框图见图4-10 。 例4-12 如果xi均为单字节数,并按i顺序存放在51单片机内部RAM从50H开始的单元中,n放在R2中,现将要求的和(双字节)放在R3R4中,程序如下: ADD1: MOV R2,#n ;加法次数n送R2 MOV R3,#0 MOV R4,#0 MOV R0,#50H LOOP: MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,LOOP ;判加法循环次数是否已到? 计数控制方法只有在循环次数已知的情况下才适用。对循环次数未知的问题,不能用循环次数来控制,往往需要根据某种条件来判断是否应该终止循环。 图4-10 (2)条件控制结构 例4-13 设有一串字符,依次存放在内部RAM从30H单元开始的 连续单元中,该字符串以0AH为结束标志,编写测试字符 串长度的程序。 本例采用逐个字符依次与“0AH”比较的方法。为此设置一个长度计数器和一个字符串指针。 长度计数器用来累计字符串的长度,字符串指针用于指定字符。 如果指定字符与“0AH”不相等,则长度计数器和字符串指针都加1,以便继续往下比较;如果比较相等,则表示该字符为“0AH”,字符串结束,长度计数器的值就是字符串的长度。程序如下: MOV R4,#0FFH ;长度计数器初值送R4 MOV R1,#2FH ;字符串指针初值送R1 NEXT: INC R4 INC R1 CJNE @ R1,#0AH,NEXT ;比较, 不等则进行下一个 ;字符比较 END 上面两个例子都是在一个循环程序中不再包含其他循环程序,则称该循环程序为单循环程序。 如果一个循环程序中包含了其他循环程序,则称为多重循环程序。这也是经常遇到的实际问题。 最常见的多重循环是由DJNZ指令构成的软件延时程序,它是常用的程序之一。 例4-14 50ms延时程序。 延时程序与指令执行时间有很大的关系。在使用12MHz晶振时,一个机器周期为1μs,执行一条DJNZ指令的时间为2μs。这时,可用双重循环方法写出延时50ms的程序: DEL: MOV R7,#200 DEL1: MOV R6,#125 DEL2: DJNZ R6,DEL2 ;125*2=250μs DJNZ R7,DEL1 ;0.25ms*200=50ms RET 以上延时程序不太精确,它没有考虑到除“DJNZ R6,DEL2 ”指令外的其它指令的执行时间,如把其它指令的执行时间 计算在内,它的延时时间为: 1+(1+250+2)*200+2=50.603ms 如果要求比较精确的延时,应该考虑对上述程序进行修改,才能得到较为精确的延时时间。 注意,用软件实现延时程序,不允许有中断,否则将严重影响定时的准确性。 对于需延时更长的时间,可采用更多重的循环,如1s延时,可用三重循环。 表格长度不能超过256个字节,且表格只能存放于MOVC A,@A+PC指令以下的256个单元中。 如需要把表格放在64KB程序存储器空间的任何地方,此时应使用指令“ MOVC A,@A+DPTR”,并对DPH、DPL进行运算,求出表格的目的地址。 例4-5 在一个以AT89C51单片机为核心的温度控制器中,温度传感器输出的电压与温度为非线性关系,传感器输出的电压已由A/D转换为10位二进制数。测得的不同温度下的电压值数据构成一个表,表中温度值为y(双字节无符号数),x(双字节无符号数)为电压值数据。设测得的电压值x放入R2R3中,根据电压值x,查找对应的温度值y,仍放入R2R3中。 LTB2: MOV DPTR,#TAB2

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档