感谢oceancjc的热情帮助,那问题来了,LM317如何调压

目前一直在学怎么做基于单片机的数控电源,仿真如下,本来想做一个2v-15v,但是怎么调,要么起始电压是2.5多伏,要么最大电压也是13.9而已,怎么让起始电压跟最大电压符合要求呢?,程序如下,自己没把显示部分做出来。 #include
#define uint unsigned int
#define uchar unsigned char
#define DAC0832_PORT P1
sbit duanxuan=P2^6;
sbit weixuan=P2^5;
sbit cs=P2^2;
sbit wr1=P2^3;
sbit S1=P2^0;//加
sbit S2=P2^1;//减
uchar num=20;
uchar code table={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
void delay(uint z) //延时z ms子程序   
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

init()//初始化子函数
{   
P1=num;
}               

uchar keyscan()//键盘扫描程序   
{
if(S1==0)     
{
delay(10);     //键盘按键消抖
if(S1==0)
{
if(num==150)
{
num=20;
}
else
{
num++;
}
}
while(!S1); //松手检测
}
 
if(S2==0)     
{
delay(10);  
if(S2==0)
{
if(num==20)
{
num=150;
}
else
{
num--;
}
}
while(!S2); //松手检测
}
return(num);
}

void display()//显示程序
{   
  
duanxuan=1;
P0=table;//十位
duanxuan=0;
weixuan=1;
    P0=0x80;
weixuan=0;
delay(1);


duanxuan=1;
P0=((table)&0xfe);//个位
duanxuan=0;
weixuan=1;
    P0=0x40;
weixuan=0;
delay(1);

duanxuan=1;
P0=table;//小数
duanxuan=0;
weixuan=1;
    P0=0x20;
weixuan=0;
delay(1);

}
uchar dazh( uchar n)//D/A转换子程序
{   cs=0;选定芯片
wr1=0;允许写入
n=num-13;输出电压值
    DAC0832_PORT=n; //把n送给給DA

}

// 主程序 //
void  main()
{   
init();
while(1)
{   keyscan();
display();
dazh();

}
}感谢oceancjc的热情帮助,那问题来了,LM317如何调压
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:3
fighter 2015-04-07
LM317应该是有3V的压差的
0   回复
举报
发布
oceancjc 2015-04-05
对了 这个方案做出来的时候注意317的散热 一定要加散热片哦~
0   回复
举报
发布
不爱电子爱金币 2015-04-05
给力给力!!
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子