- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目: 步进电机控制系统设计 课程名称:计算机原理实验学院(系):电子信息与电气工程学部专业:班级:学号:学生姓名:成绩:2015年 12 月 26 日题目:步进电机控制系统设计1 设计要求利用实验台上的开关(K7-K0),实现步进电机的转速、转向控制。具体要求如下:利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作(使用四个LED监视步进电机的相序信号),相序之间的时间决定着步进电机的转速,而间隔时间有时由CX寄存器的初值决定(参见实验教材3.1.3章节)。利用ADC0809将输入滑动变阻器的模拟信号转换成数字信号来控制步进电机的转速,当滑动变阻器在两端时转速最快,向中间转动时,步进电机的转速会逐渐减小,当转过中间之后,步进电机转向;利用8253做秒脉冲发生器,产生约0.5秒的周期性方波信号。其中CNT0做分频器:将1MHZ信号分频为100HZ;CNT1做秒脉冲输出(2HZ);利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;在中断服务程序中实现对步进电机的转速、转向实时控制。实现方法如下:在ISR中,对ADC0809的输出进行一次输入操作,并根据输入的数据:判断ADC0809输出的值,根据相应的值来判断步进电机的方向和转速;2 设计分析及系统方案设计1.首先参照实验教材的相关内容,将步进电机运转起来。在原有的参考程序中使用的是“输出立即数”方式来输出步进电机的相序,建议进行修改,以方便电机的转向控制。使用“寄存器间接寻址”的方式输出相序信号:将步进电机的相序数据定义在数据段当中,使用SI或DI查表(间接寻址)获取相序数据。其中查表顺序决定着电机转动方向。2.对8253进行编程,使OUT1输出秒脉冲方波信号,为了便于调试,建议使用逻辑笔监测OUT1的输出状态是否正常;3.编制与中断相关的程序。包括中断屏蔽字的设定、中断向量表的创建以及开中断的操作,以上这些都应当加到程序的初始化中;4.编写中断服务程序ISR。在ISR中读取ADC0809转换后的数据,然后进行数据分析、根据数据来调整CX寄存器中的数据,因而改变步进电机的转速。3系统电路图4外围接口模块硬件电路功能描述5主程序中主要变量说明变量名称内存单元功能SPEED2DS:0001存储不同状态下对应的CX值SPEEDDS:0000延时程序中dh的值flagDS:0003控制步进电机转动的方向和速度值6系统软件中各个子程序的功能描述子程序名称入口参数出口参数功能 描述delaycx要改变的值存放在SPEED2中延时子程序,用来延时,改变步进电机的转速。int_proc将转速和转向存放在flag中中断控制程序,通过中断改变延时程序中CX7主程序程序流程图8程序清单.modelsmall.386IO_8255EQU200HIO_8253EQU210HAD_IO EQU220HDATASEGMENTSPEEDDB6SPEED2DB70HFLAGDB00HZZDB01H,03H,02H,06H,04H,0CH,08H,09HFZDB09H,08H,0CH,04H,06H,02H,03H,01HSTOPDB00H,00H,00H,00H,00H,00H,00H,00HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;-------设置8253CNT0,CNT1----------MOVDX,IO_8253ADDDX,3MOVALOUTDX,ALMOVDX,IO_8253MOVAL,0OUTDX,ALOUTDX,ALMOVDX,IO_8253ADDDX,3MOVALOUTDX,ALMOVDX,IO_8253INCDXMOVAL,20OUTDX,AL;-------设置8255----------MOVDX,IO_8255ADDDX,03MOVAL,82H;A口作为输出B口作为输入OUTDX,AL;-------设置386EX主8259中断屏蔽字----------INAL,21HANDALOUT21H,AL;-------设置中断向量表----------PUSHDSMOVAX,0MOVDS,AXLEAAX,CS:INT_PROC ;AX指向中断程序入口地址MOVSI,35H ;类型码=35HADDSI,SIADDSI,SI;35*4MOVDS:[SI],AX ;中断向量表的IP值PUSHCSPOPAXMOVDS:[SI+2],AX ;中断向量表的
文档评论(0)