单片机课程设计报告

时间:2024.4.20

单片机课程设计报告

步进电机控制设计

日期:    20##.6.18-6.21       

目录

1、概要

2、课程设计目的及要求

3、整体系统分析

4、硬件系统分析

5、软件系统分析

6、调试结果

7、结论

附一:元器件清单

附二:源程序

1、概要

步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。

本次课程设计主要采用AT89S52芯片,用汇编语言编写出电机的正转、反转、加速、减速、停止程序,通过单片机、电机的驱动芯片ULN2004以及相应的按键实现以上功能,并且步进电机的工作状态要用相应的发光二极管显示出来。控制系统主要由硬件设计和软件设计两部分组成。其中,硬件设计包括单片机的最小系统模块、电源模块、控制模块、步进电机ULN2003A驱动模块、彩灯显示模块5个功能模块的设计。并且通过仿真控制系统对硬件、软件进行了调试和改善,实现了上述功能。本系统具有智能性、实用性及可靠性的特点。

2. 课程设计目的及要求

2.1 课程设计目的

l  增进对单片机的感性认识,加深对单片机理论方面的理解;

l  掌握单片机的内部功能模块的应用,如定时器/计数器、中断、存贮器、I/O口、A/D转换等;

l  了解和掌握单片机应用系统的软硬件设计过程及实现方法。

2.2 课程设计要求

l  设计一个步进电机控制器,要求用多个按键控制电机的启动/停止、加速、减速、反转等控制功能。

l  用彩灯显示电机的转动状态,如加速就控制彩灯快速闪烁,减速则控制彩灯慢速闪烁等。

3. 整体系统分析

3.1步进电机控制工作原理

步进电机实际上是一个数字\角度转换器,也是一个串行的数\模转换器。步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4 个方面。从结构上看 ,步进电机分为三相、四相、五相等类型 ,本次设计的是四相电机。四相步进电机的工作方式有单四拍、双四拍和单双八拍3 种 。

3.1.1步进电机的启停控制

步进电机由于其电气特性,运转时会有步进感 ,即振动感。为了使电机转动平滑 ,减小振动 ,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波 ,可以减小步进电机的步进角 ,提高电机运行的平稳性。在步进电机停转时 ,为了防止因惯性而使电机轴产生顺滑 ,则需采用合适的锁定波形 ,产生锁定磁力矩 ,锁定步进电机的转轴 ,使步进电机的转轴不能自由转动。

3.1.2步进电机的转向控制

如果给定工作方式正序换相通电 ,步进电机正转。若步进电机的励磁方式为单四拍,即 A -B –C - D。如果按反序通电换相 ,即则电机就反转。

3.1.3步进电机的速度控制

如果给步进电机发一个控制脉冲 ,它就转一步 ,再发一个脉冲 ,它会再转一步。2 个脉冲的间隔越短 ,步进电机就转得越快。调整送给步进电机的脉冲频率 ,就可以对步进电机进行调速。

3.1.4步进电机的换向控制

步进电机换向时 ,一定要在电机减速停止或降到突跳频率范围之内再换向 ,以免产生较大的冲击而损坏电机。换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第1 个脉冲前发出。对于脉冲的设计主要要求要有一定的脉冲宽度(一般不小于5μs)、脉冲序列的均匀度及高低电平方式。在某一高速下的正、反向切换实质包含了减速→换向→加速3 个过程。

3.2系统设计思路

   我们本次设计的步进电机控制系统主要有单片机89S52、ULN2003A步进电机驱动芯片、四相永磁式步进电机、LED显示管及其其他相关元件组成。可以通过开关来控制系统的启/停工作,并通过LED显示管的工作状态显示步进电机的正、反转和前进、后退的状态。其总体设计框图1所示:

 

图1 系统设计框图

4. 硬件系统设计

4.1主要元件简介

4.1.1  AT89S52单片机

AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU在掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

图2. AT89S52引脚图

4.1.2 ULN2003A驱动芯片

ULN2003 是高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它 能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来 处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。

图 3. ULN2003A引脚图

4.2模块分析

4.2.1 时钟晶振电路

时钟电路是整个系统的心脏,控制着步进电机工作节奏。单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。89S52单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式. 图4中的外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30PF左右,晶振频率选12MHz。                                                     

图4 时钟电路

4.2.2 复位电路

为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。

图5 复位电路

4.2.3 步进电机驱动电路

本设计采用ULN2003A芯片。ULN2003 是高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它 能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来 处理的数据。ULN2003A 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。

其中1B、2B、3B、4B分别与P1.0、P1.1、P1.2、P1.3相接

图6 电机驱动电路

4.2.4 显示电路

由于系统显示的内容比较简单,所以显示选用发光二级管既方便又经济。当步进电机开始工作的时候,发光二极管发光;当步进电机不工作时,发光二极管不发光;当步进电机加速运行时,发光二级管快速闪烁;当步进电减速运行时,发光二极管减速闪烁。

图7 显示电路

4.2.5 系统总电路

综合以上各模块,可得到总电路图:

图8 电路总体仿真图

5.软件系统设计

按硬件图连接好电路以后,开始用汇编语言写程序,并运行程序,程序编写程序流程图:(源程序见附录)

单片机课程设计报告

主程序流程图

单片机课程设计报告                        

键盘处理程序流程图

6.调试结果

     完成焊接任务后,接着就要对系统进行调试了。

     连接并检查完基本线路后,我们将程序烧写到芯片上,但是开始我们设计的程序却烧写不上,我们以为是我们焊接的电路出现了问题,但检查后电路没问题,之后才知道我们用的芯片烧写器不行,换了个烧写器后程序便能够正确烧写进去了。然后就按下各个开关按键进行测试,最后电机和显示器都基本上按照设计要求工作了。最后的调试之所以能够如此顺利,与我们之前遇到的一系列问题和我们组员的辛勤付出是密不可分,最终电机能按要求转起来了就是对我们最好的鼓励!

7.总结

本次单片机课程设计可谓是困难重重,在设计制作的过程中确实遇到了很多问题,有的通过我们组员的努力最终解决了,有的最后没有解决。

其中最大的一个问题就是软件程序的编写,在我们确定设计方案后,就开始用汇编语言编写程序了,在我们开始自己编写之前,通过网络查阅了一些相关的资料,也参考了一些其他成功的程序。但在我们编好之后,在进行计算机仿真测试的时候,总是不成功,不是电源通不上电,就是电机的转动状态不受控制,不能实现加速、减速、正反转等问题,最后,我们只好寻找指导老师寻求指导帮助。在这一点上我们没有做成功,心中难免有些许遗憾。

其中遇到的另一个问题就是我们在进行调试时,程序不能烧写到芯片上,不过通过我们用排除法一步步排查后发现是由于烧写器功能的缺失,并不是硬件和软件问题,换了个烧写器后问题也就迎刃而解了。

通过本次课程设计,我们深深体会到了理论知识学习的重要性,如果没有扎实的理论知识作为奠基,那么在今后的实践运用中就像是无头之蝇,没有一点头绪,不知从何入手,最终只能求助于他人,被动地进行工作。不管对以后的工作还是学习都起不到积极的促进作用。在本次课程设计活动中,我们团队也体会到了分工协作的重要性,主要负责写程序,焊接电路,负责撰写设计报告,每个组员分工明确,遇到个人难以解决的问题就一起商量讨论,组员之间既独立又不失联系协作,极大的提高了工作效率。这点是值得我们在今后的工作和学习中好好运用的。

附一 元器件清单

附二:源程序

ORG    00H

START:  MOV  DPTR , #TAB1

       MOV  R0,  #03H

       MOV  R1 ,  #4H

       MOV  R4,  #00H

       MOV  P1,  #03H

WAIT:  MOV  P1 ,  R0

       MOV  P0,  #0FFH

       JNB   P0.4,TIZ

       JNB   P0.0,POS

       JNB   P0.1,NEG

       SJMP  WAIT

POS :   MOV  A,R4

       MOVC  A,@A+DPTR

         ACALL  DELAY

       INC  R4

       AJMP  KEY

NEG:   MOV   R4,#6

       MOV   A,R4

       MOVC  A,@A+DPTR

       MOV   P1,A

       ACALL  DELAY

      AJMP  KEY

KEY:   MOV  P0,#0FFH

      JB     P0.4,ZZ1

      AJMP  TIZ

TIZ:   MOV   P1,#00H

      SETB   P0.5

      SETB   P0.6

      AJMP  KEY

ZZ1: JB     P0.0,FZ1

      CJNE   R4,#8,LOOPZ

      MOV   R4,#0

LOOPZ: MOV   A,R4

      MOVC  A,@A+DPTR

      MOV   P1,A

      SETB   P2.1

      CPL    P2.0

      JNB    P0.2,JIASUZ

      JNB    P0.3,JIANSUZ

      ACALL  DELAY

      INC    R4

      AJMP  KEY

FZ1:

      JB    P0.1,KEY

      CJNE  R4,#255,LOOPF

      MOV  R4,#8

LOOPF: DEC   R4

      MOV  A,R4

      MOVC  A,@A+DPTR

      MOV   P1,A

      SETB   P2.0

      CPL    P2.1

      JNB    P0.2,JIASUF

      JNB    P0.3,JIANSUF

      ACALL  DELAY

      AJMP   KEY

DELAY:MOV   A,R1

      MOV   R6,A

DD1: MOV  R5,#6H

DD2:MOV   R7,#0

DD3:DJNZ   R7,DD3

DJNZ    R5,DD2

 DJNZ   R6,DD1

RET

JIASUZ:

ACALL   DELAY1

CJNE    R1,#02,L1

JMP     L2

L1:   DEC    R1

L2:    JMP    LOOPZ

JIANSUZ:ACALL  DELAY1

       CJNE   R1,#08H,L3

       JMP L4

L3:   INC   R1

L4:   JMP  LOOPZ

JIASUF:

      ACALL  DELAY1

      CJNE   R1,#02H,L5

      JMP L6

L5:  DEC R1

L6:    JMP    LOOPF

JIANSUF:ACALL  DELAY1

       CJNE   R1,#08H,L7

       JMP L8

L7:   INC    R1

L8:   JMP LOOPF

DELAY1:

       MOV  R6,#20H

DD4:  MOV  R5,#02H

DD5:  MOV  R7,#0

DD6:  DJNZ  R7,DD6

       DJNZ   R5,DD5

       DJNZ   R6,DD4

       RET

TAB1:DB 02H ,06H,04H,0CH

      DB 08H,09H,01H,03H

END

 

更多相关推荐:
《单片机课程设计》报告

机械与车辆学院单片机课程设计报告20xx20xx学年第一学期课程设计题目水塔水位控制系统姓名学号班级指导老师职称时间成绩单片机课程设计考查评分表2目录一课程设计性质和目的4二课程设计的内容及要求41硬件设计42...

单片机课程设计报告

物理与机电学院课程设计报告课程名称:单片机课程设计系部:物理与机电工程学院专业班级:07级电子信息工程(1)班完成时间:20XX年5月24日~28日报告成绩:【摘要】单片机自1976年由Intel公司推出MCS…

51单片机课程设计报告。

成绩单片机原理及应用课程设计课程名ltlt单片机原理及应用gtgt学部专业学号姓名指导教师日期20xx年06月一设计任务与要求1任务制作并调试51单片机学习板2要求1了解并能识别学习板上的各种元器件会读元器件标...

流水灯单片机课程设计报告

井冈山大学机电工程学院单片机课程设计报告课程名称单片机设计题目流水灯姓名覃家应陈东阳专业生物医学工程班级10级医工本一班学号100615062指导教师王佑湖20xx年11月10日目录1引言211设计任务212设...

单片机课程设计报告范例

单片机课程设计示例交通灯控制系统设计一总体设计1设计要求交通灯的任务要求为模拟十字路口的交通灯的亮灭及闪烁基本工作原理根据交通灯的亮灭情况可以分为四种状态利用定时计数器每20秒产生一次中断每产生一次中断后由是否...

51单片机电子时钟课程设计报告

JINGCHUUNIVERSITYOFTECHNOLOGY单片机原理及应用课程设计报告题目电子时钟专业电气工程及其自动化班级20xx级电工2班学号20xx401020xx2姓名王贞指导教师邹云峰提交日期20xx...

基于51单片机课程设计报告

课题:基于51单片机的数字温度计设计专业:电气工程及其自动化班级:4学号:***设计日期:20XX/6/3成绩:重庆大学城市科技学院电气学院基于51单片机数字温度计设计报告一、设计目的作用本设计是一款简单实用的…

单片机课程设计报告及程序

学校单片机课程设计题目1616点阵屏专业班级姓名学号指导教师姓名职称机电工程系20xx年月日目录一任务设设计11设计任务112设计要求1二设计方案21显示部分12l2电源模块1三总体方案31工作原理332总体设...

单片机课程设计报告

课程设计报告课程名称微机原理课程设计题目基于单片机的出租车计费系统设计学院环境与化学工程系过程装备与测控工程专业班级学号学生姓名起讫日期指导教师摘要出租车计价器是乘客与司机双方的交易准则它是出租车行业发展的重要...

单片机课程设计报告书写要求

单片机原理与应用课程设计题目1616点阵实验专业班级电气化09级2班学号20xx20xx姓名刘晓飞20xx年12月10日一设计依据16x16点阵需要32个驱动分别为16个列驱动及16个行驱动每个行与每个列可以选...

51单片机电子时钟课程设计报告

第一部分设计任务和要求11单片机课程设计内容利用STC89C51单片机和LCD1602电子显示屏实现电子时钟可由按键进行调时和1224小时切换12单片机课程设计要求1能实现年月日星期时分秒的显示2能实现调时功能...

单片机课程设计报告

河南理工大学《单片机应用与仿真训练》设计报告题目四路定时控制器姓名:学号:专业班级:电子信息工程指导老师:所在学院:电气工程与自动化学院20XX年1月08日摘要随着当今时代的发展,人们对生活水平的要求越来越高,…

单片机课程设计报告(45篇)