步进电机变频调速方向及角度控制设计.doc_第1页
步进电机变频调速方向及角度控制设计.doc_第2页
步进电机变频调速方向及角度控制设计.doc_第3页
步进电机变频调速方向及角度控制设计.doc_第4页
步进电机变频调速方向及角度控制设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

中南大学微机应用系统设计与综合实验设计报告设计题目 步进电机变频调速方向及角度控制设计 指导老师 设计者 专业班级 设计日期 目 录第一章 微机应用系统课程设计的目的意义11.1 设计目的11.1 课程在教学计划中的地位和作用2第二章 步进电机变频调速方向及角度控制设计任务32.1 设计内容及要求32.2 课程设计的要求4第三章 总体设计方案53.1 设计思想5 3.2 总体设计流程图6第四章 硬件设计7 4.1 硬件设计概要74.2 所用到的芯片及其各自功能说明74.3 硬件电路设计系统原理图及其说明11第五章 软件设计135.1 流程图及其说明135.2 软件系统的使用说明165.3 源程序及其说明18第六章 系统调试与使用20 6.1 系统调试20 6.2 使用说明22第七章 收获、体会23参考文献32第一章 微机应用系统课程设计的目的意义1.1 设计目的通过课程设计进一步锻炼我在微型计算机应用方面的实际工作能力。计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际,掌握这方面的知识更要强调解决实际问题的能力。本课程设计主要有以下几个目的:1、 掌握步进电动机控制系统的硬件设计方法;2、 掌握步进电动机变频启动的控制技术;3、 学会编制步进电动机驱动程序的软件设计方法。1.2 课程在教学计划中的地位和作用微机应用系统设计与综合实验课程是测控技术与仪器专业本科生必修的一门基础实践课程。通过该课程的学习使学生对微机系统有一个全面的了解,掌握常规芯片的使用方法,掌握简单微型计算机应用系统软硬件的设计方法。为了使微机应用课程设计目标更明确,要求更具体,学生收获更大,老师特编写了课程设计任务书,我根据个人的爱好任选其中一个课题,独立完成课题,写出课程的设计说明书,设计出电路原理图,说明工作原理,画出电路板图,编写程序及程序流程图。第二章 步进电机变频调速方向及角度控制设计任务2.1 设计内容及要求掌握步进电动机控制系统的硬件设计方法和步进电动机变频启动的控制技术。学会编制步进电动机驱动程序的软件设计方法。由于步进电机启动时,通常系统惯性及负载的影响,启动力矩较大。电机无法从静止状态瞬间加速到正常工作转速。为了防止步进电机失步,在实际系统中必须采用变频启动的方法:电机低速启动,获得较大的力矩,再通过增加驱动脉冲的频率,使电机逐步加速到正常工作转速。通过8255输出控制电机的转速,实现步进电机的变频加速启动和角度。并用A/D0809输入转换为数字量(00HFFH),作为步进电机步进频率的控制量。从而实现步进电机变频启动和调速控制。2.2 课程设计的要求设计出电路原理图,说明工作原理,编写程序及程序流程图。(参见DVCC-DJ4电机控制机电一体实验仪使用说明书)第三章 总体设计方案3.1 设计思想本设计利用CPU控制8255输出步进信号,驱动步进电机转动,0809芯片采集模拟量并转换为数字信号送CPU进行处理,CPU将该数字信号作为8255输出步进信号间隔时间的量值,以此改变步进信号的频率,进而达到控制步进电机转速的目的。同时8255的C口还接受来自开关元件的正负信号,用以判断并改变步进电机的转动方向。3.2 总体设计流程图延时子程序启动A/D转换读取A/D转换结果判断档位,给CX赋不同的值 延时返回调用处开始设定8255工作方式为C口输入,B口输出判断电机旋转方向正转反转读取负步进码1,驱动电机反转延时子程序 读取正步进码1,驱动电机正转第四章 硬件设计4.1 硬件设计概要用Intel的8086作为控制芯片,配合其他接口电路及配套的芯片组成步进电机变频调速方向及角度控制电路。主要用到8255串行通行芯片、AD0809模数转换芯片、74LS02四2输入或非门、74LS393双 4 位二进制计数器。 用一个电位计和AD0809产生频率控制信号,用8255C口读取正反转控制开关状态,从8255B口的PB0、PB1、PB2、PB3输出步进信号驱动。详见各个芯片的介绍。 4.2 所用到的芯片及其各自功能说明 4.2.1 芯片列表 8086,8255,AD0809,74LS02,74LS393 4.2.2 8086的功能简介 Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085(它与8080有组合语言上的原始码兼容性)的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queue)喂指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元都有一个惟一的地址与之对应,其地址范围用十进制表示为01048575,用十六进制表示为00000HFFFFFH。Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。 Intel 8086有四个 内存区段(segment) 寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在编程中使用指针 (如C 编程语言) 变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。在这个系统中,8086作为整个系统的主控芯片,用来控制协调整个系统的工作。4.2.3 8255的功能简介8255特性:(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.(2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.8255引脚功能:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1.A1=1时,控制寄存器被选择4.2.4 AD0809的功能简介 AD0809 是8 位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。2、AD0809 的工作原理IN0IN7:8 条模拟量输入通道AD0809 对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条ALE 为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A, B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和C 为地址输入线,用于选通IN0IN7 上的一路模拟量输入。通道选择表如下表所示。C B A 选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7数字量输出及控制线:11 条ST 为转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。EOC 为转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0 为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。4.2.5 74LS02四2输入或非门 vcc 4y 4b 4a 3y 3b 3a 2输入四或非门74ls0214 13 12 11 10 9 8 _ ) y = a+b 1 2 3 4 5 6 7 1y 1a 1b 2y 2a 2b gnd74ls02引脚图74ls02引脚功能:实现2输入四或非门功能,常用于各种数字电路中4.2.6 74LS393 双 4 位二进制计数器4.3 硬件电路设计系统原理图及其说明AD0809部分电路图:8255部分电路图第5章 软件设计5.1 流程图及其说明开始设定8255工作方式为C口输入,B口输出判断电机旋转方向正转反转读取负步进码1,驱动电机反转延时子程序 读取正步进码1,驱动电机正转延时子程序启动A/D转换读取A/D转换结果判断档位,给CX赋不同的值 延时返回调用处5.2 源程序及其说明CODE SEGMENT ASSUME CS:CODEADPORTEQU 0010h ;0809端口地址ORG 1000HIOCONPT EQU 0FF2BH ;8255控制端C口地址IOBPTEQU 0FF29H ;8255B口地址IOCPTEQU 0FF2AH ;8255C口地址 ORG 14E0HSTART: MOV AL,10000001B ;设定8255工作方式为C口输入,B输出方式 MOV DX,IOCONPT OUT DX,ALK0:MOV DX,IOCPTIN AL,DX ;间接寻址,读开关状态, 即从C口读取数值AND AL,02HTEST AL,02H ;判断K0是否按下,按下则ZF=0,否则ZF=1 JNZ turn1 ;若ZF=0,则跳转到turn1正转,否则往下执行,跳转到turn2反转JMP turn2turn1: MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,03H OUT DX,ALL0: call speed ;判断档位,并延时 MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,06H OUT DX,ALL1: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,0CH OUT DX,ALL2: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,09H OUT DX,ALL3: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,03H OUT DX,ALL4: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,06H OUT DX,ALL5: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,0CH OUT DX,ALL6: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,09HOUT DX,ALL7: call speedJMP K0turn2: MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,09H OUT DX,ALR0: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,0CH OUT DX,ALR1: call speed MOV DX,IOBPT;读取步进码,驱动电机转动 MOV AL,06H OUT DX,ALR2: call speed MOV DX,IOBPT;读取步进码,驱动电机转动MOV AL,03HOUT DX,ALR3: call speed MOV DX,IOBPT;读取步进码,驱动电机转动MOV AL,09HOUT DX,ALR4: call speed MOV DX,IOBPT;读取步进码,驱动电机转动MOV AL,0CHOUT DX,ALR5: call speed MOV DX,IOBPT;读取步进码,驱动电机转动MOV AL,06HOUT DX,ALR6: call speed MOV DX,IOBPT;读取步进码,驱动电机转动MOV AL,03HOUT DX,ALR7: call speedJMP K0speed : MOV AL,00 ;启动0809A/D转换 MOV DX,ADPORT OUT DX,AL MOV CX,0500HAD: LOOP AD MOV DX,ADPORT ;读取A/D转换结果 IN AL,DX cmp al,11h ;00.33V,CX=0FFFFH ja speed1 mov ax,0ffffh mov cx,ax jmp overspeed1: cmp al,33h ;0.331V,CX=0CCFFH ja speed2 mov ax,0ccffh mov cx,ax jmp overspeed2: cmp al,66h ;12V,CX=99FFH ja speed3 mov ax,99ffh mov cx,ax jmp overspeed3: cmp al,99h ;23V,CX=66FFH ja speed4 mov ax,66ffh mov cx,ax jmp overspeed4: cmp al,0cch ;34V,CX=33FFH ja speed5 mov ax,33ffh mov cx,ax jmp overspeed5: mov ax,00ffh ;45V,CX=00FFH mov cx,axover: call DELAY1 retDELAY1: LOOP DELAY1 RET ;返回调用处CODE ENDSEND START第6章 系统调试与使用6.1 系统调试在软件编译连接后就开始对整个系统进行调试,包括软件和硬件部分,在我调试的过程中,遇到的最大困难就是软件部分的调试。因为我在写程序程序的过程中,受到一些高级语言编程思想的影响,比如从上至下,逐步细分的思想,在我的程序中,系统被分为好几个模块,每个模块都是有各个不同的子程序来实现的,所以在子程序中,我对每个都进行了严格的现场保护,每个子程序都写了完整的入栈与出栈指令,进行了现场保护,但是在我调试程序的过程中发现,这些子程序并不是像我写高级语言的程序一样,可以随意的进行调用。比如我在写程序中遇到的最大问题就是关于LOOP指令与CALL指令的混合使用。一般情况下,LOOP指令的调用格式如下:MOVCX,10;将循环次数存入CX寄存器LOP:;标号;要循环的代码LOOPLOP而在我自己的程序中,我是想通过这条指令来控制DELAY函数的循环次数,已达到对延时时间的控制。为此我写了如下的代码:MOVCX,10LOP:CALLDELAYLOOPLOP尽管我在DELAY子程序中用了PUSH与POP指令将各个寄存器入栈及条用完后出栈等一系列的现场保护,但是在实际的调试过程中系统并不是按照我本来来意图运行,究其原因,我判断为系统在返回时除了问题。由于我没有对RET指令做过多的研究,我将程序改写如下:MOVBX,10LOP:CALLDELAYDECBXJNZLOP将修改后的程序再次进行运行,系统正常运行。事后,我认真查阅的RET指令的使用,发现完全可以在RET上下功夫,一以使系统按照我的意愿运行。以上是在调试中遇到的主要问题,在调试的过程中感触最多的就是一些小问题,非常不起眼,在程序编译的过程中不会报错,很难发现,而在实际运行的过程中,因为这些小问题的存在,系统的运行不会正常,所以只有在具体的在硬件上调试才能发现。据我自己估计,调试程序大约占了写程序总共时间的三分之二。6.2 使用说明 首先打开电源,按下启动键,电机以初始速度匀速转动,由小到大调节电位计,电机转动速度逐渐加快,当电位计到最大值,电机转速也达到最大值;拨动正反转控制开关,当其为闭合,电机处于反转状态,当其为断开,电

温馨提示

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

评论

0/150

提交评论