【TB作品】51单片机读取重量和液位,OLED显示

在这里插入图片描述

在这里插入图片描述

代码打开下载:

http://dt4.8tupian.net/2/28880a64b6666.pg3

这段代码是为微控制器编写的,可能是基于8051架构,使用Keil C51编译器。该代码结合了OLED显示器、超声波距离传感器和基于HX711的称重传感器的功能。以下是主要组件及其功能的详细说明:

  1. 超声波距离测量:

    • 超声波传感器连接到微控制器,其触发和回波引脚分别定义为 TrigEcho
    • Init_Timer0 函数初始化定时器0,用于测量超声波信号的飞行时间。
    • Timer0 中断函数在定时器0溢出时触发,设置标志 Flag_Ultrasonic
  2. HX711称重传感器接口:

    • HX711称重传感器接口用于重量测量。HX711模块连接到引脚 HX711_SCKHX711_DOUT
    • Delay__hx711_us 等函数提供了用于HX711通信的延迟。
    • HX711_Read 函数从HX711模块读取数据。
    • Get_Maopi 函数用于测量皮重(没有负载的容器的重量)。
  3. OLED显示:

    • OLED显示器使用 “oled.h” 文件中的函数进行初始化。
    • OLED_ClearOLED_ShowString 等显示函数用于更新OLED屏幕上的信息。
  4. 按键输入处理:

    • 两个按钮(key_01key_02)用于用户输入。KeySscan 函数扫描这些按钮并根据按下的按钮返回一个值。
  5. 主循环:

    • 主循环持续监视按键状态并相应地执行操作。
    • 它读取超声波距离,在OLED上显示它,并基于HX711读数计算和显示重量。
    • 当按下键时,调用 Get_Maopi 函数进行皮重校准。
    • 代码包括针对重量超过一定限制的错误处理(Flag_Error)。
  6. 其他:

    • 有一些用于存储重量值、标志和其他参数的全局变量。
    • 代码使用 sprintf 格式化字符串以在OLED上显示。
    • 使用简单的延迟函数 (delay_ms) 以创建程序中的延迟。

猜你喜欢

转载自blog.csdn.net/x1131230123/article/details/135048482