基于单片机的智能稳压电源设计_第1页
基于单片机的智能稳压电源设计_第2页
基于单片机的智能稳压电源设计_第3页
基于单片机的智能稳压电源设计_第4页
基于单片机的智能稳压电源设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的智能稳压电源设计摘要本智能稳压电源利用16位单片机SPCE061A为控制核心,可预置输出电压值并显示在液晶显示模块(LCD)上,通过其内置的A/D输出对PWM进行调制,再控制大功率开关管导通,再经过滤波输出。同时通过采样电路将实际输出值反馈到单片机中构成闭环系统,进行比较、调整,提高了电源的输出精度。输出电压范围为0.01v~10v,而且可以步进调整输出的电压值。关键词:智能;单片机;PWM调制;稳压电源DesignofSmartPowerSupplyBasedonSCMWuRenjie(CollegeofPhysicsScienceandInformationEngineering,JishouUniversity,Jishou,AbstractThe16BitSCMSPCE061Awasusedasthecontrolunitinthisdesign,theoutputvoltagevaluecanbeprotestedformthekeyboardanddisplayeditontheLCDmodule.Atthesametime,itsbuilt-inA/Dconvertermoderatetheoutputaspulsewidthmoderation(pwm),andswitchontheoutput,afterthatoutputthroughafilter.AtthesametimethecircuitwouldsampletheactualoutputvalueandfeedbacktheoutputtotheSCM’sinputsystem,aftercomparingandadjustingtoimprovetheoutputaccuracy.Outputvoltagerangefrom0.01vto10v,itcanalsosteppingadjusttheoutputvoltagevalue.Keywords:intelligent;SCM;PWMmodulation;powersupply目录TOC\o\f\h\z\u第一章引言 1第二章方案论证与设计 22.1系统整体方案论证 22.2数据采集和处理器选择 22.3电源供电电路 22.4显示电路模块 2第三章系统总体设计方案及设计框图 3第四章系统模块电路分析 44.1SPCE061A[1]单片机最小系统概述 44.1.1ADC的控制 54.1.2DAC的控制 64.1.3IO端口结构 74.1.4单片机端口资源的分配 84.2电压控制电路 84.2.1ADC、DAC电压调整电路 94.2.2脉宽调节电路的工作原理 104.2.3脉宽调制电路参数的选择 124.2.4开关管输出的电路参数的选择 134.2.5平滑电容电阻的参数选取 134.3键盘设计 144.4液晶显示 144.5正负电源供电电路 18第五章软件流程图 195.1主程序 195.2键盘程序 195.3闭环调整子程序 20第六章系统测试和误差分析 226.1系统功能测试 226.2系统误差分析 22参考文献 23附录 24结束语 30第一章引言直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多,但均存在以下二个问题:1)输出电压是通过粗调(波段开关)及细调(电位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如1.05~1.07V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。2)稳压方式均是采用串联型稳压电路,对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。在家用电器和其他各类电子设备中,通常都需要电压稳定的直流电源供电。但在实际生活中,都是由220V的交流电网供电。这就需要通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电。滤波器用于滤去整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,又缩小了其体积,使家用电器小型化。传统的直流稳压电源通常采用电位器和波段开关来实现电压的调节,并由电压表指示电压值的大小.因此,电压的调整精度不高,读数欠直观,电位器也易磨损.而基于单片机控制的直流稳压电源能较好地解决以上传统稳压电源的不足。随着科学技术的不断发展,特别是计算机技术的突飞猛进,现代工业应用的工控产品均需要有低纹波、宽调整范围的高压电源,特别是在一些高能物理领域,急需电脑或单片机控制的低纹波、宽调整范围的电源。现今随着直流电源技术的飞跃发展,整流系统由以前的分立元件和集成电路控制发展为微机控制,从而使直流电源智能化,具有遥测、遥信、遥控的三遥功能,基本实现了直流电源的无人值守。本课题研究一种以16位凌阳单片机为核心的智能化高精度直流电源的设计,通过其内置的A/D输出对PWM进行调制,大大提高电源的输出精度,特别适用于各种有较高精度要求的场合。第二章方案论证与设计2.1系统整体方案论证方案一:采用A/D电压放大器直接输出。电路简单,但是输出电压带负载能力不强,电源电压不稳定。方案二:采用PWM调制的开关电源输出,输出电压稳定,并且提供负载能力强。综上分析,采用方案二。2.2数据采集和处理器选择因为电压源调节要用到A/D或者D/A进行控制电压输出和电压采集。方案一:采用51系列单片机控制方式。外加一个A/D和一个D/A电路,因为单片机只有8位,所以精度低,并且外加A/D和D/A,电路复杂。成本很高。方案二:采用凌阳SPCE061A十六位单片机,处理能力强,I/O口丰富,可以同时进行键盘控制和LCD液晶显示。并且内置了一个10位D/A和一个10位的A/D,设计电路简单,并且输出电压精度高,能满足0.01v~10v、步进0.01v的要求。综上分析,采用方案二。2.3电源供电电路由于系统电路要求、直流电源供电,而设计独立的正、负电源给系统供电显得不合实际,所以我们采用稳压管7815、7915和7805、7905设计了一个、的直流稳压电源电路,如图4.13所示。考虑到输出电流最大可达到2A,所以要独立给恒流源电路提供独立的电源电路,如图4.14所示。2.4显示电路模块方案一:采用传统的8位数码管(LED)显示相关信息。方案二:采用液晶显示器(LCD)显示相关信息。以上两种方案中,方案一编程简单,但显示信息量少,功耗较大。而方案二的液晶显示器属于低功耗器件,显示界面友好,还可以同时显示电流的给定值和实测值,从而系统更具智能化、人性化、直观化。因此,选择方案二。第三章系统总体设计方案及设计框图本系统采用的处理器是SPCE061A十六位单片机,整个系统包括单片机、正负电源供电电路、A/D转换电压调整、D/A转换电压调整、PWM调制,大功率开关电路,滤波电路、采样电路、键盘、LCD显示等几个部分。系统框图如图3.1:LCDLCD显示开关输出信号放大D/A转换PWM调制单片机键盘开关输出信号放大D/A转换PWM调制单片机键盘电源电源滤波电路滤波电路A/D转换电压衰减取样电路A/D转换电压衰减取样电路负载输出负载输出图3.1系统框图图3.1系统框图以SPCE061A十六位单片机为控制核心,单片机内置了一个10位的A/D以及D/A,首先由4*4键盘键入控制数据,进入单片机,同时将设定值显示在LCD1602上,CPU运算预置数字大小转换成对应的控制电压,因为D/A输出电压范围是以0~3.3V。如要输出电压为5V,在程序内部则需要将数值除以3倍输出,再在电路外部放大3倍进行匹配,将匹配过的电压从MC3405输入。经调制过的脉宽波输出以后,控制由一个大功率的开关管组成的开关电路的导通状态。由开关管射极输出波型电压上与输出的波型相似,但电流上却大大增大了。最后通过一个RC滤波电路将脉宽波滤成直流电压输入。但输出的电压因为调制电路误差、输出负载的变化。电压极不稳定,因此有必要对其进行采样比较,达到动态闭环调整的目的。在采样电路中,与DAC相同,ADC的参考电压只能是3.3V,所以要先对采样的电压进行匹配输入(衰减3倍),本设计采用电阻串联分压的原理进行衰减。以输入电压为标准,如果输入电压大于设定的电压值,则减小DA输出电压一位数值,再采样回位比较,如此循环,直到输入的电压等于设定的电压值或者接近设定的电压值(有时不可能完全相等)。同理,如果输入电压小于设定的电压,则增大DA输出电压一位数值,再采样回位比较,如此循环,直到输入的电压等于设定的电压值或者接近设定的电压值。这样,就能达到闭环反馈的目的。第四章系统模块电路分析4.1SPCE061A[1]单片机最小系统概述SPCE061A[2]是继μ’nSP系列产品SPCE500A等之后凌阳科技推出的又一个16位结构的微控制器。目前有两种封装形式:84引脚的PLCC84封装和80引脚的LQFP80贴片封装。主要性能如下:△16位μ’nSP微处理器;△工作电压:VDD为2.4~3.6V(cpu),VDDH为2.4~5.5V(I/O);△CPU时钟:32768Hz~49.152MHz;△内置2K字SRAM、内置32KFLASH;△可编程音频处理;△32位通用可编程输入/输出端口;△32768Hz实时时钟,锁相环PLL振荡器提供系统时钟信号;△2个16位可编程定时器/计数器(可自动预置初始计数值);△2个10位DAC(数-模转换)输出通道;△7通道10位电压模-数转换器(ADC)和单通道语音模-数转换器;△声音模-数转换器输入通道内置麦克风放大器自动增益控制(AGC)功能;△系统处于备用状态下(时钟处于停止状态)耗电小于2μA@3.6V;△14个中断源:定时器A/B,2个外部时钟源输入,时基,键唤醒等;△具备触键唤醒的功能;△使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;△具备异步、同步串行设备接口;△具有低电压复位(LVR)功能和低电压监测(LVD)功能;△内置在线仿真电路接口ICE(In-CircuitEmulator);△具有保密能力;△具有WatchDog功能由SPCE061A单片组成的核心处理器如图4.1所示:图4.1SPCE061A单片组成的核心处理器4.1.1ADC的控制SPCE061A有8个10位ADC通道,其中一个通道(MIC_In)用于语音输入,模拟信号经过自动增益控制器和放大器放大后进行A/D转换。其余7个通道(Line_In)和IOA[0~6]引脚共享,可以将输入的模拟信号(如电压信号)转换为数字信号。SPCE061A的A/D转换范围是整个输入范围,即0V~AVdd。并且由多个寄存器控制[3]:其结构如图4.2所示:图4.2ADC通道4.1.2DAC的控制SPCE061A为音频输出提供两个DAC通道:DAC1和DAC2,分别由经由DAC1和DAC2引脚输出。DAC的输出范围从0x0000到0xFFFF。如果DAC的输出数据被处理成PCM数据,必须让DAC输出数据的直流电位保持为0x8000,且仅有高10位的数据有作用。DAC1和DAC2的输出数据应写入P_DAC1(写)($7017)和P_DAC2(写)($7016)单元。上电复位后,两个DAC均被自动打开,此时会消耗少量的电流(几毫安)。所以如不需要用它们,尽量将P_DAC_Ctrl(写)($702AH)单元的第1位设为‘1’其结构如图4.3所示:图4.3DAC通道4.1.3IO端口结构SPCE061A提供了位控制结构的I/O端口,每一位都可以单独用于数据输入或输出。每个独立的位可通过以下3种控制向量来作设定:1.数据向量Data2.属性向量Attribution3.方向控制向量Direction每3个对应的控制向量组合在一起,形成一个控制字,用来定义相对应I/O端口位的输入输出状态和方式。例如,假设需要IOA0是下拉输入引脚,则相对应的Data、Attribution和Direction的值均被设为“0”。如果需要IOA1是带唤醒功能的悬浮式输入引脚,则Data、Attribution和Direction的值被设为“010”。与其它的单片机相比,SPCE061A除了每个I/O口可以单独定义其状态外,每个对应状态下的I/O端口性质电路都是内置的,在实际的电路中不需要再外接。例:设A口为带下拉电阻的输入端口,在连接硬件时不用再外接下拉电路。A口和B口的Data、Attribution和Direction的设定值均在不同的寄存器里,用户在进行I/O端口设置时要特别注意这一点。I/O端口的组合控制设置如表4.4所示:表4.4I/O端口的控制向量组合其结构如图4.5所示:图4.5I/O端口结构4.1.4单片机端口资源的分配IOA0~7口:LCD数据总线。IOA8~15口:LCD控制总线。IOB口:键盘输入接口。4.2电压控制电路电压控制电路由五部分电路组成[4]:1、ADC输出放大电路;2、PWM脉宽调制电路;3开关电路;4、滤波电路;5、输入衰减电路;电路如图4.6所示。用户先在键盘中键入将要输出的电压值,刚处理器内部将通过数值转换:(因为D/A输出电压范围是以0~3.3V。如要输出电压为5V,在程序内部则需要将数值除以3倍输出,再在电路外部放大3倍进行匹配),将匹配过的电压从MC3405的2脚输入。MC3405是一个电压控制脉宽调制电路,输出的脉宽波的占空比由输入2脚的电压决定,其脉宽波的频率是由电路中的R1、Rf、R2决定,则输出的波型应该是频率固定,占空比为V2/Vcc的脉宽调制矩形波。经调制过的脉宽波经7脚输出,控制由一个大功率的开关管(电视机的行输出管)组成的开关电路的导通状态。由开关管射极输出波型电压上与输出的波型相似,但电流上却大大增大了。最后通过一个RC滤波电路将脉宽波滤成直流电压输入。但输出的电压因为调制电路误差、输出负载的变化。电压极不稳定。因此有必要对其进行采样比较,达到动态闭环调整的目的。在采样电路中,与DAC相同,ADC的参考电压只能是3.3V,所以要先对采样的电压进行匹配输入(衰减3倍),本设计采用电阻串联分压的原理进行衰减。但是由于负载以及芯片内部电阻会对衰减造成影响,由需要在衰减器的前后加上两个电压跟随器进行隔离。以输入电压为标准,如果输入电压大于设定的电压值,则减小DA输出电压一位数值,再采样回位比较,如此循环,直到输入的电压等于设定的电压值或者接近设定的电压值(有时不可能完全相等)。同理,如果输入电压小于设定的电压,则增大DA输出电压一位数值,再采样回位比较,如此循环,直到输入的电压等于设定的电压值或者接近设定的电压值。这样,就能达到闭环反馈的目的。图4.6电压控制部分4.2.1ADC、DAC电压调整电路为了方便计算,将pwm的调制器电压设定为10V,即当控制电压为10V时,输出满脉宽信号,当电压为0时,输出无脉宽信号。而且输出电压要求为0~10V,但SPCE061A单片机的ADC、DAC参考电压只能为3.3v以下的电压。所以要对D/A电压进行放大,对采样的电压进行衰减。4.2.2脉宽调节电路的工作原理MC3405包含有两个运算放大器和两个比较器,利用一块芯片即能组成脉宽调节电路,如图4.7所示。电路中运算放大器1组成滞廻比较器,运算放大器2组成积分器,构成三角波发生器。其输出送到比较器1反相端,比较器1的同相输入端接OP-7-2的输出端,因此比较器1的输出脉冲的宽度与输入电压的大小成正比。比较器2对比较器1的输出信号整形,使其上下沿更陡,两个5K电阻分别作比较器1和2的开路门输出集电极负载电阻。图4.7MC3405内部结构图下面分析怎么样产生上图波形:刚接通电源时,运放1同相端电位为0,小于反相端电位,使得运放1输出是低电平,经电阻、电容C充电,运放2的输出电压线性增大,当增大到时,运放1的同相端输入电压也为,大于反相端的电平V,则翻转,变为高电平,这时运放2对进行反向充电,输出电压逐步减少,当减少到时,则运放1的输出为低电平,如此反复,将在运算放大器2的输出端得到一线性变化的三角波电压。产生波形如图三(a)、(b)所示的。当输入的电压VC大于时,比较器1输出高电平,当小于时,比较器1输出低电平,由于是一个三角波,从上升到,又从下降到,所以在=时,是转折点,当<时,这段时间,比较器1输出高电平,等到逐渐增大到>时,这段时间,比较器1输出低电平,这样整个过程产生如图(c)的波形,由于不同,使得输出脉冲宽度不同,即占空比不同,起到调节脉宽的作用[5].根据电路原理,进行公式推导:设:,(12)脚电位为:V=式(4.2.1)刚接通电源,=0,<V,=。电容C进行充电。等到充到时,这时:,推得:当=V时,翻转为高电平则:式(4.2.2)推得:式(4.2.3)同理:当运放2输出翻转变为时,电容C放电,当放到,使V1=V时,为低电平则:推得:式(4.2.4)推得: 式(4.2.5)振荡频率:占空比:式(4.2.6)4.2.3脉宽调制电路参数的选择占空比:DC=是MC3405(2)脚输入的电压值式(4.2.7)选取=150K,=300K,=15V,=-5V=15-(-5)=20(v)则:10(V)10(V)5)21(11021))0(5)21(1v1021占空比:DC=取,C=0.01UF则:))(KHz10101501001.010541030036334.2.4开关管输出的电路参数的选择式(4.2.8)当V))(vEVC0.15241026.61001当V02=0v时Vo=0所以V01在0到6.27V变化时输出Vo在0到15V变化4.2.5平滑电容电阻的参数选取由于和的时间常数必须大于等于周期T的5倍所以选=5K=0.1μF则:4.3键盘设计键盘设计如图4.8所示:0—9数值键:设置要输出的电压值复位键(Rst):重设输出电压值存储键(Sav):把当前的电压值保存到存储器预设键(Prst):把存储器的预设电压输出图4.8键盘设计4.4液晶显示用总线方式控制1602液晶显示屏[6],如图4.9所示。图4.9液晶显示电路1602采用标准的14脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。另外引脚"A"和"K"为背光引脚,"A"接正,"K"接负便会点亮背光灯.1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表2所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。表4.101602液晶模块内部的字符高位高位低位0000001000110100010101100111101010111100110111101111XXXX0000CGRAM(1)00P\pくたォスΩXXXX0001(2)!1AQaqぁぐだオズαXXXX0010(3)“2BRbrあけダカセβXXXX0011(4)#3CScsぃげちガゼγXXXX0100(5)$4DTdtいこちキゾδXXXX0101(6)%5EUeuぅごぢギタεXXXX0110(7)^6FVfvうさっクチζXXXX0111(8)>7GWgwぇざつグダηXXXX1000(1)(8HXhxえしァケヂθXXXX1001(2))9IYiyぉじアゲヂιXXXX1010(3)“;JZjzおすィコッκXXXX1011(4)+:KΔk{かずイゴツλXXXX1100(5)><L]l}がせゥサΥμXXXX1101(6)-=Mm]きぜウザΦνXXXX1110(7).>N-n─ぎそェシΧXXXX1111(8)/?O_o┄ぎぞエジΨ1602液晶模块内部的控制器共有11条控制指令,如表4.11所示:表4.11内部控制器指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存储器地址0001字符发生存储器地址(AGG)8置数据存储器地址001显示数据存储器地址(ADD)9读忙标志或地址01BF计数器地址(AC)10写数到CGRAM或DDRAM10要写的数11从CGRAM或DDRAM读数11读出的数据它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)令1:清显示,指令码01H,光标复位到地址00H位置令2:光标复位,光标返回到地址00H令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置指令8:DDRAM地址设置指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据指令11:读数据液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表4.12是DM-162的内部显示地址表4.12DM-162的内部显示地址12345678910111213141516000102030405060708090A0B0C0D0E0F第一行404142434445464748494A4B4C4D4E4F第二行比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)4.5正负电源供电电路图4.13所示是由正输出三端稳压器和负输出三端稳压器共同组成的正、负对称双路输出稳压电路[7],变压器采用副边绕组有中心抽头的变压器。图中的D1和D2是用来保护稳压器的,当输出端接有如图所示的负载时(直接接在+Uo与-Uo之间,其中分布电容Co是一种无形的电容),如果某稳压器的输入端开路,例如图中的A点断开,这时7905无输出,+Uo通过Rl加到7905的输出端,可能造成7905的损坏。但该电路设置了D101,其导通管压降仅为0.7V左右,使加在7905的最大电压不超过0.7V,达到保护7905的目的,7805的保护作用同理。图4.14是供电给恒流源的,它最大的输出电流要求达到2000mA,如果采用图10的电源电路,稳压管的功率不够,可能会损坏稳压管,所以必须采用独立的能提供大电流的电源电路。图4.13正、负对称双路输出稳压电路图4.14供大电流的电源电路第五章软件流程图本系统软件是由一个主程序,一个键盘程序和一个闭环调整子程序组成,它控制着智能稳压电源有条不紊地工作。采用结构化编程,功能模块各自独立。5.1主程序主程序流程图如图5.1所示。上电以后先延时一段时间,然后初始化LCD1602液晶显示屏,首先单片机读出上次使用以后的保存值,显示并且输出相应的电压值,再从键盘输入要设定的电压值,从而显示并输出。延时延时400mS初始化液晶读出存储器预设值显示并输出相应电压值键盘扫描图5.1主程序5.2键盘程序键盘程序流程图如图5.2所示[8]。当键盘有键按下时,程序判断是数值键、复位键、存储键还是预设键,如为数值键则可组成0~255中的任一数值,再继续调用闭环调整子程序,如为复位键时,程序返回,重新输入数值时再次执行键盘程序,为存储键时执行数据存储程序,以上三个都不是时则读入预设子程序。有键按下有键按下消抖0—9数值键复位键存储键预设值输入键组成0—256个数值闭环调整程序存储子程序读入预设值子程序显示子程序重新输入数值图5.2键盘程序图135.3闭环调整子程序闭环调整子程序流程图如图5.3所示。D/A输出电压值取样后进行A/D转换,并读入数值,然后比较所读入的数与设定值,如读入值比设定值大,则将读入值减1后存储返回,再次与设定值比较,如读入值比设定值小,则将读入值加1存储后与设定值进行比较,直到读入值与设定值的差值比较接近,在误差范围内即可[10]。(误差范围内)(误差范围内)接近实际值小大取样读入调整值D/A输出电压值A/D读入电压值比较读入值与设定值减1后输出加1后输出读入调整值图5.3图5.3闭环子程序第六章系统测试和误差分析6.1系统功能测试(1)、系统操作及面板说明0123456789+-RstSavPst空图6.1键盘面板·0—9数值键:预置要输出的电压值·“+”、“-”键:步进调整输出,步进10mA·键入Rst键,重设输出电压值,输出电流即为最小值20mA,同时等待输入下一步的指令,实现不同功能间的切换。·键入(Sav)键,把当前的电压值保存到存储器,方便从新开机后自动输出预设电压值。·键入(Pst)键,把存储器的预设电压输出(2)、扩展了可预设电压值和保存电压值的功能,方便用户使用时快速设置需要的电压值和下一次使用时输出预设的电压值。(3)扩展输出电压过压报警电路,当输出电压大于10V时,蜂鸣器发出警报声[11]。6.2系统误差分析从电路的原理图可以看出,系统的误差主要来自两个方面:(1)、AD的量化误差AD558是10位电压输出D/A转换器,满量程为3.3V,其量化误差为。按满度归一化的相对误差为。(2)、基准电压温漂引入的误差。参考文献[1]罗亚飞.凌阳16位单片机基础[M].北京:北京航空航天大学出版社,2005.423~456.[2]张培仁张志坚高修峰.十六位单片微处理器原理及应用(凌阳SPCE061A)[M].北京:清华大学出版北京科海电子出版社,2005.364~380.[3]雷思孝李伯成雷向莉.单片机原理及实用技术--凌阳16位单片机原理及应用[M].西安:西安电子科技大学出版,2004.319~347.[4]张占松.开关电源原理的原理与设计(修订版)[M].电子工业出版社,2004.398~410.[5]王鸿麟.现代通信电源(修订本)[M].人民邮电出版社,1998.400~420.[6]郭强.液晶显示应用技术[M].电子工业出版社,2003.591~600.[7]粱宗善.电子技术基础课程设计[M].武汉:华中理工大学出版社,1995.220~235.[8]曹巧.援单片机原理及应用M].北京:电子工业出版社,1997.145~182.[9]Rev.Sci.Instrum.1MichaelS.Caffertyeta1.StablecurrentsupplywithProtectioncir-cuitsforalead-saltlaserdiode,1989.124~154.[10]张毅刚.MCSSI单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1990.54~63.[11]何立民.单片机应用技术选编(1)[M].北京:北京航空航天大学出版社,1993.110~120.附录附录1//===================================================================//工程名称: dianya.spj//功能描述: 智能稳压电源源程序//IDE环境: SUNPLUSu'nSPIDE1.8.0//组成文件: main.c/SPCE061V004.H//作者:吴仁杰//更新日期: 2008-4-14//===================================================================#include "SPCE061V004.H"//该文件已包括所有的头文件#defineucharunsignedchar#defineuintunsignedint#definenop_nop_();#definebei0.78125#defineda1#definewc0xcfff//根据硬件译码而得到#definewd0xdfff#definerc0xefff#definebusy0x80//用于检测LCD状态字中的Busy标识unsignedcharcodena[]={"volt-source"};//开机欢迎文字unsignedcharcodest[]={"System-starting"};unsignedcharcodehomepage[]={"setting:"};//设定值unsignedcharcodeemail[]={"Measure:"};//测量值unsignedcharcodesave11[]={"Start-saveing"};//保存设定unsignedcharcodesave12[]={"Please-wait"};unsignedcharcodesave21[]={"The-data"};unsignedcharcodesave22[]={"was-saveed"};unsignedcharcodeload1[]={"Load-the-data"};unsignedcharcodema[]={"V"};unsignedcharcodeerror1[]={"Beyond-lowest"};//设定过小提示unsignedcharcodeerror2[]={"Beyond-highest"};//设定过高提示unsignedcharcodeerror3[]={"select-again"};unsignedcharcodenum[]={"0123456789abcdef"};//数字编码voiddisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);voiddisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);voiddisplaynum(uchars,ucharn);ucharerror(uchar);ucharcontrol(void);voiddelay2ms();ucharkeycode;ucharshu,p;ucharsetting;ucharvolt;ucharouput;sbitP32=P3^2;ucharjg,flag,int0flag;sbitp30=P3^0;voiddelay5ms(void)//5ms延时{unsignedintTempCyc=5552;while(TempCyc--);}//400ms延时voiddelay400ms(void){unsignedcharTempCycA=5;unsignedintTempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);};}//=====================================设置I/O口的方向,参数1为A、B口选择,参数2为输入、输出选择voidioinit(ucharx,uchary){if(x==a){if(y==0)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论