欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    电机的遥控控制 毕业论文.doc

    • 资源ID:3959591       资源大小:386.02KB        全文页数:18页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电机的遥控控制 毕业论文.doc

    电机的遥控控制总体设计说明书作 者: 班 级:2008级电子2班学 号:200872020223审 核 人: 1、引言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 本次采用单片机控制电机,因为单片机没有专门的PWM波输出模块,所以对精度要求较高的场合是不适用的,在这种场合常用AVR、DSP等一些控制器可以做到高精度的控制;用单片机可以做到基本功能的实现,比如电机的正反转控制,停止启动控制,加减速控制。由于单片机的计算能力有限,所以无法做到闭环控制,只能是开环控制,这样在两者的速度之间是有一定的差距,但对一些要求不高的控制,单片机是完全可以实现功能并满足条件的。此次设计采用红外遥控的方式来控制电机,因为红外受外界干扰较小,在一些恶劣条件下可保证在非人自己操作的情况下完成一些动作的控制及功能的实现。但它也有不足之处,就是在遥控控制下,如果出现按键失误,将会带来不好的结果。1.1背景本次设计以89C51单片机为平台,利用C语言编程,并充分利用单片机的优势中断技术,设计并模拟了单片机输出PWM波去控制电机的设计方法。设计名称:电机的遥控控制提出者:设计者:1.2参考资料【1】单片机原理及接口技术(第3版)李朝青 编著 北京航空航天大学出版社 2008年5月【2】C语言编程(第三版) (美)Stephen G.Kochan著 张小潘译 电子工业出版社 2006年3月【3】51单片机C语言教程 郭天祥 编著 电子工业出版社 2009年12月2、总体设计2.1开发与运行环境本系统是以单片机为平台,利用Keil uVision3开发环境,采用C语言编程,基于HOT51增强型单片机开发板来实现的。在单片机开发板上顺利实现之后,后期还将针对本次设计的电机控制小系统做PCB板,PCB板的制作是利用Protel开发环境,画出PCB板,通过刻板机实现电路板的制作。2.2硬件功能描述2.2.1 HOT51增强型单片机开发板 51单片机开发板HOT-51增强型开发板的标配器件为STC89C54RC+,但它完全可以使用于别的51系列芯片。开发板上资源丰富,并且可以转接ARM。板上芯片有:AD-DA芯片:PCF8591T ,温度传感器:1-WIRE协议控制芯片DS18B20,红外接头:PC 838(配合遥控器做解码试验),时钟芯片:SPI协议控制芯片DS1302,储存芯片:I2C协议控制芯片AT24C02,通讯芯片:MAX232,USB转串口芯片:PL2303HX,达林顿管:ULN2003(驱动步进电机,直流电机,继电器,蜂鸣器),三态缓冲门电路:74HC245,三八译码器:74HC138,锁存器:74HC573,稳压芯片:7805、LM1117-3.3;显示类:彩屏液晶,八位LED灯,八位共阴数码管,8*8点阵,1602液晶,12864液晶(带汉字字库);其他:精致独立按键, 4*4矩阵键盘,双复位电路,继电器,蜂鸣器,时钟电池,标准JTAG接口等。2.2.2 AT89C51单片机单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个机种。单片机是通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。其中,地址总线的作用是在进行数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;/数据总线的作用是在CPU与存储器或I/O接口之间,或存储器与外设之间交换数据;控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要发如下特点:  (1)有优异的性能价格比。  (2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。  (3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。  (4)低功耗、低电压,便于生产便携式产品。  (5)外部总线增加了I C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。  (6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。由于单片机具有显著的优点,它已成为科技领域的有力工具,是我们生活中的得力助手。它的应用遍及各个领域,主要表现在以下几个方面:(1) 单片机在智能仪表中的应用 单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。  (2)单片机在机电一体化中的应用 机电一体化是械工业发展的方向。机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。  (3) 单片机在实时控制中的应用 单片机广泛地用于各种实时控制系统中。例如,在工业测控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。  (4) 单片机在分布式多机系统中的应用 在比较复杂的系统中,常采用分布式多机系统。多机系统一般由若干台功能各异的单片机组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时的测量和控制。单片机的高可靠性和强抗干扰能力,使它可以置于恶劣环境的前端工作。  (5) 单片机在人类生活中的应用 自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、电子玩具、收录机等家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。单片机将使人类生活更加方便、舒适、丰富多彩。  综合所述,单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机引脚图和结果框图如下图1和图2所示: 图1 AT89C51引脚图图2 内部结构图3、硬件模块设计3.1系统硬件框图方向、PWM8位数码管振荡器复位电路80C51CPU 红外外部中断红外接收管 电源其核心部件是89C51单片机,由89C51单片机内部定时器及外部中断确定接收到的数据并判断键码值,最后通过扫描驱动8位数码管来显示红外键码值,并送出相应的速度值和方向信号。3.2数据流图80C51CPU处理晶 振外中断红外接收数据输入数据输出数据输出数据输出数码管PWM方向信号4、硬件电路设计4.1晶体振荡器电路 晶体振荡器电路给控制板提供一个频率稳定准确的12MHz的方波信号,可保证PWM的稳定输出。给单片机提供时钟的电路图有如下两种: 由于我本次设计主要是针对电机的遥控控制的设计,并且外部时钟源不好加到电路中,精度又不是特别高,所以我选用内部时钟方式。4.2复位电路设计 复位电路分两种方式,分别是上电自动复位和按键手动复位。 上电自动复位电路是在加电瞬间电容通过充电来实现的,其电路图如下所示。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。手动复位是指通过一按钮开关,使单片机进入复位状态。系统上电运行后,若需要复位,一般是通过手动复位来实现的。通常采用手动复位和上电自动复位组合,其电路如下图所示。 a.上电复位 b.按键电平复位由于设计的电机控制板无需上电复位,所以采用按键电平复位,如上b图所示。4.3位选及数码管驱动电路 为了让数码管的显示更清晰,我选用74HC573锁存器来驱动数码管。由于8位数码管的显示是经过一位一位显示的,当它的扫描频率在50Hz100Hz之间时,我们就不会看出它的位显示,并且显示的亮度正好合适,数码管的位选我通过3-8译码器74HC138,具体连接关系如下图所示:锁存驱动位选 4.4单片机最小系统 单片机的最小系统由4部分构成,分别是:单片机、振荡电路、复位电路、RAM和ROM。具体组成如下所示:单片机最小系统图4.6电源电路 单片机正常工作是+5V电压,本次设计不做电源部分,采用USB供电,由于USB供电较为稳定,所以不需要稳压部分,直接给单片机供电,这样就减少了7805稳压模快。具体电路如下所示:USB供电 5、L298驱动模块 L298有两路电源分别为逻辑电源和动力电源,一般5V为逻辑电源,12V为动力电源。ENA与ENB直接接入5V逻辑电源也就是说两个电机时刻都工作在使能状态。由于我们使用的电机是线圈式的,在从运行状态突然转换到停止状态和从顺时针状态突然转换到逆时针状态时会形成很大的反向电流,在电路中加入二极管的作用就是在产生反向电流的时候进行泄流,保护芯片的安全。 在对直流电动机电压的控制和驱动中,半导体功率器件(L298)在使用上可以分为两种方式:线性放大驱动方式和开关驱动方式在线性放大驱动方式,半导体功率器件工作在线性区.优点:控制原理简单,输出波动小,线性好,对邻近电路干扰小。缺点:功率器件工作在线性区,功率低和散热问题严重。 开关驱动方式是使半导体功率器件工作在开关状态,通过脉调制(PWM)来控制电动机的电压,从而实现电动机转速的控制。当开关管的驱动信号为高电平时,开关管导通,直流电动机电枢绕组两端有电压U。t1秒后,驱动信号变为低电平,开关管截止,电动机电枢两端电压为0。t2秒后,驱动信号重新变为高电平,开关管的动作重复前面的过程。 图一 驱动真值表图二 L298原理图图三 驱动整体框图6、遥控的实现图1 遥控器输出编码图 图2 遥控器输出信号格式图图3 遥控器输出信号0与1的时间图7、软件模块的设计本次设计单片机电机控制,供可选择的语言有汇编语言和C语言两种选择,从总体角度考虑,两种语言各有其优缺点。汇编语言在编写过程中可以较容易的计算出机器周期,这样可以计算出相应的延时与误差,并且在编译过程中精度较高,执行效率也较高,是各种语言中执行效率最高的一种。相反,汇编语言又是一种较为低级的语言,编写起来难度较大,程序量也较大,不易编写大规模的系统。C语言它的灵活性较强,语法功能也比较强大,对于同一个设计,与汇编语言相比,工作量较小,完全可以实现汇编无法实现的一些功能。虽然C语言具有强大的功能,但也有不足之处,比如在循环延时时不易计算出相应的机器周期,还有,采用不同的编译器,可能以不同的方式编译出不同的机器码。由于本次设计的单片机电机控制编程量较大,又考虑到后面的工作过程中将大量使用C语言编程,所以本次编写过程采用C语言,基于Kiel C3软件来完成软件模块的设计工作。8、设计总结与心得单片机控制电机可以说是一个较小的系统,开始时我们觉得通过C语言较容易实现,确实,只实现一个能够正常运行的电机控制是比较容易的。但我们想错了,毕竟是第一次从总体角度来考虑地完成一个小系统,好多的实际性的问题我们没有考虑,所以造成我们最终设计的控制模块只能简单着实现正反转、速度控制和刹车,并且存在好多问题,当然问题多了对我们来说是好事,这样我们在解决更多问题时学会更多解决问题的方法,对我们也算是长长经验吧。这次数字钟的设计主要是用单片机来完成的,虽然我们也花了很多时间来完成它的总体设计,但就像老师说的那样,这只是个开始。从这次设计中我也觉得自己还对单片机的功能了解只是个皮毛,单片机强大的功能还等着我们去开发。在这些天大家总结报告时我发现,我们大家的意识还太低,就像写个报告,大家总在意的是看谁写了多少页了,看谁的程序多,所占用的页数多,一切似乎和页数联系上了。我觉得我们更应该去关注一下大家所写的程序,看谁的程序在完成同样功能的同时,他采用方法新颖,程序占用的内存少,并且精度高。看来我们大家总被一种错误的观念领导着,面对内存有限的单片机而言,编写一个控制模块,我们无论采用的哪种方法都不可能用完单片机内部的程序存储器,我觉得我们现在所做的事都是为我们后面做铺垫的,所以我们现在就应该去关心程序所占用的内存和采用的优于别人的算法。所以我们在程序中减少冗余量,在此我举几个例子,比如在程序中我们完全可以采用单片机没有用的标志位F0,这样我们可以减少变量的定义。利用C语言写时,难免会定义一些静态变量,这些静态变量相当于一些寄存器,我们可以重复利用这些静态变量,这样会减少更多静态变量的定义,即可以节约内存。最后我觉得系统的设计需要我们全面着去考虑好多的问题,这对我们的成长会有更大的帮助。程序的实现不只是功能的实现,还要有可靠的稳定性,占用的内存也要较小。附录:#include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar timerlr; uint startflag; uint bitnum; / uint irreceok; /接收完毕 uchar irprosok; /转换完毕 uchar irdata33; uchar ircode4; uchar disp8; sbit bre =P10; sbit dir =P11; sbit pwm =P12;static int s=20; /当前pwmh+pwmluchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0xff, 0x39,0xbf,0x79,0x71 ;uchar code table1=0x00,0x01,0x02,0x03,0x04, 0x05,0x06,0x07 ;void delay_50us(uchar t) uchar j;for(;t>0;t-) for(j=0;j<19;j+); void timer0init(void) TMOD=0X02;TH0=0X00;TL0=0X00;ET0=1;EA=1;TR0=1; void int1init() IT1=1;EX1=1;EA=1; void irwork(void) disp0=ircode0/16;disp1=ircode0%16;disp2=ircode1/16;disp3=ircode1%16;disp4=ircode2/16;disp5=ircode2%16;disp6=ircode3/16;disp7=ircode3%16; void display(void) uchar i;for(i=0;i<8;i+)P0=tabledispi;P2=table1i;delay_50us(20); void irpros(void) uchar k=1,i,j; uchar value; for(j=0;j<4;j+) for(i=0;i<8;i+)value=value>>1;if(irdatak>6)value=value | 0x80;k+;ircodej=value; irprosok=1; void putpwm() pwm=1;delay_50us(s);pwm=pwm;delay_50us(40-s); void instruct() if(ircode2 = 0x45)/开动电机/TR1=1;/TH1=0x7c;/TL1=0x18;dir=1;bre=0;putpwm();if(ircode2 = 0x46)/关电机/TR1=0;bre=1;pwm=1;if(ircode2=0x07)/正转bre=1;dir=1;bre=0;putpwm();if(ircode2 = 0x15)/反转bre=1;dir=0;bre=0;putpwm();if(ircode2 = 0x16) /加速 if(s < 40) s=s+1;putpwm();elses=40;putpwm();if(ircode2 = 0x19)/减速if(s > 5) s=s-1; putpwm(); else s=5; putpwm(); void main() / TMOD=0x12; bre=1; pwm=1; timer0init(); / timer1init(); int1init(); while(1) if(irreceok) irpros();irreceok=0; if(irprosok) irwork();irprosok=0;instruct();/pwmchange(); putpwm(); display(); void timer0_() interrupt 1 timerlr+; void int1_() interrupt 2 if(startflag) if(timerlr>48) bitnum=0; irdatabitnum=timerlr; timerlr=0; bitnum+; if(bitnum=33) bitnum=0; irreceok=1; elsetimerlr=0;startflag=1; 17

    注意事项

    本文(电机的遥控控制 毕业论文.doc)为本站会员(来看看)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开