DELPHI 环境下 PC 机对步进电机的直接控制 
Direct Control for Step Motor by PC in DELPHI 
 
钟建冬    苏剑波 
(上海交通大学    上海    200030) 
 
摘    要    步进电机作为一种有效的定位驱动器件,一直以来大多使用单片机对其进行控制,
不同控制系统之间的不兼容性制约了步进电机的使用范围.本文说明了如何利用 DELPHI 软件开
发平台和 PC 机自带的 I/O 端口实现步进电机的直接控制,同时介绍了该系统的外部信息处理. 
关键词    步进电机    PC 机    DELPHI    LPT 口    直接控制 
Abstract    As an effective tool of motion control, step motor has ever been controlled by the SCM. 
Its application is limited by the non-compatibility of different control systems.This article describes 
how  to  realize  the  direct  control  for  step  motor  by  use  of  DELPHI  and  I/O  ports  of  PC.  It  also 
introduces the external information processing of this system. 
Keywords    step Motor, PC, DELPHI, LPT port, direct control 
 
中图分类号:TM301.2    文献标识码:A    文章编号:1005-8354 (2004) 04-0031-05 
 
1    引言 
等 WINDOWS 应用程序开发平台.在这些开发平台
作为一种有效的定位驱动器件,步进电机的应
中,DELPHI 具有简单、高效、功能强大的特点,
用一直十分广泛,它的控制系统普遍使用了单片
而且可以直接插入汇编代码,这就方便了对底层硬
机.在自动控制飞速发展的今天,单片机在控制和
件资源的控制,通用性更强. 
使用方面的局限性越来越显现,特别是单片机与其
为使步进电机能在现代控制系统中得到广泛
他控制单元之间的不兼容性已成为步进电机应用的
的应用,必须使用兼容性较好的现代控制工具对其
障碍. 
进行控制—通过 PC 机的标准 I/O 口,应用DELPHI
从最早的继电器接触器回路控制、单片机控制
开发平台,实现步进电机的控制不失为一种好方法. 
到 80 年代后被广泛运用的 PLC、CNC 和 DCS 等自
动控制主系统都有着无法回避的局限性:界面生硬、
接口单一、通用性差,难以在各种控制系统中互换,
 
2    步进电机控制及实现方法简介 
2.1    步进电机控制基本要求 
只能单一地控制某一单元.上述的控制系统对控制
步进电机是一种定位控制器件,在控制上与普
量的柔性变动跟随性较差,在需要柔性控制的应用
通电机有很大的不同.通常情况下,根据控制要求
中,这一类控制系统已丧失了它们的优势.在这种
产生的脉冲信号送入步进电机自带的或是适用的控
情况下,使用各种开发工具装备的 PC 机作为主控
制放大器,通过控制放大器的输出驱动步进电机.步
系统已越来越广泛. 
进电机转过的角度取决于送入的步进脉冲数;而电
PC 机之所以能在自控系统中得到广泛的应用,
机的正反转控制则由在控制放大器的正反相接口送
除了它本身具有多样的标准接口、标准的操作平台
入不同的高低电平实现的.步进脉冲要求:脉冲峰
(如 WINDOWS、DOS)和硬件更新快等优点外,
值电压(4.0~5.5)V,脉冲谷值电压(0~0.5)V,
最大的优势还在于 PC 机上的软件开发平台,如一
脉冲占空比≤50%.正反向控制电平要求:高电平
些知名的人机界面软件,还有 VC、VB 和 DELPHI
(4.0~5.5)V,低电平(0~0.5)V.高电平时电
机 电 设 备    2004 年 第 4 期                                                                                                                                        —  31  — 
流(5~15)mA. 
2.2    步进电机控制实现方法 
以一定的方向和速度运动,实现步进电机控制系统
的有效控制.如果步进电机控制系统再将当前的位
现代的 PC 机具有多种标准接口,如 USB、
置信息反馈至 PC,PC 据此作出信号调整,则整个
Ethernet 口、并行口(LPT)和串行口(COM)等,
根据上述的步进电机控制信号要求,并行口为最理
想的控制用接口.一方面并口的数据端口能输出符
系统就能实现有效的闭环控制. 
 
4    系统接口要求及形式 
合要求的脉冲信号和高低电平,另一方面并口中的
为实现 PC 机与步进电机控制放大器的有效联
状态端口和控制端口还能够读取和发送信号,满足
络,必须考虑双方的接口形式. 
控制的双向通讯要求.而 USB 口和 Ethernet 口能与
PC 机的并口(LPT)共有 25 位,其中数据端
其他系统相连接,使步进电机与其他系统相兼容,
口占 8 位,为 OUT 口;控制端口占4 位,为 IN/OUT
成为一个整体.此时 PC 机不单单具有控制功能,
双向口;状态端口占 5 位,为 IN 口;另外有 8 个
还起到了系统间联络的作用. 
接地端口.数据端口和控制端口为控制系统的输出
运用 DELPHI 语言编程,运行程序,读取由并
口,输出各类控制信号及数据,状态端口和控制端
口或是 USB 等接口送来的信息,根据控制要求进行
口为控制系统的输入端口,接收外界的信息.LPT
内部运算,得出相应的动作指令,再通过对 PC 机
口对外通迅的电压等级为 5V,与步进电机控制放大
并口的某一位进行相应的置位与复位,得到控制所
器的电压等级一样,而且其送出的脉冲也均能符合
需的步进电机的脉冲信号.步进电机的转速取决于
步进电机控制放大器的要求. 
脉冲信号的频率,即置位与复位的时间间隔;转过
步进电机控制放大器的 CP 口为步进控制脉冲
的角度则取决于送出的脉冲个数.同时根据控制需
的接收口,上升沿有效;U/D 口为正反转控制口,
要,运用 DELPHI 制作相关的人机界面,使控制系
高电平时电机反转,低电平时电机正转;PD 口为电
统更为完整、直观. 
 
3    控制系统硬件 
 
 
 
 
 
 
 
 
 
 
外
部
系
统
信
息
 
USB、并口等 
PC 机 
(DELPHI 
控制平台) 
机械传动系统 
USB、并口等 
步进电机 
控制系统 
换相电源 
步
进
电
机
 
并
行
口
 
步进电机 
控制放大器 
机控制状态口,高电平时控制无效,并且电机各相
无保持电压,低电平时控制有效.以上各接口均可
直接与 PC 机 LPT 口的数据口相连,接收来自 PC
机的控制信号.因此,使用 PC 机的 LPT 口与步进
电机控制放大器可以直接相连进行通迅,不需要增
加任何的中间隔离电路. 
 
5    系统接线与软件编程 
5.1    系统接线 
现以小球在平台上的自定位实验系统为例说
明系统接线方法.该实验系统的大致情况是摄像头
定时拍摄一个在一平台上自由滚动的小球在平台上
位置的图像,拍摄的图象送入计算机进行图像处
图 1    系统硬件构成框图 
理.通过对小球在平台上位置的分析,找出小球的
 
坐标,对照小球要求的定位坐标,运用 DELPHI 开发
如图 1 所示,PC 机接收到外部系统及步进电机
的软件内部逻辑算法及 PID 控制,得出平台两个转
控制系统由 USB、并口等送来的信息后,通过计算,
动方向的控制要求,再使用 PC 机的 LPT 口与步进电
得出步进电机的运动指令,再通过并口把脉冲信号
机控制放大器通讯,以使两台受控制的步进电机转
输送到步进电机控制放大器放大后,驱动步进电机
动,驱动一精密机械传动系统带动平台在 X、Y 两
—  32  —                                                                                                                                        机 电 设 备    2004 年 第 4 期 
个方向转动,使小球在目标位置精确定位. 
5 连接,各负极均接至 LPT 口接地端.以上这些均
图 2 为 PC 机与步进电机控制放大器的接线框
为由 PC 机发信号至步进电机控制放大器的控制
图,步进电机控制放大器与 PC 机 LPT 口直接用电
线.平台基础的四个检测过位的微动开关连接至
缆连接即可,图中两台步进电机控制放大器的 CP+
LPT 口的(10~13)脚上,PC 机由此可接收平台的
口分别与 LPT 口的 DATA 0 和 DATA 1 连接,U/D+
过位报警信号. 
与 DATA 2 和 DATA 3 连接,PD+与 DATA 4 和 DATA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Pin 2 / Data 0 (Data)
Pin 3 / Data 1 (Data)
Pin 4 / Data 2 (Data)
Pin 5 / Data 3 (Data)
Pin 6 / Data 4 (Data)
Pin 7 / Data 5 (Data)
PC 机 LPT 端
Pin 10 / NAck (Status)
Pin 11 / Busy (Status)
Pin 12 / Paper-out (Status)
Pin 13 / Select (Status)
Pin 25 / Ground
X+过位 
X-过位 
Y+过位 
Y-过位 
CP+ 
CP- 
U/D+ 
U/D- 
PD+ 
PD- 
CP+ 
CP- 
U/D+ 
U/D- 
PD+ 
PD- 
X 向步
进电机
控制放
大器   
Y 向步
进电机
控制放
大器   
 
 
5.2    软件编程 
图 2    PC 机与步进电机放大器接线图 
        MOV B, AL; 
软件设计选用 DELPHI 作为开发平台,很容易
        END; 
实现使用 PC 机直接控制步进电机.下面就以如何
Result:=B; 
利用 DELPHI 编程实现 PC 机 LPT 端口向步进电机
end; 
控制放大器发送指令及读入外部信息来说明端口读
//写端口过程 
写操作的方法. 
procedure WritePort(Port:WORD;ConByte:BYTE); 
在此类操作中,对 LPT 端口的控制可以在
begin 
DELPHI 中插入汇编代码(ASM)实现. 
        ASM 
//读端口函数 
function ReadPort(Port:WORD):BYTE; 
var 
B:byte; 
begin 
        ASM 
        MOV DX, Port; 
        IN AL, DX; 
        MOV DX, Port; 
        MOV AL, ConByte; 
        OUT DX, AL; 
        END; 
end; 
//控制 LPT 口 D0 数据,使之输出为 1 
var 
B:byte; 
机 电 设 备    2004 年 第 4 期                                                                                                                                        —  33  — 
begin 
        B:=ReadPort($378); 
        B:=B or $01; 
        WritePort($378,B); 
End; 
对 步 进 电 机 的 转 动 控 制 分 为 自 动 和 手 动 两 种 方
法.如图 3 所示,通过单击屏幕上的开始按钮起动
自动运行程序,使相应的端口发送脉冲信号至步进
电机控制放大器;手动界面与自动界面基本相同,
只要单击相应的 X+、X-、Y+、Y-按钮就能使 LPT
这 样 的 代 码 在 Win98 里 是 正 常 的 , 但 在
口相应端口送出一定频率的脉冲,使步进电机向相
Win2000/XP 里会报错,因为Win2000/XP 不能直接
应方向转动. 
对硬件进行操作,它是虚拟硬件层, NT 核心的
Windows(如 NT4.0、Win2000、WinXP)的驱动不
是一个 VxD 就能实现的,而需要 WDM 驱动,这样
就会加大难度.Porttalk 是一个很好的设备驱动,用
它能很方便地实现对底层端口的操作,建立一个
Porttalk.sys 的 Delphi 接口函数 InPortB、OutPortB、
OpenPortTalk、ClosePortTalk 等以后,就可以很方
便地调用. 
//控制 LPT  口  D0 数据,使之输出为 1 
var 
B:byte; 
Begin 
        if not OpenPortTalk then exit; 
        B:=InPortB($378); 
        B:=B or $01; 
        OutPortB($378,B); 
        ClosePortTalk; 
end; 
//读取 LPT  口“ACK”  状态数据 
var 
B:byte; 
Begin 
        if not OpenPortTalk then exit; 
        B:=InPortB($379); 
        B:=B and $40; 
        ClosePortTalk; 
end; 
 
6    实验演示 
图 3    自动运行人机界面 
图 4    手动状态时平台水平位置 
现就以小球在平台上的自定位系统的设计为
例来演示 PC 机对步进电机的直接控制.首先使用
图 5    手动状态时平台 X-极限位置 
DELPHI 制作设计要求的人机界面.在本设计中,
 
 
 
 
—  34  —                                                                                                                                        机 电 设 备    2004 年 第 4 期 
图 4 为手动状况下平台在水平位置时的图像,
7    参考文献 
此时单击 X-按键,LPT 口 DATA 0 送出脉冲信号,
[1]  末松良一.控制用微机入门[M].北京:科学出版社,
DATA  2 送出高电平反转信号,步进电机反转,平
2000. 
台向 X-倾斜,当平台倾斜至图 5 所示状态时,过位
[2]  王家桢.调节器与执行器[M].北京:清华大学出版
微动开关动作,信号送入 LPT 的 BUSY 端口,X-
社,2000. 
向停止运动子程序起动,LPT 口停止输出脉冲,X
 
方向步进电机停止转动,除非此时接到X+向运动指
作者简介:钟建冬    男(1974-),上海交通大学控制工
令,否则系统将在图 5 所示状态停止. 
程在读工程硕士研究生.主要从事先进自动化流水线的
 
 
管理和研究.
江西开发出廉价海水淡化技术   
随着经济和社会的发展,以及环境污染造成的对水资源的破坏,使地球上的淡水日益紧缺,仅我国缺
水型城市就达到了 300 多个,这将严重影响 21 世纪可持续发展战略的实施。 
为了解决淡水资源缺乏的问题,很久以来世界各国的科学家都把目光投向了海洋,因为地球上 97%的
水都在海洋里。我国也在一些城市进行了海水淡化的工程性试验。然而由于传统的海水淡化技术投资高、
能耗大,过高的生产成本使淡水价格居高不下而难以推广。 
江西九江天力太阳能科技有限公司独辟蹊径,经过多年研究,终于解决了太阳能海水淡化中的关键问
题即热能转换效率低的问题,开发出“高效光、热感应交换器”,并已取得国家专利。该装置使用独特介质
大幅提高太阳能的效能,使海水淡化的能耗降到最低,大大降低了淡水生产的投资和成本。按建一个 10 万
平方米的海水淡化工厂测算,总投资为 7000 万元,每天可生产淡水 9.6 万立方米,以 20 年的使用期计算,
每立方米淡水的成本仅为 0.119 元,大大低于一个中型自来水厂的生产成本,节约了宝贵的能源。 
有关专家认为,太阳能海水淡化装置的成功开发,为我国大规模利用海水打下了基础。我国有 1.8 万
多公里的海岸线,有数以万计的海岛,大多数海岛都面临淡水缺乏的问题,这将是一个巨大的市场。 
转摘自《中国环境报》     
 
上海推出双碱再生脱硫除尘一步法装置   
长期以来困扰环保产业界的湿法脱硫两大难关--引风机带水和堵塞问题,目前已被攻克。上海柴油
机公司的两台 20 吨锅炉安装双碱再生脱硫除尘一步法装置后,运行半年多未发生引风机带水和堵塞问题,
且脱硫除尘效率高,运行成本低,无二次污染。 
该装置是由上海一公司积 30 年湿法除尘经验而发明的。近年来,该公司在总结湿法除尘不带水的基础
上,致力于烟气脱硫技术的创新和实践,发明了 XYDS 型双碱再生脱硫除尘一步法装置,在上海大众汽车
公司试验成功后又在上海柴油机公司等单位安装,运行性能良好,对锅炉的燃烧没有影响;引风机不带水、
不结垢、不堵塞、不腐蚀;连续运转效率接近 100%(与锅炉运行同效率)。经环保部门跟踪测试和取样分
析,脱硫效率达到86%~92%,在燃用低硫煤的情况下,脱硫效率仍达到67.6%~80.3%,除尘效率达91.2%~
99.3%。被吸收的二氧化硫反应生成不溶性物质全部从液体中分离沉淀,二氧化硫不再挥发,解决了二次污
染问题。脱硫液再生接近 100%,使成本降低至每千克二氧化硫 0.3 元以下。 
有关专家表示,脱硫技术是今后几年削减二氧化硫污染的关键。目前,尽管不少城市安装了脱硫装置,
但由于技术不过关,许多装置形同虚设。如果能攻克这两大难题,就能使我国的脱硫技术走上高效率、低
成本的道路,使我国控制二氧化硫污染的目标得到实现。                      转摘自《中国化工报》 
机 电 设 备    2004 年 第 4 期                                                                                                                                        —  35  —