- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]单片机 第五章
第五章 软件设计 主要内容 软件设计方法概述 基于裸机的软件设计 基于操作系统的软件设计 软件测试 智能仪器仪表已不再是简单的硬件实体,而是硬件、软件相结合,软件决定仪器智能高低的新型仪器。 智能仪器中软件的主要功能 采集信息:采集电量和非电量 与外界对话:人机对话、与外部设备对话、接入Internet 记忆信息:存储器存储测量程序、模型、数据等 处理信息:加减乘除、标准偏差、FFT 控制功能:输出相应控制信息 自我测试:自诊断 自补偿自适应/自校正自学习:自补偿(环境温度、湿度)、自校准。 第一节 软件设计方法概述 软件危机与软件工程 软件工程开发模式 软件开发的三个阶段 模块化与结构化程序设计 面向对象程序设计 模块化与结构化程序设计 模块化程序设计 自底向上模块化程序设计:首先对底层模块进行编码、测试和调试,这些模块工作正常后,就可以用他们来开发较高层的模块。缺点:高层根本错误也需要很晚才能发现。 自顶向下模块化程序设计:首先对高层进行编码、 测试和调试,用“节点”来代替未编码的较低层模块。缺点:程序大小和性能往往要开发关键性低层模块时才会表现出来。 实际最好使用两种方法结合起来,先开发高层模块和关键性低层模块,并用“节点”来代替以后开发的不重要的模块。 模块化与结构化程序设计 结构化程序设计 三种基本的控制结构 顺序结构 选择结构 循环结构 程序设计的步骤 问题定义:明确计算机完成哪些任务、执行什么程序,决定输入输出的形式,与接口硬件的连接配合以及出错处理方法; 程序设计:利用程序对任务做出描述,使用的方法有模块程序设计法和结构化程序设计法; 编码:程序设计人员选取一种适当的高级(或汇编)语言,书写程序; 调试:利用各种测试方法检查程序的正确性; 改进荷和再设计:根据调试中的问题对原设计做修改,并对程序进行改进设计和补充。 面向对象的程序设计 基本概念 对象 消息 类 继承性 面向对象的程序设计 面向对象程序设计准则 模块化 抽象 信息隐藏 弱耦合 可重用 强内聚 第二节 基于裸机的软件设计 设计步骤 程序流程图与子程序设计 系统监控程序设计 常用功能模块的设计 基于裸机的软件设计是指以空白的微处理器/控制器为基础,完成全部的软件设计,没有将系统软件和应用软件分开处理,其实时性和可靠性与设计人员的水平密切相关,适用于功能较为简单的中小型应用系统。 一、设计步骤 编写设计任务书 硬件电路设计 软件任务分析 数据类型和数据结构规划 资源分配 编程与调试 编程语言与编程环境的选择 二、程序流程图与子程序设计 程序流程图的画法 先粗后细,逐步细化 二、程序流程图与子程序设计 子程序设计 应采用模块化,结构化的程序设计方法 三、系统监控程序设计 监控程序的任务 系统监控程序是控制系统按预定操作方式运转的程序。它完成人机对话和远程控制等功能,使系统按操作者的意图或遥控命令来完成指定的作业。它是系统程序的框架。如:完成系统自检、初始化、处理键盘命令、处理接口命令,处理条件触发并完成显示功能。 三、系统监控程序设计 监控程序的结构 作业顺序调度型 作业优先调度型 键码分析作业调度型 四、常用功能模块的设计 自检模块 初始化模块 时钟模块 通信模块 信息采集模块 数据处理模块 控制决策模块 显示模块 第三节 基于操作系统的软件设计 嵌入式操作系统 嵌入式软件开发方法 一、嵌入式操作系统 许多简单的嵌入式系统并不需要嵌入式操作系统(如单片机控制)。但是,随着嵌入式系统复杂性的增加,操作系统显得越来越重要。因此,必须对复杂的嵌入式软件系统进行合理的控制。 嵌入式操作系统 嵌入式操作系统的分类 商用系统:Win CE 专用系统: CISCO的ISO 开放系统:Linux 二、嵌入式软件开发 增量式迭代开发模型 嵌入式应用程序开发过程 第四节 软件测试 软件测试就是在软件投入运行前,对软件需求分析,设计规格说明和编码的最终复查,是软件质量保证的关键步骤。 定义1:软件测试是为了发现错误而执行程序的过程。 定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。 通用软件测试方法 思考题与习题 什么是软件工程? 什么是基于裸机的软件设计?其设计步骤分为哪几步? 系统监控程序的作用是什么?常用结构有哪几种? 嵌入式操作系统有哪几类? 什么是软件测试?其作用是什么? * * 第一节 软件设计方法概述 在信息社会中,信息的获取、处理和交流等都需要高质量的软件产品
文档评论(0)