微机原理课设-步进电机设计.doc

微机原理课设-步进电机设计.doc

ID:83109564

大小:390.00 KB

页数:27页

时间:2024-08-30

上传者:152****4171
微机原理课设-步进电机设计.doc_第1页
微机原理课设-步进电机设计.doc_第2页
微机原理课设-步进电机设计.doc_第3页
微机原理课设-步进电机设计.doc_第4页
微机原理课设-步进电机设计.doc_第5页
微机原理课设-步进电机设计.doc_第6页
微机原理课设-步进电机设计.doc_第7页
微机原理课设-步进电机设计.doc_第8页
微机原理课设-步进电机设计.doc_第9页
微机原理课设-步进电机设计.doc_第10页
资源描述:

《微机原理课设-步进电机设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

学号:微机原理课设题目步进电机学院自动化学院专业自动化班级姓名指导教师课程设计任务书学生姓名:专业班级:指导教师:工作单位:26 题目:步进电机初始条件:用汇编语言设计一个步进电机的控制,在Proteus仿真环境下完成,功能上实现步进电机的基本功能。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.通过键盘控制步进电机的启动和停止,正转和反转;2.编制完整的程序并调试;3.撰写符合学校要求的课程设计说明书,内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。时间安排:1.1月04日----1月05日查阅资料及方案设计2.1月06日----1月08日编程3.1月09日----1月10日调试程序4.1月11日----1月12日撰写课程设计报告5.1月13日上午准备答辩,下午正式答辩指导教师签名:年月日系主任(或责任教师)签名:年月日摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。其种类比较多,分为机电式、磁电式及直线式三种基本类型。磁电式步进电动机主要有永磁式、反应式和永磁感应子式3种形式。26 它主要用于数字控制系统中,精度高,且运行可靠。步进电动机目前已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业自动化生产线、印刷设备等中亦有应用。因此可知,步进电机在现代控制领域中起着非常重要的作用。本次设计中,要求使用8086CPU作为主控制器,通过与外部接口芯片的配合工作,以实现控制步进电机的启动、停止、正转、反转等功能。设计要求为,通过编写正确的汇编程序,并使用仿真软件PROTEUS进行该控制系统的仿真。关键字:步进电机控制PROTEUS仿真汇编程序目录1设计基础分析326 1.1步进电机31.28086CPU41.3设计方案52接口芯片及电路连接52.18086CPU周边配置62.28284A时钟驱动电路72.374LS373锁存器电路82.474LS138译码电路92.58255A并行接口电路112.6四独立键盘接线图132.7ULN2003电机驱动电路142.8步进电机接线图153软件方案163.1软件设计原理分析163.2代表性程序段及其分析173.3软件设计流程图184仿真结果19心得体会20参考文献21附录一:步进电机仿真总电路图22附录二:系统程序23步进电机26 1设计基础分析1.1步进电机步进电机(steppingmotor)是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。它主要用于数字控制系统中,精度高,运行可靠。如采用位置检测和速度反馈,亦可实现闭环控制。步进电动机已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业自动化生产线、印刷设备等中亦有应用。因此可知,步进电机在现代控制领域中起着非常重要的作用。步进电动机分为机电式、磁电式及直线式三种基本类型。磁电式步进电动机主要有永磁式、反应式和永磁感应子式3种形式。永磁感应子式步进电动机又称混合式步进电动机。是永磁式步进电动机和反应式步进电动机两者的结合,并兼有两者的优点。这里着重介绍永磁感应子式步进电动机。感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。感应子式步进电机某种程度上可以看作是低速同步电机。一个四相电机可以作四相运行,也可以作二相运行。(必须采用双极电压驱动),而反应式电机则不能如此。例如:四相,八相运行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍运行方式.小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。感应子式步进电机以相数可分为:二相电机、三相电机、四相电机、五相电机等。26 使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统。不同的场合采取不同的的驱动方式,到目前为止,驱动方式一般有以下几种:恒压、恒压串电阻、高低压驱动、恒流、细分数等。1.28086CPUIntel8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。Intel8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K8位元的输出输入(或32K16位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。  Intel8086有四个内存区段(segment)寄存器,可以从索引寄存器来设定。区段寄存器可以让CPU利用特殊的方式存取1MB内存。8086把段地址左移4位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在编程中使用指针(如C编程语言)变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于1MB的困难。而8086的寻址方式改变让内存扩充较有效率。8086处理器的时钟频率介于4.77MHz(在原先的IBMPC)和10MHz之间。8086没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。1.3设计方案本次课程设计中,按要求,我们采用8086CPU作为主控制器,加上其对应的接口芯片并连接电路,通过电机驱动器驱动步进电机运行并在仿真软件proteus中进行仿真实验。系统框图如下所示。26 图1-1系统框图2接口芯片及电路连接由于8086CPU它只是一个拥有控制和计算能力的主控芯片,而并不像如8位51单片机、16位MSP430单片机等MCU一样可以单独作为一片“单芯片微型计算机”,可以直接接上外设工作。因此,需要在8086的周边接上相应的接口芯片,才能使系统有可以工作的基础。以下,便介绍8086周边配置及其接口电路。2.18086CPU周边配置8086作为一款CPU,也是有很强的工作能力的,但是需要对其本身进行配置,他才有可能按我们的意愿进行工作。图2-1为8086CPU配置电路。图中:21号引脚通过轻触开关接VCC,当按下次轻触开关的时候,系统程序将回到起始点,系统重新开始工作;22号READY引脚接高,说明外部准备好,CPU可进行相应的操作,这样可以让CPU一直工作;17号引脚接高是为了屏蔽不可屏蔽外部中断,本系统它将不可用;33号引脚接高表示该系统中8086工作于最小模式。26 图2-18086CPU配置电路2.28284A时钟驱动电路8086内部没有时钟系统,故需要外部时钟驱动系统来给CPU提供时钟信号。本系统中我们采用8284A时钟驱动芯片外加5MHz晶振的电路连接产生时钟信号。其电路连接图如图2-2所示。图2-28284A时钟驱动电路在Proteus仿真仿真软件中,由于没找到D8284时钟驱动芯片,故用信号源代替该驱动电路,产生波形如下:26 图2-3Proteus仿真CLK波形2.374LS373锁存器电路74LS373为三态输出的八D透明锁存器。373的输出端O0~O7可直接与总线相连。当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。其真值表如下:表2-1DnLEOEOnHHLHLHLLXLLQ0XXH高阻态26 其具体电路连接图如下图所示。图2-474LS373电路连接图2.474LS138译码电路74LS138为3线-8线译码器。其工作原理如下:①当一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。  ②利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。 ③若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。  ④可用在8086的译码电路中,扩展内存。其真值表如下:26 表2-2输入输出S1S2+S3CBAY0Y1Y2Y3Y4Y5Y6Y70XXXX11111111X1XXX1111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110在本系统中,74LS138用作地址译码器,其电路连接如下图所示。图2-574LS138译码电路26 2.58255A并行接口电路8255AIntel8086/8088系列的可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。  8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种:  方式0:基本的输入输出方式,即无须联络就可以直接进行的I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出。  方式1:选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0.  方式2:双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。  8255A是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。A口可以设置为方式0、方式1、方式2,B口与C口只能设置为方式0或方式1.其方式控制字应按如下方式设置:这是一个8位的控制字,代表的信息也很丰富。格式如下:D7D6D5D4D3D2D1D01A组控制B组控制D7=1,为该控制字的标志。A组由D6、D5、D4、D3组成。其中D6、D5为工作方式选择;D4为A口的输入/输出选择;D3为C口高四位输入/输出选择。如下所示:26 表2-3D6D5A口工作方式00方式001方式11X方式2表2-4D4输入/输出选择0A口为输出1A口为输入表2-5D3输入/输出选择0C口高四位为输出1C口高四位为输入B组有由D2、D1、D0组成。其中D2为工作方式选择;D1为输入/输出选择;D0为C口低四位输入/输出选择。如下所示:表2-6D2B口工作方式0工作方式01工作方式1表2-7D1输入/输出选择0B口为输出1B口为输入26 表2-8D0输入/输出选择0C口低四位为输出1C口低四位为输入在本系统中,仅使用8255A的A口和B口,且设置A口为输出,B口为输入,故可选择8255A的工作方式0。由此,其方式控制字可为:82H、83H、8AH或8BH。8255A在系统中的连线图如下:图2-68255A并行接口电路2.6四独立键盘接线图本系统中,只需要用到四个控制按钮,故可将这四个按钮接成四独立键盘的形式,这样也满足设计要求。26 该键盘接线图如下所示:图2-7四独立键盘接线图如上图所示,当四个按钮都未被按下时,键盘默认输入状态都为高电平。当其中有任意键被按下是,相应被按下的那路状态将由高电平跳变为低电平。控制器通过对该独立键盘状态的扫描可以判断出相应的控制信号。其中四个LED指示当前电机运行状态,即停止、启动、正转、反转四种运行状态。2.7ULN2003电机驱动电路ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成。它的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路  直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。其内部结构和引脚图如下:26 图2-8ULN2003内部结构和引脚图在Proteus仿真软件中,该芯片电路连接图如下图所示。图2-9ULN2003仿真连线图2.8步进电机接线图在Proteus仿真软件中,我们使用六线制步进电机来进行仿真,其与驱动器ULN2003的总接线图如下:26 图2-10步进电机及其驱动模块3软件方案3.1软件设计原理分析由上面的分步设计可得到系统的总设计图(见附件一)。由总电路图可知,该8255A的地址为:表3-1A口地址8000HB口地址8100HC口地址8200H控制口地址8300H步进电机分为A、B、C、D四相,因此,该步进电机控制脉冲如下:表3-2电机运行状态控制脉冲单拍正转A→B→C→D→A单拍反转D→C→B→A→D双拍正转AB→BC→CD→DA→AB双拍反转DC→CB→BA→AD→DC单双拍正转A→AB→B→BC→C→CD→D→DA→A单双拍反转D→DC→C→CB→B→BA→A→AD→D26 其相应的控制字如下表所示:表3-3电机运行状态控制字单拍正转01H→02H→04H→08H→01H单拍反转08H→04H→02H→01H→08H双拍正转0CH→06H→03H→09H→0CH双拍反转09H→03H→06H→0CH→09H单双拍正转01H→0CH→02H→06H→04H→03H→08H→09H→01H单双拍反转08H→09H→04H→03H→02H→06H→01H→0CH→08H本次设计中采用其中四相八拍的控制方式,及上面表中的单双拍正反转控制,程序中加上设计的状态指示灯后控制字如下(PA口高四位为状态位):表3-4单双拍正转41H→4CH→42H→46H→44H→43H→48H→49H→41H单双拍反转88H→89H→84H→83H→82H→86H→81H→8CH→88H启动11H→1CH→12H→16H→14H→13H→18H→19H→11H停止20H→20H→20H→20H→20H→20H→20H→20H→20H3.2代表性程序段及其分析选取程序段及其注解如下:MOTOR3:MOVCX,08H;设置循环次数LEADI,STOP;去输出数组首地址IOLED3:MOVAL,[DI]MOVDX,A_PORTOUTDX,AL;A口输出MOVDX,B_PORTINAL,DX;B口输入TESTAL,08H;反转键是否按下?JEMOTOR2;是则跳转TESTAL,04H;正转键是否按下?JEMOTOR1;是则跳转TESTAL,01H;启动键是否按下?JEMOTOR4;是则跳转INCDI;都不是,执行地址+1指令26 CALLDELAY;延时LOOPIOLED3;数组内循环JMPMOTOR3;跳至数组开始地址3.3软件设计流程图根据软硬件分析,可以得到软件设计流程图如下:图3-1软件设计流程图26 4仿真结果在仿真软件PROTEUS中,为8086CPU装在编译完成的.EXE文件,并开始仿真,可得到如下结果:图4-1所有按钮都未按下或仅停止按钮按下时电机运行状态仿真结果图4-2正转按钮按下或反转按钮按下时电机运行状态仿真结果26 心得体会历时一周的微机原理与接口技术课程设计终于结束了。在这短短的一周里,虽然时间很短,但是我感觉自己收获颇丰。首先,这次题目我选择的是步进电机的控制设计与仿真。步进电机是日常生活中常用到的控制器件,虽然我时常听说,但是对它并不是很了解。不过,通过这次课设,当然也是为了完成设计任务,我查阅了很多关于步进电机的资料,于是,我对步进电机的了解更深了一个层次。其次,在这次课程设计中,使用到了汇编语言进行编程,在以前的课设或实践中并未使用过,感觉既新鲜又担心。刚开始自己接触汇编编程的时候,觉得那太难了,甚至有些害怕编程。不过当我接触了一段时间编程之后,我开始对汇编程序有了更多的认识与理解。于是,我慢慢的一句一句的编写,直到最后编出了我的第一个实践汇编程序,我真的高兴之极,成功的喜悦溢于言表。然后,这次课设还让我对8086CPU、8255A等芯片,有了更多的理解与记忆。本次设计还用到了很多相关的软件,如PROTEUS、EMU8086、MASMFORWINDOWS等。由于自身和其他一些外界因素,导致我在软件的选择与使用时出现了一些重大的失误。不过在同学和指导老师的帮助下,最终问题得到了圆满的解决。总而言之,这次课设我收获良多。我既学到了新知识、新方法,也懂得了更多一些值得我学习与改正的东西。但是,这也说明我在进步。在以后的学习与生活中,我也会像现在一样,认真学习、慢慢进步的!26 参考文献[1]周佩玲,彭虎,傅忠谦编著.微机原理与接口技术.电子工业出版社,2005[2]艾德才等编著.Pentium/80486实用汇编语言程序设计.清华大学出版社,2000[3]吴秀清,周荷琴编著.微型计算机原理与接口技术(第二版).中国科学技术大学出版社,2002[4]顾辉,梁惺彦编著.微机原理与接口技术:基于8086和Proteus仿真.电子工业出版社,2011[5]贾志平主编,石冰副主编.计算机硬件技术教程——微机原理与接口技术.中国水利水电出版社,1999[6]徐爱钧主编.单片机原理与应用——基于Proteus虚拟仿真技术.机械工业出版社,201026 附录一:步进电机仿真总电路图26 附录二:系统程序STACKSEGMENTSTADB100DUP(?)TOPEQULENGTHSTASTACKENDSDATASEGMENTSTR1DB42H,46H,44H,4CH,48H,49H,41H,43H;正转STR2DB83H,81H,89H,88H,8CH,84H,86H,82H;反转STOPDB20H,20H,20H,20H,20H,20H,20H,20H;停止STARDB13H,11H,19H,18H,1CH,14H,16H,12H;启动DATAENDSCODESEGMENTASSUMECS:CODE,SS:STACK,DS:DATAIOCTRLEQU8300HA_PORTEQU8000HB_PORTEQU8100HSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AX;CPU初始化MOVAL,82H;控制方式字:A输出、B输入MOVDX,A_PORTOUTDX,ALNOPMOTOR3:MOVCX,08H;设置循环次数LEADI,STOP;去输出数组首地址IOLED3:MOVAL,[DI]MOVDX,A_PORTOUTDX,AL;A口输出MOVDX,B_PORTINAL,DX;B口输入26 TESTAL,08H;反转键是否按下?JEMOTOR2;是则跳转TESTAL,04H;正转键是否按下?JEMOTOR1TESTAL,01H;启动键是否按下?JEMOTOR4INCDICALLDELAYLOOPIOLED3JMPMOTOR3MOTOR1:MOVCX,08HLEADI,STR1IOLED1:MOVAL,[DI]MOVDX,A_PORTOUTDX,ALMOVDX,B_PORTINAL,DXTESTAL,08HJEMOTOR2TESTAL,02HJEMOTOR3TESTAL,01HJEMOTOR4INCDICALLDELAYLOOPIOLED1JMPMOTOR1MOTOR2:MOVCX,08HLEADI,STR2IOLED2:MOVAL,[DI]MOVDX,A_PORTOUTDX,ALMOVDX,B_PORTINAL,DXTESTAL,04HJEMOTOR1TESTAL,02HJEMOTOR3TESTAL,01H26 JEMOTOR4INCDICALLDELAYLOOPIOLED2JMPMOTOR2MOTOR4:MOVCX,08HLEADI,STARIOLED4:MOVAL,[DI]MOVDX,A_PORTOUTDX,ALMOVDX,B_PORTINAL,DXTESTAL,08HJEMOTOR2TESTAL,04HJEMOTOR1TESTAL,02HJEMOTOR3INCDICALLDELAYLOOPIOLED4JMPMOTOR4DELAY:;延时PUSHCXMOVCX,0D1HDELAY1:NOPNOPNOPNOPLOOPDELAY1POPCXRETCODEENDSENDSTART26 本科生课程设计成绩评定表姓名纪燕林性别男专业、班级自动化0902班课程设计题目:步进电机课程设计答辩或质疑记录:成绩评定依据:评分项目分值评分1.选题合理、目的明确10 2.设计方案正确,具有可行性、创新性20 3.设计结果:仿真与实验验证20 4.态度认真、学习刻苦、独立完成任务15 5.设计报告规范化、参考文献充分、无原则性错误10 6.答辩25 总分100 最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:年月日26

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭