基于51单片机的硬币电子秤的实现
【实例简介】这是基于51单片机的硬币电子秤的实现,内含C语言源码和proteus仿真实现
文件:590m.com/f/25127180-489412834-ab5d3d(访问密码:551685)
【源码目录】
硬币电子秤的实现
├── 1Kg电子秤程序(LCD1602显示)
│ ├── HX711.H
│ ├── HX711.LST
│ ├── HX711.OBJ
│ ├── HX711.c
│ ├── LCD1602.LST
│ ├── LCD1602.OBJ
│ ├── LCD1602.c
│ ├── LCD1602.h
│ ├── MAIN.H
│ ├── lcd12864.LST
│ ├── lcd12864.OBJ
│ ├── lcd12864.c
│ ├── lcd12864.h
│ ├── main
│ ├── main.LST
│ ├── main.M51
│ ├── main.OBJ
│ ├── main.c
│ ├── main.hex
│ ├── main.lnp
│ ├── main.plg
│ ├── main.uvgui.Administrator
│ ├── main.uvgui.Cai Chao
│ ├── main.uvgui_Administrator.bak
│ ├── main.uvgui_Cai Chao.bak
│ ├── main.uvopt
│ ├── main.uvproj
│ ├── main_uvopt.bak
│ ├── main_uvproj.bak
│ ├── uart.LST
│ ├── uart.OBJ
│ ├── uart.c
│ └── uart.h
├── HX711模块加载文件
│ └── HX711.hex
├── Last Loaded 电子秤实现3.fv8.5.pdsbak
├── Last Loaded 电子秤实现3.pdsbak
├── 电子秤实现3.pdsprj
├── 电子秤实现3.pdsprj.DESKTOP-SC10NBS.zxh.workspace
└── 电子秤实现3.pdsprj.LAPTOP-KPK9NO8B.浪峰姐姐.workspace
2 directories, 39 files
【核心代码】void main()
{
Uart_Init();
Send_Word(“Weight”);
Send_Word(“Num”);
Init_LCD1602();
LCD1602_write_com(0x80);
LCD1602_write_word(“Weight”);
LCD1602_write_com(0x80 7);
LCD1602_write_word(“Num”);
Delay_ms(1000); //ÑÓʱ,µÈ´ý´«¸ÐÆ÷Îȶ¨
Get_Maopi(); //³ÆëƤÖØÁ¿
while(1)
{
EA = 0;
Get_Weight(); //³ÆÖØ
Number = Weight_Shiwu/(coin_weight*10);
EA = 1;
Scan_Key();
//ÏÔʾµ±Ç°ÖØÁ¿
if( Flag_ERROR == 1)
{
Send_Word(“ERROR\n”);
LCD1602_write_com(0x80 0x40);
LCD1602_write_word(“ERROR “);
}
else
{
Send_ASCII(Weight_Shiwu/1000 0X30);
Send_ASCII(Weight_Shiwu%1000/100 0X30);
Send_ASCII(Weight_Shiwu%100/10 0X30);
Send_Word(”.”);
Send_ASCII(Weight_Shiwu%10 0X30);
Send_Word(“g”);
LCD1602_write_com(0x80 0x40);
LCD1602_write_data(Weight_Shiwu/1000 0X30);
LCD1602_write_data(Weight_Shiwu%1000/100 0X30);
LCD1602_write_data(Weight_Shiwu%100/10 0X30);
LCD1602_write_word(".");
LCD1602_write_data(Weight_Shiwu%10 0X30);
LCD1602_write_word(“g”);
Send_ASCII(Number/100 0x30);
Send_ASCII(Number%100/10 0x30);
Send_ASCII(Number%10 0x30);
LCD1602_write_com(0x80 0x40 7);
LCD1602_write_data(Number/100 0x30);
LCD1602_write_data(Number%100/10 0x30);
LCD1602_write_data(Number%10 0x30);
Send_ASCII(coin/10 0x30);
Send_ASCII(coin%10 0x30);
Send_Word(“jiao”);
LCD1602_write_com(0x80 12);
LCD1602_write_data(coin/10 0x30);
LCD1602_write_data(coin%10 0x30);
LCD1602_write_com(0x80 0x40 12);
LCD1602_write_word(“jiao”);
}
}
}
以下内容无关:
-------------------------------------------分割线---------------------------------------------
Block Formatting Context
块盒子布局发生的区域,浮动元素和其他元素交互的区域
浮动定位和清除浮动的时候只会应用于同一个BFC内的元素。浮动不会影响其他BFC中元素的布局,而清除浮动只能清除同一BFC中在它前面的元素的浮动。
外边距的折叠也只会发生在同一BFC中的块级元素之间。可以创建新的BFC来消除外边距的折叠问题。
常见的定位布局方案有,普通流,浮动和绝对定位。
BFC 是一块渲染区域,有一套渲染定位规则。决定子元素定位其他元素的关系和相互作用,是属于普通流的。具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。
其实也不是什么新鲜东西,可能都在用但不知道这个概念。
案例1:使浮动元素和周围内容等高
对于以下代码:
I am content inside the container.
显示的效果如下:
因为浮动盒子脱离了文档流。浮动的div元素更大,就穿出了边框。
一般是需要将盒子和浮动元素做成等高的,即浮动元素应该包含在box内部,要达到这个效果,可以这样:
使用display: flow-root
一个新的display属性值,可以创建无副作用的BFC。在父级元素中使用display: flow-root就可以创建新的BFC。
可以理解为和创建根元素一样,创建一个文档流的上下文。
使用overflow:auto
只要设置overflow为一个非visible的值就可以。使用overflow创建一个新的BFC,overflow会告诉浏览器如何处理超出部分的内容。
但是如果只是用来创建BFC的话,可能引发其他情况。
案例2: 清除外部浮动
对于以下代码:
Normal
display:flow-root
这里需要关注的是float元素上的margin-right这个属性。
上面的两个元素之间,margin-right 没有生效。但是对box添加display:flow-root属性之后,margin-right 属性就生效了,左边的元素缩放的时候始终都保持有25px的距离。也就是display:flow-root对同级的外部元素的浮动也清除了。
如果对HTML部分写成这样:
Normal
display:flow-root
xx
消除同级元素的float, 显示出 margin-right 的效果就更明显了。
需要注意的是:清除同一BFC中的浮动,只能清除在它前面元素的浮动。
案例3: 外边距塌陷问题
对于如下代码:
显示的效果如下:
可以看到,对red-inner的margin没法撑起盒子,两个蓝色盒子之间的距离是50px.
使用display: flow-root;
两个蓝色盒子就距离100px了,而且margin也完全显示了出来。
创建BFC的方法
使用这些BFC的特性,需要创建出BFC:
根元素()
浮动元素(元素的 float 不是 none)
绝对定位元素(元素的 position 为 absolute 或 fixed)
行内块元素(元素的 display 为 inline-block)
表格单元格(元素的 display 为 table-cell,HTML表格单元格默认为该值)
表格标题(元素的 display 为 table-caption,HTML表格标题默认为该值)
匿名表格单元格元素(元素的 display 为 table、table-row、 table-row-group、
table-header-group、table-footer-group(分别是HTML table、row、tbody、thead、tfoot 的默认属性)或 inline-table) overflow 计算值(Computed)不为 visible 的块元素 display 值为 flow-root 的元素 contain 值为 layout、content或 paint 的元素 弹性元素(display 为 flex 或 inline-flex元素的直接子元素) 网格元素(display 为 grid 或 inline-grid 元素的直接子元素) 多列容器(元素的 column-count 或 column-width (en-US) 不为 auto,包括
column-count 为 1)
column-span 为 all 的元素始终会创建一个新的BFC,即使该元素没有包裹在一个多列容器中(标准变更,Chrome bug)
什么又是 IFC?
相对于块级格式化上下文,还有行内格式化上下文,Inline formatting context。
对于IFC,行内框一个接一个地排列,排列顺序和书写方向一致。
水平书写模式,行内框从左边开始水平排列
垂直书写模式,行内框从顶部开始水平排列
一个行内框在被分割到多行中的时候,margin,border以及padding的设定不会在断裂处生效(边框跨行连续,不会产生两块border)
Margin,border和padding的设置在行方向上生效。
垂直方向上对齐
垂直方向上的位置主要是用vertical-align
显示效果:
而如果将vertical-align: bottom设置为top,效果则是顶部对齐:
需要注意的是,如果文字方向是垂直书写模式的话,对齐方式不变,但实际上应该是左右对齐,与vertical-align的字面意思稍有出入。在vertical-align:top再加上writing-mode: vertical-rl。
水平方向上对齐
行内元素在水平方向上的位置主要是用text-align
基于51单片机的硬币电子秤的实现相关推荐
- 【034】基于51单片机的HX711电子秤Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的HX711电子秤proteus仿真设计一份: (2).基于51单片机的HX711电子秤proteus仿真设计keli源代码一份: (3).基于51单片机的H ...
- 基于51单片机的智能电子秤设计
具体实现功能 系统由STC89C51单片机+最小系统+LCD1602液晶显示模块+HX711AD模块+LED模块+蜂鸣器+按键模块+10kg压力传感器构成. 具体功能: 1.数码管显示当前的重量,单位 ...
- 基于51单片机语音播报电子秤体重秤系统设计
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Protues仿真 七.流程图 八.程序源码 九.资料包括 摘要 秤是一 ...
- 14、基于51单片机智能硬币分拣机 投币分类筛查计数器 电子存钱罐系统设计
毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Proteus图 七.程序源码 八.资料包括 摘要 近年来,随着我国经济 ...
- 基于51单片机的简易电子秤
首先看看题目要求: 1.方案论证 (1)压力传感器的论证与选择 方案一:采用惠更斯电桥,当电阻应变片承受载荷产生变形时,其阻值将发生变化.从而使电桥失去平衡,产生相应的差动信号,但其线性度不理想. 方 ...
- 基于51单片机的蓝牙电子秤设计
1.设计方案 本设计以STC89C52单片机为主控芯片制作了一款数字电子秤,以电阻应变式压力传感器来进行称重,将感应到的被测物体的重力转化为微弱的毫伏级电压信号,在HX711芯片内部进行128的增益放 ...
- 基于51单片机的智能电子秤设计课程设计毕业设计
微信公众号:创享日记 对话框发送:单片机电子秤 获取仿原理图.真源文件.源程序代码和论文报告等 由STC89C51单片机+最小系统+LCD1602液晶显示模块+HX711AD模块+LED模块+蜂鸣器+ ...
- 基于51单片机的智能电子秤
1.概述 (1)系统原理 本电子秤系统利用压力传感器采集因压力变化产生的电压信号,经过电压放大电路放大,然后再经过模数转换器转换为数字信号,最后把数字信号送入单片机.单片机经过相应的处理后,得出当前所 ...
- 用单片机c51电子秤的c语言,基于51单片机的电子秤系统设计
微机原理论文第八篇:基于51单片机的电子秤系统设计 摘要:本文主要分析51单片机下的数字电子秤.在设计过程中,这种电子秤具体包括电源.传感器.蓝牙.转换器.单片机.键盘.开关.显示器等组成部分,在实践 ...
最新文章
- F# 4.0于全平台发布
- mysql创建字段非空NOT NULL的好处
- Windows环境下利用VS和mingw编译LLVM
- JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用
- Binary String Matching(C++)
- java 注册页面正则式_Java使用正则表达式对注册页面进行验证功能实现
- 利用Python发送短信,用处多多
- 高可用性HA及Cluster集群
- win2003域迁移实战记录
- UEFI 文件类型.efi
- 使用 DUET/REFIND 方法将 NVME 添加为引导驱动器
- 利用纯m文件生成ui(二)
- 智能陈桥输入法软件测试,智能陈桥输入法无法使用.怎么办?
- 联想System X 3650M5 服务器装机问题记录
- 计算机 键盘启动,键盘开机如何打开键盘
- VS解决方案下文件的含义(记录)
- idea用JAVA连接mysqlAccess denied for user ‘root‘@‘localhost‘ (using password: YES)错误
- 和平精英分数计算机制,和平精英掉分机制怎么计算
- mysql按1-12月查询统计数据
- Actions(鼠标事件)方法列表