ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:258.99KB ,
资源ID:4469286      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4469286.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的数控直流稳压电源.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的数控直流稳压电源.docx

1、基于单片机的数控直流稳压电源基于单片机的数控直流稳压电源利用LM317三端稳压器,设计制作一个数控稳压电源,要求:1、输出电压:2-15V,步进0.1V,纹波10mV; 2、输出电流0.5A;3、输出电压值由数码管显示,由“+”、“-”键分别控制输出电压的步进 方案:采用单片机控制此方案采用 AT89C51单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值。这里主要利用单片机程控输出数字信号,经过 D /A 转换器( DA0832)输出模拟量,然后使用运算放大器把电流转换成电压,在通过三段稳压器LM317使得输出电压和输出电流达到稳压的目的。方案论证:1、输出模块:使用运算放大器做前

2、级的运算放大器,由于运算放大器具有很大的电源电压抑制比,可以减少输出端的纹波电压。使用LM317做电流稳压器,把电流稳定到0.5A。 2、数控模块:采用AT89C51单片机完成整个数控部分的功能,同时,AT89C51作为一个智能化的可编程器件,便于系统功能的扩展。 3、显示模块:本来准备使用液晶显示,可是想想我们的层次不够,液晶现实的额程序不会写,只能退而其次,选择使用单片机通过锁存器控制8段LED数码管直接显示,这样可以精确的显示输出电压。 系统结构设计图如上图所示。该系统主要由单片机最小控制系统、显示电路、独立按键、D/A转换电路、放大电路和稳压电路组成。单片机设定预输出值,并可以通过独立

3、键盘改变单片机的预设值。然后通过DAC0832转化为模拟量,再经过运算放大和稳压稳流电路最后输出预设电压值,通过LED显示能够直观的看到预设值。因为器材原因,我们设计的稳压电源采用的是外部稳压器提供的电源。这样虽然算不上是一个完整的数控直流稳压电源,但是,除了这点,我们设计的电源基本已经复合要求。 1、最小系统控制电路设计:最小控制系统由STC单片机、晶振、独立键盘和复位电路等组成。如下图所示。AT89C51的管脚排列如上图所示,9管脚接复位电路,18、19管脚为晶振的两个输入端,20管脚接地,40管脚接+5V。 晶振Y1和两个电容C2、C3构成自激震荡,连接到单片机的X1和X2端,电解电容C

4、4、电阻R5和按键S5构成复位电路,连接到单片机的复位端。当按键S5按下后,复位端通过R5与+5V电源接通,电容迅速放电,使RST管脚为高电平;当复位按键S5弹起后,+5V电源通过R6对电容C4重新充电,RST管脚出现复位正脉冲。2、D/A转换电路设计: 如上图所示,DA0832的8位数据线D0D7与单片机的P1口连接,1管脚(CS)和17管脚(Xfer)接地,8管脚(Vref)的参考电压为5V,则LSB=5V/28=0.02V,即最小分表率为0.02V。11管脚(Iout1)和12管脚(Iout2)为电流输出端。3、放大电路与稳压稳流电路设计: 如上图所示,本设计中将DAC0832的Iout

5、2接地,采用Iout1输出,然后接运算放大LM358P将输出电流转化为电压。经过LM358P转化后的电压值也为5V。为了达到与单片机预设电压范围215V同步,输出端电压需要经过二级放大。第一级不放大,直接将D/A输出的电流转化为电压,第二级放大,放大倍数=R2/R1=5.5K/1.1K=5。这里的R2由于找不到5.5K的电阻,所以用电位器代替。因为DA0832转换后的电压的范围为05V,即DA0832的8位输入端全为高电平1时,输出电压为5V,输入端全为低电平0时,输出电压为0V,且呈线性变化。为此为了使输出与LED显示同步,必须经过放大倍数=5的二级放大。再经过运放放大后的电压已经复合要求,

6、可是电流却没有复合要求,这就要用到了三段稳压器LM317。在这里,LM317作为电流稳压器,其应用电路如下图所示,其中,所以R1的值应该为2.5。可是,我们在实验室能找到的最小电阻是200,这还是远远大于2.5。所以我们的输出电流才6ma。这里还要说的是,本来我们采用的运算放大器是Lm324n,可是,因为我的不小心,在测试运放放大的时候,把芯片烧坏了。并且我们手头没有多余的芯片,幸亏和我们做同一方案的同学有运放Lm358p,所以我们也采用了Lm358p。4、显示模块设计:如上图所示,显示部分采用数码管sr410561k,锁存器74HC573。数码管段码ADP接锁存器1的Q0Q7,数码管的位选1

7、3接锁存器2的Q0Q3。P0接锁存器1、2的D0D7。锁存器1的LE接单片机P22,锁存器2的LE接单片机 P23。数码管的adp接锁存器1的Q0Q7,数码管的位选13分别接锁存器2的Q0Q3。在使用数码管的过程中,我们发现数码管的位选直接接到单片机的P2口上,会使数码管的亮度不够。现在我们有2种方法解决。第一,接上拉电阻,经计算,200左右的电阻可使数码管达到最亮,为了保险起见,可以使用400的电阻。但当时我们手头刚好没有400的电阻,所以我们采用了第二种方法,把数码管的位选接锁存器上。 (4) 软件设计:程序流程图设计: 程序设计流程图下图所示。 程序开始以后,首先程序初始化,显示LED预

8、设的初始电压值。然后进行按键检测,如果没有按键按下,LED显示的电压不变;如果有按键按下,确认当前LED的调整值。接着启动D/A转换,将转换后的模拟量送给系统最终输出端。程序代码:在附录(5) 系统调试: 显示模块调试 :算出数码管的段码,位选,使数码管能正确的显示预设值。 按键模块调试:消除抖动,使我们按一下按键的加、减键时,能实现显示程序的步进0.1。 放大稳压电路调试:为了使输出电压和显示模块对应,我们要调节放大电路的方法倍数。假使显示的电压为11.3v,那么因为三端稳压器的自带电压为1.25v,所以放大电路输出电压因为11.3-12.510v,所以一级放大的输出电压应为-2v,二级放大

9、的电压应为10v。稳流方面,因为器材的原因,我们只能把电流稳定在6ma。(6) 系统测试:各个模块连接起来后,因为电路的改变,可能会改变输出值的大小,所以我们要进行整体的测试:先测试放大电路的第一级放大,然后调整LM358P和DAC0832连接的那个电位器,使输出电压再次达到预想值。再调整第二级放大,把放大倍数再次调为5倍。 把程序下载到硬件电路,测试最后输出值,是否为我们的预想值三、总结附录:程序代码:#include#define uint unsigned int#define uchar unsigned char#define DAC0832_PORT P1sbit duanxuan

10、=P26;sbit weixuan=P25;sbit cs=P22;sbit wr1=P23;sbit S1=P20;/加sbit S2=P21;/减uchar num=20;uchar code table=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09;void delay(uint z) /延时z ms子程序 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-); init()/初始化子函数 P1=num; uchar keyscan()/键盘扫描程序 if(S1=0) delay(10); /键盘按键消抖

11、 if(S1=0) if(num=150) num=20; else num+; while(!S1); /松手检测 if(S2=0) delay(10); if(S2=0) if(num=20) num=150; else num-; while(!S2); /松手检测 return(num);void display()/显示程序 duanxuan=1; P0=tablenum/100;/十位 duanxuan=0; weixuan=1; P0=0x80; weixuan=0; delay(1); duanxuan=1; P0=(tablenum%100/10)&0xfe);/个位 duanxuan=0; weixuan=1; P0=0x40; weixuan=0; delay(1); duanxuan=1; P0=tablenum%10;/小数 duanxuan=0; weixuan=1; P0=0x20; weixuan=0; delay(1);uchar dazh( uchar n)/D/A转换子程序 cs=0;选定芯片wr1=0;允许写入 n=num-13;输出电压值 DAC0832_PORT=n; /把n送给給DA / 主程序 /void main() init(); while(1) keyscan(); display(); dazh();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1