完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
基于51单片机的电子秤
前言 电子秤是将检测与转换威廉希尔官方网站 、计算机威廉希尔官方网站 、信息处理、数字威廉希尔官方网站 等威廉希尔官方网站 综合一体的现代新型称重仪器。它与我们日常生活紧密结合息息相关。电子称主要以单片机作为中心控制单元,通过称重传感器进行模数转换单元,在配以键盘、显示电路及强大软件来组成。电子称不但计量准确、快速方便,更重要的自动称重、数字显示,对人们生活的影响越来越大,广受欢迎。 准备 材料 Proteus8绘图软件 keil uv4软件 stc-isp烧录软件 硬件设计 硬件设计框图 原理图设计 软件设计 软件设计框图 源码 main.c主程序 #include “main.h” #include “HX711.h” /共阴数码管段选/ unsigned char table[22]={0x3F,0x06,0x5B,0x4F,0x66, 0x6D,0x7D,0x07,0x7F,0x6F, 0x77,0x7C,0x39,0x5E,0x79,0x71, 0x40,0x38,0x76,0x00,0xff,0x37};//‘-’,L,H,灭,全亮,n 16-21 float m__1=3.50; //调整值 unsigned long HX711_Buffer = 0; unsigned int Weight_Maopi = 0,Weight_Shiwu = 0; char Price_Count = 0; unsigned char KEY_NUM = 0,j=0; unsigned char Price_Buffer[3] = {0x00,0x00,0x00}; unsigned long Money = 0; bit Flag_OK = 0; void delay(unsigned int ms) { unsigned char x; for(ms;ms》0;ms--) for(x=10;x》0;x--); } void display()//显示重量 单位g { w1=0;P0=table[Weight_Shiwu/1000];delay(10); //第1位 P0=0x00;w1=1;delay(1); w2=0;P0=table[Weight_Shiwu%1000/100];delay(10);//第2位 P0=0x00;w2=1;delay(1); w3=0;P0=table[Weight_Shiwu%100/10]; delay(10);//第3位 P0=0x00;w3=1;delay(1); w4=0;P0=table[Weight_Shiwu%10];delay(10);//第4位 P0=0x00;w4=1;delay(1); } //主函数 void main() { Get_Maopi(); //称毛皮重量 while(1) { if( Flag_OK == 0) { Get_Weight(); //称重 for(j=0;j《100;j++)display();//显示重量 单位g //显示当前重量 } if(key1==0) { delay(10); if(key1==0) //消抖 { while(!key1); Get_Maopi(); //去皮 } } if(key2==0) { delay(10); if(key2==0) //消抖 { while(!key2); // 微调重量- m__1=m__1+0.10; if(m__1》=5.10)m__1=5.00; } } if(key3==0) delay(10); if(key3==0) //消抖 { while(!key3); // 微调重量+ m__1=m__1-0.10; if(m__1《=1.10)m__1=2.50; } } } } //称重 void Get_Weight() { HX711_Buffer = HX711_Read(); HX711_Buffer = HX711_Buffer/100; if(HX711_Buffer 》 Weight_Maopi) { Weight_Shiwu = HX711_Buffer; Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //获取实物的AD采样数值。 Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/m__1+0.05); //计算实物的实际重量 //因为不同的传感器特性曲线不一样,因此,每一个传感器需要矫正这里的4.30这个除数。 //当发现测试出来的重量偏大时,增加该数值。 //如果测试出来的重量偏小时,减小改数值。 //该数值一般在4.0-5.0之间。因传感器不同而定。 //+0.05是为了四舍五入百分位 Buzzer = 1; //关闭警报 } // else if(HX711_Buffer 《 Weight_Maopi - 30) // { // Buzzer = 0; //负重量报警 // } // else if(HX711_Buffer 》 Weight_Maopi + 24970) //大于5Kg的最大量程,报警 // { // Buzzer = 0; // } if(Weight_Shiwu 》 5000 ) { Buzzer = 0; } else { Buzzer = 1; } if(Weight_Shiwu 《 5)Weight_Shiwu=0; } //获取毛皮重量 void Get_Maopi() { HX711_Buffer = HX711_Read(); Weight_Maopi = HX711_Buffer/100; } 实物和工艺 焊接实物图 操作演示 没有上传视频,等哪天上传了,再放! |
|
|
|
只有小组成员才能发言,加入小组>>
2588 浏览 0 评论
783浏览 1评论
548浏览 0评论
294浏览 0评论
495浏览 0评论
215浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 18:25 , Processed in 1.253787 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号