收藏 分享(赏)

基于AT89S52单片机的电机控制C语言程序设计.doc

上传人:精品资料 文档编号:9911157 上传时间:2019-09-18 格式:DOC 页数:10 大小:929.40KB
下载 相关 举报
基于AT89S52单片机的电机控制C语言程序设计.doc_第1页
第1页 / 共10页
基于AT89S52单片机的电机控制C语言程序设计.doc_第2页
第2页 / 共10页
基于AT89S52单片机的电机控制C语言程序设计.doc_第3页
第3页 / 共10页
基于AT89S52单片机的电机控制C语言程序设计.doc_第4页
第4页 / 共10页
基于AT89S52单片机的电机控制C语言程序设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、第一章:设计任务任务:了解电机的转动原理,能够对直流电机进行简单的控制;能够设计和使用简单的自动化闭环系统;提高多模块硬软件的综合应用能力。功能主要包括:1) 直流电机的正转;2) 直流电机的反转;3) 直流电机的加速;4) 直流电机的减速;5) 直流电机的停止;6) 直流电机的转速在数码管上显示;第二章:总体设计方案总体设计方案的硬件部分详细框图如下图所示:第三章 系统的硬件介绍一、电机驱动芯片 L298NL298N 是 ST 公司生产的一种高电压、大电流电机驱动芯片。该芯片采用 15 脚封装。内AT89S52基本模块数码管显示模块电机驱动模块独立按键模块 霍尔元件模块含两个 H 桥的高电压

2、大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用 L298N 芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。特点:1、具有信号指示;2、转速可调;3、抗干扰能力强;4、具有过电压和过电流保护;5、可单独控制两台直流电机;6、可单独控制一台步进电机;7、PWM 脉宽平滑调速;8、可实现正反转;9、采用光电隔离L298N 的输入输出逻辑关系表

3、ENA(B ) IN1(IN3) IN2(IN4) 电机H H L 正转H L H 反转H IN1(IN3)与 IN2(IN4)电平相同 快速停止L X X 停止电机转速的控制主要是运用 PWM 波形输出实现。由逻辑关系表可知,我们可以用PWM 波形控制 ENA(B)端或者是 IN1(IN3)和 IN2(IN4)。以 ENA 端控制为例,当输出为高电平时电机转动,输出为低电平时电机停止。由此我们可以改变高低电平的占空比,进而实现电机转速的调整。注意:高电平和低电平的时间不能太长,否则电机不能够持续转动,启动时高电平时间也不能太短,否则电机启动较慢。二、霍尔元件霍尔传感器是对磁敏感的传感元件,常

4、用于开关信号采集的有 CS3020、CS3040 等,这种传感器是一个 3 端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图 1 所示是 CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是 Vcc,地,输出。CS3020 外形图使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手

5、动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。三、数码管显示模块:数码管显示模块采用的是静态数码管。第四章 系统框图YN开始初始化设置定时器、计数器工作方式设置转动方式显示转速设置转动方式NY =第五章 程序#include #include#define uchar unsigned char#define uint unsigned intsbit IN1=P10;sbit IN2=P11;sbit ENA=P12;sbit K1=P30; /正转sbit K2=P31; /反转sbit K3=P32; /加速中断入口开始重置定时常数

6、计时一秒统计转速保持与设定转速比较减速加速中断返回sbit K4=P33; /减速sbit STCP=P20;sbit SHCP=P21;sbit DS=P22;uchar code tab=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xA4,0x8E; / 程序存储区定义字型码表uint N=0; uint high=5; extern uint num=1;extern uint n;extern uint e=0;void xianshi() ; /数码管显示void testkey(); /键盘扫描void chuli(); /

7、正反转处理void main()ENA=1;TMOD=0x01; /T0 方式 1 定时TH0=(65536-1000)/256;TL0=(65536-1000)%256; /周期 1msET0=1; /允许 T0 定时器中断EA=1; /开启总中断TR0=1; /启动定时器 T0while(1)testkey();xianshi();void delay (uint m) /延时函数uint n;while(m-)for(n=0;n0;i-)SHCP=0;a0)high-;while(K4);void chuli()switch(e)case 0:IN1=0; /正转IN2=1;num=1;

8、break;case 1: /反转IN1=1;IN2=0;num=0;break;第六章 原理图第七章 元件清单元件型号 数量AT89S52 1带锁开关 1晶振 11.0592M 1霍尔元件 CS3020 1L298N 1IN4148 1IN4007 121k 1电阻4k7 1300-4 12k2-4 1排阻10k8 130p 2104 222uf 1电容100uf 2静态数码管 SM4105 474HC595 4独立按键 4下载口 ISP-PORT 1第八章 心得体会虽然本次课程设计只有一个星期的时间,但是我之前就已经开始设计程序了,只是一直没啥进展。我也成了倒数几个没做完的一员,其实心里一直有压力,可是有时候总是力气没花到点子上,事倍功半,主要一个原因就是,我在构建整个程序框架的时候没有一个清晰的认识,结果总是达不到自己所要求的目标。这最后一天,我找了两位同学帮我一起检查程序,结果是,我的主体程序没啥问题,问题就是小小的一些细节上,比如中断打开的顺序等。这次一周的实习让我学到了很多书本上学不到的东西,无论我们做什么事都要先考虑好,然后再付诸实践,还有就是细节决定成败,我之所以前面一直没有调试出来就是栽在这些个细节上。最后衷心感谢老师的耐心指导和同学们的热情帮助!第八章 实物照片

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报