2022年单片机学习资料-第讲程序设计.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文档。上传文档
查看更多

键控移位

例:有一电路如图所示,设计一个程序实现以下功能:SW按下第1次,VD1发光;SW按下第2次,VD1、VD2发光;SW按下第3次,VD1、VD2、VD3发光……SW按下第7次,VD1—VD7发光;SW按下第8次,VD1发光;SW按下第9次,VD1、VD2发光……依次轮回。

解题思路:本例涉及到查询按键按下的过程,SW没有按下时为高电平,按下为低电平。实际应该查询的是的下降沿,有一个下降沿,表明有一个按键按下,LED的状态应该改变一次。;2;程序清单;数据排序程序

例:将片内RAM中20H-27H中的数据按照从小到大的顺序重新排列。

解题思路:见下图;R1←20H,R0←(R1)+1

R3←08H;程序清单:ORG0000H

MOVR1,#20H

MOVR3,#08H

LOOP1:MOVA,R1;R0←(R1)+1

INCA

MOVR0,A

MOVA,R3;R2←(R3)-1

DECA

MOVR2,A

MOVB,@R1

LOOP:MOVA,@R0

CJNEA,B,MM

;MM:JNCSS;如果A≥B跳转

MOVB,A

MOV28H,R0

SS:INCR0

DJNZR2,LOOP

MOVR0,28H;最小值单元和20H单元内容互换

MOVA,@R1;数据

MOV@R0,A

MOV@R1,B

INCR1

DJNZR3,LOOP1

END

;INCR1

MOVB,@R1

MOVX @R1,B

MM:JNCSS;如果A≥B跳转

DJNZR2,LOOP

SW按下第9次,VD1、VD2发光……依次轮回。

了解程序的基本结构(顺序结构、分支结构、循环结构)和程序设计的基本方法;

利用工作寄存器或累加器进行传递。

SW按下第3次,VD1、VD2、VD3发光……SW按下第7次,VD1—VD7发光;

实际应该查询的是的下降沿,有一个下降沿,表明有一个按键按下,LED的状态应该改变一次。

执行完以上4条语句,所花时间:

Zi=Xi÷2运算子程序

程序使用的专用指令:

MOVCA,@A+PC

MOVCA,@A+DPTR

传递参数,调用运算子程序

例1:假设单片机的fosc=12MHz,计算单片机执行下面程序消耗的时间。;例1:假如在MCS-51单片机内部RAM中40H单元内存放的是一个角度?(范围0?-90?),设计一段程序,计算出200?sin(?),把结果存入41H单元中(结果只取整数)。

解题思路:先建立一个相应的数值表格,定义在程序存储器中,利用输入的值进行查表。;例程:

ORG 0000H

MOV DPTR

文档评论(0)

192****6062 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档