基于51单片机的直流电机控制.docx
《基于51单片机的直流电机控制.docx》由会员分享,可在线阅读,更多相关《基于51单片机的直流电机控制.docx(10页珍藏版)》请在沃文网上搜索。
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、单片通过P10和P11和L298的第一对输入端IN1和IN2相连,然后又L298的第一对输出端OUT1和OUT2与直流电
4、机相连,已达到控制直流电机的目的。4、从P14到P17分别接一个Button按钮来实现PID控制,P36和P37分别接Button按钮实现对电机的加速与减速控制。5、双刀双掷开关SW1课实现点击的正转与反转,单刀双掷开关SW2可实现点击的开启与停止。三、 系统程序设计及功能实现1、 程序流程图:开始输入一个值,点击Enter按钮,通过PID算法,改变PWM波输出让电机运行循环通过按钮加减改变当前值,Enter键确定判断新的输入值与当前值的差值,将差值加到原值上,通过PID算法改变PWM波输出控制电机运行2、 各部分实现程序:(1)、普通延时:#include void delayms(unsi
5、gned char x) unsigned char i ; while(x-) for(i = 0 ; i 120 ; i+) ;(2)、数码管显示:#include #include #include void display_lilun(double num) char code table = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, /07对应数码 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71; /8F对应数码long int n=num; P0 = 0; P2 =0x7f; P0
6、= tablen % 1000/100; delayms(2);/百位加小数点 P0 = 0; P2 =0xbf; P0 = tablen % 100 / 10; delayms(2);/十位 P0 = 0; P2 =0xdf; P0 = tablen % 10; delayms(2);/个位 P0 = 0; /关闭显示器void display(double num,int dir) char code table = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, /07对应数码 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0
7、x5e, 0x79, 0x71; /8F对应数码long int n=num*10; P0 = 0; P2 =0xf7; P0 = tablen / 1000; delayms(2); /百位加小数点 P0 = 0; P2 =0xfb; P0 = tablen % 1000/100; delayms(2); /百位加小数点 P0 = 0; P2 =0xfd; P0 = tablen % 100 / 10+128; delayms(2);/十位 P0 = 0; P2 =0xfe; P0 = tablen % 10; delayms(2);/个位 P0 = 0; /关闭显示器if(dir=1)P0
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 直流电机 控制