单片机软件的设计分析.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 单片机软件设计 讲座内容 一、背景和目标 二、资源的分配 三、程序规划 四、状态迁移图 五、消息驱动的实现方法 六、队列的使用 七、位处理技术的使用 一、讲座背景 背景: 大家设计软件还缺乏实战经验; 软件设计的结构不鲜明,缺乏条例; 目标: 增强软件的可读性; 使软件的结构清晰,易于故障定位; 规范软件设计的流程; 二、资源分配 内存分配 全局或局部变量(30h-7fh); 堆栈(52中,可将SP设为0x7f,实际占用0x80-0xff); 标志位(一般设在0x20-0x2f的可位寻址区域) 较小的Buffer; I/O分配 操作频繁的可利用直接的I/O端口,不太频繁的可使用扩展的I/O; 外部RAM分配 数据表 较大的Buffer 三、程序规划 数据结构 数据结构的种类:线性表 、栈和队列 软件中常用的数据表格 :消息队列,用户表(设备表),缓冲区,堆栈,状态表。 程序结构 周期级软件 基本级软件 系统级软件 3-1 数据结构的规划 程序设计中,会涉及大量数据,不少数据的值在不断变化,有些则比较固定。这些数据是系统运行中不可缺少的纪录和数据。 各种数据的存放和组织形式,也就是所谓的数据结构,与程序设计由密切的关系,直接影响到程序的有效性、清晰性和复杂性 3-1-1 数据表中常量的规划 端口类型表 在软件设计时,首先要对各种端口进行分类,确定每个端口的设备号,同时规定每个端口的收发号类型,以及用户号等等。 用户状态表 用户端口可能会处于各种不同的状态。依据不同信息的输入,用户状态可能发生迁移,即从一个现有的状态转变为另一个新的传态。所以,在程序设计的一开始就要对用户可能出现的各种状态进行分析、归纳,总结所有可能的用户状态 。 数据表中常量的规划-2 用户端口类型表 设备号 端口名称 收发号类型 用户号 备注(类型) 0 数字音频1 FSK 100-199 用户(1) 1 数字音频2 FSK 200-299 用户(1) 2 数字音频3 FSK 300-399 用户(1) 3 数字音频4 FSK 400-499 用户(1) 4 外部电台1 FSK 500-599 用户(2) 5 外部电台2 FSK 600-699 用户(2) 6 7 监听喇叭 PC键盘/鼠标 ? 监听(5) 8 有线用户1 PLUS/DTMF 808 用户(3) 9 有线用户2 PLUS/DTMF 809 用户(3) 10 模拟中继1 DTMF 010 中继(6,7) 11 模拟中继2 DTMF 011 中继(6,7) 12 话筒组1 PC键盘/鼠标 912 话务员(4) 13 话筒组2 PC键盘/鼠标 913 话务员(4) 用户状态表 十进制表示 十六进制表示 状态 十进制表示 十六进制表示 状态 0 0H 空闲状态 16 10H 权限查询状态 1 1H 摘机状态 *17 11H ? 2 2H 出局状态 *18 12H ? 3 3H 等待挂机状态 *19 13H ? 4 4H 阻塞状态(无空闲链路) *20 14H ? *5 5H ? *21 15H ? 6 6H 内线摘机状态 *22 16H ? 7 7H 内线收号状态 *23 17H ? 8 8H 被叫通话状态 24 18H 回振铃状态 *9 9H ? 25 19H ZG振铃状态 *10 0A ? 26 1AH ZG呼叫振铃状态 11 0B 回铃音状态 27 1BH 转移振铃状态 12 0C 主叫通话状态 *28 1CH ? *13 0D ? 29 1DH C振铃状态 14 0E 振铃状态 30 1EH 等待应答(无线被叫) 15 0F 无线呼叫等待状态(主叫) 31 1FH FSK发送状态(无线被叫) 3-1-2 用户表(设备、端口表) 软件设计时,对于每一个用户端口都需要规划一个用户表,每个用户表占用若干存储单元,分两部分: 第一部分:包含了用户的绝大部分信息,包括用户状态、定时、第二/三方设备号、收号指针、端口类型号、用户号等等; 第二部分:为收号缓冲区,或针对该端口的一些临时数据。 用户表中的数据大体上可分为三类: 第一类是系统级程序对用户的配置数据,包括端口类型号、转接方式、用户号、指定分机号设备号等,这些数据除了系统对用户配置外基本上是保持不变的参数; 第二类是周期级程序所保存或修改的数据,如:定时器、标志区、收号指针、接收号

文档评论(0)

四娘 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档