全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > LED照明 >

基于51单片机的HX711传感器电子秤设计方案

时间:2023-08-22 14:46

人气:

作者:admin

标签: 基于    单片机  HX711  传感 

导读:基于51单片机的HX711传感器电子秤设计方案-使用LCD1602显示相关信息,HX711传感器测试物体重量...

使用LCD1602显示相关信息,HX711传感器测试物体重量,

通过按键输入对应数值、有删除键、去皮、价格清零、超重警报等功能

部分程序:

#include //调用单片机头文件

#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255

#define uint unsigned int //无符号整型 宏定义 变量范围0~65535

#define ulong unsigned long

#include

uchar code table_num[]="0123456789abcdefg";

sbit rs=P1^0; //寄存器选择信号 H:数据寄存器 L:指令寄存器

sbit rw=P1^1; //寄存器选择信号 H:数据寄存器 L:指令寄存器

sbit e =P1^2; //片选信号 下降沿触发

sbit hx711_dout=P2^1;

sbit hx711_sck=P2^0;

sbit beep = P1^3; //蜂鸣器

long weight;

uint temp,qi_weight;

bit chaozhong_flag;

bit leiji_flag;

bit flag_300ms ;

ulong price,z_price; //单价 总价

uchar flag_p;

/***************

删除键

去皮

价格清零

***************/

/ 1ms延时函数12M晶振 ***********/

void delay_1ms(uint q)

{

uint i,j;

for(i=0;i

for(j=0;j<120;j++);

}

/********************************************************************

  • 名称 : delay_uint()
  • 功能 : 小延时。
  • 输入 : 无
  • 输出 : 无

***********************************************************************/

void delay_uint(uint q)

{

while(q--);

}

/********************************************************************

  • 名称 : write_com(uchar com)
  • 功能 : 1602命令函数
  • 输入 : 输入的命令值
  • 输出 : 无

***********************************************************************/

void write_com(uchar com)

{

e=0;

rs=0;

rw=0;

P0=com;

delay_uint(3);

e=1;

delay_uint(25);

e=0;

}

/********************************************************************

  • 名称 : write_data(uchar dat)
  • 功能 : 1602写数据函数
  • 输入 : 需要写入1602的数据
  • 输出 : 无

***********************************************************************/

void write_data(uchar dat)

{

e=0;

rs=1;

rw=0;

P0=dat;

delay_uint(3);

e=1;

delay_uint(25);

e=0;

}

/ lcd1602上显示这字符函数 */

void write_string(uchar hang,uchar add,uchar *p)

{

if(hang==1)

write_com(0x80+add);

else

write_com(0x80+0x40+add);

while(1)

{

if(*p == '�') break;

write_data(*p);

p++;

}

}

/ lcd1602初始化设置 */

void init_1602() //lcd1602初始化设置

{

write_com(0x38); //

write_com(0x0c);

write_com(0x06);

delay_uint(1000);

}

////////////////在指定位置显示指定字符//////////

void write_zifu(uchar hang,uchar add,uchar dat)

{

if(hang==1)

write_com(0x80+add);

else

write_com(0x80+0x40+add);

write_data(dat);

}

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信