课程基于单片机的直流电机pwm调速.doc

上传人:小飞机 文档编号:4297254 上传时间:2023-04-14 格式:DOC 页数:21 大小:741.50KB
返回 下载 相关 举报
课程基于单片机的直流电机pwm调速.doc_第1页
第1页 / 共21页
课程基于单片机的直流电机pwm调速.doc_第2页
第2页 / 共21页
课程基于单片机的直流电机pwm调速.doc_第3页
第3页 / 共21页
课程基于单片机的直流电机pwm调速.doc_第4页
第4页 / 共21页
课程基于单片机的直流电机pwm调速.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《课程基于单片机的直流电机pwm调速.doc》由会员分享,可在线阅读,更多相关《课程基于单片机的直流电机pwm调速.doc(21页珍藏版)》请在三一办公上搜索。

1、课程基于单片机的直流电机pwm调速 目 录 1系统的方案设计11.1方案的分析11.2方案的制定22硬件的设计32.1单片机主电路的设计32.2数码管显示部分32.3 L298N调制电动机电路52.4 单片机驱动L298N模块63 软件设计73.1 操作键盘设计73.2 转速显示设计83.3 PMW调制94 仿真截图104.1 电机的正转工作状态104.2电机的反转工作状态115设计的体会12参考文献资料13附录14仿真图14原程序代码151系统的方案设计1.1方案的分析本课题以单片机为控制核心,用PMW控制技术实现对直流电机的速度及转向进行控制。从而实现在数码管上显示当前转速,分别用按键进行

2、加、减速及正反转控制。单片机的选取:按单片机机器字长可分为:4位(很少用),8位,16位,32位。按单片机内核可分为:MCS51、AVR、PIC、MSP、HT、ARM等等。按单片机厂家分就更多了,MCS51内核的厂家就有多种:如SST、Atmel、STC、winbond等。由于8位单片机的广泛应用场合及其不错的性性,一直受到小型电路解决方案的首选芯片,本方案采用ATMEL公司的AT89C51芯片做为驱动电机的核心电路模块,其性能足以扩展控制一个电机,而且该单片机支持在线编程并提供上千次的擦写功能。并以低廉的价格普及于当今市场中。数码管的选取,数码管分为单个数码管和多个数码管集成在一起。由于考虑

3、到电机转速能够达到很高,采用多个数码管集成在一起的比较省线,通过扫描动态显示数码管能够节省I./O接口,采用这种方式比较适合。 关于PMW波,PWM(Pulse Width Modulation)脉冲宽度调制,简称脉宽调制,是一种最初用语无线电通信的信号调制技术,后来在控制领域中(比如电机调速)也得到了很好的应用,于是形成了独特的PWM控制技术。PWM控制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在功率控制与变换的许多领域中。一般情况下,调节脉宽调制信号的脉宽有两种方法,一种方法是采用模拟电路中的调制方法,另一种方法是使用脉冲计数法。对于一般电机控制,采用第一种

4、方法在控制电压变化时需要DA转换器件。AT89S51没有集成DA转换模块。而通过脉冲计数法只需改变输出脉冲的占空比,而不需要额外的器件。从成本上考虑选用第二种方法比较合适。本设计采用由单片机控制实现的脉冲计数法。通过对定时器设初值,并且通过不断改变初值实现对脉冲的电平切换。由于本文使用的是PROTEUS进行仿真,直流电机的选择被定位在几种类型的电机中,其中有MOTOR、MOTOR-DC、MOTOR、MOTOR-ENCODER、MOTOR-STEPPER,通过比较参数,选取MOVTOR-ENCODER比较合适,其有转速脉冲输出端,通过单片机能够实现对转速脉冲的检测。 由于单片机的驱动能力有限,根

5、据要求可以构建H桥驱动电路,使用晶闸与二极管组合,实现对电机的驱动能力,并实现对电机的正反转操作。这是一种常规的思考方法,通过上网查资料,不难发现有更好的解决方案,有专门的驱动芯片,既然已有专门地为电机驱动而设计的芯片,就没必要再从新来设计;选用L298芯片来构成的电路结构基本上跟H桥驱动电路一样。L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用

6、标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。1.2方案的制定根据对设计的要求及相关资料的查询,最终确定了硬件使用方案,AT89S51单片机、L298N、四位数码管、MOVTOR-ENCODER作为主要的器件。其余像一些二级管,电容,电阻在此不再详细介绍。2硬件的设计2.1单片机主电路的设计在本次课题设计中我们选择了89C51芯片,其具有功能强、体积小、成本低、

7、功耗小等特点,它可单独地完成现代工业控制所要求的智能化控制功能,能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。组成最小单片机系统需要晶振,复位电路等。只有这样最小工作系统才能运行,其最小工作系统如图2-1所示。图2-1 单片机主电路图2.2数码管显示部分LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。其外形结构如图所示。它由8个发光二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。数码管有共阴极和共阳极两种结构规格,如图2-3所示。图中电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管

8、的发光二极管是阳极,并接高电平,对于需点亮的发光二极管将其阴极接低电平即可。静态显示方式直接利用并行口输出。LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。利用通信号串行输出。在实际应用中,多位LED显示时,为了简化电路,在系统不需要通信功能时,经常采用串行通信口工作方式0,外接移位寄存器74LS164、CD4094来实现静态显示。对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各

9、位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。为了实现LED显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出4位控信号;另一个用于输出段控信号,其连接图如下。 由于转速超过百转并有正负转的功能,选用4段数码管比较合适。由于外转I/O扩展较多,选用串口通信或动态扫描都能达到满意的要求,由于串口通信需要额外的锁存器,增加了成本,选用动态扫描是不错的选择。由外部电源及上拉电阻提供数码管的驱动能力。由P1口

10、作为数码管的片选端,P0口作为数码管的位选端。其电路图如图2-2所示。图2-2 数码管驱动电路图2.3 L298N调制电动机电路由L298N作为驱动电路 通过脉宽调制控制电机的驱动。当ENA与ENB控制使能端,IN1、IN2、IN3、IN4分别与OUT1、OUT2、OUT3、OUT4相对应输出相应的电平。使用直流/步进两用驱动器可以驱动两台直流电机。分别为M1和M2。引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转(如果信号端IN

11、1接低电平,IN2接高电平,电机M1反转)。控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。由此器件对电机进行控制,其结构图如图2-4所示:图2-3 L298N驱动电机2.4 单片机驱动L298N模块L298N可以驱动两个直流电机,此设计只用了一个电机,通过P3.0与P3.1控制电动机的正反,通过P3.2给脉宽调制波实现电机的调速即可。电路图如图2-5所示:图2-4 单片机驱动L298N电路图3 软件设计3.1 操作键盘设计由于有起动、停止、加速、减速、停止按键,使用查询方式比较合

12、适。其设计流程图如图3-1所示:执行子程序开始正转检测加速检测停止检测反转检测减速检测是否是是是是否否否否图3-1 键盘程序流程图由于正转与反转之间不能由正转直接跳转到反转,应先停止后再反转。应加一个判断程序禁止其操作。其操作代码为QIDONG:JNB P2.0,QI LJMP START1 QI: JB P3.1,TK 检测是否是在反转运行状态,如果是则不执行。 SETB P3.0 CLR P3.1 TK: JNB P3.0,TM SETB P3.0 CLR P3.1 TM: LJMP START1停止时不仅要停止,而且要进行原数据复位操作,其代码段如下;停止TINGZHI:JNB P2.4

13、,TING LJMP START1 TING: CLR P3.0 CLR P3.1MOV R0,#80H ; 对寄存器中数据进行复位初使化 MOV R1,#80H LJMP START13.2 转速显示设计转速是通过外部中断计数,然后通过定时器定时,定时时间到采集外部数据个数,进而转换成转速,再通过二进制调速十进制指令最后通过数码管显示。其程序流程图如图3-2所示:中断采集外部脉冲个数定时器时间到将数据传送数据转换数据送数码管图3-2 转速显示流程图3.3 PMW调制PMW是电机调速的关键,通过定时器装添定时时间控制定时器的时间,进而控制脉宽的宽度,进行对电机进行调速。通过两个寄存器R1 与R

14、0的值,将其装入定时器0中,通过对R0与R1进行INC与DEC的变化,进而调制脉宽。其设计流程图如图3-3所示:否取寄存器中值装入定时器 脉宽输出判断是否有加减速按键按下将R0与R1值进行变化是否图3-3 PMW脉宽调制4仿真截图4.1 电机的正转工作状态未启动的状态如图4-1所示:图4-1 未启动时状态正常情况状态如图4-2所示:图4-2 正常情况状态最大转速状态如图4-3所示:图4-3 最大转速状态最小转速状态如图4-4所示: 图4-4 最小转速状态4.2电机的反转工作状态反转正常状态如图4-5所示:图4-5 反转正常状态最大转速状态如图4-6所示:图4-6最大转速状态最小转速状态如图4-

15、7所示:图4-7 最小转速状态停止时状态如图4-8所示:图4-8 停止时状态5设计的体会通过这次课程设计,使我学到了很多,首先,光看书是不管用的,尽使书看的再多,不实践到真正应用时才发现自己的知识是多么的的浅,这就如英文的26个字母,字母谁都认识,但组成很多单词就是不是所有人都认识了,单片机太灵活了,可以这样用,可以那样用。很多方法,这就如一辆车,你想怎么驾驭它就怎么驾驭它,关键是需要好的技术与功底,通过这次课设,我初步了解了些,如果真要在单片机方面有所发展,编程,仿真,从小到大,是必须的。经过大量的各种器件的使用与编程,才能掌握一门技术。这次课设让我受益匪浅,无论从知识上还是其他的各个方面。

16、上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。 单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习

17、,学好了单片机也就多了一项生存的本钱。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。参考文献资料1 肖看,李群芳.单片机原理、接口及应用.清华大学出版社.2010.92 楼然苗.单片机课程设计指导.北京:北京航空航天大学出版社.2002.3滕志军今日电子J基于超声波检测的倒车雷达设计2006,(9):15-174徐科军传感器与检测技术M北京:电子工业出版社,2007:110-113,160-1615潘新民王燕芳微型计算机控制技术实用教程M北京:电子工业出版社,2007:110-113,160-1616张立电子世界J电动小车的循迹 2004,(6):45 附录仿真图原程序代码ORG

18、0000HAJMP STARTORG 000BHAJMP IV0ORG 0013HAJMP INT5ORG 001BHAJMP IV1;程序的初始化阶段START: MOV R6,#00HMOV R2,#05HMOV R0,#80HMOV R1,#80HMOV TMOD,#11HMOV TH1,#80HMOV TL1,#00HMOV TH0,#3CHMOV TL0,#0B0HSETB TR0SETB TR1SETB EASETB ET1SETB ET0SETB IT1SETB EX1;主程序阶段START1:JB P3.0,NEX JNB P3.1,NEX MOV P0,#00000001B

19、MOV P1,#10111111B ACALL DELAY NEX: MOV DPTR,#TAB MOV A,32H MOVC A,A+DPTR MOV P0,#00000010B MOV P1,A ACALL DELAY MOV A,31H MOVC A,A+DPTR MOV P0,#00000100B MOV P1,A ACALL DELAY MOV A,30H MOVC A,A+DPTR MOV P0,#00001000B MOV P1,A ACALL DELAY MOV P2,#0FFH JNB P2.4,TINGZHI JNB P2.0,QIDONG JNB P2.1,FANZHUA

20、N JNB P2.2,JIASU JNB P2.3,JIANSU LJMP START1;正转QIDONG:JNB P2.0,QI LJMP START1 QI: JB P3.1,TK SETB P3.0 CLR P3.1 TK: JNB P3.0,TM SETB P3.0 CLR P3.1 TM: LJMP START1;反转FANZHUAN:JNB P2.1,FAN LJMP START1 FAN: JB P3.0,TW SETB P3.1 CLR P3.0 TW:JNB P3.1,TN SETB P3.1 CLR P3.0 TN: LJMP START1;停止TINGZHI:JNB P2

21、.4,TING LJMP START1 TING: CLR P3.0 CLR P3.1 MOV R0,#80H MOV R1,#80H LJMP START1;加速JIASU:LCALL DELAY JNB P2.2,JIA LJMP START1 JIA:CJNE R0,#01H,NEXT LJMP START1 NEXT:DEC R0 INC R1 LJMP START1;减速JIANSU:LCALL DELAY JNB P2.3,JIAN LJMP START1 JIAN:CJNE R0,#0FEH,NEXT1 LJMP START1 NEXT1:INC R0 DEC R1 LJMP S

22、TART1 ;定时器判断PMWIV1:JB P3.2,NX MOV A,R0 MOV TH1,A MOV TL1,#00H CPL P3.2 AJMP NETX NX:MOV A,R1 MOV TH1,A MOV TL1,#0FFH CPL P3.2NETX:RETI ;中断每一个脉冲数加1 INT5: INC R6 RETI;定时器实现每100ms的记数,转换成转数 IV0: DJNZ R2,NEXT2 MOV R2,#25 CLR A ;先清零 MOV R3, A MOV R4, A MOV R5, #16 ;共转换十六位数 MOV A,R6 MOV B,#1 MUL AB MOV R6,

23、ALOOP:CLR C MOV A,R6 ;从待转换数的高端移出一位到Cy RLC A MOV R6,A MOV A,b RLC A MOV b, A MOV A, R4 ;送到BCD码的低端 ADDC A, R4 ;带进位加。自身相加,相当于左移一位 DA A ;十进制调整,变成BCD码 MOV R4, A MOV A, R3 ADDC A, R3 DA A MOV R3, A DJNZ R5, LOOP ;共转换十六位数 MOV A,R4 ANL A,#0FH MOV 30H,A MOV A,R4 SWAP A ANL A,#0FH MOV 31H,A MOV A,R3 ANL A,#0FH MOV 32H,A MOV R6,#00HNEXT2: MOV TH0,#3CH MOV TL0,#0B0H RETI ;数码管显示延时程序DELAY:MOV 60h,#10 Y:MOV 70h,#00H DJNZ 70h,$ DJNZ 60h,Y RET;数码管字库选择 TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号