欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    电子设计大赛-直流数控稳压电源.doc

    • 资源ID:28426882       资源大小:3.39MB        全文页数:125页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子设计大赛-直流数控稳压电源.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date电子设计大赛-直流数控稳压电源摘要:本系统以直流电压源为核心,STC89C52 单片机为主控制器,通过键盘来设置直流电源的输出电压,设置步进等级可达0.1V,输出电压范围为09.9V,输出电流为500mA,并 由数码管显示输出电压值。由“”、“”两键分别控制输出电压步进增减,并且输出电 压可预置在09.9V 之间的任意一个值。扩展输出电压种类后可输出三角波、梯形波、锯齿波、方波等波形。本系统由单片机程控输出数字信号,经过D/A 转换器(AD0832)输出模拟电流量,再经过运算放大器隔离放大输出模拟电压量,控制稳压芯片L78电子设计大赛参赛题目:数控直流稳压电压源设计参赛队员:王默超 徐建 孟祥举 李艳娇 张春娜摘要:本系统以直流电压源为核心,ATC89S52 单片机为主控制器,通过键盘来设置直流电源的输出电压,设置步进等级可达0.1V,输出电压范围为09.9V,输出电流为500mA,并 由数码管显示输出电压值。由“”、“”两键分别控制输出电压步进增减,并且输出电 压可预置在09.9V 之间的任意一个值。扩展输出电压种类后可输出三角波、梯形波、锯齿波、方波等波形。本系统由单片机程控输出数字信号,经过D/A 转换器(DA0832)输出模拟电流量,再经过运算放大器隔离放大输出模拟电压量,控制稳压芯片LM7805 电压的变化而输出不同的电压。实际测试结果表明本系统输出电压值精确度较高。本系统实际应用于需要高稳定度小功率恒压源的领域。 关键词:数控直流电源,ATC89S52,DAC0832,OP07,精密基准源LM336-2.5一.绪论1.1 设计背景随着电子技术的迅速发展,各种电子产品层出不穷,不过不管是哪种电子产品或设备,都需要电源供电才能进行正常的工作,而且对于不同的产品或设备来说,其需要不同的工作电源,但是往往市面上的很多电源模块都只能输出固定而单一的电压,从而不能提供各种不同数值的电压,因此,在这里做一个数控直流电源的设计。该数控电源采用步进调整方式,调整范围为0.0V9.9V,调整手段采用按键进行调整,当需要改变电压值时,启动数控系统,输入想要得到的电压值,再按下确定键,即可输出相应的电压。该系统采用单片机作主控器件,结合软件和硬件设计方法,使该系统的结构较简单,可控性强,使用也很方便。1.2 设计任务1. 基本功能实现:(1) 可输出电压:范围09.9V,步进0.1V,纹波不大于10mV;(2) 可输出电压值由数码管显示;(3) 由“+”、“-”两键分别控制输出电压步进增减;(4) 为实现上述几部件工作,自制一稳压直流电源,输出输出± 15v,+5v;2扩展功能与创新:(1)输出电压可预置在09.9V之间的任意一个值; (2)扩展输出电压种类(比如三角波等);(3)最大输出电流可达1.5A;(4)负载电流在01.5A间变化时输出电压的变化量不超过0.1V; (5)设计并制作一个电子负载,用于测试上述电源的负载调整率,电子负载恒定电流的可调范围为0.1A1.5A。二.方案论证2.1方案一说明把220V 的交流电经过变压,整流,滤波,调整后输出,对输出电压的控制是通过键盘给 单片机ATC89S52 输入数据,经过DAC0832 转换输出-0.990V 的电压。再经过运放放大比较,通过L7805 输出09.9V 的电压并显示在数码管上。方案一原理框图2.2方案二说明通过键盘给单片机ATC89S52 输入一个数据,这个数据在数码管上显示出来,单片机把这个数据给DAC0832 转换成模拟信号后经过运算放大器的处理后最终输出。方案二原理框图比较这两种方案,两种方案均是通过按键命令单片机给DAC 数字量然后经过DAC 和运放输出模拟量。但第一种方案又将输出量采集回来与放大后的电压量比较使得输出电压更加精准,同时方案一是经过LM7805 稳压芯片调整稳压,7805输出电流最大可达到1.5A,使得输出电流 能够达到要求。而方案二是经过运放放大后的电压直接输出,电流很小。所以采用第一种设计方案完成设计任务。三.硬件系统设计3.1电源设计作为一个电路系统来说,电源当然是必不可少的,这里需要三电源供电,即+5V、±15V。+5V供数字部分使用,±15V供模拟放大部分使用,三种电压都共用一个地。电源电路如图所示,首先采用带中间抽头的15V变压器,获得±15V的交流电压,再通过整流、滤波电路,获得±15V的直流电压,这时已经获得了两个电压值,再利用所获得的电压进行处理,即可获得+5V电压,这里采用三端稳压器LM7805,LM7805的稳压输出值为+5V,正好符合要求,它的体积较小,且只有三个引脚,即输入、接地和输出,接线比较方便,重要的是用它来降压可使电路结构很简单。3.2 单片机控制电路设计我们采用8052系列的AT89S52作为CPU,AT89S52是一种带4K字节FLASH可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。主要特性1)与MCS-51兼容 ;2)8位字长的CPU;3)可在线ISP编程的4KB片内FLASH存储器,用于程序存储,可擦写1000次;4) 256B的片内数据存储器,其中高128字节地址被特殊功能寄存器SFR占用;5)可编程的32根I/O口线(P0P3);6)2个可编程16位定时器;7)一个数据指针DPTR;8)1个可编程的全双工串行通信口;9)具有“空闲”和“掉电”两种低功耗工作方式;10)可编程的3级程序锁定位;11)工作电源的电压为5(1±0.2)V;12)振荡器最高频率为24MHz;13)编程频率3 24 MHz,编程电流1mA,编程电压为5V。3.3 数模转换电路设计由于数控电源输出的是模拟信号,而单片机输出的是数字信号,所以,必须要通过数/模转换。数/模转换芯片众多,有电流输出,也有电压输出,分辨率也有所不同,有8位,12位,16位等等,不同的分辨率,价格也有很大的差距,因数控电源输出的精确度要求不是很高,且从成本上考虑,这里使用8位的数/模转换器DAC0832即可。3.3.1 DAC0832的结构及引脚功能DAC0832是用CMOS工艺制成的8位D/A转换芯片,它主要包括两个8位寄存器和一个8位D/A转换器构成,其两个寄存器可以进行两次缓冲操作,使器件的操作有更大的灵活性。DAC0832芯片采用20引脚双列直插封装,各引脚功能如下: CS:片选信号(低电平有效)。ILE:输入锁存允许信号。WR1:写信号1(低电平有效)。当ILE=1时,且当CS与WR1同时有效才能把数字量锁存到8位输入寄存器中;当WR1为高电平时输入数据锁存到输入寄存器中。以上三个信号构成一级输入锁存。XFER:控制传送信号。WR2:写信号2(低电平有效),用于将锁存在输入寄存器数据送到DAC寄存器中,只有在XFER和WR2同时有效时才把输入寄存器中的数据锁入DAC寄存器中。这样构成了二级锁存。D0D7:8位数据输入线,TTL电平。Iout1和Iout2:输出电流。其中Iout1在D/A寄存器内容全为1时,输出电流最大;Iout2在D/A寄存器内容全为0时,输出电流最大,Iout1和Iout2之和为常数。AGND:模拟信号地。DGND:数字地。UREF:基准电压。一般为-10V+10V。Rfb :反馈电阻。该电阻被制作在芯片内,用作运算放大器的反馈电阻。3.3.2 DAC0832的数字接口因在本系统中,单片机不仅要送D/A转换数据,还要送显示数据,且都是和P0口相连,而且,数控电源的转换速率要求不高,输出也只有一路,因此,本系统采用单缓冲工作方式DAC0832与单片机的连接电路图如图3.1所示。图 3.1 DAC0832与单片机的连接电路图 当需要进行转换时,CS和WR有效,单片机从P0口输出数据到DAC0832上并启动转换,这时,DAC0832将转换后的电流值从Iout1和Iout2输出。3.3.3 DAC0832的模拟输出DAC0832转换器输出的是电流信号,因此必须要经过电流-电压转换才能输出电压信号。DAC0832是8位数/模转换器,基准电源为+5V时,其输出电压的计算公式为D输入数据;u输出电压.因为DAC0832的分辨率不是很高,所以转换精度必然有些欠缺,不过由于数控电源的电压输出范围为0.0V9.9V,步进电压调整值为0.1V,而DAC0832的输出模拟电压步进值约为0.02V,若再放大5倍,则刚好使数控电源的步进值为0.1V,当输入数据为65H(十进制101)时,输出电压u1.98V,再放大5倍后约为9.9V,即为要求的最大值。因此,DAC0832转换器的数据输入范围为0065H,以提供100个调整步进。3.4 运算放大部分设计 预算放大电路选用双电源供电的高精度运算放大器OP-07。将其连成反向比例放大电路用。于反向和放大D/A 转换后输出的负电压,将此电压反向后放大10倍得到需要的0-9.9V。 为防止通过电源内阻造成低频振荡或高频振荡需要在OP-07 正负供电电源的输入端对地一端分别加入一个10mF 的电解电容和一个0.01mF-0.1mF 的高频滤波电容。3.5稳压基准源设计 稳压基准源采用LM336-2.5稳压芯片来稳定电压,将电压稳定在2.56V。然后提供给DAC,就可以使得8位DAC 的最小精度达到0.01V这个精确值,从而减小转换误差。3.6按键部分设计 为使得编程简单,按键采用四个独立式按键Key0-Key3。分别接于单片机的P2.0-P2.3 口。其中Key0 为功能键,采用自锁按键。实现功能一:预设电压模式和步进模式电压的转换;实现功能二:输出波形的确定和三角波,梯形波,锯齿波和方波的转换。 Key1 键和Key2 键集步进和预设功能为一体,由Key0 功能键配合使用。Key3 键为波形调整键,通过Key3 可选择输出的波形类型。3.7显示部分设计 LED显示电路有静态显示和动态显示,静态显示是指所有的LED数码管同时显示,这种显示方法使得软件结构比较简单,显示效果好,不过电路结构比较复杂,占用处理器的端口较多,功耗也较大。动态显示是指处理器定时地对LED数码管扫描,数码管分时工作,每次只有一个数码管显示,由于扫描的频率比较高,又因人眼的视觉暂留,所以,看起来,似乎所有的数码管同时在显示,采用这种方法的电路结构变得较简单,占用处理器的端口较少,功耗也较低,不过软件结构比较复杂,必须要在软件中消隐,而且显示的效果受到扫描频率的影响。数码管采用四位一体共阴极数码管,考虑到节省I/O 口,其驱动电路由两片74HC573 锁存器来实现。3.8功率放大部分设计 电压经过7805 比较输出后再经过TIP122 和TIP127 搭建的推挽放大将功率二次放大。四.系统软件调试部分4.1预设电压流程图电压预设断开Key0Key1”±”闭合Key0输出电压4.2主程序流程图是是否变换波形开始初 始 化否是否输出波形波形输出确定波形种类选择否是是否跳出波形输出是是否步进“±”输出电压按Key1 Key2实现步进“±”否是按下功能键确定输出按Key1 Key2预置数值功能键 设置是否预置电压否4.3输出波形流程图按下Key3键选择波形 数码管显示预设波形代码闭合Key0键确认输出波形输出波形再次按下Key3再次确认输出断开Key0键五.系统功能指标及参数5.1 系统调试(1)电源部分调试:先断开所有除输入电源以外的其他电源接入线,在外部电源输入部分加入正负20 V的压, 通过L7815 的1脚,和L7915 的2脚,后用万用表测量L7815 的3脚为15V,L7915D 3 脚为 -15V,L7805 的3脚为+5V,同时测试单片机,DAC0832,放大器等底座接口供电。电源部分正常。 (2)单片机系统测试:编写简单程序(点亮发光二极管)测试单片机系统正常。(3)调试LED 显示:编制简单的显示小程序验证正常。 (4)按键测试:编写简单程序验证正常。 (5)DAC 测试:调整基准电压使输入255 时输出电压-2.56V;输入0 时输出电压为0。 (6)放大器调试:首先使输入电压量为0,调整OP07 的1脚和8脚之间的调零电阻,使零飘为0。然后使输入电压量为设计最大值,调整OP07的R电阻使得放大倍数为10倍。5.2 系统测试测试时间:2011年7月8日星期五测试数据表格(常温下)123456789预置 电压1.002.003.004.005.006.007.008.009.00实测 电压1.051.942.963.914.945.976.957.948.905.3 系统误差分析从电路原理图分析得出,系统的主要误差有: (1)自制稳压电源电压不稳,影响系统供电和LM336 的基准精度。 (2) DAC0832 的量化误差,和由于LM336-2.5 所给出的VREF不是准确的2.56V 造成DAC 的转换精度不是0.01V。 (3)放大器放大的线性失真引起的误差,以及经过0 点的调零误差。六.附录附录一 使用原件清单名称型号封装数量单位三抽头双输出变压器18V 50W1个集成电路LM7805直插2个集成电路KA7815直插1个集成电路KA7915直插1个集成电路OP07DIP-83个集成电路DAC0832DIP-201个集成电路74HC573DIP-202个集成电路LM336-2.5直插1个集成电路AT89S52DIP-401个数码管共阴直插1个晶振12M直插1个二极管IN4007直插5个整流桥KBL406直插1个电位器102直插1个电位器103直插1个电位器203直插3个电位器503直插1个电位器104直插1个按钮开关直插4个电解电容4700uf 35V直插2个电解电容4700uf 25V直插2个电解电容4700uf 16V直插1个电解电容10uf 50V直插6个瓷片电容104直插10个瓷片电容30PF直插2个瓷片电容150PF直插2个排阻10K直插1个电阻100K直插个电阻50K直插个电阻1K直插个附录二 电路原理图附录三 程序清单#include<reg52.h> #define uint unsigned int /无符号字符 8位 #define uchar unsigned char /无符号整数 16位 sbit dula=P26; /锁存器段选 sbit wela=P27; /锁存器位选 sbit lcdrs=P31; /1602数据命令选择 sbit lcden=P30; /1602使能信号端 sbit key1=P23; /+键 sbit key2=P22; /-键 sbit key3=P21; /波产生键 sbit key0=P20; /功能键 sbit wr_da=P25; /DAC选通 uchar num,num0,num1,zsys,xsys,bxsz; uchar code table_x= /编码表 无点数码管显示 0x3f,0x0c,0x76,0x5e,0x4d,0x5b,0x7b,0x0f,0x7f,0x5f; uchar code table_z= /编码表 带点数码管显示 0xbf,0x8c,0xf6,0xde,0xcd,0xdb,0xfb,0x8f,0xff,0xdf; void delay(uint z); void display_bjys(uchar zsys,uchar xsys); void display_bxsz(uchar bxsz); void trigle(); void trap(); void saw(); void square(); void keycan_bjys(); void keycan_bxsz(); void write_com(uchar com); void write_date(uchar date); void init_kjhm(); void init_bjhm(); void init_yshm(); void init_bxxzhm(); void init_trigle(); void init_trap(); void init_saw(); void init_square(); void init(); void main() init_kjhm(); init(); /初始化子程序 while(1) dula=1; P1=0x3f; dula=0; wela=1; P1=0xf0; wela=0; if(key1=0|key2=0) if(key0=0) init_bjhm(); if(key0!=0) init_yshm(); while(1) keycan_bjys(); if(key3=0) dula=1; P1=0xff; dula=0; wela=1; P1=0xff; wela=0; if(key3=0) break; if(key3=0) init_bxxzhm(); while(1) keycan_bxsz(); if(key1=0|key2=0) dula=1; P1=0xff; dula=0; wela=1; P1=0xff; wela=0; if(key1=0|key2=0) break; void delay(uint z) /延时函数 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); void display_bjys(uchar zsys,uchar xsys) /预设&步进 数 dula=1; P1=table_zzsys; dula=0; P1=0xff; wela=1; P1=0xfe; wela=0; delay(1); dula=1; P1=table_xxsys; dula=0; P1=0xff; wela=1; P1=0xfd; wela=0; delay(1); void display_bxsz(uchar bxsz) /波形设置 数码管扫描子函数 dula=1; P1=table_xbxsz; dula=0; P1=0xff; wela=1; P1=0xf0; wela=0; delay(1); void keycan_bjys() /预设&步进 按键扫描 if(key1=0) /按key1键加数 delay(5); if(key1=0) num+; if(num=100) num=0; while(!key1); delay(5); while(!key1); if(key2=0) /按key2键减数 delay(5); if(key2=0) num-; if(num=-1) num=99; while(!key2); delay(5); while(!key2); zsys=num/10; xsys=num%10; display_bjys(zsys,xsys); if(key0=0) /预设功能 P0=num; wr_da=0; delay(1); void keycan_bxsz() /波形 按键扫描 if(key3=0) delay(5); if(key3=0) num1+;/num1自加 选择波形 if(num1=5) num1=1; bxsz=num1; display_bxsz(bxsz); while(!key3); delay(5); while(!key3); if(key0=0)/功能键按下 确定波形输出 if(num1=1) init_trigle(); while(1) trigle(); if(key0!=0) break; if(num1=2) init_trap(); while(1) trap(); if(key0!=0) break; if(num1=3) init_saw(); while(1) saw(); if(key0!=0) break; if(num1=4) init_square(); while(1) square(); if(key0!=0) break; void init_kjhm() /初始化 1 开机显示画面函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_bjhm() /初始化2 步进电压画面显示函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_yshm() /初始化3 预设电压画面显示函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_bxxzhm() /初始化4 波形设置画面显示函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); write_date(':'); delay(50); void init_trigle() /初始化5 三角波输出显示画面函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_trap() /初始化6 梯形波输出显示画面函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_date(':'); write_com(0x80+0x40); delay(50); void init_saw() /初始化7 锯齿波输出显示画面函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init_square() /初始化8 方波输出显示画面函数 dula=0; wela=0; lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40); void init() /初始化子函数 wela=0; dula=0; num=0; num1=0; P0=0; wr_da=0; delay(1); wr_da=1; delay(1); key0=1; 附录4 波形图照片三角波 锯齿波 梯形波 方波-

    注意事项

    本文(电子设计大赛-直流数控稳压电源.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开