简易电子硬币识别装置.doc

上传人:灯火****19 文档编号:137488804 上传时间:2020-07-08 格式:DOC 页数:11 大小:2.22MB
返回 下载 相关 举报
简易电子硬币识别装置.doc_第1页
第1页 / 共11页
简易电子硬币识别装置.doc_第2页
第2页 / 共11页
简易电子硬币识别装置.doc_第3页
第3页 / 共11页
简易电子硬币识别装置.doc_第4页
第4页 / 共11页
简易电子硬币识别装置.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《简易电子硬币识别装置.doc》由会员分享,可在线阅读,更多相关《简易电子硬币识别装置.doc(11页珍藏版)》请在金锄头文库上搜索。

1、简易电子硬币识别装置摘要:本设计为简易电子硬币设别装置,采用不同种类的硬币重量不同进行识别。采用电阻应变式传感器进行硬币的测量,并用HX711高精度放大器兼A/D功能的称重专用集成芯片读取传感器测量值送至具备64KROM的STC12A60S12的单片机,利用查表法寻找最接近的重量来识别硬币的数量和金额。关键词:称重 A/D转换器 单片机一、 系统方案1.1 总体方案由于各种硬币的重量不同,因此,本系统采用称重的方法进行硬币识别,由此可知称重系统以及A/D转换器是本次课题的主要核心,只有达到足够准确的精度才能正确实现人民币硬币识别和计算功能。本系统主要由电源供电部分、电阻应变式传感器组成的称重部

2、分、进行数据采集的A/D转换部分、外部按键控制部分、单片机以及LCD液晶显示部分组成。用A/D转换器读取由电阻应变式传感器传出的模拟量,再由单片机读取经过A/D转换后的数字量,CPU进行运算和处理就可达到要求。总体结构框图如下图1-1所示。图 1- 1系统总体结构框图1.2 重量检测方案选择与论证方案一:压电效应的重力传感器基于压电效应的传感器的敏感元件由压电材料制成。压电材料受力后表面产生电荷。此电荷经电荷放大器和测量电路的放大和变换阻抗后就成为正比于所受外力的电量输出。它的优点是频带宽、灵敏度高、信噪比高、结构简单、等。缺点是某些压电材料需要防潮措施,而且输出的直流响应差。 方案二:电阻应

3、变式传感器电阻应变式传感器是将电阻应变片粘贴在弹性体上,当弹性体受外力(拉力或压力)作用产生形变时,传感器将该形变转化成电量输出,通过相应的测量仪表检测出这个与外加重量成一定比例关系的电量,从而测出质量。电阻应变式传感器的优点是精度高,测量范围广寿命长,结构简单,频响特性好,能在恶劣条件下工作,易于实现小型化、整体化和品种多样化等。综合两种方案的分析与比较,电阻应变式传感器可以达到精确测量,搭建电路简单,容易掌握与使用,价格相对便宜等等,所以选择方案二。1.3 A/D转换方案选择与论证方案一:外搭A/D电路A/D转换可以选用A/D合成芯片或是根据A/D转换器的原理自行搭建A/D转换系统。自搭A

4、/D转换电路难度较高,不易搭建。且焊接时占用电路板面积大,不美观。需要的人为操作过多,更加容易出现错误。方案二:集成A/D转换器使用集成的A/D转换器,可以大量减少人为操作,不易损坏,搭建方便。集成A/D转换器HX711是一款专为高精度电子称而设计的24位A/D转换器芯片,分辨率大,精度高,响应速度快,抗干扰性能高。HX711自带低噪声可编程放大器,通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为+-20mV或+-40mV。通道B则为固定的32增益,减少了对信号放大电路的设计,对本次设计更为有利。综合两种方案的分析与比较,集成A/D转换器更加贴合我们的需求,因此选用集成A/

5、D转换器HX711作为本设计的A/D转换器。二、 理论分析与计算2.1 电阻应变式重量检测原理电阻应变式传感器内部电路图如图2-1所示图 2- 2电阻应变式传感器内部结构图中R1、R2、R3、R4为4个应变片电阻,组成了桥式测量电路,e为电源电压,V为信号电压。当应变片受到力的变化时,电阻R1、R2、R3、R4变成R+R1、R+R2、R+R3、R+R4,电桥的输出电压变为:V=kF。其中V为电桥的输出电压,k为系数,F为力的大小。2.2 A/D转化器原理由于设计的要求,我们选择设计的增益倍数为128倍。HX711有32、64、128三种增益可供选择,但是由于传感器的输出信号较小,若选择较小的增

6、益可能最后精度达不到要求。虽然增益越高带来的噪声比越大,但是HX711的特点有低噪声,影响不大。因此选用128倍的增益。HX711的输出数据速率有10Hz和80Hz。由于10Hz速率的精度要高于80Hz,且本设计需要较高的精度,所以选用10Hz的数据输出速率。同时HX711是一款专为高精度电子称而设计的24位A/D转换器芯片,其分辨率可以达到224=16777216,完全可以完成本次设计。三、 程序设计流程图3.1 任务分配以单片机作为主要的控制器件进行任务分配。当电阻应变式传感器检测到力的变化时,将微弱的电信号传到A/D转化器HX711,HX711通过信号放大等一系列动作,将模拟量转化成数字

7、量送往单片机。芯片的串口数据输出端接在单片机的外部中断0即P3.2口。单片机的1,2,3引脚,即P1.0,P1.1,P1.2口,控制LCD液晶显示屏,分别与12864的片选信号输入,串行数据输入,使能信号相连。单片机P2口的第四位接四个按键,用来控制模式的选择,上下移动以及确认。3.2 主程序流程图主程序流程图如下图3-1所示。图3- 1主程序流程图3.3 中断程序流程图中断程序流程图如下图3-2所示。图3- 2中断程序流程图四、 系统测试与结果分析4.1 测试环境与工具测试在实验室进行,环境温度为26摄氏度。测试工具有计算机、一角硬币(新)数枚、一角硬币(旧)数枚、五角硬币数枚以及一元硬币数

8、枚。4.2 测试结果在本此设计完成后,我们进行了大量实验来验证,对基本要求和发挥部分内的各项进行了逐一实验,并达到了满意的要求。 我们主要进行了单币种的测试试验以及多币种的测试试验。其中多币种的测试试验包括超出设定总额时显示应退总额以及个数。单币种测试结果如下图表4-1所示。币种真实值测量值真实值测量值真实值测量值一元112233五角112233新版一角112233旧版一角112233表4- 1单币种测试结果测量显示多个单币值品种的数量和总额如下表4-2所示旧1角新1角5角1元实际个数2356测量值2356准确率100%100%100%100%表4-2 测量显示多个单币值品种多币种测试结果如下

9、表4-3所示。设定总额为3元实际投入金额(元)1234实际投入个数(个)103311测量得出金额(元)1234测量的出个数(个)103311应返还金额(元)0001应返还个数(个)00010或1表4- 3多币种测试结果第一次第二次第三次新1角旧1角新1角旧1角新1角旧1角实际值123455测量值123455准确率100%100%100%100%100%100%测量混合新旧版的1角硬币。如下表4-4所示。表4- 4测量混合新旧版的1角硬币第一次第二次实际值测量值显示准确率实际值测量值显示准确率新1角22100%11100%5角22111元3311一次性放入各种多个币值的硬币,能计算出货币总额及币

10、值种类的数量。(如表4-5)表4-5一次性放入各种多个币值的硬币附录一 整体电路图图 一 整体电路图附录二 源程序#include reg52.h#define ulong unsigned long#define uchar unsigned char#include 12864lcd.h#include mode.h/* macro */typedef void(*Ptr)(ulong);#define meanAmount 20 #define MODIFY 33 #define END 44#define Key P2sbit DOUT = P32;sbit CLK = P33;sbi

11、t LED = P13;/* global */ulong adcVal;char mode = MODIFY;uchar keyVal,setValue=0;ulong valmeanAmount=0,pi;ulong code old=14828,new=41557,five=49488,yuan=77983;Ptr ptrArray=0,LCD_Mode1,LCD_Mode2,LCD_Mode3,LCD_Mode4,LCD_Mode5,LCD_Mode6;extern char a1,a2,a3;extern ulong preValue;/* dec */void HX711_Init

12、();void delay1ms(unsigned T); /? 0usulong Mean(ulong* Array);uchar KeyScan();char stable(ulong * Array);void main()uchar modify=Modifying.;/* Configuration */LED = OFF;LCD12864_Init();delay1ms(5);/* start Modify */ LCD12864_DisplayString(0,0,modify);delay1ms(4000); /* 延时四秒等待稳定*/HX711_Init(); /*开始校准

13、*/while(mode!=END); /* 等待校准结束 */* end modifying */mode = 1;while(1)if(KeyScan()switch(keyVal)/* clear键 */case 0x0E:while(Key & 0x0F)!=0x0F); /* 等待按键释放*/a1=a2=a3=preValue=setValue=0; /* 清空数据*/break;/* 模式切换键 */case 0x07:while(Key&0x0F)!=0x0F);LED = OFF;/delay1ms(200);if(mode=6)mode=1;elsemode+;/* 模式切换好 */* 清屏 */LCD12864_CleanScans();delay1ms(10);/* 模式界面 */switch(mode)case 1:/* 刚切换到模式1 */a1=a2=a3=0;preValue = 0;LCD_Show(0,0,0);break;/* 切到模式2*/case 2:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号