【毕业设计】2-基于单片机控制的直流电机调速系统设计(原理图+仿真+答辩论文+答辩PPT)

【毕业设计】2-基于单片机控制的直流电机调速系统设计(原理图+仿真+答辩论文+答辩PPT)

资料要求

包含此题目毕业设计全套资料:
原理图工程
仿真工程
源代码工程
答辩论文,配套设计参考设计说明书,字数:18077
答辩PPT
详情请私信!

任务书

主要研究内容:
1.单片机;2.直流电机,液晶显示器LCD。
设计思路:
查阅相关文献资料学习单片机、直流电机,液晶显示器LCD,编程实现单片机控制的直流电机调速系统设计功能,LCD显示速度,模式等。
方法和要求:
1.查阅相关文献资料学习单片机、直流电机,液晶显示器LCD;
2.学习Keil软件,用汇编语言或者C语言编程实现单片机控制的直流电机调速系统设计功能;
3.学习Proteus软件,进行仿真或实物实现单片机控制的直流电机调速系统设计功能。
4.撰写毕业论文。

设计说明书

摘要

基于单片机控制直流电机调速系统设计的研究意义在于可以通过按键对直流电机进行有效的控制。通过单片机定时器实现PWM。通过按键来调节PWM占空比实现对直流电机调速。在工业的使用环境中,在许多复杂噪音多的环境中可以对直流电机无干扰的进行控制。所以对单片机控制直流电机调速系统研究意义深远。
基于单片机的直流电机调速系统,主要由直流电机及驱动模块;按键模块;LCD1602显示模块;单片机最小系统这几部分组成。通过按键来控制直流电机的转速。在本次设计中,一共分为10个挡位。通过按键来控制PWM占空比以实现对直流电机的调速。LCD1602则显示当前速度挡位信息。本论文从一开始构思系统实现的功能,然后设计硬件电路对元器件选型,设计电路、对单片机编写程序,程序需要不停的调试,在调试过程中寻找最佳的控制点,最后利用PROTEUS软件仿真实现直流电机调速的功能,通过软件自带的模拟示波器显示占空比波形。
在最后也对整个系统做了详细的测试记录,在不同的工作环境中的工作情况,通过观察模拟示波器的占空比方波观察是否已达到此系统的设计要求。最后根据参数来对系统进行改进。最后达到自己想要的设计成果。

设计框架架构

前 言 1
第一章 绪论 2
第一节 研究背景 2
第二节 研究意义 2
第三节 研究现状 3
第四节 本文的主要研究内容 4
第二章 基于单片机的直流调速系统方案 5
第一节 元器件的选择 5
一、单片机的选择 5
二、显示器选择 5
三、电机调速方式选择 6
第二节 系统结构总框图 6
第三节 本章小结 7
第三章 系统硬件电路设计 8
第一节 LCD1602显示电路设计 8
第二节 单片机最小系统模块电路 9
一、89C52单片机介绍 9
二、复位电路设计 9
四、晶振电路设计 10
三、单片机最小系统设计 11
第三节 按键电路设计 11
第四节 直流电机驱动电路设计 12
第五节 电源电路设计 13
第六节 直流电机调速系统总电路设计 13
第七节 本章小结 14
第四章 基于单片机的直流调速系统的软件设计 15
第一节 Keil软件介绍 15
第二节 基于单片机的直流调速系统软件总设计 15
第三节 PWM软件设计 16
第四节 LCD1602显示模块软件设计 18
第五节 按键模块软件设计 19
第六节 本章小结 21
第五章 基于单片机的直流调速系统的测试结果分析 22
第一节 Proteus软件介绍 22
第二节 仿真与验证 23
一、仿真总电路设计 23
二、仿真结果 24
三、系统仿真测试及总结 27
第三节 本章小结 28
总 结 30
致 谢 31
参考文献 32
附 录 34
一、英文原文 34
二、英文翻译 36
三、源代码 38

设计说明书及设计文件

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

字数:18077在这里插入图片描述

源码展示

#include<reg51.h>
#include<intrins.h>			 //包含头文件
#define LCD1602 P0
#define uchar unsigned char
#define uint unsigned int		 //宏定义

sbit dj=P1^0;//电机控制端接口
sbit SN=P1^1;//使能继电器动作
//按键接口/
sbit key1=P3^5;//设置温度
sbit key2=P3^6;//温度加
sbit key3=P3^7;//温度减
//
sbit RS = P2^7;
sbit EN = P2^6;
signed int period = 0;//PEM period
uchar dang;//档位显示
uchar Mode=0;
uchar SMODE=0;//调节占空比
uchar time=0;//定时器加数
uchar d1,d2,d3;//显示数据暂存变量
uchar code tab1[]={"  Speed Control"};
uchar code tab2[]={"SPEED:"};
void delay(uint ms)		//延时函数,大约延时
{
	uchar x;
	for(ms;ms>0;ms--)
		for(x=50;x>0;x--);
}
///********液晶写入指令函数与写入数据函数,以后可调用**************/
void write_1602com(uchar com)//****液晶写入指令函数****
{
	RS=0;//数据/指令选择置为指令
//	rw=0; //读写选择置为写
	LCD1602=com;//送入数据
//	delay(10);
	EN=1;//拉高使能端,为制造有效的下降沿做准备
	delay(10);
	EN=0;//en由高变低,产生下降沿,液晶执行命令
}
void write_1602dat(uchar dat)//***液晶写入数据函数****
{
	RS=1;//数据/指令选择置为数据
//	rw=0; //读写选择置为写
	LCD1602=dat;//送入数据
//	delay(10);
	EN=1; //en置高电平,为制造下降沿做准备
	delay(10);
	EN=0; //en由高变低,产生下降沿,液晶执行命令
}
void lcd_init()//***液晶初始化函数****
{
	uchar a,b;
	write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据
	write_1602com(0x0c);//开显示不显示光标
	write_1602com(0x06);//整屏不移动,光标自动右移
	write_1602com(0x01);//清显示
	write_1602com(0x80);//时间显示固定符号写入位置,从第1个位置后开始显示
	for(a=0;a<15;a++)
	{
		write_1602dat(tab1[a]);//写显示时间固定符号,两个冒号
	delay(3);
	}	
	write_1602com(0x80+0x40);//时间显示固定符号写入位置,从第1个位置后开始显示
	for(b=0;b<6;b++)
	{
		write_1602dat(tab2[b]);//写显示时间固定符号,两个冒号
	delay(3);
	}
}
void display()
{

if(period == 100)
{
	write_1602com(0x80+0x40+10);
  write_1602dat((period /100)+0x30);
	write_1602com(0x80+0x40+11);
	 write_1602dat(0x30);
}
else
{
write_1602com(0x80+0x40+10);
write_1602dat((period /10)+0x30);
}							  
}
void KEY()
{//加
if(key1==0)
	{
		delay(10);
		if(key1==0)	
		{
       period +=10;
			if(period >90)
				period = 100;
		}				
		while(key1==0);		
	}
	//减少
	if(key2==0)
	{
		delay(10);
		if(key2==0)
		{
      period =period - 10;
			if(period <=0)
				period=0;
		}
		while(key2==0);
	}
	
}
void init()
{

TMOD=0x01;//???0????1
TH0=0xff;//(65536-10)/256;//?????
TL0=0xf7;//(65536-10)%256;//0.01ms
EA=1;//????
ET0=1;//????0??
TR0=1;//?????0
}
void main()		  //主函数
{
	uchar dj;
	dj=0;		  //电机
  TR0=0;
	delay(500);

	lcd_init();
	init();
	while(1)			  //进入while循环
	{	
		KEY();//按键扫描函数
		display();	 //调用显示函数
	//	zi_dong();
	}
}
void T0_time() interrupt 1
{ 
TR0=0;
TH0=0xff;//(65536-10)/256;//
TL0=0xf7;//(65536-10)%256;//0.01ms
TR0=1;
time++;
if(time>=100) //1khz
time=0;
if(time < period) //
dj=1;
else dj=0;
}

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
"成绩" " 课程设计报告 题 目 单片机控制步进电机 课 程 名 称 单片机原理及接口技术 院 部 名 称 专 业 自动化 班 级 M10自动化 学 生 姓 名 学 号 课程设计地点 课程设计学时 指 导 教 师 高峰 金陵科技学院教务处制 【注:根据课程设计大纲第四项具体要求撰写课程设计报告】 目 录 1设计任务和要求 3 2设计思路 4 3系统硬件设计 5 3.1 硬件电路的工作原理 5 3.2步进电机模块 5 3.3控制模块 6 3.4主要元件介绍: 6 4软件编程 11 5 调试过程与结果 20 5.1正转结果显示: 20 5.1.1正转加速: 21 5.1.2正转减速: 21 6 总结与体会 24 7 参考资料 26 8 附录 26 1设计任务和要求 单片机课程设计是考察学生利用所学过的专业知识,进行综合的电机控制系统设计并 最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学 生的创新能力和团队协作能力,提高学生的动手实践能力。最终形成一篇符合规范的设 计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。 本次设计考核的能力主要有: 1) 专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电气控制、电 机与拖动、微特电机及其驱动、计算机高级语言、计算机辅助设计、计算机办公 软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、 伺服电机等课程。 2) 项目设计与运作能力,团队协作能力,技术文档撰写能力,PPT汇报与口头表达能力 。 3) 电气与自动化系统设计与实际应用能力。 要求完成的工作量包括: 1) 现场仿真演示效果。 2) 学生结合课题进行PPT演讲与答辩。 3) 学生上交课题要求的各类设计技术文档。 2设计思路 电路基本理论: 步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点讲:当步进驱动器接收 到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。可通过控制脉 冲数来控制角位移量,从而达到准确的定位目的。通过对步进电机的软件设计和硬件设 计包括步进电机的结构、原理及应用,根据原理和硬件的设计利用c语言编写程序,经过 反复运行和调试,实现单片机对步进电机的控制。 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它 的的驱动电路根据控制信号工作,控制信号由单片机产生。当步进驱动器接收到一个脉 冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电 控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉冲个数即可以控制角 位移量,从而达到准确定位的目的。控制步进电机的转向,即给定工作方式正序换相通 电,步进电机正转,若按反序通电换相,则电机就反转。控制步进电机的速度,即给步 进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔 越短,步进电机就转得越快。同时通过控制脉冲频率来控制电机转动的速度和加速度, 从而达到调速的目的。 基于单片机和proteus的步进电机控制电路的基本组成如图所示: 根据设计要求,采用的方案如下。硬件部分实现电机转动,包括控制开关模块;电机 转动模块。软件部分实现对步进电机的控制功能,主要设计思想通过控制控制程序的 开关来控制电机的转动。电源驱动89C51单片机,在89C51中装载程序,通过开关按键来 输入信号,89C51向驱动电路提供信号使步进电机动作。 3系统硬件设计 3.1 硬件电路的工作原理 总电路图 通过对开关k1 k2 k3的开关,来实现对步进电机的正反转和停止,通过k4 k5来进行加减速,并且有相应的LED灯的显示。 3.2步进电机模块 功能:单片机输出的程序通过转换器和电机驱动器给步进电机一个脉冲信号,使步进 电机实现正转与反转。 3.3控制模块 功能:通过控制台实现对单片机程序的开与关 3.4主要元件介绍: 3.4.1步进电机: 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电 机就转动一个角度,因此非常适合于单片机控制。步进电机区别于其他控制电机的最大 特点是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定 ,而电机的转速由脉冲信号频率决定。 步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲 电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件,其功用是 将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其 在工业控制领域获得了广泛应用。步进电机的运转是由电脉冲信号控制的,其角位移量 或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(不距角)或前 进、倒退一步。步进电机旋转的角度由输入的电

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cqtianxingkeji

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值