2023年12月19日发(作者:董玉龙)
课程设计(论文)说明书
题 目: 可调稳压开关电源
及其自测电压表
院 (系): 信息与通信学院
专 业: 微电子学
学生姓名: 甘新泉
学 号: 1100240210
指导教师: 陈小毛
职 称: 讲师
2013年 12 月 12 日
摘 要
本设计是基于LM2596和89C52单片机的数字电压表应用。
LM2596开关电压调节器是降压型电源管理单片集成电路,能够输出3A的驱动电流,同时具有很好的线性和负载调节特性。固定输出版本有3.3V、5V、12V, 可调版本可以输出小于37V的各种电压。该器件内部集成频率补偿和固定频率发生器,开关频率为150KHz,与低频开关调节器相比较,可以使用更小规格的滤波元件。由于该器件只需4个外接元件,可以使用通用的标准电感,这更优化了LM2596的使用,极大地简化了开关电源电路的设计。
89C52单片机是一块简单易学的MCU,是作为初学软件MCU控制的经典芯片,利用89C52把ADC采样回来的数据进行处理,然后去控制12864液晶的显示。ADC0809是8位的模数转换芯片,且为8位并行输出。再利用89C52作为MCU控制128641液晶显示。
关键字:LM2596;ADC0809;89C52
Abstract
This design is bad on LM2596 and 89 C52 digital voltage meter application.
LM2596 type switch voltage regulator is step-down power management monolithic
integrated circuit, can the drive current of the output 3 a, has the very good linear and load
regulation characteristics at the same time. Fixed output version 3.3 V, 5 V, 12 V, adjustable
version can output voltage less than 37 V. The device internal integration frequency
compensation and fixed frequency generator, switching frequency is 150 KHZ, compared
with low frequency switching regulator, can u smaller specifications of the filter element.
Becau the device only four external components, you can u the general standard of
inductance, the better the LM2596 u, greatly simplifies the circuit design of switch power
supply.
89 c52 MCU is a piece of easy to learn, as a beginner's classic software MCU control
chip, using 89 c52 ADC sampling back data for processing, then to control the 12864 LCD
display. ADC0809 is 8-bit analog-to-digital conversion chip, and 8 bits parallel output. Using
89 c52 as MCU control 128641 liquid crystal display (LCD).
Key words:LM2596;ADC0809;89C52
目 录
引言……………………………………………………………………………1
1 设计要求…………………………………………………………………2
2 设计思路……………………………………………………………………2
2.1 硬件部分
……………………………………………………………………2
2.2 输入电压滤波电路……………………………………………………………2
2.3 DC—DC变换器………………………………………………………………2
2.4 输出电压指示电路和EMI设计………………………………………………3
2.5 最小单片机系统……………………………………………………………3
2.6 输出反馈电路………………………………………………………………3
2.7 ADC0809电压采样电路
………………………………………………………4
2.8 LCD显示电路…………………………………………………………………4
3 公式计算……………………………………………………………………5
4 程序思路……………………………………………………………………5
5 结论…………………………………………………………………………6
谢辞 ……………………………………………………………………………6
参考文献 ………………………………………………………………………6
附录 ……………………………………………………………………………6
引 言
想象在某个傍晚的交通高峰时刻,我们站在一个川流不息的地铁站,几乎同时,成千上万的旅客涌向这个车站准备回家。当然,不可能有一辆车大到足以同时装载所有的旅客。我们应该如何解决这个问题?很简单,我们把这些旅客进行分流,然后陆续的把他们运送回家。此后,许多要去外地的旅客还会选择其他可能的交通工具。这样,地铁的运输量就会转变为公交车或出租车等等的运输量。但是,最终人群还会在次汇合,我们就能看到巨大的人流从目的地涌出来。
开关电源和一个大规模的运输系统非常相似。不同的是,从一个地方传输到另一个地方的是能量而不是人。也就是我们从一个输入源连续的获得能量,用开关(晶体管)把这些能量截成一个个能量包,然后通过一些元件(电容和电感)进行传输,从而在输出到平稳的能量。
在上述运输旅客和传输能量两种情况下,从观测者的角度看,我们可以看到一个连续的输入和一个类似的连续输出。但是在中间阶段,是把连续的输入截断成更容易处理的包来完成这种输入输出。
深入分析车站的例子,我们还可以发现要在规定的时间内运输一定数量的旅客,一种方法是使用大型列车,相隔时间对长一些,另一种方法是使用一些小型列车,相隔时间很短。因此,开关电源工作频率通常很高就不足为奇。最根本的目的就是减少能量包的大小,从而减小用来存储的元件的尺寸。
应用这种院里的电源称成为开关电源或者开关型功率变换器。
DC-DC变换器是现代高频开关电源最基本的构件。顾名思义,它把已知直流输入电压VIN变换成所需要的或易于使用的直流输出电压VO。AD-DC变换器也称为离线式电源,其特点是从输入电网取电。它们首先将输入的正弦交流电压VAC整流为直流电压,作为后级DC-DC变换电路的输入。因此从本质上说几乎就是DC-DC变换过程。
所以这个设计是作为电源的最基本设计,是一个简单实用的开关电源。这里设计的电源就是DC-DC的18V-36V直流输入变换成为1V-10V电压输出的开关电源,而LM2596正是经典的BUCK电路应用的经典芯片。
1
1 设计要求
利用89C52制作数字电压表。
自制24VDC输入,输出可调范围2VDC—10VDC,电流1A。
并使用制作的电压表测试自制电源的输出电压。
2 设计思路
2.1 硬件部分
根据设计要求选用TI公司的LM2596芯片,作为BUCK变换器的主控芯片,制作自测电压表则使用89C52作为主控MCU,显示使用12864LCD液晶。设计思路框图如下:
24VDC输入
LM2596降压电路
反馈
2V—10V电压输
2.2 输入电压滤波电路
输入24VDC电压经过电容C4和C5滤波,滤除输入电源的高频部分,而且使用两个电容层次滤波更可以作为后面电路的电泵,使得输入功率更加充足。
12864LDC
显示
89C52MCU
ADC电压检2.3 DC-DC变换器
经过滤波后的电压输入到LM2596芯片,由于内部PWM驱动对内部MOS管的开关作用,使得输入电压不停地对LS1电感进行充放电。其中整个电路是BUCK变换器的经典脱去结构。
2
2.6 输出反馈电路
2.5 最小单片机系统
2.4 输出电压指示电路和EMI设计
的指示灯。输出的EMI用简单电容滤波即可。
行期间,如果发生死机,用按键开关操作使单片机复位。
部的PWM占空比增大,使得输出电压上升。从而起到稳压的作用。
制LCD12864的显示。最小系统电路主要包括单片机89C52、复位电路、起振电路。
复位操作完成单片机内电路的初始化,使单片机从一种确定的状态开始运行。
芯片内部PWM占空比变小,从而降低输出电压。当检测到的电压小于1.23V时,芯片内要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离状态。
输出反馈主要采用两个电阻进行分压,并且调节分压比。把输出电压大小反馈到当单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了复位操作。如果RST持根据应用的要求,复位操作通常有两种基本形式:上电复位、开关复位。上电复位主控电路主要采用单片机对ADC0809采样回来的8位并行数据进行处理,最后去控输出电压经过电阻R8给发光二极管供电,当有电压输出的时候LED作为输出电压LM2596芯片的4脚;根据芯片内部结果和使用手册知道,当4脚得电压大于1.23V时,3
2.8 LCD显示电路
2.7 ADC0809电压采样电路
在输入前增加采样保持电路。
必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需作为频率发生器。ADC0809的铁性还有信号单极性,电压范围是0-5V,若信号太小,没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,所以使用74LS74 主要由AD转换器AD0809,频率发生器74LS74,单片机89C52。因ADC0809的内部
LCD主要看使用手册,按说明书使用即可。其中的电位器是用来调节灰度的作用。
4
3 公式计算
Vout=Vref(1+R1/R2);注释:R1/R2是对输出电压的分压取样电压。
Vref=1.23V
ADC0809分离系数的方法
dis[0]=a/100+0x30; 百位数计算
dis[1]=a%100/10+0x30;十位数计算
dis[2]=a%100%10+0x30;个位数计算
4 程序思路
ADC程序流程图
5
附录
谢词
5 结论
参考文献
完整电路图
《新概念51单片机C语言教程》……………………郭天祥
《LM2596使用手册》…………………………德州仪器有限公司
解了电子元件的基本使用,更深刻了解设计性作品和理论知识的结合。
《精通开关电源设计》……………………【美】Sanjaya Maniktala
感谢课设以来支持技术和提供资料的朋友,更感谢课程设计老师的悉心指导。
率1%,电流调整率1%。能够带动8Ω的负载,电路1A稳定。通过本次课程设计进一步了本次课程设计完成顺利,输出电压能稳定在2V—10V直流电压调节,输入电压调整6
程序
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
uint getdate;
uchar dis[3];
void ad0809();
//延时子程序模块
//**********************************************
void mdelay(uint delay)
{ uint i;
for(;delay>0;delay--)
{for(i=0;i<80;i++) //1ms延时.
{;}
}
}
//************************************************
void show(); //液晶显示程序
//****************************************
//12864液晶显示部分子程序模块
//****************************************
sbit rs = P2^0;
sbit rw = P2^1;
sbit e = P2^2;
#define lcddata P0
sbit busy=P0^7; //lcd busy bit
void wr_d_lcd(uchar content);
void wr_i_lcd(uchar content);
void clrram_lcd (void);
void init_lcd(void);
void busy_lcd(void);
7
void rev_row_lcd(uchar row);
void rev_co_lcd(uchar row,uchar col,uchar mode);
void clr_lcd(void);
void wr_co_lcd(uchar row,uchar col,uchar lcddata1,uchar lcddtta2);
void wr_row_lcd(uchar row,char *p);
//**********************************
//液晶初始化
//**********************************
void init_lcd(void)
{
wr_i_lcd(0x06); /*光标的移动方向*/
wr_i_lcd(0x0c); /*开显示,关游标*/
}
//***********************************
//填充液晶DDRAM全为空格
//**********************************
void clrram_lcd (void)
{
wr_i_lcd(0x30);
wr_i_lcd(0x01);
}
//***********************************
//对液晶写数据
//content为要写入的数据
//***********************************
void wr_d_lcd(uchar content)
{
busy_lcd();
rs=1;
rw=0;
lcddata=content;
e=1;
;
e=0;
}
8
//********************************
//对液晶写指令
//content为要写入的指令代码
//*****************************
void wr_i_lcd(uchar content)
{
busy_lcd();
rs=0;
rw=0;
lcddata=content;
e=1;
;
e=0;
}
//********************************
//液晶检测忙状态
//在写入之前必须执行
//********************************
void busy_lcd(void)
{
lcddata=0xff;
rs=0;
rw=1;
e =1;
while(busy==1);
e =0;
}
//********************************
//指定要显示字符的坐标
//*******************************
void gotoxy(unsigned char y, unsigned char x)
{
if(y==1)
wr_i_lcd(0x80|x);
if(y==2)
9
wr_i_lcd(0x90|x);
if(y==3)
wr_i_lcd((0x80|x)+8);
if(y==4)
wr_i_lcd((0x90|x)+8);
}
//**********************************
//液晶显示字符串程序
//**********************************
void print(uchar *str)
{
while(*str!='0')
{
wr_d_lcd(*str);
str++;
}
}
//***************************************
//液晶显示主程序模块
//***************************************
void show()
{
gotoxy(1,0);
print("桂林电子科技大学");
mdelay(200);
gotoxy(2,0);
print(" 电压表");
mdelay(200); //扫描延时
gotoxy(3,0);
print(" 甘新泉");
mdelay(200); //扫描延时 gotoxy(4,0);
print("电压: . V");
// mdelay(200); //扫描延时
}
10
//主程序
main()
{
init_lcd();
clrram_lcd();
show(); //液晶显示数据
while(1)
{
ad0809();
gotoxy(4,3);
wr_d_lcd(dis[0]);
gotoxy(4,4);
wr_d_lcd(dis[1]);
gotoxy(4,5);
wr_d_lcd(dis[2]);
}
}
void ad0809()
{
uint a;
OE=0;
ST=0; //启动AD0809
ST=1;
ST=0;
mdelay(1);
while(!EOC); //等待转换完成
OE=1;
getdate=P1; //取出转换数据
OE=0;
a=getdate*5.0/256*100; //转换成实际电压*100
dis[0]=a/100+0x30; //分离系数
dis[1]=a%100/10+0x30;;
dis[2]=a%100%10+0x30;
}
11
本文发布于:2023-12-19 00:26:37,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/89/1164504.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |