51 Proteus仿真0-30V数字可调电源TLC5165-FZ0018
Proteus仿真小实验:
51 Proteus仿真0-30V数字可调电源TLC5165-FZ0018
功能:
硬件组成:51单片机 +LCD1602显示器+TLC5165-DAC+AC220V转直流电流+电压变换电路+按键
1.使用变压器配合全桥整流电路将AC220V变为48V直流。
2.单片机控制TLC5165-DAC配合电压变换电路实现0~30V数字可调电压输出。
3.LCD1602显示当前的电压值。
4.4按键完成电压的设定。
有功能视频哦:
可以哔哩哔哩B站,搜索UP主“单片机仿真汇”。在其空间中搜索关键词“数字可调电源”即可找到对应详细功能视频和介绍。
电路图:
![](https://img-blog.csdnimg.cn/img_convert/ba3e23b15534a1f6f236c9174f3b294b.jpeg)
部分源代码:
unsigned char Get_AD_Result1(char cn)
{
idata unsigned char i,dat1=0,dat2=0;
idata unsigned char x;
CS0832=0;
CLK0832=0;
DIO0832=1;
_nop_();
_nop_();
CLK0832=1;
_nop_();
_nop_();
CLK0832=0;
DIO0832=0;
_nop_();
_nop_();
CLK0832=1;
_nop_();
_nop_();
CLK0832=0;
DIO0832=0;
_nop_();
_nop_();
CLK0832=1;
_nop_();
_nop_();
CLK0832=0;
DIO0832=1;
_nop_();
_nop_();
for(i=0;i<8;i++)
{
CLK0832=1;
_nop_();
_nop_();
CLK0832=0;
_nop_();
_nop_();
dat1=(dat1<<1)|DIO0832;
}
for(i=0;i<8;i++)
{
dat2=dat2|((unsigned char)DIO0832<<i);
CLK0832=1;
_nop_();
_nop_();
CLK0832=0;
_nop_();
_nop_();
}
CS0832=1;
x = ( dat1==dat2)?dat1:0x00;
if(x>0)
{
x= x+1;
}
return(x);
}