基于51单片机的电子秤LCD1602液晶显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机电子秤LCD显示

  • 1. 主要功能:
  • 2. 讲解视频:
  • 3. 仿真设计
  • 4. 程序代码
  • 5. 设计报告
  • 6. 设计资料内容清单&&下载链接

基于51单片机电子秤LCD显示( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus8.9及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0083

1. 主要功能:

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

1.电子秤可以数字显示0g-499g间物体的重量,单位克(g);

2.电子秤可以设置单价(元/克)可计算物品金额并实现金额累加,单价范围0.01-0.99元克。

3.通过LCD1602显示单价,物体重量,商品价格和总价;

4.矩阵按键设置单价,计价,价格累加,清零和去皮功能;

5.通过HX711高精度AD转换芯片读取压力传感器数值;

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

img

以下为本设计资料展示图:

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

基于51单片机电子秤LCD1602液晶proteus仿真+程序+报告+讲解

3. 仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

img

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD显示当前商品单价,重量,和商品价格,总价。

img

通过点击矩阵键盘的数字按键可以设置单价,下图设置单价0.12元,通过滑动变阻器可以设置重量,下图设置重量为20g,设置玩按下计价按键即可显示当前商品价格为2.4元。

img

按下价格累加可以记录当前的商品价格,按下清零按键清除掉当前的商品价格和总价。

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

LCD1602部分代码

#include "lcd1602.h"
完整代码见文章后面下载链接压缩包
void delay_uint(uint i)
{while(i--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{e=0;rs=0;rw=0;P0=com;delay_uint(20);e=1;delay_uint(20);e=0;
}/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{e=0;rs=1;rw=0;P0=dat;delay_uint(20);e=1;delay_uint(20);e=0;	
}/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{if(hang==1)   write_com(0x80+add);elsewrite_com(0x80+0x40+add);while(1){if(*p == '\0')  break;write_data(*p);p++;}	
}/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶 
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{write_com(0x38);						//数据总线为8位,显示2行,5x7点阵write_com(0x0c);						//开显示,有光标,光标闪烁write_com(0x06);						//光标自动右移delay_uint(1000);						//等待设置完成
}

HX711代码:

#include"HX711.h"
//k=1,A通道128,k=2,B通道32,k=3,A通道64
ulong HX711_read(uchar k)
{ulong count;uchar i;HX_SCK=0;//使能count=0;while(HX_SDA);//等待转换结束for(i=0;i<24;i++){HX_SCK=1;count<<=1;HX_SCK=0;if(HX_SDA)count++;}switch(k){case 1:HX_SCK=1;HX_SCK=0;break;case 2:HX_SCK=1;HX_SCK=0;HX_SCK=1;HX_SCK=0;break;case 3:HX_SCK=1;HX_SCK=0;HX_SCK=1;HX_SCK=0;HX_SCK=1;HX_SCK=0;break;}//count^=0x800000;return(count);
}

主函数:

#include "reg51.h"
#include "HX711.h"
#include "lcd1602.h"uint press=0;//压力
uchar time=0;uint qupi=0;//去皮记录
uchar money=1;//单价
unsigned long all=0,sum=0;//价格+总价
uchar disp1[]="0.01Y   000g";//单价+重量
uchar disp2[]="000.00Y 0000.00Y";//金额+总价uchar key_scan()//按键检测
{
uchar i,j;
i=0;
j=0;
P1=0x0f;
if(P1!=0x0f) //检测有无按下
{switch(P1)//检测行{case 0x0e:i=1;break;case 0x0d:i=5;break;case 0x0b:i=9;break;case 0x07:i=13;}P1=0xf0;switch(P1)//检测列{case 0xe0:j=0;break;case 0xd0:j=1;break;case 0xb0:j=2;break;case 0x70:j=3;}while(P1!=0xf0);//等待按键松开
}
return i+j;
}
//主函数
void main()
{uchar k=0;init_1602();TMOD|=0X01;TH0=0X3C;TL0=0XB0;	ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1){			k=key_scan();//按键检测//去皮模式if(k==4)//去皮{if(qupi==0){//去皮qupi=press;}else{qupi=0;//取消去皮}}		//设置商品价格if((k>4)&&(k<=14)){money=money%10;money=money*10+k-5;				}if(k==1)//OK{all=press;all=all*money;}if(k==2)//累加{sum=sum+all;}if(k==3)//清零{sum=0;all=0;}}
}
//定时器0中断
void Timer0() interrupt 1
{unsigned long i=0;	
if(time<10)//测量time++;
else
{time=0;i=HX711_read(1);if(i>0x007fffff)i=0;press=500*i/0x007fffff;	//重量折算。最大范围是500gpress=press-qupi;//显示disp1[2]=money/10+0x30;disp1[3]=money%10+0x30;disp1[8]=press/100+0x30;disp1[9]=press%100/10+0x30;disp1[10]=press%10+0x30;disp2[0]=all/10000+0x30;disp2[1]=all%10000/1000+0x30;disp2[2]=all%1000/100+0x30;disp2[4]=all%100/10+0x30;disp2[5]=all%10+0x30;disp2[8]= sum/100000+0x30;disp2[9]= sum%100000/10000+0x30;disp2[10]=sum%10000/1000+0x30;disp2[11]=sum%1000/100+0x30;disp2[13]=sum%100/10+0x30;disp2[14]=sum%10+0x30;write_string(1,0,disp1);write_string(2,0,disp2);
}TH0=0X3C;TL0=0XB0;
}

5. 设计报告

8066字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试等

img

随着现代嵌入式技术的持续进步和实际应用场景的日益丰富,基于单片机设计的电子秤系统因其卓越的性能特点,在多个领域展现出了广泛的应用价值。尤其在商业零售、实验室精密测量以及日常家庭生活中,这些紧凑且高效的电子秤设备以其高精度测量能力、小巧便携的体积以及直观简洁的操作界面赢得了市场的青睐。它们能够精确地量化物体重量,并以数字形式清晰显示,同时具备灵活的价格设定机制,可适应不同商品的计价需求,单价范围从0.01元/克至0.99元/克不等,实现动态的商品价格计算及多次称量后的金额累加功能,大大提升了交易效率与用户体验。

本课程设计项目正是立足于这一技术背景和发展趋势,旨在通过选取经典的51系列单片机作为核心控制器单元,利用其强大的数据处理能力和丰富的外围接口支持,构建一款融合了多重实用功能的电子秤仿真模型。结合Proteus这一业界领先的电路仿真平台,我们将从硬件原理图的设计到软件程序的编写进行全面实践,确保模拟出真实环境中电子秤的各项操作流程和技术指标。

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、原理图

8、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

资料下载链接:

https://docs.qq.com/doc/DS0pjU1ZwRkx5bUh1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深兰科技入选2024全国“人工智能+”行动创新案例TOP100

近日&#xff0c;中科院《互联网周刊》联合eNET研究院、德本咨询、中国社会科学院信息化研究中心共同发布了《2024全国“人工智能”行动创新案例TOP100》榜单。经评委会层层遴选&#xff0c;深兰科技专为洛阳市打造的“工业智能化洛阳中心”项目成功入围该榜单。一同入围的还包…

高通发布电脑CPU,比英特尔Ultra9领先51%

要说2024年最热门的关键词&#xff0c;那肯定非 AI 莫属&#xff0c;当前 AI 已经开始深入各行各业&#xff0c;AI 电视、AI 手机、AI 车机、AI 家电&#xff0c;以及 AI PC ,这些都意味着 AI 将对各个行业带来的新风向和不小的冲击。 2024 年了&#xff0c;PC 处理器还能卷出什…

安居水站:自来水安全性影响因素分析及监测管理对策

摘要&#xff1a;自来水作为人们日常生活的重要组成部分&#xff0c;其安全性直接关系到公众健康。本文深入探讨了可能影响自来水安全性的多种因素&#xff0c;包括水源污染、水处理工艺、供水管网问题、二次供水设施维护不当、工业及农业污染、重金属和微生物污染、季节变化以…

论文笔记:Large Language Models Are Zero-Shot Time Series Forecasters

2023 neurips 完全是零样本&#xff08;zero-shot&#xff09;的&#xff0c;不需要微调 1 方法 1.1 Tokenization&#xff08;分词和编码&#xff09; 现有的LLM&#xff08;比如GPT3&#xff09;的tokenizer不能直接用来编码时间序列的句子 比如对数字42235630&#xff0…

负载均衡的原理及算法

一、定义 负载均衡&#xff08;Load Balancing&#xff09;是一种计算机网络和服务器管理技术&#xff0c;旨在分配网络流量、请求或工作负载到多个服务器或资源&#xff0c;以确保这些服务器能够高效、均匀地处理负载&#xff0c;并且能够提供更高的性能、可用性和可扩展性。…

数据科学与大数据(3)

数据分析&#xff0c;它不应该是在一个不适合的工具下生搬硬套 工具为具体的场景服务&#xff0c;换一个场景大概率会很鸡肋&#xff0c;对于一个成熟的分析师来说&#xff0c;十八般武艺样样精通到后期为常态&#xff0c;不要产生工具上的路径依赖&#xff0c;不要想着学一个工…

IDEA更换新版本启动没反应

目前安装了新的IDEA(压缩包方式)&#xff0c;由于老版本的IDEA还在用&#xff0c;所以并没有删除&#xff0c;但是安装完后发现点击idea64.exe后没有反应&#xff0c;于是网上找了好多方法最后解决了 下面是我的解决过程 新版本&#xff1a;IntelliJIdea2024.1 老版本: Intelli…

ubuntu系统安装配置gitlab+Jenkins+发布持续集成持续部署保姆级教程。

1、服务器环境 名称 系统 IP 备注 gitlab ubuntu20.04.2图形化 192.168.26.130 要求有6G的内存 Jenkins Ubuntu20.04.2图形化 …

Pytorch下张量的形状操作(详细)

目录 一、基本操作函数 二、分类&#xff1a;维度改变&#xff0c;张量变形&#xff0c;维度重排 2.1维度改变 2.2张量变形 2.3维度重排 三、实例 一、基本操作函数 在PyTorch中&#xff0c;对张量的形状进行操作是常见的需求&#xff0c;因为它允许我们重新组织、选择和…

大模型训练及推理【硬件选型指南】及 GPU 通识

我们在做大模型应用部署时&#xff08;如训练、微调、RAG&#xff09;&#xff0c;往往需要在前期就分析好硬件选型指标&#xff0c;或者我们给客户报方案之前&#xff0c;可能你已经有了一个方案&#xff0c;但是由于实践经验缺乏&#xff0c;不知道在硬件上该如何评估并上报。…

CTF练习-BUUCTF(1~25)

文章目录 Crypto题目1 一眼就解密题目解题思路flag 题目2 md5题目解题思路flag 题目3 Url编码题目解题思路flag 题目4 看我回旋踢题目解题思路1解题思路2flag 题目5 摩丝题目解题思路flag 题目6 passwd题目解题思路flag 题目7 变异凯撒题目解题思路flag 题目8 Quoted-printable…

AJAX——封装_简易axios

1.简易axios_获取身份列表 需求&#xff1a;基于Promise XHR 封装 myAxios函数&#xff0c;获取省份列表展示 步骤&#xff1a; 1.定义 myAxios函数&#xff0c;接收配置对象&#xff0c;返回Promise对象 2.发起XHR请求&#xff0c;默认请求方法为GET 3.调用成功/失败的处…

Python与数据库连接

新建表boss create table 创建表 Code import pymysqlcon pymysql.connect(hostlocalhost,\userroot,\password,\port3306,\dbbusiness) cursorcon.cursor() cursor.execute(create table if not exists boss(id int auto_increment primary key,name varchar(20)not null…

WPF2 样式布局

样式布局 WPF中的各类控件元素, 都可以自由的设置其样式。 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Margin) 水平位置(HorizontalAlignment) 垂直位置(VerticalAlignment) 等等。 而样式则是组织和重用以上的重要工具。…

Docker基础+虚拟化概念

目录 一、虚拟化简介 1、虚拟化概述 2、cpu的时间分片&#xff08;cpu虚拟化&#xff09; 3、cpu虚拟化性性能瓶颈 4、虚拟化工作 4.1虚拟机工作原理 4.2两大核心组件:QEMU、KVM 4.2.1QEMU&#xff1a; 4.2.2KVM&#xff1a; 5、虚拟化类型 ①全虚拟化&#xff1a; …

国内开通chatgpt plus会员方法

ChatGPT镜像 今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用ChatGPT吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像…

微软如何打造数字零售力航母系列科普02 --- 微软低代码应用平台加速企业创新 - 解放企业数字零售力

微软低代码应用平台推动企业创新- 解放企业数字零售力 微软在2023年GARTNER发布的魔力象限图中处于头部领先&#xff08;leader&#xff09;地位。 其LCAP产品是Microsoft Power Apps&#xff0c;扩展了AI Builder、Dataverse、Power Automate和Power Pages&#xff0c;这些都包…

Vue3 Vite配置环境变量

Vue3 Vite配置环境变量 相关文档配置.env文件vite.config.jspackage.json 使用 相关文档 Vite 官方中文文档&#xff1a;https://cn.vitejs.dev/环境变量和模式&#xff1a;https://cn.vitejs.dev/guide/env-and-mode.html#env-file在配置中使用环境变量&#xff1a;https://c…

SCADA系统通过巨控GRM模块实现OPC协议远程监控PLC

SCADA系统和PLC不在同一个地方&#xff0c;需要远程监控和控制PLC&#xff0c;可以通过巨控GRM模块来实现&#xff0c;通过OPC协议转巨控服务器远程读写PLC寄存器&#xff0c;从而完成远程监控PLC。 要实现SCAKDA系统远程监控PLC&#xff0c;关键是要实现SKADA能通过互联网访问…

都2024 年了,可以卸载的VS Code 插件

在 VS Code 中&#xff0c;庞大的插件市场提供了丰富多样的扩展功能&#xff0c;以增强编码体验和效率。然而&#xff0c;如果你安装了很多插件&#xff0c;就可能会导致&#xff1a; 性能下降&#xff1a;过多的插件可能导致 VS Code 的启动速度变慢&#xff0c;特别是在启动或…