已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南大学微机应用系统设计与综合实验设计报告设计题目 步进电机变频调速方向及角度控制设计 指导老师 设计者 专业班级 设计日期 2013年12月212013年1月16日目 录第一章 微机应用系统课程设计的目的意义11.1 设计目的11.1 课程在教学计划中的地位和作用1第二章 步进电机变频调速方向及角度控制设计任务22.1 设计内容及要求22.2 课程设计的要求2第三章 总体设计方案33.1 设计思想3 3.2 总体设计流程图3第四章 典型程序模块及典型编程技巧分析4 4.1典型程序模块44.1.1 8086CPU周边配置44.1.2 8284A时钟驱动电路44.1.3 74LS373锁存器电路6 4.1.4 74LS138译码电路74.1.5 8255A并行接口电路84.1.6 四独立键盘接线图114.1.7 模数转换电路124.1.8 数字显示电路134.2典型编程技巧144.2.1软件设计原理分析144.2.2 代表性程序段及其分析154.2.3软件设计流程图16第五章 调试中遇到的问题及解决方法17第六章 使用说明及仿真结果19第七章 收获、体会20参考文献21附录一:步进电机仿真总电路图22附录二:系统程序23第一章 微机应用系统课程设计的目的意义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的B口还接受来自开关元件的正负信号,用以判断并改变步进电机的转动方向。3.2 总体设计流程图 第四章 典型程序模块及典型编程技巧分析4.1典型程序模块4.1.1 8086CPU周边配置 8086作为一款CPU,也是有很强的工作能力的,但是需要对其本身进行配置,他才有可能按我们的意愿进行工作。图2-1为8086CPU配置电路。图中:21号引脚通过轻触开关接VCC,当按下次轻触开关的时候,系统程序将回到起始点,系统重新开始工作; 22号READY引脚接高,说明外部准备好,CPU可进行相应的操作,这样可以让CPU一直工作; 17号引脚接高是为了屏蔽不可屏蔽外部中断,本系统它将不可用; 33号引脚接高表示该系统中8086工作于最小模式。图2-1 8086CPU配置电路 4.1.2 8284A时钟驱动电路 8086内部没有时钟系统,故需要外部时钟驱动系统来给CPU提供时钟信号。 本系统中我们采用8284A时钟驱动芯片外加5MHz晶振的电路连接产生时钟信号。其电路连接图如图2-2所示。图2-2 8284A时钟驱动电路 在Proteus仿真仿真软件中,由于没找到D8284时钟驱动芯片,故用信号源代替该驱动电路,产生波形如下:图2-3 Proteus仿真CLK波形 4.1.3 74LS373锁存器电路74LS373为三态输出的八 D 透明锁存器。373 的输出端 O0O7 可直接与总线相连。当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。其真值表如下:表2-1DnLEOEOnHHLHLHLLXLLQ0XXH高阻态其具体电路连接图如下图所示。图2-4 74LS373电路连接图 4.1.4 74LS138译码电路74LS138为3 线8 线译码器 。其工作原理如下:当一个选通端(E1)为高电平,另两个选通端((/E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。可用在8086的译码电路中,扩展内存。 其真值表如下:表2-2输入输出S1S2+S3CBAY0Y1Y2Y3Y4Y5Y6Y70XXXX11111111X1XXX1111111110000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110在本系统中,74LS138用作地址译码器,其电路连接如下图所示。图2-5 74LS138译码电路 4.1.5 8255A并行接口电路8255AIntel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 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口高四位输入/输出选择。如下所示:表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口为输入表2-8D0输入/输出选择0C口低四位为输出1C口低四位为输入在本系统中,仅使用8255A的A口和B口,且设置A口为输出,B口为输入,故可选择8255A的工作方式0。由此,其方式控制字可为:82H、83H、8AH或8BH。8255A在系统中的连线图如下:图2-6 8255A并行接口电路4.1.6 四独立键盘接线图本系统中,只需要用到四个控制按钮,故可将这四个按钮接成四独立键盘的形式,这样也满足设计要求。该键盘接线图如下所示:图2-7 四独立键盘接线图如上图所示,当四个按钮都未被按下时,键盘默认输入状态都为高电平。当其中有任意键被按下是,相应被按下的那路状态将由高电平跳变为低电平。控制器通过对该独立键盘状态的扫描可以判断出相应的控制信号。其中四个LED指示当前电机运行状态,即停止、启动、正转、反转四种运行状态。4.1.7 模数转换电路ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。内部结构ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。引脚功能(外部特性)ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下:15和2628(IN0IN7):8路模拟量输入端。8、14、15和1721:8位数字量输出端。22(ALE):地址锁存允许信号,输入,高电平有效。6(START): A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。7(EOC): A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。12(VREF(+)和16(VREF(-):参考电压输入端11(Vcc):主电源输入端。13(GND):地。2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路4.1.8 数字显示电路4.2典型编程技巧 4.2.1软件设计原理分析由上面的分步设计可得到系统的总设计图(见附件一)。由总电路图可知,该8255A的地址为:表3-1A口地址8000HB口地址8100HC口地址8200H控制口地址8300H 步进电机分为A、B、C、D四相,因此,该步进电机控制脉冲如下:表3-2电机运行状态控制脉冲单拍正转ABCDA单拍反转DCBAD双拍正转ABBCCDDAAB双拍反转DCCBBAADDC单双拍正转AABBBCCCDDDAA单双拍反转DDCCCBBBAAADD 其相应的控制字如下表所示:表3-3电机运行状态控制字单拍正转01H02H04H08H01H单拍反转08H04H02H01H08H双拍正转0CH06H03H09H0CH双拍反转09H03H06H0CH09H单双拍正转01H0CH02H06H04H03H08H09H01H单双拍反转08H09H04H03H02H06H01H0CH08H本次设计中采用其中四相八拍的控制方式,及上面表中的单双拍正反转控制,程序中加上设计的状态指示灯后控制字如下(PA口高四位为状态位):表3-4单双拍正转41H4CH42H46H44H43H48H49H41H单双拍反转88H89H84H83H82H86H81H8CH88H启动11H1CH12H16H14H13H18H19H11H停止20H20H20H20H20H20H20H20H20H4.2.2 代表性程序段及其分析 选取程序段及其注解如下:MOTOR3: MOV CX,04H ;设置循环次数 LEA DI,STOP ;去输出数组首地址IOLED3: MOV AL,DI MOV DX,A_PORT OUT DX,AL ;A口输出 MOV DX,B_PORT IN AL,DX ;B口输入 TEST AL,08H ;反转键是否按下? JE MOTOR2 ;是则跳转 TEST AL,04H;正转键是否按下? JE MOTOR1;是则跳转 TEST AL,01H;启动键是否按下? JE MOTOR4;是则跳转 INC DI ;都不是,执行地址+1指令 CALL DELAY ;延时 LOOP IOLED3 ;数组内循环 JMP MOTOR3 ;跳至数组开始地址 4.2.3软件设计流程图根据软硬件分析,可以得到软件设计流程图如下: 第五章 调试中遇到的问题及解决方法在软件编译连接后就开始对整个系统进行调试,包括软件和硬件部分,在我调试的过程中,遇到的最大困难就是软件部分的调试。因为我在写程序程序的过程中,受到一些高级语言编程思想的影响,比如从上至下,逐步细分的思想,在我的程序中,系统被分为好几个模块,每个模块都是有各个不同的子程序来实现的,所以在子程序中,我对每个都进行了严格的现场保护,每个子程序都写了完整的入栈与出栈指令,进行了现场保护,但是在我调试程序的过程中发现,这些子程序并不是像我写高级语言的程序一样,可以随意的进行调用。比如我在写程序中遇到的最大问题就是关于LOOP指令与CALL指令的混合使用。一般情况下,LOOP指令的调用格式如下:MOVCX,10;将循环次数存入CX寄存器LOP:;标号;要循环的代码LOOPLOP而在我自己的程序中,我是想通过这条指令来控制DELAY函数的循环次数,已达到对延时时间的控制。为此我写了如下的代码:MOVCX,10LOP:CALLDELAYLOOPLOP尽管我在DELAY子程序中用了PUSH与POP指令将各个寄存器入栈及条用完后出栈等一系列的现场保护,但是在实际的调试过程中系统并不是按照我本来来意图运行,究其原因,我判断为系统在返回时除了问题。由于我没有对RET指令做过多的研究,我将程序改写如下:MOVBX,10LOP:CALLDELAYDECBXJNZLOP将修改后的程序再次进行运行,系统正常运行。事后,我认真查阅的RET指令的使用,发现完全可以在RET上下功夫,一以使系统按照我的意愿运行。以上是在调试中遇到的主要问题,在调试的过程中感触最多的就是一些小问题,非常不起眼,在程序编译的过程中不会报错,很难发现,而在实际运行的过程中,因为这些小问题的存在,系统的运行不会正常,所以只有在具体的在硬件上调试才能发现。在调试过程中还发现AD显示与步进电机转速相反,对于这个问题通过添加指令 NOT AH MOV CH,AH LOOP $ NOT AH得以解决。 第六章 使用说明及仿真结果 在仿真软件PROTEUS中,为8086CPU装在编译完成的.EXE文件,并开始仿真,首先打开电源,按下启动键,电机以初始速度匀速转动,由小到大调节电位计,电机转动速度逐渐加快,当电位计到最大值,电机转速也达到最大值;拨动正反转控制开关,当其为闭合,电机处于反转状态,当其为断开,电机处于正转状态。可得到如下结果: 第七章 收获、体会此次课程设计可以说是获益匪浅。平时在书本学习的都是一条一条的指令,没有很清楚地理解指令的真正含义。在这次课程设计中我们在老师的指导下学习了很多课堂上没有学习到的知识,体会到只有平时多练习,多看程序才能自己编写程序,自己调试程序。通过此次的课程设计,我了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简单的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。首先,这次题目我选择的是步进电机的控制设计与仿真。步进电机是日常生活中常用到的控制器件,虽然我时常听说,但是对它并不是很了解。不过,通过这次课设,当然也是为了完成设计任务,我查阅了很多关于步进电机的资料,于是,我对步进电机的了解更深了一个层次。其次,在这次课程设计中,使用到了汇编语言进行编程,在以前的课设或实践中并未使用过,感觉既新鲜又担心。刚开始自己接触汇编编程的时候,觉得那太难了,甚至有些害怕编程。不过当我接触了一段时间编程之后,我开始对汇编程序有了更多的认识与理解。于是,我慢慢的一句一句的编写,直到最后编出了我的第一个实践汇编程序,我真的高兴之极,成功的喜悦溢于言表。然后,这次课设还让我对8086CPU、8255A等芯片,有了更多的理解与记忆。本次设计还用到了很多相关的软件,如PROTEUS、EMU8086、MASM FOR WINDOWS等。由于自身和其他一些外界因素,导致我在软件的选择与使用时出现了一些重大的失误。不过在同学和指导老师的帮助下,最终问题得到了圆满的解决。在这次的课程设计过程中,借助现代的网络技术,有什么不懂得马上上百度,不让问题遗留到下一天,极大地加快的进度,在上网百度的过程中也让我对汇编有了更深一层的认识,并且还让我初步领略到计算机控制的魅力,可谓一举多得。课程设计是我从书本到时间非常关键的一步,当代大学生动手创新能力是社会所急需的,所以我不要做象牙塔里的秀才,一定要努力吧此次的课程设计做好。正如课程设计的任务和地位中所说的那样,计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:掌握这方面的知识更要强调解决实际问题的能力。同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最终到达胜利的彼岸。总而言之,这次课设我收获良多。我既学到了新知识、新方法,也懂得了更多一些值得我学习与改正的东西。但是,这也说明我在进步。我不仅收获胜利的喜悦,在设计的过程中我也付出了努力,但是,这种付出是快乐的,因为它让我培养了细致认真的工作太多,培养的我发现问题、分析问题、解决问题的能力,让我从汗水中尝到了喜悦。在以后的学习与生活中,我也会像现在一样,认真学习、慢慢进步的!再次感谢老师的谆谆教导和学校给我提供了这么一次机会!参考文献1 微机原理与接口技术,周荷琴,吴秀清,中国科学技术大学出版社,2008年版2 微机原理与接口技术实验及课程设计指导书,吴同茂,李志民3 傅忠谦编著.微机原理与接口技术.周佩玲,彭虎,电子工业出版社,20054 Pentium/80486实用汇编语言程序设计,艾德才等.清华大学出版社,20005 微机原理与接口技术:基于8086和Proteus仿真,顾辉,梁惺彦电子工业出版社,20116 计算机硬件技术教程微机原理与接口技术,贾志平 石冰副,中国水利水电出版社,19997 单片机原理与应用基于Proteus虚拟仿真技术,徐爱钧,机械工业出版社,2010附录一:步进电机仿真总电路图附录二:系统程序STACK SEGMENT STA DB 100 DUP(?) TOP EQU LENGTH STASTACK ENDS DATA SEGMENTSTOP DB 10H,10H,10H,10H ;停止 STR1 DB 23H,26H,2CH,29H ;正转STR2 DB 49H,4CH,46H,43H ;反转STAR DB 83H,81H,89H,88H ;自动BUFF DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;字型码DATA ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA AD0808 EQU 0D000H IOCTRL EQU 8300H A_PORT EQU 8000H B_PORT EQU 8100H IOCTRL2 EQU 9300HA_PORT2 EQU 9000HB_PORT2 EQU 9100HSTART: MOV AX, DATA MOV DS, AX MOV AX, STACK MOV SS, AX MOV AX, TOP MOV SP, AX ;CPU初始化 MOV AL,82H ;控制方式字:A输出、B输入 MOV DX,IOCTRL OUT DX,AL ;*停止* MOTOR1: MOV CX,04H ;设置循环次数 LEA DI,STOP ;去输出数组首地址IOLED1: MOV AL,DI MOV DX,A_PORT OUT DX,AL MOV DX,B_PORT IN AL,DX TEST AL,02H JE MOTOR2 TEST AL,04H JE MOTOR3 TEST AL,08H JE MOTOR4 INC DI CALL DELAY LOOP IOLED1 JMP MOTOR1 ;*正转* MOTOR2: MOV CX,04H LEA DI,ST
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城投工程公司笔试题库及答案
- 小学法律知识试卷及答案
- 2025年蔬菜学试卷及答案
- 2025年煤矿消防试卷及答案
- 2025年名句默写考试汇编及答案
- 2025年阜阳市特岗教师招聘笔试真题汇编含答案解析(夺冠)
- 2025年鞍山市特岗教师招聘笔试真题汇编及答案解析(夺冠)
- 2025年锡林郭勒盟特岗教师招聘考试真题汇编附答案解析
- 2025年许昌市特岗教师招聘真题汇编及答案解析(夺冠)
- 2025年镇江市特岗教师招聘真题题库带答案解析
- 超滤膜设备安装施工方案
- 电磁场与电磁波(第6版)课件 第6章 均匀平面电磁波的空间传播分析
- 通信外出凝冻安全培训课件
- 粤教花城版音乐八年级上册-第三单元-华夏之音(一)《步步高》课件
- 企业信息安全管理制度模板及执行规范
- 变电站安全运行维护课件
- 《公差配合与技术测量》课件-第2章 第5 部分(公差与配合的选用)
- 2025年全国硕士研究生考试西医综合试卷试题(含答案)
- 2025国家义务教育质量监测试题(含答案)
- 绝缘电阻测试记录表(范本)
- 数字射线培训课件
评论
0/150
提交评论