《简易数控直流电源设计的报告.pdf》由会员分享,可在线阅读,更多相关《简易数控直流电源设计的报告.pdf(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-.简易数控直流电源-可修编-.摘要数控直流电源是一种常见的电子仪器,广泛应用于电路,教学试验和科学研究等领域。目前使用的可控直流电源大部分是点动的,利用分立器件,体积大,效率低,可靠性差,操作不方便,故障率高。随着电子技术的发展,各种电子,电器设备对电源的性能要求提高,电源不断朝数字化,高效率,模块化和智能化发展。以单片机系统为核心而设计的新一代数控直流电源,它不但电路简单,结构紧凑,价格低廉,性能优越,而且由于单片机具有计算和控制能力,利用它对数据进行各种计算,从而可排除和减少模拟电路引起的误差,输出电压和限定电流采用数输入采用键盘方式,电源的外表美观,操作使用方便,具有较高的使用价值。关
2、键词:数控直流电源单片机ABSTRACTNumerical control dc power is a mon electronic instrument,is widely used in thecircuit,the teaching experiment and scientific research,etc.Current use of controlledmost of the dc power supply is the point start,the use of the device division,big volume,low efficiency,poor reliabi
3、lity,operation convenience,not high failure.With thedevelopment of electronic technology,various kinds of electronic,electrical equipmentto improve the performance requirements of power,the power supply,high efficiency,the constant digital modular and intelligent development.Based on the single chip
4、 putersystem as the core and the design of a new generation of numerical control dc power,it-not only circuit is simple,pact structure,the price is low,superior performance,and-可修编-.because the single-chip microputer with the calculation and control ability,use it fordata,so as to eliminate all kind
5、s of calculation and reduce the error caused by theanalog circuit,output voltage and current limit the number of the keyboard input way,the power supply appearance,convenient in operation,has higher application value.Key words:Numerical control dc powerSingle-chip microputer-可修编-.目录第一章设计任务与要求.11.1基本
6、功能.11.2扩展与创新.1第二章系统方案.22.1 直流稳压电源.22.2总设计方案.2第三章系统硬件设计.53.1数控部分.53.2稳压输入部分.7第四章软件设计.94.1软件设计流程图.9第五章测试结果及结果分析.115.1系统功能测试.115.2系统指标测试.115.3系统误差分析.12致.13参考文献.14附录.15-可修编-.第一章设计任务与要求1.1 基本功能(1)输出电压:围 09.9V,步进 0.1V,纹波不大于 10mV;(2)输出电流:500mA;(3)输出电压值由数码管显示;(4)由“”、“”两键分别控制输出电压步进增减;(5)为实现上述几部件工作,自制一稳压直流电源,
7、输出15V,5V。示意图如下:图 1.11.2 扩展与创新(1)输出电压可预置在 09.9V 之间的任意一个值;(2)用自动扫描代替人工按键,实现输出电压变化(步进 0.1V 不变);(3)扩展输出电压种类(比如三角波等)。-可修编-.-可修编-.第二章第二章2.1直流稳压电源系统方案系统方案稳压电源是能为负载提供稳定交流电源或直流电源的电子装置。对一个理想的直流稳压电源来说,应具有下述特点:(l)在直流和所有频率下,输出阻抗为零;(2)在交流电源电压很宽的围,并在供电电路所要求的负载电流围,调整率为零;(直流电压输出恒定)(3)功耗为零;(4)电网电压和负载电流变化时,输出电压能立即恢复稳定
8、;(5)当过载电流消除时,过载保护装置能自动恢复到正常工作状态。为了给元器件提供稳定的电流输出,我自制了一个直流稳压电源,电路图如下:图2.12.2总体设计方案方案一:方案一如图 2.2 所示,采用单片机+数字电位器方案。此方案就是把常用的电位器调节电源中的机械式电位器用数字电位器代替。数字电位器是没有机械抽头,具有较小的震动公差和较高的机械可靠性,且其可编能力允许可重复-可修编-.可靠地返回同一抽头位置,因此此方案线路较为简单、可靠。但现有的数字电位器分辨率有限,常见的有 32 抽头、64 抽头,构成的分压电路精度有限,无法满足设计要求。220V变压器整流滤波串联调整DC数字电位器AT89C
9、51P0图 2.2方案一方案二:方案二如图 2.3 所示,此方案采用单片机+串联调整型稳压电源。单片机输出电压控制数字量送至 DA/转换器,经 DA/转换器输出的模拟电压作为误差放大器的基准电压。由于理想 DA/转换器的输出量 A 与输入量 D 和 R 的关系应为 A=RD。对一个确定的 DA/转换器,模拟基准电压 R 往往是一个固定值,相当于一个比例系数。显然这里 DA/转换器输出的电量不能连续可调,而只能以所用 D/A 转换器的绝对分辨率为量化单位增减,所以 D/A 转换器实际上是准模拟量输出。这样通过改变稳压电源的基准电压的方法就可使实现输出的步进增加(或减小),稳定性高,纹波小,可靠性
10、高,调试容易。缺点是要求功率器件一调整管严格工作在线性区,靠调整管之间的电压降来稳定输出,当输出电压较低时,稳压电路的输入输出端压降太大,调整管静态损耗大,发热量大,使得电路总效率不高。-可修编-.220V变压器整流滤波串联调整DC输出AT89C51D/A电路比较放大取样电路图 2.3方案二方案三:采用 EasyARM2103 为核心控制器,具有电压可预置、可步进调整、输出的电压信号和预置的电压信号可同时显示的数控直流电源,其系统框图如图2.4 所示。系统由 EasyARM2103 开发板、八位 LED 数码显示、电源电路、D/A、A/D 电路、功放电路、短路保护和报警电路、稳压输出电路八部分
11、组成。系统通过“开关”、“+”、“-”三个按键来控制预置电压的升降,并通过数码管显示。EasyARM2103 单片机送出相应的数字信号,在 D/A 转换之后输出电流,经集成运放 OP07 转换、OP07 放大、RC 网络滤波,最终稳定。同时由 LED 数码管显示实际输出电压。图 2.4方案三综合观上三种方案,不难确定方案三为最佳方案。-可修编-.-可修编-.第三章第三章系统硬件设计系统硬件设计3.1数控部分主要由数字电路构成,它要完成键盘控制、预置电压显示控制、电压控制字输、数码管显示控、电流过流软件保护及报警等功能。由于控制功能多,选用EasyARM2103 开发板作为主控系统。其核心芯片图
12、如图 3.1。图 3.12103 核心控制芯片3.11ARM2103 开发板LPC2103 是一个基于支持实时仿真的 16/32 位 ARM7 TDMI-S CPU 的微控制器,并带有-可修编-.32kB 的嵌入高速 Flash 存储器,128 位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。32/16 位定时器、增强型 10 位 ADC、定时器输出匹配 PWM特性、多达 13 个边沿、电平触发的外部中断、32 条高速 GPIO,使得 LPC2103 微控制器特别适用于工业控制和医疗系统中,其食物图如图3.2 所示图 3.23.12键盘显示电路此次的显示部分由键盘显
13、示板来完成,它由 2 个 8 位 LED 数码显示器和 2 片SN74HC164 芯片加上 8 个按键组成,具体电路图如下图 3.3。-可修编-3.2稳压输出部分图3.3晶体三极管(TIP122、TIP127、9015、9014)、基准电压源组成。-.图3.4-可修编-稳压输出部分原理图如图 3.4 所示。这部分将控制部分送来的电压控制字数据转换成稳定电压输出。他由数模转换器(DAC0832)、集成运放(OP-07CP)、-.3.21主电路的工作原理及参数计算电压输出围 09.9V,步进0.1V,共有 100 种状态,8 为字长的 D/A 转换器具有256 种状态,能满足要求,设计中用两个电压
14、控制字代表0.1V,当电压控制字从0,2,4,,198 时,电源输出电压为 0.0V,0.1V,9.9V。电路选用的 D/A 转换芯片是DAC0832,该芯片价廉且精度较高。DAC0832 属于电流输出型 D/A,输出的电流随输入的电压控制字线性变化。为了得到电压,还需外接一片运放来实现电流到电压的转换。该运放输入端的输入电流对转换精度影响打,DAC0832 输出地电流有几十微安的变化,若运放输入端的输入电流为 0.1uA,如 uA741 的输入电流约为此值,且有一定变化,则会引入相当于 12 个电压控制字的误差,因此应选用高输入阻抗的运放,如 JFET 输入的运放 LF356,他的输入电流可
15、以忽略。DAC0832需要外接基准电压,此基准电压的性能决定了输出电压的性能,要求基准电压具有高稳定度和低纹波,故选用 LM336-5 作为基准源,当 DAC0832 采用 5V 基准电压时,D/A 转换电路的满幅输出为 5.0V(电压控制字为 255 时),由于实际最大用到电压控制字198,因此 D/A 部分最大输出电压U(imax)=(198/255)*5.0=3.882V。D/A 转换部分输出电压 Ui 作为电源功放机的输入电压。其输出电压U0=(1+(Rpi+R3)/R2)Ui3.22过流保护电路在图 3.4 中,Q1(9015)、Q3(9014)构成过流保护电路。正常工作时,Q1截止
16、,Q1 集成级电平为-15V,使 Q3 截止,INTO 输出高电平,不触发中断。当输出电流过大时(例如 Io500mA)时,取样电阻 R2(1.5 欧姆)上的压降0.75V。调节电位器使 Ube0.6V 时,三极管 Q1 导通,Q1 的等电极电平提高,于是三极-可修编-.管 Q2 也导通。INTO 呈现低电平,触发 LPC2103 中断,执行中断保护程序。3.23扩展输出负电源输出负电压只要在 D/A 转换端再介入一级反相加法器,其输出电压 U0 与输入电压 Ui 的关系为U0=-2Ui+3.882(V)这样一来输出电压的变化围为 3.882 3.882 V,从而扩展了负电路。3.24扩展输出
17、电压种类可以采用专用波形发生器芯片,如 LM324,或者采用 DDS 技术,将波形数据存储在 RAM 存储器芯片中,由 CPU 送出量化后的波形数据,即可在输出端得到相应的波形。由于时间仓促,输出负电源和扩展电压种类都未能实现。-可修编-.第四章第四章软件设计软件设计4.1软件设计流程图(1)主程序流程图如图4.1 所示,主要包括D/A 转换处理子程序,A/D 转换处理子程序,调整 DA 输出、键盘处理子程序等。(2)过流保护程序流程图及其计数器中断流程图如图 4.3 所示。(3)键盘扫描程序流程图如图 4.3 所示。图4.1-可修编-.图 4.2-可修编-.图 4.3-过流保护和计数器中断流
18、程图-可修编-.第五章测试结果及结果分析5.1系统功能测试(1)直流稳压电源调试此模块的输入电压为 16V 的交流变压器,经 LM7805 LM7905 LM7815 LM7915芯片和一些电容及电感滤波后输出正负 5V,正负 15V 的直流电压,稳度精度可以达到要求。(2)DAC 测试:调整 Iout1/Iout2 的基准电压使输入 255 时输出电压 7.5V。用软件测试输出。(3)放大器调试:经 DAC0832 输出后输入 OP07,经调试后可行。5.2系统指标测试(1)输出端接空载测量仪器:万用表及示波器。记录数据如下表 5.1数据记录(室温下)表 5.1预置电压/V(数码显示)输出电
19、压/V(数码显示)实测电压/V(1905a测量)0.0001.0052.0103.0164.0205.0256.0317.0328.0369.0429.9470.001.002.013.014.025.026.037.038.039.049.9410.021.032.043.054.065.076.087.098.0109.0119.9(2)输出 0.5A 时-可修编-.测量仪器:万用表及示波器。记录数据如下表 5.2数据记录(室温下)表 5.2预置电压/V(数码显示)输出电压/V(数码显示)实测电压/V(1905a测量)0.0000.9851.9852.9954.0005.0056.0117
20、.0128.0169.0229.9260.000971.982.993.995.006.017.018.019.029.9210.021.032.043.054.065.076.087.098.0109.0119.95.35.3系统误差分析系统误差分析从电路的原理框图可以看出,系统的主要误差来源于:(1)DAC0832 的量化误差DAC0832 为 8 位 D/A 转换器,满量程为 10V 的量化误差为+/-(1/2)Lmbs+/-20mV按满度归一化的相对误差为+/-0.2%。(2)运放零点漂移由运算放大器的零点漂移,温度漂移等带来的误差,可以通过温度补偿措施来解决此误差。(3)A/D,D/
21、A 转换误差受 AD 转换器精度及基准源稳定程度的限制,不可避免地带来一定的误差,为了更精确的输出恒流电源,必须选用更多位数的 AD、DA 芯片。(4)因外界突发干扰或仪表显示值等引起的随机误差或粗大误差。(5)基准电压温漂引入的误差LM336 在 040围漂移不大于 4mV,故相对误差=+/-2mV/5mV=+/-0.04%-可修编-.-可修编-.致致为期 2 周的课程设计结束了,有付出就会有收获,在这两个星期里,我学习了制作一个产品了完整流程,鉴于个人专业素质的原因,很多问题我并不能依靠自己在短时间的完成,所以我虚心的向老师和同学们请教,而且也得到了老师和同学们耐心和仔细的指导,除了学习知
22、识外,我感受到了学习间交流的乐趣。当然,最深刻的,我明白了自己专业技能的不足,甚至在一个完整的流程里,需要用上许许多多的知识,包括本专业的也包括外专业的以及生活中的一些常识,我想,这方面我需要不断的加强。在实习中,我感受到了一种学习心态的重要性,在调试一直调试不出来的时候,是否还能有那份坚持,在电容爆掉时,是否还能抛开那份气馁,在程序一直运行不成功的时候,是否还能有那份耐心,在时间一晃而过而还毫无进展的时候,是否还能有那份镇定。在这次试验中,我要感指导我的老师们,他们那耐心与细致的指导是我前进道路上了一站明灯,我还要感我的同学们,他们热心的帮助与融洽的氛围让我有一个舒适的学习环境。最后,我要说
23、,学习,永无止尽。-可修编-.参考文献参考文献【1】华成英童诗白模拟电子技术基础高等教育2006【2】阎石数字电子技术技术高等教育2006【3】铃木雅臣晶体管电路设计科学2004【4】周立功深入浅出 ARM7致远电子2007【5】高吉祥.全国大学生电子设计竞赛培训系列教程模拟电子线路设计.电子工业.2007-可修编-.附录附录A A程序清单:#include config.h#include#include UART.H#definekey 15#defineDATA0832(130)#defineSHCP0832(128)#defineSTCP0832(129)#defineDACS0832
24、(131)uint8Data0832=255;/定时器中断标志uint8T0Flag=FALSE;uint8DATA9;uint8i=0;/用于记录刷新的位数,显示器共有八位,每显示一位就 i+,显示下一位,直到 i=7 时就令 i=0;重新从第一位显示起uint8display=8;uint8keydown=9;/按键位置寄存-可修编-./段码,其中的 digitable10为不显示任何容const uint8digitable13=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00,0 x40,0 x80;/位
25、码const uint8 selectable8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/*函数名称:Timer0_InitExt()*功能描述:TIMER0 初始化*入口参数:无*出口参数:无*/void DA_dataInit(void)PINSEL1=(PINSEL1&0XFFF00FFF);/*设置 P0.22-P0.25 是GPIO 口*/IO0DIR|=DATA0832|SHCP0832|STCP0832|DACS0832;/输出-可修编-./*函数名称:Timer0_InitExt()*功能描述:TIMER0 初始化*入口
26、参数:无*出口参数:无*/void HC595send_data(uint8 data)/要传输的数据,建议用数组的方法来查询uint8 i;IO0CLR|=STCP0832;/锁存器for(i=0;i8;i+)IO0CLR|=SHCP0832;if(data&0 x80)!=0)IO0SET|=DATA0832;elseIO0CLR|=DATA0832;data=data 1;IO0SET|=SHCP0832;-可修编-.IO0SET|=STCP0832;/锁存器/*函数名称:Timer0_InitExt()*功能描述:TIMER0 初始化*入口参数:无*出口参数:无*/void DAC08
27、32_SendData(uint8 data)IO0CLR|=DACS0832;HC595send_data(data);IO0SET|=DACS0832;/*-可修编-.*函数名称:Timer0_InitExt()*功能描述:TIMER0 初始化*入口参数:无*出口参数:无*/void Timer0_InitExt(void)T0TC=0;/*定时器设置为 0T0PR=0;/*时钟不分频*/*/T0MCR=0 x03;/*设置 T0MR0 匹配后复位 T0TC,并产生中断标志*/T0MR0=Fpclk/400;/*2.5 毫秒定时刷新频率为 50HZ*/T0TCR=0 x01;/*启动定时器
28、/*函数名称:IRQ_Timer0()*功能描述:TIMER0 中断服务程序*/-可修编-.*入口参数:无*出口参数:无*/void _irq IRQ_Timer0(void)T0Flag=TRUE;/T0 中断标志置位T0IR=0 x01;/清除中断标志VICVectAddr=0;/*函数名称:IRQ_Init()*功能描述:设置定时器 0 中断 IRQ*入口参数:无*出口参数:无*/void IRQ_Init(void)-可修编-.VICIntSelect=0 x00;/所有中断通道设置为 IRQ 中断VICVecttl0=0 x20|0 x04;/设置定时器 0 中断通道分配最高优先级V
29、ICVectAddr0=(uint32)IRQ_Timer0;/设置中断服务程序地址VICIntEnable=1 0 x04;/使能定时器 0 中断/*函数名称:void CONVBIT(uint32 num,uint32 place)*功能描述:*入口参数:显示的数的容(num),显示容在数组中的位置*出口参数:无*/void CONVBIT(uint16 num)-可修编-.DATA0=num%10;DATA1=num%100/10;DATA2=num%1000/100;DATA3=num%10000/1000;DATA4=num%100000/10000;DATA5=num%100000
30、0/100000;DATA6=num%10000000/1000000;DATA7=num/10000000;DATA8=10;/黑码/*函数名称:MSPI_Init()*函数功能:初始化 SPI 接口,设置为主机。*入口参数:无*出口参数:无*/voidMSPI_Init(void)-可修编-.SPI_SPCCR=0 x08;/设置 SPI 时钟分频SPI_SPCR=(0 3)|/CPHA=0,数据在 SCK 的第一个时钟沿采样(1 4)|/CPOL=1,SCK 为低有效(1 5)|/MSTR=1,SPI 处于主模式(0 6)|/LSBF=0,SPI 数据传输 MSB(位 7)在先(0 0;
31、uiDly-)for(i=0;i50000;i+);-可修编-.uint8 uiVal;/*Function name:*Descriptions:机显示出来*input parameters:无*output parameters:无*Returned value:无*/int main(void)charcStr20;PINSEL0=0;PINSEL0=(0 x01 8)|/设置 P0.4 脚为 SCK(SPI0)(0 x01 12);/设置 P0.6 脚为 MISO(SPI0),其它脚都为默Main利用 ADC 对通道 0 的电压进行采样,并把值发送到 PC-可修编-.认的 GPIO 功
32、能PINSEL1=PINSEL1&(0 x03 12);/*将 P0.22 设置为 AD 功能*/PINSEL1=PINSEL1|(0 x03 12);IO0DIR&=(0 x01 5);/P0.5 为 GPIO 输入IO0DIR|=17;MSPI_Init();/初始化 SPI 接口UARTInit();/*串口初始化*/DA_dataInit();Timer0_InitExt();/定时器初始化IRQEnable();/IRQ 中断使能IRQ_Init();/设置及开启定时器 0 中断display=00000000;/*进行 ADC 模块设置*/-可修编-.AD0CR=(1 0)|/*选
33、择通道 0*/(Fpclk/1000000)-1)8)|/*转换时钟为 1MHz*/(0 16)|/*BURST=0,软件控制转换操作*/(0 17)|/*CLKS=0,使用 11clock 转*/(1 21)|/*PDN=1,正常工作模式*/(0 22)|/*TEST=0,正常工作模式*/(1 24)|/*设置直接启动模式*/(0 27);/*设置模式,直接启动模式下无效*/while(1)/*启动 AD 转换-可修编-.*/AD0CR|=(1 24);while(AD0STAT&0 x01)=0);/*读取 AD0STAT 的通道 0 的 Done*/AD0CR|=(1 6)&0 x3FF
34、;uiVal=(uiVal*3300)/1024;ADC 的参考电压为 3300mV*/sprintf(cStr,%4d mV VIN0,uiVal);/*格式化显示数据*/ISendStr(0,0,0 x30,cStr);-/*/*-可修编-.将数据发送到 PC 机显示*/DelayNS(50);if(T0Flag=TRUE)/2.5ms 到T0Flag=FALSE;DAC0832_SendData(Data0832);CONVBIT(display);IO0SET=17;if(i=2)|(i=6)MSPI_SendData(digitableDATAi|0 x80);/其他位不带小数点el
35、seMSPI_SendData(digitableDATAi);/其他位不带小数点MSPI_SendData(selectablei);/发送显示位码IO0CLR=10)Data0832-=2;display-=100010;elsedisplay=display;break;-可修编-.case 6:/确定修改键Data0832=0;display=00000000;-break;case 7:/确定修改键if(Data0832198)Data0832+=2;display+=100010;elsedisplay=display;break;-可修编-.keydown=0 x09;/恢复为无键按下,重要的一步,在此出过错-else if(IO0PIN&(key)=0)/有键按下DelayNS(100);if(IO0PIN&(key)=0)keydown=i;i=(i+1)%8;/使 i 在 0-7 之间循环return(0);-可修编-