职场文秘网

首页 > 公文写作 > 企划文案 / 正文

基于单片机的数控恒流源设计

2020-11-09 13:01:07

  海 南 大 学

 嵌入式系统课程设计报告

 题

 目:

  基于单片机的数控恒流源设计

  学

 号:

  20177402320007

  姓

 名:

 陈竹梅

 班

 级:

  1班

 专

 业:

  电子科学与技术

 指导教师:

 黄建清

 完成日期:

 2020

 年

  6

  月

  18

  日

 基于单片机的数控恒流源设计

 摘要 该数控直流恒流源采用模块化,主要由单片机控制模块、键盘输入模块、A/D转换模块、恒流源模块、D/A转换模块和显示模块六部分组成。通过开关和按钮的设置,配合AT89S52单片机的编程实现数字控制及数字显示,同时用DAC0832实现D/A转换,实时把采样电路上的模拟信号转换成数字信号,形成反馈,输出模拟控制电压,再用运算放大器组成电流负反馈系统来完成输出电流控制及恒定。整个系统由单片机控制,输出部分使用运算放大器和功率放大器组成深度电流负反馈减少了输出端的电流波动,实现输出电流的恒定。显示出实际的输出电流。

  关键词 单片机;数控恒流源;模块化;

 Abstract

 The NC DC constant current source adopts modularization, which is mainly composed of six parts: SCM control module, keyboard input module, a / D conversion module, constant current source module, D / a conversion module and display module. Through the setting of switch and button, with the programming of AT89S52 single chip microcomputer, digital control and digital display are realized. At the same time, DAC0832 is used to realize d / a conversion. The analog signal on the sampling circuit is converted into digital signal in real time to form feedback and output analog control voltage. The current negative feedback system is composed of operational amplifier to complete the output current control and constant. The whole system is controlled by single-chip microcomputer. The output part is composed of operational amplifier and power amplifier. The deep current negative feedback reduces the current fluctuation at the output end and realizes the constant output current. Shows the actual output current.

  Keywords single chip microcomputer; NC constant current source; modularization;

 目录 1前言 5 1.1研究目的及意义 5 1.2国内外研究现状 5 2章节概述 6 2.1设计方案分析 6 2.1.1两种设计方案分析 6 2.2系统工作原理 7 2.3系统模块概述 7 2.3.1系统组成框图 7 3电路硬件设计 8 3.1单片机功能介绍 8 3.1.1器件选择和作用 8 4模块单元设计 13 4.1设计原理分析 13 4.1.1 运算放大部分 14 4.1.2 晶振部分 14 4.1.3 复位电路 14 4.1.4 按键部分 15 4.1.5 数码管显示部分 15 4.1.6 A/D转换部分 15 4.1.7 D/A转换部分 16 4.1.8 存储部分 16 5电路软件设计 17 5.1 系统设计思路 17 5.2 具体分步流程 18 5.2.1键盘键入流程 19 5.2.2 A/D转换流程 19 5.2.3 D/A转换流程 20 5.2.4 小号共阳数码管显示流程 20 6系统调试分析 21 7实验及测试结果分析 22 8结论及未来展望 24 9致谢 26 10参考文献 27 附录1 28 附录2 29 附录3 29 附录4 30

  1前言 1.1研究目的及意义 本课程设计基于单片机数控直流恒流源设计,由运算放大器组成的恒流源电路,系统在利用A/D转换器对恒流源模块的输出釆样,根据采样值,通过单片机控制D/A转换器,使恒流源电路达到稳流的目的。恒流源向负载提供恒定电流的电源,实际的恒流源在一定范围内保持输出电流的稳定性。理想恒流源输出不变,恒流源向负载提供恒定电流的电源,目前恒流源广泛用于传感技术等高新技术领域且有良好的发展前景。

 1.2国内外研究现状 目前,生活中部分实验室使用的电源采用电位器调整输出的电压及电流值搭配指针式显示。存在非线性等缺陷。数字化智能电源应运而生,针对传统电源的不足,减少不确定因素和人为因素引起的误差,提高电源模块的稳定性,缩小电源误差。

 数控恒流技术具有良好发展趋势,高性能数控恒流器件开发和应用存在发展空间,历史最早恒流源,出现20世纪50年代早期。当时采用电真空器件镇流管,镇流管能稳定电流,用交流电路,稳定电子管灯丝电流,我国电源产业20世纪60年代中期形成,直到90年代,人们对系统效率日益愈高,功耗要求日益愈下,电子技术和数据通信设备的技术发展更新,电源行始由以前分立元件和集成电路控制转变为由微机控制趋势,后来时代趋于电源行业智能化。

 电源产业快速发展,电子技术发展先后经历整流器、逆变器、变频器变迁。意味现代电子应用领域高速发展,计算机技术领人们进入信息社会,促进电源技术发展,出现诸如计算机高效率绿色电源,我国在电源研究方面与发达国家相比,存在较大差距和显著不足,在电源产品的质量等方面上差距显著,实现直流恒流源的智能化研究少。

 国内大学研究精且多的是华南理工大学和电子科技大学,利用单片机可编程系统器件控制开关直流稳压电源或数字化电压单元达到数控,与国外比较,效果甚微,差距巨大。我国企业只在代理卓越;能自主研发产品屈指可数,生产局限对输出实现数码显示,或实现多组数值预置,体现我国研究落后国外,恒流源飞速发展,我国应加大在恒流源方面的科研投入,我国大学和企业应重视恒流源产品的开发,尤为基于数控恒流源,这种措施有利我国国情,提高我国的科研水平;同时减少对国外技术的依赖; 20年发展之后,数控恒压技术趋于成熟,数控恒流源落后,高性能数控恒流源应用存在发展空间。本次课程设计的数控直流源可以输出稳定电流的直流恒流源,不随外界负载等因素影响。输出稳定度好,误差小,直接数字设定电流大小,具有较高应用价值。

 2章节概述 2.1设计方案分析 2.1.1两种设计方案分析 方案一:基于DSP器件进行主控设计。DSP有较高集成度和高性能CPU,大容量存储器,置有波特率发生器和FIFO缓冲器。提供高速、同步串口和标准异步串口。片内集成了A/D和采样/保持电路,提供PWM输出。DSP器件采用改进哈佛结构,有独立的程序和数据空间,同时存取程序和数据。具有位处理能力,强调控制和事务处理功能,缺点为成本高。

  图1 方案一结构图 方案二:该系统采用单片机核心,对外围电路的智能控制,单片机和DSP相比价格低廉。开发环境完备,开发工具齐全,应用资料众多,最主要的是学过单片机,对它了解很多;便于硬件和软件设计,基于该单片机的设计所需要的系统结构简单操作方便且所需的外围芯片也较容易得到,性价比极高。

 通过两种方案分析对比;我选择方案二,方案二结构图如图2所示:

  图2 方案二结构图 2.2系统工作原理 本系统是基于数控直流恒流源的设计其釆用单片机为控制核心器,包括恒流源模块、单片机主控模块、键盘输入模块、显示模块、数模转化(A/D)模块、数模转换(D/A)模块等6个主要模块。在通过键盘设定好需要输出的电流值后,单片机对设定值按照一定的算法进行处理,经D/A输出电压控制恒流源电路输出相应的电流值。单片机通过采样恒流源电路上串接釆样电阻的电压,计算出此时恒流源电路输出电流值并与设定值进行比较,以控制D/A的输出从而实现对恒流源的输出电流进行调节,使输出电流能实时跟随设定值。

 2.3系统模块概述 2.3.1系统组成框图

 图3 系统组成框图 如图3所示,本设计共分6个模块。

 (1)键盘输入模块:

 通过矩阵键盘设置输入电流,步进为1mA,输入电流范围为20-2mA。并可通过“+”“-”进行微调。

 (2)数码管显示模块 显示预置电流与实际的输出电流。

 (3)D/A转换模块:

 将单片机输出的数字量转换成模拟量,送入恒流源模块。

 (4)A/D转换模块 将实际输出的电流转化为数字量,送入单片机 (5)恒流源模块 实现电流的输出。

 (6)单片机主控模块 整个设计的控制部分。连接电源、键盘模块、D/A转换模块、A/D转换模块及液晶显示模块。

 3电路硬件设计 3.1单片机功能介绍 3.1.1器件选择与作用 (1)AT89S52 P0口(32-39):8位漏级开路双向io口,输出高电平大电流时需要被外部拉高 P1口(1-8):一个内部可以提供上拉电阻的8位双向IO口 P2口(21-28):一个内部可以提供上拉电阻的8位双向IO口,当在给出地址“1”时,它利用内部上拉的优势,对外部八位地址数据存储器进行读写时,输出特殊功能寄存器的内容 P3口(10-17):一个内部可以提供上拉电阻的双向IO口,也可以作为一些特殊的功能口如下所示: P3.0RXD串行输入口 P3.1TXD串行输出口 P3.2/INT0外部中断0 P3.3/INT1外部中断1 P3.4T0记时器0外部输入 P3.5T1记时器1外部输入 P3.6/WR外部数据存储器写选通 P3.7/RD外部数据存储器读选通 RST(9):复位输入 XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2(18):来自反向振荡器的输出 图4为AT89S52引脚图。

  图4 AT89S52引脚图 (2)ADC0804 集成A/D转换器品种繁多,选用时应综合考虑各种因素选取集成芯片。一般逐次比较型A/D转换器用的比较多,ADC0804就是这类单片集成A/D转换器。ADC0804是一款8位、单通道、低价格的A/D转换器,图5为ADC0804引脚图。

  图5 ADC0804 ①主要特点 模数转换时间约100us;方便TTL或CMOS标准接口;满足差分电压输入;有参考电压输入端;内含时钟发生器;单电源工作时(0~5)V输入电压范围是0~5V;不需要调零等等。ADC0804是一款早期的AD转换器,且价格低廉,在要求不高的场合广泛应用。(1)芯片参数:

 工作电压:+5V,即VCC=+5V。

 模拟转换电压范围:0~+5V,即0≤Vin≤+5V。

 分辨率:8位,即分辨率为1/28=1/(256-1),转换值介于0~255之间。

 转换时间:100us(fCK=640KHz时)。

 转换误差:±1LSB。

 参考电压:2.5V,即Vref/2=2.5V。

 ②各个引脚名称及作用 Vin(+)、Vin(-):两个模拟信号输入端,可以接收单极性、双极性和差模输入信号。

 DB0-DB7:具有三态特性数字信号输出端,输出结果为八位二进制结果。

 CLKIN:时钟信号输入端。

 CLKR:内部时钟发生器的外接电阻端,与CLK端配合可由芯片自身产生时钟脉冲,其频率计算方式是:fck=1/(1.1RC)。

 CS:片选信号输入端,低电平有效。

 WR:写信号输入端,低电平启动AD转换。

 RD:读信号输入端,低电平输出端有效。

 INTR:转换完毕中断提供端,AD转换结束后,低电平表示本次转换已完成。

 VREF/2:参考电平输入,决定量化单位。

 VCC:芯片电源5V输入。

 AGND:模拟电源地线。

 DGND:数字电源地线。

 ③ADC0804典型接法 ADC0804典型接法如图6所示

 图6 ADC0804接法图 (3)DAC0832 分辨率为8位;电流稳定时间1us;可单缓冲、双缓冲或直接数字输入;只需在满量程下调整其线性度;单一电源供电(+5V~+15V);低功耗;图7为DAC0832引脚图

 图7 DAC0832引脚图 ①DAC0832结构 *D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错); *ILE:数据锁存允许控制信号输入线,高电平有效; *CS:片选信号输入线(选通数据锁存器),低电平有效; *WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存; *XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效; *WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

 *IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化; *IOUT2:电流输出端2,其值与IOUT1值之和为一常数; *RFB:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度; *Vcc:电源输入端,Vcc的范围为+5V~+15V; *VREF:基准电压输入线,VREF的范围为-10V~+10V; *AGND:模拟信号地; *DGND:数字信号地。

 (4)74HC573 74HC573,八路输出透明锁存器,输出三态门,高性能硅栅CMOS器件。

 SL74HC573与LS/AL573管脚相同。器件输入和标准CMOS输出兼容,加上拉电阻与LS/ALSTTL输出兼容。常作为锁存器使用。锁存使能端LE为高,器件锁存对数据输出同步。锁存使能变低,符合建立时间和保持时间的数据锁存。图8为75HC573引脚图

 图8 74HC573引脚图 ①I/O输出接到CMOS,NMOS和TTL接口上 ②工作电压范围:2.0V~6.0V ③最低输入电流:1.0uA ④器件的高噪声抵抗特性 ⑤三态总线驱动输出 ⑥置数全并行存取 ⑦缓冲控制输入 ⑧使能输入有改善抗扰度的滞后作用 ⑨74HC573工作原理 ⑩74HC573锁存功能 M54HC563/74HC563/M54HC573/74HC573八个锁存器透明锁存器,当使能为高时,输出将随数据输入而变。使能为低,输出锁存在已建立的数据电平。输出控制不影响锁存器的内部工作,即老数据可以保持,输出被关闭,新数据置入。电路驱动大电容或低阻抗负载,直接与系统总线接口并驱动总线,不需外接口。适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。

 输入数据消失,在芯片输出端,数据保持;概念在并行数据扩展中使用到。具体如表1所示 OE— 1 20 —Vcc D0— 2 19 —Q0 D1— 3 18 —Q1 D2— 4 17 —Q2 D3— 5 16 —Q3 D4— 6 15 —Q4 D5— 7 14 —Q5 D6— 8 13 —Q6 D7— 9 12 —Q7 GND— 10 11 —LE 表1 74HC573数据锁存表 4模块单元设计 本次课设主要目的设计一种数控稳压电源。利用单片机AT89S52做主控芯片,控制数字/模拟转换器输出电压大小,经过运算放大器构成负反馈系统,输出恒定电压。通过电位器分压将输出信号反馈到运算放大器,调节输出准确度。通过键盘电路与单片机连接,读入控制数据,软件判断,控制电源输出。通过LED数码管显示数控电源输出电压,课设设计简单,控制灵活;又强效实用。

 4.1设计原理分析 4.1.1 运算放大部分 如图9所示,运算放大器的基本原理是对输入信号进行放大。运放加入反馈电路,通过反馈网络的设置,获得精确放大增益,对信号完成加减乘除、微分等数学运算,帮助系统完成负反馈控制,如恒流控制,恒压控制等。

  图9 运算放大部分 4.1.2 晶振部分 如图10所示,为电路晶振部分。构成时钟电路,C1、C2、Y1(12MHZ)与单片机端口构成振荡电路,为单片机提供时钟

 图10 晶振部分 4.1.3 复位电路 如图11所示,为电路复位部分。RST连接单片机复位管脚,此电路有上电复位和手动复位功能。C3、R1构成上电复位电路,上电瞬间C3导通,则RST为高电平,单片机复位,电压稳定后C3储存的电能通过R1对地释放掉,单片机将正常运行。同样S1按下时RST为高电平,单片机复位,弹起来时RST为低电平,单片机正常运行。

  图11 复位电路 4.1.4 按键部分 如图12所示,为电路按键部分。按键选用独立按键,扫描时间短,使程序简单且扫描时间更短,从而提高稳定性。按键弹起时key1、key2、key3为弱上拉状态,所以为高电平。按键按下时对应的I/O口为低电平,可以被程序中的扫描函数检测到。

  图12 按键部分 4.1.5 数码管显示部分 如图13所示,为电路数码管显示部分。数码管显示采用四位一体共阳数码管,这样使电路更为简单

 图13 电路数码管部分 4.1.6 A/D转换部分 如图14所示,为电路A/D转换部分。集成A/D转换器品种繁多,选用时应综合考虑各种因素选取集成芯片。一般逐次比较型A/D转换器用的比较多,ADC0804就是这类单片集成A/D转换器。ADC0804是一款8位、单通道、低价格的A/D转换器,

 图14 A/D转换部分 4.1.7 D/A转换部分 如图15所示,为电路A/D转换部分。DAC0832为采样频率八位D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。

  图15 D/A转换部分 4.1.8存储部分 如图16所示,为电路存储部分。当输入的数据消失时,在芯片的输出端,数据仍然保持;这个概念在并行数据扩展中经常使用到。

  图16 存储部分 5软件设计 5.1系统设计思路 系统通过比较D/A输出和A/D的釆样输入来更新D/A的输出值,使输出电流稳定在较低的误差水平.由于A/D和D/A的分辨率均已达到16位,程序设定当设定电流与输岀电流差值在1mA时,认为恒流源输出电流已达到设定值并保持稳定。

 在系统加电后,主程序首先完成系统初始化,其中包括A/D、D/A、串行口、中断、定时/计数器等工作状态的设定,给系统变量赋初值,显示上次设定值等。然后扫描获取键值,判断设定键、校准键是否按下,执行相应的功能子程序。当启动键按下后,根据设定值、校正等参数计算对应输出的数字量,再进行闭环反馈调整。如图17所示 首先对包括:单片机工作状态的初始化;自动采样控制标志位和标识键盘手动操作的初始化;中断初始化;一些用到的寄存器的初始化,整个系统进行初始化。规定F0=1时为A/D采样控制,F0=0时为键盘控制,初始写初始设定状态,此处为键盘的状态,LED数码管显示为P,也是表示键盘状态,启动D/A进行转换。并等待键盘按下,开始循环等待。

 软件部分包括:按键检测部分、数码管显示部分、闭环控制部分。

 按键检测部分:主程序不断检测是否有按键按下,且采用延时消抖、松手检测方法以避免微处理器的错误判断,增强软件的稳定性。当检测到按键按下时,执行相应程序改变IO口输出值,经D/A转换最终改变恒流源的输出电流值。

 数码管显示部分:显示部分可采用液晶屏或数码管显示,应考虑到成本问题,本设计采用led数码管,利用单片机动态显示当前恒流源的输出电流。

 闭环控制部分:输出电流经过精密采样电阻转换为电压信号,经A/D转换器转换为数字信号后,与键盘输入值进行比较,对偏差进行校正,在小范围内调整输出量,使输出值与预设值达到一致。

  图17 系统主程序流程图 5.2具体分步流程 本次课程设计的软件部分主要配合硬件来完成设定恒流源数值控制显示设定与实际输出电流值的功能 为了完成以上功能,我选择了C语言来对AT89S52芯片进行编程,使用keil5软件。整个软件分为键盘扫描模块、液晶显示模块、数模转换模块、模数转换模块,如图18所示。

  图18 软件分步模块图 5.2.1键盘键入流程 如图19所示,为键盘输入流程

 图19 键盘输入流程图 5.2.2 A/D转换流程 如图20所示,为A/D转换流程图

  图20 A/D转换流程图 5.2.3 D/A转换流程 如图21所示,为D/A转换流程图

 图21 D/A转换流程图 5.2.4 小号共阳数码管显示流程 如图22所示,为小号共阳数码管显示流程图

 图22 小号共阳数码管显示流程图 6系统调试分析 设计完成后,用LCD对电路进行了仿真,其结果如下 部分仿真截图(第一行为键盘输入值,第二行为实际值):

 20mA时:

  图23 20mA仿真图 50mA时:

  图24 50mA仿真图 100mA时:

  图25 100mA仿真图 500mA时:

  图26 500mA仿真图 1000mA时:

  图27 1000mA仿真图 2000mA时:

  图28 2000mA仿真图 经检验,总体误差较小,尤其是当输出电流较大时,符合设计要求。

 误差分析:恒流源电路中达林顿管需要一定的导通电压,若在实际应用中还要考虑器件由于工艺以及温度而产生的误差;A/D转换器和D/A转换器因为分辨率原因而存在固有的误差。实验数据如表2所示。

  表2 输入/输出误差表 7实验及测试结果分析 在负载为1欧和10欧的情况下,设定电流从1mA到2A变化时,实测的电流值如表3和表4所列。

 电流设定/mA 10 50 100 200 300 400 500 600 700 实际测*/mA 12 51 101 201 301 402 501 602 702 电流设定/'mA 800 900 1000 1200 1400 1600 1SC0 1950 2000 实际测S/mA 802 903 1005 1208 1410 1612 1816 1968 2021 表3测试数据表(RL=1欧) 电流设定/mA 10 50 100 200 300 400 500 600 700 实际测量/mA 11 51 102' 202 301 402 502 603 703 电流设定/mA 800 900 1000 1200 1400 1600 1800 1950 2000 实际测量/mA 802 902 1004 1206 1411 1613 1815 1967 2020 表4测试数据表(RL=10欧) 测试数据表明,系统在不同负载时其输出电流具有较高的线形度,但误差较大,由于采用的A/D,D/A的分辨率均已达到16位,釆样值已极接近实际电压,初步考虑误差的主要来源应该在于釆样电阻。在实测了釆样电阻两端的电压和实测电流后,发现其比值略大于2.0对表1和表2的数据利用最小二乘法进行拟合后,得出采样电阻的校正值为2.04欧 校正后重新测量的数据如表4和表5所列。

 电流设定/mA 10 50 100 200 300 490 500 600 700 实际测量/mA 11 50 100 200 300 400 501 600 700 电流设定/mA 800 900 1000 1200 1400 1600 1800 1950 2000 实际测量/mA 801 900 J000 1219 1401 1600 1801 1950 2000

 表4测试数据表(RL=1欧)

  电流设定/mA 10 50 100 200 300 400 500 600 700 实际测量/mA 10 50 100 201 301 400 500 601 700 电流设定/“mA 800 900 1000 1200 1400 1600 1800 1950 2000 实际测量/mA 801 900 1001 1200 1400 1602 1801 1950 2020 表5测试数据表(RL=10欧) 表4当Rl=20Q时,表6为测试数据记录表

  1 2 3 设定值 20 100 500 显示值 20 100 499 测试值 19.5 99.8 500.56 纹波电压 0.34 0.2 0.23 误差百分率% 2.5 0.2 0.31 次数 4 5 6 设定值 900 1400 2000 显示值 899 1400 2000 测试值 900.3 1398 1998 纹波电压 0.21 0.18 0.18 误差百分率% 0.14 0.12 0.1 表6 测试数据表(RL=10欧) 从测量结果来看,系统的误差主要来源于运算放大器和MOS管的电流放大倍数不够大或者不稳定;D/A转换器和A/D转换器存在一定的量化误差;取样电阻可能因温度的变化引起了误差;基准电压的稳漂引起的误差。

 8结论及未来展望 本设计基于单片机AT89S52数控直流恒流源设计,通过运算放大器等部件组成电流负反馈系统,完成输出电流的控制恒定,提高了系统的精度。输出电流可在0.02-2mA之间变化,随负载和环境温度变化较小。该系统电路简单、成本低、功耗小、可靠性高,具有较为广阔的市场前景和应用价值。

 恒流源目前运用十分广泛,本设计恒流源技术符合设计要求,具有高精度及稳定度,操作方便且造价便宜,适合推广使用。采用价格便宜的单片机作为主控制器,且有A/D、D/A转换电路的设计,键盘输入及输出显示等,恒流源实现了键盘输入预置值,LED显示输出预置值和实际输出值。步进+2mA、-2mA,纹波电小,精度和稳定度高。存在改善的地方。由于时间个人能力因素,在硬件部分,恒流源模块的设计存在改善空间,从功耗、输出电流电压范围优化。软件方面,利用A/D模块采集的电压,与预设的电流比较,存在差距,通过微处理器调整,控制输出恒流的精度及稳定程度。

 本人设计系统有很多不足,如精度和稳定度只停留在实验的基础上,大面积使用,会出现问题,这是我要亟待解决的问题。

 在这次课设中,收获大于遗憾。进行本次课设中,综合运用了模电数电及C语言等多种课程,巩固专业知识,梳理知识网络,对电子专业透彻认识与了解。

 当今社会,产品智能化、数字化已成为人们追求的一种趋势,设备的性能,价格,发展空间等备受人们的关注,尤其对电子设备的精密度和稳定度最为关注。性能好的电子设备,首先离不开稳定的电源,电源稳定度越高,设备和外围条件越优越,那么设备的寿命更长。基于此,人们对数控恒定电流器件的需求越来越迫切,所以恒流源在未来将有很大的发展,而我们要做的是把恒流源的知识理解更加系统化,做出更加符合当今社会发展的恒流源。

  9致谢 本课设中,电路模块原理设计中得到黄建清老师帮助指导,论文内容排版上王立辉老师提出的宝贵建议。让本人高效寻获到价值信息。

 特殊疫情期间;在这次的课设中锻炼自己的思考和动手能力。通过题目选择设计电路中,加强思考的完整性及实际生活联系的可行性。在方案的设计选择和芯片的选择上,锻炼熟练运用单片机能力,深刻认识单片机管脚功能。锻炼个人查阅专业知识资料及动手能力及发现并解决问题技能,且熟练掌握调试仿真的性能与设计完善并排错电路图的技巧。

 最后感谢黄建清老师以及王立辉老师的严谨指导,这里向黄老师和王老师致与崇高敬意,道一声老师,感谢你们,辛苦了。同时感谢同学们倾情帮助及在课设中遇到难题时上网寻求帮助时给予可行解决方案的热心网友们。

 无论学习还是生活,重在实在,贵在踏实走路。做事认真严谨,切忌粗心大意,小错毁大事,要灵活变通,遇到困难要积极寻求解决途径并锻炼善于总结能力;努力定有结果。即使暂时看不到结果也不轻言放弃;一定程度上在专业领域中扎根,未来定会成为催化剂; 课设时间虽短,却能源源不断汲取实践专业知识与应用技能,相比大二面对课设课题摸不着头脑的束手无策,一年的专业知识和多次课设完成经验的累积让我得心应手。更加应付自如;在专业知识系统方面成长愈发成熟;课设完成让我打开眼界,感受颇深。为今后踏入社会做了一定的基础准备。

  10参考文献 [1]欧阳文.ATMEL89系列单片机的原理与开发实践[J].北京:中国电力出版社,2007,(06). [2]张毅刚.单片机原理及应用[J].北京:高等教育出版社,2003,(12). [3]余锡存,曹国华.单片机原理及接口技术[J].西安:西安电子科技大学出版社,2000,(7). [4]余孟尝.数字电子技术基础简明教程[M].北京:高等教育出版社,2006,(7). [5]杨素行.模拟电子技术基础简明教程[M].北京:高等教育出版社,1998,(10). [6]曲学基,王增福.稳定电源实用电路选编[M].北京:电子工业出版社,2003,(06). [7]熊伟林.模拟电子技术基础及应用[M].北京:机械工业出版社,2010.,(07). [8]蔚广军,朱宇虹.几种恒流源电路的设计[J].电子与自动化,2000,(1).

  附录1 Proteus仿真图

  仿真成功图

  附录2 原理图

 附录3 PCB图

 附录4 程序

 #include <REGX52.H> #include <intrins.h> #define

 Data_seg

 P0 #define

 DA_port

  P2 #define Data_ADC0809 P1

  //定义P1口为Data_ADC0809 (之后的程序里Data_ADC0809即代表P1口) #define uchar unsigned char #define uint unsigned int

 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  unsigned char code

 Wei[]={0x01,0x02,0x04,0x08}; sbit WELA =P3^1;

 //位控制端 sbit DULA =P3^0;

 //段码控制端 sbit KEY1=P3^5; sbit KEY2=P3^6; sbit KEY3=P3^7;

 sbit DA_CS=P3^2;

 //ADC0809 sbit adrd = P3^3; sbit adwr = P3^4; sbit intr = P3^2; #define KEY1_PRESS 1 #define KEY2_PRESS 2 #define KEY3_PRESS 3 void Delay_ms( unsigned int ms) //@11.0592MHz { unsigned char i, j; for(;ms>0;ms--) { _nop_(); i = 2; j = 199; do { while (--j); } while (--i); } } unsigned char KeyScan(unsigned char mode) { static unsigned char key_up=1; //按键松开标志 if(mode) key_up=1;//支持连按 if(key_up&& (KEY1==0|| KEY2==0||KEY3==0)) { Delay_ms(10); key_up=0; if(KEY1==0)

 return KEY1_PRESS; else if(KEY2==0)

 return KEY2_PRESS; }else if(KEY1==1&&KEY2==1&&KEY3==1) key_up=1; return 0; //无按键按下 } void Seg_display(unsigned char *Data_IN) { unsigned char i=0; for(i=0;i<4;i++) { WELA=1; Data_seg=Wei[i];

 //发送位数据 WELA=0; Delay_ms(5); Data_seg=0x00; DULA=1; Data_seg=~table[Data_IN[i]];

 //发送段数据 DULA=0; Delay_ms(5); Data_seg=0x00; } } //ADC0809读取信息 uchar ADC0809() { unsigned char x = 0;

 //存储P0口的数值 //芯片有效 WELA=1; Data_seg &=~0x80;

 //CS置0 WELA=0; adwr = 0;

  //启动ADC0804进行ADC采集 _nop_();

 //延时片刻 adwr = 1;

  //高电平变低电平触发一次ADC转换 while(intr); // ADC转换完成后intr = 0 Data_ADC0809 = 0xff; //芯片有效 WELA=1; Data_seg &=~0x80;

 //CS置0 WELA=0;

 adrd = 0;

 //rd为低电平将转换结果加载到DB口 _nop_(); x = Data_ADC0809;

 //读取结果 adrd = 1; //芯片无效 WELA=1; Data_seg|=0x80;

 //CS置1 WELA=0;

 return x; }

 //2---0.0200691

  //3---0.0396309

 0.0196 //4---0.058889

  0.0192 //5---0.078721

  0.0198 //6---0.0978169

 0.0191 //7---0.117541

  0.0197 //0.0194*n #define Current_K 0.0194/20 float

  Current_Value=0.0; uint

  Voltage_Value=0; void main() { uchar temp[4]={0,2,3,4}; uchar t=0; uchar

  Set_value =0; //让DAC0832输出电压值 uint

  current_temp=1234; WELA=1; DULA=1; while(1) { DA_CS=0; DA_port=Set_value;

 DA_CS=1; Current_Value=(float)Set_value*Current_K; current_temp= (uint)(Current_Value*1000); temp[0]=current_temp/1000;

 //1 temp[1]=current_temp/100%10;

 //2 temp[2]=current_temp/10%10;

 //3 temp[3]=current_temp%10;

  //4 t=KeyScan(0); if(t==KEY1_PRESS)

 {

 if(Set_value>=255) Set_value=255; else if(Voltage_Value<18)//停止增大电流;

 else Set_value++; }else if(t==KEY2_PRESS) {

 if(Set_value<=0) Set_value=0; else Set_value--; } Voltage_Value=ADC0809();

  Seg_display(temp); } }

 

Tags: 单片机   数控   设计  

搜索
网站分类
标签列表