不爱电子爱金币
获得 0 次赞
帮助过0人
1,供电模块是AC220V转+15,-15v,5v的,LM317的输入电压也是+15v,我打算在网上买这个模块了,但是不知道供电模块是否会影响我LM317的输出纹波,我设计要求纹波小于20mv,最大输出电流是大于1A。那供电模块的功率,输出纹波大小,输出电流大小如何要求?有什么影响?用高低压隔离输出开关电源可以么? 2,从下面的框图看,如果我选择带有A/D的STC12C5A60S2单片机替换51单片机,那么我是否可以省去电压采样,电压跟随器这两个部分?如果是反馈电流,那电流采样和放大电路不可以省是么?
目前一直在学怎么做基于单片机的数控电源,仿真如下,本来想做一个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[num/100];//十位 duanxuan=0; weixuan=1; P0=0x80; weixuan=0; delay(1); duanxuan=1; P0=((table[num%100/10])&0xfe);//个位 duanxuan=0; weixuan=1; P0=0x40; weixuan=0; delay(1); duanxuan=1; P0=table[num%10];//小数 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(); } }