delphi 怎么做串口通讯

delphi 如何做串口通讯
各位大虾:
         轻微delphi如何做串口通讯的?我以前是用VC做的,但界面不怎么好看。想改为DELPHI 做。通讯不知道怎么做,忘大虾们指点一二。谢谢!
------解决方案--------------------
SPComm.pas
------解决方案--------------------
正好我也在做:
Delphi中ComPort通信的数据处理
1.串口通信的基本原理:
一般计算机与外部设备通讯有两种方式:
并行传送(Parallel ):一次的传输量为8个位(1字节),通过并行端口,如打印机
串行传送(Serial ):一次只传输1个位,通过串行端口,如RS-232

位与字节的概念:
二进制中的每一位0和1,被叫做一个位,每8个位构成一个字节
一个字节中最右面的位被称为第0位,最左面的位被称为第7位。

传输过程中的字节类型:一般有两种。
1.文本(字符字母、标点符号等)在计算机中存储时,每个不同的字符都用不同的数值来表示。这些数值的范围通常在0-127或0-255范围。

7位:ASCII码,每个字节留一个备用位

8位:前128个遵循ASCII码规则,其余的128个用来做扩展字符、数字符号、图形字符等编码。

2.二进制数据:
某些可执行指令文件和图形图像文件就是以二进制形式而不是ASCII码形式存储的。
一个数据可用二进制形式存储,可以占多个字节。在通信领域,常常把这种类型的资料叫做二进制数据。
几个概念:
1波特率:每秒所能产生的最大电压状态改变率(一秒钟可以振荡的次数)bps
通信双方必须要取得一样的通信速度。原始信号经过不一样的波特率取样后,所得的结果完全不一样,如取样速度只有原来一半时,信号被跳着取样,数据因此错误。

2数据位:有5,6,7,8四种

3停止位:在奇偶位(选择有奇偶校验)或数据位(选择无奇偶校验)之后发送或接收的停止位。停止位的长度可在1、1.5或2位 三者中选择)。

4奇偶校验位:数据传输之后是可供选择的奇偶校验位发送和接收。奇偶位的状态取决于选择的奇偶校验类型。如果选择奇校验,则该字符数据中为1的位数与校验位相加,结果应为奇数。可选奇,偶或无。
如果要保证通讯畅通。通讯双方以上4项设置必须一致。
一个字节是8位,数据位可以7位,然后一位校验位就8位了。
这些参数可以自己设置。但是如果要保证通讯畅通。通讯双方以上4项设置必须一致。
2.Delphi中串口通信常用的常用控件
进行串口通讯可以用Windows的Api函数:
Delphi的Windows.pas单元文件中已经将Win32 API均声明进去,因此在Delphi里面使用API时只要在uses 区段中加入Windows,使其引用该单元文件即可。
串行通信相关函数:


------解决方案--------------------
SPcomm,IOCOMP