将单片机项目实训——51单片机电子秤(语音播报版)分享出来,如有不足,敬请指出。

【实验图片】

【演示视频】

【项目实训】51单片机电子秤(语音播报版)

目录

一、设计要求

二、方案选择

三、软件设计

四、图片展示

五、资料链接

六、设计要点

七、关于作者

八、后记


一、设计要求

1.利用单片机对数字电子秤的各种功能进行控制。

2.数字电子秤能够显示商品的重量、单价,且自动完成商品总价的计算,可通过语音播报商品总价。

3.数字电子秤的测量范围要求达到5KG,测量精度要求达到1g。

二、方案选择

1.设计思路

根据设计要求,首先要实现电子秤的称重基本功能,需要通过称重传感器采集到重量信号,经放大电路处理后,由模数转换成数字量,因此每一数字量就对应着一个物体的质量(在一定精度范围内),所以只要将转换成的数质量与物体质量建立映射关系,即可完成称重的要求。而其他的功能则可以通过程序运算来实现,并通过键盘进行控制。

总体结构框架图如下所示:

原理图如下所示:

        2.控制器

本系统基于51单片机来实现,因为系统需要控制液晶显示和键盘,不宜采用大规模可编程逻辑器件,如CPLD、FPGA来实现。因为大规模可编程逻辑器件一般是使用状态机方式来实现的,即所解决的问题都是有规则的有限状态转化问题。本系统状态较多,难度较大。另外系统没有其他高标准的要求,最终选择STC89C52RC单片机来实现系统设计,其内部带有8K的程序存储器,可以满足系统设计需求。

3.数据采集部分

(1)传感器。传感器是测量机构最重要的部件,本系统选择的是电阻应变式压力传感器,电阻应变式压力传感器主要有弹性体、电阻应变片电缆线等组成。内部线路采用惠斯通电桥,当弹性体承受载荷产生的变形时,电阻应变片受到拉伸或压缩应变片变形后,它的阻值将会发生变化(增大或减小),从而电桥失去平衡,产生相应的差动信号,供后续电路测量和处理。本系统要求测量范围是0~4.999Kg,考虑到秤台自重、振动和冲击分量,还要避免超重损坏传感器,所以传感器量程必须大于额定称重(4.999Kg),我们选择的称重传感器量程为5Kg,实物如下图所示。

(2)A/D转换器。所谓A/D转换器,是将输入的模拟信号转换成数字信号的器件,本设计采用的是HX711,HX711是24位高精度的A/D转换芯片,是一款专为高精度电子秤设计的,具有两路模拟通道输入,内部集成128倍增益可编程放大器,是一款理想的高精度、低成本的设计方案。

(3)液晶显示部分

由于显示需要,本系统选择1602液晶显示屏。

(4)键盘输入

选用带有16个按键的矩阵键盘,其中0~9数字按键、小数点按键用于输入单价;去皮按键用于仅显示物品净重;删除按键用于删除物品单价;校准+/校准-按键用于调节矫正系数,播报按键用于播报物品总价,矩阵键盘布局如图所示。

(5)语音模块

方案一:采用OTP语音芯片(一次性语音芯片)。一次性的语音芯片在厂家完成烧录后,语音内容就无法进行更改,所以需要事先和厂家沟通好,需要播报的语音内容,例如:

先将自己可能用到的语音,全部写入到语音芯片,然后烧写到语音芯片中。虽然OTP语音芯片不能重复烧写,但低成本的优势也让它占有了一定的市场份额,OTP语音芯片被广泛应用在儿童玩具、汽车电子、医疗器械、安防报警等行业。作者之前用到的一款OTP语音芯片,成本不超过2元,对于固定内容的播报,建议使用该方案,其硬件连接也很简单,比如如下图。

方案二:采用集成的语音模块,最好可以支持支持 FAT 文件系统、操作简单类似U盘,但成本是OTP芯片的几倍。考虑到作者后期作品可能涉及到语音播报,需要为后期作品预留可延续性实验,所以作者选择了该方案,电子秤作品中使用的是JQ8400-FL,只需制作好音频文件,通过类U盘操作拷贝至模块内存,然后“一线串口”发送文件名(数字)即可播报语音内容。

此芯片最大的优势在于能够灵活的更换 SPI-flash 内的语音内容,省去了传统语音
芯片需要安装上位机更换语音的麻烦,SPI FLASH 直接模拟成 U 盘,跟拷贝 U 盘一样,
非常方便。使得产品研发和生产变得便捷简单。一线串口控制模式、RX232 串口控制
可选,为研发提供更多的选择性

三、软件设计

(1)主程序

void main()
{System_Init();while(1){Get_Weight();   keycode = MatrixKey_RanksScan();if(keycode){KeyPress(keycode);}   }
}

(2)流程图

<1>主程序流程图

<2>键盘扫描程序流程图

四、图片展示

(1)PCB-3D视图

(2)实物演示

五、资料链接

(1)作品演示视频链接

链接①:哔哩哔哩--------点击播放

链接②:优酷视频--------点击播放

链接③:爱奇艺--------点击播放

链接④:腾讯视频--------点击播放

链接⑤:快手视频--------点击播放

链接⑥:西瓜视频--------点击播放

(2)硬件电路分析视频

链接①:哔哩哔哩--------点击播放

链接②:优酷视频--------点击播放

链接③:爱奇艺--------点击播放

链接④:腾讯视频--------点击播放

链接⑤:快手视频--------点击播放

链接⑥:西瓜视频--------点击播放

(3)软件程序分析视频

链接①:哔哩哔哩--------点击播放

链接②:优酷视频--------点击播放

链接③:爱奇艺--------点击播放

链接④:腾讯视频--------点击播放

链接⑤:快手视频--------点击播放

链接⑥:西瓜视频--------点击播放

(4)原理图下载(PDF版)

链接:百度网盘--------点击下载

(5)源程序下载

链接:百度网盘--------点击下载

六、设计要点

(1)如何实现数据的稳定输出?

数据的稳定输出主要依靠两个方面:①硬件电路      和       ②软件程序。

①先分析硬件电路,HX711为24位的AD模块,对微量的变动非常敏感,所以硬件电路部分一定要注意:

这是作者在设计第一版的电路板的时候的硬件链接,设计后完成发现数据输出不是很稳定,而在E+和E-之间连接一个电解电容,数据的稳定性会有所改善,具体实验过程如下如下:

①首先,E+和E-之间不连接电解电容,然后放置200g标准砝码,采用串口打印相关信息,采集20000次数据,重量数据作图得到:

可以看到,数据稳定性不好,数据范围在0.199Kg~0.202Kg,上下起伏为0.003Kg,即3g左右误差。具体统计如下:

重量值(Kg) 出现次数 次数占比
0.199 689 3.445%
0.2 15259 76.295%
0.201 4047 20.235%
0.202 5 0.025%

也就是正确数据占比为76.295%。实际上,经过作者实验,获取337143次数据,得到的正确数据仅占比46.647%)

②在E+和E-之间连接电解电容,再次实验,采集20000次数据,数据稳定性如下所示:

可以看到,数据稳定性有所好转,具体统计如下:

重量值 出现次数 次数比例
0.2 19998 99.990%
0.201 2 0.010%

也就是正确数据占比为99.990%。在E+和E-之间连接电解电容,20000次数据中只有2次数据出现异常,数据误差只是1g,数据准确性达到99.99%,稳定性较好。

综上所述,建议在E+和E-之间连接电解电容,有利于数据稳定性。

②再分析软件程序,对单片机获取到的重量值,可以采用软件滤波的方式,获取到较为稳定的数据,比如多次求值,然后求平均值,当然还有其他很多滤波方式,都可以去实验,本作品中作者未涉及,有兴趣的可以去试着做。

(2)如何保留小数点后两位有效数字?

float  money=0;     //总价,单位为元money +=0.005;      //用于四舍五入,保留总价有效数值到百分位//注意这里的技巧:巧妙利用数据类型转换,使得总价数值保留到百分位(一般金额精确到分)
money = ((float)((unsigned long)(money*100)))/100;

该作品程序中,有这样两部分代码,摘抄这两句代码在一起。具体举例分析,假设money最开始等于22.986元,通过

money +=0.005;             //用于四舍五入,保留总价有效数值到百分位

得到money等于22.991元,再通过:

//注意这里的技巧:巧妙利用数据类型转换,使得总价数值保留到百分位(一般金额精确到分)
money = ((float)((unsigned long)(money*100)))/100;

注意这里包含两次数据类型转换,第一次money先乘以100得到2299.1,然后强制转换为unsigned long类型数据,得到的就是2299元,然后再将其类型转换为float,得到2299.0元,然后除以100,得到的就是22.99元,得到的结果就是四舍五入后保留小数点后两位的结果。这里巧妙通过加法、两次数据类型转换就可以达到想要的结果,注意这些操作很有技巧性。(该方法是作者现有知识体系下较好的方法,如果有其他方法,欢迎留言评论分享)

七、关于作者

微创电子工作室,刺客阿瑞原创

八、后记

【单片机项目实训】51单片机电子秤(语音播报版)相关推荐

  1. 【单片机项目实训】基于nRF905的多点温度无线采集系统

    将单片机项目实训--基于nRF905的多点温度无线采集系统分享出来,如有不足,敬请指出. [实验图片] [实验视频] 基于nRF905的多点温度无线采集系统设计 目录 目录 一.设计要求 二.方案设计 ...

  2. 【单片机项目实训】八路抢答器

    将单片机项目实训--8路抢答器分享出来,如有不足,敬请指出. [实验图片] [实验视频] [项目实训]8路抢答器 目录 一.设计要求 二.方案选择 三.硬件电路设计 五.其他图片 六.资料链接 七.关 ...

  3. 单片机计算机实训总结,单片机实习心得体会范文

    <单片机实习心得体会范文>由会员分享,可在线阅读,更多相关<单片机实习心得体会范文(8页珍藏版)>请在装配图网上搜索. 1.单片机实习心得体会范文撰写人:___________ ...

  4. 【项目实训】篮球计分系统设计(无线nRF905版本)

    将单片机项目实训--篮球计分系统(无线nRF905版本)分享出来,如有不足,敬请指出. [实验图片] [视频视频] [项目实训]篮球积分系统(nRF905版本) 目录 一.设计要求 二.方案设计 三. ...

  5. Atmel爱特梅尔AT89S52单片机开发实训装置,QY-DPJ12

    AT89S52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM)器件采用A ...

  6. 计算机单片机实训报告,单片机实训总结

    单片机实训总结 总结在一个时期.一个年度.一个阶段对学习和工作生活等情况加以回顾和分析的一种书面材料,它可以给我们下一阶段的学习和工作生活做指导,快快来写一份总结吧.你所见过的总结应该是什么样的?下面 ...

  7. c语言小车寻迹实训报告,循迹小车项目实训报告.doc

    循迹小车项目实训报告 寻迹小车的设计与制作实训报告 课程名称: C51程序设计 EDA技术 专业班级: 应电0935班 指导老师: 方跃春 谭刚林 小组成员: 黄春桥 汤政 孙巍明 阳毅 实训项目要求 ...

  8. C语言编程实训企业计算,C语言编程项目实训

    24.C语言编程项目实训(高级)(全日制一个半月,夜班三个月,学费1390元) 理论与实操一体化课程: 一.C语言基础:1.应用C语言的各种特点:2.应用算法的含义.特点.表示方法 二.C的基本数据类 ...

  9. BeagleBone Black项目实训手册(大学霸内部资料)

    BeagleBone Black项目实训手册(大学霸内部资料) 介绍:本教程是<BeagleBone Black快速入门教程>的后续教程.本教程以项目操作为主,讲解LED项目.声音项目.传 ...

  10. 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA项目实训管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw ...

最新文章

  1. SEO快速排名算法独家揭秘
  2. 如何检测Safari,Chrome,IE,Firefox和Opera浏览器?
  3. 使用 Eclipse + PyDev 开发 Google App Engine 程序
  4. python输入学号返回成绩_Python模拟登陆正方教务系统并抓取成绩单
  5. django项目更新图片后,页面图片不更新
  6. Java EE中的配置管理
  7. Fedora7 安装完全过程
  8. qt更改类名_Qt编写自定义控件属性设计器
  9. 单调有界定理适用于函数吗_第二百零二夜:导数与三角函数
  10. 华为鸿蒙手机开机动画,华为“鸿蒙”来了!开机动画美炸了,用PPT一分钟就搞定...
  11. bind()的实现(持续更新中)
  12. 如何格式化基于 Intel 的 Mac?
  13. null怎么insert oracle,Oracle:如果行不存在,如何INSERT
  14. 上计算机课没有签到肿么办,钉钉教学直播如何课前签到 钉钉直播如何提醒未签到的学生...
  15. android手机什么架构图,从架构图看Android分为几层呢?
  16. 牛客网练习赛24B 凤凰
  17. 你未来的职业规划是什么?
  18. JAVA已知圆心经纬度和半径求圆周点的经纬度
  19. 微型计算机的内存乘储器,微型计算机及接口技术名词解释题及解答题
  20. 小敏利用计算机设计了一个计算程序,七年级上期中练习卷2013-2014第一学期定稿(10页)-原创力文档...

热门文章

  1. goeasy java_Java GoEasy 实现服务端推送和Web端推送
  2. 计算机专业电工基础学生实训总结,电工基础实训心得总结.doc
  3. 初识STM32之选型
  4. 三体第一部(13到22节)
  5. 考研——考研有用的“宝贝”(软件,公众号,网站,励志电影,音乐)
  6. 大厂阿里程序员的薪资:简述阿里的薪酬体系和职级
  7. PDF文件如何自动生成目录书签
  8. nginx集群部署,实现负载均衡和nfs共享
  9. 数字水印技术的原理、实现及其应用
  10. NOPI修改xlsx文件内容,无法正常打开,提示文件格式或文件扩展名无效