步进电机控制课程设计.doc_第1页
步进电机控制课程设计.doc_第2页
步进电机控制课程设计.doc_第3页
步进电机控制课程设计.doc_第4页
步进电机控制课程设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机技术课程设计报告题 目: 步进电机控制综合实验学 年:20102011 学 期: 1专 业:通信工程 班 级: 01学 号:0804140103姓 名: 学 号:080401032 姓 名: 指导教师及职称: 时 间: 2011-1-13目录一、 设计目的-11. -2. -二、 设计要求-11-三、 模块原理说明及系统设计1-12.2.1 8031单片机系统-12.2 给定采样A/D转换电路-32.3 二相四拍步进电机步进电机驱动电路-42.4 LED显示8279显示接口电路-5四、 程序设计说明及框图1程序设计-62. 程序框图五、 设计结果说明1-9六、 总结1. 设计过程中遇到的问题及其解决方法。1) - 2设计体会及建议七、答辩记录一、设计目的1、掌握模/数转换电路的应用、掌握8279数码显示电路的应用、掌握步进电机的工作原理和控制方法2、锻炼和培养由各个子模块功能单元构筑完整的微机控制系统的能力,掌握单片机控制系统的设计方法。二、设计要求1、 系统硬件设计建立8031单片机与各功能单元的连接,画出系统原理图。并给出必要的文字说明。 2、 系统软件设计(内存分布、子程序出入口说明、流程图、程序)主程序设计(控制正反转及走步步数)、AD采样子程序、数码显示子程序、步进电机驱动子程序。3、 实验连线,运行编制好的子程序对各功能单元进行调试。4、 运行实验程序,结合硬件进行调试。5、 旋转给定电位器,观察步进电机是否按设计要求旋转。撰写实验报告。三、模块原理说明及系统设计1、系统的组成原理2、各单元的原理组成及功能2.1 8031单片机系统MCS-51单片机在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和I/O等一台计算机所需的基本功能部件。其内部包含下列几个部件: 8位CPU,片内振荡器; 4K字节ROM,128字节RAM; 21个特殊功能寄存器; 32根可编程IO口线; 可寻址各64K的外部程序存储器、外部数据存储器; 2个l6位的定时器计数器; 中断结构:具有5个中断源,2个优先级; 一个可编程全双工串行口; 有位寻址功能,适于布尔处理的位处理机。其引脚结构如图:8031系列单片机有40个引脚,采用双列直插(DIP)封装形式。引脚如上图所示,各引脚按功能分类介绍如下:1电源引脚Vcc(40脚):供电电源5V。Vss(20脚):接地线。 2外接晶体引脚XTAL1(18脚)和XTAL2(19脚)当利用内部时钟电路时,XTAL1与XTAL2之间接一晶体振荡器。XTAL1为内部放大电路输入端,XTAL2为输出端。当外接时钟信号时,对于HMOS型单片机,XTAL1接地,XTAL2接外部输入时钟脉冲。而对于CHMOS型单片机XTAL1为驱动端,XTAL2为悬浮。3控制信号引脚RSTVDP(9脚):按复位电路可实现复位;接5V备用电源,当电源Vcc掉电时内部RAM的数据不丢失。(30脚):当访问外部存储器时, ALE作为低位地址锁存允许控制;对于8751的片内EPROM编程,PROG用于输入编程脉冲。(29脚):访问片外程序存储器时作读选通信号,低电平有效。(31脚):当 端保持高电平时,访问内部程序存储器(4KB),但当PC(程序计数器)值超过0FFFH时,将自动转向执行外部程序存储器内的程序。当 保持低电平时,则只访问外部程序存储器(从0000H地址开始),不管单片机内部是否有程序存储器。由于8031内无ROM, 端应接低电平。 对于8751EPROM型单片机,此引脚用于施加编程电源Vpp。4输入输出口引脚8051共有四个八位I/O口,共占用32个引脚。P0口(P0.0P0.7)占用3239脚;P1口(P1.0P1.7)占用18脚;P2口(P2.0P2.7)占用2128脚;P3口(P3.0P3.7)占用1017脚;2.2 给定采样A/D转换电路在单片机实时控制和智能仪表等应用系统中,被控或被测对象往往是一些连续变化的模拟量,如温度、流量、速度等物理量。这些模拟量必须转换为数字量才能输入计算机进行处理。A/D转换器在单片机应用系统中作为输入通道。本次试验用的A/D转换器是是属于逐次逼近比较型ADC0809,将输入电压范围为0+5V的模拟电压转换为值为00FF的数字信号。(1)0809引脚结构说明IN0IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(),VREF()为参考电压输入。(2)ADC0809的接口电路如下图所示2.3 二相四拍步进电机步进电机驱动电路(1)步进电机的工作原理本模块中使用的二相四拍步进电机共有50个齿,齿距角为7.2;每转一个齿距角需走四步,因而步距角为1.8。另外必须按照一定的次序给每个相通电,才能正常完成四步一个齿距的动作。电机每相电流为0.2A,相电压为5V。通电次序如下图所示:(2)步进电机控制电路如下图所示:步进电机有四根引出线。红、绿为一组,红线接A,绿线接A;黄、蓝为一组,黄线接B,蓝线接B。运行测试参考程序STEP.ASM,步进电机应顺时针转动;交换A、A(或B、B),电机应逆时针转动。以上说明该模块正常。测试程序STEP.ASM如下:CSEG AT 4000H LJMP START CSEG AT 4030HSTART: MOV A, #03H MOV P1,A LCALL DEL0 MOV A, #06H MOV P1,A LCALL DEL0 MOV A, #0CH MOV P1,A LCALL DEL0 MOV A, #09H MOV P1,A LCALL DEL0 LJMP START DEL0: MOV R2, #0FFHDEL1: MOV R3, #100 DJNZ R3, $ DJNZ R2, DEL1 RET END2.4 LED显示8279显示接口电路8279是一种可编程的键盘、显示器接口芯片。各管脚的功能从略。8279芯片内部有专门用于存储显示数据的RAM区,共有16个字节,地址排列从ooH到OFH。8279芯片的扫描线有译码扫描和编码扫描2种工作方式2。当采用译码扫描方式时,8279只能送出显示RAM中前4个字节的内容(地址为ooH03H),因而最多只能扫描4个LE数码管。当采用编码扫描方式时,扫描输出线SL3SLO经过“416”译码后,可以选择16个LED数码管,个LED数码管显示的字符分别对应8279显示RAM区的ooHoFH中内容。将8279的命令字设置成:读或写以后地址自动加1,左端输入。当SL3SL0为oooo时,显示数据输出线上输出为显示RAM区中的第1位(ooH中的内容)。当SL3SLO为ooOl时,显示数据输出为显示RAM区中的第2位(01H中的内容)。依次类推,当SL3SLo为1111时,显示数据输出为显示RAM区中的第16位(0FH中的内容)。因而,8279送出的显示数据,与GPU写入8279内部16个字节显示RAM区的数值,存在着一一对应的关系。(1)8279各引脚描述如下:D0-D7(数据总线):双向、三态,总线。与系统的数据,总线相连,在CPU和8279之间传送命令或数据。(RD、WR(读、写信号):输入线,来自CPU的控制信号,低电平有效,控制8279的读、写操作。A0(缓冲器地址):输入线。当A0=I时,若CPU进行写操作,则写入的数据为命令字。若进行读操作,则读出的数据为状态字。当A0=0时,CPU读写的均为数据。(CS(片选):输入线,低电平有效。CS=0时,8279被选中,允许CPU进行读写。(CLK(系统时钟):外部时钟信号输入线。8279通过内部定时器将该信号变为内部时钟。内部时钟的频率高低决定了显示器的扫描时间。OUTA0-OUTA3,OUTB0-OUTB3(A组、B组显示信号):两组引线均是显示信息输出线,它们与多路数字显示的扫描线SL0-SL3同步。两组数据输出线可独立使用,也可合并使用。合并时,OUTA3为最高位,OUTB0为最低位。Sk0-S13(扫描线):这4条输出线用来扫描键盘和显示器。有两种工作方式,即译码(4选1)和编码(16选1)输出。方式的选择可以通过对8279的编程来实现。(2)8279在本次试验中的显示接口电路如下图:四、程序设计说明及框图1.程序设计 步进电机控制实验的程序设计包括:主程序设计(控制正反转及走步步数)、AD采样子程序、数码显示子程序、步进电机驱动子程序。采用分支结构来实现:NAME stepper position control PORT EQU 0CFA0H CSEG AT 0000H LJMP START CSEG AT 4100HSTART: MOV SP,#60H MOV 34H,#00110011B ;初始脉冲编码 MOV DPTR,#PORT ;启动通道0 MOVX DPTR,A ;选用查询方式读取转换结果 SETB P3.0 JNB Pp3.0,$ MOVX A,DPTR MOV 30H,A ;30H-上次位置(采样值) NOP NOPLOOP: CALL ADC ;显示当前采样值(位置)LCALL ADC;CALL DISPLAY MOV R1,35H LCALL DISPMOV A,35H CJNE A,30H,NEXT ;当前采样值发生变化,进入处理程序NEXT LJMP LOOP ;当电位器没动(两次采样值相同),返回循环体NEXT:JC FANZHUAN ;当前采样值比上次采样值小,进入正转程序ZHENGZHUAN SUBB A,30H ;当前采样值比上次采样值大,直接求走动步数 MOV R7,A MOV A,#33HL1: MOV P1,A ;送反转脉冲 RL A RL A LCALL DEL0 DJNZ R7,L1 SJMP F_RESTO NOPZHENGZHUAN:CLR C ;求正转步数 XCH A,30H SUBB A,30H MOV R7,A MOV A,#33H L2: MOV P1,A ;送正转脉冲 RR A RR A LCALL DEL0 DJNZ R7,L2F_RESTO:MOV 34H,A ;记录停转时的脉冲编码 MOV A,35H ;用当前采样值更新上次位置(30H) MOV 30H,A ; LJMP LOOP ;走步结束,返回循环体 RET ;ADC SUB_PROG OUT_PORT:35HADC:MOV DPTR,#PORT ;循环体入口,由采样给定电位器开始 MOVX DPTR,A SETB P3.0 JNB P3.0,$ ; MOVX A,DPTR MOV 35H,A ;将当前采样值保存在35H中RET;DISPLAY SUB_PROG IN_PORT:R1 DISP: MOV A,R1 ;从R1中取转换结果 SWAP A ;分离高四位和低四位 ANL A,#0FH ;并依次存放在50H到51H中 MOV 50H,A MOV A,R1 ANL A,#0FH MOV 51H,A MOV DPTR,#0CFE9H ;写显示RAM命令字 MOV A,#90H MOVX DPTR,A MOV R0,#50H ;存放转换结果地址初值送R0 MOV R1,#02H MOV DPTR,#0CFE8H ;8279数据口地址 DL0: MOV A,R0 ACALL TABLE ;转换为显码 MOVX DPTR,A ;送显码输出 INC R0 DJNZ R1,DL0 SJMP D_DEL1 TABLE: INC A MOVC A,A+PC RET DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H D_DEL1:nop retDEL0:MOV R2,#0FFHDEL1:MOV R3,#10 DJNZ R3,$ DJNZ R2,DEL1 RET END 五、设计结果说明1.按照各模块之间的连接好电路,启动51软件,同时然后单片机复位,建立asm文件,输入编写的软件程序。2.进行程序的调试运行3.结果描述:当电位器正向旋转时,步进电机正转;当电位器反向旋转时,步进电机反转;当电位器不动时,步进电机停转;而且,步进电机转动的角度与电位器旋转的角度成线性关系。六、总结经过两周时间的努力,我们顺利的完成了本次课程设计1.设计过程中遇到的问题及其解决方法2.设计体会及建议本次课程设计是在我们学习了MCS-51单片机原理及应用这门课基础之上,综合我们所做过P1口,串行口,定时器等试验。要求我们要建立系统的概念。学会用给定的模块建立具有一定功能的系统。本次课程设计我们选择的课题是步进电机控制实验,要求我们通过软硬件设计,实现对不步进电机实现正反转及停转和走步步数的控制。用到的模块有8031单片机,A/D转换模块,步进电机驱动模块,电位器位置显示模块。刚拿到实验课题的,我们都有点迷茫,不知道该从哪里入手,毕竟我们以前做的试验都是针对模块进行的,要我们一开始建立系统确实有点难度,根据老师所给的资料,我们在图书馆查询了有一些相关的资料,并在网上进行搜索,第一周结束的时候,我们终于对本次课程设计有了一定的了解,对各个模块的作用及它们的相互连接有了一定的了解,画出了系统的硬件原理图。第二周是我们进行软件设计和进行调试的时间,在这个星期里,我们每天都要去实验室进行调试,通过一些资料的参考,我们最终完成了本次试验的软件设计,成功的实现了对步进电机的控制。经过这次课程设计,使我们有了系统的概念,学会了建立系统去解决问题,提高了我们的动手实践能力,加深了我们对单片机系统及其应用的理解,是我们的理论知识和时间更好的结合,同时巩固了我们以前所做的模块试验,总之,这次课程设计使我们受益良多,将成为我们以后学习和实践中一次有意义的记忆。当然,我们这次试验还存在一些我们没有解决的问题 1.试验结果中,单片机停转时,电位器不稳定致使步进电机左右抖动,我们应该再加一个消除抖动的软件程序。2.步进电机在启动时不是从0刻度的位置开始转动的,应该在程序初始化是进行一定的设计,使她能从0刻度处转动。七、答辩记录1.CS0809接的CSO的地址范围是多少?答:CS0的地址范围是CFA0H到CFA7H,在本次设计程序中选用了CFA0H这一地址作为CSO的地址,当然还

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论