欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的pwm电机控制.docx

    • 资源ID:14995998       资源大小:500.17KB        全文页数:40页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    基于单片机的pwm电机控制.docx

    1、基于单片机的pwm电机控制目 录第一章:绪论第二章:统设计要求和解决方案2.1系统设计要求2.2解决方案第三章:硬件系统设计3.1 电源模块设计3.2键盘模块设计3.3显示模块设计3.4电机驱动电路-H桥模块设计3.5霍尔测速模块设计3.6 ADC转换模块设计3.7单片机双机通讯模块设计第四章:软件系统及程序流程图第五章:心得体会附录一 硬件原理图附录二 元件清单附录三 参考文献第一章 绪论直流电动机具有优良的调速特性和良好的启动性能和调速特性,调速平滑、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、制动和反转;能满足生产过程自动化系统各种不同的特殊运行要求,启

    2、动转矩大,最大转矩大,能在宽广的范围内平滑、经济地调速,转速控制容易,调速后效率很高。与交流调速相比,直流电机结构复杂,生产成本高,维护工作量大。电动机调速系统采用微机实现数字化控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统实现全数字化,结构简单,可靠性高,操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。由于单片机性能优越,具有较佳的性能价格比,所以单片机在工业过程及设备控制中得到日益广泛的应用。PWM 调速系统与可控整流式调速系统相比有下列优点1 :由于PWM 调速系统的开关频率较高,仅靠电枢电感的滤波作用就

    3、可获得平稳的直流电流,低速特性好;同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高。PWM 调速系统很早已出现,但是因为缺乏高速开关元件而未能在生产实际中推广应用。在近年来,由于大功率开关器件的制造成功和成本的不断下降, PWM调速系统又受到重视。尽管如此,我认为设计一个直流电机调速系统,不论是从学习还是实践的角度,对一名电子信息工程专业的大学生都会产生积极地作用,有利于提高学习热情。第二章 系统设计要求和解决方案2.1系统设计要求1、 设计题目:直流电机数字调速系统。2、 课设内容:(1)、本地控制 通过键盘设置电

    4、机转速(给定值),通过控制程序使直流电机达到给定转速; 通过电位器设置电机转速(给定值),通过控制程序使直流电机达到给定转速;(2)、本地控制与远传控制(选作)通过键盘或电位器设置电机转速(给定值),实现本地直流电机的转速控制,同时,利用通讯模块(有线),控制远方电机的转速。3、具体要求及说明:(1)、八段码数码管或(LCD液晶显示器可选)显示给定转速和实际转速;要求:直流电机按照给定的转速运行,当给定值变化时,电机转速随之变化。同时在LED显示(8位八段码)给定转速值和实际转速值,显示格式如上下图所示:(2)、键盘设置参数可以把键盘定义为数字键(0-9)、设置键、通讯键、确认键和开始(运行)

    5、、停止键等。也可利用少键盘定义一键多能,如设置键、加一、减一、确认、开始(运行)、停止键等。(3)、速度上限和下限报警功能,如高于转速120%或低于转速20%,通过声光器件报警。(4)、速度可以考虑正反转。2.2 解决方案1、键盘设置电机转速(1)、原理 通过键盘按键在数码管上显示出来电机的给定转速,键盘给定的数字量越大, PWM占空比越大,就驱动晶体管导通的时间越长,这样输出的计数脉冲在单位时间内也就越多,这样就相当于电机的电压越大,其转速也就会越快,我们再用单片机对输出脉冲计数,PID调节器就把这个计数脉冲和预先设定的 值进行比较,比设定值小,这样就会得到一个偏差,再把这个偏差给定电压,这

    6、样就相当于加大了PWM的占空比,要是比设定值大,这样也会得到一个偏差,就把这个变差与给定的电压向减,这样就可以减少PWM的占空比,通过改变占空比来改变晶体管的导通时间,就可以改变压频转换器的输入电压,也就改变压频转换器的单位计数脉冲,达到调电动机速度的目的。电机转速控制原理示意图2、AD转换设置电机转速(1)、原理基本的设计核心是运用PID调节器,运用A/D转换芯片将滑动变阻器的模拟电压转换为数字量作为控制直流电机速度的给定值;我们现运用AD芯片,运用单片机来控制AD芯片来转换模拟电压到数字电压,AD给定的电压越大,则产生的数字量越大,单片机再控制这个数字量来产生一个PWM,PWM占空比越大,

    7、就驱动晶体管导通的时间越长,这样加到压频转换器的电压也就越大,电压越大,则压频转换器输出的计数脉冲再单位时间也就越多,这样就相当于电机的电压越大,其转速也就会越快,我们再用单片机对压频转换器的输出脉冲计数,PID调节器就把这个计数脉冲和预先设定的 值进行比较,比设定值小,这样就会得到一个偏差,再把这个偏差加到AD的给定电压,这样就相当于加大了PWM的占空比,要是比设定值大,这样也会得到一个偏差,就把这个变差与给定的电压向减,这样就可以减少PWM的占空比,通过改变占空比来改变晶体管的导通时间,就可以改变压频转换器的输入电压,也就改变压频转换器的单位计数脉冲,达到调电动机速度的目的。(2)、模块图

    8、3、单片机双机通讯(1)、基本概念 数据通信的传输方式 单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。 半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。 全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。 多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。 串行数据通信两种形式: 异步通信:在这种通信方

    9、式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。 同步通信:同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。(2)、模块图4、调速原理PWM(即脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM 可以应用在许多方面

    10、,比如:电机调速、温度控制、压力控制等等。采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。且对于直流电机,采用软件延时所产生的定时误差在允许范围。第三章 硬件系统3.1 电源模块设计(1)、原理通过变压器将220V的交流电压变为约为12V的交流电压,通过整流

    11、桥将交流电压变为直流电压,由于电压有波动,需经电容滤波滤除杂波,而后在经过稳压管(三端稳压集成电路有正电压输出的78系列和负电压输出的79系列。故名思义,三端IC是指这种稳压用的集成电路只有三条引脚输出,分别是输入端、接地端和输出端。)7805和7809将电压变为基本稳定的5V和9V的直流电压(2)、电路图3.2 键盘模块设计(1)、原理键是一种常开型按钮开关,平时键的二个触点处于断开状态,按下键时它们才闭合。键盘上闭合键的识别由专用的硬件译码器实现并产生键编号或键值的称为编码键盘,在按键数量较多的场合,矩阵键盘与独立按键键盘相比,要节省很多的I/O口。矩阵键盘的按键设置在行、列线的交点上,行

    12、、列线分别连接到按键开关的两端。列线通过上拉电阻接到+5V。平时无按键动作时,列线处于高电平状态,而当由按键按下时,列线电平状态将由与此列线相连的行线电平决定。行线电平如果为低,则列线电平为低;行线电平如果为高,则列线电平亦为高。当键盘中没有键按下时,所有行线的输出都应为低电平,以区别于列线状态,当矩阵键盘中任何一只键按下时,与门输出由高电平变为低电平,向CPU申请中断,由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。因此各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。(2)、电路图键值 7 8 9 *4 5 6 键盘1 2 3

    13、 AD清零 0 确认 停止3.3 显示模块设计(1)、原理数码管显示电路的链接比较简单,当键盘输入的键值(即转速值)输入完成后,数码管开始进行显示,从低到高依次显示速度值的百位,十位和个位。依靠不断扫描形成全部都显示的目的(2)、电路图3.4 电机驱动电路-H桥模块设计(1)、原理H桥式电机驱动电路包括4个三极管和一个电机,电路得名于“H桥驱动电路”是因为它的形状酷似字母H。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。(2)、电路图3.5 霍尔测速模块设计(1)、霍尔传感器的工作原理霍尔开关集成电路中的信号放

    14、大器将霍尔元件产生的幅值随磁场强度变化的霍尔电压UH放大后再经信号变换器、驱动器进行整形、放大后输出幅值相等、频率变化的方波信号。信号输出端每输出一个周期的方波,代表转过了一个齿。单位时间内输出的脉冲数N,因此可求出单位时间内的速度VNT,从而实现达到测电机转速的功能。(2)、电路图3.6 ADC转换模块设计(1)、原理在这里ADC转换我们通过IIC总线原理来实现的。IIC总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。各种被控制电路均并联在这条总线上,所以每个电路和模块都有唯一的地址,在信息的传输过程中,IIC总线上并接的每一模块电路既是主控器,又是发送器,这取决于它所要完

    15、成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别及需要调整的量。IIC总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。(2)、电路图3.7 单片机双机通讯模块设计串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而

    16、且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。(1)、原理 波特率选择:波特率就是在串口通信中每秒能够发送的位数。MCS-51串行端口在四种工作模式下有不同的波特率计算方法。 通信协议的使用:通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定: 0xA1:单片机读取P0端口数据,并将读取数据返回PC机; 0xA2:单片机从PC机接收一段控制数据; 0xA3:单片机操作成功信息。(2)、电路图第四章 软件系

    17、统程序及流程图4.1、软件系统程序(1)单片机软件系统程序/*包含头文件*/#include#include /*数码管表格*/unsigned char ledmap=0xC0, 0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8c,0xf0,0xbf;/0x88,0x83,0xc6,0xa1,0x86,0x8eunsigned char ledbuf8;unsigned char flag;unsigned char num=0;unsigned char keybuf2;unsigned char m,n,k,l,s;unsigned cha

    18、r keydata;/键盘输入值unsigned int count=0; /定时器的累加器unsigned int CYCLE; /定义定时器的周期unsigned int plus=0; /接收到外部脉冲的数unsigned char databuf; /转速处理值unsigned int CYC; /定义周期 该数字X基准定时时间 如果是1000 则周期是1000 x 0.1msunsigned int PWM_ON ;/定义高电平时间unsigned int cont; unsigned char tmp; /串口接收值unsigned char Flag1=0;unsigned ch

    19、ar tt=0;unsigned char j;sbit led1=P35;sbit pwm= P36;/定义pwm输出口sbit Bee=P37; /定义蜂鸣器端口/*- 定时器初始化子程序-*/void Init_Timer(void)TMOD |= 0x21; /使用模式1,16位定时器,使用|符号可以在使用多个定时器时不受影响 TH0=0xDC; TL0=0x00; /定时10mSTH1 = 0xA3; /晶振12M 定时0.1ms TL1 = 0xA3; ET0=1; /定时器中断打开 ET1=1; /* 延时子程序*/void delay(unsigned char t) unsi

    20、gned char i; while(t-!=0) for(i=255;i!=0;i-);/*- 定时器初始化子程序-*/void Init_int0(void) IT0=1; /电平触发 EX0=1; /外部中断0开/*- 外部中断0中断子程序-*/void int0(void) interrupt 0 plus+; led1=led1;/*- 定时器中断子程序-*/void time0(void) interrupt 1 count+; if(count=CYCLE) count=0; databuf=plus;plus=0;if(tt!=2) tt+; TH0=0xDC; TL0=0x0

    21、0; /定时10mS /*- 转速数据处理显示子程序-*/void datamake(unsigned int th) unsigned char a1,a2;a1=th/10;a2=th%10;ledbuf0=ledmap10;ledbuf1=ledmap12;ledbuf2=ledmapa1;ledbuf3=ledmapa2;/* 定时器中断函数 */void time1(void) interrupt 3 /定时器1中断 cont+;if (cont=PWM_ON) pwm = 1; /灯灭 if(cont = CYC) cont=0; pwm = 0; /灯亮 /* 按键检测子程序*/

    22、unsigned char testkey() P1=0x0f;return(P1&0x0f);/* 比较处理函数 */void compare(unsigned int th1,unsigned int th2) if(th1!=th2) if(th1 800) Bee=0; delay(100); Bee=1; if(Flag1=2) /亮度递减 同上,是个相反的过程 PWM_ON= PWM_ON-5; if(PWM_ON 45) Bee=0; delay(100); Bee=1; /*函数功能:LED显示子程序*/void display() unsigned char i; unsig

    23、ned char pos; unsigned char led; pos=0xfe; for(i=0;i8;i+) P2=0xff; led=ledbufi; P0=led; P2=pos; delay(1); pos= _crol_(pos,1);/*函数功能:键盘扫描子程序*/void keyscan(void) unsigned char n;/扫描第一行P1=0xfe;n=P1;n&=0xf0;if(n!=0xf0) P1=0xfe; n=P1; n&=0xf0; if(n!=0xf0) switch(n) case(0xe0):flag=7;break; case(0xd0):fla

    24、g=4;break; case(0xb0):flag=1;break; case(0x70):flag=0x0a;break; /扫描第二行P1=0xfd;n=P1;n&=0xf0;if(n!=0xf0) P1=0xfd; n=P1; n&=0xf0; if(n!=0xf0)switch(n)case(0xe0):flag=8;break; case(0xd0):flag=5;break; case(0xb0):flag=2;break; case(0x70):flag=0;break; /扫描第三行P1=0xfb;n=P1;n&=0xf0;if(n!=0xf0) P1=0xfb; n=P1;

    25、 n&=0xf0; if(n!=0xf0)switch(n) case(0xe0):flag=9;break; case(0xd0):flag=6;break; case(0xb0):flag=3;break; case(0x70):flag=0x0b;break; /扫描第四行P1=0xf7;n=P1;n&=0xf0;if(n!=0xf0)P1=0xf7;n=P1;n&=0xf0; if(n!=0xf0)switch(n)case(0xe0):flag=0x0f;break; case(0xd0):flag=0x0e;break; case(0xb0):flag=0x0d;break; ca

    26、se(0x70):flag=0x0c;break; /* A/D转换子程序*/void uart_int() SCON = 0x50; /设定串行口工作方式 PCON &= 0xef; /波特率不倍增 TH2=0xFF; TL2=0xDC; RCAP2H = 0xFF; / 波特率9600 RCAP2L = 0xDC; T2CON = 0x34; / 定时器1工作于8位自动重载模式, 用于产生波特率 TR2 = 1; / 启动定时器1 /*函数功能:主程序*/void main(void) unsigned char i; bit conv; num=0;pwm=1; CYCLE=100; CYC


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开