智能仪器课程设计报告.docx
《智能仪器课程设计报告.docx》由会员分享,可在线阅读,更多相关《智能仪器课程设计报告.docx(31页珍藏版)》请在冰豆网上搜索。
智能仪器课程设计报告
内蒙古科技大学
智能仪表综合训练设计说明书
题目:
基于单片机的PWM输出控制
学生姓名:
学号:
专业:
测控技术与仪器
班级:
2008-2
指导教师:
左鸿飞
摘要
随着电子技术及微控制器(MCU)的快速发展,自动控制技术在工业领域应用十分广泛。
许多设备之间的连接或者控制都是由标准的1~5V的电压信号或者4~20mA的电流信号来完成的。
一般设备的D/A转换都是采用集成的数模转换器,这样就增加了成本,所以为了降低成本,利用单片机内部的定时器和软件一起来实现PWM输出,经过简单的变换电路就以实现D/A转换。
本次设计,就是基于单片机的PWM输出控制,通过RC硬件电路,采用定时器配合软件的方法实现占空比可调、周期固定的PWM输出控制,大致过程:
利用电位器实现占空比的改变,并通过AD转换,将PWM方波的占空比送入LED进行显示。
然后,将给定占空比生成的PWM波形被输入到一个低通滤波器,即将输入的数字信号转换为模拟信号,然后去控制LED灯的渐变。
关键词:
单片机;脉宽调制;A/D转换器;LED显示
目录
第一章脉冲宽度调制概述1
1.1PWM控制的原理及过程1
1.1.1PWM控制的基本原理1
1.1.2PWM的控制过程2
1.2PWM控制的特点及应用2
第二章总体方案设计4
2.1系统总体的设计思路4
第三章硬件设计6
3.1STC89C52单片机及控制电路6
3.1.1STC89C52单片机简介6
3.1.2单片机时钟和复位电路的设计7
3.2基于单片机PWM输出控制系统的硬件电路的分析与设计9
3.2.1电源电路的分析与设计9
3.2.2MAX232芯片与RS232接口电路10
3.2.3ADC0832与A/D转换电路11
3.2.4LED显示电路14
第四章软件设计17
4.1程序流程图及程序设计17
4.1.1主程序设计17
4.1.2A/D转换程序设计17
4.1.3PWM控制程序设计18
第五章总结19
参考文献20
附录A:
基于单片机的PWM输出控制的硬件原理图21
附录B:
基于单片机的PWM输出控制的源程序22
第一章脉冲宽度调制概述
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,其根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM控制技术以其控制简单,灵活和动态响应好的优点而成为电力电子技术最广泛应用的控制方式,也是人们研究的热点。
由于当今科学技术的发展已经没有了学科之间的界限,结合现代控制理论思想或实现无谐振软开关技术将会成为PWM控制技术发展的主要方向之一。
1.1PWM控制的原理及过程
1.1.1PWM控制的基本原理
脉宽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.2PWM的控制过程
脉冲宽度调制(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.2PWM控制的特点及应用
脉冲宽度调制的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。
让信号保持为数字形式可将噪声影响降到最小。
噪声只有在强到足以将逻辑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方波信号。
其次,利用keiluVision2编程软件,进行相应程序的编辑,主要实现五个程序的设计,主程序,LED数码显示程序,蜂鸣器报警程序,PWM控制程序,A\D转换程序。
3、系统方框图:
由STC89C52单片机、复位电路、时钟电路、RS232转换电路、ADC0832转换电路、PWM输出电路、蜂鸣器和LED显示电路构成。
图2.1系统框图
第三章硬件设计
在设计硬件电路时,有了清晰地设计思路和确定了总体的设计方案后,还必须对相应的电路元器件的工作原理十分熟悉,例如电路中用到的一些主要的芯片,选择了合适的硬件,这样才能设计出一个合理的硬件系统,同时更好的实现相应的功能。
下面对主要的芯片及其辅助电路进行分析。
3.1STC89C52单片机及控制电路
3.1.1STC89C52单片机简介
单片机是智能化设计的核心部件,本次设计选用是STC89C52单片机,STC89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产与标准MCS—51指令系统及8052产品兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。
1、主要性能参数如表一所示:
表一STC89C52主要功能
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
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.1STC89C52的引脚图
3.1.2单片机时钟和复位电路的设计
1、单片机的时钟电路分析
单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作,因此时钟频率直接影响单片机的速度,时钟电路质量也直接影响单片机系统的稳定性。
STC89C52的时钟可以有两种方式,一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式。
本设计根据实际需要和简便,采用内部振荡方式。
89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入和输出端。
这个放大器与作为反馈元件的片外的片外晶体与陶瓷谐振器一起构成一个自激振荡器。
STC89C52虽然有内部震荡电路,但要形成时钟,必须外接元件所以实际构成的震荡时钟电路。
外界晶体以及电容C1和C2构成并联谐振电路接在放大器的反馈回路中。
对接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低,振荡器的稳定性,起振的快速性和温度的稳定性。
晶体频率可在1.2MHZ~12MHZ之间任选,电容C1和C2的典型值在20PF~100PF之间选择,考虑到本系统对于外接晶体的频率稳定性要求不高,采用频率为11.0592MHz,微调电容C1和C2为30pF的内部时钟方式,电容为瓷片电容,判断单片机芯片及时钟系统是否正常工作有一个简单的方法,就是用万用表测量单片机晶振引脚(18,19脚)的对地电压,以正常工作的单片机用数字万用表测量为例:
18脚对地电压约为2.24V,19脚对地电压约为2.09V。
设计电路图如图3.2所示。
图3.2时钟电路图
二、单片机复位电路分析
STC89C52的复位输入引脚RST为单片机提供了初始化的手段,可以使程序从指定处开始执行,在STC89C52的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位操作。
只要RST保持高电平,则单片机循环复位。
只有当RST有高电平变为低电平以后,单片机才把PC初始化0000H,使单片机从0000H单片开始执行程序。
本系统采用按键复位方式的复位电路如图3.3所示,其主要作用是除了进入系统的正常初始化之外,当由于程序运行出错或操作失误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。
单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电通过电阻给电解电容进行充电,电容两端的电会由0V慢慢的升到4V左右,正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,,这是单片机的上电复位,也叫初始化复位。
当按下复位键时,电容两端放电,电容又回到了0V,于是又进行了一次复位工作,这是手动复位原理。
图3.3复位电路图
3.2基于单片机PWM输出控制系统的硬件电路的分析与设计
3.2.1电源电路的分析与设计
单片机工作时需要的+5V电压,本设计采用普通的电源接口,通过5V的电源适配器供电,电源电路图如图3.4所示。
电源部分还连接开关和发光二极管,用于判断电源是否正常工作。
需要注意的是,图中的二极管是其保护作用的,防止电压发生突变,进而损坏单片机及其他元器件。
图3.4电源电路
3.2.2MAX232芯片与RS232接口电路
一、MAX232芯片简介
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
由于电脑串口rs232电平是-15、+15v,而且逻辑电平诶负逻辑;而一般的单片机应用系统的信号电压是ttl电平0、+5v,逻辑电平为正逻辑。
max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
1、引脚介绍:
第一部分是电荷泵电路。
由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)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚GND、16脚VCC(+5v)。
MX232双串口的引脚图如图3.5所示。
图3.5MX232双串口的引脚图
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。
每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。
2、主要特点
1、单5V电源工作
2、LinBiCMOSTM工艺技术
3、两个驱动器及两个接收器
4、±30V输入电平
5、低电源电流:
典型值是8mA
6、符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28
7、ESD保护大于MIL-STD-883(方法3015)标准的2000V
二、RS232接口电路设计
本设计需要单片机与PC机进行通讯,将程序下载到单片机上,所以我们用到RS232异步串口通行接口,RS232是电荷泵芯片,可以完成两路TTL/RS-232电平的转换,它的的9、10、11、12引脚是TTL电平端,用来连接单片机的,实现单片机的异步通信。
本设计我们采用了4个0.1uF的电容,用到MAX232芯片的13、14引脚,通过9针的接口,与PC机连接;芯片的11、12引脚与单片机的TXD,RXD相连。
RS232接口电路图如图3.6所示。
图3.6RS232与单片机连接的电路图
3.2.3ADC0832与A/D转换电路
一、ADC832的资料简介
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换
芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
学习并使用ADC0832可是使我们了解A/D转换器
的原理,有助于我们单片机技术水平的提高。
1、ADC0832具有以下特点如表二所示:
表二ADC0832具有以下特点
8位分辨率
双通道A/D转换
输入输出电平与TTL/CMOS相兼容
5V电源供电时输入电压在0~5V之间
工作频率为250KHZ,转换时间为32μS
一般功耗仅为15mW
8P、14P—DIP(双列直插)、PICC多种封装
商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C
2、ADC0832芯片引脚介绍:
ADC0832芯片引脚名称及功能如表三所示,引脚图如图3.7所示。
表三ADC0832芯片引脚及功能
引脚名称
引脚功能
CS_(pin1)
片选使能,低电平芯片使能
CH0(pin2)
模拟输入通道0,或作为IN+/-使用
CH1(pin3)
模拟输入通道1,或作为IN+/-使用
GND(pin4)
芯片参考0电位(地)
DI(pin5)
数据信号输入,选择通道控制
DO(pin6)
数据信号输出,转换数据输出
CLK(pin7)
芯片时钟输入
Vcc/REF(pin8)
电源输入及参考电压输入(复用)
图3.7ADC0832引脚图
二、A/D转换电路的设计
1、单片机对ADC0832的控制原理:
正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。
当此2位数据为“1”、“0”时,只对CH0进行单通道转换。
当2位数据为“1”、“1”时,只对CH1进行单通道转换。
当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。
当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。
到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。
直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。
如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。
但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。
2、ADC0832与单片机连接电路的设计
连接电路图如图3.8所示,本设计利用电位器控制PWM方波的占空比,电位器的输出端与ADC0832的CH0连接,输入模拟信号;ADC0832的CS_与单片机的P20相连,启动信号;CLK与单片机的P36相连,输出脉冲信号;DO与P37相连,单片机将数据读入。
图3.8ADC0832与单片机连接电路
3.2.4LED显示电路
一、74LS164芯片简介