单片机课程设计罗鹏慧.docx

上传人:b****4 文档编号:6698078 上传时间:2023-05-10 格式:DOCX 页数:21 大小:516.36KB
下载 相关 举报
单片机课程设计罗鹏慧.docx_第1页
第1页 / 共21页
单片机课程设计罗鹏慧.docx_第2页
第2页 / 共21页
单片机课程设计罗鹏慧.docx_第3页
第3页 / 共21页
单片机课程设计罗鹏慧.docx_第4页
第4页 / 共21页
单片机课程设计罗鹏慧.docx_第5页
第5页 / 共21页
单片机课程设计罗鹏慧.docx_第6页
第6页 / 共21页
单片机课程设计罗鹏慧.docx_第7页
第7页 / 共21页
单片机课程设计罗鹏慧.docx_第8页
第8页 / 共21页
单片机课程设计罗鹏慧.docx_第9页
第9页 / 共21页
单片机课程设计罗鹏慧.docx_第10页
第10页 / 共21页
单片机课程设计罗鹏慧.docx_第11页
第11页 / 共21页
单片机课程设计罗鹏慧.docx_第12页
第12页 / 共21页
单片机课程设计罗鹏慧.docx_第13页
第13页 / 共21页
单片机课程设计罗鹏慧.docx_第14页
第14页 / 共21页
单片机课程设计罗鹏慧.docx_第15页
第15页 / 共21页
单片机课程设计罗鹏慧.docx_第16页
第16页 / 共21页
单片机课程设计罗鹏慧.docx_第17页
第17页 / 共21页
单片机课程设计罗鹏慧.docx_第18页
第18页 / 共21页
单片机课程设计罗鹏慧.docx_第19页
第19页 / 共21页
单片机课程设计罗鹏慧.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计罗鹏慧.docx

《单片机课程设计罗鹏慧.docx》由会员分享,可在线阅读,更多相关《单片机课程设计罗鹏慧.docx(21页珍藏版)》请在冰点文库上搜索。

单片机课程设计罗鹏慧.docx

单片机课程设计罗鹏慧

山西工程技术学院

 

课程设计报告

 

题目单片机控制步进电机

 

课程名称单片机原理及接口技术

系部名称电气工程与自动化系

专业电气自动化

班级电气自动化三班

学生姓名罗鹏慧

学号140723112

指导教师刘彬

 

1设计任务

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

在实验平台上扩展一个四相步进电机,利用单片机通过开关控制步进电机进行正转的加速减速和停止,并用LED红灯表示正转,绿灯表示停转。

2设计思路

单片机课程设计是考察学生利用所学过的专业知识,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。

本次设计考核的能力主要有:

1)专业知识应用能力,包括电路分析、电子技术、单片机、电气控制、电机与拖动、、计算机高级语言、计算机办公软件等课程,

2)电气与自动化系统的设计与实际应用能力。

基于单片机和proteus的步进电机控制电路的基本组成如图2-1所示:

图2-1

根据设计要求,采用的方案如下。

硬件部分实现电机转动,包括控制开关模块;电机转动模块。

软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动。

电源驱动89C51单片机,在89C51中装载程序,通过开关按键来输入信号,89C51向驱动电路提供信号使步进电机动作,该设计是团队完成,我完成了对步进电机的反转转加/减速和停止的控制。

3.主要元件介绍:

3.1步进电机:

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机区别于其他控制电机的最大特点是:

它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机分三种:

永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件,其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。

步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(不距角)或前进、倒退一步。

步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。

步进电机28BYJ48:

如图3-1

 

图3-1

步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。

当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。

),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。

),八拍(A-AB-B-BC-C-CD-D-DA-A。

四相步进电机有两种运行方式,一、四相四拍;二、四相八拍。

要想搞清楚四相八拍运行方式下步进电机的转速如果计算,需要先清楚两个基本概念。

1、拍数:

完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.

2、步距角:

对应一个脉冲信号,电机转子转过的角位移用θ表示。

θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。

四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。

这两个概念清楚后,我们再来计算转速,以基本步距角1.8°的步进电机为例(现在市场上常规的二、四相混合式步进电机基本步距角都是1.8°),四相八拍运行方式下,每接收一个脉冲信号,转过0.9°,如果每秒钟接收400个脉冲,那么转速为每秒400X0.9°=360°,相当与每秒钟转一圈,每分钟60转。

由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,如图3-2:

图3-2

 

所以可以定义正转励磁序列为A->AB->B->BC->C->CD->D->DA

ucharcodeFFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};

//反转励磁序列为AD->D->CD->C->BC->B->BA->A

ucharcodeREV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};如表3-1

 1

 0

 0

 0

 0x08

 1

 1

 0

 0

 0x0c

 0

 1

 0

 0

 0x04

 0

 1

 1

 0

 0x06

 0

 0

 1

 0

 0x02

 橙 

 黄

 粉

十六制(P1口) 

 0

 0

 1

 1

 0x03

 0

 0

 0

 1

 0x01

 1

 0

 0

 1

 0x09

 

表3-1

步进电机28BYJ48的主要技术参数:

如表3-2

 

表3-2

3、四相步进电机的脉冲分配规律

目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。

本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。

四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。

各种工作方式在电源通电时的时序与波形分别如图1a、b、c所示。

本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。

3.289C51单片机

 

图3-3

Atmel公司生产的89C51单片机是一种低功耗/低电压‘高性能的8位单片机,它采用CMOS和高密度非易失性存储技术,而且其输出引脚和指令系统都与MCS-51兼容;片内的FlashROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。

89C51单片机部分引脚功能介绍:

图3-4单片机引脚功能图

XTAL2(18脚):

接外部晶体和微调电容的一端;在89C51片内它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。

若需采用外部时钟电路时,该引脚输入外部时钟脉冲。

89C51/8031正常工作时,该引脚应有脉冲信号输出。

XTAL1(19脚):

接外部晶体和微调电容的另一端;在片内它是振荡电路反向放大器的输入端,在采用外部时钟时,该引脚输入外部时钟脉冲。

RST/VPD(9脚):

RST:

复位信号输入端,高电平有效。

当此输入端保持两个机器周期的高电平时,就可以完成复位操作。

RST/VPD(9脚):

VPD:

RST引脚的第二功能,备用电源输入端。

当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动接入该引脚,为RAM提供备用电源,以保证RAM中的信息不丢失,使得复位后能继续正常运行。

EA/Vpp(31脚):

Vpp:

对8751片内EPROM固化编程时,编程电压输入端(12-21V)。

P0口:

漏极开路的8位准双向I/O口,每位能驱动8个LS型TTL负载。

P0口可作为一个数据输入/输出口;

在CPU访问片外存储器时,P0口为分时复用的低8位地址总线和8位数据总线。

P1口:

带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。

P3口:

带内部上拉电阻的8位准双向I/O端口,每位能驱动4个LS型TTL负载。

P3口除作为一般I/O口外,每个引脚都有第二功能。

 

3.3硬件设计图

图3-5硬件设计图

通过对开关k1k2k3的开关,来实现对步进电机的正反转和停止,通过k4k5来进行加减速,并且有相应的LED灯的显示。

3.3控制模块

 

图3-6控制模块图

功能:

通过控制台实现对单片机程序的开与关

 

4软件编程

4.1主流程图

根据设计任务,相应的软件设计如下:

开始

If(k5==0)

If(k2==0)

If(k1==0)

判断按键

减速

按键

加速

停止

反转

正转

按键

 

 

If(k4==0)

If(k3==0)

 

图4-1程序流程图

 

4.2初始化程序:

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharcodeFFW[]=

{

0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09

};

ucharcodeREV[]=

{

0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01

};

sbitK1=P3^0;

sbitK2=P3^1;

sbitK3=P3^2;

sbitK4=P3^3;

sbitK5=P3^4;

voidDelayMS(uintms)

{

uchari;

while(ms--)

{

for(i=0;i<120;i++);

}

}

voidSETP_MOTOR_FFW(ucharn)

{

uchari,j;

intM=25;

for(i=0;i<5*n;i++)

{

for(j=0;j<8;j++)

{

if(K3==0)break;

P1=FFW[j];

if(K4==0)

{

P0=0xf6;

DelayMS(20);

}

elseif(K5==0)

{

P0=0xee;

DelayMS(100);

}

elseDelayMS(50);

if(K4==1&&K5==1)

{

P0=0xfe;

}

}

}

}

voidSETP_MOTOR_REV(ucharn)

{

uchari,j;

intM=25;

for(i=0;i<5*n;i++)

{

for(j=0;j<8;j++)

{

if(K3==0)break;

P1=REV[j];

if(K4==0)

{

P0=0xf5;

DelayMS(20);

}

elseif(K5==0)

{

P0=0xed;

DelayMS(100);

}

elseDelayMS(50);

if(K4==1&&K5==1)

{

P0=0xfd;

}

}

}

}

voidmain()

{

ucharN=50;

while

(1)

{

if(K1==0)

{

P0=0xfe;

SETP_MOTOR_FFW(N);

if(K3==0)break;

}

elseif(K2==0)

{

P0=0xfd;

SETP_MOTOR_REV(N);

if(K3==0)break;

}

else

{

P0=0xfb;

P1=0x03;

}

}

}

4.3正反转的控制字设定:

ucharcodeFFW[]=

{

0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09

};

ucharcodeREV[]=

{

0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01

};

本列4组步进电动机工作于8拍方式

正转励磁序列为A->AB->B->BC->C->CD->D->DA

反转励磁序列为AD->D->CD->C->BC->B->BA->A

正转:

sbitK1=P3^0;

反转:

sbitK2=P3^1;

停止

sbitK3=P3^2;

加速:

sbitK4=P3^3;

减速:

sbitK5=P3^4;

4.3.2延时程序:

voidDelayMS(uintms)

{

uchari;

while(ms--)

{

for(i=0;i<120;i++);

}

}

4.3.4反转部分:

voidSETP_MOTOR_REV(ucharn)

{

uchari,j;

intM=25;

for(i=0;i<5*n;i++)

{

for(j=0;j<8;j++)

{

if(K3==0)break;

P1=REV[j];

if(K4==0)

{

P0=0xf5;

DelayMS(20);

}

elseif(K5==0)

{

P0=0xed;

DelayMS(100);

}

elseDelayMS(50);

if(K4==1&&K5==1)

{

P0=0xfd;

}

}

}

}

按照反转励磁序列为AD->D->CD->C->BC->B->BA->A进行通电,转动n圈,在转动过程中,按下加速按钮,电机加速,对应的LED灯会亮,按下减速,电机减速,对应的LED灯会亮,如果按下停止按钮,会立刻停止转动,亮停止灯。

4.4主程序:

voidmain()

{

ucharN=50;//运转圈数

while

(1)

{

if(K1==0)

{

P0=0xfe;//LED1点亮,正转指示灯

SETP_MOTOR_FFW(N);//电动机正转

if(K3==0)break;

}

elseif(K2==0)

{

P0=0xfd;//LED2点亮,反转指示灯

SETP_MOTOR_REV(N);//电动机反转

if(K3==0)break;

}

else

{

P0=0xfb;//LED3点亮,停止指示灯

P1=0x03;

}

}

}

5调试结果与过程

 

5.1反转结果显示:

5.1.1反转加速:

 

图5-1反转加速

 

5.1.2反转减速:

5.2停止结果显示;

图5-2停止结果显示

在仿真过程中要注意元件的选择,还有仿真跟实物存在的差异,仿真的数据不一定就适合实物,所以要根据实物来进行修改,通过不断的调试才能符合要求,在连接电路时要看好引脚。

 

 

6总结与体会

此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力.因为以前做过关于焊接的电工实习,所以对于我们机械设计专业的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提。

其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了。

通过键盘控制和液晶显示实现了秒表的功能,能实现本设计题目的基本要求和发挥部分。

尽量做到硬件电路简单稳定,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。

我们将各个部分的程序编好后怎么都连不起来,出不了预期的效果.在进行编译的时候,数码显示管上什么都没有,按一下旁边与之相连的元器件时就有显示了,所以也花费了好多时间在PCB板的重新焊接上,最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期两周的单片机课程设计没有浪费,我们从中学到了很多知识,也让我们对单片机有了更深一步的了解.虽然最后结果是出来了,可这与老师的精心指导是分不开的,他引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以说老师是功不可抹的。

由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。

 

7参考资料

[1]侯文霞.变频调速技术在中央空调控制中的应用[J].机床电器.2002第二期.

[2]韩常.PLC编程及应用[M].北京:

机械工业出版社,2005.

[3]吴启红、胡洪、谭斌.变频器、可编程序控制器及触摸屏综合应用技术—实操指导书.机械工业出版社,2007

[4]岳庆来、周锋、吴启红、胡洪.变频器、可编程序控制器及触摸屏综合应用技术.

机械工业出版社,2006

 

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

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2