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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的数控电流源的设计文档格式.docx

1、本数控直流恒流源系统输出电流稳定,不随负载和环境温度变化,并具有很高的精度,输出电流误差范围很小,输出电流可在一定范围内任意设定,因而可实际应用于需要高稳定度小功率恒流源的领域。1设计方案的选择1.1 电路综合设计流程图1.1.1数控电流源电路设计流程图1.2总体设计方案经初步分析设计要求,得出总体电路由以下几部分组成:电源模块,控制模块(包括A/D、D/A转换)恒流源模块,键盘模块,显示模块。以下就各电路模块给出设计方案。1.2.1 控制部分方案方案一:采用FPGA作为系统的控制模块。FPGA可以实现复杂的逻辑功能,规模大,稳定性强,易于调试和进行功能扩展。FPGA采用并行输入输出方式,处理

2、速度高,适合作为大规模实时系统的核心。但由于FPGA集成度高,成本偏高,且由于其引脚较多,加大了硬件设计和实物制作的难度。方案二:采用单片机作为控制模块核心。单片机最小系统简单,容易制作PCB,算术功能强,软件编程灵活、可以通过ISP方式将程序快速下载到芯片,方便的实现程序的更新,自由度大,较好的发挥C语言的灵活性,可用编程实现各种算法和逻辑控制,同时其具有功耗低、体积小、技术成熟和成本低等优点。基于以上分析,选择方案二,利用STC89C52单片机将电流步进值或设定值通过换算由D/A转换(此处我们利用PWM脉宽调制实现D/A转换功能),驱动恒流源电路实现电流输出。输出电流经处理电路作A/D转换

3、反馈到单片机系统,通过补偿算法调整电流的输出,以此提高输出的精度和稳定性。1.2.2 恒流源模块设计方案由三端可调式集成稳压器构成的恒流源。其典型恒流源电路图如图1.2.1所示。一旦稳压器选定,则U0 是定值。若R固定不变,则I0不变,因此可获得恒流输出。若改变R值,可使输出 I0改变。因此将R设为数控电位器,则输出电流可以以某个步长进行改变。此电路结构简单,调试方便,价格便宜,但是精密的大功率数控电位器难购买。图1.2.1 三端集成稳压器构成的恒流源框图由数控稳压器构成的恒流源方案一是在U0不变的情况下,通过改变R的数值获得输出电流的变化。如果固定R不变,若能改变U0的数值,同样也可以构成恒

4、流源,也就是说将上图中的三端可调式集成稳压源改为数控电压源,其工作原理和上图类似。此方案原理清楚,若赛前培训过数控电压源的设计的话,知识、器件有储备,方案容易实现。但是,由1.2.2图可知,数控稳压源的地是浮地,与系统不共地线,对于系统而言,地线不便处理。图1.2.2 数控电压源构成的恒流源框图方案三:采用集成运放的线性恒流源该恒流源输出的电流与负载无关, 通过使用两块构成比较放大环节,功率管构成调整环节,利用晶体管平坦的输出特性和深度的负反馈电路可以得到稳定的恒流输出和高输出阻抗,实现了电压电流转换。其原理框图如图1.2.3所示。图1.2.3 集成运放构成的恒流源框图综合考虑,采用方案三,使

5、用低噪音、通用运放LM324和2个8550等构成一个恒流源电路。1.2.3 显示模块设计方案使用LED数码管显示。数码管采用BCD编码显示数字,对外界环境要求低,易于维护。但根据题目要求,如果需要同时显示给定值和测量值,需显示的内容较多,要使用多个数码管动态显示,使电路变得复杂,加大了编程工作量。使用LCD显示。LCD具有轻薄短小,可视面积大,方便的显示汉字数字,分辨率高,抗干扰能力强,功耗小,且设计简单等特点。综上所述,选择方案二。采用12864汉字图形点阵液晶显示模块同时显示电流给定值和实测值。1.2.4 键盘模块设计方案方案一 :采用独立式按键电路,每个按键单独占有一根I/O接口线,每个

6、I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺点为当按键较多时占用单片机的I/O口数目较多。方案二 :采用标准4X4键盘,此类键盘采用矩阵式行列扫描方式,优点是当按键较多时可降低占用单片机的I/O口数目,而且可以做到直接输入电流值而不必步进。 题目要求可进行电流给定值的设置和步进调整,需要的按键比较多。综合考虑两种方案及题目要求,采用方案二,方便进行扩展。1.2.5 电压源模块设计方案 系统需要多个电源,单片机、A/D、使用+5V稳压电源,运放需要12V稳压电源,同时题目要求最高输出电流为260mA,电源需为系统提供足够大的稳定电流。综上所述,采用三端稳压集成7805、7812分

7、别得+5V和12V的稳定电压,78H系列稳压器输出电流可以达到5A,能为系统提供足够大的稳定电流。利用该方法实现的电源电路简单,工作稳定可靠。1.3 系统组成经过方案比较与论证,最终确定系统的组成框图如图所示图1.3.1 系统组成框图2 单元电路的设计2.1 控制模块电路设计2.1.1 最小系统电路设计通过键盘模块输入给定的电流值或是步进调整信号传送给单片机,单片机在接受到信号后进行处理运算,并显示其给定的电流值,然后经D/A转换以输出电压,驱动恒流源电路实现电流输出,并将采样电阻上的电压经过A/D转换输入单片机系统,通过补偿算法进行数值补偿处理,调整电流输出,并驱动显示器显示当前的电流值。最

8、小系统的核心为STC89C52,为了方便单片机引脚的使用,我们将单片机的引脚用接口引出,电路如图2.1.1所示:P0口和P3.0P3.3是LCD接口;P1口作为A/D与D/A转换接口;P2口为键盘接口。图2.1.1 最小系统原理图2.1.2 A/D转换电路设计 A/D转换采用BB公司的ADS7816构成的转换电路,如图2.1.3 ADS7816是12位串行模/数转换器,采样频率高达200kHz,转换所需时间短,转换精度高。ADS7816转换器将采样电阻上的电压转换成数字信号反馈给单片机,单片机将此反馈信号与预置值比较,根据两者间的差值调整输出信号大小。这样就形成了反馈调节,提高输出电流的精度。

9、同时,A/D采样回来的电流经过单片机处理传送到LCD,可以显示当前的实际电流值。图2.1.3 A/D转换电路2.2 恒流源电路设计恒流源电路的设计是本系统设计的核心,它采用电压来控制电流的变化。为了能产生恒定的电流,我们采用电压闭环反馈控制。恒流源电路原理图如图2.2.1所示,该电路主要由运算放大器、大功率达林顿管、采样电阻RS、负载RL等组成。取样电阻RS从输出端进行取样,再与基准电压比较,并将误差电压放大后反馈到调整管,使输出电压在电网电压变动的情况下仍能保持稳定。电路中调整管采用大功率达林顿管(由两个8550构成),既能满足输出电流最大达到260mA的要求,也能较好地实现电压近似线性地控

10、制电流。RS选用热稳定性好的水泥电阻,并选取较大值(2),使得在电流较低时也能获得较大的电压值。运算放大器采用高精度的lm324作为电压跟随器。DAOUT即为输入电压Ui,当Ui一定时,运算放大器的Ui=US,I0=IL=IS=Ui/RS,即I0不随RL的变化而变化,从而实现压控恒流。由此得到恒流源输出电流的大小为:I0= Ui/RS图2.2.1 恒流源电路原理图2.3 键盘电路设计在设计中,使用标准的4x4键盘,可以实现09数字输入,“+”、“-”步进设置。其电路图如图2.3.1所示。图2.3.1 键盘电路原理图2.4 显示电路设计 本设计采用12864型汉字图形点阵液晶显示模块,可显示汉字

11、及图形,内置8192个中文汉字(16X16点阵)、128个字符(12X16点阵)及64X256点阵显示RAM(GDRAM)。可显示内容为192列 64行,还带多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等。12864采用8位并行接法,与单片机P3和P4口相连,用于显示设定值与当前测量值。其接口如图2.4.1所示。图2.4.1 LCD显示电路原理图2.5 稳压电源设计 在本设计中,运放需12V供电,单片机需、A/D需+5V供电,采用三端稳压器7805、7812、7815构成一稳压电源,输出电流范围是50mA260mA,而78H系列稳压器输出电流最大可以达到5A,能为系统提供足够大的稳定

12、电流。稳压电路如图2.5.1所示:考虑系统对功率要求较高,所以在设计中选取了输出功率50W的变压器,输入电压由变压器和全波整流滤波电路产生。图2.5.1 电源电路原理图3 软件设计软件设计采用C语言,对STC89C52进行编程实现各种功能。软件设计的关键是对A/D转换器的控制。软件实现的功能是:a) 控制键盘工作,确定电流步进调整;b) 控制A/D工作,设置给定电流,测量输出电流;c) 对反馈回单片机的电流值进行补偿处理;d) 驱动液晶显示器显示电流设置值与测量值。图3 软件流程框图4 实物图 图4.1 恒流源控制电路实物图图4.2 液晶显示实物图图4.3 矩阵键盘实物图图4.4 线性电源实物

13、图图4.5 单片机控制系统(包括A/D)实物图图4.6 整体实物图4.7 PWM波调制波形4.8 加上负载后电流实际示数4.9 系统反馈后液晶示数4.10 封装后实物图5 数据记录脉宽恒定情况下(初始电流设定150mA)负载变化的恒流测试(仿真图略)R()101112131415I(mA)(U=12V)1506 结论与展望本文结合各种新技术设计出一种基于单片机芯片STC-89C52的数控直流恒流源。对该恒流源的测量结果表明,该恒流源具有较高的精度和稳定度,基本满足设计要求。具体的研究成果和结论如下:1.完成了硬件电路的设计,具体包括A/D转换电路的设计,键盘输入及输出显示等。该恒流源实现了键盘

14、输入预置值,LCD显示输出预置值和实际输出值的功能,精度和稳定度都比较高。2.本系统在软件设计上采用了增量式PWM控制算法,增量式控制虽然只是算法上作了一点改进,却带来了不少优点:(1)算式中不需要累加。控制增量u(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;(2)计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程。本系统在软硬件设计上仍然有很多需要完善之处。进入21世纪,随着信息技术一日千里的发展,恒流源也必将经历由模拟恒流源向数字恒流源过渡的这一历程。特别是计算机技术的发展必将出现智能化技术。因此,如何把数字

15、技术和智能化技术用于制作高稳定度的恒流源就将成为21世纪的新课题。作品程序:#include#define uchar unsigned char#define uint unsigned int#define V_TH0 255#define V_TL0 255#define V_TMOD 0x01uchar code table=I LOVE SAST!;uchar code table1=I LOVE NJUPT!uchar code table2=Constant Currentuchar table3=150 mAuchar code table4=error!uchar code

16、table5=Please set againsbit lcden=P14; /液晶使能端sbit lcdrs=P10; /液晶数据命令选择端sbit P3_7=P37;sbit P1_2=P12;unsigned char ZKB1,ZKB2;uchar num,flag=0;void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;yy-);void write_com(uchar com) lcdrs=0; P0=com; delay(5); lcden=1; lcden=0;void write_data(uchar date) lcd

17、rs=1; P0=date;void init() write_com(0x38);/设置16X2显示,5X7点阵,8位数据接口 write_com(0x0c);/设置开显示,不显示光标 write_com(0x06);/写一个字符后地址指针加1 write_com(0x01);/显示清零,数据指针清零 write_com(0x80); for(num=0;num12;num+) write_data(tablenum); delay(5); write_com(0x80+0x40);13; write_data(table1num); delay(500); delay(200);16; w

18、rite_data(table2num);6; write_data(table3num);void displayI()void displayerror() write_com(0x40); write_data(table4num); write_data(table5num);void keyscan(uchar i) uchar temp,key; P2=0xfe; temp=P2; temp=temp&0xf0; if(temp!=0xf0) delay(10); switch(temp) case 0xee: key=1 break; case 0xde:2 case 0xbe:

19、3 case 0x7e:+ while(temp! if(i=0) table3i=key; flag=1; else if(i=1) table3i=key; else if(i=2) table3i=key; displayI(); P2=0xfd; case 0xed:4 case 0xdd:5 case 0xbd:6 case 0x7d:- P2=0xfb; temp=P2; case 0xeb:7 case 0xdb:8 case 0xbb:9 case 0x7b:* if(i=0) table3i=key; P2=0xf7; case 0xe7: case 0xd7:0 case

20、0xb7:# case 0x77:Q void init_sys(void) /系统初始化函数/定时器初始化 TMOD=V_TMOD; TH0=V_TH0; TL0=V_TL0; TR0=1; ET0=1; EA=1; /延时void Delay5Ms(void) unsigned int TempCyc = 5000; while(TempCyc-);void main() uchar i=0,current=9; init(); init_sys(); while(1) keyscan(i); if(i=0&flag=1)|(i=1&flag=1) i+; flag=0; if(i=2&flag=1) i=0; current=(table30-48)*100+(table31-48)*10+(table32-48)*1; if(current=0) ZKB1=198; if(current230) ZKB1=5;=50¤t60)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2