STM8S系列单片机原理与应用 教学课件 作者 潘永雄 第1 5章 第5章.pptVIP

STM8S系列单片机原理与应用 教学课件 作者 潘永雄 第1 5章 第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.2 STM8汇编程序结构 5.2.1 子程序与中断服务程序在主模块内   采用子程序与中断服务程序在主模块内的结构时,工作站文件夹中除了相应型号芯片的头文件外,几乎没有其他模块文件,形成了单一主模块程序结构,如图5-5所示。该结构中所有的子程序、中断服务程序均位于主应用程序main.asm模块内,变量、子程序入口地址标号、中断服务入口地址等属于局部标号与局部变量,无须指定标号类型,也无须用EXTERN伪指令声明其来源,但其缺点是程序结构不够清晰,查找某一个子程序时效率较低。 5.3 程序基本结构 5.3.1 顺序结构   所谓顺序程序结构,是指程序段中没有转移指令,执行时CPU逐条执行。   例5-1 查表程序。假设共阳LED数码管数码0~F的笔段码存放在以LED_Data为标号的存储单元中,如下所示:   LED_Data:   ; ?0, ?1 , 2 , ???3, 4, ?5, ?6, 7, ?8, 9, ?A, B, ??C, D, ?E, ??F   dc.B   0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H,088H,083H,0C6H,0A1H,086H,08EH   显示数据在累加器A中,试编写一个程序段将显示数据对应的笔段码取出。 5.4 并行多任务程序结构及实现 5.4.1 串行多任务程序结构与并行多任务程序结构   在串行多任务程序结构中,按预先设定的顺序执行各任务(即模块),任何时候只执行其中的一个任务,如图5-7所示。 5.5 程序仿真与调试   在完成了源程序编辑后,可按如下步骤调试,找出并纠正源程序中可能存在的错误或隐患。   (1) 执行“Bulid”菜单下的“Compile filename.asm”命令,编译指定的源程序,查找并纠正其中的语法、寻址范围错误。   (2) 首次调试项目时,先执行“Debug Instrument”菜单下的“Target Setting”命令,在图5-9所示的“Debug Instrument Settings”窗口中选择调试所用的工具,如Swim ST_link等硬件开发工具或Simulator软件模拟器。 图5-7 串行多任务程序结构 5.4.2 并行多任务程序结构   并行多任务程序结构如图5-8所示。 图5-8 并行多任务程序结构   把需要实时处理的多个任务排成一个队列,通过队列指针(也称为任务号),借助散转指令,如STM8的“JP (TAB_ADR, X)”指令(或条件转移指令)实现任务间的切换。每个任务执行时间长短不同,需将每一个任务细分为若干作业(或称为子过程),不同任务的作业量不尽相同,即作业量与任务本身的复杂程度有关。例如,在图5-8中的A任务,就分成A0、A1、A2、…、An,即n个作业。为此还需给每一个任务设置一个作业指针(或称为作业号),切换到某一个任务后,执行其中的哪一个作业由任务内的作业指针确定。   在并行多任务程序结构中,各任务地位相同,每个任务内的作业地位也相同。并行多任务程序结构模块清晰,能方便地增减其中任一个模块。任务调度也很灵活,可根据当前作业的执行结果选择下一步将要执行的任务号,非常适合于需要实时处理的多任务控制系统,实用价值较高。   在单片机并行多任务程序结构设计中,需要考虑的问题及注意事项如下:   (1) 作业划分原则。   为减少任务、作业切换时需要保护的数据量,任务内的每一个作业必须是一个完整的子过程。对于执行时间较长的任务,通过设置若干标志后,细分为多个作业,使每个作业执行时间不超出系统基本定时器的溢出时间。   按上述原则划分作业后,在作业处理过程中,除中断外不被其他任务所中断,作业执行结束后,只需将处理结果保存到相应的RAM存储单元中,对于初始化处理类作业根本无须保存结果;无须保护现场,即CPU各寄存器的值,如STM8的寄存器CC、A、X、Y等。   (2) 任务切换方式。   在微机、小型机实时多任务操作系统中,一般按设定顺序执行各任务,即每一个作业执行结束后任务指针加1,当执行到最后一个任务时将指针切换到第一个任务。   在单片机控制系统中,一般不宜采用“定时时间到切换”规则,如果系统中没有需要精确定时的事件,根本不需要定时器。原因是单片机系统时钟频率低,CPU响应速度慢,内嵌RAM容量有限,没有更多空间存放任务切换时需要保存的大量数据。另外,在单片机应用系统中,控制对象属性、控制对象所要执行的操作又非常明确,完全可根据当前作业的执行结果和系统的当前状态,直接切换到某个任务,以提高系统的实时性。这与十字路口交通灯切换时间最好由当前的车流量决定问题类似

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档