用Borland C 3.1实现外设与Windows应用程序实时通信(最新3篇)

用Borland C 3.1实现外设与Windows应用程序实时通信 篇一

在现代的计算机系统中,外设与应用程序之间的实时通信变得越来越重要。这种通信方式可以使外设与应用程序之间进行数据传输和命令交互,使得应用程序可以实时地控制和监测外设的状态。

Borland C 3.1是一款经典的C语言集成开发环境,它可以在DOS和Windows操作系统上开发应用程序。在Borland C 3.1中,我们可以利用其提供的API函数和库来实现外设与Windows应用程序之间的实时通信。

首先,我们需要确定要实现实时通信的外设类型。常见的外设包括串口设备、并口设备和USB设备等。不同类型的外设需要使用不同的通信方式和协议。以串口设备为例,我们可以通过串口通信协议(如RS232)来实现与应用程序的通信。

其次,我们需要了解Borland C 3.1提供的API函数和库。Borland C 3.1提供了一系列的串口通信函数,如open、read、write和close等。我们可以利用这些函数来打开串口设备、读取外设发送的数据、向外设发送数据以及关闭串口设备。

接下来,我们需要编写相应的代码来实现外设与应用程序的实时通信。首先,我们需要在应用程序中打开串口设备,可以使用open函数指定串口设备的名称和通信参数。然后,我们可以使用read函数从串口设备中读取数据,使用write函数向串口设备发送数据。最后,我们需要在应用程序结束时关闭串口设备,可以使用close函数来实现。

在编写代码时,我们还需要处理异常情况,比如打开串口设备失败、读取数据超时等。Borland C 3.1提供了一些错误处理函数和宏,如perror和errno等,可以帮助我们处理这些异常情况。

通过上述步骤,我们可以使用Borland C 3.1实现外设与Windows应用程序的实时通信。这种通信方式可以帮助应用程序实时地控制和监测外设的状态,提高系统的性能和可靠性。

总结起来,使用Borland C 3.1实现外设与Windows应用程序的实时通信需要以下步骤:确定外设类型,了解Borland C 3.1的API函数和库,编写相应的代码实现通信,处理异常情况。通过这些步骤,我们可以实现外设与应用程序之间的实时通信,提高系统的性能和可靠性。

用Borland C 3.1实现外设与Windows应用程序实时通信 篇二

在计算机系统中,外设与应用程序之间的实时通信是一项重要的技术。它可以使外设与应用程序之间进行数据传输和命令交互,实现实时控制和监测外设的状态。在本文中,我们将介绍如何使用Borland C 3.1实现外设与Windows应用程序的实时通信。

Borland C 3.1是一款经典的C语言集成开发环境,它可以在DOS和Windows操作系统上开发应用程序。在Borland C 3.1中,我们可以利用其提供的API函数和库来实现外设与Windows应用程序之间的实时通信。

首先,我们需要确定要实现实时通信的外设类型。常见的外设包括串口设备、并口设备和USB设备等。不同类型的外设需要使用不同的通信方式和协议。以串口设备为例,我们可以通过串口通信协议(如RS232)来实现与应用程序的通信。

其次,我们需要了解Borland C 3.1提供的API函数和库。Borland C 3.1提供了一系列的串口通信函数,如open、read、write和close等。我们可以利用这些函数来打开串口设备、读取外设发送的数据、向外设发送数据以及关闭串口设备。

接下来,我们需要编写相应的代码来实现外设与应用程序的实时通信。首先,我们需要在应用程序中打开串口设备,可以使用open函数指定串口设备的名称和通信参数。然后,我们可以使用read函数从串口设备中读取数据,使用write函数向串口设备发送数据。最后,我们需要在应用程序结束时关闭串口设备,可以使用close函数来实现。

在编写代码时,我们还需要处理异常情况,比如打开串口设备失败、读取数据超时等。Borland C 3.1提供了一些错误处理函数和宏,如perror和errno等,可以帮助我们处理这些异常情况。

通过上述步骤,我们可以使用Borland C 3.1实现外设与Windows应用程序的实时通信。这种通信方式可以帮助应用程序实时地控制和监测外设的状态,提高系统的性能和可靠性。

总结起来,使用Borland C 3.1实现外设与Windows应用程序的实时通信需要以下步骤:确定外设类型,了解Borland C 3.1的API函数和库,编写相应的代码实现通信,处理异常情况。通过这些步骤,我们可以实现外设与应用程序之间的实时通信,提高系统的性能和可靠性。

用Borland C 3.1实现外设与Windows应用程序实时通信 篇三

用Borland C 3.1实现外设与Windows应用程序实时通信

摘 要 该文提出了一种在Windows3.1保护模式下,通过动态连接库(DLL)生成中断服务程序代码,实现外设与Windows应用程序实时通信的有效方法。

一、前 言

计算机的日益普及和计算机技术日益成熟,使得计算机在工业控制监测中的应用渐渐深入。但工业应用不同于其它方面,它要求有较强的实时性。现在有很多的DOS软件在运行过程中通过挂接外部中断方式实现DOS应用软件与外设的实时通信,这种方法实现起来十分简单。而在Windows中应用程序能否也能够利用外部硬中断实现外设与Windows应用程序的实时通信呢?答案是肯定的。这里的`关键是要解决好中断代码与Windows应用程序相互之间交换信息的问题。

从外设发送异步的硬中断,通过中断处理程序传递一条信息给Windows应用程序。这时可以初始化相关端口,准备好数据,然后进行数据传送,从而做到实时通信。

实现Windows应用程序响应外部中断的方法有很多,如Microsoft公司自己开发的SDK、DDK软件包,使用嵌入式汇编等等。本文将介绍一种在BC 3.1的基础上利用Windows 3.1拥有的一些功能实现Windows实时通信的实例。

二、中断代码的位置

在Windows中,几乎所有的异步事件都是由中断处理程序来管理的。中断处理程序包含在设备驱动程序中,由Windows在环境初始化中安装。例如,KEYBOARD.DRV、MOUSE.DRV和COMM.DRV均含有中断处理程序,以处理相应的键盘、鼠标和串行口的异步中断。可以仿照标准设备驱动程序,编写中断处理代码,以响应外设的通信请求,从而完成一次实时通信。

中断代码既可以包含在应用程序的可执行代码中,也可以包含在动态连接库(DLL)中。包含在应用程序中的代码只能在一个程序中使用,而在动态连接库中的代码则可以在Windows系统中所有的应用程序所共享。这样不仅在整个Windows系统中只有一个中断代码的副本,提高了内存的使用效率,更重要的是可以防止由于同时存在多个中断代码的副本而发生冲突。本文将在DLL中编制中断处理程序。

当动态连接库被装入时,要调用DLL库的入口点LibMain(),利用这一点可以执行一些初始化工作,可以分配一些内存块,可以初始化一些全局变量或者静态变量,可以安装中断服务程序的代码等等。例如:

void interrupt (oldIsr)(--CPPARGS)

/* 旧的中断服务程序地址 */

LibMain(HANDLE hInstance,WORD wDataSeg,WORD cbHeapSize,L

PSTR

lpszCmdLine)

{

oldIsr=getvect(IRQNum);

/* IRQNum指中断号 */

setvect(IRQNum,newIsr);

/* newIsr指新中断服务程序代码 */

return(1);

}

函数setvect()既可在实模式下,也可在保护模式下设置中断处理向量。

上述代码也可以放在一个由用户设置的引出(export)函数中,在应用程序中用户可以调用此引出函数来安装中断服务程序代码。

由于中断可以在任何时刻发生,中断代码必须驻留在内存中,并且在应用程序运行的过程中一直处于某一固定内存中。这一点无论是在实模式还是在保护模式下都是一致的。

在DLL的模块定义文件中应注意:

1.CODE语句为固定代码段,即FIXED;

2.EXPORTS语句要引出被应用程序和其它DLL用作入口点的函数。

三、通信机制

编写实时通信例程关键在于必须认识到,异步事件对应用程序的触发是异步发生的,不在Windows的消息处理机制和多任务范围内。为了使通信例程能够正确地工作,通信例程必须通知Windows有异步事件发生,且不能打断应用程序的任务

[1][2][3][4]

相关文章

我国机械制造业的现状及发展前景论文(精简3篇)

1前言 改革开放以来,我国的制造业在各个方面都取得了全面快速的发展,取得了举世瞩目的成就。然而,与发达国家的先进制造技术相比仍然存在着较大的差距。当前,我国的经济发展正处于极速转型阶段,国家适时提出“...
论文2017-01-01
我国机械制造业的现状及发展前景论文(精简3篇)

生物与海洋论文范文(精选6篇)

生物与海洋论文范文 第一篇(一)污染排放由陆源污染物排放、向海洋中倾倒生活垃圾或排放废水等工业污染物、以及洋底石油开采或航道运输中的石油溢出等问题造成.海洋中的生物接触到这些污染物有的直接被毒死或被间...
论文2016-09-01
生物与海洋论文范文(精选6篇)

IGBT智能化驱动板SCALE(精彩3篇)

摘要:SCALE驱动是瑞士Concept公司生产的IGBT智能化驱动板,可用于驱动和保护IGBT。文中介绍了该IGBT智能化驱动板的主要功能、工作模式和引脚功能,给出该器件的典型应用电路。 &nbs...
论文2012-03-01
IGBT智能化驱动板SCALE(精彩3篇)

软件升级软件的论文【精彩3篇】

1软件升级必须达到的目标 近几年,计算机软件工程的应用领域日益广泛,具体包括各种程序设计语言、数据库技术、软件设计模式、操作和数据指令的标准、应用系统平台和软件开发工具。鉴于传统软件工程存在的诸多缺限...
论文2011-03-04
软件升级软件的论文【精彩3篇】

黄河是怎样调水调沙的论文【最新3篇】

摘要: 20世纪70年代后期,随着治黄实践的不断深入,“上拦下排”的治黄方针暴露出一定的局限性,治黄专家认识到黄河“水少沙多、水沙不平衡”对黄河下游河道淤积的重要影响。首任黄河水利委员会主任、著名水利...
论文2017-08-04
黄河是怎样调水调沙的论文【最新3篇】

哲学对科技创新作用的再认识(经典3篇)

在科技创新成为促进生产力提高、推动社会进步、参与国际竞争、巩固社会主义制度最强有力的手段这一意义日益凸显出来的时候,本文拟从科技工作者的哲学社会科学素质方面,探讨哲学对科技创新的作用,特别是探讨哲学对...
论文2017-08-02
哲学对科技创新作用的再认识(经典3篇)