版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕业设计(论文)题目名称:数控直流电源的设计年 级: 本科 专科学生学号: 学生姓名: 指导教师: 学生单位: 技术职称: 学生专业:通信工程 教师单位: 数控直流电源的设计 摘要:随着时代的发展,数字电子技术已经普及到我们生活中的各个领域,本文将介绍一种数控直流稳压电源,本电源由模拟电源、显示电路、控制电路、数模转换电路、放大电路五部分组成。准确说就是模拟电源提供各个芯片电源、数码管、放大器所需电压;显示电路用于显示电源输出电压的大小。数控直流电流源能够很好地降低因元器件老化等原因造成的输出误差,最大输出电流2a,最高输出电压30v,电流、电压都具有步进为0.1。硬件电路atmega8为控
2、制核心,利用闭环控制原理,加上反馈电路,使整个电路构成一个闭环,在软件方面主要利用pid算法来实现对输出电流的精确控制。该系统可靠性高、体积小、操作简单方便、人机界面友好。关键词:数控;直流电源;atmega8the design of numerical control directcurrent powerabstract: with the development of the times, digital electronic technology has been popular in all of our lives, work, research, and all fields.
3、 this paper introduces a nc dc power supply, the power consists of analogue power supply, display circuit, control circuit, digital-to-analog converter and circuit amplifier. accurately, analog power supplies voltage for chip power, the digital tube and amplifier; display circuit displays the output
4、 voltage. nc dc current source can reduce output error that caused by components aging, with functions of the maximum output current is up to 2a, the maximum output voltage is 30 v, current and voltage are stepping to 0.1 adjustment, output current signal can be shown directly. atmega8 hardware circ
5、uit is the core of control, taking advantage of the closed-loop control principle and feedback circuit, so that the whole constitute a closed-loop circuit. in terms of software it mainly uses the pid algorithm to achieve the precise control of output current. the system has good features of high rel
6、iability, small size, simple operation and friendly man-machine interface.key word: numerical control,direct current,atmega8目 录第1章绪 论11.1研究背景及意义11.2国内外研究现状11.3课题研究方法2第2章方案与元件的选择及设计基础知识32.1方案设计与论证32.2单片机的选择52.2.1mega8-8l简介52.2.2引脚说明62.3液晶显示屏(1602)显示的选择及串口实现原理72.3.1液晶显示屏(1602)简要说明72.4电流驱动管的选择82.5运算器的选
7、择92.5.1lm358m简介92.5.2ne5532ap简介92.6设计基础知识102.6.1相位修正pwm模式102.6.2模数转换器122.6.3adc 输入通道142.6.4adc 基准电压源142.6.5模拟输入电路15第3章电路原理和硬件实现163.1电路原理框图163.2 各部分电路图实现分析163.2.1 mcu173.2.2 mcu电源模板183.2.3 显示模板193.2.4 电源输出模板20第4章程序设计224.1主流程框图224.2 主程序框图234.3 程序运行原理234.3.1上电mcu初始化234.3.2液晶显示屏(1602)的运行244.3.3主程序264.3.
8、4按键扫描264.3.5ad转换26第5章 系统调试275.1软件测试275.2系统整体调试275.2.1电压测试275.2.2电流测试285.3adc 精度分析29结论30参考文献33致谢34附录 设计全程序35 第1章绪 论 1.1研究背景及意义直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多, 但均存在以下二个问题: 1、输出电压是通过粗调(波段开关) 及细调(电位器)来调节。这样, 当输出电压需要精确输出,或需要在一个小范围内改变时(如1. 05 1. 07
9、v ) ,困难就较大。另外, 随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。2、稳压方式均是采用串联型稳压电路,对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。在家用电器和其他各类电子设备中,通常都需要电压稳定的直流电源供电。但在实际生活中,都是由220v 的交流电网供电。这就需要通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电。滤波器用于滤去整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,又缩小了其体
10、积,使家用电器小型化。传统的直流稳压电源通常采用电位器和波段开关来实现电压的调节,并由电压表指示电压值的大小。因此,电压的调整精度不高,读数欠直观,电位器也易磨损。而基于单片机控制的直流稳压电源能较好地解决以上传统稳压电源的不足。随着科学技术的不断发展,特别是计算机技术的突飞猛进,现代工业应用的工控产品均需要有低纹波、宽调整范围的高压电源,而在一些高能物理领域,更是急需电脑或单片机控制的低纹波、宽调整范围的电源。1.2国内外研究现状从上世纪九十年代末起,随着对系统更高效率和更低功耗的需求,电信与数据通讯设备的技术更新推动电源行业中直流/直流电源转换器向更高灵活性和智能化方向发展。在80年代的第
11、一代分布式供电系统开始转向到20世纪末更为先进的第四代分布式供电结构以及中间母线结构,直流/直流电源行业正面临着新的挑战,即如何在现有系统加入嵌入式电源智能系统和数字控制。早在90年代中,半导体生产商们就开发出了数控电源管理技术,而在当时,这种方案的性价比与当时广泛使用的模拟控制方案相比处与劣势,因而无法被广泛采用。由于板载电源管理的更广泛应用和行业能源节约和运行最优化的关注,电源行业和半导体生产商们便开始共同开发这种名为“数控电源”的新产品。现今随着直流电源技术的飞跃发展,整流系统由以前的分立元件和集成电路控制发展为微机控制,从而使直流电源智能化,具有遥测、遥信、遥控的三遥功能,基本实现了直
12、流电源的无人值守。1.3课题研究方法直流稳压电源是最常用的仪器设备,在科研及实验中都是必不可少的。针对以上问题,我们设计了一套以单片机为核心的智能化直流电源。该电源可以键控,可对输出电压从0.1v到20v(步进0.1v),输出电流从0.1a到2a(步进0.1a),输出由单片机输出pwm波 ,经过滤波后,成为稳定的直流电压控制到场效管。同时稳压方法采用单片机闭环控制,单片机通过a/d 采样输出电压,与设定值进行比较,若有偏差则调整输出,假如越限,那么单片机pwm值减小直到电压输出与设定值相同,假如不到,那么单片机pwm值增加直到电压输出与设定值相同。工作过程中,稳压电源的工作状态(输出电压、电流
13、等各种工作状态) 均由单片机输出驱动液晶显示屏(1602)显示。第2章方案与元件的选择及设计基础知识2.1方案设计与论证根据设计的要求: 1、最大输出电流2a,最高输出电压30v。 2、电压步进0.1v,电流步进0.1a。3、纹波系数尽可能小,输出稳定。4、有限按键操作方便,lcd显示界面。5、闭环控制理论的嵌入式软件实现。特色及基本技术路线:1、低成本解决方案。2、直观的实验效果。3、经典理论验证平台先硬件后软件,先局部后整体。我设计出以下几个方案:方案一:设计开关电源。在前期方案设计中采用pwm脉宽调制。它的功耗小,效率高,稳压范围宽,电路形式灵活多样,功耗小,效率高。在制作过程中发现,p
14、wm占空比的线性变化使相应的电流呈非线性变化,经分析发现滤波电容的存在对占空比很小的pwm波积分效果明显,导致电流的非线性变化更显著,特别是pwm占空比很小时(希望得到输出的电流很小)输出有几十毫伏的电流,pwm脉宽调制会产生高次谐波导致输出电流的纹波电流比较大,加大滤波电容后电流纹波相对减小,但积分作用更加明显。 方案二:用d/a和运算放大器做电流源,即采用d/a输出调节晶体管的偏值电流(电压)。采用此方案能有效的缩短调节时间,并能提高输出精度。但8位d/a芯片的精度达不到题目所需要的精度(步进10ma)。经计算需要采用12位的d/a芯片,但是12位d/a芯片的价格过于昂贵,并且在短时间内很
15、难到货。因此,可以采用双d/a芯片来解决此问题。采用两片dac8032,一路dac8032作为粗调,另一路dac8032作为精调,并通过运算放大器对两路d/a转换电压做加法运算,再经过一级运算放大器后推动后级电流驱动电路,通过电流采样电阻两断的电压给单片机,单片机再控制d/a的输出,形成闭环负反馈调节回路。粗调当中dac8032的基准电压ref=5v,则一个lsb对应的电压调节精度为4.8mv。精调当中dac8032的ref=1.25v,则一个lsb对应的电压调节精度为1.2mv。此方案原理上把两个八位的dac当成16位的dac应用(实际上由于运算放大器有失调电压存在只能实现10位的精度)。这
16、种方案调节电流是靠调节晶体管的偏值电流实现的,理论上是线性调节,不会产生高次谐波。框图如下:图2-1方案二原理框图方案三:用d/a和运算放大器做电流源,即采用d/a输出调节晶体管的偏值电流(电压)。采用此方案能有效的缩短调节时间,并能提高输出精度。但8位d/a芯片的精度达不到题目所需要的精度。经计算需要采用10位的d/a芯片。为了争取时间,降低成本,我们的解决方案是采用的atmega8,一路由pwm1的输出,通过积分整形出很平滑的直流电源控制场效应管输出的大小,改变电压的大小,当单片机通过闭环负反馈调节回路的a/d转换检测到电压没达到设定值时,将再次对输出电压进行调制,直到输出电压达到设定值;
17、另一路同样由pwm2的输出,通过积分整形出很平滑的直流电源控制场效应管输出的大小,改变电流的大小,当单片机通过闭环负反馈调节回路的a/d转换检测到电流没达到设定值时,将再次对输出电流进行调制,直到输出电压达到设定值,调节电流是靠调节晶体管的偏值电流实现的,理论上是线性调节,不会产生高次谐波。这种方案易于实现,既保证了调节精度,又降低制作成本。方案原理示意图见图2-2:键盘处理器lcd显示pwm1a/d1pwm2a/d2积分积分电压控制电流控制电压采样电流采样图2-2方案三原理框图依据设计要求中说提出的特色及基本技术路线,所以最后选用方案三。2.2单片机的选择2.2.1mega8-8l简介atm
18、ega8是基于增强的avr risc结构的低功耗8位cmos微控制器。由于其先进的指令集以及单时钟周期指令执行时间,atmega8 的数据吞吐率高达1mips/mhz,从而可以缓减系统在功耗和处理速度之间的矛盾。atmega8 有如下特点:8k 字节的系统内可编程flash( 具有同时读写的能力,即rww),512 字节 eeprom,1k 字节 sram,32 个通用i/o 口线,32 个通用工作寄存器,三个具有比较模式的灵活的定时器/ 计数器(t/c),片内/ 外中断,可编程串行usart,面向字节的两线串行接口,10 位6 路 (8 路为tqfp 与mlf 封装)adc,具有片内振荡器的
19、可编程看门狗定时器,一个spi 串行端口,以及五种可以通过软件进行选择的省电模式。工作于空闲模式时cpu 停止工作,而sram、t/c、 spi 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; adc 噪声抑制模式时终止cpu 和除了异步定时器与adc 以外所有i/o 模块的工作,以降低adc 转换时的开关噪声; standby 模式下只有晶体或谐振振荡器运行,其余功 能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力。本芯片是以atmel
20、 高密度非易失性存储器技术生产的。片内isp flash 允许程序存储器通过isp 串行接口,或者通用编程器进行编程,也可以通过运行于avr 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用flash存储区(application flash memory)。在更新应用flash存储区时引导flash区(boot flash memory)的程序继续运行,实现了rww 操作。 通过将8 位risc cpu 与系统内可编程的flash 集成在一个芯片内,atmega8 成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。2.2.2 引脚说明引脚图如
21、下所示:图2-3atmega8引脚图1、vcc :数字电路的电源。2、gnd :地。3、端口b(pb7.pb0)xtal1/xtal2/tosc1/tosc2:端口b 为8 位双向i/o 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口b 处于高阻状态。通过时钟选择熔丝位的设置,pb6 可作为反向振荡放大器或时钟操作电路的输入端。通过时钟选择熔丝位的设置pb7 可作为反向振荡放大器的输出端。若将片内标定rc 振荡器作为芯片时钟源,且assr 寄存器的a
22、s2 位设置,pb7.6 作为异步 t/c2 的tosc2.1 输入端。端口b 的其他功能见p 55“ 端口b 的第二功能” 及p 22“ 系统时钟及时钟选项” 。4、端口c(pc5.pc0) :端口c 为7 位双向i/o 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口c 处于高阻状态。5、pc6/reset :若rstdisbl 熔丝位编程,pc6 作为i/o 引脚使用。注意pc6 的电气特性与端口c 的其他引脚不同若rstdisbl 熔丝位未编程
23、,pc6 作为复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见p 35table 15 。持续时间小于门限时间的脉冲不能保证可靠复位。端口c 的其他功能见后。6、端口d(pd7.pd0): 端口d 为8 位双向i/o 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使统时钟还未起振,端口d 处于高阻状态。端口d 的其他功能见后。7、reset :复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见 p35table 15 。持续时
24、间小于门限时间的脉冲不能保证可靠复位。avcc:avcc 是a/d转换器、端口c (3.0) 及adc (7.6) 的电源。不使用adc时,该引脚应直接与vcc 连接。使用adc 时应通过一个低通滤波器与vcc 连接。注意,端口c (5.4) 为数字电源,vcc。8、aref: a/d 的模拟基准输入引脚。9、adc7.6(tqfp 与mlf 封装): tqfp与mlf封装的adc7.6作为a/d转换器的模拟输入。为模拟电源 且作为10位adc通道。2.3液晶显示屏(1602)显示的选择及串口实现原理2.3.1液晶显示屏(1602)简要说明表2-1 主要技术参数显示容量162个字符芯片工作电压
25、4.55.5v工作电流2.0ma(5.0v)模块最佳工作电压5.0v字符尺寸2.954.35(wxh)mm表2-2 接口信号说明编号符号引脚说明1vss电源地2vdd电源正极3vl液晶显示偏压信号4rs数据/命令选择端(h/l)5r/w读/写选择端(h/l)6e使能信号7d0data 1/08d1data 1/09d2data 1/010d3data 1/011d4data 1/012d5data 1/013d6data 1/014d7data 1/015bla背景光源正极16blk背景光源负极2.4电流驱动管的选择电流驱动管的选择是极其重要的。首先要求该管的功率要大,因为本题要求最大电流是2
26、a,那么至少要选用5a以上的功率管。此时有两种选择:三极管和场效应管。就本题来看,由于缓冲器属于电压驱动,那么最好选用场效应管。但我们采用了ir公司的irf840,其参数如下:irf840 单元绝对最大额定功率 tc=25oc 1、漏极到源极电压:vds 500v2、漏极到门极电压:(rgs=20kw)vdgr 500v3、连续漏极电流:id 8.0 a4、tc = 100oc : id 5.1 a5、脉冲漏极电流:idm 32 a6、门极到源极电压:vgs 20 v7、最大功率耗散dissipation :pd 125 w8、线性减额因子:1.0 w/oc9、单脉冲雪崩能量功率:eas 51
27、0 mj10、运行与存储温度:tj,tstg -55 to 150 oc11、最大焊接温度离箱子1.6毫米 10秒:tl,300oc注意:施加的参数超过在“绝对最大额定功率”里列出的可能会给设备带来永久性的损害。这只是一个设备的运行申明,在这些或任何其他条件高出在这个说明中的操作部分的都没有被包含进来。如上参数已经满足设计要求,加上按照要求温度对该管子的性能影响很小,静态电流噪声小(有效避免电路产生纹波),所以选用了irf840作为方案的电流驱动管。2.5运算器的选择2.5.1lm358m简介lm358系列由两个独立的,高增益的,内部频率补偿的运作放大器,它们是特别用来在基于大范围的电压运作的
28、单电源供电上工作的。来自分离式电源的运行也同样可行,而且低电源电流和电源电压的数值是独立的。应用区域包括转换放大器,直流增益阻隔和所有现在能在单电源系统更简单运用的一般运算放大器。比如,lm518系列能直接独立运行于标准的被用在数字系统的+5v电源供电,而且能简易的无需另一个15v。电源供电的前提下提供所需的接口电子。基于国家微smd封装技术的固定封装(8微smd)的芯片上的lm358和lm2904已经能够获得。2.5.2ne5532ap简介ne5532ap的基本常数如下:1、平均输入噪声电压 : 5nv/ typ at 1khz2、联合增益带宽: 10 mhz typ3、普通模式电阻率: 1
29、00 db typ4、高直流增益: 100v/mv typ5、波峰到波峰输出电压摆幅: =18 v 和 =600typ6、高回转率: 9 v/typ7、宽供电电压范围: 3v 20 vne5532ap的引脚图如下:图2-7ne5532ap引脚图最后,经过再三地比较,在运算器的选择上,还是选择使用lm358m。2.6设计基础知识2.6.1相位修正pwm模式相位修正pwm 模式(wgm13:0 = 1、 2、 3、10 或11) 为用户提供了一个获得高精度的、相位准确的pwm 波形的方法。与相位和频率修正模式类似,此模式基于双斜坡操作。计时器重复地从bottom 计到top,然后又从top 倒退回
30、到bottom。在一般的比较输出模式下,当计时器往top 计数时若tcnt1 与ocr1x 匹配,oc1x 将清零为低电平;而在计时器往bottom 计数时若tcnt1 与ocr1x 匹配,oc1x 将置位为高电平。工作于反向比较输出时则正好相反。与单斜坡操作相比,双斜坡操作可获得的最大频率要小。但其对称特性十分适合于电机控制。相位修正pwm 模式的pwm 分辨率固定为8、9 或10 位,或由icr1 或ocr1a 定义。最小分辨率为2比特(icr1或ocr1a设为 0x0003),最大分辨率为16位(icr1或ocr1a设为max)。pwm 分辨率位数可用下式计算:(21)工作于相位修正pw
31、m 模式时,计数器的数值一直累加到固定值0x00ff、0x01ff、0x03ff (wgm13:0 = 1、 2 或3)、icr1 (wgm13:0 = 10) 或ocr1a (wgm13:0 = 11),然后改变计数方向。在一个定时器时钟里tcnt1 值等于top 值。具体的时序图为 图24。图中给出了当使用ocr1a或icr1来定义top值时的相位修正pwm模式。图中柱状的tcnt1 表示这是双边斜坡操作。方框图同时包含了普通的pwm 输出以及反向pwm输出。tcnt1 斜坡上的短水平线表示ocr1x 和tcnt1 的匹配比较。比较匹配后oc1x中断标志置位。相位修正pwm 模式的时序图如
32、下:图2-4相位修正pwm 模式的时序图计时器数值达到bottom 时t/c 溢出标志tov1 置位。若top 由ocr1a 或icr1 定义,在ocr1x 寄存器通过双缓冲方式得到更新的同一个时钟周期里oc1a 或icf1 标志置位。标志置位后即可产生中断。改变top值时必须保证新的top值不小于所有比较寄存器的数值。否则tcnt1与ocr1x不会出现比较匹配。使用固定的top 值时,向任意ocr1x 寄存器写入数据时未使用的位将屏蔽为0”。在图2.4 给出的第三个周期中,在t/c 运行于相位修正模式时改变top值导致了不对称输出。其原因在于ocr1x寄存器的更新时间。由于ocr1x的更新时
33、刻为定时器/ 计数器达到top 之时,因此pwm 的循环周期起始于此,也终止于此。就是说,下降斜坡的长度取决于上一个top 值,而上升斜坡的长度取决于新的top 值。若这两个值不同,一个周期内两个斜坡长度不同,输出也就不对称了。若要在t/c 运行时改变top 值,最好用相位与频率修正模式代替相位修正模式。若top保持不变,那么这两种工作模式实际没有区别。工作于相位修正pwm 模式时,比较单元可以在oc1x 引脚输出pwm 波形。设置com1x1:0 为2 可以产生普通的pwm,设置com1x1:0 为3 可以产生反向pwm 。要真正从物理引脚上输出信号还必须将oc1x 的数据方向ddr_oc1
34、x设置为输出。ocr1x 和 tcnt1 比较匹配发生时oc1x 寄存器将产生相应的清零或置位操作,从而产生pwm 波形。工作于相位修正模式时pwm 频率可由如下公式获得: (22)其中变量n 表示预分频因子 (1、 8、 64、 256 或1024)。ocr1x寄存器处于极值时表明了相位修正pwm模式的一些特殊情况。在普通pwm模式下,若ocr1x 等于bottom,输出一直保持为低电平;若ocr1x 等于top,输出则保持为高电平。反向pwm 模式正好相反。如果ocr1a 用来定义top 值(wgm13:0 = 11) 且com1a1:0 = 1,oc1a 输出占空比为50% 的周期信号。
35、2.6.2模数转换器1 、模数转换器的特点(1)10 位 精度 (2)0.5 lsb 的非线性度(3) 2 lsb 的绝对精度(4)13 - 260 s 的转换时间(5)最高分辨率时采样率高达15 ksps(6)路复用的单端输入通道(7)路附加复用的单端输入通道 (tqfp 与mlf 封装)(8)可选的左对齐adc 读数(9)0 - vcc 的 adc 输入电压范围(10)可选的2.56v adc 参考电压 (11)连续转换或单次转换模式(12)adc 转换结束中断(13)基于睡眠模式的噪声抑制器atmega8有一个10位的逐次逼近型adc。adc与一个8通道的模拟多路复用器连接,能对来自端口
36、c 的8 路单端输入电压进行采样。单端电压输入以0v (gnd) 为基准。adc 包括一个采样保持电路,以确保在转换过程中输入到adc 的电压保持恒定。adc 的框图如图2-2 所示。adc 由avcc 引脚单独提供电源。avcc 与vcc 之间的偏差不能超过 0.3v。请参考p188“adc 噪声抑制器” 来了解如何连接这个引脚。标称值为2.56v 的基准电压,以及avcc,都位于器件之内。基准电压可以通过在aref引脚上加一个电容进行解耦,以更好地抑制噪声。2、模数转换器方框图 图2-5模数转换器方框图在图中adc 通过逐次逼近的方法将输入的模拟电压转换成一个10 位的数字量。最小值代表g
37、nd,最大值代表aref引脚上的电压再减去1 lsb。通过写admux寄存器的refsn位可以把avcc 或内部2.56v 的参考电压连接到aref 引脚。在aref 上外加电容可以对片内参考电压进行解耦以提高噪声抑制性能。模拟输入通道与差分增益可以通过写admux 寄存器的mux 位来选择。任何adc 输入引脚,像gnd 及固定能隙参考电压,都可以作为adc 的单端输入。通过设置adcsra寄存器的aden 即可启动adc。只有当aden 置位时参考电压及输入通道选择才生效。aden 清零时adc 并不耗电,因此建议在进入节能睡眠模式之前关闭adc。adc转换结果为10位,存放于adc数据寄
38、存器adch及adcl中。默认情况下转换结果为右对齐,但可通过设置admux 寄存器的adlar 变为左对齐。如果要求转换结果左对齐,且最高只需8 位的转换精度,那么只要读取adch 就足够了。否则要先读adcl,再读adch,以保证数据寄存器中的内容是同一次转换的结果。一旦读出adcl,adc 对数据寄存器的寻址就被阻止了。也就是说,读取adcl 之后,即使在读adch 之前又有一次adc 转换结束,数据寄存器的数据也不会更新,从而保证了转换结果不丢失。adch 被读出后,adc 即可再次访问adch 及adcl 寄存器。adc转换结束可以触发中断。即使由于转换发生在读取adch与adcl之
39、间而造成adc无法访问数据寄存器,并因此丢失了转换数据,中断仍将触发。2.6.2.3 启动一次转换向 adc 启动转换位adsc 位写1” 可以启动单次转换。在转换过程中此位保持为高,直到转换结束,然后被硬件清零。如果在转换过程中选择了另一个通道,那么adc 会在改变通道前完成这一次转换。使用adc 中断标志作为触发源,可以在正在进行的转换结束后即开始下一次adc 转换。之后adc 便工作在连续转换模式,持续地进行采样并对adc 数据寄存器进行更新。第一次转换通过向adcsra 寄存器的adsc 写1 来启动。在此模式下,后续的adc 转换不依赖于adc 中断标志adif 是否置位。2.6.3
40、adc 输入通道选择模拟通道时请注意以下指导方针:工作于单次转换模式时,总是在启动转换之前选定通道。在adsc 置位后的一个adc 时钟周期就可以选择新的模拟输入通道了。但是最简单的办法是等待转换结束后再改变通道。在连续转换模式下,总是在第一次转换开始之前选定通道。在adsc 置位后的一个adc时钟周期就可以选择新的模拟输入通道了。但是最简单的办法是等待转换结束后再改变通道。然而,此时新一次转换已经自动开始了,下一次的转换结果反映的是以前选定的模拟输入通道。以后的转换才是针对新通道的。2.6.4adc 基准电压源adc的参考电压源(vref)反映了adc的转换范围。若单端通道电平超过了vref
41、,其结果将接近0x3ff。vref 可以是avcc、内部2.56v 基准或外接于aref 引脚的电压。avcc通过一个无源开关与adc相连。片内的2.56v参考电压由能隙基准源(vbg)通过内部放大器产生。无论是哪种情况,aref 都直接与adc 相连,通过在aref 与地之间外加电容可以提高参考电压的抗噪性。vref 可通过高输入内阻的伏特表在aref 引脚测得。由于vref 的阻抗很高,因此只能连接容性负载。如果将一个固定电源接到aref 引脚,那么用户就不能选择其他的基准源了,因为这会导致片内基准源与外部参考源的短路。如果aref 引脚没有联接任何外部参考源,用户可以选择avcc 或2.
42、56v 作为基准源。2.6.5模拟输入电路单端通道的模拟输入电路见图2.6。不论是否用作adc 的输入通道,输入到adcn的模拟信号都受到引脚电容及输入泄露的影响。用作adc 的输入通道时,模拟信号源必须通过一个串联电阻( 输入通道的组合电阻) 驱动采样保持(s/h) 电容。adc针对那些输出阻抗接近于10 k或更小的模拟信号做了优化。对于这样的信号采样时间可以忽略不计。若信号具有更高的阻抗,那么采样时间就取决于对s/h 电容充电的时间。这个时间可能变化很大。使用输出阻抗低且变化缓慢的模拟信号,因为这可以减少对s/h 电容的电荷传输。频率高于奈奎斯特频率(fadc/2) 的信号源不能用于任何一
43、个通道,这样可以避免不可预知的信号卷积造成的失真。在把信号输入到adc 之前最好使用一个低通滤波器来滤掉高频信号。模拟输入电路:图2-6模拟输入电路第3章电路原理和硬件实现3.1电路原理框图用d/a和运算放大器做电流源,即采用d/a输出调节晶体管的偏值电流(电压)。采用此方案能有效的缩短调节时间,并能提高输出精度。但8位d/a芯片的精度达不到题目所需要的精度。经计算需要采用10位的d/a芯片。我设计的方案采用的atmega8,一路由pwm1的输出,通过积分整形出很平滑的直流电源控制场效应管输出的大小,改变电压的大小,当单片机通过闭环负反馈调节回路的a/d转换检测到电压没达到设定值时,将再次对输
44、出电压进行调制,直到输出电压达到设定值;另一路同样由pwm2的输出,通过积分整形出很平滑的直流电源控制场效应管输出的大小,改变电流的大小,当单片机通过闭环负反馈调节回路的a/d转换检测到电流没达到设定值时,将再次对输出电流进行调制,直到输出电流达到设定值,调节电流是靠调节晶体管的偏值电流实现的,理论上是线性调节,不会产生高次谐波。电路原理框图如下:键盘处理器lcd显示pwm1a/d1pwm2a/d2积分积分电压 控 制电流控制电压采样电流采样图3-1原理框图3.2 各部分电路图实现分析本电源由mcu模块、mcu电源模块、显示模块、电源输出模块四部分组成.准确说就是mcu电源模块提供各个芯片电源
45、、数码管、放大器所需电压;显示电路用于显示电源输出电压的大小。下面进行分别介绍:3.2.1 mcumcu模块即为单片机部分,整个控制都是依靠单片机完成。从功能和价位以及本题目要求来看,我们选择avr 系列mega8作为本方案的控制核心。其基本特性如下:1、高性能、低功耗的 8 位avr 微处理器 2、先进的risc 结构3、512 字节的eeprom4、1k字节的片内sram5、可以对锁定位进行编程以实现用户程序的加密6、两个具有独立预分频器8 位定时器/ 计数器,其中之一有比较功能7、一个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器8、具有独立振荡器的实时计数器rtc9、三通道
46、pwm10、tqfp与mlf 封装的8 路adc由于其内部集成8路10位的a/d转换器,采样转换周期104us,免去单独做a/d转换器电路,节约时间,节约成本编程实现容易。mcu的模块图如下:图3-2mcu模块图3.2.2 mcu电源模板mcu电源模块是让220v电源通过变压器降压,整流滤波后经过三端稳压7815,7915得到15v电压为运算放大器供电,同时,在+15v电源经过三端稳压7805为单片机提供工作电源。其图如下所示:图3-3mcu电源模块图3.2.3 显示模板显示的方式很多,主要分为两类:led 显示,lcd显示。前者显示亮度高,制作成本低,适合做远距离显示,但由于其耗电较大,所用
47、端口随显示的数据位数增加而增加。如果采用动态扫描方式显示,则占用cpu的时间,如果采用静态显示则需要加锁存器,耗费硬件制作时间,就该题目要求来说,需要设定电流显示,实际电流显示,采用交替显示的方式至少用5个led,从上面诸多不利因数来看,采用lcd显示比较理想。lcd最常用的就是1602b液晶模块。图如下:图3-4显示模块图3.2.4 电源输出模板220v电源通过变压器降压,整流滤波后经过场效管irf840调制输出,场效管的控制是由单片机输出pwm1的值积分放大得到场效管所需要的电压,pwm1值的大小决定输出电压的大小,也就是说pwm1每增加或减少25mv,输出端电压也同时增加或减少0.1v。
48、输出电压的值由键盘设定,当单片机a/d转换检测到未达到设定值时,单片机就加大或减小pwm1值,直到单片机a/d转化检查到的电压值与设定值相同。由此达到稳压的目的。当有负载接入时,电流就通过场效管irf840和电流检测电阻到地形成回路,pwm2值的大小决定输出电流的大小,也就是说pwm2每增加或减少25ma,输出端电流也同时增加或减少0.1a。输出电流的值由键盘设定,当单片机a/d转换检测到未达到设定值时,单片机就加大或减小pwm2值,直到单片机a/d转化检查到的电流值与设定值相同。由此达到稳流的目的。其中d1her302,d2her302,都是用来保护场效管irf840不被损坏。图3-5电源输
49、出模块图第4章程序设计4.1主流程框图当系统上电,立刻进行初始化,分别是端口初始化,ad初始化,定时器初始化,定时器1初始化,定时器2初始化;然后系统默认电压10v,默认电流1a。当set键按下后,系统进行检测并进行以下如图所示操作:图4-1程序流程图4.2 主程序框图主程序控制部分操作流程如下图所示:图4-2主程序框图4.3 程序运行原理4.3.1上电mcu初始化 端口初始化:pb4,pb5,pd4,pd5,pd6,pd7为lcd驱动端口,设置为输出上拉;pc0,pc1为电压和电流检测端口,设置为输入;pc2,pc3,pc4,pc5为按键输入端口,设置为输入;pb1,pb3为pwm输出,设置
50、为输出上拉。定时器1初始化:设置为10位pwm;定时器2初始化:设置为8位pwm。4.3.2液晶显示屏(1602)的运行1、基本操作时序读状态:输入:rsl,rw=h,e=h 输出:d0d7=状态字写指令:输入:rsl,rw=l,d0d7=指令码,e高脉冲输出:无读数据:输入:rsh,rw=h,e=h 输出:d0d7=数据写数据:输入:rsl,rw=l,d0d7=数据,e高脉冲输出:无2、状态字说明:表4-1 状态字说明 sta7sta6sta5sta4sta3sta2sta1sta0d7d6d5d4d3d2d1d0sta0-6当前数据地址指针的数值sta7读写操作使能1:禁止 0:允许3、r
51、am地址映射图控制器内部带有808位(80字节)的ram缓冲区,对应关系如图所示:图4-3对应关系图4、显示模式设置表4-2 显示模式设置图指令码功能00111000设置162显示,57点阵,8位数据接口5、显示开/关及光标设置表4-3 指令功能对照表 指令码功能00001dcbd=1开显示;d=0关显示c=1 显示光标;c=0 不显示光标b=1 光标闪烁;b=0 光标不显示000001nsn=1当读或写一个字符后地址指针加一,且光标加一n=0当读或写一个字符后地址指针减一,且光标减一s=1当写一个字符,整屏显示左移(n=1)或右移(n=0),已得到光标不移动屏幕移动的效果。s=0当写一个字符
52、,整屏显示不移动6、数据控制控制器内部设有一个数据地址指针。7、数据指针设置表4-4 数据指针设置指令码功能80h+地址码(0-27h,40h-67h)设置数据地址指针8、读数据输入:rsh,rw=h,e=h 输出:d0d7=数据9、写数据输入:rsl,rw=l,d0d7=数据,e高脉冲输出:无10、其它设置表4-5清屏及回车指令码指令码功能01h显示清屏:1、数据指针清零2、所有显示清零02h显示回车:数据指针清零11、初始化过程(复位过程)(1)延时15ms(2)写指令38h(不检测忙信号)(3)延时5ms(4)写指令38h(不检测忙信号)(5)延时5ms(6)写指令38h(不检测忙信号)
53、(7)以后每次写指令、读/写数据操作之前均需检测忙信号(8)写指令38h;显示模式设置(9)写指令08h;显示关闭(10)写指令01h;显示清屏(11)写指令06h;显示移动光标设置(12)写指令och;显示开及光标4.3.3主程序 按键扫描 ad转换按键扫描,按前述循环。4.3.4按键扫描按下设置键;按键计数器keycounter+1,当keycounter=1时,进行显示处理;通过按up键可以增加设置输出电压,最大值为20v;通过按down键可以减小设置输出电压,最小值为1v。当keycounter=2时,进行显示处理;通过按up键可以增加设置输出电流,最大值为2a;通过按down键可以减
54、小设置输出电流,最小值为0.1a。按下确认健(enter),保存设置输出电压和电流值。4.3.5ad转换检测电流值,通过ad转换,得到实际电流值,进行显示处理;当检测到的值大于设置值时,输出电流减小。当检测到的值小于设置值时,输出电流增加,微调一步为0.01a。检测电压值,通过ad转换,得到实际电压值,进行显示处理;当检测到的值大于设置值时,输出电压减小;当检测到的值小于设置值时,输出电压增加,微调一步为0.05v。通过上述微调,可以使输出的电压和电流比较精准。第5章 系统调试5.1软件测试在编制完c语言后,即在gcc界面下,进行了调试,结果如下:图5-1第一次程序检测结果图根据提示,我找到了,程序在编写上的错误,加以改正,然后再次进行调试,结果如下:图5-2第二次程序检测结果图通过上述简单的测试,证明此次设计的程序基本上正确无误。5.2系统整体调试5.2.1电压测试表5-1 电压测试表设定值显示值1v1.1v2v1.99v3v3v5v5v9v9v13v13v15v15v18v18.v20v19v系统由于刚开启时在电压方面不稳定,存在一定误差,但是单片机立刻会对其进行控制,使系统再次稳定。5.2.2 电流测试表5-2电流测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论