基于Amega16单片机的数控直流稳压电源设计论文_第1页
基于Amega16单片机的数控直流稳压电源设计论文_第2页
基于Amega16单片机的数控直流稳压电源设计论文_第3页
基于Amega16单片机的数控直流稳压电源设计论文_第4页
基于Amega16单片机的数控直流稳压电源设计论文_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能控制设计大赛数控直流稳压电源 摘要 本系统以Amega16单片机为核心,由D/A数字模拟转换模块、按键、LED串口显示模块等模块组成一个数控电源。该系统实现了,输出电压3-13V可调,步进值为0.05mv,纹波不大于10mv,额定输出电流0.5A,由单片机自身提供的矩阵键盘作为输入,每按一次实现+0.05mv或-0.05mv。还有一些按键用以实现电平快速切换,使能够在常用电平之间实现快速跳跃。输入模块的按键按下之后,对单片机就有了一个输入,单片机将输入的数字一方面给显示模块,让它们在数码管中显示出来;另一部分输给DAC0832,让它转化为模拟量电流输出,通过运算放大器将这模拟量转化为相应的

2、电压,这电压经过放大后控制LM317的控制端,从而实现输出电压的控制。 关键字:Amega16单片机、数控电源、LM317、AD7226、三端稳压管数控直流稳压电源论文设计任务与要求一、 设计任务设计并制作一个直流可调稳压电源。二、 设计要求1、基本要求:1) 当输入交流电压为220v±10%时,输出电压在3-13v可调;2) 额定电流为0.5A,且纹波不大于10mV;3) 使用按键设定电压,同时具有常用电平快速切换功能(3v、5v、6v、9v、12v),设定后按键可锁定,防止误触;4) 显示设定电压和测量电压,显示精度为0.01v。2、扩展要求:1) 输出电压在0-13v连续可调;

3、2) 额定电流为1A,且纹波不大于1mV;3) 掉电后可记忆上次的设定值;4) 两级过流保护功能,当电流超过额定值的20%达5秒时,电路作断开操作;当电流超过额定值的50%时,电路立即断开。具有光提示(如LED);5) 其他创新。三、 说明禁止直接使用220v直接电阻分压的作法,注意用电安全。引言数字化智能电源模块是针对传统智能电源模块的不足提出的,数字化能够减少生产过程中的不确定因素和人为参与的环节数,有效地解决电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高生产效率和产品的可维护性。电源采用数字控制,具有以下明显优点:1)易于采用先进的控制方法和智能控制策略,使电源模块的智能

4、化程度更高,性能更完美。2)控制灵活,系统升级方便,甚至可以在线修改控制算法,而不必改动硬件线路。3)控制系统的可靠性提高,易于标准化,可以针对不同的系统(或不同型号的产品),采用统一的控制板,而只是对控制软件做一些调整即可。4)系统维护方便,一旦出现故障,可以很方便地通过RS232接口或RS485接口或USB接口进行调试,故障查询,历史记录查询,故障诊断,软件修复,甚至控制参数的在线修改、调试;也可以通过MODEM远程操作。5)系统的一致性好,成本低,生产制造方便。由于控制软件不像模拟器件那样存在差异,所以,其一致性很好。由于采用软件控制,控制板的体积将大大减小,生产成本下降。6)易组成高可

5、靠性的多模块逆变电源并联运行系统。为了得到高性能的并联运行逆变电源系统,每个并联运行的逆变电源单元模块都采用全数字化控制,易于在模块之间更好地进行均流控制和通讯或者在模块中实现复杂的均流控制算法(不需要通讯),从而实现高可靠性、高冗余度的逆变电源并联运行系统。一、 方案论证与比较分析题意,根据设计要求,画出基本原理图如图一 图一1、控制器部分:方案一:采用AT89S52单片机作为主控芯片。优点:AT89S52作为一种比较成熟的单片机型号,广范应用于各领域技术比较熟练,价格相对便宜。缺点:其内部集成资源偏少,功能不够强大,中断源和定时器较少,且没有PWM可调占空比波形输出。方案二:采用Amega

6、16单片机作为主控芯片。优点:AVR是51的升级版。Amega16单片机功能强、高速度是其主要的优点,内部集成了较多的中断源和定时器资源及EEPROM的优点,多种模式的PWM波形输出,很好地满足了本系统设计的要求。缺点:价格较AT89S52单片机高。考虑到以上两种方案的优缺点,因本系统对单片机内部硬件资源的要求比较高,而且我们有现成的Amega16开发板,所以不存在成本的问题。 2、 显示部分:方案一:采用普通数码管显示,优点:价格便宜,而且可以用单片机内部的数码管显示,政绩电路比较清晰方案二:采用LCD1602液晶显示,优点:显示清楚、且管脚不多,容易控制,缺点:价格较贵由于我们只需显示31

7、3V,精度为0.01mv,单片机自带的数码管就已经够用,所以我们采取方案一3、 按键部分方案一、采用一般的电平按钮,优点是控制比较简单,编程不用考虑按键部分方案二、采用4*4矩阵键盘,优点:利用8个IO口得到16个按键,可使操作界面变得简单,操作也方便;缺点:软件处理比独立按键复杂。 通过比较,由于这也是我们熟悉单片机的一次过程,所以我们选择方案二。4、 可调稳压芯片三端可调稳压芯片有多种,其中最常见的有LM317、LM337、LM318、LM196等几种,LM317用于正电压调整,LM337用于负电压调整。本系统的输出电压范围215.0V为正电压输出,固排除LM337,对于LM317又有如下

8、各种型号,它们的输出电流与电压的对照表如表1: 表1 常见稳压输出电流和电压范围芯片型号输出电流(A)输出电压(V)LM317L0.11.2537LM317T0.51.2537LM3171.51.2537LM31851.2537LM196101.2515根据设计要求输出电压范围215.0V,输出电流500mA,以上有多种型都可以满足要求,再根据成本和现有材料,我选择了LM317T三端可调稳压芯片。5、 D/A数字模拟转换模块方案一:采用MX7541是高速高精度12位数字/模拟转换器芯片,功耗低,而且其线性失真可低达0.012%,特别适合于精密模拟数据的获得和控制。方案二:采用AD7226,AD

9、7226是一种常用的8位的数字/模拟转换芯片。出于价格及实用性方面的考虑,决定选择方案二.二、 系统具体设计及实现1、 系统总框图图一所示的即为系统总体结构本数控电源以Amega16为核心,辅以AD7226,LM317等芯片,较好的实现电压信号的数字化输出、2、 键盘模块(4*4键盘)在本系统中,针对用户调整各项参数时的需要,我们采用了4*4键盘,只占用8个IO口(P1口)就实现了16个按键,使操作界面更加人性化,操作过程更加简单、方便。键盘原理如图二所示。图二3、 D/A转换部分由于我们要实现的是313V可调,步进值为0.05mv ,所以一般的8位的D/A转化模块已经够用,根据我们自己手头已

10、有的材料,我们就选用了AD7226作为。它的管脚排列图及功能表如下图三、图四分别所示:图三 图四三、 软件设计部分软件实现的主要功能是,键盘对单片机输入数据,单片机按照事先设置好的程序对数据进行处理后,将数据发送给D/A转换模块进行处理后的信号通过稳压直流源部分输出,还有取样进行显示。源程序见附录一整机电路图见附录二附录一:源程序/ 必须包含这2个必要的头文件#include<iom16v.h>#include<macros.h>/*数码管接口定义*/ 定义接口#define SCK PC7#define RCK PC6#define OE PC5#define SER

11、 PC4#define SMG3 PC3#define SMG2 PC2#define SMG1 PC1#define SMG0 PC0 #define IO_DDR DDRC#define IO_PORT PORTC/ 定义接口的高、低电平#define SCK_H IO_PORT|=1<<SCK#define SCK_L IO_PORT&=(1<<SCK)#define RCK_H IO_PORT|=1<<RCK#define RCK_L IO_PORT&=(1<<RCK)#define OE_H IO_PORT|=1<

12、<OE#define OE_L IO_PORT&=(1<<OE)#define SER_H IO_PORT|=1<<SER#define SER_L IO_PORT&=(1<<SER)#define SMG3_H IO_PORT|=1<<SMG3#define SMG3_L IO_PORT&=(1<<SMG3)#define SMG2_H IO_PORT|=1<<SMG2#define SMG2_L IO_PORT&=(1<<SMG2)#define SMG1_H IO_P

13、ORT|=1<<SMG1#define SMG1_L IO_PORT&=(1<<SMG1)#define SMG0_H IO_PORT|=1<<SMG0#define SMG0_L IO_PORT&=(1<<SMG0)/*端口说明及宏定义*/PB为键盘所在端口#define key_DDR DDRB#define key_PORT PORTB#define key_PIN PINB/*/ /*将两个pragma中间的数据放到程序寄存器中 即放到flash中*/ /* 以免占用内存 即sram的空间 */#pragma data:c

14、odeconst unsigned char table=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6, / 数字字模 0x01;/ 小数点位#pragma data:data/*/void delay_ms(unsigned int t) / 毫秒级延时函数 while(t-) delay_us(1000); / 执行时间大约1ms void delay_us(unsigned int t) / 微秒级延时函数 while(t-) / 执行一周大约1us asm("nop"); / 嵌入汇编,表示"空操作&q

15、uot;, asm("nop"); / 不执行任何指令,消耗时间, asm("nop"); / 起到延时的作用 asm("nop"); asm("nop"); asm("nop"); asm("nop"); / 系统初始化void System_Init() IO_DDR=0xff;/ 显示函数void show(unsigned int data) unsigned char temp; unsigned char num; unsigned char i=0; for(i

16、=0;i<4;i+) SMG0_L;SMG1_L;SMG2_L;SMG3_L; / 关闭所有位选 switch(i) case 0: / 取出data的千位的数字,并位选 num=data/1000; SMG0_H; break; case 1: / 取出百位 num=data/100%10; SMG1_H; break; case 2: / 取出十位 num=data/10%10; SMG2_H; break; case 3: / 取出个位 num=data%10; SMG3_H; break; default:break; for(temp=0;temp<8;temp+) /

17、共移入8位数据,恰好驱动数码管 if(tablenum&(1<<temp) / num对应字模,temp对应第temp位 SER_H; / 根据字模的1置位数据端 else SER_L; / 字模的0置零数据端 SCK_H; SCK_L; / 高电平脉冲,上升沿数据移入 RCK_H; RCK_L; / 高电平脉冲,数据输出 OE_L; / 使能输出端口 delay_ms(1);/ 显示时间2ms OE_H; / 关闭显示,如果不关闭,显示数码间有"重影" / 扫描键盘,获取键值char key=0; / 全局变量key,保存键值,无按键为0,方便不同函数

18、进行访问void get_key() key_PORT=0x0f; / 高四位输出低电平,低四位为带上拉输入 key_DDR=0xf0; / 高四位为输出,低四位为输入,重要!增强拉电流能力 if( !key && key_PIN!=0x0f )/ 如果key=0,即按键已经响应,判断是否有键按下 delay_ms(10); / 延时后再次判断,消除按键抖动的影响 if(key_PIN!=0x0f) / 确实有键按下 switch (key_PIN) case 0x0e: key=1;break; /第一位被拉低 case 0x0d: key=2;break; /第二位被拉低 case 0x0b: key=3;break; /第三位被拉低 case 0x07: key=4;break; /第四位被拉低 key_PORT=0xf0; / 令低四位输出低电平 高四位为带上拉输入 key_DDR=0x0f; / 令低四位为输出 高四位为输入 asm("nop"); / 延时一个机器周期,重要!这个时间为key_PIN的建立时间,如省略,程序出错! switch (key_PIN) case 0xe0: key+=0;break; /第一位被拉低

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论