您的当前位置:首页正文

单片机课程设计

2021-05-10 来源:钮旅网



苏州市职业大学

课程设计说明书

名称

单片机控制系统设计实训

2013617日至2013628日共2

学院()

机电工程学院

班级

姓名

学院()负责人

陈洁

系主任

陆春元

指导教师杨洪

目录



一课题介绍
1.课题名称
2.课题要求
3.课程设计要求
二系统设计
1.系统总体方案设计
2.系统硬件设计
1AT89C51单片机最小系统设计
2)步进电机及驱动电路的设计
3)显示电路的设计
4)按键控制电路的设计
3.系统软件设计
1)主程序设计
2)按键判断
3)电机驱动
三、系统调试
1.工具软件简介
1Keil开发环境
2XLISP
2.调试中的问题
3.系统调示结果
附录



一课题介绍
1.课题名称
步进电机正反转控制
2.课题要求
用三个独立按键,设计步进电机的正转、反转和停止。

3.课程设计要求
1)根据课题要求,确定设计方案;
2)在Proteus软件中,绘制系统原理图;
3)在keil中编写单片机程序,结合原理图进行系统调试;(4)记录系统运行结果,书写课程设计报告。

二系统设计
1.系统总体方案设计
通过设定K1K2K3三个按键控制步进电机的转动和转向,电动机采用四相激磁,将通过汇编语言,编写程序以实现步进电机的实验目的,编程时采用制表的方法。正转和反转的 故正转使用四相步进电机正转时序表,脉冲信号频率是相同的,
反转使用四相步进电机反转时序表,从而来控制步进电机接受一定的脉冲,实现连续的正转或反转运动。设计的模块大概可分为如图1所示的几部分。



1系统方框图
2.系统硬件设计
1AT89C51单片机最小系统设计
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8CPU和闪烁存储器组合在单个芯片中,ATMELAT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。

时钟电路的设计

时钟电路是用于产生单片机工作时所必需的时钟信号。时钟是

单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准的,




有条不紊地一拍一拍地工作。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。在本系统中采用外部时钟方式的电路,如图2所示:

2时钟电路
在本设计中的电容C1C2典型值为20pF。外接代内容的值虽然没有严格的要求,但是电容的大小会影响振荡器的稳定性和起振的快速性。同时,在系统中采用12MHz的晶体振荡器来产生时钟脉冲。这样可以满足系统在设计时的机器周期的需要。

复位电路的设计

复位是单片机的初始化操作,只要给RST 引脚加上2 个机器周

期以上的高电平信号,即可使单片机复位。除了进入系统的正常初始化之外,当程序运行出错或是操作错误使系统处于死锁状态时,为了摆脱死锁状态,也需要按复位键重新复位。

在系统中,为了实现上述的两项功能,采用常用的按键电平复



位电路,这样复位键有复位和停止两个功能,如图3所示

3复位电路
从图中可以看出,当系统得到工作电压的时候,复位电路工作在上电自动复位状态,通过外部复位电路的电容充电来实现,只要Vcc的上升时间不超过1ms就可以实现自动上电复位功能。在本系统中,采用10uF的电容和1kΩ的电阻来实现复位电路。当系统出错时,直接按开关实现模拟系统上电复位的功能,从而实现系统重新复位启动。

EA31脚)的功能和接法
51单片机的EA/VPP31脚)是内部和外部程序存储器的选择管脚。当EA保持高电平时,单片机访问内部程序存储器;当EA保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。对于现今的绝大部分单片机来说,其内部的程序存储器容量都很大,



因此基本上不需要外接程序存储器,而是直接使用内部的存储器。在本实验中,EA管脚接高电平VCC,只使用内部的程序存储器。 由上述介绍的三个组成单元可画出单片的最小系统图如图4所示:

4 AT89C51单片机最小系统图
2)步进电机及驱动电路的设计
步进电机介绍
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步进角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。可以通过控制脉冲个数来控制角位移量,



从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

常见的步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。

jhfghhug
下表列出了该电机的一些典型参数:

型号

步距角

相数

电压

电流

电阻

最大静转矩

定位转矩

转动惯量

35BY48S03

7.5

4

12

0.26

47

180

65

2.5

有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,用一块开路输出达林顿驱动器(ULN2003A)来作为驱动正好适合,通过P1.4-P1.7来控制各线圈的接通与切断。开机时,P1.4-P1.7均为高电平,依次将P1.4-P1.7切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。如果要



改变电机的转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接通的顺序。

按照一定的顺序向步进电机的各相分配驱动脉冲。对于四相步进电机,采用单四拍方式,其脉冲的方式和顺序是A-B-C-D-A,依次循环就可以转动。

②ULN2003A介绍
单片机的输出电流太小,不能直接连接步进电机,需要加驱动电路。对于电流小于0.5A的步进电机,可以采用ULN2003A类的驱动IC.

AULN2003A系列驱动器引脚介绍



5ULN2003A系列驱动器引脚图
如图5所示为ULN2003A系列驱动器引脚图,图右边1-7引脚为 输入端,接单片机输入端,右侧10-16引脚为输入端,接步进电机, 引脚9接电源+5V,该驱动器可提供最高0.5A的电流
ULN2003是一个非门电路,包含7个单元,但独每个单元驱动电流最大可达350mA.9脚可以悬空。比如1脚输入,16脚输出,负载接在VCC16脚之间,不用9脚。

BULN2003A的作用
ULN2003A 是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V

ULN2003A 是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。该电路的特点如下:ULN2003A 的每一对达林顿都串联一个



2.7K的基极电阻,5V的工作电压下它能与TTLCMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器。

ULN2003A是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。

ULN2003A是高耐压、大电流、内部由七个硅NPN达林顿管组成
驱动芯片。

CULN2003A驱动器的应用
经常在以下电路中使用,作为:
①.显示驱动
②.继电器驱动
③.照明灯驱动
④.电磁阀驱动
⑤.伺服电机、步进电机驱动等电路中。

ULN2003A的每一对达林顿都串联一个2.7K的基极电阻,5V的工作电压下它能与TTLCMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来
处理的数据。



ULN2003A工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。

ULN2003A的封装采用DIP—16SOP—16
驱动电路设计
由于单片机直接输出的脉冲不足以驱动步进电机正常工作所以需要驱动电路给步进电机提供电源,在本设计中采用型号为ULN2003A的芯片,使步进电机正常工作。驱动信号由P1口的P1.0~P1.3输出,分别与驱动芯片的B1~B4相连,电路如图6所示

6驱动电路图
3)显示电路的设计
显示电路中采用八路指示灯,为了提高八路指示灯显示管的显 示效果,在八路指示灯的输入端接上拉电阻。电路如图7所示:



7显示电路图

4)按键控制电路的设计

开始供电时,步进电机停止。按下K1时,电动机正转;按下K2

时,电动机反转,按下K3时,电动机停止转动。如图8所示:

8按键控制图



5)系统原理总图
见附录
3.系统软件设计
1)主程序设计
主程序需具备的功能,要不断扫描P3口并判断K1K2K3

否闭合,并显示转速及步进电机的旋转方向。

9主程序流程图



2)按键判断

系统的程序如下:

K1EQU P3.2 ;设定P3.2K1表示

K2EQU P3.3 ;设定P3.3K2表示

K3EQU P3.4 ;设定P3.4K3表示

START: MOVP0,#0FFH ;步进电机停止

LOOP:JNB K1,F_Z1 ;是否按K1,是则正转

JNBK2,F_F2 是否按K2,是则反转

JNBK3,F_T3 是否按K3,时则停止

SJMPLOOP

F_T3:

ACALL DELAY

;按K3 消除抖动

JNBK3,$

ACALLDELAY ;放开消除抖动

SJMPSTART

F_Z1:

ACALL DELAY

;按K1 消除抖动

JNBK1,$

ACALLDELAY ;放开消除抖动

SJMPZ_Z1

F_F2:

ACALL DELAY

;按K2 消除抖动

JNBK2,$

ACALLDELAY ;放开消除抖动

SJMPZ_F2

3)电机驱动

Z_Z1:

MOV R0,#00H

;正转,取TAB 初值

Z_ZX:

MOV A,R0

;取TAB

MOVDPTR,#TAB ;存表

MOVCA,@A+DPTR

JZZ_Z ;是否取到结束值

MOVP0,A ;输出至P0,正转

JNB K3,F_T3
JNB K2,F_F2

;是否按K3,是则停止
;是否按K2,是则反转

ACALL DELAY ;步进电机转速

INC R0 ;取下一个值

SJMP Z_ZX

Z_F2:

MOV R0,#05

;反转,取TAB 初值

Z_F21:

MOV A,R0

;取TAB

MOV DPTR,#TAB ;存表



MOVCA,@A+DPTR
JZZ_F2 ;是否取到结束值
MOVP0,A ;输出至P0,反转

JNB K3,F_T3
JNB K1,Z_Z2

;是否按K3,是则停止
;是否按K1,是则正转

ACALL DELAY ;步进电机转速

INC R0 ;取下一个值

SJMP Z_F21

RET

1 四相步进电机正转时序表

2 四相步进电机反转时序表

3







33H






99H






0CCH






66H






三、系统调试

1.工具软件简介

1Keil 开发环境

随着微电子技术的迅速发展,单片机在工业控制、消费电子、家



用电器、通信、办公自动化、医疗器械等方面应用越来越广泛。单片机作为嵌入式系统的核心器件,其应用系统设计包括硬件电路设计和软件电路设计两个方面,学习和应用过程中必须软件、硬件结合。单片机系统调试通常分为软件调试、硬件测试和整机联调三个部分。

单片机自身不具备开发功能,必须借助于开发工具。目前,国内外推出了许多基于个人计算机的单片机软或硬开发平台。硬件开发平台方面诸如开发板、实验箱、仿真器、编程器、示波器、逻辑分析仪等,但因其价格不菲,开发过程繁琐。因此在软件支持的前提下,应用最普遍的是软件仿真开发平台,其方便、快捷、节约。

单片机应用系统软件仿真开发平台有两个常用的工具软件:KeilProteusISISKeil主要用于单片机源程序的编辑、编译、链接以及调试;ProteusISIS 主要用于单片机硬件电路原理图的设计以及单片机应用系统的软、硬件联合仿真调式。

2XLISP
将单片机程序写入后接入试验仪,使用XLISP对其进行调试,首

先打开,跳出如图10所示的图像,打开标题栏的选项,选择串

口设置,将串口设定为COM3,如图11所示,再按下键,将



上一次的记录擦除掉,然后再按下键,找到其对应的HEX文件,

如图12所示,最后打开键,对程序进行调试。

10 XLISP程序图



11串口选择图

12HEX文本图



2.调试中的问题
Keil软件环境中,输入汇编程序,编译生成HEX文件,通过XLISP软件将程序代码下载到AT89C51单片机中,进行系统调试。

1)当将延时时间定为20ms时,按下K1,步进电机没有正转。原因及解决方法:有一根与电机驱动连接的导线接触不到位;调整一

下即可

2)经过调试,可得到步进电机能实现正常运转的时间范围为12~255ms,当时间为12ms时,步进电机的转速最大,同时八路指示灯的低四位看不到灯的变化情况;当时间为255ms时,步进电机的转速最小,同时八路指示灯的低四位灯的变化情况很明显,闪烁的速度

很快;当将时间定为100ms时,步进电机的转速相对于时间为255ms时的速度要大很多,又相对于12ms的时间的转速要小很多,所以,此时八路指示灯的低四位的变化情况要明显很多,看到的现象是八路

指示灯的D0.0D0.3的灯依次被点亮并实现循环发光。

3.系统运行结果
当按下K1按键后,电动机正转,八路指示灯的低四位出现如图9所示的现象。



9 步进电机正转图
在正转时,如果按下K3键,电机会停止转动,八路指示灯的低四位也将不发光。

按下K2键,步进电机开始反转工作,把八路指示灯的低四位依次被点亮,并循环发光。现象如图10所示。

10 步进电机反转图



附录



因篇幅问题不能全部显示,请点此查看更多更全内容