毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

这篇具有很好参考价值的文章主要介绍了毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


0 前言

🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

🧿 项目分享:

https://gitee.com/sinonfin/sharing文章来源地址https://www.toymoban.com/news/detail-508191.html

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

1 主要功能

本系统采用STC89C52RC芯片为主要控制单元,并配有单片机最小系统,由复位模块,晶振模块,电源电路模块,构成了一个最小的主控系统。主控系统以4×4矩阵键盘作为基于单片机的电子秤系统的控制输入模块;以LCD12864液晶显示模块作为单片机为核心的电子秤系统输出显示模块;5KG压力传感器作为基于单片机的电子秤系统的物品重量模拟量采集模块;以HX711模块作为AD模数转换模块,把读取到的物品重量AD值传给STC89C52RC芯片,再通过相关数据公式转换,把物体的实际重量和物品数量总价通过LCD12864液晶显示模块显示出来。基于单片机的电子秤系统的硬件设计图如图

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

2 硬件设计(原理图)

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

3 核心软件设计

基于单片机的电子秤系统主程序流程图分为:模块初始化、初始化显示信息、物品重量的测量、物品总重量和总价格计算、蜂鸣器报警模块、矩阵键盘扫描和LCD1602液晶显示。系统主程序运行后,搭载的所有模块都会被初始化,当所有模块初始化完,LCD12864液晶显示模块会显示“价格 ”等字符,接着进行物品重量的测量,当读取到的物体重量超出范围时,LED灯闪烁报警,LCD12864液晶显示模块会显示错误,以此提示物体超重,当物品在测量范围内,就可以通过4×4矩阵按键扫描输入物品的总数量和单价计算出物品的总价格和总质量并通过LCD12864液晶显示模块显示这些信息。程序流程图如图

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

关键代码

#include<reg52.h>	 
#include<lcd12864.H>
#include<HX711.h>
#include<KEY.h>
#include<math.h>
#include<stdio.h>
#define	MAX 3		 宏定义,单价最大输入3位数
sbit led=P3^2; 超重指示灯
uchar key;       储存按键值    
double price=0;      储存0时单价
double prices=0;      储存最终单价 
double pricess=0;    储存最终总价
bit price_f=0;       记录输入单价标志
bit price_w=0;       记录输入单价完成标志
bit dian_f=0;         小数单价标志
bit dian_w=0;        
uchar n=0;	          
uchar z_s[9]="        \0"; 
uchar wei=0;	     
void clear_data()
{
	uchar i;
	for(i=wei;i<8;i++) 
		z_s[i]=' ';
}
/********************************************************
void fixed_display()
{  	
	LCD12864_display_string(0,1,"重量: ");  
	LCD12864_display_string(0,2,"单价: 0 "); 
	LCD12864_display_string(0,3,"总价: ");
	LCD12864_display_string(0,4,"合计: ");

	LCD12864_display_string(7,1,"g ");
	LCD12864_image3216(6,2,ASI);		   
	LCD12864_display_string(7,3,"元");
	LCD12864_display_string(7,4,"元");
} 
void chuli()
{
	if(key<=9)//判断当前按下是否为0~9的数字键
	{
		if((price_f==1&&price_w==0&&n<MAX)||(dian_f==1&&dian_w==0)) 
		{
			if(dian_f==0)		    
			{
				if(price==0)		
				{
					price=key;      
					n=1;			
				}
				else				
				{
					price=price*10+key; 
					n++;				
				}
				if(n==MAX)			
					price_w=1;				
			}
			else					 
			{						  
				price=price+(float)key/10;
				dian_w=1;				  
				price_w=1;				 
			}				 
		}
	}
	if(key=='.')
	{		
		if(price_f==1&&dian_f==0) 
			dian_f=1;
	}
	if(key=='Q')
	{
		if(price_f==0)			 
			init_val=fil(3);		 
	}  
	if(key=='D')
	{
		 price_f=1;				
		 LCD12864_display_string(3,2,"        ");
	}
	if(key=='T')				  
	{
		 if(price_f==1&&price!=0) 
		 {
		 	if(dian_f==1)		 
			{
				price_w=0;
				dian_w=0;		
				dian_f=0;
				price=(ulong)price;	
				LCD12864_display_string(3,2,"        ");
			}
			else				  
			{
				n--;			 
				price_w=0;			
				price=(ulong)price/10;
				LCD12864_display_string(3,2,"        ");
			}
		 }
		 else
			 if(price_f==0)
			 {
			 	 prices=0;
				 LCD12864_display_string(3,2,"        ");
			 	 pricess=0;
				 LCD12864_display_string(3,4,"        ");
			 }
	}
	if(key=='C')
	{
		if(price_f==0&&value<=10000)
		{
			pricess+=(double)value/1000*prices;    	   
			wei=sprintf(z_s,"%0.1f",(double)pricess);
			clear_data();						   
			LCD12864_display_string(3,4,z_s);	   
		}
	}
	if(key=='=')
	{
		if(price_f==1)	  
		{	
			 prices=price; 
			 price_f=0;   
			 price=0;
			 n=0;
			 price_w=0;
			 dian_f=0;
			 dian_w=0;
	    }
	}
}
void main()
{
	LCD12864_init();	  
	LCD12864_display_string(0,2,"欢迎使用电子秤. ");
	init_val=fil(30);				
	while(ii>=8000)					
	{
		LCD12864_clear12864();			
		LCD12864_display_string(2,1,"☆警告☆");	  
		LCD12864_display_string(1,2,"未检测到模块");
		LCD12864_display_string(0,3,"关闭电源后检测下");
		LCD12864_display_string(0,4,"HX711 是否插接好");		
	}
	init_val=fil(10);  调用一个fil函数,给了个参数值是10,给了个返回值,init_val
	write_com(0x01);  
	LCD12864_clear12864();      
	fixed_display();				
	while(1)					    
	{
		if(price_f==0)			   
		{
			value=fil(3);         
			if(value<init_val) 
				value=(init_val-value)/357.53;
			else
			{
				value=0;			
				led=1;				
			}
			if(value<=5000)        
			{
				led=1;             
			    wei=sprintf(z_s,"%ld",(ulong)value);
				clear_data();		
				LCD12864_display_string(3,1,z_s);
				wei=sprintf(z_s,"%0.1f",(double)value/1000*prices);
				clear_data();		
				LCD12864_display_string(3,3,z_s);
			}
			else
			{
				led=0; 
				LCD12864_display_string(3,1,"超重    "); 
			}	
		}
		key=keyscan()
		if(key!=0xff) 
		{
			chuli();
			if(price_f==1) 
			{
				if(dian_f==1)
				{
					wei=sprintf(z_s,"%0.1f",price);	  
					clear_data();					   
					LCD12864_display_string(3,2,z_s);  
					LCD12864_clear3216(6,2);
				}
				else
				{
					wei=sprintf(z_s,"%ld",(ulong)price);	
					clear_data();					    
					LCD12864_display_string(3,2,z_s);   
					LCD12864_clear3216(6,2);	
				}
			}
			else
			{
				wei=sprintf(z_s,"%0.1f",prices);	   
				clear_data();						   
				LCD12864_display_string(3,2,z_s);	    
				LCD12864_image3216(6,2,ASI);		    
			} 			
		} 			
	}
}

4 实现效果

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

5 最后

包含内容

毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

🧿 项目分享:

https://gitee.com/sinonfin/sharing

到了这里,关于毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 毕业设计 基于51单片机的手机蓝牙控制8位LED灯亮灭设计

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2024年02月07日
    浏览(46)
  • 毕业设计 基于51单片机的汽车倒车防撞报警系统 (源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月09日
    浏览(48)
  • 【51毕业设计案例】【006】波形发生器(正弦波、矩形波、三角波、锯齿波)-基于51单片机

    功能介绍: 1.输出 正弦波、矩形波、三角波、锯齿波 波形 2.设定波形输出频率 3.设定修改频率的步进值 整体功能简述: 通过按键可以修改输出的波形,一共可以输出四种波形,分别是:正弦波、矩形波、三角波、锯齿波 ;波形也可以修改频率,频率范围为50Hz~0.1Hz。并且可

    2024年02月09日
    浏览(40)
  • 【毕业设计】基于超声波智能跟随小车 - 单片机 物联网 stm32 c51

    自动跟随小车系统由两部分组成:跟随小车和移动目标携带装置。 工作原理:跟随小车系统通过无线通信模块发送寻找信号,同时超声波接收器开始计时,如果移动目标接收到无线寻找信号,则立即发送超声波信号。这样小车的三角超声波接收器陆续收到超声波信号,CPU通过

    2023年04月08日
    浏览(45)
  • 【毕业设计】6-基于51单片机的电子称重装置/电子测温/压力测试控制系统设计(原理图+源码+仿真工程+论文+PPT)

    包含此题目毕业设计全套资料: 原理图工程文件 工程源代码工程文件 仿真工程文件 论文(低重复率), 21533字 原理图截图 仿真截图 主要研究内容: 设计一个基于51单片机的电子称重装置,该装置主要由51单片机、传感器、A/D转换器、电源、键盘、LCD、LED显示器等实验器材

    2024年02月03日
    浏览(48)
  • 毕业设计 基于51单片机环境监测设计 光照 PM2.5粉尘 温湿度 2.4G无线通信

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2023年04月08日
    浏览(41)
  • 【毕业设计】58-基于51单片机的智能语音密码锁设计(原理工程+PCB工程+仿真工程+源代码+答辩论文+实物图)

    主要研究内容: 掌握电子密码锁的原理、构造、以及运用51单片机设计出一款简易密码锁,实现相应的一些要求;掌握并且实际运用所学知识,将书中知识转化为实际能力;对密码锁的应用和未来的发展进行分析。 研究方法: 通过相关的书籍和网上资料,查阅相关资料,收集有

    2024年02月05日
    浏览(48)
  • 毕业设计 单片机推箱子游戏(AT89C51)

    一、电路设计 此电路由AT89C51最小系统、LCD12864显示模块、74LS08芯片和四个独立按键组成。 LCD12864显示模块 带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置

    2024年02月21日
    浏览(43)
  • 基于单片机的毕业设计推荐

    ** ** 1、基于51单片机的多功能门禁系统(低端、功能限制较大)。 2、基于单片机的多功能实时时钟。 3、基于单片机的音乐播放器。 4、基于STM32单片机的多功能门禁系统(高端、没有限制)。 5、基于单片机的智能窗帘系统。 6、基于单片机的智能灯光系统。 7、基于单片机

    2024年02月06日
    浏览(47)
  • 【单片机毕业设计】【mcuclub-jj-011】基于单片机的加湿器的设计

    项目名:加湿器 项目编号:mcuclub-jj-011 单片机类型:STC89C52 具体功能: 1、通过DHT11获取湿度值,当湿度值低于设置最小值,则启动加湿器加湿,大于设置最大值,则停止加湿 2、通过液位检测模块检测加湿器中是否还有水,如果没有,则自动停止加湿、声光提醒 3、通过按键

    2023年04月17日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包