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

上传人:b****7 文档编号:10675445 上传时间:2023-02-22 格式:DOCX 页数:17 大小:183.61KB
下载 相关 举报
智能电机转速控制显示系统设计.docx_第1页
第1页 / 共17页
智能电机转速控制显示系统设计.docx_第2页
第2页 / 共17页
智能电机转速控制显示系统设计.docx_第3页
第3页 / 共17页
智能电机转速控制显示系统设计.docx_第4页
第4页 / 共17页
智能电机转速控制显示系统设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

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

《智能电机转速控制显示系统设计.docx》由会员分享,可在线阅读,更多相关《智能电机转速控制显示系统设计.docx(17页珍藏版)》请在冰豆网上搜索。

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

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

 

电子技术课程设计

 

题目:

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

 

学院计算机与通信工程学院 

专业 

学号 

姓名 LeiKe

指导老师 leike

 

摘要

当今社会,电动机在工农业生产与人们日常生活中都起着十分重要的作用。

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

我希望通过对电子电路设计及制作课程设计等环节,力求达到以下作用和目的:

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

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

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

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

关键词:

直流电机单片机转速控制数据显示

 

2总体设计.................................................5

 

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来完成的。

图1

3.2软件设计

(1)设计思路分析

根据前面的设计任务分析,可知本设计的软件程序应完成如下功能:

首先,由定时器T1产生定是中断,从而产生PWM脉冲控制电机转动;

其次,计算电机的转速,并产用于数码管上显示的转速显示数据,送至数码管显示,显示每隔1s更新一次;

然后,检测加速与减速按键的动作,并按照按键情况来响应需求。

(2)程序流程图

 

YN

 

YN

 

N

Y

 

定时器1中断服务子程序流程图

 

速度子程序流程图

速度值转换成显示数据

传送数码管片选信号

传送显示数据

片选显示位清零

 

C51源程序

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineON0

#defineOFF1

#definePWM_RANK20

#defineTIMER_BASE1000

bitFLAG=0;

bitFLAG1=0;

sbitPWM=P3^5;

sbitMP=P3^2;

sbitSPEED_UP=P3^6;

sbitSPEED_DOWN=P3^7;

ucharspeed=8;

ucharcodedispbit[6]={0x20,0x10,0x08,0x04,0x02,0x01};

ucharcodeseg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

uchardisbuf[6]={0,0,0,0,10,10};

uinttemp[6];

uintdiscount=0;

//uinttimecount=0;

uintT0count=0;

//uintcount_store=0;

uinttime=0,time1=0;

uintst[2];

uintst1[2];

uintx;

uintmx,minx;

uintn,j,b;

/****主程序****/

voidshow();

voidmain()

{/*定时器初始化*/

chartt;

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--;

}

}

}

}

voidoutside0()interrupt0//外部中断0

{

T0count++;//电机转一周T0count加1

}

/******T0*********/

voidt0_serv()interrupt1//T0定时器

{

TH0=252;

TL0=24;

//if(time1>54000)//显示延时60s

if(time1>5000)//显示延时5s

{

FLAG1=1;

st1[1]=st1[0];//把前5秒的Tocount值给st1[1]

st1[0]=T0count;//获取当前t0count值

time1=0;

}

elsetime1++;//没到5秒继续++

}

/*****T1中断*****/

voidt1_serv()interrupt3//T1实现pwm调速

{

//TR1=0;

PWM=1;

TH1=252;//需要重装初值

TL1=24;

time++;

if((time%20)

elsePWM=0;//实现pwm调速

if((time%890)==1)//如果时间间隔1秒,获取t0count

{

FLAG=1;//开启获取速度标志

st[1]=st[0];

st[0]=T0count;

}

//TR1=1;

//ET1=1;

//EA=1;

}

/***速度显示*****/

voidshow()

{

uinti;

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.系统调试及分析

首先打开KEILC51主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成51单片机可执行的HEX文件。

然后把HEX文件写入proteus中的单片机芯片中,再用Proteus进行仿真。

本设计从经济实用的角度出发,采用美国ATMEL公司的单片机AT89C52作为主控芯片与数据存储器单元,结合外围的键盘输入,实现电机的调速、定速、正反转、显示速度控制功能并用C语言编写主控芯片的控制程序,研制了一种智能电机转速控制显示系统。

设计完全可行可以到达设计目的。

使用单片机制作的智能电机控制显示系统具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,有一定的实用性。

5.心得体会

经过一段时间的努力,终于完成了这次的课程设计,其中遇到了很多问题很多困难。

比如之前我们学过Intel公司的MCS-51系列的单片机,而本次我选择的时美国Atmel公司的AT89C52单片机,翻阅了很多资料,才初步掌握了它的性能和用法。

由于了解的专业知识尚浅,对课题的研究经验的不足,加上之前专业知识的生疏,使得此次设计比较粗糙,在技术的解决与运用上也不够成熟,特别是功能键的设定和显示设定。

在设计的过程中,特别是程序的调试过程中,经历和克服了许多困难,这也暴露出我们知识的死角和动手经验的不足,同时也积累了实践经验,巩固了大学所学的知识,使所学的知识得到加强和巩固。

通过这次毕业设计我学到了很多东西,除了复习了理论知识,还弄懂了proteus和keil等软件的应用。

同时,还锻炼了我分析问题解决问题的能力,培养了我的团队合作意识。

终于在自己的不断努力下,这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在同学的帮助和自己的深化学习下,都得到了完美的解决!

6.参考文献

[1]基于PROTEUS的电路及单片机设计与仿真(第2版),周润景编著,北京航空航天出版社;

[2]模拟电子技术,童诗白编著,高等教育出版社;

[3]数字电子技术,阎石编著,高等教育出版社;

[4]脉冲与数字电路逻辑,王毓银编著,高等教育出版社;

[5]《单片机系统设计与仿真—基于Proteus》,肖婧编著,北京航空航天大学出版社。

;

[6]单片机原理与应用及C51程序设计(第2版),谢维成编著,清华大学出版社;

[7]石文轩,宋薇.基于单片机MCS一51的智能密码锁设计[M].武汉工程职业技术学院学报,2004,(01);

[8]祖龙起,刘仁杰.一种新型可编程密码锁[J].大连轻工业学院学报,2002,(01)。

[9]张齐.单片机应用系统设计技术-基于C语言编程[M].北京:

电子工业出版社,2006.3.

[10]丁元杰.单片微机原理及应用[M].北京:

机械工业出版社,2001.1.

 

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1