基于STM32的多功能电子秤 - 图文 下载本文

2012年电子设计大赛 黑龙江科技大学 题目名称: 多功能电子计价秤制作 参赛队员: 张城照 黄力修 陈高禹 院 系: 电气与信息工程学院

摘要:

智能电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。它与我们日常生活紧密结合成为一种方便、快捷、称量精确的工具,广泛应用于商业、工厂生厂、集贸市场、超市、大型商场、及零售业等公共场所的信息显示和重量计算。

本作品使用STM32单片机作为中心控制单元,通过称重传感器采集质量信息,以HX711进行模数转换单元,在配以TFT液晶显示和触摸屏控制,及WT588D进行语音播报组成。该电子称不但计量准确、快速方便,更重要的自动称重、计价功能外,还可实现去皮、净/毛转,自动计算,数字显示,语音播报,显示实时温度,实时时间。

本系统是针对是电子称的自动称重、自动计价、数据处理,语音播报进行研究的。为了阐明用单片机是如何对采样数据进行处理,对数据的采集和转换、计算问题进行了研究。讨论了单片机控制系统中关键的中断、计算问题,结果表明通过软件设计实现更完善。本文在给出智能电子称硬件设计的基础上,详细分析了电子称的软件控制方法。由于单片机控制的电子称结构简单,成本低廉,深受人们的喜爱,本文将对此进行详细讨论

关键字:

电子秤;STM32; 称重传感器;HX711; TFT液晶屏幕;WT588D

Abstract:

Intelligent electronic balance values detection and the modern new-type names of technical comprehensive one body such as conversion technical, computer technology, message handling and digital technology instrument. Its and our close combination of daily life becomes a kind of convenient, shortcut, weighing accurate tool , is applied extensively in commercial, factory raw factory , gathers 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 TFT

and powerful software to form. It is accurate that this electron claims to not only measure , fast convenience, more important automatic name may still realize besides heavy, valuation function to 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 data handling carry out research. To expound to use single flat machine , it is to how to carry out handling for sampling data , is for the collection of data and conversion and calculation problem has studied. 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 control method of electronic name in detail. Since the electron of single flat machine control weighs structure, is simple, cost is cheap, receive deeply people like , this text will carry out detailed discussion 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液晶屏显示,显示重量、单价、总额等信息。

a.重量显示为5位数码,单位为公斤,最大重量显示值为99.999公斤; b.单价金额显示为5位数码,单位为元,最大单价金额显示值值为999.99元; c.总价金额显示为6位数码,单位为元,最大总价金额显示值值为9999.99元, 总价金额误差不大于0.01元;

(3)具有去皮功能和总额累加计算功能; (4)能预存10种商品的单价;可以随意调出使用 (5)测量并显示环境温度,温度测量误差不大于1℃; (6)称量0-10kg称重; (7)语音播报测量结果 2.发挥部分:

(1)具有实时时钟显示并具有掉电保护,可显示日历时钟(年、月、日、时、分、秒); (2)扩展高精度A/D转换器,提高电子计价秤测量精度,测量误差不大于±0.01%; (3)能预存10种商品的名称(或代号)和商品的单价;

单元模块设计:

1、主控芯片模块 2、TFT液晶屏模块 3、称重模块

4、语音播报模块

5、24bitAD HX711转换模块 6、软件部分

模块介绍:

1、主控芯片模块

在该制作中,我们采用了STM32为主控芯片,主要是考虑到HX711是24bit的AD,运算量大,且我们的制作还加设了TFT彩色液晶模块,语音播报模块等的外设,普通的MCU的刷屏和运算速度是不够的,所以我选择了STM32作为主控芯片。下面是关于芯片的主要介绍:STM32F103xC 、STM32F103xD 和STM32F103xE 增强型系列使用高性能的ARM? Cortex?-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器( 高达512K字节的闪存和64K 字节的SRAM),丰富的增强I/O 端口和联接到两条APB总线的外设。所有型号的器件都包含3个12位的ADC、4个通用16位定时器和2 个PWM定时器,还包含标准和先进的通信接口:多达2 个I2C 接口、3 个SPI接口、2个I2S 接口、1个SDIO接口、5个USART接口、一个USB接口和一个CAN接口

2、TFT彩色液晶模块

TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的

每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。该模块有如下特点: 1,320×240的分辨率。 2,16位真彩显示。

3,自带触摸屏,可以用来作为控制输入。

4,通用的接口,除了ALIENTEK MiniSTM32开发板,该液晶模块还可以使用在优异特、 STMSKY、红牛等开发板上。

这里在硬件上,TFTLCD模块与IO口对应关系如下: LCD_LED对应PC10; LCD_CS对应PC9; LCD _RS对应PC8; LCD _WR对应PC7; LCD _RD对应PC6;

LCD _D[17:1]对应PB[15:0];

TFTLCD显示需要的相关设置步骤如下: 1) 设置STM32与TFTLCD模块相连接的IO。

这一步,先将我们与TFTLCD模块相连的IO口设置为输出,具体使用哪些IO口,这里需要根据连接电路以及TFTLCD模块的设置来确定。 2) 初始化TFTLCD模块。

其实这里就是上和上面OLED模块的初始化过程差不多。通过向TFTLCD写入一系列的设置,来启动TFTLCD的显示。为后续显示字符和数字做准备。 3) 通过函数将字符和数字显示到TFTLCD模块上。 触控部分:

电阻式触摸屏利用压力感应进行控制。电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面

涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘。 当手指触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。控制器侦测到这一接触并计算出(X,Y)的位置,再根据获得的位置模拟鼠标的方式运作。这就是电阻技术触摸屏的最基本的原理。 电阻屏的特点有:

1)是一种对外界完全隔离的工作环境,不怕灰尘、水汽和油污。 2)可以用任何物体来触摸,可以用来写字画画,这是它们比较大的优势。 3)电阻触摸屏的精度只取决于A/D转换的精度,因此都能轻松达到4096*4096。

3、称重模块

满量程输出电压=激励电压x灵敏度2.0mv/v

例如:供电电压是5v乘以灵敏度2.0mv/v=满量程10mv

接线:红线输入电压+,黑线输入电压-,绿线输出信号+,白线输出信号- 安装方式:悬臂梁安装方式

4、语音播报模块

WT588D 语音芯片是一款功能强大的可重复擦除烧写的语音单片机芯片。WT588D 让语音芯片不再为控制方式而寻找合适的外围单片机电路,高度集成的单片机技术足于取代复杂的外围控制电路。配套 WT588D VoiceChip 上位机操作软件可随意更换 WT588D语音单片机芯片的任何一种控制模式,把信息下载到 SPI-Flash 上即可。软件操作方式简洁易懂,撮合了语音组合技术,大大减少了语音编辑的时间。完全支持在线下载,即便是 WT588D 通电的情况下,一样可以通过下载器给关联的 SPI-Flash 下载信息,给 WT588D语音芯片电路复位一下,就能更新到刚下载进来的控制模式

本作品的语音播报模块使用了一线串口控制模式,可通过发码端控制语音播放、停止、循环播放和音量大小,或者直接触发 0~219 地址位的任意语音,发码速度 600us~2000us; 有两种输出方式:PWM 和 DAC ,PWM 输出可直接推动 0.5W/8Ω的扬声器,DAC 输出外接功放,音质好。由于本作品对音质没有过高要求,所以使用PWM输出方式。

使用WT588D语音播报模块时需要使用语音合成软件合成语音,然后通过Voice_Chip_V-B软件将语音对应特定地址编译成bin文件下载进WT588D模块中。

5、24bitAD HX711转换模块

HX711 采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的 24 位 A/D 转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。

该芯片与后端 MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道 A 或通道 B,与其内部的低噪声可编程放大器相连。通道 A 的可编程增益为 128 或 64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道 B 则为固定的 64 增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的 A/D 转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。 特点:

? 两路可选择差分输入

? 片内低噪声可编程放大器,可选增益为 64 和128

? 片内稳压电路可直接向外部传感器和芯片内A/D 转换器提供电源 ? 片内时钟振荡器无需任何外接器件,必要时也可使用外接晶振或时钟 ? 上电自动复位电路

? 简单的数字控制和串口通讯:所有控制由管脚输入,芯片内寄存器无需编程 ? 可选择 10Hz 或 80Hz 的输出数据速率 ? 同步抑制 50Hz 和 60Hz 的电源干扰 ? 耗电量(含稳压电源电路): 典型工作电流:< 1.7mA, 断电电流:< 1μA ? 工作电压范围:2.6~ 5.5V ? 工作温度范围:-20~ +85℃ ? 16 管脚的 SOP-16 封装

6、软件部分 TFT驱动部分:

void LCD_WR_REG(u8 data) 写寄存器函数 u16 LCD_ReadReg(u8 LCD_Reg) 读寄存器

void LCD_WriteRAM_Prepare(void) 开始写GRAM u16 LCD_ReadPoint(u16 x,u16 y) 读取个某点的颜色值 void LCD_DisplayOn(void) //LCD开启显示/ void LCD_Clear(u16 Color) 清屏函数 void LCD_Init(void) 初始化lcd

void LCD_DrawPoint(u16 x,u16 y) 画点

void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color) 在指定区域内填充指定颜色 void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2) 画线

void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2) 画矩形

void Draw_Circle(u16 x0,u16 y0,u8 r) 在指定位置画一个指定大小的圆

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_Show2Num(u16 x, u16 y, u16 num, u8 len,u8 size,u8 mode) 显示2个数字 void LCD_ShowString(u16 x,u16 y,const u8 *p) 显示字符串 WT588D部分:

void wt588d_init(void) WT588D初始化

void send_dat(u8 addr) 以一线串口方式发送数据到WT588D void pronounce_num(u16 t) 整数部分数字发音 范围(0~9999)

void pronounce_point3num(u16 t) 小数部分数字发音范围(0~0.999)

void pronounce_point2num(u8 t) 小数部分数字发音范围(0~0.99) HX711部分:

u32 Read_HX711(void) 该函数读取HX711采集回来的经过放大以后的值 u32 Sampling(void) 该函数将AD采样回来的值算术平均数字滤波,去掉最低和最高后的平均值

main.c部分:

void UI(void) 设置界面

main函数中整合各个模块的函数实现电子秤称重功能,TFT显示功能等等。

总结:

由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标

参考文献:

(1) <<例说STM32>> 刘军 北京航空航天大学出版社

(2)<<电子技术基础—模电部分>> 康华光 高等教育出版社 (3)<<电子技术基础—数电部分>> 康华光 高等教育出版社