1、湖南商学院综合电子设计实验 数控直流电流源的设计 学 院: 计算机与电子工程学院 学生姓名: 许朝霞、张望辉、胡啸 学 号 :、 指导教师: 苏岱安 职称 副专家 专 业: 电子信息工程 班 级: 电信 0902 完毕时间: 2023 - 10 数控直流电流源1 设计任务及规定1.1 设计任务设计并制作数控直流电流源。输入交流200240V,50Hz;输出直流电压10V。其原理示意图如下所示。图1.1 原理图1.2 设计规定1.2.1 基本规定(1)输出电流范围:200mA2023mA;(2)可设立并显示输出电流给定值,规定输出电流与给定值偏差的绝对值给定值的1+10 mA;(3)具有“+”、
2、“-”步进调整功能,步进10mA;(4)改变负载电阻,输出电压在10V以内变化时,规定输出电流变化的绝对值输出电流值的1+10 mA; 1.2.2 发挥部分(1)输出电流范围为20mA2023mA,步进1mA;(2)设计、制作测量并显示输出电流的装置 (可同时或交替显示电流的给定值和实测值),测量误差的绝对值测量值的0.1+3个字;(3)改变负载电阻,输出电压在10V以内变化时,规定输出电流变化的绝对值输出电流值的0.1+1 mA;(5)其他。2 方案设计与论证2.1 设计思想采用改善型的单输出端单向电流源电路来产生恒定电流。该方法是用精密电阻取样得到反馈电压,将反馈电压与高精度的参考电压比较
3、得到误差电压,此误差电压经放大后输出控制调整管的导通限度,使预设电流值和实测电流值的逐步逼近,直至相等,从而达成数控的目的。从题目的规定来分析,该题目最大的难点在于大电流输出和高精度控制,所以在具体的方案拟定中,大电流、功耗,以及精度、误差等都是我们所必须要考虑和克服的。2.2 方案论证对于数控直流电流源的设计有很多方案,下面做一下介绍:方案一:方框图如图2.1所示,数控直流电流源由键盘、控制器、显示器、数模转换、电压电流转换和模数转换等部分组成,键盘的作用是设定电流值和拟定电流步进值;控制器的作用是将设定电流值的8位(或12位)二进制输出;显示器的作用是显示设定电流值;数模转换的作用是设定电
4、流值的数字量转换为模拟量;电压电流转换的作用是将电压转换成恒定电流输出;模数转换的作用是将输出的模拟量再转换为数字量反馈到控制器,使实际输出电流值与设定电流值一致。图2.1 方案一的方框图方案一的数控直流电流源设计比较简朴,对于电流的变化是采用相比而言使用可编程芯片,如CPLD或FPGA等和DAC控制,采用LED数码管进行实时显示,操作也比较方便。方案二:方框图如图2.2所示,采用改善型的单输出端单向电流源电路来产生恒定电流。该方法是用精密电阻取样得到反馈电压,将反馈电压与高精度的参考电压比较得到误差电压,此误差电压经放大后输出控制调整管的导通限度,使预设电流值和实测电流值的逐步逼近,直至相等
5、,从而达成数控的目的。从题目的规定来分析,该题目最大的难点在于大电流输出和高精度控制,所以在具体的方案拟定中,大电流、功耗,以及精度、误差等都是我们所必须要考虑和克服的。图2.2 方案二方框图方案二的数控直流电源设计采用单片机作为核心控制,基本原理简朴,实现比较方便,电源的电流值也可以调整到较精确的数值,同样的也是采用LCD进行显示。此方案采用保持电阻恒定而改变输入电压的方法来改变电流的大小。运用高精度D/A转换器在单片机程序控制下提供可变的高精度的基准电压,该基准电压通过V/I转换电路得到电流,再通过A/D转换器将输出电流反馈至单片机进行比较,调整D/A的输入电压,从而达成数控的目的。该方案
6、的难点在于稳定恒流源的设计和高精度电流检测电路的设计。特点是可精确的控制电流的步进量,负载变化对电流输出的影响较小。根据题目规定以及设计思绪,比较之后,基于以上优点以及对于单片机的成熟应用,因此我决定用单片机来作为控制器,我所采用的是第二种方案。3 硬件系统的设计3.1 单片机最小系统3.1.1 时钟电路单片机必须在时钟的驱动下才干工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率重要由石英
7、晶振的频率拟定。电路中石英晶体振荡器的频率为12MHz,两个电容 C1、C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1、C2的典型值为33PF。单片机的时钟电路如图3.1所示。图3.1 单片机的时钟电路图3.1.2 复位电路单片机的第9脚RST为硬件复位端,只要将该端连续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态。复位电路用于产生复位信号,通过RST引脚送入单片机,进行复位。由于AT89S52单片机的复位是靠外部电路实现的。复位电路的好坏直接影响单片机系统工作的可靠性,因此,要重视复位电路的设计和研究。只要RST端保持10ms以上的高电平,
8、就能使单片机有效地复位。AT89C51单片机通常采用上电自动复位、按键复位、以及上电加按键复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接进入复位状态,当程序出现错误时,可以随时使电路复位。则复位电路图如图3.2所示。图3.2 单片机复位电路图3.1.3 AT89C51单片机此单片机共有4个8位的并行双向I/O口,分别记作P0、P1、P2、P3,这4个口除可按字节寻址以外,还可按位寻址。P0口地址为80H,位地址为80H87H。各位口线具有完全相同但又互相独立的逻辑电路。P1口地址为90H,位地址为90H97H。P1口只能作为通用数据I/O口使用,所以在电路结构上与P0口有
9、些不同。P2口地址为A0H,位地址为A0HA7H。P2口既可以作为系统高位地址线使用,也可认为通用I/O口使用,所以P2口电路逻辑与P0口类似。P3口地址为B0H,位地址为B0HB7H。虽然P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。P3口的第二功能如表3.1所示。AT89C51单片机尚有一个地址锁存控制信号ALE,外部程序存储器读选通信号,访问程序存储器控制信号,复位信号RST,地线和+5V的电源。单片机最小系统图如图3.3所示。表3.1 P3口线第二功能 口 线 第二功能信号 第二功能信号名称 P3.0 RXD 串行数据接受 P3.1 TXD 串行数据发送 P3
10、.2 INT0 外部中断0申请 P3.3 INT1 外部中断1申请 P3.4 T0 定期器/计数器0计数输入 P3.5 T1 定期器/计数器1计数输入 P3.6 外部RAM写选通 P3.7 外部RAM读选通图3.3 单片机最小系统图3.3 显示模块方案一:使用LED数码管显示。数码管采用BCD编码显示数字,对外界环境规定低,易于维护。但根据题目规定,假如需要同时显示给定值和测量值,以及其他输出特性值,需显示的内容较多,要使用多个数码管动态显示,使电路变得复杂,加大了编程工作量。方案二:使用LCD液晶显示。LCD具有轻薄短小,可视面积大,方便的显示数字,分辨率高,抗干扰能力强,功耗小,且设计简朴
11、等特点。LM016L液晶模块采用HD44780控制器,hd44780具有简朴而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处在内部模式,不响应外部操作指令
12、和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的相应关系,CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,假如地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM,LM016L液晶模块的引脚功能如下表3.2所示。表3.2 LM016L引脚功能引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源
13、时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位1
14、4DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flang)15BLA背光电源正极16BLK背光 电源负极综上所述,选择方案二。采用LM016L液晶显示模块同时显示电流给定值和实测值以及负载内阻。连接电路图如图3.4所示。图3.4 LM016L与单片机的接线图3.4 键盘模块方案一:采用独立式按键电路,每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。缺陷为当按键较多时占用单片机的I/O口数目较多。方案二:采用标准44键盘,此类键盘采用矩阵式行列扫描方式,优点是当按键较多时可减少占用单片机的I/O口数目,并且可以做到直接输入电流值
15、而不必步进。题目规定可进行电流给定值的设立和步进调整,需要的按键比较多。综合考虑两种方案及题目规定,采用方案二,使用标准的4x4键盘,可以实现09数字输入、“+”、“-”、“OK”、“SET”、“DEL”、“RESET/ON”这些功能按键。其电路图如图3.5所示。图3.5 键盘与单片机的接线图 3.5 电流源模块方案一:采用集成稳压器运放构成的线性恒流源。如图3.6所示。D/A输出电压作为恒流源的参考电压,运算放大器U1与晶体管Q1,Q2组成的达林顿电路构成电压跟随器。运用晶体管平坦的输出特性即可得到恒流输出。由于跟随器是一种深度的电压承担亏电路,因此电流源具有较好的稳定性。本电流源的稳定度优
16、于0.5%。为了提高稳定度,Rs采用大线径康铜丝制作,康铜丝温度系数很小,大线径可以使其温度影响减至最小。U1采用精密运算放大器OP37A,该放大器有调节零点漂移的功能,Q1采用9014大倍数大约为400.Q2采用低频功率管3DD15,他的放大倍数为1020倍,漏电流很小。Q1的加入是为了增长复合管的放大倍数。图3.6 稳压器运放线性恒流源模块电路图方案二:采用运放和场效应管的压控恒流源。电路原理图如图3.7所示。该恒流源电路由运算放大器、大功率场效应管Q1、采样电阻R2、负载电阻RL等组成硬件设计。采用场效应管,更易于实现电压线性控制电流,既能满足输出电流最大达成2A的规定,电路简洁也能较好
17、地实现电压近似线性地控制电流。此电路中,为了满足题目的设计规定,调整管采用大功率场效应管IRF640。当场效应管工作于饱和区时,漏极电流Id近似为电压Ugs控制的电流。即当Ud为常数时,满足:Id=f(Ugs),只要Ugs不变,Id就不变。在此电路中,R7为取样电阻,采用康铜丝绕制(阻值随温度的变化较小)阻值为1。运放OP07作为电压跟随器,Uin=Up=Un,场效应管Id=Is(栅极电流相对很小,可忽略不计) 所以Iout=Is= Un/R7= Uin/R7。正由于Iout=Uin/R7,电路输入电压Uin控制电流Iout,即Iout不随RL的变化而变化,从而实现压控恒流。图3.7 压控恒流
18、源模块电路图综上所述,进行综合比较,方案二电路较简朴,稳定性较高,故采用方案二,使用高精度运放和大功率场效应管等构成一个恒流源电路。3.6 负载模块根据题目规定,设计了如图3.8所示的电路图。电路综合各方面的考虑因素在里面,由于TLC2543所测电压值在5V内,而负载一端接17V电压源,另一端接功率管,因此采用差分增益电路采样负载电压,Va/din1=(1+R1/R2)(R4/R3)/(1+R4/R3)Va-R1/R2Vb,当R1/R2=R4/R3时,OP07输出电压Va/din1=R4/R3(Va-Vb),硬件设立R4/R3=1/4,软件还原负载电压,保证测量精度。而采样精密电阻R1为1,通
19、过采样R7两端电压值换算成电流值即可得到输出电流。图3.8 负载电流、电压测量电路图3.7 D/A、A/D转换模块D/A、A/D模块是单片机与外部数据连接的通道,因此这两个模块的选择与使用应当合理。3.7.1 D/A转换器 本设计中应采用DAC模块提供高精度的基准电压,即通过CPU发出的二进制转换为的模拟电压,送给误差放大器,实现步进规定。(1)根据题目扩展功能规定输出,以1mA为步进,需要的级数由公式(1)可见。,故应采用12位D/A转换器为D/A转换芯片,供选择的很多,在此选用proteus元件库中的LTC1456芯片。其内部结构电路图如图3.9所示。 图3.9 TLC1456内部结构电路
20、图3.7.2 A/D转换器A/D模块的是反馈的核心,我们采用Proteus元件库中的TLC2543芯片实现。TLC2543是一种低功耗、低电压的12位串行开关电容型AD转换器。它使用逐次逼近技术完毕A/D转换过程。最大线性误差小于1LSB,转换时间10s。它具有三个控制器输入端,采用简朴的3线SPI串行接口可方便与微机进行连接,是12位数据采集系统的最佳选择器件之一。TLC2543引脚功能如表3.3所示,其特点如下: 11个模拟输入通道;3路内置自测试方式;采样率为66kbps; 线性误差1LSBmax; 有转换结束输出EOC; 具有单、双极性输出; 可编程的MSB或LSB前导; 可编程输出数
21、据长度。表3.3 LTC2543引脚功能引脚号名称I/O说明19,11,12AIN0AIN10I模拟量输入端。11路输入信号由内部多路器选通。对于4.1MHz的I/OCLOCK,驱动源阻抗必须小于或等于50,并且用60pF电容来限制模拟输入电压的斜率15I片选端。在端由高变低时,内部计数器复位。由低变高时,在设定期间内严禁DATAINPUT和I/O CLOCK17DATAINPUTI串行数据输入端。由4位的串行地址输入来选择模拟量输入通道16DATA OUTOA/D转换结果的三态串行输出端。为高时处在高阻抗状态,为低时处在激活状态19EOCO转换结束端。在最后的I/OCLOCK下降沿之后,EO
22、C从高电平变为低电平并保持到转换完毕和数据准备传输为止10GNDGND是内部电路的地回路端。除另有说明外,所有电压测量都相对GND而言18I/O CLOCKI输入/输出时钟端。I/OCLOCK接受串行输入信号并完毕以下四个功能:(1)在I/O CLOCK的前8个上升沿,8位输入数据存入输入数据寄存器。(2)在I/OCLOCK的第4个下降沿,被选通的模拟输入电压开始向电容器充电,直到I/OCLOCK的最后一个下降沿为止。(3)将前一次转换数据的其余11位输出到DATA OUT端,在I/OCLOCK的下降沿时数据开始变化。(4)I/OCLOCK的最后一个下降沿,将转换的控制信号传送到内部状态控制位
23、14REF+I正基准电压端。基准电压的正端(通常为Vcc)被加到REF+,最大的输入电压范围由加于本端与REF-端的电压差决定13REF-II 负基准电压端。基准电压的低端(通常为地)被加到REF- 20Vcc电源转换过程:上电后,片选CS必须从高到低,才干开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。开始时,CS片选为高,I/O CLOCK、DATA INPUT被严禁,DATA OUT 呈高阻状,EOC为高。使CS变低,I/OCLOCK、DATAINPUT使能,DATAOUT脱离高阻状态。12个时钟信号从I/OCLOCK端依次加入,随着时钟信号的加入
24、,控制字从DATAINPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATAOUT一位一位地移出。TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10s,转换完毕后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。3.7.3 D/A、A/D连接电路D/A 、A/D连接电路如图3.10所示。图3.10 D/A
25、、A/D连接电路图4 软件系统的设计4.1 单片机资源使用情况本设计用到了单片机控制DA和AD转换的功能,此外用到了单片机的中断功能,在数据的显示时所采用的是查表的方法,因此需要将表格、数据存到单片机的程序存储器中去。数控直流电流源的数据要存储到数据存储器中去,用到了30H到50H之间的单元。由于数控直流电流源需要可以进行调节,因此,需要在单片机的P口上加上按键,本设计采用行列式键盘,直接接在P2口上。用到的液晶显示器接到了单片机的P0口线上,液晶显示器的使能端用到了P3口线。4.2 软件系统的模块4.2.1 定期模块在本设计中用到了几个定期模块,第一个定期是用于定期按键的抖动时间,由于当按键
26、时都会出现电压抖动,但对键盘工作有影响的是键闭合时的抖动,所认为了保证键扫描的对的性,每当扫描到有闭合键时,都要进行去抖动解决。本设计中采用的是软件去抖动的方法,抖动的定期采用的软件的延时进行定期的。第二个定期的功能是在数码管显示时的延时时间,即在数码管显示时是采用查表的方法进行显示的,因此需要用到一定的延时,使得我们可以看的清楚所显示的内容,在这里用到的延时也是采用软件的延时。4.2.2 按键操作模块在本次设计中,用到了三个独立式键盘进行按键的操作。由于本数控直流电流源的操作比较简朴,而只用到了三个键,因此在键盘的操作时采用的是层层递进的方法,一步一步往下操作的,设立了键的名称为ON/OFF
27、键、ADD键、DEC键,在软件设计中是在ON/OFF键按下了之后才会有ADD键、DEC键的操作,键与键之间的功能采用层层套用使得程序看起来更加清楚明了。在按键的程序扫描中是采用查询的方法对按键进行操作的,当查询到按键有动作时,则执行相应的操作。独立式键盘的程序设计一般把键盘扫描程序设计成子程序,以便其它各程序调用。本设计中的键盘扫描子程序的名称为KEY,则键盘扫描子程序KEY应具有以下功能:鉴定有无按键动作;去抖动;确认是否真正有闭合键;计算并保存闭合键键码;鉴定闭合键是否释放;恢复闭合键键码。4.2.3 D/A转换模块本设计重要是运用单片机做解决器,然后通过数模转换模块进行转换,将单片输出的
28、二进制代码转换成相应的模拟电压输出,这样使得所设计的电流源更加精确。在此模块中,由于进行换挡的转换,在这里我所采用的是做除法,然后再存储除法得到的商和余数,这里面我用到了两个子程序,一个是将十进制转换为十六进制数,二个是采用移位相减的方法做除法。4.2.4 A/D转换模块当所设定的二进制代码通过数模转换模块输出之后,通过A/D转换模块进行采样之后,由单片机进行解决。然后输出相应的电流值大小。4.2.5 LCD显示模块寄存器选择控制表如表4.1所示。表4.1 寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01都busy flag(DB7),以及读取位址计数器(DB0DB6)值1
29、0写入数据寄存器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0。busy flag(DB7):在此位为被清除为0时,LCD将无法再解决其他的指令规定。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。由于1602辨认的是ASCII码,实验可以用ASCII码直接赋值,在单片机编程
30、中还可以用字符型常量或变量赋值,如“A”。4.3 程序流程图4.3.1 主控制流程图在本次设计的过程中,我是采用模块的设计方法,一个一个实现功能,可以说假如完毕了一个任务的程序框图,就是完毕了整个设计任务的百分之三十左右,在本次课程设计的过程中,我都是采用这种思想进行数控直流电流源的设计的。因此,在设计的过程,让我可以很容易的就抓住了重要的设计核心。主控制流程图如图4.1所示。图4.1 主控制流程图4.3.2 按键操作流程图在本次程序设计中对于键盘的设计,我专门设计了一个键盘扫描子程序,它所完毕的功能是,一方面对键盘进行解决,给每一个键都设立了一个键码,那么只要判断键盘的键码就可以知道是否有键
31、按下,如若有键按下也可以判断是哪一个键按下了。这次设计中,键盘扫描子程序的代号为KEY,其键盘扫描程序设计的流程框图如图4.2所示。图4.2 按键扫描子程序流程图4.3.3 D/A转换、A/D转换流程图本设计重要是用到LTC1456进行数模转换,用到TLC2543进行模数转换,其转换的流程图如图4.3所示。 图4.3 D/A转换、A/D转换流程图4.3.4 数制转换流程图由于使用的十进制数,而在做除法的时候,要进行数制的转换,其转换的流程图如图4.4所示。图4.4 数制转换流程图4.3.5 LCD显示流程图由于本设计的显示比较简朴,因此我所用到的是LCD显示,其LCD显示的流程图如图4.5所示
32、。 图4.5 LCD显示子程序流程图5 仿真测试及结果5.1 设计结论及使用方法本次通过对数控直流电流源的设计,了解了运用单片机解决之后,进行数控直流电流源的显示。本次设计比较成功,在按键操作中可以按照预先给定的功能进行操纵。打开Proteus软件,打开设计的电路文献,然后输入通过KEIL软件编好的程序,点击开始按钮即可以进行测试。具体操作说明:按了复位键之后,液晶显示屏上也能显示“S0200mA。按下RESET/ON键显示四项值,涉及电源设定值、电流AD测量值、负载电压值、负载阻值。电流设定初始值为200mA。可以按+,-键实现步进,数据实时显示。要设立电流直接按数字键无效。此时需按SET键
33、进入电流设立,之后屏幕显示 “Are you sure to set?”,按下OK键即可设定,假如不需要设定,按RESET/ON返回。在设定电流的过程中,需要有效按四次数字键,假如在设立的过程中想放弃修改,按下RESET/ON键,假如需要修改已经按下的数值,可以按DEL键,光标返回到上一个数,重新按某一个数字键即完毕修改。设立完毕后屏幕显示相应值。操作显示界面如图5.1所示。假如设定的电流值不在200mA2023mA内屏幕显示 “ERROR! RESET”。图5.1 仿真显示器显示界面图5.2 仿真结果5.2.1 输出电流范围仿真由于在程序设计上限制了电流输出范围是2002023mA,限定了电
34、压值小于10V,当给定值在量程内时显示“OK!”;当给定值超过量程时将显示“ERROR! RESET!”,如下图5.2所示。图5.2 仿真报错显示界面图若需要设定输出电流值,当按下SET键时,出现如图5.3所示界面,显示器显示“Are you sure to set?”,此时按下OK键,出现如图5.4所示界面,这是可自由输入一个4位数,若满足2002023mA,则显示各种数据,若不满足2002023mA,则显示器出现“ERROR!RESET!”报警画面。若发现输入数字超过电流允许范围,可以按SET键再次输入数值。图5.3 输出电流值确认SET显示界面图图5.4 输出电流值SET显示界面图5.2
35、.2 步进调整仿真在量程范围内,通过“”、“”按钮可实现1mA步进,通过显示器可观测到效果。通过键盘DEL键可以修改上一步输错的数字。如图5.5所示。图5.5 修改设定的输出电流值界面5.2.3 输出电流仿真下图5.6所示是仿真最低电流200mA负载电阻为2.0时的状态,根据显示器显示内容可知,设定输出电流值为200mA,实测电流值为201mA,输出电压为0.400V,负载电阻为2.0,都满足设计规定。然后,通过改变设定输出电流值进行仿真,记录的仿真数据如表5.1所示。图5.6 负载电阻为2.0仿真状态图表5.1 负载RL=2.0的数据表格给定值(mA)20030040050080010001
36、5001980电流AD测值(mA)201301401501800100015001980误差绝对值11110010负载电压(V)0.4000.6290.8391.4091.6792.0993.1494.155负载阻值()2.02.02.02.02.02.02.12.0运用同样的仿真环节,依次仿真负载电阻为3.0、4.0时这两种状态,记录的仿真数据分别如表5.2、表5.3所示。表5.2 负载RL=3.0的数据表格给定值(mA)200300400500800100015001980电流AD测值(mA)201300401501800100015001980误差绝对值10110000负载电压(V)0.
37、6000.8981.2011.4992.3972.9984.4975.937负载阻值()3.03.03.03.03.02.93.03.0表5.3 负载RL=4.0的数据表格给定值(mA)20030040050080099915002023电流AD测值(mA)20130140150080199915002023误差绝对值11101000负载电压(V)0.8001.2011.6012.0013.1984.0676.0007.998负载阻值()3.9803.9903.9934.0023.9934.0714.3.9995.3 误差分析测量结果分析:步进1mA时设定值与实测值在2002023mA之间,误
38、差在5mA以下。在改变负载时,误差在10mA以下。在改变输出电压时,误差在10mA以下。综上所述,系统仿真实测数据满足题目的基本规定,能满足输出电流与给定值偏差的绝对值给定值的1+10 mA。说明本电路有较高的精度和稳定性。误差分析:纹波对电流输出的影响,采用屏蔽的方法,远离容易产生脉冲工作方式的器件,减少供电电源的纹波等,对于选择低噪声的运放是解决问题的一种方法。此外在输出接近低频直流时,运放的失调电压和失调电流也是产生低频噪声的源泉,在这里的解决方法是在运放前加一级晶体管或者场效应管的差分级。该数控直流电流源的误差出现尚有也许有几个地方,第一个就是换挡电路的电压基准值是否十分标准,可以按照
39、所抱负设定的电压值输出。采用高标准测量电路,先将换挡电路的输出电压标准化。第二个就是达林管的是否可以按照抱负的工作状态进行相应的工作,解决方法可以产生一个相应的PWM信号控制。具体如下分析:(1)、由于普通运算放大器的运放零点漂移,温度漂移等带来的误差。可以通过温度补偿措施来解决此误差。(2)、由于采样电阻在温度上升时阻值会变化,因此会引起温度漂移,给系统带来测量的误差。(3)、受D/A转换器精度,A/D转换器精度,基准源稳定限度等硬件自身的限制,不可避免地带来一定限度的误差。6 收获与体会 在本次数控直流电流源的设计过程中,有许多感触,一方面对C语言,我觉得这是一门逻辑性很强的语言,但同时也
40、是一门比较容易掌握的语言。这门语言和我们的实际联系很机密,比如说里面很多传送指令,都是根据实际存在的硬件而存在的,尚有你面的与或指令、乘法、除法指令,其实都是和我们从小就学的数学息息相关的。就C语言而言,对于同一种效果可以采用不同的指令完毕,也可以采用相同的指令完毕,但由于你所选用的方案不同使得所产生的效果也就有所不同,因此这也锻炼了我们在思考同一个问题,假如可以采用发散思维的话,往往会得到意想不到的结果。谈完基本的工具之后,我要谈的就是这次的主题,数控直流电流源可以说是我们非常熟悉的东西,但是没有学单片机这门功课时,谁也不会想它是怎么工作的,又是怎么做成的。在我自己动手完毕了这次设计之后,我
41、才发现其实在我们身边有好多东西是要我们自己去研究的,假如只在原地踏步的话,就会落后,随着社会的不断进步,我们身边的东西越来越高科技话,那么要我们学习的东西也就越来越多。我觉得在这次设计过程中,我学到了很多,不仅仅是对汇编语言有了自己的想法,更重要的是培养了一种用于面对问题,解决问题的精神,在我们以后走向社会的道路上还不知道会碰到多少问题,假如有了这种精神的话,我相信无论多么困难的问题,都会迎刃而解的。参考文献1唐俊瞿,许雷,张群瞻.单片机原理与应用.北京:冶金工业出版社,20232李广弟,朱月秀,冷祖祁.单片机基础.北京:北京航空航天大学出版社,20233李光飞.单片机课程设计实例指导.北京:
42、北京航空航天大学出版社,2023.94张洪润,兰清华.单片机应用技术教程.北京:清华大学出版社,1997.115李华.MCS51系列单片机实用接口技术.北京:北京航空航天大学出版社,19936李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,19987赵秀珍,单永磊.单片微型计算机原理及其应用.北京:中国水利水电出版社,2023.88康华光.电子技术基础(数字部分) .北京:高等教育出版社,2023附录附录1 总电路图附录2程序清单;* ;*;在本次课程设计的程序中,我用到的是液晶显示器,其使能*;*;端接单片机的P3.0,P3.1,P3.2引脚,用到了DA转换等需要 *;*;的暂存
43、单元分别为30H到35H,其中尚有一些必要的标志位存*;*;在在36H到4AH单元。按键接单片机的P2.0到P2.7,液晶显示*;*;显示器数据口接单片机的P0.0到P0.7,本数控直流电流源有加 *;*;减调整,采用闭环控制系统进行调整,精确度更高。*;*#include#define uchar unsigned char #define uint unsigned intsbit rs=P30; sbit rw=P31; sbit lcden=P32; /液晶显示屏相关位定义sbit AD_OUT=P10;sbit AD_IN=P11;sbit AD_CS=P12;sbit AD_CLOCK=P13;sbit DA_IN=P33;sbit DA_CK=P34;sbit DA_CS=P35;sbit x=P14;uchar code table1=Are you sure ;uchar code table2= to
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100