1、目录1.实验要求与设计21.1设计目的21.2 设计要求21.3 设计思路22.设计原理及分析32.1 步进电机控制系统的组成32.2 单片机最小系统32.3 键盘控制电路42.4 LED数码显示电路53.系统的总体方案设计63.1 步进电机总体设计框图63.2 驱动控制系统组成63.3 脉冲信号的产生64.软件设计设计及调试74.1 主程序流程图74.2 INTO中断子程序框图74.4 程序代码95.实验心得与体会16参考文献17附:课程设计评分表18附:步进电机电路图191.实验规定与设计1.1设计目以单片机为核心设计出一种单片机控制步进电机控制系统。本系统采用AT89C51作为控制单元,
2、通过键盘实现对步进电机转动方向及转动速度控制,并且将步进电机转动速度动态显示在LED数码管上。1.2 设计规定1.运用键盘按键来控制步进电动机加速减速以及控制电动机正转、反转、启动、停止等操作,达到显示目。2.理解步进电动机工作原理,会计算其各个量之间转换,例如,速度、时间、频率与步进角之间关系。3.显示以51单片机为核心实用控制电路,并进行调试出成果。1.3 设计思路采用51系列单片机实现对步进电动机进行调速控制。一方面运用键盘按键来控制步进电动机加速减速以及控制电动机正转、反转、启动、停止等操作。达到显示目。最后使步进电动机控制能更加灵活。本实验采用89C51做单片机运营,所用本实验只需要
3、将其四相连接P1口得P1.0P1.3口就行了,在AEDK实验教学机上,数码管和8279内部已经连接好,不需再连线。本实验使用步进电机用直流+12V电压,电机线圈由A、B、C、D四相构成驱动方式为四相四拍方式,各线圈通电顺序如下表。表中一方面向A线圈输入驱动电流, 接着B、C、D线圈驱动,最后又返回到A线圈驱动,按这种顺序切换,电机轴按顺时针方向旋转。若通电顺序相反,则电机轴按逆时针方向旋转。2.设计原理及分析2.1 步进电机控制系统构成步进电机控制系统共分为六个模块:单片机最小系统模块、键盘控制模块、数码显示模块、测速模块、步进电机驱动模块和电源模块。1.单片机最小系统重要由复位电路和时钟电路
4、构成。复位电路为单片机系统提供可靠复位,使单片机能正常启动。时钟电路采用外部时钟方式,保证单片机个功能部件都是以时钟频率为基准,有条不紊地一拍一拍地工作。2.键盘控制模块涉及方向控制键、加速键和减速键、启停键。实现对步进电机控制。并且键盘上连接有发光二极管,以批示键盘状态。3.数码显示模块采用共阴极数码管来动态显示步进电机实际转动速度。4.测速模块采用开关霍尔片对安放在步进电机转盘上小磁片磁信号进行检测,步进电机转盘每次带动小磁片通过霍尔片时,其都将有脉冲信号从霍尔片输出。单片机外部中断口对信号进行采集。2.2 单片机最小系统近年,由于CHMOS技术进步,大大地增进了单片机CMOS化。CMOS
5、芯片除了低功耗特性之外,还具备功耗可控性,使单片机可以工作在功耗精细管理状态。这也是此后以80C51取代8051为原则MCU芯片因素。由于单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。CMOS电路特点是低功耗、高密度、低速度、低价格。采用双极型半导体工艺TTL电路速度快,但功耗和芯片面积较大。随着技术和工艺水平提高,又浮现了HMOS(高密度、高速度MOS)和CHMOS工艺。CHMOS和HMOS工艺结合。当前生产CHMOS电路已达到LSTTL速度,传播延迟时间不大于2ns,它综合优势已在于TTL电路。因而,在单片机领域CMOS正在逐渐取代TTL电路。单片机是通过内部总线把计算机各重
6、要部件接为一体,其内部总线涉及地址总线、数据总线和控制总线。其中,地址总线作用是在进行数据互换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;数据总线作用是在CPU与存储器或I/O接口之间,或存储器与外设之间互换数据;控制总线涉及CPU发出控制信号线和外部送入CPU应答信号线等。考虑到经济和可靠性规定,本设计中采用AT89C51单片机,它宏晶科技设计生产单时钟/机器周期(1T)单片机。是高速/低功耗/超强抗干扰新一代8051单片机。指令代码完全兼容老式8051,但速度快8-12倍。1. AT89C51单片机参数:工作电压:5.5V3.8V/3.3VFlash程序存储器字节:4K定期器
7、T0、T1:有中断优先级:22. AT89C51单片机长处:超低功耗超强抗干扰,超强抗静电输入输出口多,最多有40个I/O速度快,1个时钟/机器周期,可用低频率晶振2.3 键盘控制电路键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机重要手段。键盘实质是一组按键开关集合。键盘所用开关为机械弹性开关,运用了机械触点合、断作用。一种电压信号在机械触点断开、闭合过程中,都会产生抖动,普通为510ms;两次抖动之间为稳定闭合状态,时间由按键动作所决定;第一次抖动前和第二次抖动后为断开状态。按键闭合与否,反映在输出电压上就是呈现出高电平或低电平。通过对输出电平高低状态检测,便
8、可确认按键按下与否。在本设计中,高电平表达按键断开,低电平表达按键闭合状体。并且,为了能直观形象表达按键闭合与否,还为每个按键相应增长了发光二极管,按键断开时,发光二极管灭,当有键闭合时,相应发光二极管变亮。为了保证单片机对一次按键动作只确认一次按键,必要消除抖动影响。消除按键抖动普通采用硬件、软件两种办法。由于硬件消抖电路设计复杂,本设计中没有采用,在此不再详细论述;软件消抖适合按键较多状况,以便简朴。其原理是在第一次检测到有键按下时,执行一段延时10ms子程序后在确认该键电平与否仍保持闭合状态电平,如果保持闭合状态电平则确以为真正有键按下,从而消除了抖动影响。其原理图如图2-3所示:图2.
9、1键盘控制模块原理图2.4 LED数码显示电路发光二极管LED是一种通电后能发光半导体器件,其导电性质与普通二极管类似。LED数码显示屏就是由发光二极管组合而成1种新型显示屏件。在单片机系统中应用非常普遍。图2.2 数码管显示电路3.系统总体方案设计3.1 步进电机总体设计框图图3.1 总体设计框图 本系统是单片机软件程序来产生脉冲分信号,即把数字控制技术高精度等方面优势有效应用于步进电机控制系统,本电路涉及开关控制电路,时钟电路,功率放大器电路等选取。3.2 驱动控制系统构成使用控制步进电机必要由环形脉冲,功率放大等构成控制系统,方框图3.2如下:图3.2 控制系统构成图3.3 脉冲信号产生
10、脉冲信号普通由单片机或CPU产生,普通脉冲信号占空比为0.3-0.4左右,点击转速越高,占空比越大。4.软件设计设计及调试4.1 主程序流程图步进电机控制系统主程序在对8279系统初始化后重要完毕定期中断及定期器解决功能,如图4.1所示:图4.1 主程序系统上电复位后,先调用初始化子程序,对步进电机各端口,有关参数进行初始化,启动定期中断。实现电机控制程序和定期器解决程序功能。4.2 INTO中断子程序框图1.中断程序框图(图4.2)重要负责步进电机正,反转功能。图4.2 INTO中断子程序框图2.中断子程序框图(图4.3)负责解决键盘功能一方面初始化实际键值参数,然后扫描键盘,读缓存,执行键
11、盘之程序里指令,将相应变量值变化,为键盘解决子程序做准备。图4.3 INTO中断子程序框图4.4 程序代码;- -;Z8279入口地址;- -Z8279 EQU 8701H ;8279状态口地址D8279 EQU 8700H ;8279数据口地址;- -;74LS273入口地址;- -PI EQU 8300H ;- -;定义RAM字节单元;- -DIRE EQU 30H ;转形式 STAS EQU 31H ;相位 SPED EQU 32H ;速度指针03 SPEDED_VAL EQU 33H KEY_VAL EQU 34H DISPED_SBUF0 EQU 35H DISPED_SBUF1 E
12、QU 36H DISPED_SBUF2 EQU 37H ORG 0000H LJMP START ORG 000BH LJMP INT0_P ORG 001BH LJMP INT1_P ORG 0100HSTART: MOV SP,#60H LCALL INTI8279 LCALL INT_T0 LCALL INT_T1 MOV DIRE,#02H MOV SPED,#04H MOV STAS,#077H SETB EA;- -;8279初始化子程序;- -INTI8279: MOV DPTR,#Z8279 ;清除命令 MOV A,#0D3H MOVX DPTR,A MOV DPTR,#Z82
13、79 ;键盘显示命令 MOV A,#000H; MOVX DPTR,A MOV DPTR,#Z8279 ;时钟编程命令 MOV A,#038; MOVX DPTR,A NOP RET;-;初始化定期器0;-INT_T0: MOV TMOD,#011H MOV TH0,#0FFH; MOV TL0,#0FEH CLR PT0 SETB ET0 SETB TR0 RET;- -;初始化定期器1;- - INT_T1: MOV TMOD,#011H MOV TH1,#04CH ;定期时间为50mS MOV TL1,#000H SETB PT1 SETB ET1 SETB TR1 RET ;- -;定
14、期器0解决程序;依照参数控制直流电机;- -INT0_P: PUSH ACC ;堆栈 ;- - ;步进电机控制程序 ;- - LCALL LP0 EXIT0: MOV TH0,#0FFH ;重装定期初值 MOV TL0,#0FEH POP ACC RETI;-;步进电机控制程序;入口参数:;- LP0: MOV R7,SPEDED_VALLP1: LCALL DELAY DJNZ R7,LP1 MOV A,DIRE CJNE A,#00H,LP2 ;顺时针转 MOV A,STAS RL A MOV STAS,A ANL A,#0FH MOV P1,A ;相位输出 LJMP LP5LP2: CJ
15、NE A,#01H,LP3 ;逆时针转 MOV A,STAS RR A MOV STAS,A ANL A,#0FH MOV P1,A ;相位输出 LJMP LP5LP3: CJNE A,#02H,LP5 ;停转 LJMP LP5 LP5: NOP RET ;-;延时子程序;-DELAY: MOV R3,#20H ;延时子程序 DELAY1: MOV R4,#04FH DJNZ R4,$ DJNZ R3,DELAY1 RET ;-;定期器1解决程序;键盘;-INT1_P: PUSH ACC ;堆栈 LCALL KD_KB LCALL SBUF_DISPED0 LCALL LEDD_PROC0EX
16、IT1: MOV TH1,#04CH ;重装定期初值 MOV TL1,#000H POP ACC RETI ;-;8279键盘译码解决主程序;-KD_KB: MOV DPTR,#Z8279 ;读状态字 MOVX A,DPTR ANL A,#0FH JZ KD_KB1 MOV A,#40H;读FIFO ;传感器RAM命令 MOVX DPTR,A MOV DPTR,#D8279 MOVX A,DPTR ANL A,#3FH ;键值最大为64,屏蔽不用位 MOV KEY_VAL,A LCALL JP0KD_KB1: NOP RET ;-;功能键解决子程序;入口参数:KEY_VALU;-KEY0: M
17、OV A,KEY_VALU CJNE A,#0AH,KEY1 LCALL KA0 LJMP KEY8KEY1: CJNE A,#0BH,KEY2 LCALL KEY0 LJMP KEY8KEY2: CJNE A,#0CH,KEY8 LCALL KEY0 LJMP KEY8KEY8: NOP RET ;-;键A解决子程序;键A为切换到正转键或者/正转级数参数更改键;-KA0: MOV A,DIRE CJNE A,#00H,KA2 INC SPED MOV A,SPED CJNE A,#04H,KA1 MOV SPED,#00HKA1: LCALL SPEDED_LOAD0 LJMP KA5KA2
18、: MOV SPED,#00H MOV DIRE,#00H MOV SPEDED_VAL,#61H LJMP KA5KA5: NOP RET;-;装载正转占空参数;-SPEDED_LOAD0: MOV A,SPED CJNE A,#00H,SPEDED_LOAD1 MOV SPEDED_VAL,#050H LJMP SPEDED_LOAD8SPEDED_LOAD1: CJNE A,#01H,SPEDED_LOAD2 MOV SPEDED_VAL,#020H LJMP SPEDED_LOAD8SPEDED_LOAD2: CJNE A,#02H,SPEDED_LOAD3 MOV SPEDED_VA
19、L,#00AH LJMP SPEDED_LOAD8SPEDED_LOAD3: CJNE A,#03H,SPEDED_LOAD8 MOV SPEDED_VAL,#005H LJMP SPEDED_LOAD8SPEDED_LOAD8: NOP RET;-;键B解决子程序;键B为切换到反转键或者/反转级数参数更改键;-KB0: MOV A,DIRE CJNE A,#01H,KB2 INC SPED MOV A,SPED CJNE A,#04H,KB1 MOV SPED,#00HKB1: LCALL SPEDED_LOAD0 LJMP KB5 KB2: MOV SPED,#00H MOV DIRE,#
20、01H MOV SPEDED_VAL,#61H LJMP KB5KB5: NOP RET;-;键C解决子程序;键C为切换到停止键;-KC0: MOV A,DIRE CJNE A,#02H,KC1 LJMP KC5KC1: MOV DIRE,#02H MOV SPED,#04H LJMP KC5KC5: NOP RET;-;数码显示子程序;入口参数:DISPED_BUF0-DISPED_BUF5;- SBUF_DISPED0: MOV A,SPED MOV DPTR,#SPEDED_TAB MOVC A,A+DPTR MOV B,#100 DIV AB MOV DISPED_SBUF0,A MO
21、V A,B MOV B,#10 DIV AB MOV DISPED_SBUF1,A MOV DISPED_SBUF2,B MOV DPTR,#Z8279 ;写显示命令 MOV A,#090H MOVX DPTR,A MOV R0,#DISPED_SBUF2 MOV R6,#03HSBUF_DISPED1: MOV DPTR,#LEDSEG_TAB MOV A,R0 MOVC A,A+DPTR MOV DPTR,#D8279 MOVX DPTR,A DEC R0 DJNZ R6,SBUF_DISPED1 SBUF_DISPED2: NOP RET;-;笔形码表;-LEDSEG_TAB: DB 0
22、3FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH ;0,1,2,3,4,5,6,7,8,9DB 0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H,0FFH,0EFH ;加点数值DB 000H ;灭码SPEDED_TAB: DB 010H,050H,090H,0F0H,#000H END 5.实验心得与体会 通过这样长时间努力终于将课程设计完毕了,在这次设计中,咱们电路知识得到了较好补充和巩固,还使我提高了将理论知识运用到实际中能力。通过这次课程设计,更深一步掌握了51单片机原理,理解了简朴步进电机控制系统构成原理,并
23、初步掌握了步进电机设计及测试办法。提高了动手能力和排除故障能力。同步通过本次设计与调试,巩固了已学理论知识,将单片机理论和实践相结合,理解到步进电机各单元电路之间关系及影响,从而能对的设计、计算定期计数各个单元电路。初步掌握步进电机控制系统设计及测试办法,提高了动手能力和排除故障能力。这次设计使咱们学到了此前课本知识中所不曾理解知识,更加明白了在如今信息时代下电子技能知识重要性,丰富了咱们对实际工艺技术、电子技术和设备技术等方面结识,掌握了分析问题、解决问题办法以及调试、计算等基本技能,使实际工作能力得到了有效提高。在这次课程设计中非常感谢教师指引与协助,使咱们课程设计能更好完毕,这对于咱们此
24、后学习、工作和生活均有很大协助。同步,咱们也充分结识到团队合伙重要性,这次经历对于咱们后来发展无疑是相称有协助。相信有了这次累积,毕业后工作学习将会更加顺利。参照文献1 朱兆优 陈坚 王海涛编著. 单片机原理与应用. 北京:电子工业出版社,7月2 肖静编. mcs-51实验指引书实验指引书. 东华理工大学机电学院3 周荷琴 吴秀清编著. 微型计算机原理与接口技术.第四版. 中华人民共和国科学技术大学出版社,12月附:课程设计评分表东华理工大学长江学院课程设计评分表学生姓名: 万凯瑞 学号: 08314326课程设计题目:步进电动机项目内容满分实 评选题能结合所学课程知识、有一定能力训练。符合选
25、题规定(3人一题)5工作量适中,难易度合理10能力水平能纯熟应用所学知识,有一定查阅文献及运用文献资料能力10理论根据充分,数据精确,公式推导对的10能应用计算机软件进行编程、资料收集录入、加工、排版、制图等10能体现创造性思维,或有独特看法15成果质量模型对的、合理,各项技术指标符合规定。15摘要论述简洁完整,假设合理、问题分析对的、数学用语精确、结论严谨合理;问题解决科学、条理分明、语言流畅、构造严谨、版面清晰15论文重要某些齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范精确,符合论文规定10字数不少于字,不超过15000字5总 分100指引教师评语:指引教师签名:年 月 日附:步进电机电路图