步进电机单片机控制系统的设计.doc
《步进电机单片机控制系统的设计.doc》由会员分享,可在线阅读,更多相关《步进电机单片机控制系统的设计.doc(12页珍藏版)》请在咨信网上搜索。
哈 尔 滨 理 工 大 学 荣 成 学 院 课程设计 步进电机单片机控制系统的设计 姓名: &&&& 专业: 电机与电器 班级: 0&&&&&& 学号: ********* 日期: 2012年5月10日 一、设计题目的背景 1.步进电机的原理 步进电动机又称为脉冲电动机,是数字控制系统的一种执行元件,其功用是将脉冲信号变换为相应的角位移或直线位移,既给一个脉冲电信号,电动机就转动一个角度或前进一步。 步进电动机的控制原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲控制,所以调节脉冲的频率便可改 变步进电机的转速,微控制器最适合控制步进电机。 此次设计步进电机共有四个相位(A、B、C、D),按转动步骤分为单四拍(A 、 B 、 C 、 D 、 A) 四相双四拍:电机正转 ( AB 、 BC 、 CD 、 DA 、AB) 电机反转 ( DA、AB 、 BC 、 CD、 DA) 单双8拍(A、 AB、 B、 BC、 C、CD 、 D、DA、 A) 2.应用领域 (1)应用领域相当广泛,只要是要有动力源的,而且对精度有要求的一般都可能涉及到伺服电机。如机床、印刷设备、包装设备、纺织设备、激光加工设备、机器人、自动化生产线等对工艺精度、加工效率和工作可靠性等要求相对较高的设备。 (2)广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业控制系统、办公自动化、机器人等领域。特别适合要求运行平稳、低噪音、响应快、使用寿命长、高输出扭矩的应用场合。 (3)步进电机在电脑绣花机等纺织机械设备中有着广泛的应用,这类步进电机的特点是保持转矩不高,频繁启动反应速度快、运转噪音低、运行平稳、控制性能好、整机成本低。 二、设计原理 1、设计目的 (1)了解步进电机的基本原理,掌握步进电机的转动编程方法 (2)了解影响电机转速的因素有哪些 2、方案的比较 在于对步进电机的控制和驱动,设计中受控电机为四相六线制的的步进电机。 方案一:使用多个功率放大器驱动电机 通过使用不同的放大电路和不同参数的器件,可是达到不同的放大要求,放大后能够得到较大的功率,但是由于使用的是四相的步进电机,就需要对四路信号分别放大,而放大电路很难达到完全一致,当电机的功率较大时运行会不稳定,而电路的制作也比较复杂。 方案二:使用ULN2003芯片驱动电机 ULN2003可以驱动两个二相电机,也可以驱动一个四相电机,它工作电压高,工作电流大,并且能够在关太时承受50V的电压,输出还可以在高负载电流并行运行,可直接用单片机的I/O口提供信号;而且电路简单,使用比较方便。 通过比较,使用ULN2003芯片充分发挥了它的功能,能稳定地驱动步进电机,且价格不高,故选用ULN2003驱动电机。 三、电路设计 1.单片机型号的选择 80C51单片机属于MCS-51系列单片机,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。 80C31单片机,它是8位高性能单片机结合了HMOS的高速和高密度技术及CHMOS的低功耗特征。80C31内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但80C31片内并无程序存储器,需外接ROM。此外,80C31还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。 综上,所以选择80C51单片机. 2.硬件电路设计 四、 软件设计 1、程序框图 N Y N Y N N N N 0->需要刷新显示标志 1->步进电机未转动过标志 1->转动方向标志(1:表示顺时针方向) 33H->下次送给步进电机值 5->步进电机转速 初始化8255(PC口输出) 初始化8253(计数器T0设置在模式2状态,BCD码计数,CLK0/210) 初始化8259(允许8253中断) 初始化8253中断向量 初始化显示缓冲区: (数码管第8位:0,顺时针方向;5、7位消隐;6位:转速; 1、2、3、4位:0,表示连续转动,其他值表示需要转动的步数) 调用显示子程序 有键按下 需要刷新显示标志=1 0->需要刷新显示标志 调用步数调整子程序 关中断(终止步进电机转动) 数码管的1、2、3位->2、3、4位 键值送给数码管的第一位 调用改变转向子程序 键值>9 键值=0AH 调用增速子程序 调用减速子程序 调用启动步进电机子程序 Y 键值=0BH 键值=0CH 键值=0DH 开始 Y Y Y 改变方向子程序: Y Y N N Y 开始 转动方向标志=0 91H->下次送给步进电机值 下次送给步进电机值循环右移二次 1->转动方向标志 0->送给数码管的第7位 步进电机未转动过标志 33H->下次送给步进电机值 下次送给步进电机值循环左移二次 0->转动方向标志 1->送给数码管的第7位 步进电机未转动过标志 返回 启动步进电机子程序: Y N Y 开始 0->步进电机未转动过标志 取转动步数 取转速对应的延时值(转速延时) 初始转速延时1=初始转速延时 转速延时< 50 初始转速延时=50 返回 开定时器0 初始转速延时=转速延时 增速子程序: Y N 开始 转速=11 转速+1 转速送给数码管第5位 返回 减速子程序: N Y 开始 转速=0 转速-1 转速送给数码管第5位 返回 N N Y N N N Y Y N Y 初始转速延时1=转速延时 初始转速延时 -1=0 时 初始转速延时1 - 1 初始转速延时=初始转速延时1 1-1 转动方向标志=0 时 下次送给步进电机值循环右移一次 1-1 转动步数=0 时 1->需要刷新显示标志转动步数减一 1-1 转动步数=0 时 关中断 开始 下次送给步进电机值循环左移一次 1-1 返回 下次送给步进电机值->P1口(控制步进电机转动一步) Y 2.完整程序 11 EXTRN CODE(INIT8279,SCAN_KEY,Display8) MAIN_CODE SEGMENT CODE MAIN_BIT SEGMENT BIT MAIN_DATA SEGMENT DATA STACK SEGMENT IDATA ;PUBLIC INIT8279,SCAN_KEY,Display8 CMD_8279 XDATA 0bF01H DATA_8279 XDATA 0bF00H RSEG MAIN_DATA StepControl: DS 1 buffer: DS 8 SpeedNo: DS 1 StepDelay: DS 1 StartStepDelay: DS 1 StartStepDelay1: DS 1 RSEG MAIN_BIT bFirst: DBIT 1 bClockwise: DBIT 1 bNeedDisplay: DBIT 1 RSEG STACK DS 20H CSEG AT 0000H LJMP STAR CSEG AT 000BH LJMP TIMER0 RSEG MAIN_CODE STAR: MOV SP,#STACK-1 ACALL INIT8279 SETB bFirst SETB bClockwise MOV StepControl,#33H MOV SpeedNo,#5 MOV TMOD,#02H MOV TH0,#55 MOV TL0,#55 MOV IE,#82H MOV Buffer+7,#0 MOV buffer+6,#0 MOV buffer+5,#0 MOV buffer+4,#0 MOV buffer+3,#10H MOV buffer+2,SpeedNo MOV buffer+1,#10H MOV buffer,#0 STAR2: MOV R0,#buffer ACALL Display8 STAR3: ACALL Scan_Key JC STAR5 JNB bNeedDisplay,STAR3 CLR bNeedDisplay ACALL Step_SUB_1 SJMP STAR2 STAR5: CLR TR0 CJNE A,#10,$+3 JNC STAR1 MOV buffer+4,buffer+5 MOV buffer+5,buffer+6 MOV buffer+6,buffer+7 MOV Buffer+7,A SJMP STAR2 STAR1: CJNE A,#14,$+3 JNC STAR3 MOV DPTR,#DriverTab CLR C SUBB A,#10 RL A JMP @A+DPTR DriverTab: SJMP Direction SJMP Speed_up SJMP Speed_Down SJMP Exec Direction: CPL bClockwise JB bClockwise,Clockwise MOV buffer,#1 AntiClockwise: JNB bFirst,AntiClockwise1 MOV StepControl,#91H SJMP Direction1 AntiClockwise1: MOV A,StepControl RR A RR A MOV StepControl,A SJMP Direction1 Clockwise: MOV buffer,#0 JNB bFirst,Clockwise1 MOV StepControl,#33H SJMP Direction1 Clockwise1: MOV A,StepControl RL A RL A MOV StepControl,A Direction1: SJMP STAR2 Speed_up: MOV A,SpeedNo CJNE A,#11,Speed_up1 SJMP speed_up2 Speed_up1: INC SpeedNo MOV buffer+2,SpeedNo Speed_up2: SJMP STAR2 Speed_Down: MOV A,SpeedNo JZ Speed_Down1 DEC SpeedNo MOV buffer+2,SpeedNo Speed_Down1: SJMP STAR2 Exec: CLR bFirst ACALL TakeStepCount MOV DPTR,#StepDelayTab MOV A,SpeedNo MOVC A,@A+DPTR MOV StepDelay,A CJNE A,#50,$+3 JNC Exec1 MOV A,#50 Exec1: MOV StartStepDelay,A MOV StartStepDelay1,A SETB TR0 AJMP STAR2 StepDelayTab: DB 250,125,83,62,50,42,36,32,28,25,22,21 TIMER0: PUSH ACC DJNZ StartStepDelay,TIMER0_1 MOV A,StartStepDelay1 CJNE A,StepDelay,TIMER0_5 SJMP TIMER0_2 TIMER0_5: DEC A MOV StartStepDelay1,A TIMER0_2: MOV StartStepDelay,A MOV A,StepControl CPL A MOV P1,A CPL A JB bClockwise,TIMER0_3 RR A SJMP TIMER0_4 TIMER0_3: RL A TIMER0_4: MOV StepControl,A MOV A,R6 ORL A,R7 JZ TIMER0_1 SETB bNeedDisplay DJNZ R7,TIMER0_1 DJNZ R6,TIMER0_1 CLR TR0 TIMER0_1: POP ACC RETI Step_SUB_1: MOV R5,#4 MOV R0,#buffer+7 Step_SUB_1_1: MOV A,@R0 DEC @R0 JNZ Step_SUB_1_2 MOV @R0,#9 DEC R0 DJNZ R5,Step_SUB_1_1 Step_SUB_1_2: RET TakeStepCount: MOV A,buffer+4 MOV B,#10 MUL AB ADD A,buffer+5 MOV B,#10 MUL AB ADD A,buffer+6 MOV R7,A MOV A,B ADDC A,#0 MOV B,#10 MUL AB XCH A,R7 MOV B,#10 MUL AB XCH A,B ADD A,R7 XCH A,B ADD A,buffer+7 MOV R7,A MOV A,B ADDC A,#0 MOV R6,A CJNE R7,#0,TakeStepCount1 RET TakeStepCount1: INC R6 RET INIT8279: MOV A,#34H MOVX @DPTR,A CLR A MOV DPTR,#CMD_8279 MOVX @DPTR,A INIT8279_1: CALL CLEAR MOV A,#90H MOVX @DPTR,A RET CLEAR: MOV A,#0DEH MOV DPTR,#CMD_8279 MOVX @DPTR,A WAIT1: MOVX A,@DPTR JB ACC.7,WAIT1 RET SCAN_KEY: MOV DPTR,#CMD_8279 MOVX A,@DPTR READ_FIFO: ANL A,#7 JZ NO_KEY READ: MOV A,#40H MOVX @DPTR,A MOV DPTR,#DATA_8279 MOVX A,@DPTR ACALL KEY_NUM SETB C SCAN_KEY1: RET NO_KEY: CLR C SJMP SCAN_KEY1 KEY_NUM: ANL A,#3FH RET WRITE_DATA: MOV DPTR,#DATA_8279 MOVX @DPTR,A RET LED_TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH RET Display8: PUSH 07H MOV DPTR,#LED_TAB MOV P2,#HIGH(CMD_8279) MOV R1,#LOW(CMD_8279) MOV A,#90H MOVX @R1,A MOV R1,#LOW(DATA_8279) MOV R7,#8 Display81: MOV A,@R0 MOVC A,@A+DPTR MOVX @R1,A INC R0 DJNZ R7,Display81 POP 07H RET END 五、结语 1、运行结果 首次运行时电机不会旋转,在加入子程序时,电机只能做单方向简单旋转,当加入子程序(INIT8279:到LED_TAB:)电机才能做正反转方向的转动,且能加减速。键盘上A表示正反转的切换并且定时,当LED灯显示为0使步进电机会不停地转下去,B表示加速,最高速度为12级,C表示减速,D表示输入的拍数,按下D键电机转动,按任意键电机停止转动。 2、评价和改进建议 设计的步进电机基本能实现预期目标,经过调试和修改,但还存在问题,比如按开关时会出现不稳定情况,有时高速启动不起来现象,显示有时也有些不理想。这些原因一般是硬件或是处理程序不完善造成的,还待进一步的完善。 六、参考文献 [1] 李全利.单片机原理及应用技术.高等教育出版社,北京.2009 [2] 张永枫.单片机应用实训教程.机械工业出版社,北京.2009 [3] 林春景.单片机原理与应用.机械工业出版社,北京.2009 [4] 杨居义.单片机课程设计指导.清华大学出版社,北京.2009 [5] 张小林、崔洗.51单片机常用模块设计查询手册.清华大学出版社,北京.2010 [6] 王君.单片机原理及控制技术.机械工业出版社,北京.2010- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 单片机 控制系统 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文