RS232C控制代码(详细)

合集下载

rs232c 标准(一)

rs232c 标准(一)

rs232c 标准(一)RS232C 标准简介RS232C是针对串行通信设计的标准,在计算机领域应用十分广泛。

传输方式RS232C依靠单个传输线,实现串行数据传输。

通信双方互相发送和接收数据。

在实际应用中,通常使用9针或25针的连接器。

数据格式RS232C标准规定了数据的传输格式。

其中包括数据的位数、校验位、停止位等。

具体格式如下:•起始位:逻辑0•数据位:通常为8位,可变•奇偶校验位:奇偶校验可选。

如果选择了奇偶校验,则在数据位后添加一个校验位,以使数据位的1的个数为奇数或偶数。

•停止位:通常为1个或2个,表示数据传输结束。

RS232C和USB的比较虽然RS232C标准在计算机领域应用广泛,但它已经逐渐被USB(通用串行总线)标准替代。

与RS232C相比,USB的优势包括:•传输速度更快•支持热插拔•更加灵活尽管如此,即使在现今USB普及的环境中,RS232C仍然具有许多应用领域,如军事、工业控制等。

总结RS232C标准的广泛应用,成为了计算机通信领域的一个里程碑。

尽管越来越多的设备使用USB接口,但RS232C标准仍然在许多领域保持着它的地位。

RS232C的应用领域由于RS232C具有传输距离远、抗干扰能力强、简单易用等优势,在许多应用领域广泛应用。

以下是几个常见领域:工业控制在工业控制领域,许多设备(如PLC、传感器等)采用RS232C接口进行通信。

由于现场条件的复杂性,RS232C抗干扰能力强的优点能够保证数据传输的稳定性。

数据采集在数据采集领域,RS232C通信通常是采集器与采集对象之间通信的主要方式。

例如,通过RS232C连接计算机和温湿度计,实现数据的采集和分析。

通讯设备RS232C也被许多通讯设备所采用。

例如,调制解调器、路由器、交换机等设备,都支持RS232C串口连接。

总结RS232C成为了串口通信的事实标准,并且在过去几十年一直保持着广泛的应用。

尽管USB接口取代了RS232C的一些应用,但RS232C在特定领域内仍然被广泛使用。

投影机RS232控制代码

投影机RS232控制代码
POWER OFF】四个代码 ⑥ 将输入的代码先作保存 ⑦ 最后选择合适的COM口,并按【发送】按钮,将RS232
代码写入到中控中 ⑧ 如果厂家提供的是ASAII码,需要先作ASAII������ 16进
制码的转换,方法是,将ASAII码输入到【VGA、VIDEO、 POWER ON、POWER OFF】四个代码窗口中,按一下 【ASAII������ 16进制】按钮,原来输入的四个窗口中的代 码就转换成16进制码,根据厂家提供的代码要求,可能需 要加上象起始码、确认码之类的代码(不同厂家不一定一 样),再进行保存、发送等步骤直至控制码录入完成。
当所有控制命令全部写入后,关闭写码程 序。
二、投影机RS232控制代码的录入
数据库中没有您需要的投影机RS232控制代 码时,您需要在投影机使用手册中或向投 影机厂家索取相关代码,按以下方法输入 到以下窗口中:
① 先点击【添加型号命令】按钮,出现以上窗口 ② 输入投影机的品牌和型号 ③ 在【波特率选择】下拉窗口中选择控制代码的波特率 ④ 在【校验类型】中选择厂家提供的校验类型 ⑤ 再输入提供的【VGA、VIDEO、POWER ON、
RS232控制线连接
将后面板上投影机控制口的P 5(数据地)、P 2 (控制时为发送数据),分别与投影机PC控制口 (投影机上标有RS232C、CONTROL或PC CONTROL,有方型串口或圆型串口)中定义的 数据地和数据接收脚相连即可(注:投影机定义 的数据发送脚不要连接)。
单击【查找】按钮,出现以下窗口:
在查找关键词中输入您的投影机的品牌型 号,如上图所示。如果数据库中有您的品 牌型号投影机,那么在【选择投影机型号】 窗口中就出现该型号,或在【选择投影机 型号】下拉菜单中选择您需要的型号,如 下图:

MSDOS下如何编程控制RS232串口详细资料及源程序

MSDOS下如何编程控制RS232串口详细资料及源程序

以上信号在通讯过程之中可能会被全部或部分使用,最简单的通讯仅需 TXD 及 RXD 及 SG 即可完成,其 他的握手信号可以做适当处理或直接悬空,至于是否可以悬空这视乎你的通讯软件。比如说,如果使用 DOS 所提供的 BIOS 通讯驱动程序,那么,这些握手信号则需要做如下处理,因为 BIOS 的通讯驱动使用 了这些信号。如果使用自己编写的串行驱动程序则可以完全不使用这些握手信号(详见下面有关章节) 。 PC 机一般使用 8250 或 16550 的作为串行通讯控制器,8250 及 16550 的管脚排列如下: 8250(16550)的寄存器如下表所示: 基地址 0 0 0 1 1 2 2 3 Write Read Read/Write Read/Write Read/Write Read Write Read/Write 读/写 IER IIR FCR LCR 寄存器缩写 注释 发送保持寄存器(DLAB=0) 接收数据寄存器(DLAB=0) 波特率低八位(DLAB=1) 中断允许寄存器 波特率高八位(DLAB=1) 中断标识寄存器 FIFO 控制寄存器 线路控制寄存器
MS-DOS 下如何编程控制 RS232 串口详细资料及源程序
PC 机与单片机的通讯 大多数的电脑设备都具有 RS-232C 接口, 尽管它的性能指标并非很好。 在广泛的市场支持下依然常胜不衰。 就使用而言,RS-232 也确实有其优势:仅需 3 根线便可在两个数字设备之间全双工的传送数据。不过, RS-232C 的控制要比使用并行通讯的打印机接口更难于控制。RS-232C 使用了远较并行口更多的寄存器。 这些寄存器用来实现串行数据的传送及 RS-232C 设备之间的握手与流量控制。本文将分别描述 PC 机及单 片机 MCS-51 的串行通讯的原理及具体的软件设计。 (1)RS-232C 介绍与 PC 硬件 RS-232C 使用-3 到-25V 表示数字“1” ,使用 3V 到 25V 表示数字“0” ,RS-232C 在空闲时处于逻辑“1” 状态,在开始传送时,首先产生一起始位,起始位为一个宽度的逻辑“0” ,紧随其后为所要传送的数据, 所要传送的数据有最低位开始依此送出,并以一个结束位标志该字节传送结束,结束位为一个宽度的逻辑 “1”状态。 PC 机一般使用 8250 或 16550 作为串行通讯的控制器,使用 9 针或 25 针的接插件将串行口的信号送出。 该插座的信号定义如下: DB-25 2 3 4 5 6 7 8 20 22 DB-9 3 2 7 8 6 5 1 4 9 信号名称 TXD RXD RTS CTS DSR SG DCD DTR RI 方向 输出 输入 输出 输入 输入 输入 输出 输入 含义 数据发送端 数据接收端 请求发送(计算机要求发送数据) 清除发送(MODEM 准备接收数据) 数据设备准备就绪 信号地 数据载波检测 数据终端准备就绪(计算机) 响铃指示

大多投影机RS232控制码

大多投影机RS232控制码

所有投影机的232串口码关于串口控制投影机的操作方法的几个步骤1、将中控接上电源,连好控制面板2、将中控主机串口(RS232)接口与电脑主机COM口连接好3、将中控系统随机的光盘放入电脑中,打开“串口写码程序”软件4、写码程序设置处理:A:选择电脑的COM口,注意该端口不能被占用掉,否则无法与中控通讯B:选择输入码格式,16进制还是ASCII码C:选择波特率D:点击“电源开”键,并清空输入窗,按照投影机灯泡“电源开”的标准串口码输入到窗口中,并点击“确认”键后再点击“发送”键,此时应在控制面板上听到“嘟”—“嘟”两声接收蜂鸣,表示该码发送并成功接收到中控芯片中。

E:依次将“电源关”、“计算机”、“视频”键的串口码输入到中控中。

F:将中控主机控制投影机端口选择“串口控制”接口,并将控制接插头插入,在投影机机身上“computer”控制口或称“RS232”控制接口上找到正确的接线端,一般投影机控制脚被明确表示出来,如三洋投影机,NEC,等为8针圆脚(4脚接地,1脚接收等)。

爱普生是标准九针口 (2脚接受,5脚接地) ..........市场上现流行的RS232接口有两种:一种是标准9针接口,另一种是圆孔8针接口。

串口写入程序文件夹里文件的说明:1、串口写码程序为单机的中控写码程序,此程序不可导入和导出串口码2、串口写码程序_通用为通用的写码程序。

A:根据选择可对单机的中控和网络中控进行写串口码,程序中里有个机器类别选择即为此功能,现此中控为单机的中控;B:在原来的基础上增加了串口码文件可导入和串口码可导出到文件的功能。

在没有串口码文件时,先将串口码输入到投影机代码输入窗中,接着按导出代码,然后将其取一文件名保存好,依次将投影机的所有串口码导出并保存,有了串口码文件后,将程序左边所有的设置设好,接着点导入代码按钮,选择相应的串口代码文件后,出现一对话窗“导入结束,按“发送”开始”,此时点“OK”,再点发送即可,发送串口码时,会有声音提示,到最近一声响时串口代码就发送好了。

「51单片机」RS232串口通信代码分析

「51单片机」RS232串口通信代码分析

「51单⽚机」RS232串⼝通信代码分析想来想去不知道要怎么样把232串⼝通信说清楚,想想还是直接把代码分析⼀遍吧...重点是“常⽤波特率与定时器1的参数关系”这张表格!波特率的设置很重要!⼀、串⼝初始化void usart_init(){SCON = 0x50; //REN=1允许串⾏接受状态,串⼝⼯作模式1TMOD = 0x20; //定时器⼯作⽅式2PCON = 0x00;TH1 = 0xFD; //波特率9600、数据位8、停⽌位1。

效验位⽆ (11.0592M)TL1 = 0xFD;ES = 1; //开串⼝中断EA = 1; //开总中断TR1 = 1; //启动定时器}SCON寄存器1.SM0、SM1:串⾏⼝⼯作⽅式控制位2.SM2:多机通信控制位3.REN:允许接收位4.TB8:发送接收数据位85.RB8:接收数据位86.TI:发送中断标志位 TI=1表⽰帧发送结束7.RI:接收中断标志位 RI=1表⽰帧接收完成1.GATE:门控制位 GATE=0,仅受TRX控制 GATE=1,受TRX和外部中断引脚共同控制2.C/T:定时器模式和计数器模式选择器 C/T=1,计数器 C/T=0,定时器3.M1、M0:⼯作⽅式选择位PCON寄存器SMOD:是波特率是否加倍的选择位。

SMOD=0时:波特率不加倍。

SMOD=1时:波特率加倍。

⼆、串⼝数据发送void send_data(unsigned char a){SBUF = a; //SUBF接受/发送缓冲器while(0 == TI); //每次等待发送完毕,再执⾏下⼀条TI=0; //⼿动清0}SBUF:有两个物理上独⽴的接收、发送缓冲器SBUF,它们占⽤同⼀地址99H ;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产⽣重叠错误。

TI:发送中断标志位 TI=1表⽰帧发送结束三、串⼝中断程序void ser_int (void) interrupt 4using1{if(1 == RI) //RI接受中断标志{RI = 0; //清除RI接受中断标志ReData = SBUF; //SUBF接受/发送缓冲器Flag=1; //标志位置1表⽰有新数据进来}}RI:接收中断标志位 RI=1表⽰帧接收完成四、总代码#include<reg51.h>//变量声明unsigned char SenData, //发送数据Flag, //标志位ReData; //接收数据//函数声明void usart_init(); //串⼝中断初始化void send_data(unsigned char a); //串⼝数据发送//---------------------------//串⼝中断初始化//---------------------------void usart_init(){SCON = 0x50; //REN=1允许串⾏接受状态,串⼝⼯作模式1TMOD = 0x20; //定时器⼯作⽅式2PCON = 0x00;TH1 = 0xFD; //波特率9600、数据位8、停⽌位1。

LabWindowscvi之RS-232串口通信编程源代码

LabWindowscvi之RS-232串口通信编程源代码

LabWindows/cvi之RS-232串口通信编程源代码/* LabWindows/CVI User Interface Resource (UIR) Include File *//* Copyright (c) National Instruments 2006. All Rights Reserved. *//* *//* W ARNING: Do not add to, delete from, or otherwise modify the contents *//* of this include file. *//**************************************************************************/#include <userint.h>#ifdef __cplusplusextern "C" {#endif/* Panels and Controls: */#define PANEL 1#define PANEL_OKBUTTON_2 2 /* callback function: receivefile */#define PANEL_OKBUTTON 3 /* callback function: receivefilename */#define PANEL_STRING_2 4#define PANEL_QUITBUTTON 5 /* callback function: QuitCallback */#define PANEL_STRING 6#define PANEL_DECORATION_2 7#define PANEL_COMMANDBUTTON 8 /* callback function: filesel */#define PANEL_DECORATION 9#define PANEL_TEXTMSG 10#define PANEL_TEXTMSG_2 11/* Menu Bars, Menus, and Menu Items: *//* (no menu bars in the resource file) *//* Callback Prototypes: */int CVICALLBACK filesel(int panel, int control, int event, void *callbackData, int eventData1, int eventData2);int CVICALLBACK QuitCallback(int panel, int control, int event, void*callbackData, int eventData1, int eventData2);int CVICALLBACK receivefile(int panel, int control, int event, void *cal lbackData, int eventData1, int eventData2);int CVICALLBACK receivefilename(int panel, int control, int event, void*callbackData, int eventData1, int eventData2);#ifdef __cplusplus}#endif#include <ansi_c.h>#include <utility.h>#include <rs232.h>#include <cvirte.h>#include <userint.h>#include "232.h"static int byteswritten;static char filename[MAX_FILENAME_LEN];static char pathname[MAX_PATHNAME_LEN];static int panelHandle;int main (int argc, char *argv[]){if (InitCVIRTE (0, argv, 0) == 0)return -1; /* out of memory */if ((panelHandle = LoadPanel (0, "232.uir", PANEL)) < 0)return -1;//打开并配置串口Com1OpenComConfig (1, "", 57600, 1, 8, 1, 32767, 32767);//设置通信超时时间SetComTime (1, 5.0);//禁止串口软件握手SetXMode (1, 0);//禁止硬件握手SetCTSMode (1, LWRS_HW HANDSHAKE_OFF); DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;}int CVICALLBACK sendfilename (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){int comstatus;int outputqueuelen;switch (event){case EVENT_COMMIT:strcat (filename, "\r");//向Com1写入文件名字符串byteswritten = ComWrt (1, filename, strlen(filename));break;}return 0;}int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){switch (event){case EVENT_COMMIT://关闭串口Com1CloseCom (1);QuitUserInterface (0);break;}return 0;}int CVICALLBACK filesel (int panel, int control, int event,void *callbackData, int eventData1, int eventData2){int selstatus;switch (event){case EVENT_COMMIT:filename[0] = '\0';selstatus = FileSelectPopup ("", "*.*", "*.*", "打开文件", VAL_LOAD_BUTTON, 0, 0, 1, 1, pathname);if (selstatus >= 0){SetCtrlVal (panelHandle, PANEL_STRING, pathname);//获得文件名SplitPath (pathname, NULL, NULL, filename);}break;}return 0;}int CVICALLBACK sendfile (int panel, int control, int event,void *callbackData, int eventData1, int eventData2){int outputqueuelen;switch (event){case EVENT_COMMIT://设置串口Com1调制解调器参数XModemConfig (1, 10.0, 10, 5.0, 1024);//设置从串口Com1发送文件数据XModemSend (1, pathname);//获得串口Com1输出队列的字符串数目outputqueuelen = GetOutQLen (1);if (outputqueuelen == 0){MessagePopup ("文件传输", "文件传输完毕!");}break;}return 0;}接收程序#include "toolbox.h"#include <ansi_c.h>#include <rs232.h>#include <cvirte.h>#include <userint.h>#include "232.h"static int bytesread;static char filename[MAX_PATHNAME_LEN];static char pathname[MAX_PATHNAME_LEN];static int panelHandle;int main (int argc, char *argv[]){if (InitCVIRTE (0, argv, 0) == 0)return -1; /* out of memory */if ((panelHandle = LoadPanel (0, "232.uir", PANEL)) < 0) return -1;//打开并配置串口Com2OpenComConfig (2, "", 57600, 1, 8, 1, 32767, 32767);//设置通信超时时间SetComTime (2, 5.0);//禁止串口软件握手SetXMode (2, 0);//禁止硬件握手SetCTSMode (2, LWRS_HW HANDSHAKE_OFF);DisplayPanel (panelHandle);RunUserInterface ();DiscardPanel (panelHandle);return 0;}int CVICALLBACK receivefilename (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){switch (event){case EVENT_COMMIT:filename[0] = '\0';SetCtrlVal (panelHandle, PANEL_STRING, "");//读取字符串直到回车符出现bytesread = ComRdTerm (2, filename, 260, 13);//当出现回车符后,在其后加上结束符filename[bytesread]= '\0';SetCtrlVal (panelHandle, PANEL_STRING, filename);break;}return 0;}int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){switch (event){case EVENT_COMMIT://关闭串口Com2CloseCom (2);QuitUserInterface (0);break;}return 0;}int CVICALLBACK filesel (int panel, int control, int event,void *callbackData, int eventData1, int eventData2){int selstatus;switch (event){case EVENT_COMMIT:selstatus = DirSelectPopup ("", "保存文件", 1, 1, pathname); if (selstatus){strcat (pathname, "\\");strcat (pathname, filename);SetCtrlVal (panelHandle, PANEL_STRING_2, pathname);}break;}return 0;}int CVICALLBACK receivefile (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){int result;int filesize;int inputqueuelen;FILE *stream;switch (event){case EVENT_COMMIT:GetCtrlVal (panelHandle, PANEL_STRING_2, pathname);//判断文件是否存在result = FileExists (pathname, &filesize);if (!result){stream = fopen (pathname, "wb+");fclose (stream);}//设置串口Com2调制解调器参数XModemConfig (2, 10.0, 10, 5.0, 1024);//设置从串口Com2接收文件数据XModemReceive (2, pathname);//获得串口Com2输入队列的字符串数目inputqueuelen = GetInQLen (2);if (inputqueuelen == 0){MessagePopup ("文件保存", "文件保存完毕!"); }break;}return 0;}。

EIA RS-232-C标准详解

EIA RS-232-C标准详解

EIA RS-232-C标准EIA RS-232-C是由美国电子工业协会EIA制定的串行通信物理接口标准。

最初是远程数据通信时,为连接数据终端设备DTE(Data Terminal Equipment,数据通信的信源,如计算机)和数据通信装置DCE(Data Circuit-terminal Equipment、数据通信中面向用户的设备,如调制解调器)而制定的。

它规定以25芯或9芯的D型插针连接器与外部相连。

这个连接器上的基本信号定义如表8-1所示。

表8-1 RS-232-C标准接口信号通信将在数据终端设备(DTE)和数据通信装置(DCE)之间进行,信号线中的RTS、CTS、DSR和DTR为控制信号,其含义如下:RTS(请求传送):当数据终端设备(DTE)需向数据通信装置(DCE)发送数据时,该信号有效,请求数据通信装置接收数据。

CTS(允许传送):如数据通信装置(DCE)处于可接收数据的状态,此信号有效,允许数据终端设备(DTE)发送数据。

反之,如数据通信装置(DCE)处于不可接收数据的状态,此信号无效,不允许数据终端设备(DTE)发送数据。

DSR(数据设备就绪)、DCD(数据载波检测):当数据通信装置(DCE)需向数据终端设备(DTE)发送数据时,该信号有效,请求数据终端设备(DTE)接收数据。

DTR(数据终端就绪):如数据终端设备(DTE)处于可接收数据的状态,此信号有效,允许数据通信装置(DCE)发送数据。

反之,如数据终端设备(DTE)处于不可接收数据的状态,此信号无效,不允许数据通信装置(DCE)发送数据。

因而采用RS-232标准的通信,除了连接发送和接收的数据线外还需连接控制信号。

图8-3为采用RS-232标准进行通信常用的连接方法。

图8-3 RS-232标准通信常用的连接方法为实现数据的传输,A端与B端的发送和接收的数据线相互连接,A端的请求传送(RTS)与B端的数据通信装置就绪、数据载波检测(DSR、DCD)相连,B端的数据终端设备就绪(DTR)信号与A端的允许传送(CTS)相连。

EIA标准详解RS-232-C详解

EIA标准详解RS-232-C详解

EIA RS-232-CRS-232C数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE (Data Communication Equipment) 远程通信连接协议。

全称是EIA-RS-232-C标准,其中EIA(Electronic Industries Association)代表美国电子工业协会,RS (recommended standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS2328、RS232A。

一、RS-232C接口:通常RS-232 接口以9个引脚(DB-9) 或是25个引脚(DB-25) 的型态出现,一般个人计算机上会有两组RS-232 接口,分别称为COM1 和COM2。

二、RS-232-C协议规定:1.RS-232C接口信号:RS-232C规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:(1)状态线:数据准备就绪(Data set ready-DSR)——有效时(ON)状态,表明数据通信设备可以使用。

(DCE->DTE)数据终端就绪(Data set ready-DTR)——有效时(ON)状态,表明数据终端设备可以使用。

(DTE->DCE)这两个信号有时连到电源上,上电就立即有效。

这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。

(2)联络线请求发送(Request to send-RTS)——DTE准备向DCE发送数据,DTE使该信号有效(ON 状态),通知DCE要发送数据给DCE了。

(DTE->DCE)允许发送(Clear to send-CTS)——是对RTS的响应信号。

当DCE已准备好接收DTE传来的数据时,使该信号有效,通知DTE开始发送数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档