历史上的今天
今天是:2025年01月19日(星期日)
2020年01月19日 | 基于PIC16F877A单片机的数控电流源设计
2020-01-19 来源:elecfans
1 引言
电源技术尤其是数控电源技术是一门实践性很强的工程技术,涉及了电气、电子、系统集成、控制理论、材料等诸多学科领域。计算机和通讯技术的发展,给电力电子技术提供了广阔的发展前景,同时也给电源提出了更高的要求。普通电源由于精确度不高等缺点已不能满足现实的需要。直到单片机技术及电压转换模块的出现,才使精确数控电源的发展有了可能。本文所设计的数控电流源采用PIC16F877A单片机为核心部件,键盘、显示、D/A、开关电源等模块为外围电路。
2 设计要求和总体设计思路
2.1 设计要求
本设计要求:输入220V,输出最高12V;通过键盘控制输出电流,步长为0.01A;采用LED显示输出电流,精度为0.02A;电流源稳流范围为(0.2-1)A。
2.2 总体设计思路
本设计采用开关电源,以达到输出范围和精度以及纹波的要求。根据系统要求,采用D/A转换后,接运算放大器构成的功率放大来控制D/A的输入,从而控制电流值的方法。本系统主要由数控部分、电源部分和键盘显示电路组成。系统原理框图如图1所示。

3 硬件电路设计及软件选择
根据数控电流源的设计要求,系统主要由控制模块、电源模块、D/A模块及键盘显示模块构成。
3.1 控制模块的选择
本设计采用的是PIC16F877A单片机控制。与AT89C51单片机相比,PIC16F877A采用哈佛结构,能实现指令的单指节化,有精简指令集技术,寻址方式简单,I/O口驱动能力强,具备I2C和SPI串行总线端口,外围电路简洁,不仅便于开发,而且还可节省用户的电路板空间和制造成本。程序保密性强,有低功耗、宽电压设计,能将相当一部分外围器件结合到一起,使用方便,抗干扰性能提高。
3.2 电源模块的选择
电源模块一般主要采用全桥整流加电容滤波电路、三端稳压集成电路外接扩流管和开关电源电路。全桥整流加电容滤波电路广泛应用于一些要求不太高的直流电流源中,其驱动能力和后级的滤波电容有关,该电路显著的特点就是能够比较好的满足电流的瞬态相应,而如果负载要求持续的大电流输出,该电路将无能为力。三端稳压集成电路外接扩流管既利用了稳压集成块良好的稳压性能,又能够有一定的电流输出,在一些高精度的线性稳压电源中被广泛采用,但是效果较差。开关电源的功率器件工作在开关状态,功率损耗小、效率高。与之相配套的散热器体积大大减小,同时脉冲变压器体积比工频变压器小了很多。因此采用开关电源的电流源具有效率高、体积小、重量轻等优点。
由于本设计对电源的要求比较高,尤其体现在对电源的功率和纹波电压的要求上。因此,在这里采用的是开关电源电路。
3.3 D/A转换模块的选择
TLC5615为美国德州仪器公司1999年推出的产品,是具有串行接口的数模转换器,其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能,即把DAC寄存器复位至全零。它是串行输入的10位高精度D/A转换器,因此经转换的最终输出电压可以达到0V~10V。10位D/A,分辨率为1/2048,选采样电阻为15kΩ,D/A输出的分辨率能实现步进0.01A。
3.4 软件的选择
Protel 99 SE软件设计系统是一套建立在IBM PC兼容机环境下的EAD电路集成设计软件平台。它具有电路原理图设计、PCB(印制电路板)设计、电路的层次化设计、报表制作、电路仿真以及逻辑器件设计等功能。
Microchip公司为PIC系列单片机配备了功能强大的软件集成开发系统Mp lab,该软件是一个集成多种单片机应用开发工具软件于一体的、功能完备的软件包。
本文采用Protel 99 SE软件设计系统进行PCB板的设计,Mp lab进行系统仿真。
4 数控电流源的单片机程序实现
本文所采用的PIC16F877A单片机是Microchip公司开发的新产品,具有FLASH编程的功能,可以直接在单片机上进行如暂停CPU执行,观察寄存器内容等操作,是目前应用最广泛的一种PIC单片机。
单片机程序所要实现的功能是:独立键盘对PIC16F877A单片机输入数据,PIC16F877A单片机对获得的数据进行处理,并送到10位数模转换器TLC5615,实现对电流的控制。
在这里采用的是C语言编程,其优点是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高、便于跨平台的代码移植等。主程序流程图如图2所示。

5 系统测试
本设计要求输出电流范围为0.2A-1A,恒流源模块采样电阻两端电压为200mV-2000mV,由电压值可以推算出数模转换模块的参考电压|Vref|至少为2V(Vref<0)。本设计的Vref=-2.15V,输出端模拟电压范围为(0-12)V,所以输出电流为0.2A-1A。设计要求在0.2A-1A内任意预值,本设计通过键盘输入电流值送单片机,单片机根据输入的键值,将模拟量转换为数字量送给数模转换电路,然后输出模拟量。部分电流值及其对应的理论和实际的数字量如表1所列。其中对应理论码值为输入电流对应数模转换所需要的码值,实际码值为单片机根据输入电流值处理后送到数模转换器的码值。

表1所列的测试结果表明,本设计输出的最大误差为当输入电流为32mA时,输出电流为33mA,误差为1mA。而题目中发挥部分要求输出电流变化的绝对值≤输出电流的0.1%+1mA,即1.032,所以本设计测量出来的误差值达到了设计要求规定的误差值。
6 结论
本文所设计的数控电流源采用PID算法实现了量程可选、输出可调、步进精确、纹波电流极小的功能,而且可将输出电流预置值、实测值在LED上同时显示。人机接口采用独立键盘及LED显示器,控制界面直观、简洁,具有良好的人机交互性能。其具有控制灵活,系统升级方便,控制系统的可靠性提高,易于标准化,系统维护方便、一致性好、成本低,生产制造方便等优点。
史海拾趣
|
单极隔离式功率因数校正(PFC)变换器 现代开关电源的主要发展趋向之一是提高AC/DC变换器输入端功率因数,减少对电网的谐波污染。传统的AC/DC开关变换器输入端是二极管整流—电容滤波组合电路,其输入端电流波形呈 ...… 查看全部问答> |
|
在进行STM32程序调试时,发现按下中断按键时,程序始终停在一个状态(LED1亮/灭),不知道在中断时为什么会出现这样的现象,各位大侠帮帮忙,万分感谢。 程序代码如下: #include \"stm32f10x_lib.h\" GPIO_InitTypeDef GPIO_InitSt ...… 查看全部问答> |
|
单片机的烧程序软件stc_isp在vista操作系统下为什么装不上? 我想学单片机,前几天系统是xp的时候还能用stc_isp,可用了几天就不能用了,电脑还有了病毒,最后一键还原,系统成了vista ,但硬是装不上stc_isp,请大家帮帮忙,解决一下问题,找个能在vista 下能装的stc_isp ,或解决一怎么样才能装上。谢谢啦!! ...… 查看全部问答> |
|
哪位朋友在ARM下调试过DE模式的屏的驱动呀,LCD一般是SYNC模式的,但我现在拿到一个屏是DE MODE ONLY的,没有HSYNC和VSYNC请问怎么调呀!… 查看全部问答> |
|
请问电脑中\"内存范围\"和\"输入输出范围\"是指? 请问在“系统属性”->“设备管理器”看硬件资源选项中的“内存范围”和“输入输出范围”是指什么意思?如网卡内存范围:EA000000-EA0000FF COM口输入输出:范围:03F8-03FF,到底是 ...… 查看全部问答> |
|
要写两个程序,一个运行在PC机上,一个在PDA上,两个机器通过usb连接,要他们之间传递信息,请问如何实现 我的本意是像socket编程那样,一个server,一个client两个互相传递信息,唯一的区别是通过usb线而不是网线,请高手指教… 查看全部问答> |
|
Vinculum系列新一代USB Host桥接器单芯片解决方案,主要用于实现语音、MP3、数据、图像和文本等数据的高速上传和下载,它能够自动辨识并支持FAT文件格式,支持4线串行UART、4线串行SPI和12线并行FIFO接口来和Vinculum沟通。而系统设计师仅需了解简 ...… 查看全部问答> |
|
第一次做硬件开发 能不能给点指导 比如,如何开发、怎么调用硬件等 如果有中文的开发指导说明,发一份给我hxgwd_5658@126.com 谢谢!!!!… 查看全部问答> |
|
之前没有留意过2812发热的问题 现在手头上的这块板子,当2812跑到150M的时候 无意中碰到了芯片,发现还挺烫的 我想问问,是不是2812正常运行的时候不会明显发热 如果明显发热就说明这个片子坏了?… 查看全部问答> |




