智能仪表综合训练设计说明书
题目:基于单片机的PWM输出控制
学生姓名:
学号:
专业:
班级:
指导教师:
摘要
随着电子技术及微控制器(MCU)的快速发展,自动控制技术在工业领域应用十分广泛。许多设备之间的连接或者控制都是由标准的1~5V的电压信号或者4~20mA的电流信号来完成的。一般设备的D/A转换都是采用集成的数模转换器,这样就增加了成本,所以为了降低成本,利用单片机内部的定时器和软件一起来实现PWM 输出,经过简单的变换电路就以实现D/A转换。
本次设计,就是基于单片机的PWM输出控制,通过RC硬件电路,采用定时器配合软件的方法实现占空比可调、周期固定的PWM输出控制,大致过程:利用电位器实现占空比的改变,并通过AD转换,将PWM方波的占空比送入LED进行显示。然后,将给定占空比生成的PWM 波形被输入到一个低通滤波器,即将输入的数字信号转换为模拟信号,然后去控制LED灯的渐变。
关键词:单片机;脉宽调制;A/D转换器;LED显示
目录
第一章脉冲宽度调制概述 (1)
1.1 PWM控制的原理及过程 (1)
1.1.1 PWM控制的基本原理 (1)
1.1.2 PWM的控制过程 (2)
1.2 PWM控制的特点及应用 (2)
第二章总体方案设计 (4)
2.1 系统总体的设计思路 (4)
第三章硬件设计 (6)
3.1 STC89C52单片机及控制电路 (6)
3.1.1 STC89C52单片机简介 (6)
3.1.2 单片机时钟和复位电路的设计 (7)
3.2 基于单片机PWM输出控制系统的硬件电路的分析与设计 (9)
3.2.1 电源电路的分析与设计 (9)
3.2.2 MAX232芯片与RS232接口电路 (10)
3.2.3 ADC0832与 A/D转换电路 (11)
3.2.4 LED显示电路 (14)
第四章软件设计 (17)
4.1程序流程图及程序设计 (17)
4.1.1 主程序设计 (17)
4.1.2 A/D转换程序设计 (17)
4.1.3 PWM控制程序设计 (18)
第五章总结 (19)
参考文献 (20)
附录A:基于单片机的PWM输出控制的硬件原理图 (21)
附录B:基于单片机的PWM输出控制的源程序 (22)
第一章脉冲宽度调制概述
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。
1.1 PWM控制的原理及过程
1.1.1 PWM控制的基本原理
脉宽PWM法,它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制充电电流的目的。
占空比:就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比。如,一个PWM的频率是1000Hz,那么它的时钟周期就是1ms,就是1000us,如果高电平出现的时间是200us,那么低电平的时间肯定是800us,那么占空比就是200:1000,也就是说PWM的占空比就是1:5。
分辨率也就是占空比最小能达到多少,如8位的PWM,理论的分辨率就是1:255(单斜率), 16位的的PWM理论就是1:65535(单斜率)。频率就是这样的,如16位的PWM,它的分辨率达到了1:65535,要达到这个分辨率,T/C就必须从0计数到65535才能达到,如果计数从0计到80之后又从0开始计到80.......,那么它的分辨率最小就是1:80了,但是,它也快了,也就是说PWM的输出频率高了。
双斜率 / 单斜率
假设一个PWM从0计数到80,之后又从0计数到80....... 这个就是单斜率。
假设一个PWM从0计数到80,之后是从80计数到0....... 这个就是双斜率。可见,双斜率的计数时间多了一倍,所以输出的PWM频率就慢了一半,但是分辨率却是1:(80+80) =1:160,就是提高了一倍。假设PWM是单斜率,设定最高计数是80,我们再设定一个比较值是10,那么T/C从0计数到10时(这时计数器还是一直往上计数,直到计数到设定值80),单片机就会根据你的设定,控制某个IO口在这个时候是输出1还是输出0还是端口取反,这样,就是PWM的最基本的原理了。
1.1.2 PWM的控制过程
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。
许多微控制器内部都包含有PWM控制器。例如,Microchip公司的PIC16C67内含两个PWM控制器,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比;调制频率为周期的倒数。执行PWM操作之前,这种微处理器要求在软件中完成以下工作:
1、设置提供调制方波的片上定时器/计数器的周期
2、在PWM控制寄存器中设置接通时间
3、设置PWM输出的方向,这个输出是一个通用I/O管脚
4、启动定时器
5、使能PWM控制器
1.2 PWM控制的特点及应用
脉冲宽度调制的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。
脉冲宽度调制的另外一个优点是对噪声抵抗能力的增强,这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。总之,脉冲宽度调制既经济、节约空间、抗噪性能强,是一种值得广大工程师在许多设计应用中使用的有效技术。
脉冲宽度调制广泛应用在从测量、通信到功率控制与变换的许多领域中,由于其四象限变流的特点,可以反馈再生制动的能量,对于目前国家提出的节能减排具有积极意义。具体应用:
1、脉冲宽度调制软件法控制充电电流
其基本思想就是利用单片机具有的PWM端口,在不改变PWM方波周期的前提下,通过软件的方法调整单片机的PWM控制寄存器来调整PWM的占空比,从而控制充电电流。本方法所要求的单片机必须具有ADC端口和PWM端口这两个必须条件,另外ADC 的位数尽量高,单片机的工作速度尽量快。在调整充电电流前,单片机先快速读取充电电流的大小,然后把设定的充电电流与实际读取到的充电电流进行比较,若实际电流偏小则向增加充电电流的方向调整PWM的占空比;若实际电流偏大则向减小充电电流的方向调整PWM的占空比。在软件PWM的调整过程中要注意ADC的读数偏差和电源工作电压等引入的纹波干扰,合理采用算术平均法等数字滤波技术。
2、脉冲宽度调制在推力调制中的应用
1962年,Nicklas等提出了脉冲调制理论,指出利用喷气脉冲对航天器控制是简单有效的控制方案,同时能使时间或能量达到最优控制。
脉宽调制发动机控制方式是在每一个脉动周期内,通过改变阀门在开或关位置上停留的时间来改变流经阀门的气体流量,从而改变总的推力效果,对于质量流率不变的系统,可以通过脉宽调制技术来获得变推力的效果。
第二章总体方案设计
2.1 系统总体的设计思路
51系列单片机无PWM的输出功能,通过一定的硬件电路,采用定时器配合软件的方法输出PWM方波,具体的设计思路:
1 硬件部分
过电位器改变PWM的占空比,利用电位器将0到5V的模拟信号输入到ADC0832芯片,经过A\D转换为00H到FFH的数字量,再输入到单片机,然后将PC机上的程序经过RS232串口芯片下载到STC89C52单片机上,编程运行后,再输出相应的信号,输出占空比实现四位LED数码显示,输出报警信号实现蜂鸣器报警,输出方波信号实现LED灯的渐变功能。
然后,要熟练掌握protel99SE开发软件,根据硬件电路的功能要求,画出合理的电路原理图,分配好相应的管脚,并生成相应的PCB图。
2 软件部分
在STC89C52内实现PWM 的基本过程:首先选定脉冲的频率T,然后根据控制信号的变化范围,这里是1~5V,则可以求出t时刻通过控制信号V(t)的对应脉冲的正、负脉冲持续时间。这两个时间长度在单片机里是通过给定时器赋相应的初值而得,即定时器获得这样的定时初值后就在机器周期的同步下,从这个初值加 1 计数,定时器满时则产生相应时间长度的溢出中断,再利用这个中断所响应的服务程序去控制单片机某一引脚相应的正、负电平极性的持续时间。如果上述过程连续进行,就可在这个引脚获得宽度随控制信号V(t)大小变化的PWM方波信号。
其次,利用keil uVision2编程软件,进行相应程序的编辑,主要实现五个程序的设计,主程序,LED数码显示程序,蜂鸣器报警程序,PWM控制程序,A\D转换程序。
3、系统方框图:由STC89C52单片机、复位电路、时钟电路、RS232转换电路、ADC0832转换电路、PWM输出电路、蜂鸣器和LED显示电路构成。
STC89C52
电源电路
时钟电路
复位电路
A/D转换电路RS232转换电路
LED显示电路
报警电路
PWM输出电路
图2.1系统框图
第三章硬件设计
在设计硬件电路时,有了清晰地设计思路和确定了总体的设计方案后,还必须对相应的电路元器件的工作原理十分熟悉,例如电路中用到的一些主要的芯片,选择了合适的硬件,这样才能设计出一个合理的硬件系统,同时更好的实现相应的功能。下面对主要的芯片及其辅助电路进行分析。
3.1 STC89C52单片机及控制电路
3.1.1 STC89C52单片机简介
单片机是智能化设计的核心部件,本次设计选用是STC89C52单片机,STC89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8k bytes的反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产与标准MCS—51指令系统及8052产品兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。
1、主要性能参数如表一所示:
表一 STC89C52主要功能
主要功能特性
兼容MCS51指令系统8K可反复擦写Flash ROM
32个双向I/O口256x8bit内部RAM
3个16位可编程定时/计数器中断时钟频率0-24MHz
2个串行中断可编程UART串行通道
2个外部中断源共6个中断源
2个读写中断口线3级加密位
低功耗空闲和掉电模式软件设置睡眠和唤醒功能
3、STC89C52单片机芯片引脚介绍,STC89C52的引脚图如图3.1所示。STC89C52芯片共40引脚:
①主电源引脚(2根)
VCC(Pin40):电源输入,接+5V电源
GND(Pin20):接地线
②外接晶振引脚(2根)
XTAL1(Pin19):片内振荡电路的输入端
XTAL2(Pin20):片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。 ALE/PROG(Pin30):地址锁存允许信号
PSEN(Pin29):外部存储器读选通信号
EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7
图3.1 STC89C52的引脚图
3.1.2单片机时钟和复位电路的设计
一、单片机的时钟电路分析
单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工
基于单片机的PWM调速系统 摘要 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。文章中采用了专门的芯片组成了PWM信号的发生系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。此外,本文中还采用了芯片IR2110作为直流电机正转调速功率放大电路的驱动模块,并且把它与延时电路相结合完成了在主电路中对直流电机的控制。另外,本系统中使用了测速发电机对直流电机的转速进行测量,经过滤波电路后,将测量值送到A/D转换器,并且最终作为反馈值输入到单片机进行PI运算,从而实现了对直流电机速度的控制。在软件方面,文章中详细介绍了PI运算程序,初始化程序等的编写思路和具体的程序实现。 关键词:PWM信号测速发电机PI运算前言 本文主要研究了利用MCS-51系列单片机,通过PWM方式控制直流电机调速的方法。 冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。PWM控制技术就是以该结论为理论基础,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些
脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。 PWM控制的基本原理很早就已经提出,但是受电力电子器 件发展水平的制约,在上世纪80年代以前一直未能实现。 直到进入上世纪80年代,随着全控型电力电子器件的出现 和迅速发展,PWM控制技术才真正得到应用。随着电力电 子技术、微电子技术和自动控制技术的发展以及各种新的理论方法,如现代控制理论、非线性系统控制思想的应用,PWM 控制技术获得了空前的发展。到目前为止,已经出现了多种PWM控制技术。 PWM控制技术以其控制简单、灵活和动态响应好的优点而 成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。 本文就是利用这种控制方式来改变电压的占空比实现直流 电机速度的控制。文章中采用了专门的芯片组成了PWM信号的发生系统,然后通过放大来驱动电机。利用直流测速发电机测得电机速度,经过滤波电路得到直流电压信号,把电压信号输入给A/D转换芯片最后反馈给单片机,在内部进行PI运算,输出控制量完成闭环控制,实现电机的调速控制。
Pwm电机调速原理 对于电机的转速调整,我们是采用脉宽调制(PWM)办法,控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。不同占空比的方波信号能对电机起到调速作用,这是因为电机实际上是一个大电感,它有阻碍输入电流和电压突变的能力,因此脉冲输入信号被平均分配到作用时间上,这样,改变在始能端PE2 和PD5 上输入方波的占空比就能改变加在电机两端的电压大小,从而改变了转速。 此电路中用微处理机来实现脉宽调制,通常的方法有两种: (1)用软件方式来实现,即通过执行软件延时循环程序交替改变端口某个二进制位输出逻 辑状态来产生脉宽调制信号,设置不同的延时时间得到不同的占空比。 (2)硬件实验自动产生PWM 信号,不占用CPU 处理的时间。 这就要用到ATMEGA8515L 的在PWM 模式下的计数器1,具体内容可参考相关书籍。 51单片机PWM程序 产生两个PWM,要求两个PWM波形占空都为80/256,两个波形之间要错开,不能同时为高电平!高电平之间相差48/256, PWM这个功能在PIC单片机上就有,但是如果你就要用51单片机的话,也是可以的,但是比较的麻烦.可以用定时器T0来控制频率,定时器T1来控制占空比:大致的的编程思路是这样的:T0定时器中断是让一个I0口输出高电平,在这个定时器T0的中断当中起动定时器T1,而这个T1是让IO口输出低电平,这样改变定时器T0的初值就可以改变频率,改变定时器T1的初值就可以改变占空比。 *程序思路说明: * * * *关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数* *设定为C=10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样* *可以设定占空比可从1-100变化。即0.01ms*100=1ms * ******************************************************************************/ #include
单片机原理及应用课程设计报告设计题目: 学院: 专业: 班级: 学号: 学生姓名: 指导教师: 年月日 目录
设计题目:PWM直流电机调速系统 本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。 关键词:直流电机调速;定时中断;电动机;波形;LED显示器;51单片机 1 设计要求及主要技术指标: 基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。 设计要求 (1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。 (2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。 (3)设计一个4个按键的键盘。 K1:“启动/停止”。 K2:“正转/反转”。 K3:“加速”。 K4:“减速”。 (4)手动控制。在键盘上设置两个按键----直流电动机加速和直流电动机减速键。在
手动状态下,每按一次键,电动机的转速按照约定的速率改变。 (5)*测量并在LED显示器上显示电动机转速(rpm). (6)实现数字PID调速功能。 主要技术指标 (1)参考L298说明书,在系统中扩展直流电动机控制驱动电路。 (2)使用定时器产生可控PWM波,定时时间建议为250us。 (3)编写键盘控制程序,实现转向控制,并通过调整PWM波占空比,实现调速; (4)参考Protuse仿真效果图:图(1) 图(1) 2 设计过程 本文设计的直流PWM调速系统采用的是调压调速。系统主电路采用大功率GTR为开关器件、H桥单极式电路为功率放大电路的结构。PWM调制部分是在单片机开发平台之上,运用汇编语言编程控制。由定时器来产生宽度可调的矩形波。通过调节波形的宽度来控制H电路中的GTR通断时间,以达到调节电机速度的目的。增加了系统的灵活性和精确性,使整个PWM脉冲的产生过程得到了大大的简化。 本设计以控制驱动电路L298为核心,L298是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。可驱动2个电机,OUTl、OUT2和OUT3、OUT4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。 本设计以AT89C52单片机为核心,如下图(2),AT89C52是一个低电压,高性能 8位,片内含8k bytes的可反复擦写的只读程序存储器和256 bytes的随机存取数据存储器(),器件采用的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 图(2) 对直流电机转速的控制即可采用开环控制,也可采用闭环控制。与开环控制相比,速度控制闭环系统的机械特性有以下优越性:闭环系统的机械特性与开环系统机械特性相比,其性能大大提高;理想空载转速相同时,闭环系统的静差(额定负载时电机转速降落与理想空载转速之比)要小得多;当要求的静差率相同时, 闭环调速系统的调速范
直流电机调速资料汇总 一. 使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。 C语言代码: #include
} void beep(void) { uchar t; for(t=0;t<100;t++) { delay500us(); FMQ=!FMQ; //产生脉冲 } FMQ=1; //关闭蜂鸣器 delaynms(300); } void main(void) { TR0=0; //关闭定时器0 TMOD=0x01; //定时器0,工作方式1 TH0=(65526-100)/256; TL0=(65526-100)%256; //100us即0.01ms中断一次EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器T0 ZKB1=50; //占空比初值设定 ZKB2=50; //占空比初值设定 while(1) { if(!K5) { delaynms(15); //消抖 if(!K5) //确定按键按下 { beep(); ZKB1++; //增加ZKB1 ZKB2=100-ZKB1; //相应的ZKB2就减少 } } if(!K6) { delaynms(15); //消抖 if(!K6) //确定按键按下 { beep();