基于STM32f103的电子秤系统设计

news/2024/12/14 22:53:34/

许久前整理的一项课程设计,具备以下资源:

1.论文:25页,近9000字

2.程序:Keil5源程序

3.实物:实测可用

软件程序上传在百度网盘,请自行下载:

链接:https://pan.baidu.com/s/1HFRLvQPg-r9QLtAxO0SUiQ?pwd=ibfb 
提取码:ibfb

如需要本文更多相关资料,请关注VX公众号:Rain21321

发送:获取基于STM32f103的电子秤系统设计更多资源

(1)论文部分内容:

基于STM32f103电子秤系统设计

摘要

        称重技术自古以来就备受人们重视,作为一种计量手段,它广泛应用于各个领域。随着技术水平的飞速发展,科研实力的快速提升,将称重技术与电子技术相结合的产物——电子衡器横空出世。作为一种无处不在的现代新型称重仪器,它能帮助我们精确测量物体重量并将其显现出来,与我们日常生活息息相关。

        电子秤将检测与转换技术、计算机技术、信息处理、数字技术等技术综合为一体,主要以单片机作为中心控制单元,通过称重传感器进行模数转换单元,再配以按键、显示电路等。其不但计量准确,而且快速方便,日益增加的功能诸如自动称重、数字显示等也对人们生活的影响越来越大,广受欢迎。

        本次课程设计的基于STM32f103的电子秤系统主要从系统整体设计、硬件电路设计,系统软件设计,三部分进行详细阐述。硬件电路设计主要是基于嵌入式STM32f103为核心的控制单元来实现数据的处理,采用压力传感器对数据进行采集,使用电子秤专用24位AD转换芯片HX711对传感器采集到的模拟量进行AD转换,转换后的数据送到STM32f103进行处理显示,数据显示由LCD1602液晶实现,通过按键实现功能的选择,并且加入了LED闪烁和蜂鸣器报警等。

        本次课程设计的电子秤反应灵敏、准确度高、显示直观、性能稳定,、操作简单、价格低廉,满足基本需求,并且具有较好的标定校准方法。

关键词: STM32f103;压力传感器;电子秤;HX711



二、系统整体设计方案

2.1电子秤系统总体框架设计

本次设计中使用压力传感器采集物体重量的变化,通过专为高精度电子秤而设计的24位A/D转换器芯片HX711芯片实现A/D转换,再将数据送给STM32f103芯片处理;采用LCD1602液晶显示物体重量等信息;LED灯和蜂鸣器实现超量程报警功能;通过3个键盘输入装置控制电子秤功能的实现,使电子秤实现称重、去皮、校准的功能。

系统总体框架设计的结构简如图2-1所示:

图2-1:系统设计的结构简图


(2)部分软件程序:

1.#include <stm32f10x.h>  
2.#include "delay.h"  
3.#include "led.h"  
4.#include "lcd1602.h"  
5.#include "buzzer.h"  
6.#include "rtc.h"   
7.#include "usart.h"    
8.#include "stmflash.h"  
9.#include "IOin.h"  
10.#include "IOout.h"  
11.#include "hx711.h"  
12.#include "esp8266.h"  
13.#include "key_s.h"  
14.  
15.u8 setRTC=0;  
16.  
17.#define LEN 3  
18.u16 eep[LEN];  
19.#define weight_mg_L eep[1]  
20.  
21.u16 weight_mg=0;
22.int main(void)  
23.{                    
24.    u8 key;  
25.    u16 cnt = 0;  
26.    u8 refresh = 1;   
27.    u8 set=0;  
28.         
29.    Stm32_Clock_Init(9); 
30.    delay_Init(72);       
31.    uart_init(72,9600);     
32.    LCD_Init();   
33.    LED_Init();          
34.    Buzzer_Init();  
35.    KEY_Init();  
36.      
37.    LCD_Clear();  
38.    LCD_GotoXY(0,0);  
39.    LCD_Print("HX711 init...   ");        
40.    HX711_Init();  
41.    Beep(200);   
42.  
43.    Flash_Read(eep,LEN);  
44.    GapValue = eep[0];  
45.//-----------------------------------------------------------      
46.    if(Calib_HX711())  
47.    {  
48.        eep[0] = GapValue;  
49.        Flash_Write(eep,LEN);  
50.    }          
51.//-----------------------------------------------------------       
52.    
53.    printf("usart send OK!\r\n\r\n");  
54.    LCD_GotoXY(0,0);  
55.    LCD_Print("PRESS :000`000g ");  
56.    LCD_GotoXY(0,1);  
57.    LCD_Print("LIMIT :000`000g ");  
58.      
59.    while(1)  
60.    {  
61.        delay_ms(1);  
62.        cnt++;             
63.        if(cnt>200)  
64.        {  
65.            cnt = 0;  
66.            LED = !LED;  
67.        key = (KeyScan(0));  
68.        if(key)  
69.        {  
70.            Beep(100);  
71.            //Play_Voice(33);  
72.            refresh = 1;  
73.            if(key==3)  
74.            {  
75.                set++;  
76.                if(set>2)  
77.                {  
78.                    set = 0;  
79.                    Flash_Write(eep,LEN);  
80.                }  
81.                  
82.            }  
83.            else if(key==1)  
84.            {  
85.                if(set==1)  
86.                {  
87.            buzzer = 0;  
88.              
89.            if(set==0)weight_mg = Get_Weight();  
90.            refresh = 1;  
91.            sendAPP();   
92.            if(set==0)  
93.            {  
94.                if(weight_mg >= weight_mg_L)buzzer = LED;//0ÓÐЧ  
95.                if(Weight_Err)buzzer = LED;  
96.            }  
97.                
98.              
99.        }  
100.          
101.                    weight_mg_L+=1000;  
102.                }  
103.                else if(set==2)  
104.                {  
105.                    weight_mg_L++;  
106.                }  
107.            }  
108.            else if(key==2)  
109.            {  
110.                if(set==1)  
111.                {  
112.                    if(weight_mg_L>=1000)weight_mg_L-=1000;  
113.                    else weight_mg_L = 0;  
114.                }  
115.                if(set==2)  
116.                {  
117.                    if(weight_mg_L>0)weight_mg_L--;  
118.                }                  
119.            }  
120.  
121.        }  
122.        if(refresh)  
123.        {  
124.            refresh = 0;  
125.            LCD_GotoXY(0x7,0);  
126.            if(Weight_Err)LCD_WrDat('-');else  
127.            LCD_WrNUM(weight_mg/100000%10);          
128.            LCD_WrNUM(weight_mg/10000%10);  
129.            LCD_WrNUM(weight_mg/1000%10);  
130.            LCD_GotoXY(0xb,0);  LCD_WrNUM(weight_mg/100%10);


(3)实物图:

希望这篇文章能够对您有所帮助。

如有错误、疑问和侵权,欢迎评论留言联系作者。VX公众号Rain21321 

砰砰恰!!!

http://www.ppmy.cn/news/244748.html

相关文章

uniapp连接蓝牙电子秤

uniapp连接蓝牙电子秤&#xff08;一&#xff09; 可查阅文档微信 uniapp 一&#xff0c;蓝牙电子秤 最近公司有这么个需求&#xff0c;电子秤和小程序进行对接&#xff0c;实现实时监听电子秤的数据&#xff0c;对于这块的需求它的限制有些高&#xff0c;必须是低功耗蓝牙而且…

基于Arduino的蓝牙电子秤

2022.3——2022.5课设项目&#xff0c;电子小白入门作品 目录 一、各模块使用 LCD1602模块 矩阵按键模块 HC—05蓝牙模块 二、待改进之处 LCD1602模块 在项目后期使用IIC&#xff0c;省去了连一堆杜邦线的麻烦事。主要可操作的地方在于设置光标位置&#xff0c;清除功能…

基于51单片机的简易电子秤

首先看看题目要求&#xff1a; 1.方案论证 &#xff08;1&#xff09;压力传感器的论证与选择 方案一&#xff1a;采用惠更斯电桥&#xff0c;当电阻应变片承受载荷产生变形时&#xff0c;其阻值将发生变化。从而使电桥失去平衡&#xff0c;产生相应的差动信号&#xff0c;但…

电子秤c语言编程,基于AT89C51的数字电子秤的设计最终版(样例3)

《基于AT89C51的数字电子秤的设计.doc》由会员分享,可免费在线阅读全文,更多与《基于AT89C51的数字电子秤的设计(最终版)》相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索。 1、defineucharunsignedchardefineuintunsignedintsbitADCS=P^;sbitADDI=P^;sbitADD…

梅特勒托利多xk3124电子秤说明书_托利多电子秤详细说明书

个人收集整理 -ZQ 1 / 5 对于一台新条码秤,需要做以下工作 . 一、在秤上操作 、 格式化 开机后依次按 “ 代码 ”→“” →“*” , (屏幕显示-) ,输入 “” →“*” (屏幕显示 ) , → (屏幕显示 ) →“*” , 条码秤初始化后自动重启即可 . 注:此操作将条码秤中地数据、格…

基于Arduino的电子秤设计

设计背景 电子秤是一种较为方便&#xff0c;简单&#xff0c;称量精确的仪器。与日常生活中各个行业息息相关&#xff0c;广泛应用于各种商业&#xff0c;市场及零售业等公共场所。本设计是结合了传感器&#xff0c;基于Ardunio和HX711的多功能电子秤的设计。在Arduino平台&am…

基于51单片机的电子秤设计

摘要 电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。它与我们日常生活紧密结合息息相关。 电子称主要以单片机作为中心控制单元&#xff0c;通过称重传感器进行模数转换单元&#xff0c;在配以键盘、显示电路及强大软件来组成。…

基于单片机的智能电子秤系统设计(#0507)

电子秤是称重技术中的一种新型仪表&#xff0c;广泛应用于各种场合。电子秤与机械秤比较有体积小、重量轻、结构简单、价格低、实用价值强、维护方便等特点&#xff0c;可在各种环境工作&#xff0c;重量信号可远传&#xff0c;易于实现重量显示数字化&#xff0c;易于与计算机…