当前位置:文档之家› 智能电机转速控制显示系统设计

智能电机转速控制显示系统设计

电子技术课程设计题目:智能电机转速控制显示系统设计学院计算机与通信工程学院专业学号姓名Lei Ke指导老师leike摘要当今社会,电动机在工农业生产与人们日常生活中都起着十分重要的作用。

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

我希望通过对电子电路设计及制作课程设计等环节,力求达到以下作用和目的:即进一步掌握模拟数字电子技术的理论知识,培养工程设计能力和综合分析问题、解决问题的能力;基本掌握常用电子电路的一般设计方法,提高对电子电路的设计和实验能力;熟悉并学会使用电子元器件,为以后从事生产和科研工作打下一定基础。

以下设计是以单片机为核心设计一个电动机转速测定以及数据显示系统,要求对转速范围在0—166r/min的直流调速电动机进行测量并显示,转速数据显示精度要达到转速个位数和加速、减速、定速、电机正转和反转的实时控制。

本设计使用12V直流电机,将直流电机测速装置产生的脉冲信号输入到单片机外部中断0口,单片机工作在内部定时器工作方式0,对周期信号进行计数,调用计算公式计算出每秒的转速。

调用显示程序在数码管上,其主要内容是单片机部分主要完成转速的测量,数码管显示部分主要把转速显示出来,显示范围在0—166r/min之间。

关键词:直流电机单片机转速控制数据显示目录摘要 (2)目录 (3)1.引言 (4)2总体设计 (5)2.1基本原理 (5)2.2系统总体框图及设计思路 (6)3.详细设计 (6)3.1 硬件设计 (7)3.2 软件设计. (8)3.2.1程序设计思路 (8)3.2.2 程序流程图 (9)3.2.3 程序代码 (11)4. 系统调试及分析 (15)5.心得体会 (16)参考文献 (17)1.引言电子计技术的高速发展,促使直流电动机逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术进入到一个新的阶段。

直流电动机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动中得到广泛应用。

从控制角度来看,直流调速还是交流拖动系统的基础。

早期直流电动机的控制以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制系统的硬件部分非常复杂,功能单一,而且系统非常不灵活、调试困难。

随着单片机技术的日新月异,使得许多控制功能以及算法可以采用技术来完成,为直流电机的控制提供了更大的灵活性,并使系统能达到更高的性能。

在传统的生产行业中,经常会遇到需要测量转速的场合并且显示其转速及瞬时转速。

在现代化的工业生产过程中,为了实现各种生产工艺过程,需要各种各样的生产机械,拖动各种生产机械运转,可以采用气动,液压传动和电力拖动。

由于电力拖动具有控制简单、调节性能好、损耗小、经济。

能实现远距离控制等一系列优点,因此大多数机械都采用电力拖动。

按照电动机的种类不同,电力拖动系统分为直流电力拖动和交流电力拖动两大类。

早期的生产机械如通用机床、风机、泵等不要求调速或调速要求不高,以电磁式电器组成的简单交、直流电力拖动即可以满足。

随着工业技术的发展,对电力拖动的静态与动态控制性能都有了较高的要求,具有反馈控制的直流电力拖动以其优越的性能曾一度占据了可调速与可逆电力拖动的绝大部分应用场合。

自20年代以来,可调速直流电力拖动较多采用的是直流发电机-电动机系统,并以电机扩大机、磁放大器作为其控制元件。

电力电子器件发明后,以电子元件控制、由可控整流器供电的直流电力拖动系统逐渐取代了直流发电机-电动机系统,并发展到采用数字电路控制的电力拖动系统。

这种电力拖动系统具有精密调速和动态响应快等性能。

这种以弱电控制强电的技术是现代电力拖动的重要特征和趋势。

交流电动机没有机械式整流子,结构简单、使用可靠,有良好的节能效果,在功率和转速极限方面都比直流电动机高;但由于交流电力拖动控制性能没有直流电力拖动好,所以20世纪以来,在可逆,可调速与高精度的拖动技术领域中,相当时期内几乎都是采用直流电力拖动。

直流电动机作为执行机构被广泛应用于各类控制系统中,其驱动与转速精度是电动机能够稳定工作的关键。

为此,提出了一种直流电机驱动与转速测量系统的设计方法。

利用电子信息技术改造传统产业,可以提高生产效率。

如果应用现代化手段对电机转速进行科学改变,精确测量,并辅以数码显示,超速报警等装置,对工业,生活中的一些旋转设备的速度以及需要控制其速度的仪器和用品加以控制和测量,会给生产和生活带来很大的方便。

随着计算机的广泛应用,特别是高性价比的单片机的出现,转速测量普遍采用了以单片机为核心的数字化,智能化。

本设计以单片机为中心,霍尔传感器为测量元件,全数字化的测速仪器。

这在工业控制和民用电器中都有较高的价值。

转速是工程中应用非常广泛的一个参数,其测量方法很多,而模拟量的采集和模拟处理一直是转速测量的主要方法。

本文的研究任务是研究电动机转速测定系统的设计。

通过对AT89C51相关芯片的了解,实现对该系统的硬件与软件的设计。

以单片机为核心器件,单片机通过对负脉冲计数,可计算出电机的转速,在超高时、低速限时,有报警显示,其优点是硬件电路简单,软件功能完善,测量速度快,精度高,控制系统可靠,性价比较高等优点。

2. 总体设计2.1基本原理本设计以单片机为核心设计一个电动机转速测定以及数据显示系统,要求对转速范围在0—166r/min的直流调速电动机进行测量并显示和加速、减速、定速、电机正转和反转的实时控制,转速数据显示精度要达到转速个位数。

本设计使用12V直流电机,将霍尔传感器产生的脉冲信号输入到单片机外部中断0口,单片机工作在内部定时器工作方式0,对周期信号进行计数,调用计算公式计算出转速。

调用显示程序在LED上,其主要内容是单片机部分主要完成转速的测量,LED显示部分主要把转速显示出来,显示范围在0—166r/min之间。

2.2系统总体框图及设计思路总体设计思路:本设计利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现电机的调速、定速、正反转、显示速度控制。

用按键控制单片机的P3.6、3.7、RST接口,再通过单片机控制直流电机驱动来实现直流电机的调速和定速的功能,然后直流电机将转速信息回传给单片机,最后单片机把转速信息发送给数码管驱动,来控制数码管上显示速度信息。

用外围电路控制电机的正反转。

3.详细设计3.1 硬件设计硬件原理如图1所示。

图1中,直流电机通过L298进行驱动,直流电机的ENA引脚与单片机的P3.5(T1)相连,T1传送出PWM脉冲。

电机速度反馈送回单片机的P3.2,也就是INT0中断引脚。

按键分为电机加速、减速、正转、反转、定速5种,加速按键和减速按键分别与P3.6、P3.7、RST相连。

而正反转方向控制则通过拨动控制,其输出通过反相器反相后与电机驱动芯片L298的IN1相连。

显示数码管选用的是6位一体的7段共阳数码管,数码管显示数据由单片机P1口来传送,数码管各位的片选线是分别由单片机的P0.0~P0.5通过总线驱动芯片74LS245来完成的。

图13.2软件设计(1)设计思路分析根据前面的设计任务分析,可知本设计的软件程序应完成如下功能:首先,由定时器T1产生定是中断,从而产生PWM脉冲控制电机转动;其次,计算电机的转速,并产用于数码管上显示的转速显示数据,送至数码管显示,显示每隔1s更新一次;然后,检测加速与减速按键的动作,并按照按键情况来响应需求。

(2)程序流程图定时器1中断服务子程序流程图速度子程序流程图C51源程序#include<reg51.h>#include<math.h>#define uchar unsigned char#define uint unsigned int#define ON 0#define OFF 1#define PWM_RANK 20#define TIMER_BASE 1000bit FLAG=0;bit FLAG1=0;sbit PWM=P3^5;sbit MP=P3^2;sbit SPEED_UP=P3^6;sbit SPEED_DOWN=P3^7;uchar speed =8;uchar code dispbit[6]={0x20,0x10,0x08,0x04,0x02,0x01};uchar code seg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};uchar disbuf[6]={0,0,0,0,10,10};uint temp[6];uint discount=0;//uint timecount=0;uint T0count=0;//uint count_store=0;uint time=0,time1=0;uint st[2];uint st1[2];uint x;uint mx,minx;uint n,j,b;/****主程序****/void show();void main(){ /*定时器初始化*/char tt;TMOD=0x11;EX0=1;IT0=1;IP=0x05;TH1=(65536-TIMER_BASE)/256; //设置定时器初始值TL1=(65536-TIMER_BASE)%256;TH0=(65536-TIMER_BASE)/256;TL0=(65536-TIMER_BASE)%256;TR1=1;ET1=1;TR0=1;ET0=1;EA=1;while(1) //在这里循环{if(FLAG==1) //如果转速标志开启{mx=st[0]-st[1]; //计算前一秒的转速FLAG=0; //关闭转速获取}x=mx; //获取转速(单位为r/s)在数码管前三位显示if(FLAG1==1){minx=st1[0]-st1[1];FLAG1=0;}/*****配置*****/// b=minx; // 60秒延时在t0中设置参数b=minx*12; //5秒延时//获取转速(单位为r/min)在数码管前三位显示,在t0中设置参数show(); //显示if(~SPEED_UP) //按键加速判断{for(tt=0;tt<100;tt++) //用于消除抖动+显示show();if(~SPEED_UP) //在次判断按键是否按下,用于硬件,软件仿真不会产生消抖{while(~SPEED_UP); //等待按键松开if(speed<20)speed++; //speed是控制占空比}}if(~SPEED_DOWN) //按键减速判断(同上){for(tt=0;tt<100;tt++)show();if(~SPEED_DOWN){while(~SPEED_DOWN);if(speed>0)speed--;}}}}void outside0() interrupt 0 //外部中断0{T0count++; //电机转一周T0count加1 }/******T0*********/void t0_serv() interrupt 1 // T0定时器{TH0=252;TL0=24;// if(time1>54000) //显示延时60sif(time1>5000) //显示延时5s{FLAG1=1;st1[1]=st1[0]; //把前5秒的Tocount值给st1[1]st1[0]=T0count; //获取当前t0count值time1=0;}else time1++; //没到5秒继续++}/*****T1中断*****/void t1_serv() interrupt 3 //T1 实现pwm调速{//TR1=0;PWM=1;TH1=252; //需要重装初值TL1=24;time++;if((time%20)<speed)PWM=1; // 实现pwm调速else PWM=0; //实现pwm调速if((time%890)==1) //如果时间间隔1秒,获取t0count {FLAG=1; //开启获取速度标志st[1]=st[0];st[0]=T0count;}// TR1=1;// ET1=1;// EA=1;}/***速度显示*****/void show(){uint i;for(i=0;i<3;i++){temp[i]=0;}i=0;while(x/10) //转速值转化显示数据(前三位){temp[i]=x%10;x=x/10;i++;}temp[i]=x;i=3;while(b/10) // 转速值转化显示数据(后三位){temp[i]=b%10;b=b/10;i++;}temp[i]=b;for(i=0;i<6;i++){disbuf[i]=temp[i];}P0=dispbit[discount]; //根据前面定义P1=seg[disbuf[discount]]; //根据前面定义discount++;if(discount==6)discount=0;}4. 系统调试及分析首先打开KEIL C51主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成51单片机可执行的HEX文件。

相关主题