当前位置:文档之家› 直流小电动机调速系统

直流小电动机调速系统

题目直流小电机测速系统一.题目要求设计题目:直流小电动机调速系统描述:采用单片机、uln2003为主要器件,设计直流电机调速系统,实现电机速度开环可调。

具体要求:1、电机速度分30r/m、60r/m、100r/m共3档;2、通过按选择速度;3、检测并显示各档速度。

实验器件:实验板、STC89C52、直流电机、晶振(12MHz)、电容(30pFⅹ2、10uFⅹ2)、)uln2003、小按键、按键(4个)、、数码管、以及电阻等二.组分工摘要在电气时代的今天,电动机在工农业生产与人们日常生活中都起着十分重要的作用。

直流电机作为最常见的一种电机,具有非常优秀的线性机械特性、较宽的调速围、良好的起动性以及简单的控制电路等优点,因此在社会的各个领域中都得到了十分广泛的应用。

本文设计了直流电机测速系统的基本方案,阐述了该系统的基本结构、工作原理、运行特性及其设计方法。

本系统采用PWM 测量电动机的转速,用MCS-51单片机对直流电机的转速进行控制。

本设计主要研究直流电机的控制和测量方法,从而对电机的控制精度、响应速度以及节约能源等都具有重要意义。

·关键词:直流电机单片机 PWM 转速控制硬件部分1.时钟电路系统采用12M晶振与两个30pF电容组成震荡电路,接STC89C52的XTAL1与XTAL2引脚2.按键电路三个按键分别控制电机的不同转速,采用开环控制方法3.电机控制与驱动部分电机的运行通过PWM波控制。

PWM波通过STC89C52的P2.4口输出。

显示部分采用4位共阳极数码管实现转速显示。

数码管的位选端1~4分别接STC89C52的P2.0~P2.3管脚。

完整仿真电路图软件部分系统软件采用Keil集成开发环境开发程序如下:#include <reg51.h>sbit P2_0=P2^0; //数码管位sbit P2_1=P2^1;sbit P2_2=P2^2;sbit P2_3=P2^3;sbit P2_4=P2^4; //电机位sbit keysp30=P1^1; //30sbit keysp60=P1^2; //60sbit keysp100=P1^3; //100unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};unsigned int spd; //电机转速unsigned char ge,shi,bai,qian; //电机转速spd的各个位unsigned int counter=0; //光电传感器脉冲数unsigned int pwm; //pwm占空比unsigned int mid; //占空比设置值unsigned int c; //设定多长时间计算一次速度void display(); //数码管显示电机速度void delay(); //延迟函数void ctrlpwm(); //控制电机占空比void speed(); //计算电机速度,放于motorspeed变量中void keys(); //按键扫描void main(){P2=P2&0x0f;vid=0;initial();while(1){keys();display();ctrlpwm();speed();}}void initial() //初始化程序{EA=1; //开启总中断EX0=1; //开启外部中断0IT0=1; //设置成下降沿触发方式TMOD=0x01; //设置定时器0为模式1,即16位计数模式TH0=(65536-10000)/256; //计数时间为10msTL0=(65536-10000)%256;ET0=1; //开启定时器0中断TR0=1; //启动定时器0}void keys() //键盘扫描{if(keys1 == 0){delay();if(keysp1 == 0)vid=1;}if(keys2 == 0){delay();if(keys2 == 0)vid=3;}if(keys3 == 0){delay();if(keys3 == 0)vid=5;}}void speed(){if(c>=100) //100*10ms=1s计算一次电机转速{frq1=counter/3; //转的圈数除以时间counter=0; //清零脉冲数c=0; //清零标志}}void ctrlpwm(){if(pwm>=0 && pwm<vid){ P2_4=1;}else if(pwm>=mid && pwm<10){P2_4=0;}else pwm=0;}void _TIMER0() interrupt 1{TH0=(65536-10000)/256; //重新装入初值,计数时间为10msTL0=(65536-10000)%256;pwm++;c++;}void _INT0() interrupt 0{counter++;}void display() //数码管显示函数{ge=spd%10;shi=spd/10%10;bai=spd/100%10;qian=spd/1000%10;P2_0=0;P0=table[qian]; delay();P0=0xff;P2_0=1;P2_1=0;P0=table[bai]; delay();P0=0xff;P2_1=1;P2_2=0;P0=table[shi]; delay();P0=0xff;P2_2=1;P2_3=0;P0=table[ge]; delay();P0=0xff;P2_3=1;}void delay() //延迟函数{unsigned char i;for(i=10;i>0;i--) ;}系统调试系统的调试包括两方面,软件的仿真和硬件电路最后的测试。

软件的仿真利用Proteus Pro 7.5 对系统进行仿真测试。

利用keil 软件编写程序,并将程序加载到单片机上。

主要测试系统电路的设计和验证程序逻辑的正确性,结果显示正确。

硬件调试是指硬件系统完成后对硬件电气性能的测试。

主要测试各功能的完整性可靠性,以及系统电气性能的稳定性。

实验总结这一次的课程设计让我学到了不少的东西,由于有前几次的经验,这次课程设计总的来说还是比较顺利的。

从原理图的设计,电路板的焊接到写课程设计论文,在这个过程中我们也遇到了很多的困难,如成员间分工不明确,程序大家都不熟悉等。

这次课程设计给我最大的体会就是有很多东西如果不是自己亲自动手,只在书本上是学不到的,设计初期要考虑周到,否则后期会带来很多不必要的麻烦。

虽然可能会多花一些时间,但这比空想要有效的多。

做事情一定要细心,更要耐心,遇到问题要慢慢去检查,然后仔细分析后再解决;除此之外,还要有合作精神,注重团队合作,和合作者一起做,相互鼓励,互相弥补不足之处,很多难点的突破都来自于与同学的交流,交流使自己获得更多信息,开拓了思路,这样很多事情就成了。

本次设计把理论应用到了实践中,同时通过设计,也加深了自己对理论知识的理解和掌握,在解决困难的过程中,获得了许多专业方面的知识,拓展了视野。

提高了理论水平和实际的动手能力,学会了解决问题的方法,激发了我们的探索精神。

这样的课程设计是很好的锻炼机会,通过实验设计使我深入了解到课程设计在大学学习的重要性,课程设计增强了我们的实践动手能力,也为大四后学期的毕业设计提供了宝贵的经验。

本次实习我与我的组员做的是直流电机测速,当老师给出题目时,我们还是按照以前实习的解题步骤一步步的做,首先是查找相关的资料,如PWM 的工作原理。

查完资料后,运用以前我们所学的C语言知识对我们的题目进行模块化分类。

刚开始查阅完资料进行编程时,错误百出,毕竟好久没用C编程了,按照出现的错误慢慢的将程序改好,当然也请教了一些这方面的高手指教。

然后我们组成员将其进行仿真,焊电路板进行硬件连接,将程序下到单片机上,发现显示是有错误的,然后又将软件程序来来回回修改好多次,才最终正确!从中发现理论与实践还是有很大的差距,我们应该多多的动手进行实践,而且我们以前学的知识一定不能丢弃,真的是书到用时方恨少。

同时感老师的辛勤付出,!!!这次实验使用了软件keil和Proteus 7 Professional,其中keil用来编写C 语言程序,以及编译连接使之产生后缀名为hex的文件,将其烧录在软件Proteus 7 Professional中进行测试仿真调试。

这次实习的重点就是如何编写程序以及仿真中的行骗各个管脚的连接问题,主要的芯片有51、uln、led显示、电机。

首先分清各管脚起什么作用,比如说晶振要与51的XTAL1和XTAL2连接等等。

其次还要知道那个管脚是高电平哪个是低电平、跟谁连才能达到选通。

通过同组同学所编程序,就可以清楚的知道这些芯片的连接,再细心的对照各个管脚的初始化、定义来连接各个芯片。

在仿真的时,我学到的就是熟练掌握使用keil和proteus 7 Professional软件,比如知道在proteus 7 Professional中如何正确的找出单片机、uln、led显示、电机等这些芯片,怎么将keil中运行好的程序烧录到proteus 7 Professional中,然后正确的运行。

当同组的同学咁好板子后,接通电源时发现led显示不够亮,所以就进行改进,通过再接入放大器放大信号就可以使led更好的显示出来。

总的来说这次实习,受益匪浅,不仅熟悉了两个软件的使用更进一步的将所学的知识实践了出来,以前没有怎么接触过这两个软件,现在发现我索要学习的还很多。

合作也是我收获很多的一点。

通过两个星期的课程设计学习;经过对51单片机各管脚性能的了解,以及用途的深刻学习;对2003芯片的使用场合,以及电机驱动的了解;数码管各个管脚显示的原理的学习;使我对整个实验布局有了大体的了解;本次课程设计我主要负责硬件,同时对其他有所了解;硬件连接过程中使我对晶振,复位电路有了新的认识,还有按键过程中,通过按键改变占空比,实现对电机速度的改变,以及中断对整个程序运行的影响;调试硬件过程中出现了数码管显示不清晰,以及闪动太快,给计数带来困难;通过加上拉电阻,以及对延时时间的调节实现软硬件的契合;本次试验我受益匪浅,为以后我在实际中应用打下了良好的基础;以及通过我们的团队合作使我明白了团队的重要性,为我以后为人处世开启了明灯。

相关主题