网站大量收购闲置独家精品文档,联系QQ:2885784924

单片机技术及应用 项目3 单片机LED广告灯和交通灯(任务2)学习课件.ppt

单片机技术及应用 项目3 单片机LED广告灯和交通灯(任务2)学习课件.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

项目三单片机LED广告灯和交通灯**任务2单片机LED闪烁广告灯任务目标●加深理解已学过的指令和编程方法;●理解任务中新出现的指令;●领会子程序编程方法;●进一步巩固Keilμvison2及ISP下载软件的使用;●进一步熟悉单片机产品的开发流程。任务2单片机LED闪烁广告灯任务描述某公司订制的单片机LED闪烁广告灯。要求如下:(1)用单片机AT89S51进行控制;(2)实现16只LED灯同时连续闪烁,闪烁频率为5Hz。任务2单片机LED闪烁广告灯任务知识一、主程序和子程序本项目任务1中的电路板调试程序,要求16只LED灯同时闪烁,也就是先同时点亮,延时0.25秒,再同时熄灭,延时0.25秒,这两段延时程序是完全一样的,但由于编程需要,只得重复编写,如程序其它地方还需要的话,还得继续重复编写。在实际应用中,这种需要多次执行的一段程序,在程序设计时,可把这段程序独立出来作为子程序(SubProgram),原来的程序作为主程序(MainProgram)。主程序在执行时根据需要可以多次调用子程序,子程序执行完毕,必须自动返回到主程序原断点地址继续执行主程序。在主程序中能调用子程序的指令称为子程序调用指令,在子程序结尾处能自动返回主程序的指令称为子程序返回指令。任务2单片机LED闪烁广告灯如图3-2-1所示,主程序在断点A调用子程序SUB,在子程序执行完后返回到断点A;主程序运行到断点B再调用同一个子程序SUB,子程序执行完后返回到断点B。值得注意的是主程序及子程序的这种安排使整个程序所占的存储空间大大缩小,程序结构也更为清晰,简洁,便于调试及查错,但整个程序的执行时间并没有减少。任务2单片机LED闪烁广告灯任务知识图3-2-1二次调用子程序图3-2-2子程序嵌套在程序中,不但主程序可以调用子程序,子程序也可以调用其它子程序,称为子程序嵌套,如图3-2-2所示。在图3-2-2中,主程序运行到断点时调用子程序SUB1,在运行子程序SUB1的断点时调用子程序SUB2,在执行完SUB2后先返回到SUB1的断点,执行完SUB1后才返回到主程序的断点,再接着执行主程序。调用子程序时必须能顺利转移到子程序,子程序返回时必须能正确转到原程序的断点,这些可通过子程序调用指令和子程序返回指令自动实现。任务2单片机LED闪烁广告灯任务知识二、本任务新出现的指令1.子程序长调用指令LCALLaddr16;①PC←PC+3②SP←SP+1,(SP)←PC7~0SP←SP+1,(SP)←PC15~8③PC←addr16该指令机器码3字节,机器周期2个。指令执行时,要完成3种操作:先将PC值加3,计算出调用指令的下一条指令地址,即子程序要返回的断点处的断点地址;然后将断点地址压入堆栈保存;最后将子程序入口地址装入程序计数器PC,CPU转入子程序执行。任务2单片机LED闪烁广告灯任务知识因为子程序入口地址addr16是一个16位地址,故长调用指令LCALLaddr16可在64KB范围内寻址,子程序可放在64KB范围内的任何地方,但通常放置在主程序之后。addr16既可用数值地址(如1000H),也可用符号地址(如DELAY,子程序第一条指令的标号)。在实际编写程序时通常采用符号地址,由汇编程序自动计算子程序入口地址,这样避免了计算子程序实际地址的麻烦。例:对下列指令,已知MAIN=0200H,DELAY=1000H,SP=70H,执行指令:MAIN:LCALLDELAY执行结果:PC=1000H,(71H)=03H,(72H)=02H,SP=72H。任务2单片机LED闪烁广告灯任务知识2.子程序短调用指令ACALLaddr11;①PC←PC+2②SP←SP+1,(SP)←PC7~0SP←SP+1,(SP)←PC15~8③PC10~0←addr11该指令机器码2字节,机器周期2个。指令执行时,要完成3种操作:先将PC值加2,计算出调用指令的下一条指令地址,即子

文档评论(0)

ouyangxiaoxin + 关注
实名认证
内容提供者

一线鞋类设计师,喜欢整理收集文档。

1亿VIP精品文档

相关文档