51Proteus仿真数控0~20mA恒流源串口DAC0832数码管显示-0036

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];

}}

你可能感兴趣的:(Proteus仿真,单片机,stm32,嵌入式硬件)