51单片机积雪融化系统使用51单片机作为系统主控,借助HX711检测积雪厚度,同时集成了LCD显示模块显示实时温度等,系统通过积雪厚度驱动改变加热片的功率进行一个融雪操作,同时集成了按键模块,可以手动调节加热/自动模式,加热强度等。
一、硬件设计
51单片机积雪融化系统使用洞洞板进行焊接,电路简单,这边不多做阐述。
二、软件设计
1、HX711
sbit HX711_DOUT = P2^0; //声明P2^1口接HX711数据线
sbit HX711_SCK = P2^1; //声明P2^0口接HX711时钟线
//****************************************************
//延时函数
//****************************************************
void Delay__hx711_us(void)
{
_nop_();
_nop_();
}
//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void) //增益128
{
unsigned long count;
unsigned char i;
HX711_DOUT=1;
Delay__hx711_us();
HX711_SCK=0;
count=0;
while(HX711_DOUT);
for(i=0;i<24;i++)
{
HX711_SCK=1;
count=count<<1;
HX711_SCK=0;
if(HX711_DOUT)
count++;
}
HX711_SCK=1;
count=count^0x800000;//第25个脉冲下降沿来时,转换数据
Delay__hx711_us();
HX711_SCK=0;
return(count);
}
//转化重量函数
long Get_Weight()
{
HX711_Buffer = HX711_Read(); ///读取此时的传感器输出值
Weight_Shiwu = HX711_Buffer; ///将传感器的输出值储存
Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //获取实物的AD采样数值。
Weight_Shiwu = (long)((float)Weight_Shiwu/GapValue); //AD值转换为重量(g)
return Weight_Shiwu;
}
2、DS18B20
#include <REGX52.H>
#include "OneWire.h"
#define DS18B20_SKIP_ROM 0xcc
#defi