51Proteus仿真数控0~20mA恒流源串口DAC0832数码管显示-0036
Proteus仿真小实验:
51Proteus仿真数控0~20mA恒流源串口DAC0832数码管显示-0036
功能:
硬件组成:AT89C51单片机 +6位数码管+DAC0832电压输出+多个按键(设置、移动、加、减)+0~20mA电流变化电路+串口上传电路
1.点击设置后进入电流设置状态,此时数码管某一位开始闪烁表示设置当前位。可以通过移动键选择下一个设置位。
2.设置状态通过加减键可以对设置值进行加和减。再次点击设置后退出设置状态。最大电流为20mA。
3.0~20mA电流输出原理,通过单片机通过DAC0832输出电压,电压经过电流变换电路转换为电流。从而实现数控0~20mA恒流源。
4.可以通过串口上传当前的电流
有功能视频哦:
可以哔哩哔哩B站,搜索UP主“单片机仿真汇”。在其空间中搜索关键词“恒流源”即可找到对应详细功能视频和介绍。
电路图:
部分源代码:
void main()
{
//K4 - 减
if(KEY_4_VALUE == KEY_ST_UP)//按键按下后松开
{
KEY_4_VALUE = KEY_ST_USE;
SetAmRRRRR = SetAm;
if(SetLocation == 3)
{
//
temp = SetAm%10000/1000;
temp--;
if(temp < 0 )
{
temp = 2;
}
DisplayData[2] = temp;
}
if(SetLocation == 4)
{
temp = SetAm%1000/100;
temp--;
if(temp < 0 )
{
temp = 9;
}
DisplayData[3] = temp;
}
if(SetLocation == 5)
{
temp = SetAm%100/10;
temp--;
if(temp < 0 )
{
temp = 9;
}
DisplayData[4] = temp;
}
if(SetLocation == 6)
{
temp = SetAm%10;
temp--;
if(temp < 0 )
{
temp = 9;
}
DisplayData[5] = temp;
}
//将显示数据 ,转换成SetAm电流数据
SetAm = DisplayData[2]*1000 + DisplayData[3] *100 + DisplayData[4] *10 +DisplayData[5];
}}