基于51单片机直流电机控制

基于51单片机直流电机控制

ID:36621799

大小:213.78 KB

页数:9页

时间:2019-05-13

基于51单片机直流电机控制_第1页
基于51单片机直流电机控制_第2页
基于51单片机直流电机控制_第3页
基于51单片机直流电机控制_第4页
基于51单片机直流电机控制_第5页
资源描述:

《基于51单片机直流电机控制》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于51单片机的直流电机控制一、试验器件选择1、控制芯片的作用主要是与L289相连接驱动直流电机,以及与八位数码管相连显示。(1)、AT89C51是一种带4K自己FLASH存储器的低压、高性能CMOS8为微处理器。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失真存储制造技术制造,与工业标准的MCS-51指令集和输出关键相兼容。由于将多功能8位CPU和闪存组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性奥高且廉价的方案。(2)、AT89C51引脚图如下:2、电机驱动芯片(1)、电机驱

2、动芯片选择L298。其主要功能是作为单片机与直流电机中间的过度链接,单片机输出的信号通过L298加载到直流电机上驱动直流电机运行。其引脚图如下:(2)、主要工作原理:1、15脚分别是两个H桥的电流反馈脚,不用时可以直接接地;2、3为一对输出端口,13、14为一对输出端口;4为驱动电压输入,最小值必须比输入的低电平高2;5、7一对输入端口,10、12一对输入端口,TTL电平兼容6、11使能端,低电平禁止输出;8、9分别为接地和逻辑电源3、直流电机。在protues中选择motor-encoder直流电机,引脚图如下:上方左右的两个引脚在点击运转时输出频率相同的方波,但是在相位上相差90,

3、而且在正转和反转是相反,因此可以根据这两个引脚的输出情况判断点击的转向。上方中间的引脚每当电机转一圈就输出一个正脉冲,可以据此册数点击的转速。左右两个引脚是电机的电压输入端。4、74HC74。当D触发器的D和CLK输入端分别接电机上方的左右两个输出端口时可以根据D触发器的输出情况判断点击的转速。5、八位数码管。用以显示。二、系统硬件设计连接1、系统的器件连接图如下:2、单片机与数码管通过P0口和P2口相连,其中P2口选择点亮哪一个数码管,P0口则控制被点亮的数码管显示的数据。3、单片通过P1^0和P1^1和L298的第一对输入端IN1和IN2相连,然后又L298的第一对输出端OUT1和

4、OUT2与直流电机相连,已达到控制直流电机的目的。4、从P1^4到P1^7分别接一个Button按钮来实现PID控制,P3^6和P3^7分别接Button按钮实现对电机的加速与减速控制。5、双刀双掷开关SW1课实现点击的正转与反转,单刀双掷开关SW2可实现点击的开启与停止。三、系统程序设计及功能实现1、程序流程图:开始输入一个值,点击Enter按钮,通过PID算法,改变PWM波输出让电机运行循环通过按钮加减改变当前值,Enter键确定判断新的输入值与当前值的差值,将差值加到原值上,通过PID算法改变PWM波输出控制电机运行1、各部分实现程序:(1)、普通延时:#include

5、y.h>voiddelayms(unsignedcharx){unsignedchari;while(x--)for(i=0;i<120;i++);}(2)、数码管显示:#include#include#includevoiddisplay_lilun(doublenum){charcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,//0~7对应数码0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//8~F对应数码longintn=num;

6、P0=0;P2=0x7f;P0=table[n%1000/100];delayms(2);//百位加小数点P0=0;P2=0xbf;P0=table[n%100/10];delayms(2);//十位P0=0;P2=0xdf;P0=table[n%10];delayms(2);//个位P0=0;//关闭显示器}voiddisplay(doublenum,intdir){charcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,//0~7对应数码0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//8

7、~F对应数码longintn=num*10;P0=0;P2=0xf7;P0=table[n/1000];delayms(2);//百位加小数点P0=0;P2=0xfb;P0=table[n%1000/100];delayms(2);//百位加小数点P0=0;P2=0xfd;P0=table[n%100/10]+128;delayms(2);//十位P0=0;P2=0xfe;P0=table[n%10];delayms(2);//个位P0=0;/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。