ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:466.65KB ,
资源ID:16500318      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16500318.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的直流电机转速PID控制系统设计说明Word下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的直流电机转速PID控制系统设计说明Word下载.docx

1、PID控制电路、复位电路、键盘电路、显示电路、串行通信电路以与温度检测电路。 PID控制电路是电子钟硬件电路的核心,没有PID控制电路,直流电机无常稳定运行。本系统电路采用的晶振11.0592MHz,一号单片机定时器采用的是定时器0工作在方式2定时,用于实现一定时间的计时,定时时间为10ms。复位电路可使单片机回复到初始状态。键盘可实现对直流电机转速的设定与启动的操作。温度检测是通过DS18B20芯片实现,在温度显示中还要注意数的转换。在该设计中还用到定时器1工作在方式2用来产生9600的波特率,用在两片单片机之间串行传送数据。1、外部中断INT1当电机转一圈时向外部中断进行一次中断计数,从而

2、实现电机转速的测量。2、一号单片机转速显示 当电机转动时,显示部分可以把电机的设定转速或者是通过通信由温度计算的转速显示出来,同时在右侧部分显示电机当下的转速。 二号单片机的温度显示与之类似。3、温度测量温度测量有专门的芯片DS18B20。DS18B20 可编程温度传感器有 3 个管脚。GND 为接地线,DQ 为数据输入输出接口, 通过一个较弱的上拉电阻与单片机相连。VDD 为电源接口,既可由数据线提供电源,又可 由外部提供电源,围 3O55 V。当 DSI8B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带 符号扩展的二进制补码形式存储在高速暂存存储器的 0,1

3、字节。单片机可通过单线接口读 到该数据,读取时低位在前,高位在后,数据格式以 0062 5LSB 形式表示。4、按键选择一号单片机的键盘采用44的按键方式检测按键。P0、P1口不断扫描按键的行和列从而计算出所选择的数值,进而执行相关的程序。二号单片机原理类似。5、直流电机驱动部分一号单片机根据端口采集到的电机的转速,经过PID计算,通过另一端口发送PWM波,从而使电机改变转速。1.2、直流电机PID控制原理方框图 图2.2 电路连接图第二章 硬件设计与实现2.1硬件设计直流电机PID控制电路的核心是两块89C51,用两块89C51作控制是为了电机控制和温度检测互不干扰,其中一块控制电机,另一块

4、实现温度检测。2.1.1 按键电路设计根据功能需要,本控制电路需要设置一下功能键:按键设定转速。在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,下图中,列线通过电阻接

5、正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。 图2.1 按键电路参见表2.1。按键键名功能属性09设定设定转速值自动复位确定确定设定值清除去除设定值运行开始运行表2.1 按键功能表 按键操作说明如下: 09键:通过此按键设定要求电机转速的设定值。设定过程中数值依次左移,实现百十个位的设定。 确定键:该键为自动复位键,当设定完成后按确定键就可以使设定值赋给相应变量。 清除键:清除已经设定的转速值。

6、运行键:设定值完毕则可以点此键进行相应的运行。2.1.2 复位电路 复位是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于思索状态时,也可按复位键重新启动。 复位后,PC容初始化为0000H,使单片机从0000H单元开始执行程序。89C51单片机复位信号的输入端是RST引脚,高电平有效。RST端的外部复位电路有两种操作方式:上电自动复位和按键手动复位。按键手动复位有电平方式和脉冲方式两种。本设计用的是按键电平复位时相当于RST端接高电平。如图2.2所示。需要注意的是单片机连接

7、了8255A,复位电路也需与8255A的RESET相连。电路为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC一样,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。该电路除具有上电复位功能外,若要复位,只需按RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。2.1.3显示电路本设计中使用LED数码管显示电机的设定和实际转速以与温度值。电路设计如下: 图2.3 转速的显示电路温度的显示电路在另一个单片机中完成,图相似。2.1.4温度检测系统设置了一路温度检测在该系统中,图

8、4.6是一路温度硬件图。图2.4 DS18B20测温原理框图图2.5 温度检测的硬件图2.1.5串行通讯 该系统用到两片单片机,因此单片机还需要连接串行接口,电路略。2.1.6晶振电路设计在AT89S51芯片部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。其电路如图2.7。图2.7 晶振电路2.1.7 电机驱动电路通过端口采集电机转速进而输出PWM波完成电机控制。PWM(Pulse Width

9、Modulation)控制技术就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等效的获得所需要的波形(含形状和幅值);面积等效原理是PWM技术的重要基础理论;一种典型的PWM控制波形SPWM:脉冲的宽度按正弦规律变化而和正弦波等效的PWM波形称为SPWM波。 图2.7 电机驱动电路2.1.8报警电路当温度过高或者过低时,报警电路会自动报警。图2.8 报警电路2.2系统面板图时间控制模块面板图如图2.8,温度测量模块面板图如图2.9。图2.9 直流电机控制模块面板图图2.10 温度测量模块面板图第三章 流程设计3.1 软件设计流程图3.1.1 主程序流程图电机调试程序流程:温

10、度测量程序流程:3.1.2 速度显示子程序流程图 图5.2速度显示子程序流程图3.1.3 温度采集程序流程图3.3 温度采集程序流程图 3.4 报警子程序流程图3.1.4串行通信接受与发送流程图第四章 程序说明4.1 直流电机部分程序#include #define uint unsigned int#define uchar unsigned charsbit p34=P34;sbit p26=P26;sbit p36=P36;uchar code table=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f ; uchar code c

11、hose=0x01,0x02,0x04,0x08,0x10,0x20;uint shu6=1,2,3,4,5,6;uchar q=0,i=0,m=0,n=0;uint count,miaoshu,sv,k=0,k2=0,sv1,sv2; /定义计数值,实际温度值,设定的温度值uchar sec,tcnt,flag,flag1;int rk,yk,uk,uk_1=0,ek,ek_1=0,ek_2=0; /PID计算参数signed char T=20,Kp=30,Td=8,Ti=100,q0,q1,q2; /PID参数其值经反复调试得来uchar data buf4=0,1,1,1;/字型显示中

12、间变量/*/延时子程序用来产生1ms的延时,用于在程序中的等待/延时1ms子程序void delay(uchar z) uchar x,y; for(x=z;x0;x-) for(y=110;yy-);显示子程序用来在数码管中显示电机的设定转速或计算转速以与实际转速/显示子程序void display(uint a,uint b) char i; shu0=a/100; shu1=a%100/10; shu2=a%10; shu3=b/100; shu4=b%100/10; shu5=b%10; for(i=0;i501) uk=501; /限定输出上限 if(uk100) p34=1; el

13、se if(ek=0) p34=1; delay(uk/10); display(sv,miaoshu); p34=0; delay(50-uk/10);/ else if(ek0)/ p34=0; if(p26=0)display(sv1,miaoshu);else display(sv2,miaoshu);4.2 温度检测部分程序#includeintrins.h#define uchar unsigned char sbit DATA = P11; /DS18B20接入口uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x

14、7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共阴极字型码int temp,temp2; /温度值int ss; /中间的一个变量int dd;int j,i0=0,k; uchar sec,tcnt,flag0,flag1,sec2;uchar data b;/定时器中断次数uchar data buf4=0,0,0,0;uchar data buf24=11,0,0,0;int alarmH=500; /默认报警值int alarmL=-10;/定义开关的接入口sbit k1=P25;/+sbit k2=P26;/-sbit k3=P27;/确认sbit k4=P24;sbit bell=P10;sbit HLight=P12;sbit LLight=P13;sbit Red=P16;sbit Green=P17;bit s

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

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