- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章实用程序设计.PDF
第六章 实用程序设计 6 1
第六章 实用程序设计
6 1程序设计方法
程序设计就是用计算机所能接受的语言把解决问题的步骤描述出来 也就是编制计算机的程
序 AVR单片机程序设计语言有 C编译高级语言和宏汇编汇编语言
在设计应用系统时 软件的编制是重要环节 软件的质量直接影响整个系统功能的实现
本章从应用的角度出发 介绍一些实用子程序 读者既可按需要改编调用 也可以吸收其设
计方法 以便更好地设计出适合于自己系统的实用软件
6.1.1程序设计步骤
应用程序的设计因系统而异 因人而异 尽管如此 程序设计总是有共同特点及其规律的 在
编写程序时 设计人员可以采取如下几个步骤
1 分析问题 明确所要解决问题的要求 将软件分成若干个相对独立的部分 根据功
能关系和时序关系 设计出合理的软件总体结构
2 建立正确的数学模型 即根据功能要求 描述出各个输入和输出变量之间的数学关
系 并确定采用的计算公式和计算方法
3 制定程序框图 根据所选择的计算方法 制定出运算的步骤和顺序 并画出程序框
图 这不仅是程序设计的一个重要组成部分 而且是决定成败的关键部分
4 合理分配系统资源 包括程序FlashE2PROMSRAM定时器 计数器 中断 堆栈
等 确定数据格式 分配好工作单元 进一步将程序框图画成详细的操作流程
5 根据程序的流程图和指令系统 编写出程序 注意在程序的有关位置处写上功能注
释 提高程序的可读性
6 程序调试 通过编辑软件编辑出的源程序 必须用编译程序汇编后生成目标代码
如果源程序有语法错误 需修改源文件后继续编译 直到无语法错误为止 这之后利用目
标码通过仿真器进行程序调试 排除设计和编程中的错误 直到成功
(7)程序优化 使各功能程序实行模块化 子程序化 缩短程序的长度 加快运算速度和
节省数据存储空间 减少程序执行的时间
6 1 2程序设计技术
1 模块化程序设计
模块化程序设计是单片机应用中常用的一种程序设计技术 它是把有关功能完整的 较
长的程序 分解为若干个功能相对独立的 较小的程序模块 各个程序模块分别进行设计 编程
和调试 最后把各功能模块集成为所需的程序
模块化程序设计的优点是 单个功能明确的程序模块的设计和调试比较方便 容易完成
一个模块可以为多个程序所共享 也可利用现成的程序模块
2 自上而下的程序设计
自上而下的程序设计时 先从主程序开始设计 从属的程序和子程序用符号来代替 主程
序编好后 再编制各个从属程序和子程序 最后完成整个系统软件的设计 调试也按这个次序
进行
自上而下程序设计的优点是,比较习惯人们的日常思维 设计 调试和连接同时按一个线
索进行 程序错误可以较早发现 缺点是修改比较麻烦
3软件抗干扰设计
用于生产现场的单片机应用系统 易受各种干扰侵袭 直接影响到系统的可靠性 因此
应用系统的抗干扰设计是非常重要的
在实际情况中,针对不同的干扰后果 采用不同的软件对策 在实时数据采集系统中 为
广州天河双龙电子有限公司 http://WWW.SL.COM.CN
第六章 实用程序设计 6 2
了消除传感器通道中的干扰信号,可采用软件数据滤波 如算术平均法 比较舍取法 中值法
一阶递推数字滤波法等 在开关量控制系统中 为防止干扰进入系统 造成各种控制条件超差
输出失控 可采取软件冗余 程序自检等措施 为防止程序计数器失控 造成程序盲目运行或
死机 可设置软件 看门狗 来监视程序运行状态 也可在非程序区设置软件陷井,强行使程
序拉回复位状态 重新启动
6.2应用程序举例
应用程序中包括一些算术运算 代码转换 数据传送 滤波算法 串行通信 A/D转换子程序
根据需要 可以应用其中的一些子程序
6.2.1内部寄存器和位定义文件
AVR单片机内部寄存器和位定义文件 用于定义器件内部的寄存器名和寄存器的位名
在汇编程序文件中如包括了定义文件,则所有数据块中I O寄存器名和I O寄存器位名都能
使用 寄存器名用16进制地述表示 寄存器位名用0 7位表示
另外,被配置命名的XLZH 6个寄存器形成3个数据指针X Y和Z 作为内部SRAM
高端RAM地址同样被定义
注意 在指令中使用的位名是意义不同的 如 sbr/ cbr指
文档评论(0)