基于单片机探讨数控直流电流源的设计
2017-06-08何晓丹
何晓丹
摘 要: 本系统采用AT89S51单片机为控制核心,输以带反馈自稳定的串调恒压源,可以对200mA~2000mA的电流值进行设定,根据所设定的电流值,由A/D0832对精密电阻电压的监控,由DAC0832直接控制输出电流,形成闭环回路,最后由单片机设定的电流源基准电压与反馈值比较,得到输出值与设定值一致,实现数控输出。本系统主要由两大模块组成:① 大功率压控电流源模块;② 单片机应用系统模块。此外,本电流源采用LCD显示界面,使用直观方便。
关键词:AT89S51单片机 D/A0832转换器 A/D0832转换器 LCD显示界面
中图分类号:TN8 文献标识码:A 文章编号:1003-9082(2017)05-0247-01
一、系统设计主要任务
1.设计要求
①输出电流范围:200mA~2000mA,输出电压范围:0~30V。
②可设置并显示输出电流给定值。
③可设置并显示输出电压给定值。
④具有“+”、“-”步进调整功能,电流步进≤10mA,电压步进≤0.1V。
2.总体规划
本文利用单片机作为核心控制制作数控直流电流源。设计过程中最关键的两个部分:系统硬件的设计和软件实现。
2.1硬件设计
系统硬件设计包括:单片机作为主要核心控制部件,通过键盘预置输出电流值并采用液晶模块实时显示,实时显示控制信息完成人机交互界面设计。整个系统硬件部分由微控制器、电压-电流转换、键盘、显示、直流稳压电源和系统电源设计几大模块。如何实现主控模块是整个系统中最关键的部分。主控模块由单片机及其相关软件组成,由程序对单片机的工作状态进行控制。
2.2软件实现
深刻理解硬件特性,工作原理和工作过程,寻找出合理方案,最后采用C语言编写去控制被控对象,并且调试优化产品功能。
总体设计规划框图如图1所示:
图1总体设计规划框图
二、设计思路与方案的确定
1.设计思路
根据本系统的基本要求分析,采用D/A转换后接运算放大器构成的功率放大,控制D/A的输入从而控制电流值的方法。系统主要由控制器、电源、V/I转换和电流检测等电路模块组成。控制器模块实现数码管显示、A/D和D/A转换、PID调节,控制电压输出等功能。V/I转换电路自身可以构建电流负反馈,以副控回路形式对负载电流进行快速调节;同时,负载电流经过A/D反馈给单片机系统,借助于PID算法则以主控回路形式对负载电路进行精确的控制。其原理示意图2如下所示。
图2 系统结构原理图
2.总体设计
2.1系统组成:控制单元AT89S51单片机、A/D和D/A转换器、键盘、显示单元、电源系统、脉宽调制电路、负载。
2.2设计原理:输入电压通过整流桥滤波整流电路,再经过脉宽调制电路,变压器等将电压转化为可控电压源。再加上采样电阻利用电压的可调调节输出电流。使输出电流在200mA~2000mA,并且可设置并显示输出电流给定值。
3.系统硬件基本组成
为了实现输出电流范围在200mA~2000mA,采用软硬件结合的方法对产生的直流电流信号进行处理。其中硬件系统设计由以下五大模块组成。
3.1数控核心设计:该系统采用单片机为核心,采用目前比较通用的 51 系列单片机。此单片机的运算能力强,软件编程灵活,自由度大,能够实现对外围电路的智能控制。
3.2 D/A转换芯片DAC0832:典型的D/A转换芯片DAC0832,是采用CMOS工艺制造的8位单片D/A转换器。8位D/A,分辨率为1/256,选采样电阻为2欧姆,D/A输出分辨率为10mA的电流,实现步进10mA,完全能够满足本设计的要求。
3.3A/D转换芯片ADC0832:ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。
3.4键盘电路:在进行电流设定值的调整中仅需要4个按键,所以采用独立式按键的键盘接口,即可满足电路的设计要求。
3.5显示电路:该系统要实现输出电流200mA~2000mA,为了实现同时显示电流的设定值与检测值,需要用LCD液晶显示器。
4.软件设计的总体思路
在硬件连接部分都完成的情况下,结合软件,输入程序到单片机里面,完成相应硬件部分的功能测试。一般情况下,软件设计非常强调将各个功能部分单独编程,可以把每个功能模块用一个或几个程序来实现。软件设计非常忌讳不同功能模块的程序编写在一起,对各部分不进行区别的混合在一起,使得程序缺少灵活性,在程序出现错误的情况下,要对程序进行修改,就会非常的麻烦繁琐。所以,在进行软件设计时,编写程序时,首先要理清思路,分清系统各部分有那几部分组成,对系统进行模块化,分模块时,要根据实际情况来,系统模块不应分的过少,不然系统软硬件依然存在灵活性小的问题,当然,系统分的模块过多,会使得系统过于复杂,过于分散,同样也是不利于系统整体功能的测试与实现。分好模块之后,针对某一个模块,以及模块的特定功能,进行编程。由于各部分的程序编写是针对各个功能模块的,其实是针对各个硬件部分功能的实现,所以调试时,硬件和软件的模块化作用就非常突出了。问题出现时 ,是软件还是硬件问题,都可以比较方便的检测出来。完成好各个模块的软硬件功能之后,将各个模块程序连接起来一起进行调试,最后构成整个控制系统的软件系统。
按照这种方式来是实现系统的软件设计,在有利于系统的测试的同时,也有利于系统的维护和功能扩展。整个系统的软件程序可以分为两大部分,主程序和子程序。主程序用于调用各个子程序,使系统完成对应的任务。而子程序则实现系统各个模块的子功能,配合主程序,实行并完成各自任务。
参考文献
[1]赵学泉,张国华编著. 电源电路[M]. 北京:电子工业出版社,1995.3.
[2]何希才,江云霞编著. 现代电力电子技术[M].北京:国防工业出版社,1996.7.
[3]陸坤等.电子设计技术[M].成都:电子科技大学出版社,1997.