基于串口通信的考勤管理系统内容摘要:
设和计算机间使用一根数据信号线 ,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。 这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。 相比之下,由于高速率的要求,处于计算机内部的 CPU与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现 CPU 与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计算机时,数据格式由位 (bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。 串行端口的本质功能 是作为 CPU 和串行设备间的编码转换器。 当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位。 在接收数据时,串行的位被转换为字节数据。 在 Windows 环境( Windows NT、 Win9 Windows2020)下,串口是系统资源的一部分。 应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。 串口信号线 串口信号线的一个完整的 RS232C 接口有 22 根线,采用标准的 25 芯插头座(或者 9芯插头座)。 25芯和 9 芯的主要信号线 相同。 以下的介绍是以 25 芯的 RS232C***计算机系毕业设计 10 为例。 : 2脚:发送数据 TXD; 3脚:接收数据 RXD; 4脚:请求发送 RTS; 5脚:清除发送 CTS; 6脚:数据设备就绪 DSR; 20脚:数据终端就绪 DTR; 8脚:数据载波检测 DCD; 1脚:保护地; 7脚:信号地。 : 数据传输速率最大可到 20K bps,最大距离仅 15m. 注:看了微软的 MSDN ,其 Windows API 中关于串行通讯设备(不一定都是串口 RS232C 或 RS422 或 RS449)速率的设 置,最大可支持到 RS_256000,即 256K bps! 也不知道到底是什么串行通讯设备。 但不管怎样,一般主机和单片机的串口通讯大多都在 9600 bps,可以满足通讯需求。 : 大多数计算机应用系统与智能单元之间只需使用 3到 5根信号线即可工作。 这时,除了 TXD、 RXD 以外,还需使用 RTS、 CTS、 DCD、 DTR、 DSR 等信号线。 (当然,在程序中也需要对相应的信号线进行设置。 ) 以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。 (如果应用的场 合需要使用握手信号等,需要对相应的信号线的状态进行监测或设置。 所谓 串行通信 是指外设和计算机间使用一根数据信号线 ,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。 这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。 相比之下,由于高速率的要求,处于计算机内部的 CPU 与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现 CPU 与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计算机时,数据格式由位 (bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。 串行端口的本质功能是作为 CPU 和串行设备间的编码转换器。 当数据从 CPU 经过串行端口发送出去时,字节数据转换为串行的位。 在接收数据时,串行的位被转换为字节数据。 ***计算机系毕业设计 11 在 Windows 环境( Windows NT、 Win9 Windows2020)下,串口是系统资源的一部分。 应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。 C中如何进行 串口通信 通常,在 C中实现串口通信,我们有四种方法: MSCOMM 控件 ,但 这个控件并不是系统本身所带,所以还得注册。 .NET 新推出了一个串口控件,基于 .NET 的 P/Invoke 调用方法实现。 ,可 是 一般都 需 要付费的, 由于这是毕业设计,设计费用不是太充足,所以不给予考虑。 API 写串口通信, 我在刚开始程序设计是有写过一个,但由于写这个控件难度很大,设计时间比较紧,写的那个只能实现基本数字的串口传输,离自己这个考勤程序的要求还有一定距离,所以放弃了同时也浪 费自己不少时间。 最后通过对考勤系统的需求分析,这次我 串口通信用 就选用了 第一种方法 通过MSCOMM 控件 MSCOMM 不是 C.Net 直接提供的串口命令,所以 必须有 文件在你的Windows 的 System32 目录下,而且它必须正确的注册。 我们 可以装 来获得,微软也指出这样不会有冲突。 当然我们可以自己注册而不用装庞大的。 首先在 VB 安装目录下找到下列三个文件 : , ,, 把这三个文件拷贝到 Windows 的 system 目录下(注意 WinNT 下是 System32)。 然后使用 edit 工具编辑一个以 .reg 扩展名的文件,在文件里输入以下的文字 REGEDIT HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. // The MsComm32 Control License follows: HKEY_CLASSES_ROOT\Licenses\4250E8306AC211cf8ADB00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun 然后,存盘。 双击文件就完成了注册。 这样我们就可以在 C中用 MSCOMM 这个控件了。 ***计算机系毕业设计 12 控件简介 MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。 MSComm 控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的 API函数,而且在 VC、 VB、 Delphi 等语言中均可使用。 Microsoft Communications Control(以下简称 MSComm)是 Microsoft 公司提供的简化 Windows 下串行通信编程的 ActiveX 控件,它为应用程序提供了通过串行接口收发数据的简便方法。 具体的来说,它提供了两种处理通信问题的方法:一是事件驱动 (Event- driven)方法,一是查询法。 控件两种处理通讯的方式 MSComm 控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。 在许多情况下,在事件发生时需要 得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。 在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。 OnComm 事件还可以检查和处理通讯错误。 所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。 在编程过程中,就可以在 OnComm 事件处理函数中加入自己的处理代码。 这种方法的优点是程序响应及时,可靠性高。 每个 MSComm 控件对应着一个串行端口。 如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。 在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。 如果应用程序较小,并且是自保持的,这种方法可能是更可取的。 例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的 “ 确定 ” 响应。 控件的常用属性 MSComm 控件有很多重要的属性 ,但首先必须熟悉几个属性。 CommPort 设置并返回通讯端口号。 ***计算机系毕业设计 13 Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen 设置并返回通讯端口的状态。 也可以打开和关闭端口。 Input 从接收缓冲区返回和删除字符。 Output 向传输缓冲区写一个字符串。 下面分别描述: CommPort 属性 设置并返回通讯端口号。 说明 在设计时, value 可以设置成从 1 到 16 的任何数(缺省值为 1)。 但是如果用 PortOpen 属性打开一个并不存在的 端口时, MSComm 控件会产生错误 68(设备无效)。 注意:必须在打开端口之前设置 CommPort 属性。 RThreshold 属性:在 MSComm 控件设置 CommEvent 属性为 EvReceive 并产生 OnComm 之前,设置并返回的要接收的字符数。 说明 当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm 事件。 例如,设置 Rthreshold 为 1,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。 CTSHolding 属性:确定是否可通过查询 Clear To Send (CTS) 线的状态发送数据。 Clear To Send 是调制解调器发送到相联计算机的信号,指示传输可以进行。 该属性在设计时无效,在运行时为只读。 Msm 控件的 CTSHolding 属性设置值: True Clear To Send 线为高电平。 False Clear To Send 线为低电平。 说明:如果 Clear To Send 线为低电平 (CTSHolding = False) 并且超时时,MSComm 控件设置 CommEvent 属性为 EventCTSTO (Clear To Send Timeout) 并产生 OnComm 事件。 Clear To Send 线用于 RTS/CTS (Request To Send/Clear To Send) 硬件握手。 如果需要确定 Clear To Send 线的状态, CTSHolding 属性给出一种手工查询的方法。 详细信息 有关握手协议,请参阅 Handshaking 属性。 SThreshold 属性: MSComm 控件设置 CommEvent 属性为 EvSend 并产生 OnComm 事件之前,设置并返回传输缓冲区中允许的最小字符数。 ***计算机系毕业设计 14 value 整形表达式,代表在 OnComm 事件产生之前在传输缓冲区中的最小字符数。 说明:若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。 若设置 Sthreshold 属性为 1,当传输缓冲区完全空时, MSComm 控件产生 OnComm 事件。 如果在传输缓冲区中的字符数小于 value, CommEvent 属性设置为 EvSend,并产 生 OnComm 事件。 EvSend 事件仅当字符数与 Sthreshold 交叉时被激活一次。 例如,如果 Sthreshold 等于 5,仅当在输出队列中字符数从 5 降到 4 时, EvSend 才发生。 如果在输出队列中从没有比 Sthreshold 多的字符, EvSend 事件将绝不会发生。 Handshake 常数 常数 值 描述 None 0 无握手。 XonXoff 1 XOn/Xoff 握手。 RTS 2 Requesttosend/cleartosend 握手。 RTSXOnXOff 3 Requesttosend 和 cleartosend 握手皆可。 OnComm 常数 常数 值 描述 EvSend 1 发送事件。 EvReceive 2 接收事件。 EvCTS 3 cleartosend 线变化。 EvDSR 4 dataset ready 线变化。 EvCD 5 carrier detect 线变化。 EvRing 6 振铃检测。 EvEOF 7 文件结 束。 Error 常数 常数 值 描述 EventBreak 1001 接收到中断信号 EventCTSTO 1002 Cleartosend 超时 EventDSRTO 1003 Dataset ready 超时 EventFrame 1004 帧错误 EventOverrun 1006 端口超速 ***计算机系毕业设计 15 EventCDTO 1007 Carrier detect 超时 EventRxOver 1008 接收缓冲区溢出 EventRxParity 1009 Parity 错误 EventTxFu。基于串口通信的考勤管理系统
相关推荐
,而是供应链与供应链之间的竞争。 ” ⑥ 当把供应链的整体成本作为控制目标时,企业考虑的是整个供应链的利益,上下游企业之间由原来的供需博弈关系变为供需合作关系:在流通之间合作,减少流转成本;在产品设计之间合作,减少制造成本;在库存方面合作,减少库存成本 „„。 是一种“多赢”的关系。 这个 才是真正意义上的企业成本控制。 (二)企业成本与核心竞争力的关系 企业的核心竞争力可以是多个优势的结合
流管理作为一个新兴的研究领域 ,自然还存在很多问题有待于进一步研究解 决 ,通过分析目前的工作流系统 ,我们主要总结出两点不足汹 : .工作流管理的定义不明确以及缺乏统一的概念模型。 目前工作流管理发展的状况非常类似 予年代初关系数据模型和 ?模型出现 以前数据库管理系统的发展状况 ,大家各持己见 ,没有一个统一的标准 ,所开发的产 品大部分相互之问不兼容
企业人员状 况,该报告必须在申请公司入选后两周内向项目负责人提交报告。 ( 4)项目负责人每个月必须与代理公司进行信息沟通,召开网上招募新经 销商月例会,并将信息传递给奥迪网络部。 ( 5)项目负责人审核代理公司提交的符合条件的申请公司名单和调研报告, 31 必要时可进行实地调查,名单和调研报告经审核后提交奥迪网络部,并作为奥迪 网络决策委员会的资料备案。 通过网上招募新经 销商,可以省时省力
到鲜明的体现。 一些率先进行改革的跨国公司,如宝洁、戴尔、通用等在供应链管理实践中所取得的令人瞩目的成就,吸引了众多的学者和企业参与到供应链管理的研究和实践中,成为近年来国内外广泛关注的热点问题之一。 研究的目的和意义供应链和供应链管理自 20 世纪 80 年代相继问世以来,已经在世界范围内得到学术界、企业界的关注。 学术界不断地致力于发展和完善供应链理论体系,提出有建设性的管理策略
操作风险的方法 ,但是作者只是提出了这一方 ① Jack. L. King. OperationalRisk: MeasuremeniandModeling. JohnWileyandSonsLtd, 2020 ② Patriek De Fontoouvelle, Virginia Dejsus Rueff, Joha S. Jordan, etc. Capital and Risk:
据库,数据库类别包括交通环境数据库、设备状态数据库、设备维修维护数据库、事件记录数据库、告警记录数据库、用户管理数据库等等。 以上数据处理结果应为省监控中心对全省高速公路的宏观协调控制提供依据。 协调控制需求 分析 (1) 协调控制 以下各种事件影响路网交通时需要省监控中心进行协调控制: ① 偶发性交通事件:重大交通事件、车辆抛锚、道路维修、隧道发生火灾等; ② 周期性交通堵塞; ③