直流电机控制原理及C程序_第1页
直流电机控制原理及C程序_第2页
直流电机控制原理及C程序_第3页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目八 键盘控制电机方向和转速【教学目标】终极目标能利用AT89S52单片机及独立键盘,通过C语言程序实现键盘控制步进电机和直流电机的速度和方向,完成单片机输入输出控制系统的设计、运行及调试。促成目标1. 了解单片机产品开发的流程;2. 了解步进电机和直流电机结构和工作原理;3. 掌握步进电机和直流电机速度、方向控制关键技术;4. 掌握头文件的编写方法;5. 掌握电机速度、方向控制的电路设计和编程的方法;6. 会利用单片机I/O 口实现电机速度、方向控制。8.1单片机产品开发单片机产品开发是为完成某项任务而研制开发的单片机应用系统,是以单片机为核心, 配以外围电路和软件,能实现确定任务、功能的

2、实际应用系统。根据不同的用途和要求,单 片机产品的系统配置及软件也有所不同,但它们的开发流程和方法大致相同。单片机产品的结构单片机产品是由硬件和软件组成。硬件是指单片机、扩展的存储器、输入输出设备等硬件部件组成的,软件是各种工作程序的总称。一个典型单片机产品结构如图8-1所示。图8-1典型单片机产品结构从图 8-1 不难看出单片机产品所需要的一般配置:(1)单片机。女口 AT89C51 AT89C52 AT89S51 以及 AT89S52等单片机。( 2)人机交流设备。输入设备有键盘和按键,输出设备有数码管、液晶显示模块和指 示灯等。( 3)信号采集的输入通道。如出租车的测距、测速装置,温控系

3、统的温度传感器、洗 衣机的水位测量等设备。( 4)向操作对象发出各种控制信号的输出通道。如空调启动压缩机的开关电路,控制 彩电的频道切换、颜色、音量等的接口电路。( 5)与其他计算机系统或智能设备实现信息交换, 还需配置通信接口电路。如 RS-232、RS-485 等。(6)有时还需扩展外部 RAM EEPRO用于存放数据。如彩电遥控系统中存放系统数据 的存储器。8.1.2 单片机产品开发流程1 确定功能技术指标单片机产品开发流程是以确定产品的功能和技术指标开始的。首先要细致分析 研究实际问题,明确各项任务与要求,综合考虑系统的先进性 可靠 性 可维护性以及成本 经济效益,拟订出合理可行的技术

4、性能指标。2单片机产品总体设计在对单片机产品进行总体设计时, 应根据单片机产品提出的各项技术性能指标, 拟订出 性价比最高的一套方案。首先,应根据任务的繁杂程度和技术指标要求选择机型。 选定机型后, 再选择产品中要 用到的其它外围元器件,如传感器 执行器件等。在总体方案设计过程中, 对软件和硬件进行分工是一个首要的环节。 原则上, 能够由软 件来完成的任务就尽可能用软件来实现,以降低硬件成本,简化硬件结构。同时,还要求大 致规定各接口电路的地址 软件的结构和功能 上下位机的通信协议 程序的驻留区域及工 作缓冲区等。总体方案一旦确定,系统的大致规模及软件的基本框架就确定了。3硬件设计硬件设计是指

5、应用系统的电路设计,包括主机 控制电路 存储器I/O 接口 A/D 和D/A 转换电路等。硬件设计时,应考虑留有充分余量,电路设计力求正确无误,因为在系统 调试中不易修改硬件结构。硬件电路设计时应注意以下几个问题:( 1 )程序存储器一般可选用容量较大的 EPROM芯片,女口 27128( 16 KB)、27256( 32 KB)或 27512( 64 KB) 等。 尽量避免用小容量的芯片组合扩充成大容量的存储器,程序存储器容量大些, 则编程空间宽裕些,价格相差也不会太多。( 2)数据存储器和 I/O 接口根据系统功能的要求,如果需要扩展外部RAM或 I/O 口,那么RAM芯片可选用6116(

6、 2KB)、6264( 8 KB )或62256( 32 KB ),原则上应尽量减少芯片数量,使译码电路简单。I/O接口芯片一般选用 8155 (带有256 KB静态RAM或8255。这类芯片具有口线多、 硬件逻辑简单等特点。 若口线要求很少, 且仅需要简单的输入或输出功能, 则可用不可编程 的TTL电路或CMOSI路。A/D 和 D/A 电路芯片主要根据精度、速度和价格等来选用,同时还要考虑与系统的连接 是否方便。(3)地址译码电路 通常采用全译码、 部分译码或线选法, 应考虑充分利用存储空间和简化硬件逻辑等方面的问题。MCS-51系统有充分的存储空间,包括 64 KB程序存储器和64 KB

7、数据存储器,所 以在一般的控制应用系统中, 主要是考虑简化硬件逻辑。 当存储器和 I/O 芯片较多时, 可选 用专用译码器 74S138或74LS139等。( 4)总线驱动能力MCS-51 系列单片机的外部扩展功能很强,但 4 个 8 位并行口的负载能力是有限的。 P0 口能驱动8个TTL电路,P1P3 口只能驱动4个TTL电路。在实际应用中,这些端口的负载不应超过总负载能力的 70%,以保证留有一定的余量。如果满载,会降低系统的抗干扰。在外接负载较多的情况下,如果负载是MOS芯片,因负载消耗电流很小,所以影响不大。如果驱动较多的 TTL电路,则应采用总线驱动电路,以提高 端口的驱动能力和系统

8、的抗干扰能力。数据总线宜采用双向 8 路三态缓冲器 74LS245 作为总线驱动器, 地址和控制总线可采用 单向8路三态缓冲区74LS244作为单向总线驱动器。(5)系统速度匹配MCS-51系列单片机时钟频率可在 212 MHz之间任选。在不影响系统技术性能的前提 下, 时钟频率选择低一些为好, 这样可降低系统中对元器件工作速度的要求, 从而提高系统 的可靠性。4抗干扰措施单片机产品的工作环境往往都是具有多种干扰源的现场, 抗干扰措施在单片机产品设计 中显得尤为重要。根据干扰源引入的途径,抗干扰措施可以从以下两个方面考虑。(1)电源供电系统为了克服电网以及来自系统内部其它部件的干扰, 可采用隔

9、离变压器、 交流稳压、 线滤 波器、稳压电路各级滤波等防干扰措施。(2)电路上的考虑 为了进一步提高系统的可靠性,在硬件电路设计时,应采取一系列防干扰措施:1)大规模IC芯片电源供电端 VCC都应加高频滤波电容, 根据负载电流的情况, 在各级 供电节点还应加足够容量的退耦电容;2)开关量 I/O 通道与外界的隔离可采用光电耦合器件,特别是与继电器、可控硅等连 接的通道,一定要采用隔离措施;3)可采用CMO需件提高工作电压(+15 V),这样干扰门限也相应提高;4)传感器后级的变送器尽量采用电流型传输方式,因电流型比电压型抗干扰能力强;5)电路应有合理的布线及接地方式;6)与环境干扰的隔离可采用

10、屏蔽措施。5软件设计 单片机产品的软件设计是产品研制过程中任务最繁重的一项工作,难度也比较大。 对于某些较复杂的应用系统,不仅要使用汇编语言来编程,有时还要使用高级语言。单片机产品的软件主要包括两大部分: 用于管理单片机工作的监控程序和用于执行实际 具体任务的功能程序。对于监控程序, 应尽可能利用现成的监控程序。 为了适应各种应用的需要, 现代的单片 机开发系统的监控软件功能相当强, 并附有丰富的实用子程序, 可供用户直接调用, 例如键 盘管理程序、显示程序等。因此,在设计系统硬件逻辑和确定应用系统的操作方式时,就应 充分考虑这一点。 这样可大大减少软件设计的工作量,提高编程效率。对于功能程序

11、要根据产品的功能要求来编程序。 例如,外部数据采集、 控制算法的实现、 外设驱动、故障处理及报警程序等。单片机产品的软件设计千差万别, 不存在统一模式。 进行软设计时, 尽可能采用模块化 结构。 根据系统软件的总体构思, 按照先粗后细的方法, 把整个系统软件划分成多个功能独 立、大小适当的模块。应明确规定各模块的功能,尽量使每个模块功能单一,各模块间的接 口信息简单、完备,接口关系统一,尽可能使各模块间的联系减少到最低限度。这样,各个 模块可以分别独立设计、 编制和调试, 最后再将各个程序模块连接成一个完整的程序进行总 调试。6单片机产品调试单片机产品开发必须经过调试阶段, 只有经过调试才能发

12、现问题, 改正错误, 最终完成 开发任务。实际上,对于较复杂的程序,大多数情况下都不可能一次性就调试成功,即使是 资深设计人员也是如此。单片机产品调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故 障, 包括设计性错误和工艺性故障。 软件调试是利用开发工具进行在线仿真调试, 除发现和 解决程序错误外,也可以发现硬件故障。程序调试一般是一个模块一个模块地进行, 一个子程序一个子程序地调试, 最后联起来 统调。利用开发工具的单步和断点运行方式,通过检查应用系统的CPU现场、RAM和SFR的内容以及 I/O 口的状态, 来检查程序的执行结果和系统 I/O 设备的状态变化是否正常, 从中

13、 发现程序的逻辑错误、转移地址错误以及随机的录入错误等。也可以发现硬件设计与工艺错误和软件算法错误。 在调试过程中, 要不断调整、 修改系 统的硬件和软件,直到其正确为止。联机调试运行正常后,将软件固化到EPROM中,脱机运行,并到生产现场投入实际工作,检验其可靠性和抗干扰能力,直到完全满足要求,单片机 产品才算研制成功。8.2 工作模块 21 步进电机控制系统设计与实现【工作任务】利用AT89S52单片机及独立键盘控制步进电机的速度和方向。独立键盘有反转按键、加速按键、减速按键和正转按键。步进电机电气参数:工作电压4.56.5 V,步进角是18。8.2.1 步进电机控制技术步进电机的结构及基

14、本知识点在工作模块 5 中已经介绍过了, 在这里只对实现步进电机 速度和方向控制的关键技术进行介绍。1 速度控制技术本工作模块使用的步进电机的步进角是 18 ,由于步进电机旋转角度与输入脉冲数目成正比,所以输入 20 个脉冲信号,步进电机就会旋转20 个步进角,且刚好转一圈(20 18 =360 )。那么怎么控制步进电机的转速呢?下面我们先分析如何实现步进电机转速 为30转/分和转速为60转/分。(1) 转速为30转/分旋转一圈的时间是 60s/30圈=2s,旋转一个步进角的时间是2s/20=100ms (每圈20个步进角)。也就是说给一个脉冲信号,旋转一个步进角,延时100ms,再给一个脉冲

15、信号,旋转一个步进角,延时100ms,,这样就可以获得转速为30转/分。(2) 转速为60转/分旋转一圈的时间是 60s/60圈=1s,旋转一个步进角的时间是 1s/20=50ms (每圈20个步 进角)。和转速为30转/分比较,脉冲信号之间的延时时间为50ms,延时时间变短,转速提咼了。根据以上分析,我们只要改变脉冲信号之间的延时时间,即改变每步之间的延时时间, 便可控制步进电机的转速。延时时间变短,转速提高,延时时间变长,转速降低。注意:步进电机的负载转矩与转速成反比,转速越快负载转矩越小,当转速快至其极限时,步进电机不再旋转。所以每走一步,必须延时一段时间。2.方向控制技术本工作模块是采

16、用1相励磁顺序,四种励磁状态为一个循环。只要改变励磁顺序, 就可以改变步进电机旋转方向。(1 )正转时,1相励磁顺序为:At Bt 3 X(2)反转时,1相励磁顺序为:DT Ct Bt At 步进电机控制系统电路设计按照工作任务要求, 步进电机控制系统电路 是由AT89S52单片机最小应用系统、 步进电 机驱动电路、键盘电路等模块构成。1. 键盘模块设计步进电机控制系统具有反转、加速、减速和正转4个功能,可以用4个按键实现。由于按键数目少,键盘模块设计采用独立键盘。这4个按键分别接到P2 口的P2.0、P2.1 、P2.2和P2.3引脚,为反转按键、加速按键、减速按键和正转按键。如图8-2所示

17、。U1R210kR510k12 34 56 78图8-2键盘电路2步进电机驱动模块设计由于步进电机的功率较大,步进电机驱动电路设计米用了咼电压、大电流的ULN2003AULN2003A的详细介绍请参阅项目二技能拓展部分。P3 口的P3.0、P3.1 、P3.2和P3.3四个引脚通过步进电机驱动电路分别接在步进电机的A B C、D。如图8-3所示。U11918XTAL1XTAL2RST291ALEEAP1.0/T2 P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0

18、.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1-P3.4/T0P3.5/T1P3.6/WRP3.7/RDU2:AAT89C52U2:BU2:CU2:D74LSit12旳9刃363534%65殂4茁2526岔28101仁2R7卜COM1B1C2B2C3B3C4B4C5B5C6B6C7B7CU31162314ULN2003A451312D2BCD220D3R8R9220D4图8-3步进电机驱动电路通过前面的键盘模块电路和步进电机驱动模块电路设

19、计,运行Proteus软件,新建"步进电机控制系统”设计文件。按图8-2和图8-3所示放置并编辑 AT89S52 CRYSTAL CARCAP-ELEC RES M0T0R-STEPPEFULN2003A 74LS04 及 BUTTON?元器件。完成步进电机控 制系统电路设计后,进行电气规则检测,直至检测成功。如图8-4所示。步进电机控制系统程序设计步进电机控制系统程序由main.h头文件、头文件包含和定义全局变量、步进电机运行函数run()以及主函数组成。1 .编写 main.h头文件为了程序的可读性和编程方便,在main.h头文件里面对用到的数据类型、接在P3 口上步进电机以及接

20、在 P3 口上按键进行宏定义。宏定义如下:#ifndef _MAIN_H_#define _MAIN_H_#defi ne uint un sig ned int#defi ne uchar un sig ned char#defi ne step_moto_port P3#define FZ_KEY (!(P2_0)#define UP_KEY (!(P2_1)#defi ne DOWN_KEY (!(P2_2)#defi ne ZZ_KEY (!(P2_3)#en dif2. 头文件包含和定义全局变量#i nclude <AT89X52.h>#i nclude <mai

21、n.h>uint speed=1000;/设置延时参数初值为最小值,既转速最快uint speed change=1000; /延时参数初值uchar dir=O;/设置方向,dir=1为反转,dir=0为正转3 步进电机运行函数run()这里采用的是1相励磁顺序,控制状态与 P3 口的控制码对应关系如表8-1所示。表8-1 控制状态与P3 口的控制码的对应关系控制状态P3 口控制码P3.3D相P3.2B相P3.1C相P3.0A相A相绕组通电01H0001B相绕组通电02H0010C相绕组通电04H0100D相绕组通电08H1000由表8-1可以看出,正转时,初始控制码为0x01,然后控

22、制码左移1位,获得下一位控制码。反转时,初始控制码为0x08,然后控制码右移1位,获得下一位控制码。代码如下:void run( void)speed = speed_change;while(speed-); /延时if(dir = 1)/* dir = 0,正转 */if(step_moto_port >= 0x08)/如果控制码>=0x08 (一个循环完成),取初始控制码step_moto_port=0x01;else/左移1位,获得下一位控制码,并从P3 口输出step_moto_port <<= 1;else/* dir = 1,反转 */if(step_mo

23、to_port <= 0x01)/如果控制码<=0x01 (一个循环完成),取初始控制码step_moto_port=0x08;else/右移1位,获得下一位控制码,并从P3 口输出step_moto_port >>= 1;4. 步进电机主函数 main()void mai n(void)step_moto_port=0x01;while(1)if(FZ_KEY) /设置反转 dir = 1;while(LEFT_KEY) ru n(); /等待按键释放if(ZZ_KEY) /设置正转 dir = 0;while(RIGHT_KEY)ru n();if(UP_KEY)

24、/力口速 if(speed_cha nge >= 2000)/延时参数减量为1000,每按一次UP_KE键减少1000speed_cha nge = speed_cha nge - 1000;while(UP_KEY)ru n();if(DOWN_KEY) /减速 if(speed_cha nge < 20000)/延时参数增量为1000,每按一次DOWN_KE!增力口 1000speed_change = speed_change + 1000; while(DOWN_KEY) ru n();run(); / end while(1) / end mai n步进电机控制系统程序设

25、计好以后,打开"步进电机控制系统”Proteus电路,加载"步进电机控制系统.hex ”文件。进行仿真运行,观察 步进电机运行是否 与设计要求相符。如图8-4所示。C130pFR1C210k厂X130pFrI10uF2tRST1929 30 -3TV必TAL1P0.0/AD0XTAL2P0.1/AD1P0.2/AD2P0.3/AD3RSTP0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7PSENALEP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12EA-P2.5/A13P1.0/T2P2.6/A14P2.7/A15P3.0/RXDP

26、1.1/T2EXP1.2P3.1/TXDP3.2/INT0P1.3P3.3/INT1P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RDU1CRYSTAL18AT89C52R2R3R4R510k10k10k10kDOWNU2:A74LS147Z15U2:B1617-ED-REDU374LS149D2U2:CA1161B215B2B2C314C3B3C4|13DLED-RED4B4C512677B7C5B6B5C6C39COM1C1213363574LS14IU2:D74LS14ULN2003AAD11D3LED-REDD4LED-REDR9图8-4步进电机控制系统仿真运行8.3工

27、作模块22直流电机控制系统设计与实现【工作任务】利用AT89S52单片机及独立键盘控制直流电机的速度和方向。 速按键、减速按键和正转按键。直流电机电气参数:额定工作电压独立键盘有反转按键、加5.0 Vo直流电机控制技术1 .认识直流电机永磁式换向器直流电机,是应用很广泛的一种,只要在它上面加适当电压电机就转动。(1)结构与工作原理永磁式换向器直流电机是由定子(主磁极)、转子(绕组线圈)、换向片(又称整流子)电刷等组成,定子作用是产生磁场,如图8-5所示。图8-5直流电机结构直流电压加在电刷上,经换向片加到电枢绕组(转子线圈),使电枢导体有电流流过,由于电机内部有定子磁场存在,所以电枢导体将受到

28、电磁力f的作用(左手定则),电枢导体产生的电磁力作用于转子,使转子以n(转/分)旋转,以便拖动机械负载。通过左手定则,可以判别电磁力 f方向(即转子旋转方向),如图8-6所示。图8-6转子旋转方向也就是说,转于是在定子磁场作用下,得到转矩而旋转起来。当它转动时,由于磁场的 相互作用,也将产生反电动势,它的大小正比于转子的速度,方向和所加的直流电压相反。(2)永磁式换流器电机特点1)当电机负载固定时,电机转速正比于所加的电源电压。2)当电机直流电源固定时,电机的工作电流正比于转予负载的大小。3)加于电机的有效电压,等于外加直流电压减去反电动势。因此当用固定电压驱动电 机时,电机的速度趋向于自稳定

29、。因为负载增加时,转子有慢下来的倾向,于是反电动势减 少,而使有效电压增加,反过来又将使转子有快起来的倾向,所以总的效果使速度稳定。4)当转子静止时,反电动势为零,电机电流最大。最大电流出现在刚起动的时候。5)转子转动的方向,可由电机上所加电压的极性来控制。6)体积小,重量轻。起动转矩大。都得到广泛的应用。方向控制、可变速度控制和速度的由于具备上述的那些特点,所以在医疗器械、小型机床、电子仪器、计算机、气象探空 仪、探矿测井、电动工具、家用电器及电子玩具等各个方面,对这种永磁式电机的控制,主要有电机的起停控制、 稳定控制。2 速度控制技术X1 19CRYSTAL1892930311234567

30、8U1XTAL1R5(即转子线圈)电压U进行控制。控XTAL2RSTPSENALEEAP1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C52R2R3R4调节直流电机转速最方便有效的调速方法是对电枢0k 制P电压的方法有多种,广泛应用脉宽调制PWM技术来控制直流电机电枢的电压。D138:所谓6PWM控制技术,就是利用半导体器件的导通与关断,把直流电压变成电压脉冲序列,35通过控制电压脉冲宽度或周期以达到变压的目的。p°.6/ad6 3rP0.7/AD7P2.038-方向控制技术leftP2.1/A923P2 2/A10 23P2.3/A直流电机的

31、转子转动方向可由直流电机上所加电压的极性来控制,可用桥式电路来控制直流电机的转动方向。控制直流电机正反转的桥式驱动电路有单电源和双电源两种驱动方P2.7/A1528式,0/R通常采用单电源的驱动方式, 动方式P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDPO.1/ADP0.2/ADP0.3/AD3DOWNRIGHT就可以满足实际的应用需要,所以这里只介绍单电源的驱如图8-7所示。图8-7 H桥方式驱动电路图8-7中的二极管称为续流二极管,主要作用是消除直流电机所产生的反向电动势。 极管是PNP三极管,基极为高电平时三极管关断,为低电平时三极管导通。直流电机正转时三极

32、管 Q1和Q4导通,反转时三极管 Q2和Q3导通,在这两种情况下, 加在直流电机两端的电压极性相反。当四个三极管全部关断时,直流电机停止转动。若是 Q1与Q3关断、Q2与Q4导通时,直流电机处于短路制动状态,将立即停止转动。这四种状 态所对应的H桥式驱动电路状态如图 8-8所示。图8-8直流电机和H桥式驱动电路四种对应状态832直流电机控制系统电路设计按照工作任务要求,直流电机控制系统电路 是由AT89S52单片机最小应用系统、H桥式驱动电路、独立键盘及直流电机构成。P3 口的P3.0、P3.1、P3.4和P3.5四个引脚分别接在 H桥式驱动电路的 PWM1PWM2PWM和口 PWM4 P2

33、口的P2.0、P2.1、P2.2和P2.3四个引脚分别接反转按键、加速按键、减速按键和正转按键。直流电机控制系统电路设计如图8-9所示。运行Proteus软件,新建“直流电机控制系统”设计文件。按图8-9所示放置并编辑AT89S52、CRYSTALCAR CAP-ELEC RES MOTOR1N4148 (二极管)、2N5771(三极管)、BUTTON 等元器件。完成直流电机控制系统电路设计后,进行电气规则检测,直至检测成功。直流电机控制系统程序设计直流电机有正转、反转、停止和制动四种运行状态。在这四种运行状态下,P3 口引脚与H桥式驱动电路对应关系如表8-2所示。表8-2 运行状态与P3 口

34、引脚的对应关系运行状态P3.5PWM4(Q4)P3.4PWM3(Q3)P3.1PWM2(Q2)P3.0PWM1(Q1)正转0110反转1001停止1111制动0101直流电机控制系统程序主要由头文件、初始化、按键功能处理、直流电机运行中断处理等组成。1编写 main.h 头文件 在这里只给出与工作模块 21 的 main.h 头文件不一样部分。 电机驱动接口是接在 P3.0 、P3.1、P3.4和P3.5,为了以后能对殊功能寄存器P3 口这4个寻址位进行操作,定义了 4个 sbit 类型位变量,代码如下:#define _Nop() _nop_()sbit PWM1 =P3A0;sbit PW

35、M4 =P3A5;sbit PWM2 =P3A1;sbit PWM3 =P3A4;2头文件包含和定义全局变量#include <AT89X52.h >#include <intrins.h> /程序中使用了 _nop_() ,此函数后面介绍#include <main.h> bit Moto_Dir=0;uchar irq_count; / uchar irq_count_t; / uchar PWM_TIME_H;/ 定义位变量,为 0 正转,为 1 反转 中断次数计数器 设置需要中断的次数/ 设置输出高电平的宽度uchar PWM_TIME_L; / b

36、it i=0; / i=1设置输出低电平的宽度输出高电平状态, i=1 输出低电平状态3直流电机控制系统初始化/*使Q1、Q2、Q3 Q4同时关断,电机处于停止状态 */PWM仁 1; PWM2=1; PWM3=1; PWM4=1;irq_count=0; /i=0;PWM_TIME_H=80; /PWM_TIME_L=20;/* 定时器 T1 初始化 */ET1=1; /TMOD=0x11;/ T1中断次数计数器清 0设置占空比为1:5,PW脉冲周期是100ms开 T1 中断 都为方式 1 计时 */TH1=0xFC; TL1=0x18; / T1TR1=1; /初值,定时时间 1ms(12

37、MHz)定时器启动EA=1;/开总中断4直流电机控制系统按键功能处理(1)反转按键处理if(FZ_KEY)ShortDelay();if(FZ_KEY) / 延时去抖Moto_Dir=1;PWM3=0; PWM4=1;while(FZ_KEY); /等待 FZ_KEY释放 / end if(FZ_KEY)(2) 正转按键处理 if(ZZ_KEY)ShortDelay();if(ZZ_KEY) / 延时去抖Moto_Dir=0;PWM3=1; PWM4=0;while(ZZ_KEY); /等待 ZZ_KEY释放 / end if(ZZ_KEY)(3) 加速按键处理if(UP_KEY)ShortD

38、elay();if(UP_KEY) / 延时去抖9:101:10 if(PWM_TIME_H > 10) / 最大占空比为 PWM_TIME_H-;PWM_TIME_L = 100-PWM_TIME_H; / end if(UP_KEY) while(UP_KEY); / end if(UP_KEY)(4) 减速按键处理if(DOWN_KEY)ShortDelay();if(DOWN_KEY) / 延时去抖 if(PWM_TIME_H < 90) / 最小占空比为 PWM_TIME_H+;PWM_TIME_L = 100-PWM_TIME_H; / end if(DOWN_KEY)

39、while(DOWN_KEY); / end if(DOWN_KEY)5直流电机控制系统中断处理按照按键处理设置,控制直流电机运行。interrupt 3 :是 T1 定时器中断, using 1 void timer1(void) interrupt 3 using 1 TH1=0xFC; TL1=0x18; / irq_count+;if (irq_count>=irq_count_t) / irq_count=0; / i=i; / if(i=1)T1定时器中断发 PWM脉冲,周期是 100ms。:选择第一组工作寄存器。代码如下:重装 T1 初值判断中断次数是否到计数器清 0高电平

40、或低电平状态标志转换irq_count_t = PWM_TIME_H;elseirq_count_t = PWM_TIME_L; if(Moto_Dir=1) PWM2=PWM2; PWM1=1; else PWM2=1; PWM1=PWM1; 直流电机控制系统程序设计好以后, 打开“直流电机控制系统” Proteus 电路,加载 “ 直 流电机控制系统 .hex ”文件。进行仿真运行,观察直流电机运行是否与设计要求相符。8.4 技能拓展 步进电机智能控制步进电机是利用输入数字信号转换成机械能量的电气设备,由于步进电机旋转角度与输入脉冲数目成正比, 只要控制输入的脉冲数目便可控制步进电机转动角

41、度。因此, 常用于精确定位和精确定速,如机器人均使用步进电机作动力,并且可以精确控制机器人的动作。8.4.1 步进电机智能控制思路通过工作模块 5 和工作模块 21 的学习,我们已经知道了步进电机必须加上驱动电路才 能转动, 驱动电路的信号输入端必须输入脉冲信号, 若无脉冲输入时, 转子保持一定的位置, 维持静止状态;反之,若加入适当的脉冲信号时,转子则会以一定的角度转动,如果加入连 续脉冲时,则转子旋转的角度与脉冲频率成正比。为此, 我们掌握了如何使用按键对步进电机进行方向和转速控制。但是我们如何对步进电机进行精确定位和精确定速呢?由于步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动

42、器接收到一个脉冲信号, 它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。这样,我们就可以通过以下两个方面对步进电机进行智能控制,达到精确定位和精确定速的目的。(1) 通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;(2) 通过控制脉冲频率来控制电机转动的速度和加速度,从而达到精确定速和调速的 目的。作为一种数字伺服执行元件,步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,步进电机智能控制可以广泛应用在数控机床、机器人、自动化仪表等领域。842步进电机智能控制组成步进电机智能控制主要包括:单片机、键盘输入模块、显示模块以及步进电机动控制模

43、块等部分。步进电机智能控制的结构框图如图8-10所示。图8-10步进电机智能控制结构框图键盘输入模块主要完成数据输入及控制输入;显示模块主要对步进电机设置和运行状态进行显示(如显示步进电机设置要旋转的数圈以及正反转指示等);步进电机控制模块主要是由单片机输出控制码到驱动电路控制步进电机的运转。【技能训练8-1】步进电机智能控制设计设计一个步进电机智能控制。要求能从键盘上输入步进电机转数,控制步进电机的正、 反转及启停,并显示转数。1. 键盘设计键盘采用的是矩阵式键盘,键盘电路设计参考工作模块10,键盘功能分配如下:(1) 0-9 :为数字键(2) * :正逆转转数设定完成后,按“ * ”启动步

44、进马达。(3) # :清除设定为正转及转数为00。(4) A:设定正逆转。按“ A”键则 LED亮,表示反转,再按则 LED指示灯灭,表示正 转,再按LED亮。2数码管显示模块设计数码管显示模块电路采用硬件译码输出字型码控制显示内容,数码管是阳极数码管,七段字形译码器用的是 74LS47,电路设计参考技能训练3-2。3. 步进电机控制模块设计步进电机控制模块电路采用有施密特触发器的六反方器74LS14和高电压、大电流的达灵顿晶体管数组产品 ULN2003A电路设计参考工作模块 21。4. 步进电机智能控制电路实现步进电机控制模块电路、键盘电路、数码管显示模块电路分别接在AT89S52单片机的P

45、0 口、P1 口、P2 口,接在P3.0的LED是步进电机正反转的指示灯,步进电机智能控制电 路设计如图8-11所示。C1U119PU.U/ADU亍crySt.18XTAL2P0.3/AD39RSTRST2928P2.7/A1510P3.0/RXD二,14,15-6.D1LTQGQEQFP0.1/AD1P0.2/AD2P0.6/AD6P0.7/AD7P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P3.1/TXDP3.2/INT0P0.4/AD4P0.5/AD5P3.6/WRP3.7/RDP2.0/A8P2.1/A9BI/RBORBIPSENAIEP3.3/INT1P3.4/T0P3.5/T130pFX171 *8 5*'2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论