XXXXX学院单片机课程设计报告
基于单片机的直流电机调速系统设计
学生姓名 徐X
学 号 09103XXX
专 业 计算机科学与技术
班 级 2009级1班
指导教师 张X
学 部 计算机科学与电气工程
课程设计时间 2012年6月18日
XXXXX学院电子信息工程单片机课程设计报告
基于单片机的直流电机调速系统设计
摘 要
摘要:本次设计是针对计算机控制技术综合应用的考察,我们小组选择了pwm脉宽调制这一课题,通过单片机产生PWM控制信号从而实现对直流电动机的速度。本设计主要介绍了该系统的硬件以及软件具体设计,并对硬件方框图和软件流程图作了一定的描述。根据硬件方框图设计了以下功能模块STCC52芯片,系统核心控制模块,通过P1.0~ P1.1端口输出两互补的PWM脉冲;,通过L298全桥驱动芯片,对脉冲进行处理,放大,输出控制电机的转速。4个二极管组成的H桥主要起保护作用。从而构成了一个比较完整有效的直流电动机调速控制系统。系统设计合理、功能完善、性能优越,在实际生产中应用效果良好,具有控制方便、组态简单和灵活性大等优点
关键词: PWM信号;;调速;占空比;单片机;
-I-
目 录
摘 要 ....................................................................................................................................... I 第1章 绪 论 .......................................................................................................................... 3 1.1 本设计的意义 .................................................................................................................. 3 1.1.1 直流电机的驱动原理 ............................................................................................... 3 1.1.2 PWM调速直流电机的基本原理 ............................................................................... 3 1.2 本设计的功能 .................................................................................................................. 4 1.3 本设计的要求 .................................................................................................................. 4 第2章 本设计系统结构介绍 ...................................................................................................... 5 2.1 系统结构框图及工作流程介绍 ...................................................................................... 5 2.2 模块1作用介绍 ................................................................................................................ 5 2.3 模块4作用介绍 ................................................................................................................ 5 2.4 本章小结 ........................................................................................... 错误!未定义书签。 第3章 系统硬件电路设计 .......................................................................................................... 6 3.1 单片机最小系统设计 ...................................................................................................... 6 3.1.1 单片机介绍 ............................................................................................................... 7 3.1.2 单片机时钟电路介绍 ............................................................................................... 9 3.1.3 单片机复位电路介绍 ............................................................................................... 9 3.2 串行通信电路介绍 ........................................................................................................ 10 3.2.1 MAX232串口设计的单电源电平转换芯片 ........................................................... 10 3.2.2 电源稳压器 ............................................................................................................. 12 3.2.3 L298芯片 .................................................................................................................. 13 3.4 本章小结 ....................................................................................................................... 15 第4章 系统软件调试环境介绍 ................................................................................................ 16 4.1 编程软件介绍 ................................................................................................................ 16 4.1.1 软件功能 ................................................................................................................. 17 4.1.2 软件应用流程 ......................................................................................................... 17 4.2 程序下载软件介绍 ........................................................................................................ 29 4.2.1 软件功能 ................................................................................................................. 29
4.2.2 软件应用流程 ............................................................................ 错误!未定义书签。 4.3 本章小结 ........................................................................................................................ 31 第5章 系统程序设计 ................................................................................................................ 32 5.1 系统程序设计流程图 .................................................................................................... 32 5.2 XX程序模块详细流程图 ................................................................... 错误!未定义书签。 5.2.1 程序流程图对应程序代码 ..................................................................................... 32 5.3 XX程序模块详细流程图 ................................................................................................ 33 5.3.1 程序流程图对应程序代码 ..................................................................................... 33 5.4 本章小结 ........................................................................................................................ 36 结 论 .................................................................................................................................... 36 参考文献 .................................................................................................................................... 37 附 录 .................................................................................................................................... 39 正文文字字体格式说明(此页到最后不需要打印,打印前删除) .................................... 39
单片机课程设计题目(小二号黑体字居中书写)
第1章 绪 论
1.1 本设计的意义
本文设计的直流PWM调速系统采用的是时间间隔调速。系统主电路采用H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平台之上,运用c语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H电路的通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。
本设计以SCTC52单片机为核心,以按钮作为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求。在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
本文介绍了直流电机的工作原理、脉宽调制(PWM)控制原理和H桥电路基本原理设计了驱动电路的总体结构。
1.1.1 直流电机的驱动原理
由STCC52编程控制L298芯片的OTU1、OUT2管脚的输出,来控制流入电机的电流方向。从而达到控制电机的正反转。 1.1.2 PWM调速直流电机的基本原理
PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”。
如下图所示:
t1Tt2
设电机始终接通电源时,电机转速最大为Vmax,设占空比为Dt1/T,则电机的平均速度为VaVmax*D,其中Va指的是电机的平均速度;Vmax 是指电机在全通电时的最大速度;Dt1/T是指占空比。
由上面的公式可见,当我们改变占空比Dt1/T时,就可以得到不同的电机平均速度Vd,从而达到调速的目的。严格来说,平均速度Vd 与占空比D并非严格的线性关系,但是在一般的应用中,我们可以将其近似地看成是线性关系。
通过对单片机编程来控制P10口来控制L298芯片的始能端ENA。由ENA端来控制L298的工作情况。当ENA处在高电平时OUT1或OUT2输出高电平。当ENA处于低电平时OUT1或OUT2输出低电平。由此来控制OUT1或OUT2输出矩形波的形状。达到对电机调速的目的。
1.2 本设计的功能
本文设计的直流PWM调速系统采用的是调压调速。系统主电路采用大功率GTR为开关器件、H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平台之上,运用汇编语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H电路中的GTR通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。
本设计以STCC52单片机为核心,以键盘作为输入达到控制直流电机的启停、速度和方向,完成了基本要求和发挥部分的要求。在设计中,采用了PWM技术对电机进行控制,通过对占空比的计算达到精确调速的目的。
1.3 本设计的要求
1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。 2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。
3)设计一个4个按键的键盘。
K1:启动”。 K2:“正转/反转”。 K3:“加速”。
4)手动控制。在键盘上设置两个按键----直流电动机加速和直流电动机减速键。在手动状态下,每按一次键,电动机的转速按照约定的速率改变
K4:“减速”。 K5:“停止”。
XXXXX学院电子信息工程单片机课程设计报告
第2章 本设计系统结构介绍
2.1 系统结构框图及工作流程介绍
通过不同按钮的控制引发中断。从而控制单片机的程序运行。对单片机进行指定时间间隔,对L298的ENA端控制来控制电机的速度。对L298的IN1 IN2端控制来控制电机的运行方向。
模块1 L298芯片 模块4 STCC52 模块3 按键按钮 2.2 模块1作用介绍
L298芯片。
用来控制电流的方向,电流的持续间隔。
模块2 直流电机
2.3 模块2作用介绍
电机。为演示部分。
2.4 模块3作用介绍
把指令传给单片机
2.5 模块4作用介绍
整个单片机系统的处理部分,负责整个电路的运转,工作。
2.6 本章小结
该电路对STCC82进行编程控制,由P10 ,P11,P12分别控制L298的始能端ENA,IN1,IN2.来控制流过电机电流的方向和持续时间
-5-
XXXXX学院电子信息工程单片机课程设计报告
第3章 系统硬件电路设计
3.1 52单片机最小系统设计
52单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好
P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。
标识符号 地址 寄存器名称 P3 0B0H I/O口3寄存器
PCON 87H 电源控制及波特率选择寄存器 SCON 98H 串行口控制寄存器 SBUF 99H 串行数据缓冲寄存器 TCON 88H 定时控制寄存器
TMOD H 定时器方式选择寄存器 TL0 8AH 定时器0低8位 TH0 8CH 定时器0高8位 TL1 8BH 定时器1低8位 TH1 8DH 定时器1高8位
-6-
XXXXX学院电子信息工程单片机课程设计报告
3.1.1 单片机介绍
(1)STCC52单片机的基本组成
STCC52单片机由CPU和8个部件组成,它们都通过片内单一总线连接,其基本结构依然是通用CPU加上外围芯片的结构模式,但在功能单元的控制上采用了特殊功能寄存器的集中控制方p1.0VCC140法。 p1.1p0.0239(2)STCC52单片p1.2p0.1338机引脚图及功能介绍 p1.3p0.2437 p1.4p0.3536P0.7---P0.0:这8个p1.5p0.4635引脚共有两种不同的功p1.6p0.5C51347能,分别使用于两种不同p1.7p0.6833RST/VPDp0.7的情况。第一种情况是932EA/VPPSTCC52不RXD/p3.0带片外存储1031TXD/p3.1ALE/PROG以作为通用器,P0口可1130p3.2PSENI/O口使用,P0.7---P0.01229p3.3p2.7用于传送CPU的I/O数据。1328p3.4p2.6第二种情况是STCC521427p3.5p2.5带片外存储器,P0.7---1526p3.6p2.4P0.0在CPU访问片外存储1625p3.7p2.3器时先是用于传送片外存1724XTAL2p2.21823储器的低8位地址,然后XTAL1p2.11922传送CPU对片外存储器的VSSp2.02021读写数据。 -7- XXXXX学院电子信息工程单片机课程设计报告
P2.7---P2.0:这组引脚的第一功能可以作为通用的I/O使用。它的第二功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但是并不能像P0口那样还可以传送存储器的读写数据。
P3.7---P3.0:这组引脚的第一功能为传送用户的输入/输出数据。它的第二功能作为控制用,每个引脚不尽相同,如表3-1所示:
表3-1 STCC52芯片引脚P3口第二功能及说明 P3口的位 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD TXD 注释 串行数据接收口 串行数据发送口 外中断0输入 外中断1输入 计数器0计数输入 计数器1计数输入 外部RAM写选通信号 外部RAM读选通信号 INT0 INT1 T0 T1 ____________WR _________RD VCC为+5V电源线,VSS为接地线。 _________ALE/PROG:地址锁存允许/编程线,配合P0口引脚的第二功能使用,在访问片外存储器时,STCC52CPU在P0.7---P0.0引脚线上输出片外存储器低8位地址的同时还在ALE/PROG线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7---P0.0引脚线去传送随后而来的片外存储器的读写数据。在不访问片外存储器时,STCC52自动在ALE/PROG线上输出频率为1/6 fOSC的脉冲序列。该脉冲序列可以用作外部时钟源或者作为定时脉冲源使用。
______________________EA / VPP:允许访问片外存储器/编程电源线,可以控制STCC52使用片内ROM
________还是片外ROM。如果EA=1,那么允许使用片内ROM;如果EA=0,那么允许使用片外ROM。
PSEN:片外ROM选通线,在执行访问片外ROM的指令MOVC时,STCC52自动在
________PSEN线上产生一个负脉冲,用于片外ROM芯片的选通。其他情况下,PSEN线均为高电平封锁状态。
RST/VPD:复位备用电源线,可以使STCC52处于复位工作状态。
XTAL1和XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接STCC52片内OSC的定时反馈电路。石英晶振起振后,应能在XTAL2线上输出一个3V左右的正弦波,以便于STCC52片内的OSC电路按石英晶振相同频
-8-
________________XXXXX学院电子信息工程单片机课程设计报告
率自激振荡,电容C1、C2可以帮助起振,调节它们可以达到微调fOSC的目的。
3.1.2 单片机时钟电路介绍
时钟电路是计算机的心脏,它控制着计算机的工作节奏。STCC52单片机允许的时钟频率是因型号而异的典型值为12MHZ
STCC52内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。STCC52有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器。晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率)。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为30pF。
3.1.3 单片机复位电路介绍
计算机在启动运行时都需要复位,使处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。
STCC52单片机有一个复位引脚RST,当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,STC52保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都 输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。
单片机采用的复位方式是自动复位方式。对于STC52单片机只要接一个电容至VCC即可。在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使STC52有效的复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间若为10ms,振荡器起振的时间和频率有关。10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电应保持20ms以上的高电平。RC时间常数越大,上电RST端保持高电平的时间越长。
若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常转。
-9-
XXXXX学院电子信息工程单片机课程设计报告
图3-1-3
STCC52单片机在本设计中的电路示意:图3-1-3
3.2 串行通信电路介绍
3.2.1 MAX232串口设计的单电源电平转换芯片
AX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
图3-2-1-1
MAX232引脚图
第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据
-10-
XXXXX学院电子信息工程单片机课程设计报告
通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。15脚GND、16脚VCC(+5v)。 编辑本段主要特点
1、符合所有的RS-232C技术标准 2、只需要单一 +5V电源供电
3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-
4、功耗低,典型供电电流5mA 5、内部集成2个RS-232C驱动器
6、高集成度,片外最低只需4个电容即可工作。
注意,由于RS232电平较高,在接通时产生的瞬时电涌非常高,很有可能击毁max232,所以在使用中应尽量避免热插拔。
电池供电RS-232系统 接口转换
低功耗调制解调器 多点RS-232网络
MAX220–MAX249系列线驱动器/接收器,专为EIA/TIA-232E以及V.28/V.24通信接口设计,尤其是无法提供±12V电源的应用。
这些器件特别适合电池供电系统,这是由于其低功耗关断模式可以将功耗减小到5µW以内。MAX225、MAXX233、MAX235以及MAX245/MAX246/MAX247不需要外部元件,推荐用于印刷电路板面积有限的应用。
1.对于低电压、集成ESD应用
MAX3222E/MAX3232E/MAX3237E/MAX3241E/MAX3246E:+3.0V至+5.5V、低功耗、最高1Mbps、真正的RS-232收发器,使用4个0.1µF外部电容(MAX3246E提供UCSP™封装)
2.对于低成本应用
MAX221E:±15kV ESD保护、+5V、1µA、单路RS-232收发器,带AutoShutdown™
MAX232串口设计的单电源电平转换芯片 MAX232串口设计的单电源电平转换芯片
-11-
XXXXX学院电子信息工程单片机课程设计报告
图3-1-2-2
在本设计中MAX232芯片的作用是点平转换。该芯片在本设计中的电路图为图3-1-2-2。
3.2.2 电源稳压器
电子产品中,常见的三端稳压集成电路有正电压输出的78 ×× 系列和
负电压输出的79××系列。顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。它的样子象是普通的三极管,TO- 220 的标准封装,也有9013样子的TO-92封装。
用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。
因为三端固定集成稳压电路的使用方便,电子制作中经常采用 注意事项
在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率
-12-
XXXXX学院电子信息工程单片机课程设计报告
的条件下不用)。当稳压管温度过高时,稳压性能将变差,甚至损坏。
当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,但应用时需注意:并联使用的集成稳压电路应采用同一厂家、同一批号的产品,以保证参数的一致。另外在输出电流上留有一定的余量,以避免个别集成稳压电路失效时导致其他电路的连锁烧毁。
如图3-2-2-1从正面看①②③引脚从左向右按顺序标注,接入电路时①脚电压高于②脚,③脚为输出位。如对于78**正压系列,①脚高电位,②脚接地,;对与79**负压系列,①脚接地,②脚接负电压,输出都是③脚。如附图所示。
此外,还应注意,散热片总是和接地脚相连。这样在78**系列中,散热
片和②脚连接,而在79**系列中,散热片却和①脚连接。
图3-2-2-1
在本设计中该芯片的应用电路图如图3-2-2-2
图3-2-2-2
3.2.3 L298芯片
L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相
和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含
-13-
XXXXX学院电子信息工程单片机课程设计报告
二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准
TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且
可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号,
但在本驱动电路中用L297 来提供时序信号,节省了单片机IO 端口的使用。L298N 之接脚如图9 所示,Pin1 和Pin15 可与电流侦测用电阻连 接来控制负载的电路; OUTl、OUT2 和OUT3、OUT4 之间分别接2 个步进电机;input1~input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转。
图9 L298图
L298芯片;产生控制电机速度脉冲、正反转电流。在本设计中,该芯片的电路图如下图3-2-3-1所示。
-14-
XXXXX学院电子信息工程单片机课程设计报告
图3-2-3-1
3.4 本章小结
由MAX232串口设计的单电源电平转换芯片将串口输送过来的程序信息转换为单片机所能接受的数据,由按钮来控制52单片机进行定时设置来控制L298芯片的工作状态来控制电机的正反转,加速,减速。
-15-
XXXXX学院电子信息工程单片机课程设计报告
第4章 系统软件调试环境介绍
4.1 编程软件介绍
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
C51工具包的整体结构,其中Vision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
Keil51的编译环境如图4-1所示。 图中:
标题栏:显示当前编译的文件
菜单条:有十项菜单可供选择,相应的所有操作命令均可在此菜单中查找; 工具栏:常用命令的快捷图标按钮;
管理窗口:显示工程文件的项目、各个寄存器值的变化、参考资料等; 信息窗口:显示当前文件编译、运行等相关信息; 工作窗口:各种文件的显示窗口。
-16-
XXXXX学院电子信息工程单片机课程设计报告
图 4-1 Keil编译环境
4.1.1 软件功能
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 4.1.2 软件应用流程
Keil 51 编译指南:
第1步: 打开Keil51软件,首先弹出一个开机启动画面。如图4-2:
-17-
XXXXX学院电子信息工程单片机课程设计报告
图4-2 开机启动画面
第2步: 然后进入Keil51的开发界面。下面简要介绍一下Keil51开发环境中各个区域的功能。
Keil51开发环境可以分为四个区域,分别为:菜单条、项目文件管理窗口、代码编译窗口和代码编译信息窗口四个部分。菜单条分为十项,所有的命令都可以在这里找到。下面的命令是一些常用的菜单命令,如文件的打开、关闭及保存。其中编译命令最为常用。
中间靠左是项目文件管理窗口,这里可以看到当前项目中所包含的所有带编译的文件。项目文件管理窗口的右侧是代码编译窗口,这事我们最主要的工作区域。
最底层显示了代码编译的信息。当代码有语法错误时,可以在这里轻松的找到问题的所在。
第3步:下面以建立一个简单的项目为例,来说明Keil51开发项目的一般方法。单击Project菜单项,选择New Project项。如图4-3:
-18-
XXXXX学院电子信息工程单片机课程设计报告
选择新建工程
图4-3 新建项目
第4步:此时弹出Create New Project对话框,选择合适的路径口,在文件名一栏中填入新工程的名字。单击保存。如图4-4:
-19-
XXXXX学院电子信息工程单片机课程设计报告
新建工程新建文件并命名保存
图 4-4 新建文件并命名
第5步: 根据所用的器件,选择CPU的型号,单击确定。如图4-5:
-20-
XXXXX学院电子信息工程单片机课程设计报告
选择CPU型号 点击确定
图 4-5 选择CPU型号
第6步:Keil51询问是否生成默认的配置文件,这个可选可不选,这里选定。单击Yes,观察项目文件管理窗口的变化。
第7步:在File菜单下单击New选项,新建文件。此时在代码窗口出现一“Text1”空白文档。如图4-6:
-21-
XXXXX学院电子信息工程单片机课程设计报告
选择新建
图 4-6 新建文件
第8步: 在“Text1”中编辑完代码后,单击File菜单中的保存项,弹出保存对话框。保存名写为text.c。单击保存。注意在对文件命名时必须加扩展名。如图4-7:
-22-
XXXXX学院电子信息工程单片机课程设计报告
文件名 点击保存
图 4-7 命名文件并保存
第9步: 在项目导航栏中Source Group 上单击右键,选Add File to Group ‘Source Group 1’。如图4-8:
-23-
XXXXX学院电子信息工程单片机课程设计报告
选择这项
图 4-8 增加文件到组
第10步: 此时弹出Add File 对话框。选中刚才保存的text.c文件。单击Add。 此时在项目文件管理窗口中就会出现刚才所添加的文件text.c。如图4-9:
-24-
XXXXX学院电子信息工程单片机课程设计报告
点击add
图 4-9 添加文件
第11步: 单击快捷菜单栏中的编译按钮,可以编译程序。
第12步: 单击Project菜单项,选择Option for Target ‘Target 1’选项。 在弹出的对话框中可以对Project进行总体配置。如图4-10:
-25-
XXXXX学院电子信息工程单片机课程设计报告
图 4-10 进行总体配置
第13步: 选择Output 选项卡,单击Create HEX File ,代码输出格式应为HEX-80 。如图4-11:
-26-
XXXXX学院电子信息工程单片机课程设计报告
选择生成 选择HEX-80
图 4-11 建立HEX文件
第14步: 单击确定后,并重新编译。可以看到编译成功之后,Build 选项卡里又多了一项。这是生成的HEX 文件。
第15步: 单击Debug 菜单项中的Start/Stop Debug Session 命令或工具栏中的进入调试界面。如图4-12:
-27-
XXXXX学院电子信息工程单片机课程设计报告
选择进入调试
图 4-12 进行调试
第16步: 单击调试界面Debug 菜单项中的Go命令或工具栏中的单击Stop Running 命令或软件将它烧写到目标板上去。
这样,一个简单的Keil 51下的项目就完成了。
运行程序,
来结束程序。观察运行结果,若结果正确,便可通过下载
注:Keil 51 对汇编语言文件的编译调试步骤和对C语言的编译调试基本上是一样的,只是在第八步中用汇编语言进行代码的编写,并在保存文件时将扩展名加成 . asm。
本系统中,最初采用把9个状态分别设置成一个子函数的方法。在每个子函数中对在此状态中需要点亮的LED单独赋值,延时程序采用定时器延时,在主函数中设置调用子函数。但是在调试过程中遇到很多问题,比如,LED并未按照理想的方式点亮或熄灭,也没有状态变化。在经过分析后,采用了另一种更为简单的方法,即给P1口和P2口整体赋值,如P1=0xff、P2=0xff即表示所有LED不点亮。每个状态只需赋一个或两个值,需要延时时只需调用延时程序。此外,对延时程序也进行了修改,把原有方案改为用CPU延时,这样,程序变得较为简单易行。
-28-
XXXXX学院电子信息工程单片机课程设计报告
4.2 程序下载软件介绍
STC—ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC系列的STC单片机,使用简便,现已被广泛使用。
4.2.1 软件功能
通过Keil软件编程,编译后会生成一个hex文件,STC软件就是把生成的hex文件写入单片机,从而在单片机上实现一些实验现象。
4.2.2 软件应用流程
1. 先用编程软件调试好程序并编译生成HEX文档,如图4-12:
图 4-12 生成HEX文档
2. 把下载器放到实验板的零插拔座上(仿真器下面有双排40脚的插针)并卡紧,注意不要放反,有与PC连接口的那一边朝下。
3. 把下载器所配的下载线上的DB9接头电脑的9针串口连接好,与DB9接头一边的USB接头插到电脑USB接口上用来取电。另一头接到下载器USB接口上。
4. 根据你的下载器上的STC单片机类型选择程序下载模式,可通过按下电容旁边的锁定开关来切换(如是C系列的不用按下开关,如STCC58 RD+、如是LE系列的请按下开关,如STCLE54 AD。注意:如是LE系列的在下载完程序后需要把开关弹上
-29-
XXXXX学院电子信息工程单片机课程设计报告
来才能进行正常仿真),检查SB接口旁边的POWER1开关是否处于弹起状态。如图4-13、4-14:
图 4-14 选择串行口
-30- XXXXX学院电子信息工程单片机课程设计报告
图 4-15 下载程序
5. 运行随光盘所带的STC下载软件,出现下图4-16:
图 4-16 下载成功
先按图中标示按1选择好你的下载器上所用的单片机类型,选好单片机类型后,就可以按2找到源HEX文件并存入缓冲器里,接下来就可以按3,最后按下下载器上的POWER1开关,就可以看到下载器上的LED灯亮了,同时屏幕上的程序下载进度条在显示进度,很快,程序就被下载到下载器上的单片机里了,这是自动转到实验板上演示程序内容了,看,实验板上的流水灯在闪烁了吧。如是在下载程序前按下下载器电容旁边的那个开关的,此时要把弹起来就可以了。
4.3 本章小结
本章主要介绍了系统软件调试的环境,包括KEIL51软件和程序下载软件的介绍以及它们的软件功能和软件应用流程。
-31-
XXXXX学院电子信息工程单片机课程设计报告
第5章 系统程序设计
5.1 系统程序设计流程图
主程序 正转 反转 加速 减速 停止 占空比 占空比 信号输出
5.2 电机调速程序正转模块详细流程图
正转 占空比 5.3
if(k1==0)
// 正转
{ delay(10); if(k1==0) { IN1=0; IN2=1; num1=1; while(!k1);
-32-
5.3.1 程序流程图对应程序代码
XXXXX学院电子信息工程单片机课程设计报告
}
}
if(num1=1) //正转占空比调节
{if(di_num!=0) { for(x=0;x<=di_num; x++) { IN1=0; //PWM低电平输出 display(); //显示函数延时 } } for(x=0;x<=gao_num;x++ ) { IN1=1; display(); //PWM高电平输出 } }
5.4 电机调速程序模块反转详细流程图
反转 占空比
5.4.1 程序流程图对应程序代码
if(num1=0) //反转占空比调节 {if(di_num!=0) { for(x=0;x<=di_num; x++)
-33-
if(k2==0) // 反转
{ delay(10); if(k2==0) { IN1=1; IN2=0; num1=0; while(!k2); } }
XXXXX学院电子信息工程单片机课程设计报告
{ IN2=0; display(); } }
for(x=0;x<=gao_num;x++ ) { IN2=1; display(); } }
5.5 电机调速程序模块加速详细流程图
减速
5.5.1 程序流程图对应程序代码
if(k4==0) //减速 { delay(10); if(k4==0) { if(num!=0) num--; else num=0; while(!k4); } }
5.6 电机调速程序模块加速详细流程图
加速
5.6.1 程序流程图对应程序代码
if(k3==0) // 加速
-34-
XXXXX学院电子信息工程单片机课程设计报告
{ delay(10); if(k3==0) { num++; if(num==4) num=3; while(!k3); } }
5.7 电机调速程序模块停止详细流程图
停止
5.7.1 程序流程图对应程序代码
if(k5==0) // 停止 { delay(10); if(k5==0) { IN1=1; IN2=1; while(!k5); } } }
5.8 电机调速程序模块停止详细流程图
主程序
5.8.1 程序流程图对应程序代码
void main () { while(1)
-35-
XXXXX学院电子信息工程单片机课程设计报告
{ EN=1;
keyscan(); dispose(); qudong(); }
}
5.9 本章小结
本章主要介绍了系统的程序设计,包括系统设计流程图各模块详细流程图及其对应的程序代码。
-36-
XXXXX学院电子信息工程单片机课程设计报告
结 论
数字式直流电机转速控制系统是由硬件和软件巧妙相结合做到最大限度的消除误差完成了基本要求。在反复修改系统调节功能达到了发挥部分的要求。实现了电机转速控制的智能化。
PWM技术是直流电机调速中最为有效的方法。本文对直流电机PWM调速系统进行分析,详细介绍系统的工作原理及其实现方法,阐述了利用ARM处理器对直流电机进行调速控制的方式和实现的方法。综合应用嵌入式系统技术、PWM脉宽调制技术,按键控制ARM开发板片内外设PWM输出、引脚输出。
本文所述的直流电机闭环调速系统是以低价位的单片微机STCC52为核心的,而通过单片机来实现电机调整又有多种途径,相对于其他用硬件或者硬件与软件相结合的方法实现对电机进行调整,采用PWM软件方法来实现的调速过程具有更大的灵活性和更低的成本,它能够充分发挥单片机的效能,对于简易速度控制系统的实现提供了一种有效的途径。而在软件方面,采用PI算法来确定闭环控制的补偿量也是由数字电路组成的直流电机闭环调速系统所不能及的。曾经也试过用单片机直接产生PWM波形,但其最终效果并不理想,在使用了少量的硬件后,单片机的压力大大减小,程序中有充足的时间进行闭环控制的测控和计算,使得软件的运行更为合理可靠。
-37-
XXXXX学院电子信息工程单片机课程设计报告
参考文献
1. 李荣生主编,电气传动控制系统设计指导,机械工业出版社,2007 2. 吴守箴,臧英杰 编著, 电气传动的脉宽调制控制技术,机械工业出版社,2006
3. 陈伯时主编,自动控制系统---电力拖动控制,广播电视大学出版社,2008 4. 王离九,黄锦恩编著,晶体管脉冲直流调速系统,华中理工大学出版社出版,2007
5.杨文龙.单片机原理及应用.西安:西安电子科技大学出版社,1993 5. 李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,2003 6. 胡汉才.单片机原理及系统设计.北京:清华大学出版社,2003
7. 杨忠煌,黄博俊,李文昌.单芯片8051实务与应用.北京:中国水利水电出版
-38-
XXXXX学院电子信息工程单片机课程设计报告
附 录
基于单片机的电机调速.ddb原理图
000000000000 调试成功的电路板照片
程序代码如下: #include -39- XXXXX学院电子信息工程单片机课程设计报告 #define uchar unsigned char #define uint unsigned int sbit k1=P1^7; sbit k2=P3^5; sbit k3=P3^2; sbit k4=P3^3; sbit k5=P3^4; sbit IN1=P1^1; sbit IN2=P1^2; sbit EN=P1^0; uchar num=0, show_num=1, gao_num=1, di_num=3, num1; uchar code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90 }; void delay(uint x) //延时函数 { uint i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void keyscan() { if(k1==0) // 正转 { delay(10); if(k1==0) { IN1=0; IN2=1; num1=1; while(!k1); } } if(k2==0) // 反转 { delay(10); if(k2==0) { IN1=1; IN2=0; num1=0; while(!k2); } } if(k3==0) // 加速 { delay(10); if(k3==0) { num++; if(num==4) num=3; while(!k3); -40- XXXXX学院电子信息工程单片机课程设计报告 } } if(k4==0) //减速 { delay(10); if(k4==0) { if(num!=0) num--; else num=0; while(!k4); } } if(k5==0) // 停止 { delay(10); if(k5==0) { IN1=1; IN2=1; while(!k5); } } } void qudong() //控制电机程序 { uchar x; if(num1=1) //正转占空比调节 {if(di_num!=0) { for(x=0;x<=di_num; x++) { IN1=0; //PWM低电平输出 display(); //显示函数延时 } } for(x=0;x<=gao_num;x++ ) { IN1=1; display(); //PWM高电平输出 } } if(num1=0) //反转占空比调节 {if(di_num!=0) { for(x=0;x<=di_num; x++) -41- XXXXX学院电子信息工程单片机课程设计报告 { IN2=0; display(); } } for(x=0;x<=gao_num;x++ ) { IN2=1; display(); } } } void main () { while(1) { EN=1; keyscan(); dispose(); qudong(); } } -42-
因篇幅问题不能全部显示,请点此查看更多更全内容