




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学能力拓展训练课程设计说明书课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 基于电动机的单片机仿真和C语言开发 初始条件:本课程设计,要求用使用Proteus仿真软件进行系统设计与仿真。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周内完成对系统的设计、仿真。2、技术要求:1)设计一种简单的(步进)电动机(MOTOR)控制模块,实现按键对步进电机的启动、转动、停止或调速等控制。要求进行电路仿真实验,并使用C语言进行程序的开发。 2)要求学生主动思考,自主发挥,实现系统的特色功能。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。提交报告的主要内容:(使用Proteus 7.5 sp3)1) 题目2) 仿真所完成的主要功能和特色简介摘要(特别是自己扩展的功能,根据特色功能评优)3) Proteus仿真的基本流程4) 所使用芯片以及引脚功能简介(需要提供对应芯片DataSheet的下载链接)5) 设计方案与工作原理,给出仿真电路图6) 实验记录与结果分析时间安排:1) 2012 年 7 月 9 日, 查阅相关资料,学习设计原理。2) 2012 年 7 月 1011 日,方案选择和电路设计仿真。3) 2012 年 7 月 12 日, 设计说明书撰写。4) 2012 年 7 月 13 日 , 上交报告,同时进行答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录1、概论32、设计原理和方法42.1设计原理42.2步进电机的工作原理43、芯片介绍63.1 AT89C51介绍63.2 LM032L介绍74、系统硬件电路设计84.1系统硬件电路设计图84.2系统硬件电路模块94.2.1键盘接口电路94.2.2 LCD显示电路94.2.3 驱动电路105、系统软件仿真105.1 步进电机转速控制仿真105.2步进电机的转动方向仿真115.3步进电机的启动和停止功能126、源程序147、心得体会238、参考文献241、概论单片机集成度高,功能强,可靠性高,体积小,功耗低,使用方便,价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎无处不在,无所不为。单片机的应用领域已经从面向工业控制,通讯,交通,智能仪表等迅速发展到家用消费产品,办公自动化,汽车电子,PC机外围一记网络通讯等广大领域。 单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,成为普林斯机构。另一种是将程序存储器个数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前单片机以采用程序存储器截然分开的结构多。本课题讨论的占空比可调的信号发生器的核心是目前应用极为广泛的51系列单片机。Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总 代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽 然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具 (仿真软件), 从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、 AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil和MPLAB等多种编译器。Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: 1原理布图 2PCB自动或人工布线 3SPICE电路仿真 革命性的特点 1互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 2仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型 上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。2、设计原理和方法2.1设计原理 步进电机控制是一个比较精确的控制,本次选择用AT89C51单片机来控制ULN2003A驱动器来驱动四相步进电机,使步进电机能够有规律的进行起动、正转、反转、设置、停止等功能,同时显示当前运行状态。单片机采并受到按键的控制,通过扫面按键的状态来控制步进电机工作。启动/暂停键和控制步进电机转动的启动或暂停,正转/反转键控制步进电机的转动方向,八拍/四拍键、加速键和减速键一起控制步进电机的转动速度。下面是步进电机控制原理框图: ULN2003A驱动器键盘控制AT89C51单片机步进电机 图2.1 步进电机控制原理框图2.2步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。图1 四相步进电机步进示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:a单四拍 b.双四拍 c.八拍图2.步进电机工作时序波形图步进电机常用的驱动方式是全电压驱动,即在电机移步与锁步时都加载额定电压。为了防止电机过流及改善驱动特性,需加限流电阻。由于步进电机锁步时,限流电阻要消耗掉大量的功率,故限流电阻要有较大的功率容量,并且开关管也要有较高的负载能力。步进电机的另一种驱动方式是高低压驱动,即在电机移步时,加额定或超过额定值的电压,以便在较大的电流驱动下,使电机快速移步;而在锁步时,则加低于额定值的电压,只让电机绕组流过锁步所需的电流值。这样,既可以减少限流电阻的功率消耗 ,又可以提高电机的运行速度,但这种驱动方式的电路要复杂一些。驱动脉冲的分配可以使用硬件方法,即用脉冲分配器实现。现在 ,脉冲分配器已经标准化、芯片化 ,市场上可以买到。但硬件方法结构复杂,成本也较高。3、芯片介绍3.1 AT89C51介绍AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的 单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出 管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚排列如图3.1所示。图3.1 AT89C51引脚图3.2 LM032L介绍LM032L采用标准的14脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。引脚图如图3.2所示。图3.2 LM032L引脚图4、系统硬件电路设计4.1系统硬件电路设计图系统硬件电路原理图如下图4.1所示,5个独立按键分别与单片机相连接控制步进电机的转动速度、方向、启动和停止。当有按键按下时,键盘扫描程序就会辨认出所按下的键来改变步进电机的工作方式。通过单片机的P0口连接到LCD032L的数据段,显示步进电机的转动速度、转动方向和八拍四拍工作。使用ULN2003A驱动器驱动步进电机,接入单片机的P10P13端口。图4.1 系统硬件电路设计图4.2系统硬件电路模块4.2.1键盘接口电路小键盘如图4.2.1所示,总共有5个按键。启动/暂停键接端口P3.0,控制步进电机转动的启动或暂停。正转/反转键接端口P3.1,控制步进电机的转动方向。八拍/四拍键接外部中断,控制步进电机的工作方式。加速键和减速键分别接外部中断1和定时器0,控制步进电机的转动速度。通过程序实时扫描键盘,并判断当键盘被按下后转到键盘处理子程序中。图4.2.1 键盘接口电路4.2.2 LCD显示电路LCD选取的是LM032L为20*2的液晶,与单片机的连接电路如下。其中VSS、VDD接+5V电源,VEE接地。D0D7接单片机的P0口。图4.2.2 显示部分电路 4.2.3 驱动电路 P1口低四位输出经过非门接入ULN2003A驱动器,来驱动步进电机,如下图4.2.3所示: 图4.2.3 步进电机驱动电路5、系统软件仿真5.1 步进电机转速控制仿真按下加速键,控制步进电机的转动速度,直到液晶显示器显示SPEED(n/min):040和AL:0.9,这个过程中明显看出步进电机转速逐渐增加,如图5.1所示 图5.1.1 同理,按减速键的时候,液晶显示器SPEED(n/min)显示的数字逐渐变小,步进电机转动速度也越来越慢。控制步进电机转动速度能很好的实现,符合要求。 当然,八拍/四拍键是控制步进电机工作方式的,其作用也是控制步进电机的转动速度。其中八拍工作方式控制步进电机转动的速度,是四拍工作方式的两倍。当在八拍工作方式下,控制加速键,使液晶显示器显示SPEED(n/min):040和AL:1.8。如图5.1.2所示 图5.1.2当再次按下八拍/四拍键,使步进电机的工作方式为四拍,此时液晶显示器显示SPEED(n/min):020和AL:0.9。如图5.1.2所示图5.1.2可以明显看出,八拍工作方式控制步进电机转动的速度,是四拍工作方式的两倍。5.2步进电机的转动方向仿真 步进电机转动方向初始状态为顺时针方向,液晶显示器显示STATE:ZZ,如图5.2.1所示 图 5.2.1 当按下正转/反转键的时候,电动机转动方向为逆时针方向,液晶显示器显示STATE:FZ,如图5.2.2所示 图5.2.2 再次按下正转/反转键,电动机转动方向改为顺时针方向,从此可以看出,可以很好的控制电动机的顺时针和逆时针转动,符合设计要求。5.3步进电机的启动和停止功能 当按下启动/暂停键,步进电机停止转动,且液晶显示器显示PAUSE,如下图5.3所示图5.3.1当再次按下按下启动/暂停键,步进电机又接着转动,液晶显示器显示和停止之前的内容一样。如图5.3.2所示图5.3.2由此看出,本设计可以很好的控制步进电机的启动和停止功能,符合设计要求。6、源程序#include#define uchar unsigned char#define uint unsigned intsbit lcdrs=P20; /读写选择端sbit lcdrw=P21; /数据/命令选择端sbit lcden=P22; /使能端uchar Speedchar=SPEED(n/min):;uchar Statechar=STATE:;uchar Anglechar=AL:;uchar STATE_CW=ZZ;uchar STATE_CCW=FZ;uchar Angle1=0.9;uchar Angle2=1.8;uchar SPEED3=000;uchar QT=PAUSE;uchar code table1=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9;/八拍正转uchar code table2=0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1;/八拍反转、uchar code table3=0xf6,0xfc,0xf9,0xf3;/四拍正转uchar code table4=0xf3,0xf9,0xfc,0xf6;/四拍反转uint RunSpeed=70;uint i=0;uint a=5;uchar flag=0; /运行状态,正转/反转(0/1)uchar angle=0; /步距角状态,八拍/四拍(0/1)uchar pause=0; /启动/暂停(0/1) void delay(uint z)/延时1MS uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); void write_com(uchar com) / 写指令 lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0;void write_data(uchar date) / 写数据 lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0;void init()/初始化 lcdrw=0; lcden=0; write_com(0x01);/显示清屏 write_com(0x38);/显示模式设置 write_com(0x0c); /设置开显示,不显示光标 write_com(0x06); / 字符时整体不移动 /*LCD状态显示 */void Showstate5() write_com(0x80+0x0d); for(i=0;i3;i+) write_data(SPEEDi); delay(1); void Showstate4() write_com(0xc9+0x03); if(angle=0) for(i=0;i3;i+) write_data(Angle1i); delay(1); else for(i=0;i3;i+) write_data(Angle2i); delay(1); void Showstate3() write_com(0xc0+0x06); if(flag=0) for(i=0;i2;i+) write_data(STATE_CWi); delay(1); else for(i=0;i2;i+) write_data(STATE_CCWi); delay(1); void Showstate2() write_com(0x01); write_com(0x80); for(i=0;i5;i+) write_data(QTi); delay(1); void Showstate1() write_com(0x01); write_com(0x80); for(i=0;i13;i+) write_data(Speedchari); delay(1); Showstate5(); write_com(0xc0); for(i=0;i6;i+) write_data(Statechari); delay(1); Showstate3(); write_com(0xc9); for(i=0;i0;delay-) for(i=0;i=15) RunSpeed=RunSpeed-a; if(angle=0) DoSpeed(RunSpeed); Showstate5(); else DoSpeed(RunSpeed/2); Showstate5(); break; case 0xef: if(RunSpeed=100) RunSpeed=RunSpeed+a; if(angle=0) DoSpeed(RunSpeed); Showstate5(); else DoSpeed(RunSpeed/2); Showstate5(); break; while(key!=0xff) key=P3; key=key&0xff; /* 脉冲输出子程序 */void pulse() uint j; if(!pause) if(flag=0)&(angle=0) for(j=0;j8;j+) P1=table1j; clock(RunSpeed); if(flag=1)&(angle=0) for(j=0;j8;j+) P1=table2j; clock(RunSpeed); if(flag=0)&(angle=1) for(j=0;j4;j+) P1=table3j; clock(RunSpeed); if(flag=1)&(angle=1) for(j=0;j4;j+) P1=table4j; clock(RunSpeed); else P1=0x00;/* 主函数 */void main() init(); DoSpeed(RunSpeed); Showstate1(); while(1) keyscan(); pulse(); 7、心得体会本次课题的设计题目是基于电动机的单片机仿真和C语言开发,主要实现步进电机的转速控制,转动方向控制,以及其启动和停止功能等。之前对步进电机几乎不了解,经过一个星期的学习、设计、仿真、调试,最终得出结果,基本完成设计要求。本课程设计是关于单片机的运用和扩展,所以在这次课程设计中最直接的获益便是让我们都更好的掌握单片机这项技能,对单片机原理这个课程有了更全观的了解,在巩固了理论知识的同时,还能付诸实践,提高我们的动手能力。在学习单片机原理这门课程时所用到的编程语言是汇编语言,但这次课设要求使用C语言开发,参考一些书籍资料,学习运用C语言来编写单片机控制程序,幸好有C语言基础,所以编程学习起来还是蛮快的,不过懂的也不是很多。本次其中涉及到对LM032L作为液晶显示的编程,也卡住了我,通过学习,了解其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园校外安全教育班会
- 在校园的安全教育
- 水管空气打压施工方案
- 酒店厨房设备安装工程方案
- 政治期末考试题及答案
- 世界建筑节活动方案设计
- 税务局出口退税出口货物劳务专项税务合规合同
- 真题二建考试题zhent及答案
- 离婚抚养权协议书范本两份
- 机关单位食堂承包与智慧食堂建设协议
- 燃料电池催化剂研究报告
- 2025年化妆品代理合同范本模板
- 2025年江苏省农垦集团有限公司人员招聘笔试备考及参考答案详解
- 2025至2030年中国粗杂粮及粗杂粮加工行业市场调研分析及投资战略咨询报告
- 军用无人机讲解课件
- 2025年中国移动校园招聘笔试试题解析及答题技巧
- 长宏国际安全知识培训课件
- 2025-2026学年地质版(2024)小学体育与健康三年级(全一册)教学设计(附目录P123)
- 项目四旅游电子商务网络营销92课件
- 电缆桥架设备知识培训课件
- 快乐的牛仔课件
评论
0/150
提交评论