- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6课应用程序设计与实现技术
第六章 应用程序设计与实现技术 6.1 程序设计技术 6.2 数据结构及其应用技术 6.3 测量数据预处理技术 6.4 数字控制器的工程实现 6.5 系统的有限字长数值问题 6.6 软件抗干扰技术 6.1 程序设计技术 6.1.1 模块化与结构化程序设计 6.1.2 高级语言与汇编语言混合编程 6.1.3 工业控制组态软件 6.1.1 模块化与结构化程序设计 1.模块化程序设计 模块化程序设计的出发点是把一个复杂的系统软件,分解为若干个功能模块,每个模块执行单一的功能,并且具有单入口单出口结构。 (1)自底向上模块化设计 首先对最低层模块进行编码、测试和调试。这些模块正常工作后,就可以用它们来开发较高层的模块。这种方法是汇编语言设计常用的方法。 高层模块设计中的根本错误也许要很晚才能发现。 (2)自顶向下模块化设计 首先对最高层进行编码、测试和调试。为了测试这些最高层模块,可以用“结点”来代替还未编码的较低层模块,这些“结点”的输入和输出满足程序的说明部分要求,但功能少得多。该方法一般适合用高级语言来设计程序。 程序大小和性能往往要开发关键性的低层模块时才会表现出来。 最好使用两种方法结合起来。 2.结构化程序设计 从高级语言中取消GO TO语句,提高程序的质量。 可以证明,只用三(两)种基本的控制结构就能实现任何单入口单出口的程序。这三种基本的控制结构是“顺序”、“选择”、“循环”。 6.1.2 高级语言与汇编语言混合编程 1.汇编语言编程 2.高级语言编程 3.高级语言与汇编语言混合编程 1.汇编语言编程 用汇编语言编写的程序,比用高级语言编写的程序执行速度要快,且要求的硬件也少。 以PC总线工业控制机访问I/O端口的操作主要是输入指令IN(输入字节或字)和输出指令OUT(输出字节或字)。 IN AX,210H MOV DX,220H IN AL,DX 第一条指令是将地址为210H的端口的16位二进制数据输入到累加器AX中,第二条和第三条指令是将地址为220H的端口的8位二进制数输入到AL中。 输出指令:OUT 2.高级语言编程 Microsoft C/C++7.0通常有库函数,允许直接访问I/O端口,头文件〈CONIO.H〉中定义了I/O端口例程。 _inp和_outp分别从指定端口读一个字节数据和向指定端口写一个字节数据, _inpw和_outpw分别从指定端口读一个字数据和向指定端口写一个字数据。 例如:A1 =_inpw(0x210) A2 =_inp(0x220) 在C语言中,0x起头的是16进制数。第一条指令表示将端口210H的16位二进制数(一个字)输入给变量,第二条指令表示将端口220H的8位二进制数(一个字节)输入给变量。 又如: _outpw(0x230,0x3435) _outp(0x240,0x26) 第一条指令表示将二字节数3435H输出到端口230H中,第二条指令表示将单字节数26H输出到端口240H中。 3.高级语言与汇编语言混合编程 单独使用高级语言或汇编语言编程都有局限性。如何发挥汇编语言实时功能强,而高级语言运算能力强的优点,便成为计算机控制系统软件设计中一个使人感兴趣的问题。 实际使用中,常常采用高级语言与汇编语言混合编程的方法,即用高级语言编写计算、图形绘制、显示、打印程序等,用汇编语言编写时钟管理、中断管理和输入输出程序等。 (1)内联的汇编环境 内联的汇编语句可以直接出现在Microsoft C/C++程序中,因此,对这些语句来说,C语言程序是外部环境。在正确地使用内联汇编语言之前,必须知道两件事情。 第一,必须知道如何编译一个包括内联汇编语言的C语言程序。 第二,必须知道在内联语句中,什么事能做和什么事不能做。 在C/C++源程序中,可以直接把汇编程序的语句插入特殊的_asm语句中。 Microsoft C/C++编译程序有一个特殊的内联汇编程序,它允许在C语言代码中间写汇编语言例程,内联汇编程序是Microsoft汇编功能的子集。 (2)_asm关键字 为了直接在C语言程序中插入内联汇编语句,要在语句的开头使用_asm关键字。 下面给出几种不同方式的_asm语句: _asm assembly statemen
文档评论(0)