- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章-应用程序技术.doc
第八章 应用程序设计技术
8·1 系统应用程序设计应包含哪些内容? 为什么说可靠性设计和运行管理设计也是系统应用程序设计的重要组成部分?
答: 单片机应用系统中,应用程序设计内容主要有功能性设计、可靠性设计和运行管理设计。
(1)功能性设计
功能性设计是应用程序设计的主干内容,是满足应用系统运行功能的程序设计内容。它
包括运行结构设计和任务模块设计。
(2)可靠性设计
可靠性设计是应用程序设计中十分重要的一环,是系统安全可靠运行的保证。应用程序
中的可靠性设计与系统的可靠性等级有关。可靠性等级越高,可靠性设计投入就越大。
(3)运行管理设计
运行管理设计是指应用程序中用于某些非系统功能要求的特殊操作。目前主要是低功耗
的运行管理,随着MCU技术的发展,会出现许多新的运行管理要求,诸如ISP的相关管理、固化软件的管理等。
8·2 单片机应用系统中有哪几种常见的系统程序结构?
答: 单片机应用系统的多种应用状态、应用模式,相应会有多种多样的系统程序结构。这些程序结构大致有:以键盘管理为中心的键操作结构,无外部操作的自主运行程序结构和基于
RTOS任务管理的嵌入式结构。
8·3 什么是实时多任务操作系统(RTOS)? 在 RTOS中如何保证任务运行的实时性?
答: (1)实时多任务操作系统(RTOS)
RTOS是植人单片机应用系统中的一个背景程序,用户的应用程序是运行在RTOS中的
一些任务模块。RTOS根据各个任务的要求,进行资源管理、消息管理、任务调度、异常处理等工作。
(2)在RTOS中要保证任务运行的实时性
在RTOS支持的系统中,每个任务都有一个优先级,RTOS根据各个任务的优先级进行
动态切换,以保证任务的实时性要求。
8·4 什么是汇编语言程序设计中的编辑与汇编? 常用80C51的编辑软件是什么? 为什么要对源文件进行汇编? 源文件中的伪指令起什么作用?
答: 应用程序设计时,在进入程序调试前,应完成源程序的编写和汇编,这就是调试前的编辑与汇编工作。
汇编语言源程序由许多汇编语句组成,它的文件扩展名为·ASM。通常采用QE或PE编辑软件来编写汇编语言源程序。在80C51中,对源程序迸行汇编的软件工具为MASM一51。
伪指令为汇编控制命令,为源程序汇编操作提供所需要的数据信息,只在源程序中使用。
如上述源程序GAMPLE·ASM中用于地址定位的ORG和汇编终止标记END等。
8·15 子程序能否独立运行? 子程序怎样才能运行? 通常怎样调试一个子程序?
答:(1)子程序的运行
子程序是不能独立运行的。子程序只能在调用状态下运行。
(2)子程序的调试
由于子程序只能在调用状态下运行,因此,可在程序入口处设置一子程序调用指令,而子返回后设置一循环指令即可。如下所示,用伪指令ORG将程序定位在某一指令空间,例
如1000H。
ORG 1000H
MOV R0,#FRQNM ;结果缓冲区首址入R0
LCALL SMPNM ;调用SMPNM子程序
SJMP $ ;子程序返回后原地循环
SMPNM: MOV TMOD, # 55 H ;SMPNM子程序,详见SMPNM子程序
;清单,其中省去了
;MOVR0,#FRQNM指令
CLR A
MOV @R0,TL0
RET
8·6 子程序调用和返回时,堆栈起什么作用? 如何利用堆栈特性实现中断程序中的
散转操作?
答: (1)子程序调用和返回时堆栈的作用
通常,在调用子程序时,调用指令的下一条指令地址自动进栈(低位在先,高位在后);子程序返回时,地址自动弹出,形成子程序返回地址。一般子程序的调用过程如题图8-1(a)
所示。
题图8-1
(2)利用堆栈特性实现中断程序中的散转操作
①子程序中压栈的程序转移原理:在子程序返回前将转移地址进行入栈操作,就可以实
现子程序的任意转移操作。
主程序调用某ABC子程序时,如调用指令的下一条标号为MADD的指令地址(MADDL) 入栈保护。执行完ABC子程序后,栈中地址弹出,程序返回到主程序MADD处。
如果在执行子程序ABC中,将某个子程序的入口地址XYZ压入堆栈,如题图8-K(b)所示。当ABC子程序返回时,堆栈中弹出的地址是XYZ。这时ABC子程序不会返回主程序,而是转向XYZ子程序。只有执行完XYZ子程序,在子程序返回指令RET操作下,弹出MADDH、MADDL,程序才返回MADD处。
②多中断源的散转操作:利用上述的程序转移原理可以实现多中断源的散转操作。将散
转的入口地址ADDiL、ADDiH依次压入堆栈,随后执行子
文档评论(0)