标题:
制作电子秤HX711+LCD1602 附单片机源码
[打印本页]
作者:
球子蛞
时间:
2018-5-18 15:14
标题:
制作电子秤HX711+LCD1602 附单片机源码
自己花了五六天做的一个电子秤,没有包装有点丑,它能精确到1g,超5KG报警,能设置单价幷显示出总价,A键为去皮键,B键为单价清零键。
617343730025645387.jpg
(131.87 KB, 下载次数: 58)
下载附件
电子秤HX711+LCD1602
2018-5-18 14:55 上传
部分代码如下:
#include<reg52.h>
#include<intrins.h>
#define KV P1
#define LCD P0
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit HX711_SDA=P2^0; //HX711转换数据端
sbit HX711_SCK=P2^1; //HX711时钟端
sbit LCD1602_E=P2^4; //LCD1602液晶使能端
sbit LCD1602_RS=P2^5; //LCD1602液晶命令数据端
sbit LCD1602_RW=P2^6; //LCD1602液晶数据读写端
sbit buzzer=P2^7; //蜂鸣器管脚
ulong weight;
ulong qupi=0;
volatile uint keyvalue;
volatile uint price=0;
volatile ulong money=0;
uchar W=0; //检测标志
uchar temp1;
uchar temp2;
uchar Moni=0; //检测标志
uchar dat[4]; //缓存数据数组
uchar code desk[]="W:0.000kg P:00.0Money:000.0 "; //显示内容初始化
void delay_us() //延时us
{
_nop_();
_nop_();
}
void delay_ms(uint k) //延时ms
{
uint i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--);
}
unsigned long Read_HX711(void)
{
unsigned long Count;
unsigned char i;
HX711_SDA=1;
delay_us();
HX711_SCK=0; //使能AD(PD_SCL 置低)
Count=0;
while(HX711_SDA); //AD转换未结束则等待,否则开始读取
for (i = 0; i < 24; i++)
{
HX711_SCK = 1; //PD_SCL 置高(发送脉冲)
Count=Count<<1; //下降沿来时变量Count左移一位,右侧补零
HX711_SCK =0; //PD_SCL 置低
if(HX711_SDA)
Count++;
}
HX711_SCK = 1;
Count=Count^0x800000;//第25个脉冲下降沿来时,转换数据
delay_us();
HX711_SCK = 0;
return (Count);
}
复制代码
下载:
电子秤(1602).zip
(29.7 KB, 下载次数: 265)
2018-5-18 15:12 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
1520995945
时间:
2018-6-9 12:05
?能加我QQ教教我吗 1520995945
作者:
北鱼x
时间:
2018-7-14 17:00
你好,你的程序是全的吗
作者:
lcd1314007
时间:
2018-7-16 12:14
谢谢收获很多
作者:
jhczy
时间:
2018-7-16 16:19
程序好像不完整吧
作者:
奥特曼的蛋
时间:
2019-1-2 14:06
厉害,还行吧
作者:
jhjhhiugi
时间:
2019-1-3 15:38
为什么你的uvproj是空的你
作者:
tututu111
时间:
2019-1-3 17:40
极积参加,相互学习,共同提高.
作者:
972803100
时间:
2021-4-23 20:45
极积参加,相互学习,共同提高.
作者:
litxyz
时间:
2021-5-21 00:23
请问此程序怎么写称重识别到小数点后0.1g或0.01g读数?(可以不准确,但想知道)
看到此贴,知道的坛友帮忙解答看看,谢谢。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1