基于单片机的电子硬币存钱罐的设计与实现毕业论文
2020-04-09 15:44:28
摘 要
该系统利用单片机STC89C52作为主控电路,利用5Kg标准的称重传感器作为输入电路,通过称量硬币质量的方法对硬币进行真伪辨别,硬币质量范围在0-999g;利用LCD1602液晶显示屏电路作为输出电路,液晶显示屏显示当前投入的金额,在第一行显示,数值精确到0.1元;同时,液晶显示屏在第二行显示自动计数得到的硬币总金额,数值精确到0.1元,范围可以是0.0-999.9元,也可以是0.0-99.9元,还可以是0.0-9.9元;利用语音模块电路作为另一个输出电路播报语音,若投入真币时则播报当前投入硬币金额,若投入假币时则播报当前币种为假币。该设计系统硬件模块采用ALTIUM DESIGNER软件进行设计,主要包含电源电路模块、单片机主控电路模块、硬币识别电路模块、语音电路模块和液晶显示电路模块五个部分;晶振电路和复位电路作为单片机最小系统的一部分也是必不可少的。该设计系统软件模块采用KEIL软件进行编写,采用C语言进行编程。因此该系统实现了对硬币的自动计数及真伪辨别功能。
关键词:单片机;自动计数 ;真伪辨别 ;语音播报
Abstract
The system uses the microcontroller STC89C52 as the main control circuit, using a 5Kg standard load cell as the input circuit, through the method of weighing the quality of coins to identify the authenticity of the coin, the coin quality range 0-999g; using LCD1602 LCD circuit as Output circuit, liquid crystal display shows the amount of current investment, displayed in the first line, the value is accurate to 0.1 yuan; at the same time, the liquid crystal display shows the total amount of coins in the second line automatically counted, the value is accurate to 0.1 yuan, the range can be Is 0.0-999.9 yuan, but also can be 0.0-99.9 yuan, but also can be 0.0-9.9 yuan; use the voice module circuit as another output circuit broadcast voice, if you put in the real currency then broadcast the current investment amount, if you put counterfeit money The current currency is broadcast as counterfeit currency. The design system hardware module is designed with ALTIUM DESIGNER software and mainly includes five parts: power supply circuit module, single-chip microcomputer main control circuit module, coin identification circuit module, voice circuit module and liquid crystal display circuit module. The crystal oscillator circuit and reset circuit are used as the minimum system of the single-chip microcomputer. Part of it is also essential. The design system software module is written using KEIL software and programmed in C language. Therefore, the system realizes automatic counting and authenticity discrimination of coins.
Key Words:SCM; automatic counting; authenticity discrimination;voice broadcast
目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1背景、目的及意义 1
1.2 国内外研究现状 1
1.3 研究内容与预期目标 2
1.4 前言 2
第2章 方案论证 1
2.1 总体设计方案 1
2.2 部分设计思路 1
3.1 Altium Designer软件 2
3.1.1 Altium Designer软件介绍 2
3.1.2 Altium Designer软件使用方法 2
3.2 硬件模块 4
3.2.1电源接口电路 4
3.2.2硬币识别电路 4
3.2.3单片机控制电路 6
3.2.4语音电路 8
3.2.5液晶显示电路 9
3.2.6复位电路 10
3.2.7晶振控制电路 10
3.2.8 红外感应电路 10
第4章 软件设计 11
4.1 KEIL软件 11
4.1.1 KEIL软件介绍 11
4.1.2 KEIL软件使用方法 11
4.2 软件模块 12
4.2.1 主程序 12
4.2.2 输入模块程序 14
4.2.3 输出模块程序 14
第5章 制作与调试 16
5.1 系统的制作 16
5.2 系统的调试 17
第6章 总结与展望 19
6.1总结 19
6.2展望 19
参考文献 20
附录A 系统原理图 21
附录B 元件清单 22
附录C 程序 23
致 谢 33
第1章 绪论
1.1背景、目的及意义
随着我国经济的发展和科技的进步,人们生活质量的稳定提高,许多人会在自己的工作之余陪家人外出购物,但是每次到超市购物都会出现找零的情况,然而一角、五角、一元的纸币也逐步退出了流通市场,取而代之的是硬币,因此硬币的存储也就成了问题,困扰了很多人。所以就要求我们设计一种硬币存钱罐。传统的硬币存钱罐只有简单的存储功能,不具有自动计数的功能。并且任何事物都具有两面性,有些人为了牟取私利开始铸造假币,这也扰乱了我国的货币市场的正常秩序。另外,自动售货机的收钱系统就相当于一个电子硬币存钱罐,自动售货机在我们的生活中也得到越来越广泛的应用,在给人们的生活带来了极大的方便的同时也对硬币识别提出了更高要求。如何能制作一种结构简单、成本低、识别率高的硬币识别装置也已成为自动售卖产品的主要研究问题。因此这就要求我们设计一种具有能自动计数以及具有真伪辨别功能的电子硬币存钱罐[1]。
1.2 国内外研究现状
随着电子技术的飞速发展,目前国内外对电子存储硬币这方面的研究也逐步的重视。在二十世纪中后期国外开始了对硬币识别的研究,相继出现了许许多多的硬币识别器,最早的是机械性的,不能识别硬币的真伪。在国外有使用图像处理技术对硬币进行辨别,这样造价太高,性价比极低;国内有的使用机械性的硬币识别器误差太大,有的厂家设计的电子储钱系统太过于花哨,华而不实,蒙蔽了消费者的视线。ATM本身是银行的存取款的电子系统机器,其实目前市场上已经拥有了按照ATM的模型制作的电子存钱罐,它和ATM机有着不一样的功能,它是ATM机的缩微版。每次投硬币时,电子硬币存钱罐能自动识别“1角、5角、1元”硬币。另外这款电子硬币存钱罐增添了防盗功能,如果不使用密码强行打开的话该电子硬币存钱罐就会报警,让你的存款变得更加安全可靠[2]。
还有目前市面上使用的硬币鉴别装置主要是来自于国外,价格较昂贵,而且由于国情和货币体系不同,这些硬币识别系统不能满足我国需求。而国产的硬币鉴别装置功能单一,且缺少与之匹配的清分装置。针对目前硬币识别系统中存在的问题,结合我国硬币的特点要求,以控制精确、操作简单、成本低廉为目的,开发基于单片机的硬币识别系统尤为重要。但本文的设计系统只限于具有简单的自动计数以及辨别真伪的功能的电子硬币存钱罐。
1.3 研究内容与预期目标
电子硬币存钱系统本身具有小巧体积、可爱造型、鲜艳颜色,可以存款、提款,设置、查询余额,修改密码,设定储蓄目标,防盗报警等一系列功能。当然这个课题的研究内容是仅限于具有自动计数和真伪辨别功能的电子硬币存钱罐。有了电子硬币存钱罐,家里的小朋友从小就可以开始培养正确的理财观念;有了电子硬币存钱罐,简单的操作步骤让家庭储蓄也变得如此有趣;有了电子硬币存钱罐,我们再也不用担心硬币的存储问题了。所以设计一款基于单片机的电子硬币存钱罐是非常有意义的,只要该电子硬币存钱系统具有自动计数和真伪辨别的功能。
1.4 前言
本文的整体结构采用的是总分结构。
第1章是绪论,主要介绍了基于单片机的电子硬币存钱系统的研究背景、目的、国内外电子硬币存钱罐的研究现状,而且叙述了电子硬币存钱罐的研究内容与预期目标。
第2章是方案论证,主要介绍了基于单片机的电子硬币存钱系统的总体设计方案与部分设计思路,然后确定了电子硬币存钱系统的核心处理器选择STC89C52芯片,根据电子硬币存钱系统所要求显示的数据最后确定选用的是LCD1602作为显示器。
第3章是硬件电路,介绍了Altium Designer软件及其使用方法。最主要介绍了基于单片机的电子硬币存钱罐硬件电路的设计,其中包括晶振电路和复位电路、语音电路、显示电路、电源电路和称重传感器电路的设计。
第4章是软件设计,介绍了KEIL软件及其使用方法。最主要介绍了基于单片机的电子硬币存钱系统的软件设计部分,包括了主程序流程图、液晶显示流程图。
第5章是制作与调试,主要介绍了系统的制作与调试方面的相关情况,包括软件调试,硬件调试,系统总体调试以及在调试过程中遇到的问题和解决方法。
第6章是总结与展望。
第2章 方案论证
2.1 总体设计方案
该电子硬币存钱系统采用软硬件结合的方式进行设计及实现。硬件设计部分包含电源电路模块,硬币识别电路模块,单片机主控电路模块、液晶显示电路模块和语音电路模块五部分主要硬件模块。当投入硬币时会自动识别硬币的真伪及币值,真币进入设计好的储钱装置时会播报硬币币值,假币通过时则会在播报假币。并且真币进入时会自动对所存金额进行累加,在液晶显示屏上显示当前投入硬币的总金额。其总体结构设计框图如下图2.1所示:
图2.1 总体设计框图
软件设计部分则通过KEIL软件进行C语言的编写,在下载软件上下载程序到单片机STC89C52芯片上从而控制电子硬币存钱罐工作,使该电子硬币存钱系统具有自动计数和辨别真伪的功能。另外在设计过程中还需要设计它的电路原理图、流程图、结构框图、程序框图等。电路原理图用AD软件进行设计,并用AD软件进行布线,采用PCB技术(也在AD软件上完成)将电子元件封装成一个完整的电子硬币存钱罐。最后就只需要检验该电子硬币存钱系统是否真正具备自动计数和辨别真伪的功能。
2.2 部分设计思路
该系统最难的部分应该是选择怎样的硬币识别模块装置。首先通过查阅资料,第一种系统是基于ARM Cortex-M3处理器内核的LM3S1138单片机为主控芯片,利用电涡流传感器对硬币真伪进行快速无损鉴别,使用步进电机精准清分,通过按键、LCD显示器、LED灯和语音芯片组成的声光提示系统实现人机交互,采用无线 WIFI 技术实现系统的远程监控及数据同步功能。第二种系统是利用LDC1000数字电磁传感器,因其振荡频率较高,故可有效检测被测物品的表面情况,对于硬币识别,因现行硬币都以钢芯电镀其他金属方式制作,因此本传感器可有效识别镀层特征,从而实现硬币鉴别。第三种系统是通过金属应变片传感器将所测得的硬币重量转换为微弱电压信号,通过LCD1602液晶显示屏显示。最终我选择了第三种方案。
第3章 硬件电路
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机[3]。
3.1 Altium Designer软件
3.1.1 Altium Designer软件介绍
Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。Altium Designer是业界首例将设计流程、集成化PCB设计、可编程器件设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品。随着Altium Designer软件的不断升级,它集成了更多工具,使用更方便,功能更强大,特别是在印刷电路板设计上性能大大提高。全新升级的Altium Designer显著提升了设计生产力,也提高了文档输出及高速设计的效率[4]。
3.1.2 Altium Designer软件使用方法
(1)新建项目及工程文件
首先,执行“文件”→“新建”→Project命令,将新工程项目命名为“电子硬币存钱罐”,并向其中添加原理图文件和PCB文件。然后,执行“文件”→“新建”→“库”→“原理图库”命令,在“电子硬币存钱罐”添加几个原理图库文件。最后,执行“文件”→“新建”→“库”→“PCB库”命令,在“电子硬币存钱罐”项目中添加几个PCB库文件。将所有文件重命名[5]。
(2)绘制元件库
元件库中最主要的就是建立51单片机元件库,下面仅以画51单片机元件库为例,其他同理。查看51单片机数据手册,得知其封装类型。进入89c51.PcbLib绘制环境中,执行“工具”→“元器件向导”命令,弹出“PCB器件向导”界面。单击“下一步”按钮,进入“器件图案”界面,选择封装形式为DIP,选择单位为mil。单击“下一步”按钮,即显示焊盘尺寸。单击“下一步”按钮,即可定义焊盘间距。单击“下一步”按钮,即设置外框宽度,选择默认值。单击“下一步”按钮,即可设置焊盘数量,单击“下一步”按钮,即可设置元件名称,将其命名为89c51,其他同理。单击“下一步”按钮,提示“向导已经具备足够信息完成任务”。单击“完成”按钮,51单片机的PCB封装已经完成。
进入89c51.SohLib绘制环境中,执行“放置”→“矩形”命令。矩形绘制完毕后,执行“放置”→“引脚”命令,按下键盘上的Tab键,设置需要放置引脚的属性其他引脚同样按照此方法设置。引脚设置完成后,打开SCH Library窗口。单击“器件”栏中的“编辑”按钮,弹出Library Component Properties对话框。单击Add按钮,弹出“添加新模型”对话框,选择模型种类为Footprint。单击“添加新模型”对话框中的“确认”按钮,弹出“PCB模型”对话框。单击“PCB模型”对话框中的“确认”按钮,选择加载已经完成的89c51.PcbLib文件到PCB文件库。单击“浏览库”对话框中的确定按钮,返回到“PCB模型”对话框,在“选择封装”栏中出现封装模型,表示封装模型已成功加载。单击“PCB模型”对话框中的in Map按钮,进入“模型图”对话框,查看原理图元件库的引脚标识语PCB元件库的引脚标识是否对应,若不对应则需手动修改。至此,51单片机元件库绘制已经完成。参考上例可将本系统所需自建的元件库绘制完毕,即可在绘制原理图环境中绘制整体电路。
(3)元件布局
整体电路绘制后,执行“工程”→Compile Document电路原理图命令,打开Messages窗口,显示原理图编译无错误。执行“设计”→Update PCB Document PCB原理图命令,弹出“工程更改顺序”对话框。单击“生效更改”按钮,完成状态检测。检测全部通过后,单击“执行更改”按钮,即可完成更改,并在PCB编辑环境下,自动生成PCB图。将Room和所有元件移动到PCB板上,并调整Room尺寸。元件布局采用手动布局方式。使用“排列工具”等命令,调整元件间距和对齐方向,所有元件布局完毕。接下来,切换到Top Overlay层,执行“放置”→“走线”命令,绘制出矩形框。选择绘制出的矩形框,执行“设计”→“板子形状”→“按照选择对象定义”命令。执行“设计”→“板子形状”→“根据板子外形生成线条”命令,在PCB板子外轮廓自动生成边界线。还可设置定位通孔。至此元件布局已经完成。需要注意的是元件布局并非越密越好,元件与元件之间赢留出一些空隙。
(4)元件布线
进行元件布线操作,执行“自动布线”→“全部”命令,弹出“Situs布线策略”对话框。单击“Situs布线策略”对话框中的“编辑规则”按钮,进入“PCB规则及约束编辑器”对话框,对布线规则进行设定。首先设置电气规则,它主要用于系统的DRC电气检验。布线过程若违反电气规则,则自动报警。选择Electrical规则中的Clearance子规则,将导线与导线间距、焊盘与焊盘间距等导电对象距离设为10mil。选择Routing规则中的Width子规则,“最小宽度”设置为20mil,“首选尺寸”设置为30mil,最大宽度设置为35mil。选择Width规则,然后单击下方的“新规则”按钮。选择Routing Topology规则,设置各个节点的布线方式,一般选择Shortest,即所有节点连线最短。选择Routing Layers规则,设置各个网络允许布线的工作层。基本规则设置完成后,单击“PCB规则及约束编辑器”对话框中的“确定”按钮,返回“Situs布线策略”对话框,单击“Route All”按钮,即可完成自动布线。但自动布线的结果并不理想,某些线条需要手动调整,尽量缩短线条的长度,同时避免弯曲。完成布线后,执行“放置”→“多边形敷铜”命令或单击命令栏中的“敷铜”图标,为PCB敷铜。在弹出的“多边形敷铜”对话框中选择填充模式为Hatched。设置好参数后,单击“确定”按钮,选择四点,使所画矩形覆盖整个PCB,右键单击退出。单击“设计规则检验”对话框中的“运行DRC”按钮。若无错误弹出则电子硬币存钱罐PCB基本绘制完毕。
3.2 硬件模块
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。