基于51单片机的数控电源由会员共享,可在线阅读。请在人文库网上搜索更多基于51单片机的数控电源(8页收藏版)。
1.基于51单片机的数控电源摘要:学习如何以单片机为核心设计应用系统关键词:AT89C52. LCD-1602. DAC0832.一 .这里设计数控电源的目的是学习如何以单片机为核心设计应用系统。因此,数控电源的功能和技术指标的设置不一定适合作为实用电源。二.直流数控电源的设计原理应首先明确设计要求:输出电压范围:0.0V9.9V;输出电压调节方独立键盘;显示: 液晶LCD-1602;明确设计要求后,系统设计就要开始了。系统设计的目的是将每个要求定期结合起来,简化复杂的问题。 使用多种可行的设计方案来实现该系统的功能。一开始我考虑了两个方案:第一个方案。
2.原理图如下:这个方案很好,他把220V输出电压的控制是通过键盘给出的AT89C通过52输入数据DA转换和放大控制。 电压显示是取样输出的电压信号AD在1602上显示转换和单片机处理后。第二种方案的原理图如下:与第一种方案相比,这显然非常简单。首先,通过键盘AT89C52输入1602上显示的数据,单片机保存数据,然后按键盘上的确定键,这是DAC0832电路打开并传输数据。该芯片将发送的数字信号转换为模拟信号,经操作放大器处理后最终输出。与这两个方案相比,第一个方案肯定更接近一个实用的方案。
3、电源 ,首先是他的能量来源,他一的220V交流电(市电)提供能量。AT89C52,DA芯片,AD芯片、操作放大器和1602都需要直流电源。我们在包装好的商业实用数控电源中安装电池非常麻烦,需要220V维持这些芯片运行的能量部分。再来看看第二种方案的能源,AT89C52,DA芯片、1602和操作放大器都需要直流电,如果实物也需要220V交流电,我想可以用三端集成稳压器芯片。我准备用实物制定第一个计划。我已经用Proteus模拟软件制定了第二种方案。使用模拟软件有很多方便,首先是Proteus因为模拟,不需要考虑为那些芯片提供能量。
4.如果出了问题,可以重新模拟。没有烧毁芯片的问题,但如果使用实物,首先要考虑 。下面我简单介绍一下第二个方案。三.通过系统设计的过程,可以将引用系统分为一系列子系统,每个单元电路即子系统。每个子系统实现一个独立的功能,不仅可以简化电路的设计,还可以检查错误。1 显示电路设计电路图如下:液晶1602用于显示数据,LCD1602支持总线接口,数据线D7D0,控制线有RS(数据命令选择),RW(读写选择),E(时能信号)。可根据其时序图操作(下载关于它的信息LCD1602的资料)。第一行显示设计者的名字 “jinchaoqiang(金朝强).。
5.第二行显示输出电压的值Voltage:0.0V ”.2. 键盘电路设计电路图如下:独立键盘所需的硬件电路结构和软件结构相对简单,不仅可以将开关量的控制信号输入到单片机,还可以输入数据。上图四个按钮对应四个P0口,key1=P1.0Key2=P1.1,key3=P1.2,key4=P1.3 四个按钮扮演四个不同的角色:按钮key0是功能选择按钮,按第一次后可调节电压的十分位,key2是增加的按键,key三是减少按钮。再按一下key1.电压的位置可以调整,同样key2增加key3减少。Key4是确定键。按下此键后,您可以将数据发送到DAC0832. 3. 数字模拟。
根据数据输入模式,数字/模拟转换器具有并行数,如模式和串行输入模式。我在这里并行使用DAC0832,单缓冲接口电路。 4. 放大电路设计电路图如下:DAC当其输入数据为0099时,0832数字/模拟转换器电路测量数据对应的输出模拟电压为0.02V1.93V因此,电压需要电压放大电路,它将输出满足数控电源要求的0.0V9.9V的电压。同相放大电路采用此放大电路。电压增益Av=1 R2/R3.四. 我选择第二种方案的目的是熟悉以下内容AT89C52单片机为核心的系统设计,在我这个设计中使用了很少的模拟电路知识,只有电压放大的那一块用到了一点。当然,这实际上是用硬件电的。
7、子系统设计是不可取的,实际电路模拟电路应该是最基本的,整个系统应该使用模具电的概念来分析,因为单片机是控制每个引脚的输入输出电流,当程序下载到单片机时,加电可以自动运行,是模具电的先进形式。我也熟悉第一个方案的基本原理。它涉及一系列模拟电路问题,如模拟电路的整流、滤波、三极管的输出电压调整、抑制纹波、运输和放置比较等。制定这两种方案有助于学习电子应用系统。附件:#include#define uchar unsigned char#define uint unsigned intsbit key1=P10; /端口定义sbit key2=P11;sbit k。
8、ey3=P12;sbit key4=P13;sbit rs=P14;sbit en=P15;sbit w1=P16;sbit w2=P17;sbit DAC_CS=P32;sbit DAC_WR=P36;uchar code table1= Jinchaoqiang;uchar code table2= voltage:0.0V ;uchar ge,shifen,keynum,volt;void delay(uint z) /延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) /写指令到1602rs=0;e。
9、n=0;P0=com;delay(5);w1=1;en=1;delay(5);en=0;void write_date(uchar date) /写数据到1602rs=1;en=0;P0=date;delay(5);w1=1;en=1;delay(5);en=0;void Init() /初始化 uchar num;en=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num16;num )write_date(table1num);delay(50);wri。
10、te_com(0x80 0x40);for(num=0;num14;num )write_date(table2num);delay(50);void write_voltage(uchar add,uchar dat) /写电压到1602 write_com(0x80 0x40 add);write_date(0x30 dat); void da0832out(uchar dadata) /写电压数据到DAC0832w1=0;w2=1;DAC_CS=0;P0=dadata;DAC_WR=0;delay(5);DAC_WR=1;DAC_CS=1; w2=0;void keyscan() /键盘。
11、扫描 if(key1=0) delay(5);if(key1=0) keynum ;while(!key1);if(keynum=1)write_com(0x80 0x40 12);write_com(0x0f); if(keynum=2)write_com(0x80 0x40 10);write_com(0x0f); if(keynum=3)keynum=0;write_com(0x0c);if(keynum!=0)if(key2=0) delay(5);if(key2=0) while(!=0)if(key2=0) delay(5);if(key2=0) while(!key2);if(keynum=1)shifen ;if(shifen=10)shifen=0;wri。
12、te_com(0x80 0x40 11); write_com(0x0c);write_voltage(12,shifen);if(keynum=2)ge ;if(ge=10)ge=0;write_com(0x80 0x40 9);write_com(0x0c); write_voltage(10,ge);if(key3=0) delay(5);if(key3=0)while(!key3);if(keynum=1) shifen-;if(shifen=-1)shifen=9;write_com(0x80 0x40 11); write_com(0x0c);write_voltage(12,shifen);if(keynum=2)ge-;if(ge=-1)ge=9;write_com(0x80 0x40 9); write_com(0x0c);write_voltage(10,ge); if(key4=0) delay(5);if(key4=0)while(!key4);volt=10*ge shifen;da0832out(volt); void main() /主函数 w1=0;w2=0;Init();ge=0;shifen=0; while(1)keyscan();while(1。