步进电机驱动控制系统设计(有程序)
步进电动机控制系统上位机程序设计【范本模板】

步进电动机控制系统上位机程序设计摘要:从整体上简要介绍了步进电动机控制系统的结构及功能特点;详细介绍了上位机软的功能及实现方法。
所设计的控制程序具有友好的人机交互特性,可设定多种运行模式,可实时显示系统运行状态,且可应用于需要复杂控制算法及控制功能的使用场合.关键词:混合式步进电动机;微型计算机;MCS一51单片机;Visual Basic;MSComm 控件Abstract:The structure and functional characteristics of the stepper control system were introduced integrally,and the functions and implementation methods of the microcomputer programme were also introduced.This method had a friendly user interface.The several operation modes were set,the operation states of the system were displayed in real time.Key words:hybrid stepper motor;microcomputer;MCS一5 1 single chip;Visual Basic;MSComm widget0前言随着工业生产和计算机技术的日新月异,微型计算机在工业控制领域的应用越来越广泛。
利用微型计算机可以存储更多的数据,进行复杂的运算,还可以通过多种形式对信息进行显示。
另外,还可以设计高效、友好的用户界面,对系统进行控制.本系统以单片机作为下位机而微机作为上位机,两者通过RS一232串行接口进行通信。
上位机设计了友好的用户界面,以便对系统进行控制,下位机在得到控制命令之后,具体实施控制,并将系统的工作状态信息传给上位机进行显示处单片机采用8051,而上位机是在Windows XP操作系统下,用Visual Basic 6.0开发的监控软件。
步进电机运行系统控制设计

步进电机运行系统控制设计一、设计的性质与目的:性质:该设计是在学生学完《单片机原理与应用》和电子学相关课程的基础上,结合测控技术与仪器和机电工程专业的特点进行的具有一定难度和覆盖面的综合性实践环节。
目的:综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
二、设计内容与要求:1、根据设计任务,设计该单片机应用系统的硬件电路图,软件流程图并编制相应的软件,实现硬件和软件的调试。
2、按下不同的键,分别使步进电机实现顺时针和逆时针旋转一步,连续按键,不仅电机连续运转,显示器显示步进电机的状态。
3、按下不同的键作步进电机速度及转向的控制并显示步进电机的状态。
A) 电机正向或逆向运转的切换B) 电机加速运转C) 电机减速运转D) 电机按给定速度匀速运转三、实验注意事项:1、实验中所用仪器及设备均应按操作规程操作,实验前应仔细阅读指导书。
2、实验应独立思考,发现问题尽量自己解决。
3、实验结果需经老师检查后方算完成。
四、设计方案:1、步进电机工作原理及硬件连线图:步进电机驱动原理是通过对它每相线圈中的电流的顺序切换使电机作步进式旋转,驱动电路有脉冲信号来控制,所以调解脉冲信号的频率变可以改变步进电机的转速,因此微电脑控制步进电机最合适。
如下图所示,实验使用的不仅电机用直流+5V电压,每相电流为0.16A,电机线圈由4相组成。
即①1 (A);①2 (B);①3 (C);①4 (D);驱动方式为二相激磁方式各线圈通通电顺序如下表:相顺序 1 2 3 40 1 1 0 01 0 1 1 02 0 0 1 13 1 0 0 1二相激磁通电次序表中首先向①1线圈-①2线圈输入驱动电流,接着①2-①3,①3-①4,又返回到①1-①2,按这种顺序切换,点击按顺时针方向旋转。
这时的相序位0, 1,2,3;如果使电机逆时针方向旋转,相序为3, 2, 1, 0。
步进电机的驱动电路如右图所示, 微电脑向步进电机输入端传送 1 或0 信息,则可实现上述操作。
51单片机步进电机控制系统设计

步进电机控制系统设计引言随着人民生活水平的提高,产品质量、性能、自动化程度等已经是人们选择产品的主要因素。
其中,步进电机正反转自动控制在生活中起了很大的作用,比如洗衣机的工作、遥控汽车的操作、DVD的应用等等,它在实际生活中给人们需求上提供了很大的方便与乐趣。
不只是生活,它还在工业、农业、交通运输等各方面得到了广泛的应用,实现电动机正反转的控制是很多产品设计的核心问题。
步进电机显示出交流电动机不能比拟的良好启动性能和调速性能,比较广泛应用于速度调节要求过高,正反转频繁或多元同步协调运转的机械生产。
因此,学会电动机正反转控制的原理是极其重要的。
然而,在本步进电机正反转仿真设计中,要借助Proteus软件、Keil软件和C语言的辅助进行仿真设计,通过仿真设计,让我们更清楚了解步进电机正反转的原理和电路图,增强对步进电机的认知。
在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。
这些都尽可能减少了仪器对测量结果的影响。
在本设计中,Proteus软件采用了电容、电阻、晶振、电动机、LED、开关、电动机等多种元件进行绘图,并基于80C51和ULN2003A进行电路图设计,充分展示Proteus软件元件库量大,掌握它的基本绘图操作。
而对于Keil软件,采取创建工程,创建执行文件,利用C语言编写程序,生成hex文件,为Proteus 仿真提供驱动控制,实现步进电机正反转的设计。
在本论文设计中,主要介绍步进电机正反转原理,Proteus软件功能绘图、仿真调试,以及Keil软件功能、程序编写和仿真程序文件生成。
让大家更清楚了解Proteus软件、Keil软件、C语言在步进电机正反转仿真设计的应用。
PLC如何控制步进电机

PLC如何控制步进电机PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备,通过输入/输出模块对各种机电设备进行控制。
在PLC系统中,步进电机是常见的执行元件之一,它具有准确的位置控制和高的加减速性能。
本文将介绍PLC如何控制步进电机,包括步进电机的驱动方式、PLC的控制原理及步进电机控制的程序设计。
一、步进电机的驱动方式1.串行通信驱动方式:步进电机通过串行通信驱动方式与PLC进行通信和控制。
首先,将PLC与串行通信模块相连,通过串行通信模块与步进电机控制器进行通信。
PLC通过串行通信模块发送指令,步进电机控制器接收指令后控制步进电机运动。
2.并行通信驱动方式:步进电机通过并行通信驱动方式与PLC进行通信和控制。
与串行通信驱动方式类似,首先将PLC与并行通信模块相连,通过并行通信模块与步进电机控制器进行通信。
PLC通过并行通信模块发送指令,步进电机控制器接收指令后控制步进电机运动。
3.脉冲驱动方式:步进电机通过脉冲驱动方式与PLC进行通信和控制。
在脉冲驱动方式中,需要PLC输出脉冲信号控制步进电机。
通常情况下,PLC将脉冲信号传递给步进电机驱动器,在驱动器中产生相应的控制信号,实现对步进电机的控制。
二、PLC的控制原理PLC作为控制器,一般采用扫描运行方式。
其运行原理如下:1.输入信号读取:PLC将外部输入信号输入到输入模块中,采集输入信号,并将其从输入模块传递给中央处理器(CPU)进行处理。
2. 程序执行:CPU根据事先编写好的程序进行处理,包括数据处理、逻辑运算和控制计算等。
PLC程序一般采用ladder diagram(梯形图)进行编写。
3.输出信号控制:根据程序的执行结果,CPU将处理好的数据通过输出模块发送给外部设备,用于控制和操作外部设备。
三、步进电机控制的程序设计步进电机的控制程序主要包括参数设定、模式选择、起停控制、运动控制等部分。
下面以一个简单的例子来说明步进电机控制的程序设计过程:1.参数设定:首先需要设定步进电机的一些参数,如电机型号、步距角度、运动速度等。
步进电机细分驱动控制系统设计

步进电机细分驱动控制系统设计姓名:张凯学号: 20104977指导老师:杨小平、杞宁组员:张凯 20104977 (组长)张明 20104991王涛 20104978合肥工业大学电子科学与应用物理学院电子科学与技术系概述步进电机在输入状态发生变化时会转过一定的角度,输入状态不变时不会转动,且在不细分输入情况下每次转过较大的角度,再细分情况下每次转过较小的角度。
本设计是利用 FPGA 实现四相步进电机细分驱动控制,并且系统既能实现步进电机的细分驱动又能实现不细分驱动,还能实现步进电机的正、反转控制。
设计方案与实现下图是通过Quartus Ⅱ综合产生的RTL级电路图。
整个电路共分为6大模块:32进制可加可减计数器(cnt32)、16进制(自加)计数器(cnt16)、4位输出选择器(dec2)、4个4位比较器(new_comp:moto5、moto6、moto7、moto8)、查找表(rom32)、4位输入4位输出2选1多路选择器(mux2to1)。
其中,u_d控制正反转,s选择细分和不细分,en控制停和转,y[3:0]接步进电机的4相输入,clk0和clk5为时钟,且clk5>>clk0(本课设选clk0=4Hz,clk5=32768Hz)。
设步进电机的4相输入分别为A、B、C、D。
细分: cnt32计数输出5位数据送rom32,rom32输出16位数据分别送new_comp:moto5、moto6、moto7、moto8的a[3:0]端口与cnt16计数送来的4位数据b[3:0]比较。
如果a>=b,则agb=1’b1;反之agb=1’b0。
由于clk5>>clk0,从而agb能输出一段占空比稳定的信号(只持续1个或多个clk0周期),即产生1/4、2/4、3/4信号。
再如果s为高电平,则就能实现步进电机的细分输入。
不细分:如果s为低电平,则mux2to1选通由dec2送来的非细分信号dataa[3:0],从而实现步进电机的非细分输入。
步进电机控制系统设计

步进电机控制系统设计本设计通过开发运用微型计算机系统,输出控制时序来控制步进电机运转,针对步进电机的工作状态,输出对应的音频或光、显示信息。
本次设计的创新点是结合温度保护程序,通过比较当前温度与设定的温度值控制步进电机停止转动,保护步进电机。
标签:步进电机;微机;汇编;控制1 星研集成环境介绍(1)提供DOS、WIN95/98/ME/NT/2000/2003/XP 二个版本的集成环境软件,与KEIL 公司提供的C51 调试软件很大部分相同,也有自己的特色。
集编辑编译器(VC++风格)、项目管理、编译、连接、错误定位、下载于一体,并提供调试功能。
(2)功能强大的项目管理功能:现在单片机软件越来越大,也越来越复杂,维护成本也很高。
通过项目管理可化大为小、化整为零,便于管理。
项目管理功能也使多模块、多语言混合调试成为可能。
支持宏汇编、C、PLM 语言混合编程,有强大的项目管理功能,含并且包含调试与该项目相关的仿真器件、相关文件、编译软件以及编译连接控制等硬软件信息。
(3)本次设计基于星研集成环境,所有硬件、软件环境都已集成。
2 编写步进电机汇编程序的方法2.1 8255可编程并行接口芯片介绍8255可编程外围接口芯片是Intel公司生产的通用并行I/0接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0—基本输入/出方式;方式1—选通输入/出方式;方式2—双向选通工作方式。
2.2 编程中三个重要的参数(1)运转步数N:操控步进电机的定位精度。
(2)延时时间DELAY:控制步进电机步进的速率。
(3)温度:控制步进电机停止工作的最大温度。
3 工作过程3.1 步进电机的概述及四相八拍步进电机的工作原理:步进电机是一种将电脉冲信号转换成角位移或线位移的机电元件。
此步进电机工作方式为四相八拍,由单极性直流电源进行供电。
只需变换不同合适的时序对步进电机的各相绕组通电,就可以使步进电机步进转动。
步进电机驱动控制系统设计-任务书

二、题目的具体要求
[2]马忠梅.单片机的C语言应用程序设计.北京:北京航空航天大学出版社,2007.2
[3]刘宝廷.步进电动机及其驱动控制系统.哈尔滨:哈尔滨工业大学出版社,1997.1
指导教师签字年月日
负责教师签字年月日
1、以MCS-51为处理核心,设计步进电机的驱动控制电路;
2、“步进方向”、“步进速度”可通过键盘设定;
3、电机工作状态和运行参数能够在在显示。
4、毕业设计论文不少于20000字;
5、翻译与专业相关的外文资料不少于3000字。
三、主要参考文献
[1]杨辉媛.基于AT89C51单片机步进电机控制系统设计.舰船电子工程,2008.8
沈阳航空航天大学
毕业设计(论文)任务书
学院
专业
班级
学生
指导教师
负责教师
毕业设计(论文)任务书
毕业设计(论文)任务书毕业设计(论文)题目步进电机驱动控制系统设计
毕业设计(论文)时间年月日至年月日
毕业设计(论文)进行地点
毕业设计(论文)内容及要求:
一、主要内容
步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。微电子学的迅速发展和微型计算机的普及与应用,为步进电动机的应用开辟了广阔前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,既降低了硬件成本又提高了控制的灵活性,可靠性及多功能性。
步进电机控制系统设计 (毕业设计论文)

附一:封面**********学院毕业设计(论文)题目:步进电机控制系统设计专业:班级:姓名:学号:指导教师:2055 年 5 月 5 日附二:成绩评议表*************学院毕业设计(论文)成绩评议专业班级姓名学号题目步进电机控制系统设计指导教师评阅成绩评定:指导教师:年月日评阅教师意见评阅教师:年月日答辩小组意见答辩小组负责人:年月日中文摘要1、步进电机概述列出了步进电机的特点、技术参数和分类,并阐述了详细调速原理。
2、方案的论证确定了步进电机的控制方法、驱动方式、驱动电路以及基本方案。
3、硬件电路的设计对单片机、步进电机、驱动电路、显示电路与键盘、反馈电路进行了选择,并设计了电源电路、抗干扰及看门狗电路。
4、软件的设计对显示子程序、键盘子程序、驱动程序流程进行了设计,并绘制了正反转程序流程图。
5、总结关键词:步进电机 单片机 调速系统目录前言-----------------------------------------------05第一章步进电机概述---------------------------------061.1 步进电机的特点-----------------------------061.2 步进电机的技术参数-------------------------071.2.1步进电机的基本参数---------------------071.2.2步进电机动态指标及术语-----------------081.3步进电机的分类------------------------------101.4步进电机详细调速原理------------------------12第二章方案的论证-----------------------------------142.1控制方式的确定------------------------------142.2驱动方式的确定------------------------------162.3驱动电路的选择------------------------------172.4基本方案的确定------------------------------18第三章硬件电路的设计-------------------------------203.1单片机的选择--------------------------------203.1.1单片机的选择---------------------------203.1.2主要特性-------------------------------223.2步进电机的选择------------------------------233.2.1三相单三拍通电方式---------------------243.2.2三相双三拍通电方式---------------------253.3驱动电路的选择------------------------------293.4显示电路与键盘的选择------------------------313.5反馈电路的选择------------------------------34第四章软件的设计-----------------------------------374.1显示子程序的设计----------------------------374.2键盘子程序的设计----------------------------374.3驱动程序流程的设计--------------------------384.4正反转程序流程图----------------------------394.4.1正反转程序流程图----------------------394.4.2转速快慢程序流程图--------------------404.4.3定时中断流程图------------------------41五总结-------------------------------------------42前言第一章步进电机概述1.1步进电机的特点:1)一般步进电机的精度为步进角的3-5%,且不累积。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一前言 (1)二总体方案设计 (1)1工作原理 (1)2方案选择 (1)2.1时钟脉冲 (1)2.2脉冲分配器 (1)2.3驱动器 (1)3 总的框架 (2)三单元模块设计 (2)1单片机模块 (2)1.1复位控制 (3)1.2单片机频率 (3)2接口 (3)3驱动器ULN2003 (4)4按键模块 (5)5步进电机 (5)5.1工作原理 (5)5.2 28BYJ48型四相八拍 (7)四整机调试与技术指标测量 (8)五设计总结 (8)参考文献 (9)附录1电路原理图 (10)附录2 源程序 (11)一、前言步进电动机是一种将电脉冲信号转换成机械位移的机电执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
二、总体方案设计1、工作原理步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
2、方案选择(1)时钟脉冲通常有两种方法实现:方案一直接有硬件组成如:多谐振荡器 LC 等。
方案二用软件的方式形成优点便于随时更改,调整。
为了方便我们选用软件方式有单片机实现。
(2)脉冲分配器方案一硬件环形分配器:由计数器等数字电路组成的。
有较好的响应速度,且具有直观、维护方便等优点。
方案二软件环分:由计算机接口电路和相应的软件组成的。
受到微型计算机运算速度的限制,有时难以满足高速实时控制的要求。
由软件完成脉冲分配工作,不仅使线路简化,成本下降,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。
考虑到硬件设备的有限和对步进电机的控制我们选择软件环分可以有单片机实现。
(3)驱动器方案一使用功率场效应管的单电压功放电路。
方案二使用集成功率放大器ULN2003。
直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
非常的方便电路更加的简单,稳定。
驱动器选用ULN2003。
3、总的框架三、单元模块设计1、单片机模块用单片机代替了步进控制器把并行二进制码转换成串行脉冲序列,并实现方向控制。
(1)单片机复位控制采用上电与按键均有效的复位。
(2)单片机频率AT89S51单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路。
电容C2、C3对振荡频率有稳定作用,其容量的选择为30pF,振荡器选择频率为12MHz的石英晶体。
由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间为几微秒,故延时时间还要加上指令时间才能获得较大的频率波形。
2、接口输出接口是将计算机的输出端与步进电动机的每相绕组一一对应起来。
由P1.0 P1.1 P1.2 P1.3 分别于驱动器ULN2003 IN1 IN2 IN3 IN4连接。
3、驱动器ULN2003ULN2003 的每一对达林顿都串联一个 2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路。
直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。
ULN2003 采用DIP—16 或SOP—16 塑料封装。
方框图封装外形图ULN2003内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。
它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。
用户输出口的外接负载可根据以上参数估算。
采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。
通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。
ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达350mA,9脚可以悬空。
比如1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用9脚。
4、按键模块S2,S3,S4分别于单片机的P3.2, P3.3, P3.4相连。
S2控制步进电机正转,S3控制步进电机反转,S4让步进电机停止。
5、步进电机(1)步进电机的工作原理步进电机主要由两部分构成:定子和转子。
它们均由磁性材料构成。
定、转子铁心由软磁材料或硅钢片叠成凸极结构,定、转子磁极上均有小齿,定、转子的齿数相等。
其中定子有六个磁极,磁极上套有星形连接的三相控制绕组,每两个相对的磁极为一相,组成一相控制绕组,转子上没有绕组。
给A相绕组通电时,转子位置如图,转子齿偏离定子齿一个角度。
由于励磁磁通力图沿磁阻最小路径通过,因此对转子产生电磁吸力,迫使转子齿转动,当转子转到与定子齿对齐位置时,因转子只受径向力而无切线力,故转矩为零,转子被锁定在这个位置上。
由此可见:错齿是助使步进电机旋转的根本原因。
步距角与转速的计算:步进电机通过一个电脉冲转子转过的角度,称为步距角。
N: 一个周期的运行拍数,即通电状态循环一周需要改变的次数。
Zr :转子齿数。
转速:(2) 28BYJ48型四相八拍步进电机24或28BYJ48型四相八拍电机,电压为DC5V —DC12V 。
当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A 。
),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。
),八拍(A-AB-B-BC-C-CD-D-DA-A 。
)等。
28BYJ48步进电机为四相八拍,其相序表如下 3 2 1 0 对应A 口输出值拍数:N=kmk=1 单拍制2 双拍制m:相数N Z r S ︒=360θmin)/(63603606060r f N Z f N Z f n sr r ︒=︒︒⨯==θ四、整机调试与技术指标测量1.组装调试时钟脉冲产生电路,用示波器观察电路的输出波形,用频率计测量电路输出信号的最低频率与最高频率。
2.组装调试环形脉冲分配器,观察并记录电路的输出波形与时钟脉冲CP的关系。
改变正、反转工作方式,观察输出波形的变化。
3.焊接调试电源电路,用电压表测量电路的输出电压,正常值应该为24V左右。
焊接调试功率放大电路。
4.将以上四部分电路进行联调,检查电机自动、手动,正转和反转等功能。
总结故障排除的经验与体会。
五、设计总结回顾起此次步进电机驱动控制系统设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在好几个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟不是很经常做,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法……通过这次课程设计之后,一定把以前所学过的知识重新温故。
参考文献[1] 谢自美.电子线路综合设计.华中科技大学出版社,2006.06.[2] 谢维成.微机原理与接口技术.华中科技大学出版社,2009.06.[3] 张永瑞.电子测量技术基础.西安电子科技大学出版社,2006.06.[4] 李全利.单片机原理及应用.清华大学出版社,2006.02.[5] 郝文化.电路原理图与PCB设计.机械工业出版社,2009.07.[6] 童诗白.模拟电路技术基础.高等教育出版社,2000.06.附录1 电路原理图附录2 源程序#include <reg51.h> //51芯片管脚定义头文件#include <intrins.h> //内部包含延时函数_nop_();#define uchar unsigned char#define uint unsigned intuchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; sbit K1 = P3^2; //正转sbit K2 = P3^3; //反转sbit K3 = P3^4; //停止sbit BEEP = P3^6;/****************************************************** **//*/* 延时t毫秒/* 12MHz时钟,延时约1ms/*/****************************************************** **/void delay(uint t){uint k;while(t--){for(k=0; k<125; k++){ }}}/****************************************************** ****/void delayB(uchar x) //x*0.14MS{uchar i;while(x--){for (i=0; i<13; i++){ }}}/****************************************************** ****/void beep(){uchar i;for (i=0;i<100;i++){delayB(4);BEEP=!BEEP; //BEEP取反}BEEP=1;}/****************************************************** **//*/*步进电机正转/*/****************************************************** **/void motor_ffw(){uchar i;uint j;for (j=0; j<8; j++) //转1*n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = FFW[i]; //取数据delay(2); //调节转速}}}/****************************************************** **//*/*步进电机反转/*/****************************************************** **/void motor_rev(){uchar i;uint j;for (j=0; j<8; j++) //转1×n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = REV[i]; //取数据delay(2); //调节转速}}}/****************************************************** **** 主程序******************************************************** **/main(){uchar r,N=64; //N 步进电机运转圈数因为我们的步进电机是减速步进电机减速比是1/64 所以这里N=64时步进电机外部的主轴转1圈while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ffw(); //电机正转if(K3==0){beep();break;} //退出此循环程序}}else if(K2==0){beep();for(r=0;r<N;r++){motor_rev(); //电机反转if(K3==0){beep();break;} //退出此循环程序}}elseP1 = 0xf0;}}/****************************************************** **/。