文档库 最新最全的文档下载
当前位置:文档库 › 数控步进直流稳压电源(c程序)

数控步进直流稳压电源(c程序)

数控步进直流稳压电源(c程序)
数控步进直流稳压电源(c程序)

数控步进直流稳压电源(c程序)

#i nclude

/*此程序实现"数控步进直流稳压电源"的功能,调试时为了避免资源冲突,应使实验板上的拔码开关S8拔向高电平

本程序设定S9键为增加键,当按住S9键不松开时,输出Vout以0.1V连续步进,

直至键S9松开,当以一定的时间间隔点动S9键时,输出Vout也为点动步进

递减键S11的功能与S9基本相同时,输出电压的值显示在3个LED上 */ unsigned char R1,R2,R3,TXDATA,LEDF,BJF,COUNTW,data;unsigned int i;

const char table[11]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92, 0x82 ,0XD8,0x80,0x90,0xFF};

//不带小数点的显示段码表

const char table0[11]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0 X78,0X00,0X10,0xFF};

//带小数点的的显示段码表

unsigned char s[4]; //定义一个显示缓冲数组

//把需要显示的数字装入显示缓冲数组

void sfz()

{

s[0]=R3;

s[1]=R2;

s[2]=R1;

s[3]=0x0A; //最后一个LED显示"DARK"

}

//系统各寄存器初始化子程序

void initial()

{

R1=0X00;

R2=0X00;

R3=0X00;

sfz(); //把需要显示的数字装入显示缓冲数组

TXDATA=0X00;

LEDF=0X01;

BJF=0X01;

TRISB1=0;

TRISB2=0;

TRISB4=1;

TRISB5=1; //设置与键盘相关的各口的输入输出方式

RB1=0;

RB2=0; //设置扫描初始条件

}

//spi方式显示初始化子程序

void SPIINIT()

{

PIR1=0;

SSPCON=0x30;

SSPSTAT=0xC0;

//设置SPI的控制方式,允许SSP方式,并且时钟下降沿发送,与"74HC595,当其

//SCLK从低到高跳变时,串行输入寄存器"的特点相对应

TRISC=0xD7; //SDO引脚为输出,SCK引脚为输出

TRISA5=0; //RA5引脚设置为输出,以输出显示锁存信号

}

//I2C初始化子程序

void i2cint()

{

SSPCON = 0X08; //初始化SSPCON寄存器

TRISC3 =1; //设置SCL为输入口

TRISC4 =1; //设置SDA为输入口

TRISA4 = 0;

SSPSTAT=0X80; //初始化SSPSTAT寄存器

SSPADD=0X02; //设定I2C时钟频率

SSPCON2=0X00; //初始化SSPCON2寄存器

di(); //关闭总中断

SSPIF=0; //清SSP中断标志

RA4=0; //关掉74HC165的移位时钟使能,以免74HC165

//移位数据输出与I2C总线的数据线发生冲突

SSPEN=1;//SSP模块使能

}

//软件延时子程序

void DELAY()

{

for(i = 3553; --i ;) continue;

}

//键服务子程序

void keyserve()

{

PORTB=0XFD ;

if(RB5==0) BJF=0X01; //S9键按下,步进加标志置1

PORTB=0XFB ;

if(RB5==0) BJF=0X00; //S11键按下,步进加标志清0

RB1=0; //恢复PORTB的值

RB2=0;

}

//键扫描子程序

void KEYSCAN()

{

while(1){

while(1) {

if (RB5==0) break;

}

DELAY(); //若有键按下,则软件延时

if (RB5==0)break; //若还有键按下,则终止循环扫描,返回

}

}

//SPI传送数据子程序

void SPILED(data)

{

SSPBUF=data; // 启动发送

do {

}while(SSPIF==0);

SSPIF=0;

}

//显示子程序

void display()

{

SPIINIT(); //spi方式显示初始化

RA5=0; //准备锁存

for(COUNTW=0;COUNTW<4;COUNTW++) {

data=s[COUNTW];

if(COUNTW==1) data=table0[data];//第二位需要显示小数点 else data=table[data];

SPILED(data); //发送显示段码

}

for(COUNTW=0;COUNTW<4;COUNTW++){

data=0xFF;

SPILED(data); //连续发送4个DARK,使显示看起来好看一些 }

RA5=1; //最后给一个锁存信号,代表显示任务完成

}

//I2C总线输出数据子程序

void i2cout()

{

i2cint(); //因为SPI输出和I2C输出不能同时工作,则需要

//不断在两种方式见切换

SEN=1; //产生I2C启动信号

for(i=0x02;--i;) continue; //给予一定的延时,保证启动

do {

RSEN=1; //产生I2C启动信号

}while(SSPIF==0); //如果没能启动,则反复启动,直到启动为止

SSPIF=0; //SSPIF标志清0

SSPBUF=0X58; //I2C总线发送地址字节

do {

}while(SSPIF==0); //等待地址发送完毕

SSPIF=0; //SSPIF标志清0

SSPBUF=0X01; //I2C总线发送命令字节

do {

}while(SSPIF==0); //等待命令发送完毕

SSPIF=0; //SSPIF标志清0

SSPBUF=TXDATA; //I2C总线发送数据字节

do {

}while(SSPIF==0); //等待数据发送完毕

SSPIF=0; //SSPIF标志清0

PEN=1; //产生停止条件

do {

}while(SSPIF==0); //等待停止条件产生

SSPIF=0; //SSPIF标志清0

}

//步进加子程序

void BJADD()

{

R1++;

TXDATA=TXDATA+2;

if(R1>9) {

R1=0;

R2++;

if(R2>9) {

R2=0;

R3++;

}

}

if((R3==1)&&(R2==2)&&(R1==1)){

R3=0;

R2=0;

R1=0; //若R3,R2,R1超过120,则又从0计起 TXDATA=0;

}

sfz(); //把需要显示的数字装入显示缓冲数组

}

//步进减子程序

void BJSUB()

{

R1--;

TXDATA=TXDATA-2;

if(R1==0XFF) {

R1=9;

R2--;

if(R2==0XFF) {

R2=9;

R3--;

if(R3==0XFF) {

R3=1;

R2=2;

R1=0;//若R3,R2,R1小于0,则又从120计起

TXDATA=0XF0;

}

}

}

sfz(); //把需要显示的数字装入显示缓冲数组

}

//主程序

main()

{ initial(); //系统各寄存器初始化

display(); //调用一次显示子程序

while(1) {

i2cout(); //调用I2C子程序,启动D/A转换

KEYSCAN(); //键盘扫描

keyserve() ; //若确实有键按下,则调用键服务程序

if(BJF==0X01) BJADD();//若步进加标志为1,则调用步进加子程序 else BJSUB(); //若步进加标志为0,则调用步进减子程序

display(); //调用一次显示子程序

数控直流稳压电源的设计

数控直流稳压电源的设计 一、 设计任务和要求 设计一个数控直流稳压电源。 1. 基本要求: 1) 利用实验室提供的低压交流电源,设计整流、滤波、稳压电路; 2) 至少能输出4个档:3V 、5V 、9V 、12V ,用数码管显示; 3) 输出电流要能达到1A 以上,且纹波≤5mV 。 2. 发挥部分: 1) 输出增加了一个7V 的档,进而变为5个档;手动开关控制档的转换。 2) 用ADC0809(模/数转换器)将输出的电压模拟量转换为数字量并输出给译码显示电路以显示正确数字。 二 方案论证 1.可调稳压控制部分 方案一:直接由开关控制档位 5 个单刀单掷开关 手动控制开关,使输出电压分别为 此方法电路简单, 控制方便. 方案二;由多路模拟开关在脉冲CP 的作用下来控制开关 由脉冲控制多路模拟开关,.此方法比依赖与信号源 的CP,且不容易控制. 综合的看上述两种方案,方案一电路简单,控制方便;方案二对CP 的依赖性比较大,在实际应用方面不够灵活.因此对可调稳压器的控制部分应采用方案一. 2.显示电路 方案一:模拟量经模数转换电路输入后,输出转换成数字量,再利用一片共阴极七段显示器显示,结构框图如下:

→ → → 方案一方框图 此方案的优点是比较直观,易懂,而且容易调试,也能满足题目中所给的要求, 但是当输出电压为12v 时, 显示器显示以乱码"└┘"代替,不利于读数。 方案二:以方案一为基础,在经过模数转换输出后,加入一些简单的逻辑门,再利用两片共阴极七段显示器显示,结构框图如下: 这种情况下,电路可以直接的显示两位十进制数 ,且不会出现乱码。也能满足其他的要求。 上述两个方案经实践证明均可行,但方案一不能很好的显示两位十进制数,故选择方案二。 二、 设计方案 根据设计任务要求,数控直流稳压电源的工作原理框图如图1所示。它包括整流电路、滤波电路、可调稳压电路、数/模转换电路和译码示电路等五个部分组成。经过整流、滤波、稳压电路后,可得到一个稳定的输出电压值,其中因为输入为低压交流电源,所以整流电路中不需变压器,而可调的稳压电路可通过换档得到不同的输出电压值;A/D 转换器是将此模拟输出量转换为数字输出量,并送给译码显示电路显示出此值。 图 1

数控直流稳压电源设计本科论文

数控直流稳压电源 摘要: 本系统以实现直流稳压电源的模拟、数字双线控制为目的,用AT89S52单片机作为主控制芯片,以ICL7107作为数显转换核心,实现对电源输出电压的数字控制及数字显示。 关键词:直流稳压,数字电位器,数控 一、作品介绍 本系统电路主要包括五大部分: ●整流滤波保护电路 ●+5V稳压电路 ●可调稳压电路 ●数控电位器 ●单片机系统 ●数字显示电路 本系统主要特点: ●采用负反馈截流式过流保护方案,电源使用更安全。 ●输出电压范围大,可输出1.25-22V ●采用分立元件搭建分压电阻网络,由单片机控制 ●基于ICL7107的独立数字显示电路,显示精度高达0.01V

二、系统方框图 三、各模块的设计 1、整流滤波保护电路 整流电路采用最常用的全桥整流方案。保护电路的设计原理如下:

场强效应管RFP25n06的特性是g极高电平时导通,低电平是截止。要使电路能在过流有效地截断,就必须使Q2导通,使电平下拉,此时25n06截止。要使Q2导通,则要使其Vbe大于或等于0.7V(但此电路实际导通电压只要0.2V,原因未查出)。由于Vbe=Vr8+Vr4-Vr6,故要调节R8、R6,使得R8的电压略小于R6的电压,此时使Q2能有效的截止,25n6导通,电路正常工作;当电路过流时,R4压降增大,使得Vbe达到导通要求,故能使得Q2能导通,25n06截止,起到保护电路的作用。S4起到复位功能,在过流保护后,连通三极管的b、e两端,使其重新截止,使Q1重新导通,从而连通电路, 其余部分(C4、D1、R2、R3、R5、R7、DS1、R?、C3的作用):

51单片机控制的步进电机C语言程序

我上周刚做的这个实验成功拉,给你参考一下吧这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的和ULN2003一样,你把它换成2003就行拉 #include unsigned char code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf 9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0x00}; unsigned char temp,temp_old; unsigned char key; unsigned char i,j,k,m,s; void delay(int i) { for(m=i;m>0;m--) for(j=250;j>0;j--) for(k=10;k>0;k--); } void saomiao() { P3=0xff; P3_4=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--)

for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b: key=3; break; case 0x07: key=4; break; } temp=P3;

temp=temp&0x0f; while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } } } P3=0xff; P3_5=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp)

基于单片机的数控直流稳压电源

基于单片机的数控直流稳压电源 一、引言 (1)题目要求: 利用LM317三端稳压器,设计制作一个数控稳压电源,要求: 1、输出电压:2-15V,步进0.1V,纹波≤10mV; 2、输出电流0.5A; 3、输出电压值由数码管显示,由“+”、“-”键分别控制输出电压的步进 (2)概况:直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多.但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如 1.02~1.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压源的缺点,具有很高的应用价值。 二、系统设计 (1)方案论证: 方案:采用单片机控制此方案采用 AT89C51单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值。这里主要利用单片机程控输出数字信号,经过 D /A 转换器( DA0832)输出模拟量,然后使用运算放大器把电

流转换成电压,在通过三段稳压器LM317使得输出电压和输出电流达到稳压的目的。 方案论证: 1、输出模块:使用运算放大器做前级的运算放大器,由于运算放大 器具有很大的电源电压抑制比,可以减少输出端的纹波电压。使用LM317做电流稳压器,把电流稳定到0.5A。 2、数控模块:采用AT89C51单片机完成整个数控部分的功能,同 时,AT89C51作为一个智能化的可编程器件,便于系统功能的扩展。 3、显示模块:本来准备使用液晶显示,可是想想我们的层次不够, 液晶现实的额程序不会写,只能退而其次,选择使用单片机通过锁存器控制8段LED数码管直接显示,这样可以精确的显示输出电压。 (2)系统结构: 系统结构设计图如上图所示。该系统主要由单片机最小控制系统、显示电路、独立按键、D/A转换电路、放大电路和稳压电路组成。单片机设定预输出值,并可以通过独立键盘改变单片机的预设值。然后通过DAC0832转化为模拟量,再经过运算放大和稳压稳流电路最后输出预设电压值,通过LED显示能够直观的看到预设值。因为器材原因,我们设计的稳压电源采用的是外部稳压器提供的电源。这样虽然算不上是一个完整的数控直流稳压电源,但是,除了这点,我们设计的电源基本已经复合要求。

数控直流稳压电源设计任务书(doc 8页)

数控直流稳压电源设计任务书(doc 8页)

《电子线路仿真》课程设计报告DESIGN REPORT ON SIMULATION OF ELECTRONIC CIRCUIT 题目数控直流稳压电源学科部、系:信息学科部

2.1总体设计方案说明 根据设计任务要求,数控直流稳压电源的工作原理框图如图1所示。主要包括三大部分:数字控制部分,D/A变换器及可调稳压电源。数字控制部分用+,-按键控制一可逆二进制计数器,二进制计数器的输出输入到D/A变换器,经D/A变换器转化为相应的电压。此电压经过相应的放大后去控制电源的输出,使稳压器输出的电压为1V的步进增加。 2.2模块结构与方框图 Ui Uo 第三部分单元电路设计与参数计算 3.1 可逆计数器模块 3.1.1 模块电路及参数计算 电 压 可 逆 稳 压 反 馈 数 显 D/ A

3.1.2 工作原理和功能说明 因为要求是输出5-15V的电压,只十一个电压值,而计数器74193是一个16进制的可逆计数器。我们只要用从0计数到10的几个状态,这可以通过反馈的方法实现。当74193输出0时,最后输出为5V。不能再减小了。所以通过一个四输入的或门输入到与非门U10使减“-”失效,计数器不能减计数,只能加。当加到6时或门反馈的数为1,通过U10后计数器就可以减计数了。同理,当输出15V时,74193输出为10,电压不能再加了。通过反馈输出一个0使加计数失效,电压停在15V。此时电压只能减,只有按“-”的按键减小电压。 3.2 D/A转换模块 3.2.1 模块电路及参数计算 3.2.2 工作原理和功能说明 这一模块是最主要的一个模块,左下方从左到右依次接74193输出端的Q1Q2Q3Q4,输入端依次接入的是0000~1010,这个电路的作用就是把这些数字信号转换成模拟信号。根据公式UO1=-Rf (UH/R16*D0+UH/R15*D1+UH/R19*D2+UH/R20*D3) 其中R16=2R15=4R19=8R20,根据二进制转十进制的计算公式可知,只要调节Rf到一定的值,就可已得到想要的模拟信号电压的大小。其实这是一个简单的求和电路,在模电书上可以找到。加

数控直流稳压电源

数控直流稳压电源 论文关键词:直流稳压电源单 片机数字控制 论文摘要:本系统以直流电压源为核心,AT89S52单片机为主控制器,通过键盘来设 置直流电源的输出电压,设置步进等级可达,输出电压范围为0—,最大电流为330mA, 并可由液晶屏显示实际输出电压值。系统有过流保护电路,当输出电流过大时功率管自动截至,而且有红色指示灯发出警报。本系统由单片机程控输出数字信号,经过D/A转换器输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电压的变化而输出不同的电压。实际测试结果表明,本系统实际应用于需要高稳定度小功率恒压源的领域。 Keywords: regulated power supply of direct current; single2ch ip m icrocomputer, digital control Abstract:This system to dc voltage

source as the core, mainly AT89S52 SCM, through the keyboard controller to install dc power supply output voltage, setting stepping class can output voltage, the range of V, the maximum current 330mA for, and can show the actual pipe by digital output voltage values. This system consists of microcontroller program output digital signal, through D/A converter (AD0832) output analog amplifier, through isolating amplifier output power, control of base, with the power to change the passive tube voltage output of different voltage. Test results show that this system application in need of high stability of small power constant-voltage source fields. 1 引言几乎所有的电子设备都需 要稳定的直流电源,因此直流稳压电源的应用非常的广泛。直流稳压电源的电路形式有很多种,有串联型、开关型、集成电路、

数控直流稳压电源设计

数字电子系统的数控直流稳压电源设计本系统以AT89C51 单片机作为系统的核心,由D/A数字模拟转换模块、按键、LED串口显示模块等模块组成一个数控电源。该系统实现了输出电压:范围 2 ~+20 .0 V,步进0.1V,纹波小于100mV;输出电流:1000mA;输出电压值由数码管显示;由“+”、“-”两键控制输出电压步进增减。输入模块的按键按下之后,单片机有一个输入,单片机将输入的数字一方面给显示模块,让它们在数码管中显示出来;另一部分输给DAC0832,让它转化为模拟量电流输出,通过运算放大器将这模拟量转化为相应的电压,这电压经过放大后控制LM317的控制端,从而实现输出电压的控制。 关键词:AT89C51 单片机, 数控电源, D/A, 直流电源 在现代家庭中各种电器的不断出现,并要求着各种不同值的电源出现,使得家庭购买不同值的电源。数字化的也更加贴近人们的生活,因为它更加的直观,易被接受,大家都开始追求数字化的各类电子产品。数控直流电源有着直观,易操作,各种电压集一身,输出精度和稳定性都较高等优点,所以越来越受广大人们的喜爱。以后家里的电视遥控,电动玩具等都可以共用一个电源。 设计要求 设计并制作有一定输出电压调节范围和功能的数控直流稳压电源,基本要求如下: 1、输出直流电压调节范围2~20V,步进值为0.1V 2、稳压系数小于0.2,纹波电压小于100mv; 3、输出电流为1000mA; 输出电压值用数码管显示,由“+”“-”两键分别控制输出电压步进增和减。 1.2 方案论证 分析本题,根据设计要求先确定了本系统的整体设计原理框图1-1.

采用8位的数字/模拟转换芯片DAC0832是 本系统是基于51单片机的数控电源的设计,8位的单片机,而MX7541是12位数字输入的,因此须用锁存器。而此数控电源要求单步0.1V,2~20V,DAC0832完全可以达到,故选择常用的DAC0832。 可调稳压芯片:根据设计要求输出电压范围2~+20.0V,输出电流1000mA,本文选择了LM317T三端可调稳压芯片。 按键控制模块:由于本数控电源需要用的按键不多,要实现步进为0.1V的设计要求,只需用一个“+”和一个“-”按键,另外再加两个按键用于实现固定电压输出,按键时可直接输出相应电压。4个按键就可实现本题的设计要求,本文采用一般的电平判键按钮。 显示模块:此系统显示的只是最终电源输出的十位、个位和十分位电压值,只需显示出三个数字,选用数码管显示,用普通的数码管显示简单的数字、符号、字母。

数控稳压电源报告

数控稳压电源报告 Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

数控直流稳压电源 设计人员:鲍官牛 马彪 吴汉国 指导老师:邱森友 葛浩 摘要: 本数控直流稳压电源系统采用AT89S52单片机为主控模块,由DAC0832数模转换模块输出电压,经过由高精度运算放大器OP07组成的电压放大模块进行电压放大,引入由功率三极管TIP41C组成的扩流模块进行电流扩大,采用7107进行电压测量式输出显示,能自动切换电源档位,提高本电源系统的效率。 基于可靠的硬件设计,和高效的软件设计,本系统具有电压输出稳定,负载能力好,精度高,人机界面友好,操作方便等特点。 关键词:数控数模转换扩流纹波电压 AT89S52 DAC0832 OP07 7107 Abstract: The direct voltage source of numerical control uses MCU AT89S52 as controller kernel,and DAC0832,the DA conversion module to output Voltage,which enlarged by the voltage expansion module basing on accurate Amplifier OP07 Output display bases on IC 7107,with the method of voltage system can automatically chooses appropriate power source supply ,which improves system’s efficiency,and has funtions of current overfloat selt-protecting,and saving the lastest settings. Base on reliable hardware and effectual software design, this system is qualified with quite high performs. Keyword: Numerical Control DA Conversion Current Expansion Current Overfloat Selt-protecting Voltage Ripple AT89S52 DAC0832 OP07 7107 目录 第一章总论 设计任务和要求 (4) 作品介绍 (4) 方案论证与比较 (6)

步进电机正反转控制C语言程序 只为初学者

只为初学者的步进电机正反控制程序 #include<> #define uchar unsigned char #define uint unsigned int #define MotorData P2 //步进电机控制接口定义 sbit zheng=P3^0; sbit fan=P3^1; sbit stop=P3^2; uchar phasecw[8] ={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//正转 uchar phaseccw[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//反转 //ms延时函数 void delay(uint t) { uint k; while(t--) { for(k=0; k<125; k++); } } void Delay_xms(uint x) { uint i,j; for(i=0;i

void Motor_work(uint t) { uchar i,j; switch(t) { case 0: while(1) {if(stop==0) break; for(i=0;i<8;i++) {MotorData=phasecw[i]; delay(50);//转速调节 } } break; case 1: while(1) {if(stop==0) break; for(j=0;j<8;j++) {MotorData=phaseccw[j]; delay(50);//转速调节 } } break; } } //停止转动 void Motor_test(void) { if(zheng==0) { Delay_xms(10); if(zheng==0) Motor_work(0); } if(fan==0) { Delay_xms(10); if(fan==0) Motor_work(1); } } //主函数 void main(void) {

数控步进直流稳压电源.doc

第13章数控步进直流稳压电源 13.3.4 源程序代码 #include //此程序实现"数控步进直流稳压电源"的功能,调试时为了避免资源冲突,应使实验板上的拔码开关S8拔向高电平 //本程序设定S9键为增加键,当按住S9键不松开时,输出V out以0.1V连续步进, //直至键S9松开,当以一定的时间间隔点动S9键时,输出V out也为点动步进 //递减键S11的功能与S9基本相同时,输出电压的值显示在3个LED上 unsigned char R1,R2,R3,TXDA TA,LEDF,BJF,COUNTW,data; unsigned int i; const char table[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xFF}; //不带小数点的显示段码表 const char table0[11]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0xFF}; //带小数点的的显示段码表 unsigned char s[4];//定义一个显示缓冲数组 //把需要显示的数字装入显示缓冲数组 void sfz() { s[0]=R3; s[1]=R2; s[2]=R1; s[3]=0x0A;//最后一个LED显示"DARK" } //系统各寄存器初始化子程序 void initial() { R1=0X00; R2=0X00; R3=0X00; sfz();//把需要显示的数字装入显示缓冲数组 TXDA TA=0X00; LEDF=0X01; BJF=0X01; 204

数控步进直流稳压电源的与制作论文

数控步进直流稳压电源的与制作论文

数控步进直流稳压电源的设计与制作安徽机电职业技术学院

摘要:本课题设计以AT89C51为核心,通过A/D、D/A转换、V/I转换及独特的算法实现了高精度的,电压输出范围为0~12V,电流输出范围为0mA~1A的数控步进直流稳压电源。该电流源具有电压可预置,0.5V步进,同时显示给定值和实测值等功能。 关键字:AT89C51,数控电源,A/D、D/A转换、V/I转换 CNC stepping dc voltage source of design and manufacture Abstract : This topic design USES AT89C51 as the core, the A/D, D/A transformation, V/I conversion and unique method of high voltage output, the range of 0-12 V, current output for 0mA ~ 1A nc stepping dc voltage stabilizer. With the current source voltage preset, 0.5 V stepping, given value and values etc. Function. Key words : AT89C51, Numerical controlled source,A/D、D/A converter、 V/I converter

目录 1. 系统设计 (3) 1.1 设计要求 (3) 1.1.1 基本要求 (3) 1.1.2 技术指标 (3) 1.2 总体设计方案 (4) 1.2.1 方案论证与比较 (4) 2. 单元电路设计 (7) 2.1 电压源电路设计 (7) 2.2 控制器电路设计 (8) 2.2.1 单片机最小系统设计 (8) 2.2.2 A/D、D/A电路设计 (8) 2.3 键盘电路设计 (9) 2.4 显示器电路设计 (10) 2.5 稳压电源电路 (10) 3. 软件设计 (11) 3.1 软件设计流程图 (11) 3.2 软件功能、算法及源程序: (12) 4. 系统测试 (14) 4.1 测试使用的仪器 (14)

基于单片机的数控直流稳压电源设计方案

基于单片机的数控直流稳压电源设计方案 随着新型电力电子器件和适于更高开关频率的电路拓扑的不断出现,传统应用技术,由于功率器件性能的限制使开关电源性能的影响减至最小,新型的电源电路拓扑和新型的控制技术,可使功率开关工作在零电压或零电流状态,为了提高开关电源工作效率,设计出性能优良的开关电源,十分必要。 1、几种数控直流稳压电源设计方案比较 1.1几种设计方案电路原理 方案 1 : 采用模拟的分立元件,利用纯硬件来实现功能,通过电源变压器、整流滤波电路以及稳压电路,实现稳压电源稳定输出±5 V、±12 V、±15 V并能可调输出 0~ 30 V电压,见图 1所示。但由于模拟分立元件的分散性较大,各电阻电容之间的影响较大,因此所设计的指标不高、不符合设计要求、且使用的器件较多、连接复杂、灵活性差、功耗也大,同时焊点和线路较多,使成品的稳定性和精度受到影响。 图 1 方案 1电路原理 方案 2 : 此方案采用传统的调整管方案,主要特点在于使用一套双计数器完成系统的控制功能,其中二进制计数器的输出经过 D /A 变换后去控制误差放大的基准电压,以控制输出步进。十进制计数器通过译码后驱动数码管显示输出电压值,为了使系统工作正常,必须保证双计数器同步工作。 图 2 方案 2电路原理 方案 3 : 此方案不同于方案 1之处在于使用一套十进制计数器,一方面完成电压的译码显示,另一方面其输出作为 EPROM的地址输入,而由 EPROM 的输出经 D /A变换后控制误差放步的问题,但由于控制数据烧录在 EPROM中,使系统设计灵活性降低。 图 3 方案 3电路原理

方案 4 : 此方案采用 51系列单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值,从而使开关控制电源输出电压发生变化,间接地改变输出电压的大小。为了能够使系统具备检测实际输出电压值的大小,经过 ADC0809进行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理。利用单片机程控输出数字信号,经过 D /A 转换器( DA0830)输出模拟量,再经开关电源控制电路,使得输出电压达到稳压的目的。单片机系统还兼顾对恒压源进行实时监控,输出电压经过电流 /电压转变后,通过 A /D转换芯片,实时把模拟量转化为数据量,经单片机分析处理,经过数据形式的反馈环节,使电压更加稳定,构成稳定的压控电压源。而且采用PWM 控制的开关电源,该电源具有高集成度、高性价比、最简外围电路、最佳性能指标、能构成高效率无工频变压器的隔离式开关电源等优点。而且在成本上与同等功率的线性稳压电源相当,而电源效率显著提高,体积和重量则大为减小。 图 4 方案 4电路原理 2、方案的比较与论证 ( 1)输出模块 方案 1:采用线性调压电源,以改变其基准电压的方式使输出不仅增加 /减少,这样不能不考虑整流滤波后的纹波对输出地影响,此输出只能是用万用表量出。而方案 2、方案 3中使用运算放大器做前级的运算放大器,由于运算放大器具有很大的电源电压抑制比,可以减少输出端的纹波电压。在方案 1中,为抑制纹波而在线性调压电源输出端并联的大电容降低了系统的响应速度,这样输出的电压难以跟踪快变的输入,方案 4中的输出电压波形与 D /A 变换输出波形相同,不仅可以输出直流电平,而且只要预先生成波形的量化数据,就可以产生多种波形输出,使系统有一定驱动能力的信号源。 ( 2)数控模块 方案 1利用纯硬件来控制电压的输出,其中最基本的电路原理分析,需要计算负载的大小,稳压管的选择有关,方案 2、方案 3中采用中、小规模器件实现系统的数控部分,使用的芯片很多,造成电路部接口信号繁琐,中间相互关联多,抗干扰能力差,如方案 1中的双计数器一旦出现计数不同步时,会导致显示电压与输出电压不一致。在方案 4 中采用AT89C51单片机完成整个数控部分的功能,同时,AT89C51作为一个智能化的可编程器件,便于系统功能的扩展。 图 5 方案 5数控模块

数控稳压电源设计实例

基于单片机的数控直流稳压电源的设计 1.ADC0804简介 ADC的主要特性如下: 1)CMOS的逐渐逼近使AD转换器。 2)具有8位解析能力,转换时间为100μs,最大误差为1个LSB值(最小电压刻度)。3)采用差动式模拟电压输入,三态式数字输入。 2. ADC0804的引脚图1如下:

图1 ADC0804引脚图 3 外部特性(引脚功能) CS :片选端,此为低态驱动引脚,若=0,则ADC0804工作;若=1,则ADC0804不工 作,输出数据引脚DB0到DB7呈高阻状态。 WR :控制芯片启动的输入端,若=0,即可使ADC0804开始进行模拟-数字转换动作。 INTR :转换结束信号输出端,输出电平高跳到低表示本次转换已经完成,可作为中断或查 询信号。 RD :转换结果读出控制端,当它与CS 同时为低电平时,输出数据锁存器DB 0~DB 7各端上 出现8位并行二进制数码,以表示D A 结果。 CLK :时钟脉冲输入引脚,ADC0804接受100到1460KHz 的时钟脉冲。可配合CLK-R 引脚,以外加的电阻、电容由内部电路自行产生时钟脉冲,其振荡频率为CLK f ≈1.11RC 。 CLK-R :时钟脉冲输出引脚,可连接电阻以产生时钟脉冲。 2REF V :参考电压输入引脚,通常本引脚所连接的电压是输入模拟电压最大值的一半。 )(+IN V :模拟电压输入引脚。 )(-IN V :模拟电压输入引脚。 CC V :电源引脚或参考电压引脚,通常是连接+5V ,以作为电源之用。 GND :数字信号接地引脚。 AGND :模拟信号接地引脚,通常本引脚都与GND 引脚连接后接地,若处理高干扰的模拟信号,本引脚可单独接地。 DB0~DB7:数字输出数据引脚。 电路图介绍: 本实例采用Protuse 软件仿真,现总电路图如图2所示:

最新51单片机控制的步进电机C语言程序汇总

51单片机控制的步进电机C语言程序

51单片机控制的步进电机C语言程序 用的是L298驱动的和ULN2003一样,你把它换成2003就行拉 #include unsigned char code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4, 0xf6,0xf2,0xf3,0x00}; unsigned char temp,temp_old; unsigned char key; unsigned char i,j,k,m,s; void delay(int i) { for(m=i;m>0;m--) for(j=250;j>0;j--) for(k=10;k>0;k--); } void saomiao() { P3=0xff; P3_4=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case 0x0e: key=1; break; case 0x0d: key=2; break; case 0x0b:

key=3; break; case 0x07: key=4; break; } temp=P3; temp=temp&0x0f; while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } } } P3=0xff; P3_5=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp) { case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=7; break; } temp=P3;

数控直流稳压电源的设计终审稿)

数控直流稳压电源的设 计 文稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-

数控直流稳压电源的设计 一、 设计任务和要求 设计一个数控直流稳压电源。 1. 基本要求: 1) 利用实验室提供的低压交流电源,设计整流、滤波、稳压电路; 2) 至少能输出4个档:3V 、5V 、9V 、12V ,用数码管显示; 3) 输出电流要能达到1A 以上,且纹波≤5mV 。 2. 发挥部分: 1) 输出增加了一个7V 的档,进而变为5个档;手动开关控制档的转换。 2) 用ADC0809(模/数转换器)将输出的电压模拟量转换为数字量并输出给译码显示电路 以显示正确数字。 二 方案论证 1.可调稳压控制部分 方案一:直接由开关控制档位 5 个单刀单掷开关 手动控制开关,使输出电压分别为 此方法电路简 单, 控制方便. 方案二;由多路模拟开关在脉冲CP 的作用下来控制开关 CP 脉冲

由脉冲控制多路模拟开关,脉冲由信号源直接给定.此方法比依赖与信号源的CP,且不容易控制. 综合的看上述两种方案,方案一电路简单,控制方便;方案二对CP 的依赖性比较大,在实际应用方面不够灵活.因此对可调稳压器的控制部分应采用方案一. 2.显示电路 方案一:模拟量经模数转换电路输入后,输出转换成数字量,再利用一片共阴极七段显示器显示,结构框图如下: → → → 此方案的优点是比较直观,易懂,而且容易调试,也能满足题目中所给的要求,但是当输出电压为 12v 时, 显示器显示以乱码"└┘"代替,不利于读数。 方案二:以方案一为基础,在经过模数转换输出后,加入一些简单的逻辑门,再利用两片共阴极七段显示器显示,结构框图如下: ↗ → ↘ 的要求。 上述两个方案经实践证明均可行,但方案一不能很好的显示两位十进制数,故选择方案二。 二、 设计方案

简易数控直流稳压电源设计

1 引言 随着对系统更高效率与更低功耗的需求,电信与通信设备的技术更新推动电源行业中直流/直流电源转换器向更高灵活性与智能化方向发展。整流系统由以前的分立元件与集成电路控制发展为微机控制,从而使直流电源智能化,具有遥测、遥信、遥控的三遥功能,基本实现了直流电源的无人值守设计的直流稳压电源主要由单片机系统、键盘、数码管显示器、指示灯及报警电路、检测电路、D/A 转换电路、直流稳压电路等几部分,直流稳压电源就是最常用的仪器设备。 2 简易数控直流稳压电源设计 2、1 设计任务与要求 设计并制作有一定输出电压调节范围与功能的数控直流稳压电源。基本要求如下: 1.输出直流电压调节范围3~15V,纹波小于10mV 2.输出电流为止500m A、 3.稳压系数小于0、2。 4.直流电源内阻小于0、5Ω。 5.输出直流电压能步进调节,步进值为1V。 6.由“+”、“-”两键分别控制输出电压步进增的减。 2、2 设计方案 根据设计任务要求,数控直流稳压电源的工作原理框图如图1所示。主要包括三大部分:数字控制部分、D/A变换器及可调稳压电源。数字控制部分用+、-按键控制一可逆二进制计数器,二进制计数器的输出输入到D/A变换器,经D/A变换器转换成相应的电压,此电压经过放大到合适的电压值后,去控制稳压电源的输出,使稳压电源的输出电压以1V的步进值增或减。 图1简易数控直流稳压电源框图

2、3 电路设计 2.3.1 整流、滤波电路设计 首先确定整流电路结构为桥式电路;滤波选用电容滤波。电路如图2所示。 图2 整流滤波电路 电路的输出电压U I 应满足下式:U ≥U omax +(U I -U O )min+△U I 式中,U omax 为稳压电源输出最大值;(U I -U O )min 为集成稳压器输入输出最小电压差;U RIP 为滤波器输出电压的纹波电压值(一般取U O 、(U I -U O )min 之与的确良10%);△U I 为电网波动引起的输入电压的变化(一般取U O 、(U I -U O )min 、U RIP 之与的10%)。 对于集成三端稳压器,当(U I -U O )min=2~10V 时,具有较好的稳压特性。故滤波器输出电压值:U I ≥15+3+1、8+1、98≥22(V),取UI=22V 、根据UI 可确定变压器次级电压 U 2。 U 2=U I / 1、1~1、2≈(20V) 在桥式整流电路中,变压器,变压器次级电流与滤波器输出 电流的关系为:I2=(1、5~2)I I ≈(1、5~2)I O =1、5×0、5=0、75(A)、取变压器的效率η=0、8,则变压器的容量为 P=U 2I 2/η=20×0、75/0、8=18、75(W) 选择容量为20W 的变压器。 因为流过桥式电路中每只整流三极管的电流为 I D =1∕2I max =1/2I Omax =1/2×0、5=0、25(A) 每只整流二极管承受的最大反向电压为 )(31%)101(202max 2V U U RM ≈+??== 选用三极管IN4001,其参数为:I D =1A,U RM =100V 。可见能满足要求。 一般滤波电容的设计原则就是,取其放电时间常数R L C 就是其充电周期的确2~5倍。对于桥式整流电路,滤波电容C 的充电周期等于交流周期的一半,即

电子设计大赛—简易数控直流稳压电源

一、项目参加人员、负责内容以及技术特长: 二、项目背景 数控直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多, 在家用电器和其他各类电子设备中,通常都需要电压稳定的直流电源供电。但在实际生活中,都是由220V 的交流电网供电。这就需要通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电。滤波器用于滤去整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,又缩小了其体积,使家用电器小型化。 电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。电力电子技术是电能的最佳应用技术之一。当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多学科领域。随着计算机和通讯技术发展而来的现代信息技术革命,给电力电子技术提供了广阔的发展前景,同时也给电源提出了更高的要求。随着数控电源在电子装置中的普遍使用,普通电源在工作时产生的误差,会影响整个系统的精确度。电源在使用时会造成很多不良后果,世界各国纷纷对电源产品提出了不同要求并制定了一系列的产品精度标准。只有满足产品标准,才能够进入市场。 随着经济全球化的发展,满足国际标准的产品才能获得进出的通行证。数控电源是从80年代才真正的发展起来的,期间系统的电力电子理论开始建立。这些理论为其后来的发展提供了一个良好的基础。在以后的一段时间里,数控电源技术有了长足的发展。但其产品存在数控程度达不到要求、分辨率不高、功率密度比较低、可靠性较差的缺点。因此数控电源主要的发展方向,是针对上述缺点不断加以改善。单片机技术及电压转换模块的出现为精确数控电源的发展提供了有利的条件。新的变换技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到90年代,己出现了数控精度达到0.05V的数控电源,功率密度达到每立方英寸50W的数控电源。目前在电力电子器件方面,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。随着人们生活水平的不断提高,数字化控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数控制直流稳压电源就是一个很好的典型例子。但人们对它的要求也越来越高,要为现代人工作、科研、生活提供更好的更方便的设施,就需要从数字电子技术入手,一切向数字化和智能化方向发展。

数控稳压电源报告

数控直流稳压电源 设计人员:鲍官牛 马彪 吴汉 国 指导老师:邱森友 葛浩 摘要: 本数控直流稳压电源系统采用AT89S52单片机为主控模块,由DAC0832数模转换模块输出电压,经过由高精度运算放大器OP07组成的电压放大模块进行电压放大,引入由功率三极管TIP41C组成的扩流模块进行电流扩大,采用7107进行电压测量式输出显示,能自动切换电源档位,提高本电源系统的效率。 基于可靠的硬件设计,和高效的软件设计,本系统具有电压输出稳定,负载能力好,精度高,人机界面友好,操作方便等特点。 关键词:数控数模转换扩流纹波电压 AT89S52 DAC0832 OP07 7107 Abstract: The direct voltage source of numerical control uses MCU AT89S52 as controller kernel,and DAC0832,the DA conversion module to output Voltage,which enlarged by the voltage expansion module basing on accurate Amplifier OP07 Output display bases on IC 7107,with the method of voltage system can automatically chooses appropriate power source supply ,which improves system’s efficiency,and has funtions of current overfloat selt-protecting,and saving the lastest settings. Base on reliable hardware and effectual software design, this system is qualified with quite high performs. Keyword: Numerical Control DA Conversion Current Expansion Current Overfloat Selt-protecting Voltage Ripple AT89S52 DAC0832 OP07 7107 目录 第一章总论 设计任务和要求 (4) 作品介绍 (4) 方案论证与比较 (6) 1.3.1 微控制器的选择 (6) 1.3.2 显示部分方案论证 (6)

相关文档
相关文档 最新文档