基于AT89S52单片机的电机控制C语言程序设计毕业论文.docx

上传人:h**** 文档编号:128357 上传时间:2018-07-09 格式:DOCX 页数:65 大小:1.13MB
下载 相关 举报
基于AT89S52单片机的电机控制C语言程序设计毕业论文.docx_第1页
第1页 / 共65页
基于AT89S52单片机的电机控制C语言程序设计毕业论文.docx_第2页
第2页 / 共65页
基于AT89S52单片机的电机控制C语言程序设计毕业论文.docx_第3页
第3页 / 共65页
基于AT89S52单片机的电机控制C语言程序设计毕业论文.docx_第4页
第4页 / 共65页
基于AT89S52单片机的电机控制C语言程序设计毕业论文.docx_第5页
第5页 / 共65页
点击查看更多>>
资源描述

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

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

3、滑调速; 8、可实现正反转; 9、采用光电隔离 L298N 的输入输出逻辑关系表 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,地,输出。 3 CS3020 外形图 使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出

5、。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。 三、数码管显示模块: 数码管 显示模块采用的是静态数码管。 第四 章 系统框图 Y N 开始 初始化 设置 定时器、计数器工作方式 设置转动方式 显示转速 设置 转动方式 4 N Y = 第五 章 程序 #include #include #define uchar unsigned char #define uint unsigned int sbit IN1=P10;

6、 sbit IN2=P11; sbit ENA=P12; sbit K1=P30; /正转 sbit K2=P31; /反转 sbit K3=P32; /加速 中断入口开始 重置定时常数 计时 一秒 统计转速 保持 与 设定转速比较 减速 加速 中断返回 5 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=

7、5; extern uint num=1; extern uint n; extern uint e=0; void xianshi() ; /数码管显示 void testkey(); /键盘扫描 void chuli(); /正反转处理 void main() ENA=1; TMOD=0x01; /T0 方式 1 定时 TH0=(65536-1000)/256; TL0=(65536-1000)%256; /周期 1ms ET0=1; /允许 T0 定时器中断 EA=1; /开启总中断 TR0=1; /启 动定时器 T0 while(1) testkey(); xianshi(); voi

8、d 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; break; case 1: /反转 IN1=1; IN2=0; num=0; break; 8 第 六 章 原理图 第七 章 元件清单 元件型号 数量 AT89S52 1 带锁开关 1 晶振 11.0592M 1 霍尔元件 CS3020 1 L298N 1 IN4148 1 IN4007 12 电阻 1k 1 9

9、4k7 1 排阻 300-4 1 2k2-4 1 10k8 1 电容 30p 2 104 2 22uf 1 100uf 2 静态数码管 SM4105 4 74HC595 4 独立按键 4 下载口 ISP-PORT 1 第八 章 心得体会 虽然本次课程设计只有一个星期的时间,但是我之前就已经开始设计程序了,只是一直没啥进展。我也成了倒数几个没做完的一员, 其实心里一直有压力,可是有时候总是力气没花到点子上,事倍功半,主要一个原因就是,我在构建整个程序框架的时候没有一个清晰的认识,结果总是达不到自己所要求的目标。这最后一天,我找了两位同学帮我一起检查程序,结果是,我的主体程序没啥问题,问题就是小小的一些细节上,比如中断打开的顺序等。 这次一周的实习让我学到了很多书本上学不到的东西,无论我们做什么事都要先考虑好,然后再付诸实践,还有就是细节决定成败 ,我之所以前面一直没有调试出来就是栽在这些个细节上。 最后衷心感谢老师的耐心指导和同学们的热情帮助! 10 第八 章 实物照片

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。