《接口技术实验指导书V10.doc》由会员分享,可在线阅读,更多相关《接口技术实验指导书V10.doc(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流接口技术实验指导书V10.精品文档.目 录实验1 模拟数据采集接口 - 2实验2 脉冲数据采集接口 - 8实验3 控制信号输出接口 - 11实验4 数据串行输出接口 - 16实验5 计算机串行接口 - 21实验6 计算机并行接口 - 27实验7 USB数据传输接口 - 32实验1、模拟数据采集接口1.1实验目的1 了解ADC转换器的工作原理。2 掌握ADC的接口实现方法。3 学会编程实现数据采集和简单处理。1.2实验内容1 利用单片机连接ADC3202构成电压测量显示系统。2 编程实现数据采集、记录和显示。3 通过标度变换实现数字电压表的功能
2、。4 扩展测量范围到10伏。5 扩展测量精度到0.1毫伏。1.3参考资料1 模拟信号测控系统总体设计方案如图1.1所示是温度测量控制系统的组成框图。单片机89C51程序数据显示键盘数据采集接口控制报警电路信号处理图1.1 温度测量控制系统框图温度传感器数据传输温度传感器 被放置在被测量点上,将温度值变换成为电压信号;信号处理电路 将传感器输出的电压变成适合数据采集范围的电压信号;数据采集接口 将电压转换成为数值并送入单片机系统;单片机系统 完成采集电压到温度的转换,温度数据的显示,温度控制目标的设定,测量温度和设定温度的比较以及控制信号的计算;控制报警电路 通过改变加热功率实现对温度的控制;键
3、盘和显示电路 实现参数的设置和数据显示; 数据传输电路 完成数据的远程传输。2 主程序流程设计初始化模块包括:设置程序参数初值,设置定时器参数,设置串口参数,设置中断入口。显示键盘扫描完成显示器的段码和位码的输出和键盘码的输入,显示及延迟时间约1.6mS,每秒扫描显示器625次,每次1位,每位显示器每秒扫描约156次,其它事件的处理间隔约1.6mS,这个模块是无条件执行模块。数据采集模块完成读取ADC转换结果,温度值计算,控制量计算,显示BCD码的转换,发送数据转换,发送过程由中断完成。接收数据处理用来处理来自上位机的命令。键码分析处理来自控制面板的操作命令。 入口初始化参数定时器串口波特率数
4、据采集温度及控制计算BCD转换数据发送显示键盘扫描延迟子程序1秒时间到接收数据处理有接收数据吗NN键码分析模块0.05秒到N 图1.2 主程序流程3数据采集程序设计模拟转换接口采用MCP3204 串行12位ADC。控制引脚连接:CS:P1.7,DOUT:P1.6,DIN:P1.5,CLK:P1.4输入参数:通道号,包含在累加器A中。输出参数:ADC转换结果BA, B高字节,A 低字节。MCP3204采样1次需要输入 5个控制位,当控制位输入完成后留1个空位的时间开始输出数据,数据长度是12个位,每次采集共18个时钟周期。每个时钟的上式沿数据进入ADC转换器,每个时钟的下降沿从ADC输出1位转换
5、的结果。MCP3204有4个输入通道,可以单端输入方式,也可以差动输入方式,控制位的格式如图1.4所示。采集CH0控制信号是08H,CH1控制信号09H,CH2控制信号0AH,CH3控制信号0BHMCP3204输出的数据高位在前,低位在后。 图1.3 MCP3204 ADC接口时序图1.4 控制位功能表入口CS 置低循环次数10输出1位数据输出时钟读取1位数据循环次数0高字节保存到B置循环次数8输出1位数据输出时钟读取一位数据CS置高返回循环次数0NN 图1.5 数据采集程序流程 引脚连接定义:CS EQU P1.7DOUT EQU P1.6DIN EQU P1.5CLK EQU P1.4;M
6、CP3204数据采集子程序(共参考);入口参数BA- -ACC.3 1单端 0 差动;- ACC.2=0 ACC.1 ACC.0 通道号MCP3204: CLR CS SWAP A SETB C ;起始位 MOV R2,#10ALP1: MOV DIN,C SETB CLK ;上升沿数据进 CLR CLK ;下降沿数据出 MOV C,DOUT RLC A DJNZ R2,ALP1 ANL A,#0FH MOV B,A MOV R2,#8 MOV A,#0FFHALP2: MOV DIN,C SETB CLK CLR CLK MOV C,DOUT RLC A DJNZ R2,ALP2 SETB
7、CS RET1.4测试思考题1 该测量系统的最大采集速度是多少?制约采集速度的主要因素有那些?2 提高测量精度的方法是什么?给出扩展精度到0.1mV的设计方案。3 如果在测控范围不变的情况下提高小信号测量精度应如何实现?实验2、脉冲数据采集接口2.1实验目的1 了解脉冲信号的测量原理。2 掌握单片机定时/计数器的使用方法。3 掌握提高测量精度的实现方法。2.1实验内容1利用单片机的中断和定时器和实现脉冲周期的测量。2利用单片机的定时/计数器实现脉冲频率的测量。3 实现脉冲宽度的测量。4 实现电机转速的测量。2.3参考资料1 脉冲信号测量基本方案如图2.1所示是温度测量控制系统的组成框图。单片机
8、89C51程序数据显示键盘信号整形控制电路传感器图2.1转速测量控制系统框图数据传输电机传感器 将电机的转速转换成为电压脉冲信号,脉冲信号的频率和宽度与电机的转动速度有关;信号整形电路 将传感器输出的电压变成标准脉冲信号;单片机系统 完成脉冲信号参数的测量,将测量的脉冲参数变成电机的转速显示出来;控制电路 通过PWM实现对电机转速的控制;键盘和显示电路 实现参数的设置和数据显示; 数据传输电路 完成数据的远程传输。2 脉冲周期测量原理数据锁存器16位计时器IEFosc/12外部脉冲中断服务清零锁存中断中断T 计数时间 图2.2 脉冲周期测量原理3 脉冲频率的测量数据锁存器16位计数器16位计时
9、器Fosc/12外部脉冲中断服务清零锁存软件1/20频率F=计数器值N/计数时间T当定时器将为50mS 分频20次为1秒,F=N 图 2.3 脉冲频率测量原理4 脉冲宽度的测量数据锁存器16位计时器IEFosc/12外部脉冲中断服务清零锁存中断中断计数时间门控 图2.5 脉冲宽度测量原理5 脉冲频率测量程序(参考)中断程序定时器初值重装计数值-1=0读计数器值保存中断返回NYT0_INT:CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 DJNZ 40H,T0E MOV 40H,#20 CLR TR1 MOV 42H,TH1 MOV 43H,TL1 MOV
10、 TH1,#0 MOV TL1,#0 SETB TR1T0E: RETI频率测量程序说明:在12M时钟下定时器0的定时时间为50mS,40H单元为20次计数器,采用减计数工作方式,当40单元减为“0”即表示1秒到。外部脉冲计数器采用计数器1,测量结果保存在片内存储器的42H和43H单元。2.4 思考题1 计数器的测量精度为1,计数相对误差小于1%的有效计数范围。2 如何提高转速测量的精度。3 单片机在12M时钟时计数器能够测量的最高频率是多少?如何实现更高频率的测量?实验3、控制信号输出接口3.1实验目的1 了解控制原理和控制信号的输出方法。2 掌握模拟控制信号的输出方法。3 掌握脉冲控制信号
11、的实现方法。3.2实验内容1模拟控制信号输出接口的实现。2利用单片机的定时/计数器输出PWM信号。3 高电压控制接口的实现。4 实现电机转速的控制。3.3参考资料1 控制的基本概念指有组织的系统根据内部的变化而进行调整,使自身保持某种特定状态的活动。控制有一定的方向和目标。其作用在于使事物之间、系统之间、部门之间相互作用,相互制约,克服随机因素。控制分为开关控制和连续控制,开关控制是对事物或系统状态的控制;连续控制是对事物或系统的变化过程的控制。继电器是一种电磁开关,是开关控制常用的器件,具有控制功率大,被控对象与控制系统隔离的特点,但是动作有延迟,不适合频繁动作的场合。控制过程实质上就是一个
12、负反馈的过程,包括:基准、取样(测量)、比较、误差放大和信号输出四个主要环节。基准是希望达到的目标;取样(测量)是获取当前的结果;比较是得到当前结果和目标的差距,开关控制只需输出要大于或小于的结果,连续控制需要输出误差的数值大小;误差放大和信号输出是对外部事物施加干预,改变事物的变化规律使其向着有利于要求的目标发展。连续控制有模拟运算电路和计算机数字运算两种实现方法,在模拟运算的控制系统中,基准是以模拟大于的形式表示的,在数值运算的系统中基准是以数值的形式表示的。误差放大控制输出控制对象测量电路基准电压测量结果图3.1 模拟运算控制系统减法运算电路控制参数计算控制输出控制对象测量电路基准值测量
13、结果数据图3.2 计算机控制系统减法数值运算从误差到控制信号的输出有多种计算方法,可以是线性的也可以是非线性的,如果用电路实现的模拟运算控制系统中,只能完成比较简单的运算。在计算机控制系统中可以实现较复杂的运算关系。最经典的是控制算法是:PID算法,P比例控制,I积分控制,D微分控制。比例控制是一种线性运算,根据误差的大小输出控制信号;积分运算是为了减小控制误差,提高控制精度,由于积分运算增加了测量时间,使误差放大,表现的更加突出了,但是延迟了测量周期,降低了控制系统的反应速度;微分控制从测量结果或从误差中提取信号的变化率,可以实现变化规律的预测,从而实现提前控制,可以增加系统的反应速度。在数
14、值化的控制系统中PID算法可以很方便第分阶段选择,相互之间的比例关系也可以分阶段设置。模糊控制算法、神经网络算法、最优化算术等解决的都是误差与控制信号之间的转化问题,都是按不同的方法对控制规律进行预测。比例运算 P信号输出求和运算基误差控制信号 或控制参数图3.3 PID运算过程积分运算 I微分运算 D2 模拟信号输出接口图3.4 模拟输出接口电路模拟信号接口是模拟运算的控制信号和计算机控制系统之间的接口,通过DAC电路输出模拟电压作为控制系统的比较标准,实现对过程的控制。一般控制精度低于检测精度,所以在大多数情况下8位的控制接口是可以满足控制精度要求的。图3.4所示的模拟输出接口采用负的参考
15、电压,使输出信号为正值,输出值越大,输出电压越高,采用了偏置电阻R1将输出电压下拉使输出电压为双极性信号。输出信号的大小和极性要根据实际控制对象的要求合理设置。3 PWM脉冲控制信号产生原理脉冲信号输出的电路比较简单,容易隔离,对于高电压控制对象的场合特别适合。常用的是PWM(脉冲宽度调制)信号。PWM信号是脉冲周期一定,脉冲宽度随控制要求变化的控制信号。首先根据控制对象的变化周期确定控制信号的周期,一般控制周期大于等于控制对象的反应周期(当控制信号发生变化到输出结果产生明显变化所需要的时间);对控制信号而言,在一个控制周期内可以有多个信号周期,但是在一个控制周期内控制信号的参数保持不变。比如
16、温度控制,温度的变化比较慢(与加热的功率和被加热的对象体积、比热、热传导速度有关),通常采用50Hz的220伏电源作为加热的能源。采用周期为1秒的控制信号,每秒钟有100个做功的周期,功率的控制精度可以达到1%,如果以2秒为周期可以达到0.5%。为了实现高电压的隔离和减小对电网的污染,通常采用带过零检测的光耦合器件如MOC30XX,电路如图3.5所示。当控制信号为低电平时,光耦合导通,可控硅U7导通,负责电阻R3上获得功率发热,当控制信号为高电平时,R3中无电流,停止加热。 图3.5 带过零检测的交流高电压控制电路PWM信号有两个参数,1是周期,2是占空比,对幅度的要求由外部电路决定,采用1个
17、定时器可以实现PWM信号的输出,原理如图3.6所示。设T=2秒,占空比变化率为0.5%,占空比参数1199之间变化,因为定时器的值不能设为“0”,定时器定时周期为50mS。用1个逻辑变量指示输出电平的高低。当输出逻辑1是,维持时间为:占空比的值,当输出低电平时,维持时间为:周期-占空比值,两次输出之和为控制信号的周期。PWM: PUSH ACCCLR TR0MOV TH0,#03CH MOV TL0,#0B0HSETB TR0DJNZ 40H,PWM_ENDCPL 78HJNB 78H,PW0PW1:MOV 40H,PWM AJMP PWM_ENDPW0:MOV A,#256H SUBB A,
18、PWMMOV 40H,APWM_END:POP ACCRETI计数器0中断周期50mSPWM为占空比40H 计数器PWM输出参考程序定时器初值重装定时器中断状态取反=1计数值=占空比高电平时间计数值-1=0计数值=周期-占空比低电平时间中断返回YYNN图3.6PWM输出流程当控制精度要求不是太高时,输出频率比较高的PWM信号,经过低通滤波可以得到直流电压信号,实现DAC的功能。3.4 思考题1 要实现对直流电机转速的控制PWM信号的频率应改选择多少比较合适。2 要实现对交流电机转速的控制应该选择什么样的控制方法比较合适。3 用单片机的引脚输出信号驱动一个12伏的继电器,设计并画出电路图。实验4
19、 数据串行输出接口4.1 实验目的 1 了解多点数据传输原理; 2 掌握实现多机数据传输的编程方法;4.2 实验内容 1 编写并调试数据串发送程序,数据串的长度可变,数据串以0X0D结束; 2 编写并调试串口的数据接收程序,接收数据串长度016字节可变; 3 组合以上两个程序的功能实现当接收到规定的字符串时发送数据; 4 增加控制功能,当接收到规定的字符串控制某引脚置位或复位。 5 增加地址识别功能,实现多点传输。4.3 参考资料1串行数据发送接收的基本流程串口中断保护现场清除发送标志RI1?发送数据指针1发送出界?发送结束?恢复现场中断返回发送结束符置结束标志置结束标志清除接收标志接收结束?
20、接收出界?接收数据处理接收指针复位保存接收数据接收指针1YYYYY图4.1 串口中断字符串发送接收程序流程设置发送缓冲区 16个字节,接收缓冲区16个字节,接收指针1字节,发送指针1字节。采用中断方式工作,中断程序程序流程如图4.1所示。2 上位机与下位机的通信关系上位机称为主机,下位机称为从机,上位机主动发出命令,下位机根据命令的要求在规定的时间内作出响应,上位机与下位机通信流程如图4.2所示,命令分析流程如图4.3所示。开始初始化发送命令发送采集命令数据返回设备号+1设备号N设备号=1错误处理显示数据显示界面接收操作命令其他命令开始初始化采集并发送数据采集并发送数据自动发送数据收到命令吗?
21、地址符合?时间到?数据采集命令?其他命令处理A上位机B下位机NNNNNNNYYYYYYYY图4.2 上位机下位机通信流程命令格式如下:上位机发送命令结构:地址代码1字节命令代码1字节数据n字节结束符 0X0D下位机发送数据结构:地址代码1字节状态代码1字节数据n字节结束符 0X0D开始地址符合?通用地址?命令=A命令R命令=W命令=空输出应答信息输出数据接收数据命令 RXX命令WXX=DD地址处理地址处理错误命令处理返回YYYNNYYYYYNN 图4.3 命令分析流程图3 串行通信接口电路 单片机串行通信的物理层直接输出的是TTL的逻辑电平,位机是经过反相驱动的12伏的逻辑电平。两者要实现连接
22、必须进行反相和电平转换。常用的器件是MAX232,这个器件的特点是除具有信号逻辑的转换置位,还具有电源转换功能,将5伏电源变成10的电源,大大简化了接口的供电电路。采用光耦合的转换电路,使主机和从机相互隔离,避免带电连接造成接口损坏,PC一侧的正电源来自接口的状态信号,负电源来自发送引脚的无信号状态,这就造成不能实现全双工的通信,即同时发送和接收,但是大多数的通信是主从应答方式,只需要半双工就可以了,由于光耦合的关闭时间较长,通信的波特率受到限制,经测试9600的波特率工作正常。 4.4a 串口逻辑电平转换电路 图4.4b 带隔离的串口逻辑转换电路4 参考程序 串口中断程序说明:发送数据缓冲区
23、40H-4FH,40H为发送指针,接收数据缓冲器50H-5FH,50H为接收指针,0DH为数据串结束控制符,因为串口每次中断只表示1个字符的发生和接收,所以设置为70H、71H为串标志,位71H=1表示正在发送之中,71H=0表示数据串发送结束;位70H=1表示数据串接收完成等待处理。 COM: PUSH 00 PUSH A JB RI,COMR CLR TI JNB 71H,TE1 MOV R0,40H CJNE R0,#4FH,COMT1 MOV SBUF,#0DH CLR 71H AJMP COMECOMT1:MOV A,R0 MOV SBUF,A INC 40H CJNE A,#0DH
24、,TE1 MOV 40H,#41H CLR 71HTE1: AJMP COMECOMR:CLR RI MOV A,SBUF MOV R0,50H MOV R0,A INC 50H CJNE A,#0DH,COME MOV 50H,#51H SETB 70HCOME:POP A POP 00H RETI 4.4 思考题 1 数据串的发送与字节发送相比,在编程时需要考虑哪些问题?2 在1对多点通信与点对点的通信相比,在编程时需要考虑哪些问题? 3 PC机的串口输出信号和单片机的串口输出信号有什么差别?实验5 计算机的并行接口5.1实验目的1、了解计算机并行接口的电路结构和接口信号特性。2、掌握并行
25、接口的寄存器读写方法。3、学会并行接口的基本使用方法。5.2实验内容1、实现数据寄存器和控制寄存器的读写操作。2、实现接口的外部数据输入操作。3、实现状态寄存器的定时读操作。5.3参考资料1 计算机并行接口概述并口的寄存器地址序号寄存器名并口1地址并口2地址1数据输出寄存器378H278H2数据输入寄存器378H278H3控制输出寄存器37AH27AH4状态输入寄存器379H279H状态寄存器描述D7D6D5D4D3D2D1D0BUSACKPERRORSELECTFAULTIRQ保留保留控制寄存器描述D7D6D5D4D3D2D1D0保留保留DIRACKSEL_ININITAUTOFDSTROB
26、E并行接口信号描述DB25引脚号信号线名称输出地址输入地址功能描述1STROBE#37AH-D0数据锁存29D0D7378H378H双向数据传输10ACK#379H-D6应答产生IRQ11BUSY379H-D7打印机忙状态12PERROR379H-D5打印机错误13SELECT379H-D4外设联机状态14AUTO FEED#37AH-D1自动换行15FAULT#379H-D3错误16INIT#37AH-D2初始化17SLCTIN#37AH-D3选择打印机18-25GNDINIE中断允许37AH-D4中断使能信号DIR37AH-D5线路/寄存器2并行接口原理构框图ISA总线双向数据缓冲地址译码
27、电路数据输出寄存器378数据输入寄存器378控制输出寄存器37A控制输入寄存器27A状态输入寄存器3791 1312 25D0-D7A0-A9 IOR IOWDIRD0-D7D1D3D3D7D5 DIRD4中断允许D0-D7IRQ 中断信号D6 ACKAEN写378读378写37A读37A读379DB25打印机接口 图5.1 打印机接口框图3 并行接口的高级语言程序设计1 驱动程序的生成 使用WINDRIVER(WD1000)驱动生成工具。A 安装后启动程序,在驱动对象选择ISA ParallelPort选项,选择界面如图5.2所示。B选择下一步产生测试界面,对接口功能进行测试;C选择快捷图标
28、的第六个生成代码,选择语言类型和编译工具后,点击“OK”并输入程序名称即生成驱动程序。 图5.2 驱动接口选择界面图5.3 代码生成选择界面3 编辑程序 打开选中的编辑器,调入生成的驱动程序,即可看到基本的接口函数。如Viuasl Basic语言程序如下:从端口读一个字节的函数Function PP_ReadByte(hPP As PP_HANDLE, dwOffset As Long) As Byte Dim Trans As WD_Transfer Trans.dwPort = hPP.base_addr + dwOffset Trans.cmdTrans = RP_BYTE WD_Tra
29、nsfer hPP.hWD, Trans PP_ReadByte = Trans.dwLowDataTransferEnd Function写一个字节到端口的函数Sub PP_WriteByte(hPP As PP_HANDLE, dwOffset As Long, Data As Byte) Dim Trans As WD_Transfer Trans.dwPort = hPP.base_addr + dwOffset Trans.dwLowDataTransfer = Data Trans.dwHighDataTransfer = 0 Trans.cmdTrans = WP_BYTE WD
30、_Transfer hPP.hWD, TransEnd SubhPP.base_addr 接口基地址dwOffset 端口寄存器地址偏移量使用这两个函数就可以完成对端口寄存器的读和写操作。如写一个数据到数据端口寄存器Sub PP_WriteData(hPP As PP_HANDLE, Data As Byte) PP_WriteByte hPP, PP_data_OFFSET, DataEnd Sub从数据端口寄存器读一个数据Function PP_ReadData(hPP As PP_HANDLE) As Byte PP_ReadData = PP_ReadByte(hPP, PP_data
31、_OFFSET)End Function 图5.4 并行接口测试操作界面使用说明:选择测试打印口基地址378H 数据寄存器有写字节操作和1操作两种方法,白色背景表示该位数据是“0”,蓝色表示该位数据是“1”。控制端口有字节写操作和点击,当鼠标左键点击对应位时,该位的状态取反。状态寄存器位只读。从端口读一个字节Function PORT_ReadByte(hPORT As PORT_HANDLE, addrSpace As Integer, dwOffset As Long) As Byte Dim data As Byte Dim pData As Long PBYTE If hPORT.ca
32、rdReg.Card.Item(addrSpace).Item = ITEM_MEMORY Then pData = (hPORT.cardReg.Card.Item(addrSpace).dw4 + dwOffset) Call memcpy(VarPtr(data), pData, LenB(data) read from the memory mapped range directly Else Call PORT_ReadWriteBlock(hPORT, addrSpace, dwOffset, True, VarPtr(data), 1, PORT_MODE_BYTE) End I
33、f PORT_ReadByte = dataEnd Function向端口写一个字节Sub PORT_WriteByte(hPORT As PORT_HANDLE, addrSpace As Integer, dwOffset As Long, data As Byte)Dim pData As Long PBYTEIf hPORT.cardReg.Card.Item(addrSpace).Item = ITEM_MEMORY Then pData = (hPORT.cardReg.Card.Item(addrSpace).dw4 + dwOffset) Call memcpy(pData,
34、VarPtr(data), LenB(data) write to the memory mapped range directlyElseCall PORT_ReadWriteBlock(hPORT, addrSpace, dwOffset, False, VarPtr(data), 1, PORT_MODE_BYTE)End IfEnd Sub写字节函数的应用方法Private Sub 写端口_Click()data = &h + Text7.TextCall PORT_WriteByte(hPORT, 0, &H2, data)End Sub读端口函数的应用方法Private Sub 读
35、端口_Click()data = PORT_ReadByte(hPORT, 0, &H2)Text6.Text = Hex(data)End Sub5.4 思考题1 描述并行接口的数据数据输出过程和数据输入过程。2 设计一个并行接口与51单片机的连接电路,实现双向数据传输。3 设计一个并行接口与DAC0832的连接电路,说明数据输出过程。实验6 计算机串行接口6.1实验目的1了解串行数据传输的基本原理2认识串行口输出的RS-232编码波形。3学会串行接口的基本使用方法。6.2实验内容1设计基本的用户操作界面;2实现串行接口的波特率设置,测量1个字符的实际输出波形;3实现串行接口的数据发送和收功
36、能。6.3参考资料1.控件Mscomm基本描述MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm 控件提供下列两种处理通讯的方式:第一种方式(中断方式) 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。表6.1通讯错误表常数值描述comEventBre
37、ak1001接收到一个中断信号。comEventCTSTO1002Clear To Send 超时。在系统规定时间内传输一个字符时,Clear To Send 线为低电平。comEventDSRTO1003Data Set Ready 超时。在系统规定时间内传输一个字符时,Data Set Ready 线为低电平。comEventFrame1004帧错误。硬件检测到一帧错误。comEventOverrun1006端口超速。没有在下一个字符到达之前从硬件读取字符,该字符丢失。comEventCDTO1007载波检测超时。在系统规定时间内传输一个字符时,Carrier Detect 线为低电平。C
38、arrier Detect 也称为 Receive Line Signal Detect (RLSD)。comEventRxOver1008接受缓冲区溢出。接收缓冲区没有空间。comEventRxParity1009奇偶校验。硬件检测到奇偶校验错误comEventTxFull1010传输缓冲区已满。传输字符时传输缓冲区已满comEventDCB1011检索端口的设备控制块 (DCB) 时的意外错误表6.2 通讯事件表常数值描述comEvSend1在传输缓冲区中有比 Sthreshold 数少的字符。comEvReceive2收到 Rthreshold 个字符。该事件将持续产生直到用 Input
39、 属性从接收缓冲区中删除数据。comEvCTS3Clear To Send 线的状态发生变化。comEvDSR4Data Set Ready 线的状态发生变化。该事件只在 DST 从 1 变到 0 时才发生。comEvCD5Carrier Detect 线的状态发生变化。comEvRing6检测到振铃信号。一些 UART(通用异步接收 传输)可能不支持该事件。comEvEOF7收到文件结束(ASCII 字符为 26)字符。第二种方式(查询方式) 在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,
40、如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。 每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。可以在 Windows“控制面板”中改变端口地址和中断地址。表6.3 控件主要属性属性描述CommPort设置并返回通讯端口号。Settings以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。PortOpen设置并返回通讯端口的状态。也可以打开和关闭端口。Input从接收缓冲区返回和删除字符。Output向传输缓冲区写一个字符串。InBufferCount接收缓冲区中等待的字符数Break设置或清除中断信号的状态InBufferSize设置并返回接收缓冲区的字节数InputMode设置或返回 Input 属性取回的数据的类型。0文本 1二进制2 计算机的串行接口 计算机的串行接口采用DB9连接器,引脚的排列如表6.1所示,各引脚的功能见表6.4,简单的全双工连接方法是2、3、5,在软件编程上可以考虑硬件握手或忽略硬件握手,如果程序考虑了硬件握手,又为了线路简单,可以在接口中将4、6相互连接,将7、8相互连接,构成自问自答得虚握手连接方式,保证软件程序的正常运行。表6.4 串口引脚排列编