2022年基于单片机的步进电机控制系统课程设计.docx
精品学习资源运城学院单片机课程设计报告课题名称 基于单片机地步进电机掌握系统地设计与实现单 位运城学院所在院(系)运算机科学与技术系班 级1201 班指导老师同学姓名王明宇李嘉嘉郭西西黄 凯王 超王 丹2021 年 5 月 28 日目 录1.课程设计地目地 12.课程设计题目描述和要求12.1 设计题目要求12.2 原理图设计要求 12.3 程序设计要求 1欢迎下载精品学习资源2.4 程序调试要求 13.硬件设计 53.1 单片机最小系统设计 53.2 主要电路分析 54.软件设计 104.1 系统软件运作主流程图104.2 键盘扫描流程图 115.程序代码 116.设计总结 157.参考文献 15人员分工:序号姓名主要工作1 王明宇系统总体设计2 郭西西 王 超 硬件设计及制作3 李嘉嘉软件设计4 黄 凯 王 丹 系统地软件调试和硬件调试欢迎下载精品学习资源1. 课程设计目地(1) 进一步熟识和把握单片机地结构及工作原理.(2) 设计一套硬件系统较简洁、经济,但功能较为齐全,适应性强,操作便利,交互性强,牢靠性高地步进电机掌握系统.(3) 通过课程设计,能够有机地把电子技术、单片机技术、电机地掌握技术结合起来4 通过实际程序设计和调试,逐步把握模块化程序设计方法和调试技术.5通过完成一个包括电路设计和程序开发地完整过程,使同学明白单片机应用系统开发及地全过程,为今后从事相应地工作打下良好地基础.2. 课程设计题目描述和要求2.1 设计题目要求用单片机完成基于单片机地步进电机掌握系统地设计与实现.步进电机是一种把电脉冲信号变 成直线位移或角位移地掌握电机,其位移速度与脉冲频率成正比,位移量与脉冲数成正比.步进电机在结构上也是由定子和转子组成,可以对旋转角度和转动速度进行高精度掌握.当电流流过定子绕组时,定子绕组产生一矢量磁场,该矢量场会带动转子旋转一角度,使得转子地一对磁极磁场方向与定子地磁场方向一着该磁场旋转一个角度.2.2 原理图设计要求(1) 原理图设计要严格符合作图规范(布局、连线要正确,连线端子要有标号等).(2) 图中所使用地各元器件要按标准正确标明序号及数值(如,P0 口; RST;) .(3) 原理图要完整(电源,单片机,外围器件,扩器接口,输入/ 输出装置等要一应俱全).2.3 程序设计要求(1) 依据设计要求,将总体功能分解成如干个子功能模块,每个功能模块完成一个特定地功能.(2) 依据总体要求具体分解各功能模块,并确定各功能模块之间地关系,设计出完整地程序流程图(按流程图设计标准完成设计).2.4 程序调试要求(1) 利用 C 语言编写程序(按C 语言书写标准完成程序设计).(2) 通过 keil 调试(按步骤一步一步完成程序调试、包括断点设置、内存及代码分析等).(3) 通过 Altium Designer 7.0 软件完成理论性仿真 .(4) 通过试验板检验及调试.(5) 程序调试将设计完地程序输入,汇编,排除语法错误,生成HEX 文件(执行、检查、修改程序,直到达到要求为止).3. 硬件设计本设计采纳单片机AT89S51来作为整个步进电机掌握系统地运动掌握核心部件,采纳了电机驱动芯片 L298 及其外围电路构成了整个系统地驱动部分,再加上作为执行部件地步进电机来构成了一个基本地步进电机掌握系统.系统地具体功能和要求如下:欢迎下载精品学习资源1. 单片机最小系统板地设计;2. 设计兼有两相两拍和两相四拍地脉冲安排器;3. 实现步进电机地启停、正转、反转掌握;4. 驱动电路可供应电压为12V,电流为 0.3A 地驱动信号;5. 能实现步进电机地转速调剂,最低转速为25 转/ 分,最高转速为 100 转/ 分;6. 步进电机地转速由数码管显示;7. 键盘扫描电路地设计运算机独立按键掌握模块串口通信模块单片机最小系统电机驱动模块步进电机数码管显示模块驱动电流检测模块整个系统地组成包括单片机最小系统,电机驱动模块,串口下载模块,数码管显示模块,电机驱动电流检测模块,独立按键等模块组成.具体框图如下列图:3.1 单片机最小系统设计采纳 AT89S51 单片机构成了掌握系统地核心,其基本模块就主要包括复位电路和晶体震荡电路.在本设计当中,单片机地P 0 口、 P 1 口、 P 2 口、 P 3 口全部参加系统工作,单片机最小系统地接线如图 3.3 所示:欢迎下载精品学习资源单片机端口安排及功能1 、其中 P 0 口用于掌握数码管地具体显示功能,既是数码管地段选.2 、P 1 口主要用于掌握电机驱动芯片L298 地工作,以及ADC0804 芯片地编程地读写掌握.3 、P 2 口主要用于掌握数码管地公共端,既是数码管位置选.与此同时仍处理键盘扫描电路地.4 、P 3 口主要用于负责处理ADC0804 地模数转化芯片地工作.3.2 主要电路分析1. 串口通信模块本设计采纳串口通信,来实现运算机与单片机地通信.其具体地电路图如下列图.欢迎下载精品学习资源2. 数码管显示电路设计本设计地显示部分可以用液晶显示地方案可供挑选,液晶显示和数码管显示地区分主要表达在以下几个方面:数码管显示内容单一,而液晶显示器显示内容丰富,由于液晶一般都是七段八字地只能显示单一地内容,而液晶显示地内容就很丰富;数码管仍比液晶显示耗电,而且使用液晶也比使用数码管显得美观.但是掌握液晶显示器地时候占用地系统资源多,编程更复杂,最关键地是液晶显示地成本是数码管地几十倍,所以考虑到应用价值,最终仍是确定选用数码管实现本设计地显示部分功能 .四位共阳数码管地管脚安排如下图所示:本设计选用了数码管显示设计,其段选地掌握A、B、C、 D、E、F、G、 DP 依据数码管地简介资料选用了P 0 口作为其掌握端口,其位选部分由于单片机地掌握端口输出地电压不足以直接点亮数码管,所以在单片机掌握端口和数码管位置选掌握端口加入了三极管,其具体地电路连接如下列图.3. 电机驱动模块设计目前地电机地驱动技术地基本类型,考虑要硬件设计驱动电路地方法会电路复杂,调试不方欢迎下载精品学习资源便,而且采纳多个元器件搭接,成本高.而直接采纳集成地驱动芯片时电路稳固,成本低,易于掌握,所以最终本设计是直接采纳电机驱动芯片L298 作为电机驱动部分地核心部件.本设计地电机驱动部分是由驱动芯片L298 及其外围电路构成,其中从L298 地 2、3 脚和 13、14 脚(即芯片地输出端)依次按次序连成一个插座,分别与步进电机地四根线相连.而 5 、6 、7 、10、 11、12 脚就依次与单片机地P1 口地六个管脚相连.通过这一连接实现了单片机与L298 以及步进电机地串联掌握.图中很重要地部分是由四个二极管连成地爱护电路,其作用是防止由于步进电机地转速提高而产生地自感电动势损坏芯片.由于本设计使用地电机驱动电压是使用了9V 也可以使用 12V,所以二极管地负端接9V 地参考电压 .假如驱动芯片地电压转变,那么这个参考电压也随之一起转变.欢迎下载精品学习资源4. 驱动电流检测模块设计本设计地驱动芯片电流检测模块地实际应用意义在于,检测流过电机地电流值并准时显示,对于防止电机过流而损坏电机有肯定地意义.从上面地 L298 地芯片资料当中我们可以知道L298 地 Pin1 和 Pin15 可与电流侦测电阻连接来侦测电机正常工作地情形下地工作电流.一般检测电流地方法是通 过检测电压值,然后通过欧姆定律换算电流值地方法测试电流,本设计也不例外. 设计采纳地42BYG101 反应式步进电机,其额定电流值0.2 安,在加上一般常用地电流侦测电阻都是1 欧姆或0.1 欧姆,这样换算来检测到地电压值一般是在mV 级,这样以来,要是直接将检测到地电压值送给 ADC0804 进行模数转换那么由于精度地缘由势必会对检测结果地精确性造成很大地影响.所以考虑到这一缘由我们是先将检测到地电流值经过OP07 作放大处理后再将信号送给模数转换芯片处理这样保证了检测值地牢靠性.ADC0804 输出地数字信号再送给单片机地P 3 口,经过单片机处理后最后将检测到地数字信号通过数码管显示出来.而在显示这一部分有这样一个问题,就是步进电机地工作电流不是一个恒定值,它是随着时间地变化,会在一个小范畴内不停地波动为了使显示出来地电流数据更牢靠,我们通过单片编程,采纳了取一段时间地电流地平均值显示出来.形象地展现这一模块地整个工作流程就是如下地图所示:欢迎下载精品学习资源5. 独立按键电路设计本设计一共设计了四个按键,其中一个是单片机复位电路按键,剩余三个按键是分别一端接P2.1 口, P2.2 口, P2.3 口另一端接地 .此时按键地工作原理是按下按键之后就相当于是把对应地端口地电势拉低 .在处理按键程序前就先去抖动,防止因按键时产生地机械抖动而错误地重复执行相应程序. 全部按键处理程序都是在等按下后执行地.这些在软件编设计部分都会有说明.4.软件设计4. 1 系统软件运作主流程图开头系统初始化按键判定NY相应按键子程序相应显示子程序终止当给系统供电以后,通过单片机复位电路对系统进行上电复位系统经过初始化以后,便开头执行按键查询等待相应地操作,当有按键按下地时候程序便调用并执行相应地子程序,其具体地主流程图 4.1 如下所示:4.2系统初始化流程图对相应地系统参数进行 初始化,包括系统上电默认 运行参数设定,包括两相四 拍地工作方式,初始速度档 位是 30 转/ 分,系统中断设定,定时器设定,载入定时器 初 值 和 默 认 地 工 作 参 数等,具体流程图如图4.2 所示.欢迎下载精品学习资源开头定时器中断答应定时器 0工作方式 2载入定时器初值定时器 0和定时器 1开启载入默认工作参数各个端口初始化5. 程序代码按键子程序1 、延时子程序:在本延时子程序当中每调用一次延时子程序延时时间是1 毫秒.2 、按键响应子函数:在本设计当中按键地一端接地,另一端接单片机地对应端口,所以当按键按下,既是将单片机对应端口电平拉低.所以在编程地时候判定按键按下是低电平有效.图 4.3 画出地是电机增速和减速地子程序框图.欢迎下载精品学习资源程序入口程序入口NN判定增速按键按下判定减速按键按下YY去抖动去抖动NN再次判定再次判定YYYY判定是否是最高速判定是否是最低速NN速度档位加 1速度档位减 1终止终止图 3.3增速减速子程序3、读 ADC0804 和模式切换程序框图如下图4.4 所示,在本设计当中我地模式切换按键只有一个,负责电机地正反转掌握,电流掌握和电机启动和停止掌握.由于编程地时候设置地系统工作地默认状态是正转,转速30 转/ 分.所以通过连续按模式切换键依次实现地功能是电机反转并显示转速,显示电机电流,系统停止工作,系统正转并显示转速依次切换.编程掌握 ADC0804 工作就主要是负责读和写端口地电平来实现地.欢迎下载精品学习资源初始化程序入口NP1口全部置 1预备按键判定Y电机反转及显示启动 0804开头测电压N读转换后的数据按键判定Y检测电流及显示读出的数据给予 addataN读数完毕返回按键判定Y系统停止工作N按键判定Y图 3.4读 ADC0804 子程序及模式切换子程序4 、掌握步进电机转动地脉冲输入方式: 两相四拍通电方式:正转: ABaBabAbAB 反转: ABAbabaBAB 两相八拍通电方式:正转: ABBaBaabbAbAAB反转: ABAAbbabaaBBAB以两相四拍正转为例其程序代码如下:ifi=1AL=1;BL=1;aL=0;bL=0; else ifi=2欢迎下载精品学习资源AL=0;BL=1;aL=1;bL=0;else ifi=3 AL=0;BL=0;aL=1;bL=1;else ifi=4欢迎下载精品学习资源系统组成AL=1;BL=0;欢迎下载精品学习资源3.4.1 硬件设计如图是机械手微机掌握系统硬件电路.本系统选用MCS-51 系列中地 8031 芯片,扩展了一片2732,以存放用户程序 .由于随机储备地数据不多,只利用片内RAM.采纳两位 LED 显示器和 2×8键盘, P35、 P3 6 和 P37 分别输出 X、Y、和 Z 方向地掌握脉冲, P16 和 P1.7 分别用来掌握步进电机地正 / 反转和产生复位信号 . 机械手动作机械手装升降盘上,如下列图.图中 A 点固定,步进电机MZ 带动 B 点,转变 A、B 间地较小距离,使得机械手移动较大距离.欢迎下载精品学习资源 货架货架分三层,每层有4 个包位,共计12 个包位 .图中数字为包位编码,编码地个位数表示X 位置,十位数表示Y 位置(层数),以供运算机查讯、判定之用 .本例采纳 SB-2A型步进电机,它工作于三相六拍地工作方式.电机按顺时针方向旋转(即正转)时,各相脉冲次序为: A=1 A=1, B=1 B=1B, C=1 C=1 C=,1 A=1电机按逆时针方向旋转(即反转)时,各相脉冲次序为: A=1 A=1, C=1 C=1 C=,1 B=1 B=1 B=1, A=13.5 程序设计系统软件包括:主程序、取包程序、存包程序、货位判定程序、X、Y 方向运动和机械手动作子程序等 .( 1)程序流程图限于篇幅,只给出主要流程欢迎下载精品学习资源图.2、脉冲序列地生成程序对于步进电机地掌握,实际上是掌握步进脉冲地个数和步进脉冲地间隔,而步进电机地间隔又可转化为某基准延时子程序地循环次数.因此,可以很便利地用软件来掌握步进电机地运行,达到各种掌握目地 .欢迎下载精品学习资源主程序功能:治理键盘和显示以及有关掌握.无键按下或执行有关命令后,显示提示符“-”( 2)程序清单ORG 0000H欢迎下载精品学习资源AJMPMAINMAIN: MOVSP,#60HSUN: SETBP3.5SETBP3.6SETBP3.7CLRP1.6CLRP1.7MOVR0,#40HMOVA,#12H;字符 “-”ML0: MOVR0, A;地编码INCR0CJNER0, #42H, ML0欢迎下载精品学习资源SETBP1.7;复位信号;键输入 / 显示/ 键判定F6H-特别数据R3-键号暂存器ML1:ACALLDIRACALLKEYADDA, 0F6H;键号 +F6 用于数字 / 功能键地判定JCSUN1;功能键转移至 SUN1MOV41H, 40H;数字键号送显示缓冲区MOVR0, 40HMOVR3, AANLA, 0FH;保留低四位MOVR0, AAJMPML1功能键处理程序(A、B、C 键) SUN1: MOVA, R3;CJNE,A 0AH, SUN2AJMPQBCXSUN2: CJNEA, 0BH, SUN3 AJMPCBCXSUN3: CJNEA, 0CH, ML1 AJMPSUN键盘子程序P1 口-P1.6 正/ 反转 P1.7 复位 P3 口- P3.3 P3.4 键盘行输入口R3-列扫描寄存器初值 FEH R4列- 号计数器 SBUF发- 送缓冲器 发送列扫描信号KEY: ACALLKS1JNZLK1 NI: ACALLDIRAJMPKEYLK1: ACALLDIR欢迎下载精品学习资源ACALL DIR ACALL KS1 JNZ LK2AJMP NILK2: MOV P1, 00HMOV R6, 05H ;延时等待发送DK6: DJNZ R6, DK6JBP3 3 LONE MOVA, 00H AJMPLKPLONE:JBP3 4, NEXT MOVA, 08HLKP: ADDA, R4PUSHACCLK3: ACALLDIR;仅做一次处理ACALLKS1 JNZLK3POPACC;取键值于 ACC RET欢迎下载精品学习资源MOVR,3MOVR,4 0FEH 00H欢迎下载精品学习资源LK4: MOVSBUF, R3NEXT: INCR4MOVA,R3 JNB ACC,.7KED RLAMOVR,3A AJMPLK4KED: AJMPKEY判定键盘有无键按下子程序无键按下 A=00H KS1: MOVSBUF, 00HMOVR,6 05H欢迎下载精品学习资源DS6: DJNZR6,DS6MOVA,P3CPLAANL,A 18HRET显示子程序 P1 口-LED位扫描输出口R2-位扫描寄存器初值为 01H SBUF-LED段码发送缓冲器DIR: PUSHPSWSETBPS,W4欢迎下载精品学习资源MOVR,0MOVR,2 40H 01H欢迎下载精品学习资源D1:MOVP1, R2MOVA, R0ADDA, 14HMOVCA, A+PCMOVSBU,F AMOVR,7 02HD2:MOVR6, 0FFHD3:DJNZR,6 D3DJNZR,7 D2INCR0MOVA, R2RLAMOVR2,AJNBACC,.2 D1POPPSWRETDB3FH, 06H, 5BH, 4FH 延时子程序YSH:PUSHPSWSETBPSW.3MOVR0, 0FFHSH:MOVR1, 0FFHSH0: DJNZR1,#H0DJNZR0,SHPOPPSW RETDB 66H, 60H, 70H, 07H DB 7FH, 6rH,77H ,7CH DB 39H, 5EH, 79H, 71H DB 31H, 6EH, 40H, 23H DB 00H欢迎下载精品学习资源延时子程序YSH: PUSH PSWSETB PSW.3MOV R0, 0FFH SH: MOV R1, 0FFH SH0: DJNZ R1,#H0DJNZ R0, SHPOP PSW RET机械手掌握示意图取包子程序P1.6-正/ 反转掌握30H、31H 步进脉冲暂存器(X 方向)QBCX:SETBP1.6;正转MOV30H, 04H ; X0 固定脉冲数 MOV31H, 0D8HACALLXYXC;调用 X 方向运行子程序ACALLCSHC;调用测试子程序MOV30H, 33H ; X 方向列脉冲数 MOV31H,34H;送 30H、31H 单元ACALLXYXC;调用 X 方向运行子程序MOV30H, 35H; Y 方向行脉冲数 MOV31H, 36H;送 30H、31H 单元ACALLYYXC;调用 Y 方向运行子程序ACALLQWZC;调用取物子程序CLRP1.6;反转MOV30H,35H MOV31H, 36H欢迎下载精品学习资源ACALLYYXC;调用 Y 方向运行子程序MOV30H,33HMOV31H,34HACALLXYXC;调用 X 方向运行子程序MOV30H, 04H; X0 固定脉冲数MOV31H,#0D8HACALLXYXC;调用 X 方向运行子程序ACALLFWZC;调用放物子程序 AJMPSUN存包子程序P.6-正/ 反转掌握30H、31H 步进脉冲暂存器(X 方向) 33H、34H -35H、36HCBCX: ACALLQWZCSETBP1 6MOV30H, 04H; X0 固定脉冲数MOV31H, 0D8H;ACALLXYXCACALLCSHCMOV30H,33HMOV31H,34HACALLXYXCMOV30H,35HMOV30H, 35HMOV31H, 36HACALLYYXCMOV30H, 33HMOV31H, 34HACALLXYXCMOV31H, 04HMOV31H, 0D8HACALLXYXCAJMPSUNMOV31H,36H ACALLYYXC ACALLFWZC CLRP1 6MOV30H,35HMOV31H,36HACALLYYXCMOV30H,33HMOV31H,34HACALLXYXCMOV31H, 04HMOV31H, 0D8H ACALLXYXC欢迎下载精品学习资源AJMPSUNX 方向运行程序P3 5脉冲信号输出线-掌握 MX 电机XYXC: PU3HPSWSETBPSW.4MOVR,0 30HABC0: MOVR1, 31HABC1: CLRP3 5ACALLYSHSETBP35ACALLYSHDJNZR,1 ABC1DJNZR,1 ABC0POPPSW RETY 方向运行程序P36 脉冲信号输出线 -掌握 MY 电机 YYXC: PUSHPSWSETBPSW.4MOVR0,30HADC2: MOVR1, 31HADC3: CLRP3 6ACALLYSHSETBP36ACALLYSHDJNZR,1ADC3DJNZR0,ADC2POPPSWRET取物子程序P1.6正/ 反转P3 6Y 方向脉冲输出( 40H) P3.7Z 方向脉冲输出 ( 66H)QWZC:PUSHPSWSETBPSW.4SETBP1.6MOVR0, 66HABC4:CLRP3.7ACALLYSHSETBP37ACALLYSHDJNZR,0ADC4MOVR,0 40HABC5:CLRP3 6ACALLYSHSETBP3.6ACALLYSH欢迎下载精品学习资源DJNZR0,ABC5DJNZR,0 ABC7POPPSWCLRP61MOVR,0 66HABC6:CLRP3 7ACALLYSHSETBP37ACALLYSHDJNZR0,ABC6MOVR,0 40HABC7:CLRP3 6ACALLYSHSETBP36ACALLYSHRET放物子程序P1.6正/ 反转P3 6Y 方向脉冲输出( 40H) P3.7Z 方向脉冲输出 ( 66H)FWZC: PUSHPSWSETBPSW.4SETBP1 6欢迎下载精品学习资源MOVR,0 ABC8:CLRP36ACALLYSHSETBP3 6ACALLYSH40H欢迎下载精品学习资源DJNZR0,ADC8欢迎下载精品学习资源MOVR0, 66HABC9: CLRP3 7ACALLYSHDJNZR,0ABC9CLRP16MOVR,0 40HABC10: CLRP3 6ACALLYSHSETBP36ACALLYSHDJNZR,0ADC10MOVR0, 66H ABC11: CLRP3 7欢迎下载精品学习资源ACALL YSH SETB P37 ACALL YSH DJNZ R,0ADC11欢迎下载精品学习资源POPPSWRET测试子程序41H货位列号暂存单元40H货位层号暂存单元41H40H33H 04H03H02H01H35H05H03H01H34H CDH B9H8AH01H36HBFH 5BH 5BHCSHC: PUSHMOVAA,41HCJNE,A03H, MN0MOV33H, 04H MOV34H, 0CDH AJMPMN3MN0:CJNEA,02H, MN1欢迎下载精品学习资源MOV33H, 03HMOV34H, 0B9HAJMPMN3MN1:CJNEA,#01H, MN2MOV33H,#02HMOV34H,#8AHAJMPMN3MN2 :MOV33H, #01H MOV34H,#01HMN3 : MOVA,40HCJNE,A#02H,MN4MOV35H, 05HMOV36H,#0BFHAJMPMN6MN4: CJNEA, 01H, MN5MOV35H, 03HMOV36,H 5BHAJMPMN6MN5:MOV35H, 01HMOV36H, 5BHMN6:POPARET4使用说明本系统操作便利,而且在存包或取包过程中均有乐曲伴奏,机械手返回原处,音乐自动停止.一、键盘介绍键盘有数字键 09、功能键 MON、Q、C 键,余下 3 个扩充键 .( 1)数字键( 09):向微机输入十进制数字,组成包位编码.( 2)功能键监控·键( MON):使系统进入监控程序.取包·键( Q):使系统完成取包操作.存包·键( C):使系统完成存包操作.二、操作说明( 1)开启电源( +5V 和+25V),两位数码管均应显示提示符“-”表示运算机系统正常 .否就关闭电源,检查故障 .( 2)预置包位编码先输入层号(十位数),后输入序号(个位数)例如,设包位编号为23,就依次按数字键2和3,显示 23,表示置数胜利 .( 3)启动功能键、完成有关操作,最终,显示提示符“一一 ”.欢迎下载精品学习资源aL=0;bL=1; i=0;当电机反转时,或者工作在两相八拍模式下可以按上面地代码类推.6. 设计总结通过本次单片机原理及应用课程设计我们充分认认到了课程设计地重要性和必要性,本次设计使们对已学过地基础学问有了更深化地懂得,独立摸索、独立工作以及应用所学基本理化分析和解决实际问题地才能有了很大地提高.另外,本次设计使我们地实际操作技能得到了训练,同时也培育了我们严谨地科学作风,加强了团队合作才能.7. 参考文献1 徐爱钧 . 单片机原理与运用 .机械工业出版社 , 2021.062 史久贵 . 基于 Altium Designer 地原理图与 PCB设计 .机械工业出版社 ,20213 刘松. 单片机技术与应用 . 机械工业出版社 , 2021.124 高伟. AT89 单片机原理及应用.国防工业出版社, 2021.035 李文华 . 单片机应用技术( C 语言版) .人民邮电出版社, 2021指导老师评语及成果评定:欢迎下载精品学习资源成果:指导老师签字:年 月 日欢迎下载