单片机课程设计.docx

上传人:b****2 文档编号:11403772 上传时间:2023-05-31 格式:DOCX 页数:16 大小:162.93KB
下载 相关 举报
单片机课程设计.docx_第1页
第1页 / 共16页
单片机课程设计.docx_第2页
第2页 / 共16页
单片机课程设计.docx_第3页
第3页 / 共16页
单片机课程设计.docx_第4页
第4页 / 共16页
单片机课程设计.docx_第5页
第5页 / 共16页
单片机课程设计.docx_第6页
第6页 / 共16页
单片机课程设计.docx_第7页
第7页 / 共16页
单片机课程设计.docx_第8页
第8页 / 共16页
单片机课程设计.docx_第9页
第9页 / 共16页
单片机课程设计.docx_第10页
第10页 / 共16页
单片机课程设计.docx_第11页
第11页 / 共16页
单片机课程设计.docx_第12页
第12页 / 共16页
单片机课程设计.docx_第13页
第13页 / 共16页
单片机课程设计.docx_第14页
第14页 / 共16页
单片机课程设计.docx_第15页
第15页 / 共16页
单片机课程设计.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计.docx

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

单片机课程设计.docx

单片机课程设计

电气信息学院

单片机综合课程设计报告

 

课题名称电风扇模拟控制系统设计

专业班级13工电01班

学号1304200303

学生姓名方军

指导教师苏文静

评分

 

2015年12月22日至12月29日

摘要

步进电机是将电脉冲信号转化为角位移或直线位移的执行文件。

步进电机可以直接用数学信号驱动,使用非常方便。

步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率以及电动机绕组通电的相许,便可获得所需的转角,转速及转动方向。

在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。

因此非常适用于单片机控制。

它的运行速度和步距不受电源电压波动及负载的影响,因而被广泛应用于数模转换、速度控制和位置控制系统。

本课程设计以80c51单片机作为微控制器,使用混合步进电机驱动芯片ULN2003A进行驱动,实现了对步进电机运行状态的简单控制。

本次设计能实现的功能有步进电机的正转、反转和连续旋转等。

Abstract

Steppermotoristheelectricpulsesignalintoangulardisplacementorlineardisplacementoftheimplementationofthedocument.Thesteppermotorcanbedirectlydrivenbymathematicalsignals,soitisveryconvenienttouse.Theangulardisplacementofthestepmotorisdirectlyproportionaltothenumberofinputpulses.Intime,theinputpulseissynchronizedwiththeinputpulse,soaslongasthenumberandthefrequencyoftheinputpulsesarecontrolled,therequiredrotationangle,therotationspeedandtherotationdirectioncanbeobtained.Whenthereisnopulseinput,theairgapmagneticfieldcankeeptherotorinthepositionoftherotorpositionundertheexcitationofthewindingpowersupply.Soitisverysuitableforsinglechipmicrocomputercontrol.Itiswidelyusedindigitalanalogconversion,speedcontrolandpositioncontrolsystembecauseofitsrunningspeedandsteplength,whichisnotaffectedbypowersupplyvoltagefluctuationandload.Thiscourseisdesignedto80C51microcontrollerasthemicrocontroller,theuseofhybridsteppermotordriverchipULN2003Atodrive,toachieveasimplecontroloftherunningstateofthesteppermotor.Thedesigncanachievethefunctionofthesteppermotorisrotating,reverseandcontinuousrotation,etc..

1、1设计任务

本次课程设计要求按键控制二相四线步机电机的工作状态,包括:

正转、反转。

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

 

2、设计方案

1.任务分析

1)1.1步进电机工作原理

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

2)1步进电机的主要特性

步进电机必须加驱动才可以运转,驱动型号必须为脉冲信号,没有脉冲的时候,步进电机静止,如果加入适当的脉冲信号,就会以一定的角度(称为步角)转动。

转动的速度和脉冲的频率成正比。

型号20BY20L010步进电机的步进角度为18度,一圈360度,需要20个脉冲完成。

步进电机具有瞬间启动和急速停止的优越特性。

改变脉冲的顺序,可以方便的改变转动的方向。

2.方案设计

1)步进电机的控制方法

电机的运转一般由脉冲和方向信号来控制的,脉冲的频率控制电机的转速,脉冲的个数控制电机的转角;方向信号的高、低电平控制着电机的正、反转。

用单片机控制步进电机,可以用一个输出口发送脉冲:

高电平->延时->低电平->延时……延时的长短控制脉冲的频率,电平的转换次数就是脉冲个数;另外用AT89C51的输出作为方向信号。

22)建立相序表

实现步进电机运行方式、方向和速度以及启/停的控制,是接口软件设计的

主要任务。

为此,在编写程序之前,要建立一个相序表,相序表的建立应根据步进电机运行方式的要求,如图2.2.1,图2.2.2。

 

步数

P2.0

P2.1

P2.2

P2.3

A

B

C

D

1

1

1

0

0

2

0

1

1

0

3

0

0

1

1

4

1

0

0

1

图2.2.1正转环形脉冲分配表

步数

P2.0

P2.1

P2.2

P2.3

A

B

C

D

1

1

1

0

0

2

1

0

0

1

3

0

0

1

1

4

0

1

1

0

图2.2.2反转环形脉冲分配表

 

3)硬件方案

控制器芯片的选择

控制器采用80C51单片机。

其引脚功能如下:

80C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51?

指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,intel的85C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

驱动芯片的选择

ULN2003是高耐压,大电流达林顿陈列,有七个硅NPN达林顿管组成。

ULN203的每一对达林顿管都串联一个2.7k的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能在关态时承受50V的电压,输出还可以在高负载电流并行运行。

4)软件方案

运行方式与方向的控制——循环查表法

步进电机的运行方式是指各相绕组循环轮流通电的方式。

为了实现对各绕组按一定方式轮流加电,需要一个脉冲循环分配器。

循环分配器可用硬件电路来实现,也可用软件来实现。

采用软件来设计脉冲循环分配器,又有两种方法:

控制字法和循环查表法。

而本课程设计用到的是循环查表法。

循环查表法是将各相绕组加电顺序的控制代码制成一张表——步进电机相序表,存放在内存区,再设置一个地址指针。

当地址指针依次加1(或减1)时,即可从表中取出加电的代码,然后输出到步进电机,产生按一定运行方式的走步操作。

若改变相序表内的加电代码和地址指针的指向,则可改变步进电机的运行方式和方向。

 

3、系统硬件设计

1.时钟电路设计

如图3.1.1所示,采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击震荡。

其发出的时钟脉冲直接送入片内定时控制部件。

图3.1.1时钟电路

2.开关复位电路设计

如图3.2.1所示,也可用上电复位代替。

图3.2.1开关复位单路

3.驱动电路设计

如图3.3.1所示,本设计中实验1、2、3、4脚做输入端,16、15、14、13座相对应的输出端,起到放大的作用,以驱动电机。

图3.3.1驱动电路

4.开关电路设计

如图3.4.1所示,R1和R2为上拉电阻,开关K1控制步进电机正转,K2控制步进电机反转。

图3.4.1开关电路

4、系统软件设计

1.主程序流程图设计

N

N

YY

五、仿真与性能分析

1、系统仿真过程

1)进入KeilCμVision4开发集成环境,创建一个新项目(Project),并为该项目选定单片机CPU器件(AT89C52)。

并为该项目加入KeilC源程序(代码见附录)。

2)单击“Project菜单/OptionsforTarget”选项或者点击工具栏的“optionfortarget”按钮,弹出窗口,点击“Debug”按钮,  在出现的对话框里在右栏上部的下拉菜单里选中“ProteusVSMDriver”。

并且还要点击一下“Use”前面表明选中的小圆点。

再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。

在“Port”后面添加“8000”。

设置好的情形如图所示,点击“OK”按钮即可。

最后将工程编译,进入调试状态,并运行。

3)进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“useromotedebugermonitor”,如图所示。

此后,便可实现KeilC与Proteus连接调试。

图5.1.1原理图

2.仿真结果分析

1)步进电机正转,图5.2.1。

图5.2.1

2)步进电机反转,图5.2.2

图5.2.2

 

6、总结与体会

在完成本设计的过程中,我把注意力主要集中在编程,电路仿真和调试上。

合理的运用软件设计模块电路可以节省很多时间,但完全照搬也不能达到预期的效果,因为实际参数无法与设计精确匹配,因此做到精益求精,尽量达到指标要求。

本次设计综合运用了单片机和集成电路的知识,通过查阅大量相关资料,包括查阅相关书籍和网上的资料。

在方案设计方面,我们小组成员通过讨论筛选出最优的设计方案,比如在驱动电路设计时,我们放弃直接利用集成块驱动步进电机,而选用分离元件来实现同样功能,从而对小功率放大电路有了进一步的了解。

通过这次课程设计,进一步了解了步进电机的工作原理,以及单片机怎样控制电机的实现。

从电路设计,单片机控制编程以及Proteus仿真,让我感受最深的是搭建电路,第一遍搭建电路时很认真的按着原理图把电路搭建出来了,可是仿真时,按键后,电机一直不转动,于是我又把电路重新搭建一遍,因为第一遍搭建的电路可能忘记了接电源,而且仿真与实际电路参数存在差异,驱动电路中电阻选用不合理,放大后的电流没有达到电机所需要的0.5A。

第二遍搭建,我认识到了这个问题,上了电源,驱动电机工作。

但是测试了还是不动,最后经过我不断的调整,发现是基极电阻值小了,电流放大倍数不足以提供电机转动,最终还是到了正常状态。

另外就搭建过程中出现的问题而言,我认为在搭电路过程中我们要特别注意这样几个方面;一是搞清楚电路图中电路的流向,标出正负极;三是搭建时尽量使用最少的线连接一个赏心悦目的电路,便于老师检查,自己找错误。

本次课程设计,使我的设计能力、分析与解决实际问题的能力、动手操作能力得到了很大的提高。

通过该课题的设计学习,更熟悉的了解和掌握单片机应用系统设计的基本方法、设计思路、设计步骤及调试运行等全过程,达到了理论联系实际,学以致用的目的。

通过两周的努力,完成了老师交给我们的设计工程——单片机控制二相四线步进电机。

刚开始遇到一些困难,经过老师的细心指导,和同学的帮助,才得以解决。

在规定时间内完成了任务。

期间,感触最深的是自己的专业基础知识不熟练,知识面不够具体全面,虽然经翻阅资料,知识点能够整合完成,但更多的需要自己平时注意专业知识的补充和积累,提高动手,设计能力和分析解决问题的能力,为就业后的工程设计奠定良好的基础。

 

8七、参考文献

[1]王晓明编,电动机的单片机控制(第一版),北京航空航天大学出版社,2002

[2]张毅刚编,单片机原理与应用,高等教育出版社,2006

[3]康华光编,电子技术基础模拟部分(第五版),高等教育出版社,2006

[4]董峰,解统燕编,ProtelDXP电路设计基础教程,机械工业出版社,2008

 

附录1系统原理图

 

 

附录2程序清单

#include

#defineucharunsignedchar

#defineuintunsignedint

sbita=P0^0;

sbitb=P0^1;

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

chari,j;

/延时子程序/

voiddelay()

{

uchark=65535;

uints;

do

{for(s=0;s<100;s++);

}while(--k);

}

/带返回值的当前励磁状态检测函数/

ucharread_tab()

{

uchartest;

test=P2;

test&=0x0f;

switch(test)

{

case0x02:

i=0;break;

case0x06:

i=1;break;

case0x04:

i=2;break;

case0x0c:

i=3;break;

case0x08:

i=4;break;

case0x09:

i=5;break;

case0x01:

i=6;break;

case0x03:

i=7;break;

default:

break;

}

/主函数/

voidmain()

{

P2=0xff;

P0=0x03;

while

(1)

{

if(a==0)

{

i=read_tab();

i=i+1;

if(i==8)

i=0;

P2=TAB[i];

dalay();

}

if(b==0)

{

i=read_tab();

i=i-1;

if(i<0)

i=7;

P2=TAB[i];

delay();

}

}

}

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

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

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

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