电子秤stm32程序

合集下载

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

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

基于STM32F1单片机的电子秤的设计1.本文概述随着技术的进步和电子技术的普及,电子秤已成为日常生活和工业生产中不可或缺的工具。

与传统的机械秤相比,电子秤具有更高的测量精度、更强的功能性和更广泛的应用范围。

本文旨在设计一种基于STM32F1单片机的电子秤。

该设计不仅专注于电子秤的称重和单位转换等基本功能,而且通过使用STM32F1微控制器,赋予电子秤更智能的功能,如数据存储、传输和用户界面交互。

文章首先介绍了STM32F1单片机的特点和适用性,然后详细阐述了电子秤的设计原理、硬件选择和软件实现。

本文还包括对系统的测试结果和分析,以验证设计的有效性和可靠性。

通过本文的研究和设计,有望为电子秤领域提供一种创新实用的解决方案。

2.系统设计原则在这种电子秤的设计中,STM32F1微控制器作为核心控制器,其重要性体现在以下几个方面:处理能力:STM32F1系列微控制器基于ARM CortexM3内核,具有强大的处理能力和高效的能耗比。

其最大工作频率可达72MHz,足以处理电子秤所需的复杂计算和数据传输任务。

集成:该系列微控制器集成了丰富的外围接口,如ADC(模数转换器)、UART(通用异步收发器)、I2C(集成电路总线)等。

这些接口对电子秤的设计至关重要。

稳定性和可靠性:STM32F1微控制器具有优异的抗干扰能力和稳定性,适用于工业应用,确保了电子秤在复杂环境中的准确性和可靠性。

电子秤的核心部件是传感器,用于将物体的重量转换为电信号。

在该设计中,选择了压力传感器作为主要测量元件。

传感器的工作原理是基于弹性变形。

当物体受到压力时,传感器内部的电阻应变计变形,从而改变电阻值并通过惠斯通电桥将其转换为电压信号。

信号放大和滤波:传感器输出的模拟信号通常较弱,需要通过信号放大器进行放大。

为了提高信号质量,设计了滤波电路来去除噪声,保证信号的准确性。

模数转换:通过STM32F1微控制器内置的ADC将放大后的模拟信号转换为数字信号,使微控制器易于处理和计算。

电子行业电子秤stm32程序

电子行业电子秤stm32程序

电子行业电子秤stm32程序1. 引言电子行业中常用的电子秤是一种电子计量设备,广泛应用于商场超市、物流仓储、餐饮行业等场所。

它能够准确地测量物体的重量,并将结果以数字显示出来。

本文将介绍使用STM32微控制器编写的电子秤程序。

2. STM32微控制器概述STM32是意法半导体(STMicroelectronics)推出的一系列32位RISC微控制器。

它基于ARM Cortex-M内核,并且拥有丰富的外设接口和功能,适用于各种应用领域。

在电子秤中使用STM32微控制器能够提供较高的计算性能和稳定性。

3. 电子秤原理电子秤通过测量物体所产生的压力或弯曲来测量其重量。

一般来说,电子秤由称重传感器、模拟信号处理电路和数字显示及控制电路组成。

•称重传感器:称重传感器主要用于测量物体施加在秤盘上的压力或弯曲量,并将其转化为电信号。

•模拟信号处理电路:模拟信号处理电路对传感器输出的电信号进行放大、滤波和线性化处理。

•数字显示及控制电路:数字显示及控制电路接收模拟信号处理电路的输出,并将其转换为数字量,最终在显示屏上显示出来。

4. STM32电子秤程序设计4.1 硬件配置在设计STM32电子秤程序之前,需要先进行硬件配置。

以下是常见的硬件配置方案:•使用STM32微控制器:选择一款适合应用的STM32微控制器。

•连接称重传感器:将称重传感器与STM32微控制器连接,通常使用模拟输入通道接收传感器的电信号。

•连接数字显示屏:选择合适的数字显示屏,并将其与STM32微控制器连接,通常使用串行通信方式。

•添加按键和LED指示灯:加入按键和LED指示灯模块,用于用户操作和状态指示。

4.2 软件开发在进行软件开发之前,需要先搭建好开发环境,包括安装相应的开发工具和配置环境参数。

以下是常用的软件开发步骤:•创建工程:在开发工具中创建一个新的STM32工程。

•配置时钟系统:根据具体的硬件配置,配置STM32的时钟系统,确保系统运行稳定。

基于STM32的多功能电子秤

基于STM32的多功能电子秤

2012年电子设计大赛黑龙江科技大学题目名称:多功能电子计价秤制作参赛队员:张城照黄力修陈高禹院系:电气与信息工程学院摘要:智能电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。

它与我们日常生活紧密结合成为一种方便、快捷、称量精确的工具,广泛应用于商业、工厂生厂、集贸市场、超市、大型商场、及零售业等公共场所的信息显示和重量计算。

本作品使用STM32单片机作为中心控制单元,通过称重传感器采集质量信息,以HX711进行模数转换单元,在配以TFT液晶显示和触摸屏控制,及WT588D进行语音播报组成。

该电子称不但计量准确、快速方便,更重要的自动称重、计价功能外,还可实现去皮、净/毛转,自动计算,数字显示,语音播报,显示实时温度,实时时间。

本系统是针对是电子称的自动称重、自动计价、数据处理,语音播报进行研究的。

为了阐明用单片机是如何对采样数据进行处理,对数据的采集和转换、计算问题进行了研究。

讨论了单片机控制系统中关键的中断、计算问题,结果表明通过软件设计实现更完善。

本文在给出智能电子称硬件设计的基础上,详细分析了电子称的软件控制方法。

由于单片机控制的电子称结构简单,成本低廉,深受人们的喜爱,本文将对此进行详细讨论关键字:电子秤;STM32;称重传感器;HX711; TFT液晶屏幕;WT588DAbstract:Intelligent electronic balance values detection and the modern new-type names of technical com prehensive one body such as conversion technical, computer technology, message handling and d igital technology instrument. Its and our close combination of daily life becomes a kind of conveni ent, shortcut, weighing accurate tool , is applied extensively in commercial, factory raw factory , g athers trade market, supermarket and large scale market , the message of the etc. public place of retail trade shows and weight calculation.Intelligent electronic name passes through name mainly with STM32 as central control unit, value sensor to carry out modulus conversion unit , it is matching with keyboard , show by TFTand powerful software to form. It is accurate that this electron claims to not only measure , fast c onvenience, more important automatic name may still realize besides heavy, valuation function t o remove the peel , completely / hair turns , calculate voluntarily, figure shows , is welcomed by masses of user. Intelligent electronic name since carry convenience.This system aims at is the automatic name of electronic name heavy, automatic valuation and dat a handling carry out research. To expound to use single flat machine , it is to how to carry out han dling for sampling data , is for the collection of data and conversion and calculation problem has s tudied. Have discussed the suspension of the key in single flat machine control system , calculate problem , show as a result that through software design, realization is perfected more. This text is weighing the foundation of hardware design to intelligent electron , has analysed the software c ontrol method of electronic name in detail. Since the electron of single flat machine control weig hs structure, is simple, cost is cheap, receive deeply people like , this text will carry out detailed di scussion for this.Key words:Intelligent and electronic to scale; Single flat machine 89c52; Weigh heavy sensor; LED shows题目要求:1.基本部分:(1)能用键盘设置单价,称重后能同时显示重量、单价和总额;电子计价秤:最大称重为10.000公斤,重量误差不大于±0.1%;(2)具有TFT液晶屏显示,显示重量、单价、总额等信息。

基于STM32和HX710A的简易电子秤

基于STM32和HX710A的简易电子秤

基于STM32和HX710A的简易电子秤本系统设计以24位A/D转换芯片HX710A和STM32F103系列单片机为核心,由称重传感器模块、A/D采样模块、可控精密稳压源、显示模块等电路模块组成,设计了一款高精度的简易电子秤。

本文介绍了系统的硬件电路组成以及软件的设计流程。

系统通过称重传感器和24位的HX710A转换器实现对重量的高精度测量,此设计集微处理技术、传感器技术和数字显示技术等于一体,具有稳定性强、成本低、便捷性好等优点。

系统可以实现称重数据显示、在设计要求范围内达到一定的精确度、设置单价并进行金额累加和去皮等功能。

设计一款简易电子秤,对未来的发展有积极地促进作用。

在现实生活中,电子秤可以為人们的生活带来便利,并具有广泛的应用价值和推广意义。

标签:称重传感器;应变电桥;A/D转换;单片机;电子秤电子秤是集现代传感器技术、电子技术和计算机技术于一体的电子称量装置,具有快速、直观、精度高、操作简单、多功能等称量装备,具有快速、直观、精度高、操作简单、多功能等优点,与传统的机械秤相比更符合计量管理和工业生产过程控制要求。

国内从20世纪60年代中期开始模拟指针式电子秤三个阶段。

总体而言,电子秤的发展呈现出小型化、智能化和模块化的特点。

1.总体方案设计电子秤的工作原理是将作用在承载器上的质量或力的大小,通过称重传感器转换为与之成正比的电信号,并且以模拟或数字量的形式在称重仪表上显示出来。

方案一:系统由称重传感器、弱信号放大和滤波、高精度A/D转换器、MCU 和显示器组成,其系统组成框图如图l所示。

系统由称重传感器电路、高精度A/D采样电路、显示电路等电路模块组成。

2.硬件电路设计2.1电阻应变片组成电桥电路惠斯顿电桥,如果电阻为电阻应变片,则称为电阻应变电桥,目的是将应变片电阻值的变化量转换为电压变化量来方便测量。

实际工作中,采用同型号的应变片接人惠斯顿电桥四臂,称为全桥结构,在应变为0的初始状态下,电桥平衡,没有输出电压;在应变片承受应变时,电桥失去平衡,有输出电压。

基于单片机的智能电子秤设计

基于单片机的智能电子秤设计

基于单片机的智能电子秤设计随着科技的不断发展,智能化和自动化已经成为我们生活中不可或缺的一部分。

在众多领域中,智能电子秤的设计与应用也越来越受到。

本文将介绍一种基于单片机的智能电子秤设计方案,该设计具有高精度、低成本、易于实现等优点,具有一定的实用价值。

一、概述智能电子秤是一种能够自动测量物体重量的设备,广泛应用于超市、菜市场等场所。

与传统的机械秤相比,智能电子秤具有测量精度高、使用方便、易于维护等优点。

而基于单片机的智能电子秤设计,更是将智能化和自动化技术融入到电子秤中,提高了设备的性能和可靠性。

二、设计原理基于单片机的智能电子秤设计主要是利用单片机的控制和数据处理能力,实现对物体重量的准确测量。

其核心部件为压力传感器和单片机。

压力传感器负责采集物体的重量信号,并将信号传输给单片机;单片机则对信号进行处理、分析和存储,同时控制显示屏显示物体的重量。

三、硬件设计1、单片机选择单片机是智能电子秤的核心部件,负责控制整个系统的运行。

本设计选用AT89C51单片机,该单片机具有低功耗、高性能、易于编程等优点,能够满足智能电子秤的设计要求。

2、压力传感器选择压力传感器是智能电子秤的重要组成部件,负责采集物体的重量信号。

本设计选用电阻应变式压力传感器,该传感器具有测量精度高、稳定性好、抗干扰能力强等优点。

3、显示模块选择显示模块负责将物体的重量信息呈现给用户。

本设计选用LED显示屏,该显示屏具有亮度高、视角广、寿命长等优点。

4、电源模块选择电源模块为整个系统提供稳定的电源,保证系统的正常运行。

本设计选用线性稳压电源,该电源具有输出电压稳定、纹波小、安全性高等优点。

四、软件设计软件设计是智能电子秤的关键部分之一,直接影响设备的性能和可靠性。

本设计的软件部分采用C语言编写,主要包括数据采集、数据处理、数据显示等模块。

具体流程如下:1、开机后,系统进行初始化操作;2、压力传感器采集物体的重量信号;3、单片机对采集到的信号进行处理和分析;4、单片机将处理后的数据存储到存储器中;5、单片机控制LED显示屏显示物体的重量信息;6、系统继续等待下一次测量。

一种基于STM32的多功能精密电子秤

一种基于STM32的多功能精密电子秤

一种基于STM32的多功能精密电子秤
近年来,随着电子技术的发展和微处理器的普及,电子秤已经走向了一个新的发展阶段。

在这个过程中,基于STM32的多
功能精密电子秤应运而生。

STM32是意法半导体公司推出的一款支持ARM内核的微控制器。

它集成了高性能、低功耗、广泛的应用领域和丰富的外设资源等特点。

基于STM32的电子秤可以满足广大消费者的需求,具有测量精度高,数据读取速度快,稳定性好,可靠性强,易于操作等特点。

这种电子秤不仅具有通常电子秤的测量功能,还具有多个附加功能。

例如,它可以实现自动扣重、自动关机、计重功能、加法计算、总重计算等。

这些功能可以大大提高操作效率和时间,也可以更满足不同用户的需求。

在硬件方面,这种电子秤采用高质量的传感器和微处理器,以确保其测量精度和可信度。

同时,它还具有清晰的液晶屏幕和精美的外观设计,使用户在使用过程中更加方便和愉快。

除此之外,基于STM32的电子秤还具有一些其他的附加功能。

例如,它可以实现数据存储和导出,使用户可以轻松地检查测量结果。

同时,它还可以连接到计算机或其他设备进行数据传输和处理,满足复杂的数据处理需求。

在使用方面,这种电子秤也非常简便易用。

用户只需根据设备菜单选择相应的测量模式,即可开始测量。

同时,设备还具有
一些其他的用户友好功能,例如音量调整、单位转换、预设功能、打印功能等,使用户在使用过程中更加便捷和舒适。

总之,基于STM32的多功能精密电子秤是一种高性能、低功耗、易操作的电子秤,它可以满足广大消费者的需求。

引入它的技术,将会在未来的市场竞争中具有巨大的优势和潜力。

基于STM32的智能称重系统

基于STM32的智能称重系统

基于STM32的智能称重系统作者:姚广芹张岐磊来源:《中国科技纵横》2017年第07期摘要:本设计是以STM32F103RBT6单片机为控制器,电阻应变片为传感器,通过24位并集成放大的CS5530进行模数转换,配以NOKIA5110液晶显示和键盘等部分组成,该称重系统能实现自动称重、计价累计、去皮等主要功能,具有计量准确、快速方便、误差小、数字显示等优点。

关键词:STM32;应变片;CS5530;液晶中图分类号:TP273 文献标识码:A 文章编号:1671-2064(2017)07-0041-021 方案论证1.1 总体方案论证本设计硬件电路由控制器,称重传感器模块,AD转换模块,键盘和显示模块组成,结构框图如图1所示。

1.2 称重传感器部分电路称重传感器部分采用电阻式应变片,其工作原理是基于材料的电阻应变效应。

电阻应变片把机械应变信号转换为ΔR/R后,由于应变量及相应的电阻变化一般都很小,难以测量且不便处理,因此要采用转换电路把应变片的ΔR/R变化转化成电压或者电流变化,常用的转换电路为直流测量电桥。

直流电桥特点是信号不受元件和导线的分布电感和电容的影响,抗干扰能力强,电桥调节平衡电路简单,直流电源(+5V)在系统中比较方便。

直流电桥输出的信号较小,有必要做放大处理。

1.3 信号处理部分由于直流电桥输出的电压信号只有0-30mV,所以需要用高增益、高稳定性的放大器进行放大,再经过AD转换后送给单片机。

选用放大电路与AD转换集成的芯片,可以简化硬件电路,提高抗干扰能力和精度。

CS5530是高度集成的ΔΣ模数转换器,运用电荷平衡技术,性能达24位,非常适合称重衡器、过程控制、科学和医疗应用领域的单极性或双极性小信号测量。

内部集成64倍放大器、数字滤波器、可选的50/60Hz频率抑制以及40倍的可控增益等信号调理电路。

1.4 键盘和显示部分按键采用4*4矩阵按键,功能丰富,节约端口。

液晶显示功耗低,界面清晰,显示信息丰富,NOKIA5110采用串行通信,接口电路简单,字符汉字均能显示,速度快,具有掉电模式,适合便携式的设备。

电子秤stm32程序

电子秤stm32程序

电子秤s t m32程序(总8页) -CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除#include ""#include ""#include ""#include ""#include ""#include ""#include ""#include ""#include ""int main(void){u8 num,flag;float vol1;delay_init();uart_init(9600);LED_Init();LCD_Init();Adc_Init();KEY_Init();HX711_Init();POINT_COLOR=RED;HZ_show();LCD_ShowString(54+25,55,200,24,16,":");便查看LCD驱动IC.{LCD_WriteReg(0x00,0x0000);LCD_WriteReg(0x01,0x0100);LCD_WriteReg(0x02,0x0700);LCD_WriteReg(0x03,0x1030);LCD_WriteReg(0x04,0x0000);LCD_WriteReg(0x08,0x0202); 0x0207)LCD_WriteReg(0x09,0x0000); 0x0000)LCD_WriteReg(0x0a,0x0000); 0x0000)LCD_WriteReg(0x0c,(1<<0)); 0x0000)LCD_WriteReg(0x0d,0x0000);LCD_WriteReg(0x0f,0x0000);delay_ms(50);LCD_WriteReg(0x07,0x0101); delay_ms(50);LCD_WriteReg(0x10,(1<<12)|(0<<8)|(1<<7)|(1<<6)|(0<<4));0x16b0)LCD_WriteReg(0x11,0x0007);0x0001)LCD_WriteReg(0x12,(1<<8)|(1<<4)|(0<<0));0x0138)LCD_WriteReg(0x13,0x0b00);LCD_WriteReg(0x29,0x0000);LCD_WriteReg(0x2b,(1<<14)|(1<<4));LCD_WriteReg(0x50,0);LCD_WriteReg(0x51,239); LCD_WriteReg(0x53,319);LCD_WriteReg(0x61,0x0001);LCD_WriteReg(0x6a,0x0000);LCD_WriteReg(0x80,0x0000);LCD_WriteReg(0x81,0x0000);LCD_WriteReg(0x82,0x0000);LCD_WriteReg(0x83,0x0000);LCD_WriteReg(0x84,0x0000);LCD_WriteReg(0x85,0x0000);LCD_WriteReg(0x90,(0<<7)|(16<<0)); 0x0013)LCD_WriteReg(0x92,0x0000); 0x0000)LCD_WriteReg(0x93,0x0001);LCD_WriteReg(0x95,0x0110); 0x0110)LCD_WriteReg(0x97,(0<<8));LCD_WriteReg(0x07,0x0173);LCD_WriteReg(0x0008, 0x0202); u32 LCD_Pow(u8 m,u8 n){u32 result=1;while(n--)result*=m;return result;}void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode){u8 t,temp;u8 enshow=0;for(t=0;t<len;t++){temp=(num/LCD_Pow(10,len-t-1))%10;if(enshow==0&&t<(len-1)){if(temp==0){if(mode&0X80)LCD_ShowChar(x+(size/2)*t,y,'0',size,mode&0X01);else LCD_ShowChar(x+(size/2)*t,y,'',size,mode&0X01);continue;}else enshow=1;}LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,mode&0X01);}}便查看LCD驱动IC.认为白色///////////////////////////////////////////////////////////////////// ///////////////-----------------LCD端口定义----------------#define LCD_LED PBout(0) //LCD背光 PB0//LCD地址结构体typedef struct{u16 LCD_REG;u16 LCD_RAM;} LCD_TypeDef;//使用NOR/SRAM的 ,地址位HADDR[27,26]=11 A10作为数据命令区分线//注意设置时STM32内部会右移一位对其! 111110=0X3E#define LCD_BASE ((u32)(0x6C000000 | 0x000007FE))#define LCD ((LCD_TypeDef *) LCD_BASE)///////////////////////////////////////////////////////////////////// ///////////////扫描方向定义#define L2R_U2D 0 //从左到右,从上到下#define L2R_D2U 1 //从左到右,从下到上#define R2L_U2D 2 //从右到左,从上到下#define R2L_D2U 3 //从右到左,从下到上#define U2D_L2R 4 //从上到下,从左到右#define U2D_R2L 5 //从上到下,从右到左#define D2U_L2R 6 //从下到上,从左到右#define D2U_R2L 7 //从下到上,从右到左#define DFT_SCAN_DIR L2R_U2D //默认的扫描方向//画笔颜色#define WHITE 0xFFFF#define BLACK 0x0000#define BLUE 0x001F#define BRED 0XF81F#define GRED 0XFFE0#define GBLUE 0X07FF#define RED 0xF800#define MAGENTA 0xF81F#define GREEN 0x07E0#define CYAN 0x7FFF#define YELLOW 0xFFE0#define BROWN 0XBC40 //棕色#define BRRED 0XFC07 //棕红色#define GRAY 0X8430 //灰色//GUI颜色#define DARKBLUE 0X01CF //深蓝色#define LIGHTBLUE 0X7D7C //浅蓝色#define GRAYBLUE 0X5458 //灰蓝色//以上三色为PANEL的颜色#define LIGHTGREEN 0X841F //浅绿色//#define LIGHTGRAY 0XEF5B //浅灰色(PANNEL)#define LGRAY 0XC618 //浅灰色(PANNEL),窗体背景色#define LGRAYBLUE 0XA651 //浅灰蓝色(中间层颜色)#define LBBLUE 0X2B12 //浅棕蓝色(选择条目的反色)void LCD_Init(void);//初始化void LCD_DisplayOn(void);//开显示void LCD_DisplayOff(void);//关显示void LCD_Clear(u16 Color);//清屏void LCD_SetCursor(u16 Xpos, u16 Ypos);//设置光标void LCD_DrawPoint(u16 x,u16 y);//画点void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color);//快速画点u16 LCD_ReadPoint(u16 x,u16 y);//读点void Draw_Circle(u16 x0,u16 y0,u8 r);//画圆void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2);//画线void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2);//画矩形void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color);//填充单色void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color);//填充指定颜色void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode);//显示一个字符void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size);//显示一个数字void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode);//显示数字void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p);//显示一个字符串,12/16字体void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);u16 LCD_ReadReg(u8 LCD_Reg);void LCD_WriteRAM_Prepare(void);void LCD_WriteRAM(u16 RGB_Code);void LCD_Scan_Dir(u8 dir); //设置屏扫描方向void LCD_Display_Dir(u8 dir); //设置屏幕显示方向//9320/9325 LCD寄存器#define R0 0x00#define R1 0x01#define R2 0x02#define R3 0x03#define R4 0x04#define R5 0x05#define R6 0x06#define R7 0x07#define R8 0x08#define R9 0x09#define R10 0x0A#define R12 0x0C#define R13 0x0D#define R14 0x0E#define R15 0x0F#define R17 0x11 #define R18 0x12 #define R19 0x13 #define R20 0x14 #define R21 0x15 #define R22 0x16 #define R23 0x17 #define R24 0x18 #define R25 0x19 #define R26 0x1A #define R27 0x1B #define R28 0x1C #define R29 0x1D #define R30 0x1E #define R31 0x1F #define R32 0x20 #define R33 0x21 #define R34 0x22 #define R36 0x24 #define R37 0x25 #define R40 0x28 #define R41 0x29 #define R43 0x2B #define R45 0x2D #define R48 0x30 #define R49 0x31 #define R50 0x32 #define R51 0x33 #define R52 0x34 #define R53 0x35 #define R54 0x36 #define R55 0x37 #define R56 0x38 #define R57 0x39 #define R59 0x3B #define R60 0x3C #define R61 0x3D #define R62 0x3E #define R63 0x3F #define R64 0x40 #define R65 0x41 #define R66 0x42 #define R67 0x43#define R69 0x45 #define R70 0x46 #define R71 0x47 #define R72 0x48 #define R73 0x49 #define R74 0x4A #define R75 0x4B #define R76 0x4C #define R77 0x4D #define R78 0x4E #define R79 0x4F #define R80 0x50 #define R81 0x51 #define R82 0x52 #define R83 0x53 #define R96 0x60 #define R97 0x61 #define R106 0x6A #define R118 0x76 #define R128 0x80 #define R129 0x81 #define R130 0x82 #define R131 0x83 #define R132 0x84 #define R133 0x85 #define R134 0x86 #define R135 0x87 #define R136 0x88 #define R137 0x89 #define R139 0x8B #define R140 0x8C #define R141 0x8D #define R143 0x8F #define R144 0x90 #define R145 0x91 #define R146 0x92 #define R147 0x93 #define R148 0x94 #define R149 0x95 #define R150 0x96 #define R151 0x97 #define R152 0x98 #define R153 0x99#define R157 0x9D #define R192 0xC0 #define R193 0xC1 #define R229 0xE5#endif。

基于STM32的智能称重控制系统的设计

基于STM32的智能称重控制系统的设计
优势,基于单片机 STM32 的智能称重控制系统,设计了行之有效的软硬件系统,研究结果对
于称重行业的不断变革具有重要的研究价值。
[ 关键词 ]
STM32 ;智能称重系统 ;优化设计
[中图分类号] TH715.1
[文献标识码] B
[文章编号] 1003-5729(2021)10-0047-05
Intellห้องสมุดไป่ตู้gent Weighing Design System Based on STM32
信息和压力限额,OLED 显示当前压力,压力额度
智能称重控制系统采用 HX711 模块,进行重
以及位置,LED 灯指示称重系统运行的方向,每
量检测;采用 5V 的四相步进电机,将称重后物品
到一个位置时蜂鸣器提示已到达当前位置,当重
送到指定位置,并且配备有状态指示灯,方便显
量超过压力传感器限制额度时,蜂鸣器报警提示
本次设计利用 5V 四相步进电机设计传送系统,步



图2
智能称重控制系统硬件方案
49
Copyright©博看网. All Rights Reserved.
T
echnology Exchange 技术交流
3.2
软件方案
机驱动部分,压力传感器部分,控制系统部分,报
智能称重系统仪器软件由主程序和中断服务程
展和易于执行复杂控制,主要侧重于将基本的理
路模块和报警模块完成人机间的信息互换以及实
论知识与实际的情况相结合,同时对自身独立创
现报警提示的功能。智能称重系统的原理框图,
47
Copyright©博看网. All Rights Reserved.
T
echnology Exchange 技术交流

电子秤stm程序

电子秤stm程序

电子秤s t m程序文件管理序列号:[K8UY-K9IO69-O6M243-OL889-F88688]#i n c l u d e"l e d.h" #include"sys.h"#include"delay.h"#include"adc.h"#include"lcd.h"#include"usart.h"#include"lcdfot.h"#include"hx711.h"#include"key.h"intmain(void){u8num,flag;floatvol1;delay_init();uart_init(9600);LED_Init();LCD_Init();Adc_Init();KEY_Init();HX711_Init();POINT_COLOR=RED;HZ_show();LCD_ShowString(54+25,55,200,24,16,":000.00g");//提示信息显示LCD_ShowString(54+25,85,200,24,16,":00.00$");//提示信息显示LCD_ShowString(54+25,115,200,24,16,":000.00$");//提示信息显示LCD_ShowString(54+25,145,200,24,16,":000.00g");//提示信息显示while(1){vol1=HX711_count();if(KEY_Scan(1)==WKUP_PRES)//单价设置num的值可直接用{num++;if(num==100)num=0;LCD_ShowxNum(54+25+8,85,num,2,16,0);}if(KEY_Scan(1)==KEY0_PRES)//控制金额是否累加flag=1是累加flag=0不累加{HZ_show_moy();flag++;LED0=0;if(flag==2){LED0=1;LCD_ShowString(54+25+32+30,115,200,16,16,"");flag=0;}printf("%d",flag);}delay_ms(300);LED1=!LED1;}}#include"lcd.h"#include"lcdfot.h"u8table1[]={0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x04,0x02,0x00,0x04,0x0 2,0x00,0x24,0x0A,0xFF,0xA4,0x0A,0x7F,0x24,0x0A,0x49,0x24,0x12,0x49,0x24,0x12,0x4 9,0x24,0x12,0x49,0x24,0x1F,0xFF,0xFC,0x12,0x49,0x24,0x12,0x49,0x24,0x12,0x49,0x2 4,0x22,0x49,0x24,0x22,0x49,0x24,0x22,0xFF,0xA4,0x02,0x40,0x64,0x06,0x00,0x24,0x0 6,0x00,0x0C,0x02,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,};/*重*/u8table2[]={0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x00,0x40,0x02,0x0 0,0x40,0x12,0x3F,0xDF,0xD2,0x3F,0x52,0x92,0x25,0x52,0x92,0x25,0x52,0x92,0x25,0x5 2,0x92,0x25,0x52,0x92,0x25,0x5F,0xFC,0x25,0x5F,0xFC,0x25,0x52,0x92,0x25,0x52,0x9 2,0x25,0x52,0x92,0x25,0x52,0x92,0x3F,0x5F,0xD2,0x20,0x5F,0xB2,0x00,0x40,0x12,0x0 0,0x40,0x04,0x00,0xC0,0x04,0x00,0x40,0x00,0x00,0x00,0x00,};/*量*/u8table3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x0 0,0x00,0x40,0x03,0xFE,0x40,0x02,0x22,0x40,0x22,0x22,0x40,0x32,0x22,0x40,0x1E,0x2 2,0x40,0x02,0x22,0x40,0x03,0xFF,0xFE,0x02,0x22,0x40,0x06,0x22,0x40,0x0A,0x22,0x4 0,0x72,0x22,0x40,0x22,0x22,0x40,0x02,0x22,0x40,0x03,0xFE,0x40,0x02,0x00,0x40,0x0 0,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0x40,0x00,0x00,0x00,};/*单*/u8table4[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x60,0x00,0x0 1,0xC0,0x00,0x07,0xFF,0xFE,0x3C,0x80,0x00,0x30,0x10,0x02,0x00,0x20,0x04,0x00,0x4 0,0x08,0x00,0x80,0x18,0x03,0x3F,0xE0,0x06,0x3E,0x00,0x3C,0x00,0x00,0x30,0x00,0x0 0,0x0C,0x00,0x00,0x02,0x00,0x01,0x01,0x3F,0xFE,0x00,0x80,0x00,0x00,0xC0,0x00,0x0 0,0x60,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*价*/u8table5[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x0 1,0x08,0x08,0x01,0x08,0x0C,0x01,0x08,0x1C,0x01,0x08,0x2C,0x01,0x08,0x4C,0x01,0x0 8,0x88,0x01,0x0B,0x08,0x3F,0xFE,0x08,0x3F,0xF8,0x08,0x01,0x08,0x08,0x01,0x08,0x0 8,0x01,0x08,0x48,0x01,0x08,0x68,0x01,0x08,0x38,0x03,0x08,0x18,0x01,0x08,0x1E,0x0 0,0x18,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*去*/u8table6[]={0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x18,0x0 0,0x00,0xE2,0x07,0xFF,0x82,0x02,0x00,0x02,0x02,0x00,0x02,0x02,0x08,0x04,0x02,0x0 E,0x04,0x02,0x09,0x08,0x02,0x08,0xC8,0x7F,0xF0,0x70,0x3F,0xF0,0x30,0x02,0x08,0x7 0,0x02,0x09,0x88,0x02,0x0B,0x0C,0x02,0x0E,0x0C,0x02,0x98,0x04,0x07,0x08,0x06,0x0 6,0x00,0x06,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,};/*皮*/u8table7[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x02,0x00,0x10,0x02,0x0 0,0x21,0x02,0x00,0x41,0x82,0x00,0xC1,0x42,0x01,0x91,0x32,0x03,0x11,0x1A,0x0E,0x1 1,0x02,0x38,0x11,0x02,0x30,0x1F,0xFC,0x28,0x11,0x02,0x04,0x11,0x02,0x02,0x11,0x0 4,0x01,0x11,0x1A,0x00,0xA1,0xE2,0x00,0xD1,0x42,0x00,0x62,0x02,0x00,0x62,0x02,0x0 0,0x30,0x04,0x00,0x20,0x04,0x00,0x20,0x00,0x00,0x00,0x00,};/*金*/u8table8[]={0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x80,0x0C,0x31,0x00,0x0 4,0xD3,0xFC,0x07,0x96,0x84,0x24,0x5C,0x84,0x1C,0x58,0x84,0x04,0x68,0x84,0x05,0xC D,0xFC,0x06,0x06,0x00,0x0C,0x02,0x02,0x16,0x00,0x02,0x11,0xFF,0x84,0x11,0x00,0x0 8,0x13,0x00,0x10,0x1D,0x47,0xE0,0x11,0x3F,0x00,0x11,0x20,0x20,0x11,0x00,0x10,0x1 1,0xFF,0xD8,0x23,0xFF,0x8C,0x00,0x00,0x06,0x00,0x00,0x00,};/*额*/u8table9[]={0x00,0x00,0x00,0x01,0x7C,0x12,0x54,0x94,0x54,0x90,0x55,0xB2,0x5 6,0xB1,0x7C,0xDE,0x54,0xD0,0x54,0x90,0x55,0x14,0x54,0x32,0x7C,0x19,0x00,0x00,0x0 0,0x00,0x00,0x00,};/*累*/u8table10[]={0x08,0x01,0x08,0x02,0x08,0x0C,0xFF,0xF0,0x08,0x02,0x08,0x01,0x0 F,0xFE,0x00,0x00,0x00,0x00,0x1F,0xFE,0x10,0x04,0x10,0x04,0x10,0x04,0x1F,0xFE,0x0 0,0x00,0x00,0x00,};/*加*///显示一个汉字//u8lcdoneHZ(u8x,u8y,unsignedchar*code){u8temp,t,y0,t1;u8table[72];y0=y;POINT_COLOR=RED;for(t=0;t<72;t++){temp=*code++;for(t1=0;t1<8;t1++){if(temp&0x80)LCD_DrawPoint(x,y);temp<<=1;y++;if((y-y0)==24){y=y0;x++;break;}}}}u8lcdone16HZ(u8x,u8y,unsignedchar*code){u8temp,t,y0,t1;u8table[32];y0=y;POINT_COLOR=RED;for(t=0;t<32;t++){temp=*code++;for(t1=0;t1<8;t1++){if(temp&0x80)LCD_DrawPoint(x,y);temp<<=1;y++;if((y-y0)==16){y=y0;x++;break;}}}}voidHZ_show(void){lcdoneHZ(30,50,table1);//重量lcdoneHZ(54,50,table2);lcdoneHZ(30,80,table3);//单价lcdoneHZ(54,80,table4);lcdoneHZ(30,110,table7);//金额lcdoneHZ(54,110,table8);//金额lcdoneHZ(30,140,table5);//去皮lcdoneHZ(54,140,table6);}voidHZ_show_moy(void){lcdone16HZ(54+25+32+30,115,table9);lcdone16HZ(54+25+32+30+17,115,table10);}#ifndef__LCDFOT_H#define__LCDFOT_H#include"sys.h"u8lcdoneHZ(u8x,u8y,unsignedchar*code);//显示24位汉字u8lcdone16HZ(u8x,u8y,unsignedchar*code);//显示16位汉字voidHZ_show(void);voidHZ_show_moy(void);#endif#include"hx711.h"#include"delay.h"#include"usart.h"voidHX711_Init(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能PE 端口时钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//LED0-->PB.5端口配置GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度为50MHzGPIO_Init(GPIOA,&GPIO_InitStructure); //根据设定参数初始化GPIOB.5GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;//LED0-->PB.5端口配置GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; //上拉输入GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //IO口速度为50MHzGPIO_Init(GPIOA,&GPIO_InitStructure); //根据设定参数初始化GPIOB.5GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6);}u32HX711_read(void){u32count;u8i;delay_us(1);HX711_SCL=0;count=0;while(HX711_DOUT);for(i=0;i<24;i++){HX711_SCL=1;count=count<<1;HX711_SCL=0;if(HX711_DOUT)count++;}HX711_SCL=1;count=count^0x800000;delay_us(1);HX711_SCL=0;returncount;}//得到的质量单位是g克floatHX711_count(void){u8a;u32adc,wei;floatvol;for(a=10;a>0;a--){ adc=HX711_read();wei=wei+adc;}wei=wei/10;printf("hx711值:%d\r\n",wei);vol=((float)(wei-7431260)/1118)-1.8-1.55;//注意改参数wei=0;printf("重量=%f\r\n",vol);returnvol;}#ifndef__HX711_H#define__HX711_H#include"sys.h"#defineHX711_SCLPAout(5)#defineHX711_DOUTPAin(6)voidHX711_Init(void);u32HX711_read(void);floatHX711_count(void);#endif#include"lcd.h"#include"stdlib.h"#include"font.h"#include"usart.h"#include"delay.h"/////////////////////////////////////////////////////////////// /////////////////////本程序只供学习使用,未经作者许可,不得用于其它任何用途//2.4/2.8寸/3.5寸TFT液晶驱动//支持驱动IC型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGD P4535/SPFD5408/SSD1289/1505/B505/C505等//正点原子@ALIENTEK//************************************************************* *******************//V1.2修改说明//支持了SPFD5408的驱动,另外把液晶ID直接打印成HEX格式.方便查看LCD驱动IC.//V1.3//加入了快速IO的支持//修改了背光控制的极性(适用于V1.8及以后的开发板版本)//对于1.8版本之前(不包括1.8)的液晶模块,请修改LCD_Init函数的LCD_LED=1;为LCD_LED=1;//V1.4//修改了LCD_ShowChar函数,使用画点功能画字符。

基于STM32的电子秤

基于STM32的电子秤

基于STM32的电子秤目录目录 (2)1 绪论 (1)1.1 电子秤系统的概况 (2)1.2 电子秤的发展史 (2)1.3 电子秤应用范围 (2)1.4电子秤的研究动态 (2)2 电子秤的工作原理 (3)2.1 电子秤性能及技术要求 (3)2.2 工作原理 (3)2.3 基本结构 (3)3 电子秤的硬件设计 (5)3.1信号采集电路 (5)3.2 单片机控制系统 (11)3.3显示与语音播报电路 (15)3.3.1显示电路 (15)3.3.2语音播报电路 (16)3.4 低压报警电路 (19)4 电子秤控制系统的软件设计 (20)4.1 主程序设计 (20)4.1.1 主程序设计思路 (20)4.1.2 主程序工作原理 (22)4.1.3主程序流程框图 (22)4.2系统初始化 (22)4.2.1 ICL7109的初始化 (25)4.3 A/D转换结果处理程序 (25)4.3.1 A/D转换过程 (25)4.3.2 采样数据处理 (26)4.3.3 主程序 (29)4.3.4 语音播报程序 (30)4.11主程序设计思路 (20)4.12 主程序设计原理 (22)4.13主程序流程框图 (22)4.2系统初始化 (22)4.2.1 STM32的初始化 (25)4.3A/D转换结果处理程序 (25)4.3.1A/D转换过程 (25)4.3.2采样数据处理 (26)4.3.3主程序 (29)4.3.4语音播报程序 (30)5 结论 (31)参考文献 (33)致谢 (34)1 绪论随着科学技术和经济的发展,需要称量物品的设备也需要更新换代,人们对称重装置的要求也越高,电子秤重装置推广,从而进入到传感器,电子学和微处理机领域、使得称重装置变成为电子仪器。

它的特点是:精确、智能、方便、明了、可靠,克服了传统的杆秤、盘秤不精确、速度慢、易作弊等缺点。

称重技术的突破是微处理机的应用。

称重技术的这种发展是由于不仅要求获得静态称重数据,而且进一步要求称重工作的自动化,实现快速称量,以及测量各种动态参数,提高测量精度和各种数据的及时处理。

基于STM32的高精度电子天平

基于STM32的高精度电子天平

基于STM32的高精度电子天平樊毅;秦会斌【摘要】为了解决目前市面上的电子天平成本高、精度低、称量速度慢的问题,将目前工作频率高、功能强大的STM32芯片应用到电子天平的设计中,用其作为主控制器设计了一款高精度的电子天平.该设计采用内部集成24位A/D转换器和放大器的称重传感器专用芯片HX711对称重传感器输出的小信号进行处理,提高了电路的稳定性;采用数字滤波算法进行滤波,降低了电路复杂度,使性能更可靠;将A/D转换器输出的模拟信号直接数字化,然后,采用滑动均值滤波法进行了滤波;最后,进行了检定实验,开展了误差分析,分析了真实值与测量值之间的关系,并在误差分析的基础上,对天平测量准确性进行了评估.实测结果表明,该电子天平设计量程为300 g,精度为0.01 g,重复性误差和示值误差均≤0.02 g,而且称量速度快,10 s左右即可达到稳定读数.%The electronic balances on the market have some defects,such as high cost,low precision and low operation speed. Aiming at solving these problems of electronic balances, the STM32 which has high operating frequency and enhanced functions was used as a controller to design a high precision electronic balance. The stability of circuits was improved by using HX711 which integrates a 24 bit A/D converter and an amplifier. In order to reduce the complexity of circuits, the digital filtering method was used to filter, and the moving average filter was used to filter digital analog signal from the A/D converter. Verification experiments and error analysis were carried out. The relation between true value and measured value was built. Based on the error analysis,the accuracy was estimated. The experimental results indicate that, this design has amaximum range of 300 g and a precision of 0.01 g. Its repeatability error and indication error are less than or equal to 0.02 g and it reaches a stable reading in about 10 seconds.【期刊名称】《机电工程》【年(卷),期】2013(030)001【总页数】5页(P51-54,59)【关键词】高精度;电子天平;STM32;HX711【作者】樊毅;秦会斌【作者单位】杭州电子科技大学电子信息学院,浙江杭州310018;杭州电子科技大学电子信息学院,浙江杭州310018【正文语种】中文【中图分类】TH715;TP2160 引言电子天平是高精度质量计量仪器,广泛应用于科研机构、高等院校和实验室,具有称量准确度高、响应速度快、稳定性好等特点[1]。

一种基于STM32的多功能精密电子秤

一种基于STM32的多功能精密电子秤

一种基于STM32的多功能精密电子秤
作为一种新型的多功能精密电子秤,基于STM32技术的电子
秤是目前市场上比较受欢迎的一种产品。

它采用STM32的微
处理器技术,可实现多种功能的数据处理以及计量技术,可以充分满足不同领域的需求。

首先,基于STM32技术的电子秤具有高精度、高稳定性、高
可靠性的特点。

采用了精密称重传感器,可以对各种物品进行快速准确的称重。

同时,配合STM32处理器的高速计算和数
据精确度,可以有效保证数据的准确性,避免因计算误差而导致的误差偏差。

其次,基于STM32的多功能精密电子秤还具有多种实用功能。

它可以实时显示当前秤盘上物品的总重量,并有计数、复位、减扣等多种功能。

此外,它还可以支持多种单位的切换,如克、千克、磅、斤等等,可以满足不同领域的需要。

另外,基于STM32的多功能精密电子秤还具有良好的扩展性。

它可以通过串口、网络等多种方式进行数据的传输和控制,方便用户对该产品的使用和管理,还可以通过升级软件来实现更多的功能扩展和更新。

最后,基于STM32的多功能精密电子秤还具有多重安全保障
措施。

它可以在超载情况下自动停机、具有防震、防水等保护措施,可以确保产品的长时间稳定运行。

综上所述,基于STM32的多功能精密电子秤是一种具有高度
精确性、多种功能、扩展性和安全性保障的新型产品,可以在不同领域中得到广泛的应用,带来更大的商业收益和社会价值。

一种基于STM32的多功能精密电子秤

一种基于STM32的多功能精密电子秤

一种基于STM32的多功能精密电子秤
近年来,随着科技的不断进步和发展,电子称已成为人们家庭生活中必备的一种产品。

然而,传统电子秤往往只能测量物体的重量,而对于更加精细和多功能的需求,就需要一种更加智能和高效的电子称。

基于此,一种基于STM32的多功能精密电子秤应运而生。

该电子秤可以用于测量各种物体的重量,在重量区间上也非常广泛。

此外,它还可以测量温度、湿度、压力等数据,多种传感器相结合,使得这个电子秤更加智能化。

而在重量的测量方面,其精度也极高,可达到0.01克的极致体验。

基于STM32F103芯片,该电子秤的性能不仅稳定可靠,并且功耗非常低,使用寿命也大大延长。

同时,它还具备了多种数据通信方式,支持BLE、Wifi以及USB等多种通讯方式,在数据传输方面也非常方便。

在设计方面,这种电子秤使用了高强度铝合金外壳,外观美观大方,环保材料制作的鉴别装置,可以有效减轻环境污染。

此外,它还配置了大屏幕LCD显示屏,数据直观可见,也可以连接到手机等终端设备进行数据显示。

总的来说,这种基于STM32的多功能精密电子秤不仅具有高精度重量测量功能,还拥有多种测量功能,数据传输方便,使用寿命长,外观美观大方等诸多优点。

它的研发和推广将进一步推动电子秤行业的发展,满足人们更多的需求。

重庆科创学院基于STM32的电子秤设计与制作任务书

重庆科创学院基于STM32的电子秤设计与制作任务书

——基于STM32的电子秤设计与制作
一、选题意义
吊秤,也称吊钩秤、吊磅、挂秤、钩秤等等,是使物体处于悬挂状态进行其质量(重量)计量的衡器。

从结构特点上可分为表盘吊秤和电子吊秤。

电子吊秤主要应用于屠宰肉联、肉食批发、仓储超市、橡胶制造、造纸等行业,进行悬挂轨道上物品的称重。

电子吊秤涉及电子技术、嵌入式技术、传感器技术、无线传输技术等多学科知识、具有广泛的研究意义,其产品具有广泛的市场前景。

二、设计要求
1、系统组成
本设计采用STM32单片机为核心控制模块;采用S形拉力传感器或者压力传感器检查物体重量;设置0.5英寸超高亮数码管或者液晶屏显示读数;选作采用蓝牙或者WIFI实现数据的无线传输。

三、系统组成框图
四、制作要求
学员独立完成所有内容,包括硬件设计、原理图的绘制、PCB图的绘制及制作、硬件电路的调试、软件代码的编写及调试,装箱,撰写说明文档等。

1、单片机采用STM32F107,可以购买核心板或者自己设计最小系统;
2、信号调理放大器采用0-5V信号输出或者4-20ma电流信号输出;
3、电源采用电池供电或者外置开关电源;
4、显示器采用液晶或者数码管,要求显示数据清晰、稳定,方便观察;
5、外壳采用塑料外壳或定制铝外壳。

五、样机展示。

基于STM32的电子秤设计与应用

基于STM32的电子秤设计与应用

基于STM32的电子秤设计与应用作者:骆琳冬瑛来源:《科学与财富》2017年第15期(中国计量大学浙江杭州 310018)摘要:电子秤是利用称重传感器作为变换元件,把被称物体的重量按一定的比例关系转换成与其相应的电信号,用电子仪表进行测量和显示的装置。

本系统以STM32单片机为主控芯片,外围附以称重电路、显示电路、报警电路、键盘电路等构成智能称重系统电路板,从而实现自动称重系统的称重功能、报警功能、数据计算功能以及人机交换功能。

可以说,此设计所完成的电子秤很大程度上满足了应用需求。

关键词: STM32;电子秤;人机交换;传感器基于单片机的步进电机控制系统设计要求利用改变脉冲的频率和顺序来实现步进电机的速度调节,启动、停止,正转、反转等一系列功能。

通过的单片机和计算机通信、人机界面设计实现对步进电机的远距离监控和控制。

人机界面由VB语言来设计,它们之间的通信是通过RS232的串口实现的。

1 步进电机的控制方法SCM(Single Chip Microcomputer)是把组成微型计算机的中央处理器、存储器、输入输出接口电路、定时器或计数器等制作在一块集成电路芯片中,它具有小巧、低功耗、指令系统丰富等优点。

PLC(Programmable Logic Controller)是以微型计算机为核心的一种工控机。

其控制方案能事先进行模拟调试,自身设计采用了冗余措施和容错技术。

由于PLC通用性强,编程操作方便,扩展灵活,可靠性高。

FPGA(Field Programmable Gate Array)它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

由于单片机集CPU、RAM、ROM、CTC、I/O于一体,具有集成度高、软件资源丰富、控制功能和位寻址功能强、软硬件的设计比较方便,因此本设计采用单片机来控制步进电机。

基于STM32的语音电子秤的设计

基于STM32的语音电子秤的设计

文档可能无法思考全面,请浏览后下载!基于STM32的语音电子秤的设计学生专业:测控技术与仪器学生姓名:张城照导师姓名:张福才文档可能无法思考全面,请浏览后下载!摘要质量是测量领域中的一个非常有意义的被测参数,称重技术的发展从古至今被人们所重视,称重在日常生活中随处可见,如首饰店测量贵金属重量,工厂原料定量配比,市场上称菜,货车过地磅等。

秤是最普通、最普及的计量设备。

传统的机械秤体积庞大,结构繁琐,易受外界挤压、碰撞变形,在长期使用中由于金属腐蚀,机械磨损会给机械秤带来不可逆的损害直接导致机械秤精度下降。

电子秤相比机械秤拥有诸多优点,例如成本低、响应快、稳定、高智能等。

随着社会的迅猛发展,人们的需求日益多元化,多元化的电子秤将具有极其广阔的市场前景。

本设计采用STM32F103作为主控芯片,外接电桥式称重传感器和24位高精度A/D 转换芯片来完成称重,以TFT液晶屏和触控芯片实现人机交互,独特的语音播报功能给本设计增添了个性特点,实时温度和实时时钟方便了使用者的日常生活。

关键词质量电子秤 STM32F103 语音文档可能无法思考全面,请浏览后下载!AbstractQuality is an important parameter to measured in the field of measurement, weighing technology is paid great attention by people since ancient times, weighing can be seen everywhere in our daily life, such as jewelry shop measuring weight of precious metals, quantitative ratio of raw materials, weighing food on the market, trucks pass loadometer, etc. Balance is the most common, the most popular measuring equipment. The traditional mechanical scale is large, the structure is complicated, vulnerable to external extrusion, collision deformation, due to the metal corrosion in the long-term use, mechanical wear will bring irreversible damage to mechanical scale directly led to the decrease of the precision of mechanical scale.Electronic scale mechanical scale compared with many advantages, such as low cost, fast response, stability, high intelligence, etc. With the rapid development of society, the demand of people increasingly diversified, diversified electronic scale will be extremely broad market prospect.This design uses STM32F103 as the master control chip, external bridge type weighing sensors and 24 bit high precision A/D transformation chip to complete the weighing, TFT LCD screen and touch chip to realize human-machine interaction, unique speech function add individuality to the design characteristics of real-time temperature and real time clock is convenient for user's daily life. Key words Quality Electronic scale STM32F103 Speech文档可能无法思考全面,请浏览后下载!目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 课题来源及研究的目的和意义 (1)1.2 本论文的技术要求和主要工作 (2)第2章电子秤的总体设计方案 (3)2.1 电子秤称重系统的整体设计方案 (3)2.2 系统基本功能及其性能指标 (3)2.3 称重传感器要求及选择 (4)2.4 质量的计算 (5)第3章电子秤硬件电路设计 (6)3.1 A/D采集的电路设计 (6)3.2 单片机外扩电路设计 (7)3.2.1 STM32F103RBT6的最小系统硬件设计 (7)3.2.2 TFT液晶屏的硬件电路设计 (9)3.2.3 WT588D语音模块的硬件电路设计 (10)3.2.4 电源模块的硬件电路设计 (12)第4章测量装置的软件设计及其优化 (13)4.1 单片机软件设计流程 (13)4.2 各个模块的程序设计思路及部分代码 (14)4.2.1 TFT触控液晶模块部分 (14)4.2.2 WT588D语音模块部分 (17)4.2.3 HX711芯片部分 (20)4.2.4 DS18B20芯片部分 (21)4.2.5 实时时钟部分 (26)4.2.6 数据计算部分 (27)4.3 提高测量精度的数字滤波软件设计 (28)结论 (30)致谢 (31)参考文献 (32)文档可能无法思考全面,请浏览后下载!附录1:电子秤实物图 (34)附录2:系统总体电路图 (35)附录3:PCB电路板 (36)文档可能无法思考全面,请浏览后下载!CONTENTSAbstract (I)Abstract (II)Chapter 1 Introduction (1)1.1 Subject sources and research goal and significance (1)1.2 The technical requirement of design and main work (2)Chapter 2 The overall design scheme of electronic scale (3)2.1 The overall design scheme of electronic weighing system (3)2.2 The basic function and performance index of system (3)2.3 Requirement and selection of weighing sensor (4)2.4 The calculation of the quality (5)Chapter 3 Electronic hardware circuit design (7)3.1 A/D acquisition circuit design (7)3.2 MCU’s outside enlarge circuit design (8)3.2.1 STM32F103RBT6’s mi nimum system hardware design (8)3.2.2 The hardware circuit design of the TFT LCD screen (10)3.2.3 Hardware circuit design of the WT588D voice module (11)3.2.4 Power supply module of hardware circuit design (13)Chapter 4 Measuring software design and its optimization (14)4.1 Microcomputer software design process (14)4.2 Each module program design and part of the code (15)4.2.1 TFT touch LCD module part (15)4.2.2 WT588D voice module part (18)4.2.3 HX711 chip part (21)4.2.4 DS18B20 chip part (22)4.2.5 Real time clock parts (26)4.2.6 The data calculated part (27)4.3 Improve the measurement precision of the digital filter software design (28)Conclusions (30)Acknowledgements (31)文档可能无法思考全面,请浏览后下载!Reference (32)Appendix 1:Electronic scale physical figure (34)Appendix 2:Overall system circuit diagram (35)Appendix 3:PCB circuit boards (36)文档可能无法思考全面,请浏览后下载!第1章绪论1.1 课题来源及研究的目的和意义电子称重技术是测控工程的重要技术之一。

电子秤stm32程序

电子秤stm32程序

#include "led.h"#include "sys.h"#include "delay.h"#include "adc.h"#include "lcd.h"#include "usart.h"#include "lcdfot.h"#include "hx711.h"#include "key.h"int main(void){u8 num,flag;float vol1;delay_init();uart_init(9600);LED_Init();LCD_Init();Adc_Init();KEY_Init();HX711_Init();POINT_COLOR=RED;HZ_show();LCD_ShowString(54+25,55,200,24,16,":000.00g");// 提示信息显示LCD_ShowString(54+25,85,200,24,16,":00.00$");// 提示信息显示LCD_ShowString(54+25,115,200,24,16,":000.00$");// 提示信息显示LCD_ShowString(54+25,145,200,24,16,":000.00g");// 提示信息显示while(1){vol1=HX711_count(); if(KEY_Scan(1)==WKUP_PRES) // 单价设置num 的值可直接用{num++; if(num==100) num=0;LCD_ShowxNum(54+25+8,85,num,2,16,0); }if(KEY_Scan(1)==KEY0_PRES) // 控制金额是否累加flag=1 是累加flag=0 不累加{HZ_show_moy();flag++;LED0=0;if(flag==2){LED0=1;LCD_ShowString(54+25+32+30,115,200,16,16," ");flag=0;}printf("%d",flag);}delay_ms(300);LED1=!LED1;}}#include "lcd.h"#include "lcdfot.h"u8 table1[]={0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x04,0x02,0x00,0x04,0x02,0x00,0x24,0x0A, 0xFF,0xA4,0x0A,0x7F,0x24,0x0A,0x49,0x24,0x12,0x49,0x24,0x12,0x49,0x24,0x12,0x49, 0x24,0x1F,0xFF,0xFC,0x12,0x49,0x24,0x12,0x49,0x24,0x12,0x49,0x24,0x22,0x49,0x24, 0x22,0x49,0x24,0x22,0xFF,0xA4,0x02,0x40,0x64,0x06,0x00,0x24,0x06,0x00,0x0C,0x02, 0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,};/* 重*/u8 table2[]={0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40,0x12,0x3F, 0xDF,0xD2,0x3F,0x52,0x92,0x25,0x52,0x92,0x25,0x52,0x92,0x25,0x52,0x92,0x25,0x52, 0x92,0x25,0x5F,0xFC,0x25,0x5F,0xFC,0x25,0x52,0x92,0x25,0x52,0x92,0x25,0x52,0x92, 0x25,0x52,0x92,0x3F,0x5F,0xD2,0x20,0x5F,0xB2,0x00,0x40,0x12,0x00,0x40,0x04,0x00, 0xC0,0x04,0x00,0x40,0x00,0x00,0x00,0x00,};/* 量*/u8 table3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x03, 0xFE,0x40,0x02,0x22,0x40,0x22,0x22,0x40,0x32,0x22,0x40,0x1E,0x22,0x40,0x02,0x22, 0x40,0x03,0xFF,0xFE,0x02,0x22,0x40,0x06,0x22,0x40,0x0A,0x22,0x40,0x72,0x22,0x40, 0x22,0x22,0x40,0x02,0x22,0x40,0x03,0xFE,0x40,0x02,0x00,0x40,0x00,0x00,0xC0,0x00, 0x00,0xC0,0x00,0x00,0x40,0x00,0x00,0x00,};/* 单*/u8 table4[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x60,0x00,0x01,0xC0,0x00,0x07, 0xFF,0xFE,0x3C,0x80,0x00,0x30,0x10,0x02,0x00,0x20,0x04,0x00,0x40,0x08,0x00,0x80, 0x18,0x03,0x3F,0xE0,0x06,0x3E,0x00,0x3C,0x00,0x00,0x30,0x00,0x00,0x0C,0x00,0x00, 0x02,0x00,0x01,0x01,0x3F,0xFE,0x00,0x80,0x00,0x00,0xC0,0x00,0x00,0x60,0x00,0x00, 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/* 价*/u8 table5[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x01,0x08,0x08,0x01, 0x08,0x0C,0x01,0x08,0x1C,0x01,0x08,0x2C,0x01,0x08,0x4C,0x01,0x08,0x88,0x01,0x0B, 0x08,0x3F,0xFE,0x08,0x3F,0xF8,0x08,0x01,0x08,0x08,0x01,0x08,0x08,0x01,0x08,0x48, 0x01,0x08,0x68,0x01,0x08,0x38,0x03,0x08,0x18,0x01,0x08,0x1E,0x00,0x18,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/* 去*/u8 table6[]={0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x18,0x00,0x00,0xE2,0x07, 0xFF,0x82,0x02,0x00,0x02,0x02,0x00,0x02,0x02,0x08,0x04,0x02,0x0E,0x04,0x02,0x09, 0x08,0x02,0x08,0xC8,0x7F,0xF0,0x70,0x3F,0xF0,0x30,0x02,0x08,0x70,0x02,0x09,0x88, 0x02,0x0B,0x0C,0x02,0x0E,0x0C,0x02,0x98,0x04,0x07,0x08,0x06,0x06,0x00,0x06,0x00, 0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,};/* 皮*/u8 table7[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x02,0x00,0x10,0x02,0x00,0x21,0x02,0x00, 0x41,0x82,0x00,0xC1,0x42,0x01,0x91,0x32,0x03,0x11,0x1A,0x0E,0x11,0x02,0x38,0x11, 0x02,0x30,0x1F,0xFC,0x28,0x11,0x02,0x04,0x11,0x02,0x02,0x11,0x04,0x01,0x11,0x1A, 0x00,0xA1,0xE2,0x00,0xD1,0x42,0x00,0x62,0x02,0x00,0x62,0x02,0x00,0x30,0x04,0x00, 0x20,0x04,0x00,0x20,0x00,0x00,0x00,0x00,};/* 金*/ u8 table8[]={0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x80,0x0C,0x31,0x00,0x04,0xD3,0xFC,0x07, 0x96,0x84,0x24,0x5C,0x84,0x1C,0x58,0x84,0x04,0x68,0x84,0x05,0xCD,0xFC,0x06,0x06, 0x00,0x0C,0x02,0x02,0x16,0x00,0x02,0x11,0xFF,0x84,0x11,0x00,0x08,0x13,0x00,0x10, 0x1D,0x47,0xE0,0x11,0x3F,0x00,0x11,0x20,0x20,0x11,0x00,0x10,0x11,0xFF,0xD8,0x23, 0xFF,0x8C,0x00,0x00,0x06,0x00,0x00,0x00,};/* 额*/ u8 table9[]={0x00,0x00,0x00,0x01,0x7C,0x12,0x54,0x94,0x54,0x90,0x55,0xB2,0x56,0xB1,0x7C,0xDE, 0x54,0xD0,0x54,0x90,0x55,0x14,0x54,0x32,0x7C,0x19,0x00,0x00,0x00,0x00,0x00,0x00, };/* 累*/u8 table10[]={0x08,0x01,0x08,0x02,0x08,0x0C,0xFF,0xF0,0x08,0x02,0x08,0x01,0x0F,0xFE,0x00,0x00, 0x00,0x00,0x1F,0xFE,0x10,0x04,0x10,0x04,0x10,0x04,0x1F,0xFE,0x00,0x00,0x00,0x00, };/* 加*/// 显示一个汉字//u8 lcdoneHZ(u8 x,u8 y,unsigned char *code){u8 temp,t,y0,t1;u8 table[72];y0=y;POINT_COLOR=RED; for(t=0;t<72;t++){temp= *code++;for(t1=0;t1<8;t1++){if(temp&0x80)LCD_DrawPoint(x,y);temp<<=1;y++;if((y-y0)==24){y=y0; x++; break;}}} }}u8 lcdone16HZ(u8 x,u8 y,unsigned char *code){u8 temp,t,y0,t1;u8 table[32];y0=y;POINT_COLOR=RED; for(t=0;t<32;t++){temp= *code++;for(t1=0;t1<8;t1++){if(temp&0x80)LCD_DrawPoint(x,y); temp<<=1;y++;if((y-y0)==16){y=y0;x++; break;}}}}void HZ_show(void){lcdoneHZ(30,50,table1);// 重量lcdoneHZ(54,50,table2);lcdoneHZ(30,80,table3); // 单价lcdoneHZ(54,80,table4);lcdoneHZ(30,110,table7); // 金额lcdoneHZ(54,110,table8); // 金额lcdoneHZ(30,140,table5);// 去皮lcdoneHZ(54,140,table6);void HZ_show_moy(void){lcdone16HZ(54+25+32+30,115,table9); lcdone16HZ(54+25+32+30+17,115,table10); } #ifndef __LCDFOT_H #define __LCDFOT_H #include "sys.h"u8 lcdoneHZ(u8 x,u8 y,unsigned char *code); // 显示 24 位汉字 u8 lcdone16HZ(u8 x,u8 y,unsigned char *code); // 显示 16 位汉字void HZ_show(void); void HZ_show_moy(void); #endif #include "hx711.h" #include"delay.h" #include "usart.h" void HX711_Init(void) {GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);// 使能 PE 端口时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure); GPIOB.5 //LED0-->PB.5 端口配置 //推挽输出 //IO 口速度为 50MHz // 根 据 设 定 参 数 初 始 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIOB.5//LED0-->PB.5 端口配置 //上拉输入 //IO 口速度为 50MHz // 根 据 设 定 参 数 初 始GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6);}u32 HX711_read(void){u32 count;u8 i;delay_us(1);HX711_SCL=0;count=0;while(HX711_DOUT);for(i=0;i<24;i++){HX711_SCL=1; count=count<<1;HX711_SCL=0; if(HX711_DOUT) count++;}HX711_SCL=1; count=count^0x800000; delay_us(1);HX711_SCL=0;return count;}//得到的质量单位是g 克float HX711_count(void){u8 a;u32 adc,wei;float vol;for(a=10;a>0;a--){ adc=HX711_read();wei=wei+adc;}wei=wei/10;printf("hx711 值:%d\r\n",wei);vol=((float)(wei-7431260)/1118)-1.8-1.55; // 注意改参数wei=0;printf(" 重量=%f\r\n",vol);return vol;}#ifndef __HX711_H#define __HX711_H#include "sys.h"#define HX711_SCL PAout(5)#define HX711_DOUT PAin(6)void HX711_Init(void);u32 HX711_read(void);float HX711_count(void);#endif#include "lcd.h"#include "stdlib.h"#include "font.h"#include "usart.h"#include "delay.h"////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途//2.4/2.8寸/3.5寸TFT 液晶驱动// 支持驱动IC 型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/SPFD5408/S SD1289/1505/B505/C505 等//正点原子@ALIENTEK//*****************************************************************************//V1.2 修改说明//支持了SPFD5408 的驱动,另外把液晶ID 直接打印成HEX 格式.方便查看LCD 驱动IC. //V1.3//加入了快速IO 的支持//修改了背光控制的极性(适用于V1.8 及以后的开发板版本)//对于 1.8 版本之前( 不包括 1.8)的液晶模块,请修改LCD_Init 函数的LCD_LED=1; 为LCD_LED=1;//V1.4 //修改了LCD_ShowChar 函数,使用画点功能画字符。

基于STM32单片机的无线电子称重系统的设计与实现

基于STM32单片机的无线电子称重系统的设计与实现

HEBEINONGJI摘要:本文介绍的是基于单片机的无线电子称重系统的设计,实现了电子秤的称重、去皮、数字显示和超重报警的功能。

在重量检测系统功能和STM32F103C8T6单片机运用的基础上,讲述了称重系统的整体构成,对称重系统各个设计模块的原理进行了介绍,并且对组成各单元硬件电路的主要器件功能做了说明。

关键词:重量检测;数据采集;单片机基于STM32单片机的无线电子称重系统的设计与实现沈阳工学院信息与控制学院张军伟郑琳1称重系统硬件设计1.1单片机最小系统设计本次设计以STM32F103C8T6作为主控芯片。

该芯片使用Cortex-M3架构,支持Thumb-2指令集,工作频率最高可达到72MHz,在存储器的零等待周期访问时可达1.25DMips/MHz,而且具备单周期乘法和硬件除法。

该芯片还拥有多达51个快速"0端口,并且所有I/O口可以映像到16个外部中断,几乎所有端口均可容忍5V信号,即兼容5V数字电平。

1.2数据采集系统设计称重传感器是一种将质量信号转变为可测量的电信号的输出装置。

本设计采用的是电阻应变式传感器。

电阻应变式传感器WPL803由四个应变片电阻组成了全桥式测量电路,四根线连接外电路,红线为电源正极输入VCC接E+,黑线为电源负极输入GND接E-,白线为信号输出S-接A+,绿线为信号输出S+接A-o1.3人机交互界面系统设计液晶显示器使用的是字符型的LCD1602液晶显示集成模块.LCD1602的显示容量为16x2个字符。

LCD1602液晶显示模块是指显示的内容为16x2,就是屏幕上只可以显示两行内容,每行有16个字符液晶模块。

1.4无线收发系统设计NRF24L01是一款无线收发器件,工作在2.4-2.5GHz通用ISM频段。

通过配置寄存器可将NRF24L01配置为发射、接收、空闲及掉电四种工作模式。

NRF24L01配置为发射模式,接收节点地址与有效数据按照时序从SPI口写入NRF24L01缓存区,然后CE置为高电平并保持至少10»s,延迟130p,s后发射数据,如果自动应答开启,那么NRF24L01在发射数据后立刻进入接收模式,接收应答信号。

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

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

电子秤属于衡器的一种,是利用胡克定律或力的杠杆平衡原理测定物体质量的工具[1]。

在衡器的发展演变过程中,曾经先后出现6种类型的衡器设计,分别是:架盘天平、不等臂平台秤、吊车秤、倾斜象限杆秤、弹簧秤和自动秤[2]。

随着电子技术的飞速发展以及各种传感器的广泛应用,衡器也从原来的模拟式、单一式、粗精度向数字式、多样式、高精度转变。

本文以STM32F103C8T6单片机为核心,介绍了一种基于电阻应变片的简易电子秤设计 方案。

1 系统方案本系统主要由称重模块、数据采集模块、结果显示模块、设置输入模块、电源模块组成,下面分别论证这几个模块的选择。

1.1 称重模块的论证与选择方案一:采用应变片分立元件构建应变片H 桥。

其中应变片分立元件的阻值选用1K,需要4个电阻应变片构成H 桥,采用全桥方式,灵敏度最高。

方案二:采用集成的压力传感器。

集成的压力传感器电路一致性较好,抗干扰性能强,但是由于其封装性较好,比较适合压力秤的制作,而本题要求制作的简易电子秤属于拉力秤,且题目要求称重传感装置需自制,不得采用商用电子称的称重装置,所以改方案舍弃不用。

综合以上两种方案,采用分立的电阻应变片构成H 桥电路并固定于钢片上,为保证每一个半桥的电阻应变片对于同一压力或者拉力的产生的反映相反,所以在钢尺正面和背面上分别固定应变片。

其中用分立元件搭成的H 全桥如图1所示,4个1K 电阻均为1K 电阻应变片,H 桥留出4个引线接口,分别按图接入VCC、信号+、信号-、GND,信号+和信号-分别接入集成运放的两个输入端。

图1 电路原理图1.2 采集模块的论证与选择方案一:采用PCF8591模数转换模块。

功能简介: 基于I2C 接口的AD/DA 转换模块,8位精度,四通道AD,单通道DA,电压输出型。

方案二:采用HX711模数放大转换模块。

功能简介:模块工作电压:4.8V ~5.5V,典型电流1.6mA。

两路可选择差分输入;芯片内部集成低噪声可编程放大器,可选增益包括32dB、64dB 以及128dB ;直流稳压电路可为外部传感器及芯片内部的A/D 转换器提供电源,具有简单的数字控制功能及串口通讯功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "led.h"#include "sys.h"#include "delay.h"#include "adc.h"#include "lcd.h"#include "usart.h"#include "lcdfot.h"#include "hx711.h"#include "key.h"int main(void){u8 num,flag;float vol1;delay_init();uart_init(9600);LED_Init();LCD_Init();Adc_Init();KEY_Init();HX711_Init();POINT_COLOR=RED;HZ_show();LCD_ShowString(54+25,55,200,24,16,":000.00g");//提示信息显示LCD_ShowString(54+25,85,200,24,16,":00.00$");//提示信息显示LCD_ShowString(54+25,115,200,24,16,":000.00$");//提示信息显示LCD_ShowString(54+25,145,200,24,16,":000.00g");//提示信息显示while(1){vol1=HX711_count();if(KEY_Scan(1)==WKUP_PRES) //单价设置num的值可直接用{num++;if(num==100)num=0;LCD_ShowxNum(54+25+8,85,num,2,16,0);}if(KEY_Scan(1)==KEY0_PRES) //控制金额是否累加flag=1是累加flag=0不累加{HZ_show_moy();flag++;LED0=0;if(flag==2){LED0=1;LCD_ShowString(54+25+32+30,115,200,16,16," ");flag=0;}printf("%d",flag);}delay_ms(300);LED1=!LED1;}}#include "lcd.h"#include "lcdfot.h"u8 table1[]={0x00,0x00,0x00,0x00,0x00,0x04,0x02,0x00,0x04,0x02,0x00,0x04,0x02,0x00,0x24,0x0A, 0xFF,0xA4,0x0A,0x7F,0x24,0x0A,0x49,0x24,0x12,0x49,0x24,0x12,0x49,0x24,0x12,0x49, 0x24,0x1F,0xFF,0xFC,0x12,0x49,0x24,0x12,0x49,0x24,0x12,0x49,0x24,0x22,0x49,0x24, 0x22,0x49,0x24,0x22,0xFF,0xA4,0x02,0x40,0x64,0x06,0x00,0x24,0x06,0x00,0x0C,0x02, 0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,};/*重*/u8 table2[]={0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x02,0x00,0x40,0x02,0x00,0x40,0x12,0x3F, 0xDF,0xD2,0x3F,0x52,0x92,0x25,0x52,0x92,0x25,0x52,0x92,0x25,0x52,0x92,0x25,0x52, 0x92,0x25,0x5F,0xFC,0x25,0x5F,0xFC,0x25,0x52,0x92,0x25,0x52,0x92,0x25,0x52,0x92, 0x25,0x52,0x92,0x3F,0x5F,0xD2,0x20,0x5F,0xB2,0x00,0x40,0x12,0x00,0x40,0x04,0x00, 0xC0,0x04,0x00,0x40,0x00,0x00,0x00,0x00,};/*量*/u8 table3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x03, 0xFE,0x40,0x02,0x22,0x40,0x22,0x22,0x40,0x32,0x22,0x40,0x1E,0x22,0x40,0x02,0x22, 0x40,0x03,0xFF,0xFE,0x02,0x22,0x40,0x06,0x22,0x40,0x0A,0x22,0x40,0x72,0x22,0x40, 0x22,0x22,0x40,0x02,0x22,0x40,0x03,0xFE,0x40,0x02,0x00,0x40,0x00,0x00,0xC0,0x00, 0x00,0xC0,0x00,0x00,0x40,0x00,0x00,0x00,};/*单*/u8 table4[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x60,0x00,0x01,0xC0,0x00,0x07, 0xFF,0xFE,0x3C,0x80,0x00,0x30,0x10,0x02,0x00,0x20,0x04,0x00,0x40,0x08,0x00,0x80, 0x18,0x03,0x3F,0xE0,0x06,0x3E,0x00,0x3C,0x00,0x00,0x30,0x00,0x00,0x0C,0x00,0x00, 0x02,0x00,0x01,0x01,0x3F,0xFE,0x00,0x80,0x00,0x00,0xC0,0x00,0x00,0x60,0x00,0x00, 0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*价*/u8 table5[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x01,0x08,0x08,0x01, 0x08,0x0C,0x01,0x08,0x1C,0x01,0x08,0x2C,0x01,0x08,0x4C,0x01,0x08,0x88,0x01,0x0B, 0x08,0x3F,0xFE,0x08,0x3F,0xF8,0x08,0x01,0x08,0x08,0x01,0x08,0x08,0x01,0x08,0x48, 0x01,0x08,0x68,0x01,0x08,0x38,0x03,0x08,0x18,0x01,0x08,0x1E,0x00,0x18,0x00,0x00, 0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*去*/u8 table6[]={0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x18,0x00,0x00,0xE2,0x07, 0xFF,0x82,0x02,0x00,0x02,0x02,0x00,0x02,0x02,0x08,0x04,0x02,0x0E,0x04,0x02,0x09, 0x08,0x02,0x08,0xC8,0x7F,0xF0,0x70,0x3F,0xF0,0x30,0x02,0x08,0x70,0x02,0x09,0x88, 0x02,0x0B,0x0C,0x02,0x0E,0x0C,0x02,0x98,0x04,0x07,0x08,0x06,0x06,0x00,0x06,0x00, 0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,};/*皮*/u8 table7[]={0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x02,0x00,0x10,0x02,0x00,0x21,0x02,0x00, 0x41,0x82,0x00,0xC1,0x42,0x01,0x91,0x32,0x03,0x11,0x1A,0x0E,0x11,0x02,0x38,0x11, 0x02,0x30,0x1F,0xFC,0x28,0x11,0x02,0x04,0x11,0x02,0x02,0x11,0x04,0x01,0x11,0x1A, 0x00,0xA1,0xE2,0x00,0xD1,0x42,0x00,0x62,0x02,0x00,0x62,0x02,0x00,0x30,0x04,0x00, 0x20,0x04,0x00,0x20,0x00,0x00,0x00,0x00,};/*金*/u8 table8[]={0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x80,0x0C,0x31,0x00,0x04,0xD3,0xFC,0x07, 0x96,0x84,0x24,0x5C,0x84,0x1C,0x58,0x84,0x04,0x68,0x84,0x05,0xCD,0xFC,0x06,0x06, 0x00,0x0C,0x02,0x02,0x16,0x00,0x02,0x11,0xFF,0x84,0x11,0x00,0x08,0x13,0x00,0x10, 0x1D,0x47,0xE0,0x11,0x3F,0x00,0x11,0x20,0x20,0x11,0x00,0x10,0x11,0xFF,0xD8,0x23, 0xFF,0x8C,0x00,0x00,0x06,0x00,0x00,0x00,};/*额*/u8 table9[]={0x00,0x00,0x00,0x01,0x7C,0x12,0x54,0x94,0x54,0x90,0x55,0xB2,0x56,0xB1,0x7C,0xDE, 0x54,0xD0,0x54,0x90,0x55,0x14,0x54,0x32,0x7C,0x19,0x00,0x00,0x00,0x00,0x00,0x00, };/*累*/u8 table10[]={0x08,0x01,0x08,0x02,0x08,0x0C,0xFF,0xF0,0x08,0x02,0x08,0x01,0x0F,0xFE,0x00,0x00, 0x00,0x00,0x1F,0xFE,0x10,0x04,0x10,0x04,0x10,0x04,0x1F,0xFE,0x00,0x00,0x00,0x00, };/*加*/// 显示一个汉字//u8 lcdoneHZ(u8 x,u8 y,unsigned char *code){u8 temp,t,y0,t1;u8 table[72];y0=y;POINT_COLOR=RED;for(t=0;t<72;t++){temp= *code++;for(t1=0;t1<8;t1++){if(temp&0x80)LCD_DrawPoint(x,y);temp<<=1;y++;if((y-y0)==24){y=y0;x++;break;}}}}u8 lcdone16HZ(u8 x,u8 y,unsigned char *code) {u8 temp,t,y0,t1;u8 table[32];y0=y;POINT_COLOR=RED;for(t=0;t<32;t++){temp= *code++;for(t1=0;t1<8;t1++){if(temp&0x80)LCD_DrawPoint(x,y);temp<<=1;y++;if((y-y0)==16){y=y0;x++;break;}}}}void HZ_show(void){lcdoneHZ(30,50,table1);//重量lcdoneHZ(54,50,table2);lcdoneHZ(30,80,table3); //单价lcdoneHZ(54,80,table4);lcdoneHZ(30,110,table7); //金额lcdoneHZ(54,110,table8); //金额lcdoneHZ(30,140,table5);//去皮lcdoneHZ(54,140,table6);}void HZ_show_moy(void){lcdone16HZ(54+25+32+30,115,table9);lcdone16HZ(54+25+32+30+17,115,table10);}#ifndef __LCDFOT_H#define __LCDFOT_H#include "sys.h"u8 lcdoneHZ(u8 x,u8 y,unsigned char *code); //显示24位汉字u8 lcdone16HZ(u8 x,u8 y,unsigned char *code); //显示16位汉字void HZ_show(void);void HZ_show_moy(void);#endif#include "hx711.h"#include "delay.h"#include "usart.h"void HX711_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PE端口时钟GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0-->PB.5 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //LED0-->PB.5 端口配置GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIOB.5GPIO_SetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_6);}u32 HX711_read(void){u32 count;u8 i;delay_us(1);HX711_SCL=0;count=0;while(HX711_DOUT);for(i=0;i<24;i++){HX711_SCL=1;count=count<<1;HX711_SCL=0;if(HX711_DOUT)count++;}HX711_SCL=1;count=count^0x800000;delay_us(1);HX711_SCL=0;return count;}//得到的质量单位是g 克float HX711_count(void){u8 a;u32 adc,wei;float vol;for(a=10;a>0;a--){ adc=HX711_read();wei=wei+adc;}wei=wei/10;printf("hx711值:%d\r\n",wei);vol=((float)(wei-7431260)/1118)-1.8-1.55; //注意改参数wei=0;printf("重量=%f\r\n",vol);return vol;}#ifndef __HX711_H#define __HX711_H#include "sys.h"#define HX711_SCL PAout(5)#define HX711_DOUT PAin(6)void HX711_Init(void);u32 HX711_read(void);float HX711_count(void);#endif#include "lcd.h"#include "stdlib.h"#include "font.h"#include "usart.h"#include "delay.h"////////////////////////////////////////////////////////////////////////////////////本程序只供学习使用,未经作者许可,不得用于其它任何用途//2.4/2.8寸/3.5寸TFT液晶驱动//支持驱动IC型号包括:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/SPFD5408/S SD1289/1505/B505/C505等//正点原子@ALIENTEK//***************************************************************************** ***//V1.2修改说明//支持了SPFD5408的驱动,另外把液晶ID直接打印成HEX格式.方便查看LCD驱动IC.//V1.3//加入了快速IO的支持//修改了背光控制的极性(适用于V1.8及以后的开发板版本)//对于 1.8版本之前(不包括 1.8)的液晶模块,请修改LCD_Init函数的LCD_LED=1;为LCD_LED=1;//V1.4//修改了LCD_ShowChar函数,使用画点功能画字符。

相关文档
最新文档