基于单片机的智能数字电子秤课程设计

基于单片机的智能数字电子秤课程设计

基于单片机的智能数字电子秤课程设计-创享日记
基于单片机的智能数字电子秤课程设计
此内容为付费资源,请付费后查看
32
立即购买
您当前未登录!建议登录后购买,可保存购买订单
付费资源

资源概况

知识点关键词:智能电子秤单片机、C51、C52
 
一、购买本资源包含以下内容
1、C语言源程序
2、原理图源文件
3、PCB源文件
4、仿真源文件
5、元器件清单和制作教程
6、任务书等
7、配套设计报告
8、相关讲解视频等

基于单片机的智能数字电子秤课程设计-创享日记

基于单片机的智能数字电子秤课程设计-创享日记

基于单片机的智能数字电子秤课程设计-创享日记

基于单片机的智能数字电子秤课程设计-创享日记

基于单片机的智能数字电子秤课程设计-创享日记

基于单片机的智能数字电子秤课程设计-创享日记

 

二、资源内容简介
基于51单片机的智能电子秤设计
由STC89C51单片机+最小系统+LCD1602液晶显示模块+HX711AD模块+LED模块+蜂鸣器+按键模块+10kg压力传感器构成。
具体功能:
1、数码管显示当前的重量,单位是g;
2、有去皮和清零功能,可以通过三个按键微调校准重量;
3、最大称重9.999kg,超过最大量程声光报警。
 
三、特别说明
1、电子资源,一经售出,概不退款;
2、不提供指导;
3、每年售卖数量有限,售完为止。
 

资源介绍(截取部分,完整请购买)

一、具体实现的功能

由STC89C51单片机+最小系统+LCD1602液晶显示模块+HX711AD模块+LED模块+蜂鸣器+按键模块+10kg压力传感器构成。

1、数码管显示当前的重量,单位是g;
2、有去皮和清零功能,可以通过三个按键微调校准重量;
3、最大称重9.999kg,超过最大量程声光报警。


秤是一种在实际工作和生活中经常用到的测量器具。随着计量技术和电子技术的发展,传统纯机械结构的杆秤、台秤、磅秤等称量装置逐步被淘汰,电子称量装置电子秤、电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐。

和传统秤相比较,电子秤利用新型传感器、高精度AD转换器件、单片机设计实现,具有精度高、功能强等特点。本课题设计的电子秤具有基本称重、键盘输入、计算价格、显示、超重报警功能。该电子秤的测量范围为0-10Kg,测量精度达到5g,有高精度,低成本,易携带的特点。电子秤采用液晶显示汉字和测量记过,比传统秤具有更高的准确性和直观性。另外,该电子秤电路简单,使用寿命长,应用范围广,可以应用于商场、超市、家庭等场所,成为人们日常生活中不可少的必需品。

二、硬件设计

原理图:

基于单片机的智能数字电子秤课程设计-创享日记

 

1、硬件方案
单片机电子秤硬件方案如图1所示:

基于单片机的智能数字电子秤课程设计-创享日记

称重传感器感应被测重力,输出微弱的毫伏级电压信号。该电压信号经过电子秤专用模拟/数字(A/D)转换器芯片hx711对传感器信号进行调理转换。HX711 采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24 位A/D 转换器芯片,内置增益控制,精度高,性能稳定。HX711芯片通过2线串行方式与单片机通信。单片机读取被测数据,进行计算转换,再液晶屏上显示出来。

矩阵键盘主要用于计算金额。当被测物体重量得到后,用户可以通过矩阵键盘输入单价,电子秤自动计算总金额并在液晶屏显示。电源系统给单片机、HX711电路及传感器供电。

2、称重传感器

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

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

基于单片机的智能数字电子秤课程设计-创享日记

基于单片机的智能数字电子秤课程设计-创享日记

图5为HX711芯片应用于计价秤的一个参考电路图。该方案使用内部时钟振荡器(XI=0),10Hz的输出数据速率(RATE=0)。电源(2.7~5.5V)直接取用与MCU 芯片相同的供电电源。通道A与传感器相连,通道B通过片外分压电阻与电池相连,用于检测电池电压。

4、单片机STC89C51及其电路
5、液晶屏电路
6、矩阵键盘电路
7、声光报警电路
8.电源电路

三、软件设计

1、软件流程图
本设计主程序使用了定时器,用来实现每0.5秒称重一次的功能,流程图如图19所示。键盘扫描程序如图20所示。

基于单片机的智能数字电子秤课程设计-创享日记

 

主程序软件流程如图21所示。

基于单片机的智能数字电子秤课程设计-创享日记

 

3、部分主程序

#include <reg52.h>
#include <intrins.h>
#include <string.h>
#include "main.h"
#include "LCD1602.h"
#include "HX711.h"
#include "eeprom52.h"

#define uchar unsigned char
#define uint  unsigned int

unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0;
unsigned long Weight_Maopi_0 = 0;
long Weight_Shiwu = 0;
unsigned int qupi=0;
//键盘处理变量
unsigned char keycode;
unsigned char key_press_num=0;
uint GapValue,GapValue1;

//定义标识
volatile bit FlagTest = 0;		//定时测试标志,每0.5秒置位,测完清0
volatile bit FlagKeyPress = 0;  //有键按下标志,处理完毕清0
//校准参数
//因为不同的传感器特性曲线不是很一致,因此,每一个传感器需要矫正这里这个参数才能使测量值很准确。
//当发现测试出来的重量偏大时,增加该数值。
//如果测试出来的重量偏小时,减小改数值。
//该值可以为小数
//#define GapValue 349
sbit LED=P1^1;
sbit ROW1=P3^0;
sbit ROW2=P3^1;
sbit ROW3=P3^2;
sbit ROW4=P3^3;

volatile bit ClearWeighFlag = 0; //传感器调零标志位,清除0漂

/******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{
	SectorErase(0x1000);
	GapValue1=GapValue&0x00ff;
	byte_write(0x1000, GapValue1);
	GapValue1=(GapValue&0xff00)>>8;
	byte_write(0x1001, GapValue1);
	byte_write(0x1060, a_a);	
}

/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
	GapValue   = byte_read(0x1001);
	GapValue   = (GapValue<<8)|byte_read(0x1000);
	a_a      = byte_read(0x1060);
}

/**************开机自检eeprom初始化*****************/
void init_eeprom() 
{
	read_eeprom();		//先读
	if(a_a != 1)		//新的单片机初始单片机内问eeprom
	{
		GapValue  = 2450;
		a_a = 1;
		write_eeprom();	   //保存数据
	}	
}

//显示重量,单位kg,两位整数,三位小数
void Display_Weight()
{
	LCD1602_write_com(0x80+0x40+8);
	if(Weight_Shiwu/10000==0)
	LCD1602_write_data(' ');
	else
	LCD1602_write_data(Weight_Shiwu/10000 + 0x30);
	LCD1602_write_data(Weight_Shiwu%10000/1000 + 0x30);
	LCD1602_write_data('.');
	LCD1602_write_data(Weight_Shiwu%1000/100 + 0x30);
	LCD1602_write_data(Weight_Shiwu%100/10 + 0x30);
	LCD1602_write_data(Weight_Shiwu%10 + 0x30);
}

四、Proteus仿真

 

基于单片机的智能数字电子秤课程设计-创享日记

 

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容