历史上的今天
返回首页

历史上的今天

今天是:2025年03月15日(星期六)

2018年03月15日 | PIC16C71单片机投币电路分析

2018-03-15 来源:eefocus

  传统的投币电话,都是以几对红外发射、接收对管作传感器,利用硬币遮光原理粗测币的直径。这种方法精度低,更无法识别相同直径但不同材质的伪币。
  
  新一代投币电话,如英国的蓝宝石系列,能对硬币的材质、厚度、直径作精确的检测,所以精确性与可靠性都大大提高。这类新型投币电话中,需要一种微功耗、宽工作电压范围、能适应电话线路供电的高性能单片机作为智能化检测、控制的核心。美国MICROChip公司的PIC16C71单片机能满足这方面要求,且价格低廉。
  
  其核心PIC16C71是一种低成本、高性能,以CMOS工艺制造,带全静态片内RAM、2 KB片内ROM、4路8位片内A/D转换器的高性能单片机。在采用20 MHz时钟时,每个指令周期仅0.2μS。字长14位的精简指令集(RISC)共有35条高效指令,大多为单周期指令,执行比一般单片机快4倍以上。3~6 V的宽工作电压范围以及微功耗设计(3V、32 kHz时,工作电流仅15 μA,休眠维持电流小于lμA),使它特别适合于由电话线路供电的工作环境,不需要另配电源。此外,该机还具有防非法拷贝的程序保密位、防止受干扰后产生程序“脱轨”的“看门狗”(WDT)以及带负载能力很强的I/O接口,能直接驱动20~25 mA的负载,大大简化了系统结构,提高了可靠性。

电原理图
  
  AT24C01是一种新型、高性能的串行电可擦写只读存储器(E2 PROM),价格低廉。在本系统中,它用于存储投币电话所适用的币种、币值以及对应的材质、厚度、直径3个传感信号参数值,停电后信息能保存100年,擦写次数可达10万次,静态电流30 μA,容量为128字节,工作电压2.6~6 V。由于采用串行工作方式,数据传送只需两根I/O线,这对I/O线资源有限的单片机特别适合;另一个优势是能“在线”修改币种、币值以及3个传感器参数值,以适应不同的地区、国家及不同的钱币。虽然PIC16C71不具备I2C BUS,但和软件很容易模拟I2C BUS的读/写时序,以完成数据的串行传送。

二、电源

  本系统的电源部分如图3—5所示。取自电话线上的电源经桥式整流、滤波后,由一个三端稳压器稳压成6.4 V,对5个5#可充电电池(每个1.2 V)进行浮充,并作为系统电源。平常系统由电话线路供电即可正常工作,当执行收币及剔除伪币的动作时,高灵敏电磁铁所需的较大电流(约15 mA)由可充电电池供应。另外该6.4 V电压再经一个精密基准电压源TL431稳压到5.12 V,作为A/D转换的参数电源vREF。PIC16C71的RA口引脚结构方式控制位设定为PCFGl-0,PCFGO -1。

电源部分
  
  取方式01,此时RAO、RA1、RA2引脚作模拟信号输入,RA3作为基准参数电压VREF的输入引脚。
  
  四、硬币检测
  
  对币厚度与直径的检测,现有的多种传感器都可供选择。主要应考虑以下几点:要体积小,价格低,能进行非接触式检测。我们采用电容与涡流传感器,对于币的合金含量,可通过检测其比重、电阻率、导磁率来间接测量。
  
  以上三个传感器(材质、厚度、直径)来的信号经放大、鉴相、精密检波、滤波、温度补偿等处理后,形成0~5,12 V的直流电压信号,送入PIC16C71单片机的RAO、RA1、RA2三个引脚,以进行快速A/D转换。
  
  当上电复位时,程序从OOOOH地址开始,执行一条跳转指令,转至O010H开始的主程序。先执行初始化,然后由SLEEP指令进入“睡眠”微功耗状态,以减少耗电。当硬币从投币口投入时,由于遮断高灵敏微型红外发射、接收对管之间的光通道,产生一个中断申请脉冲信号。其上升沿触发了单片机的RBO (INT)端,把单片机PIC16C71从“睡眠”中唤醒,进入地址为0004H的中断服务程序入口。再经该处的一条跳转指令,转到检测处理材质、厚度、直径三个传感器信号的程序模块中。材质、厚度、直径三个传感器在硬币滑道上是间隔顺序排列的。为了简化机械结构并提高检测的速度,可采用对滚动的硬币进行动态检测的方法。经实验测定,材质、厚度、直径三个传感器的信号电压,在硬币通过该传感器的滚动过程中与时间的关系都具有如下图所示的曲线形状。

硬币通过该传感器的滚动过程中与时间的关系
  
  当信号电压上升至某一门限电压Vo时,说明硬币已进入该传感器检测范围。这时把每次采集的数据与前次比较,取其大者按顺序存入片内RAM单元。当检测到信号,电压下降至某一门限电压V2时,说明硬币已滚离该传感器。这时程序转入对下一个传感器信号的检测。当三个传感器信号都检测完毕后,程序关闭A/D,转人数字滤波,以消除干扰毛刺脉冲的影响,得到该传感器信号的最大值Vl。接着进行温度补偿,以Vl值减去该传感器空载值V空,以消除温度影响。三个传感器信号都处理完毕后,程序进入识,别模块,快速扫描存于串行EPROM AT24C01中的各种币参数(包括材质、厚度、直径)。若所测的3个参数与预存的各种币的3个参数不符(超过其上、下限),则认为是伪币,PIC16C71的RB6引脚输出一信号,驱动高灵敏、低功耗快速电磁铁动作,把伪币推出滚道。
  
  识别确认后的硬币,其币种与币值代码经奇偶处理后,由RB1引脚以串行方式传到费率管理上位机(例如80C31等)中,通信约定取异步方式,其数据结构如下图所示。对应每个硬币发一组数据,每组由3个数据字组成,其格式见下表。

数据结构
  
  币种币值代码表

币种币值代码表
  
  每组数据发送完毕后,程序把RB1由输出方式转成输入方式,查询等待费率管理上位机的应答信号。上位机在接收到一组数据,经奇偶校验无误后,将在1ms之内把数据线拉低作应答信号。PIC16C71在收到应答信号后,即进入SLEEP“睡眠”状态,等待下次投币唤醒。如在1ms内没收到上位机应答信号,则PIC16C71将再重复送一组数据。如连续3次发送后均收不到应答信号,则程序转入故障报警。
  
  当投入硬币达到规定值后,费率管理上位机经RB2发出一个信号,唤醒PIC16C71执行收币动作,然后PIC16C71又进入“睡眠”状态。
  
  按照上述原理。下图给出主程序框图及动态检测程序框图。限于篇幅,程序清单略去。
  
  本系统由于充分利用了高性能的PIC16C71单片机所提供的高速指令、快速AlD转换、微低功耗、宽工作电压、强带负载能力、抗干扰看门狗等性能与资源,使系统结构十分简洁,可靠性强,成本低,在实际应用中获得较满意的效果。

主程序框图及动态检测程序框图

主程序框图及动态检测程序框图


推荐阅读

史海拾趣

DURABLE公司的发展小趣事

面对电子行业的快速变化和技术更新,DURABLE公司始终保持着敏锐的洞察力和创新精神。公司不断加大对新技术和新产品的研发力度,积极探索物联网、人工智能等前沿技术在电子行业的应用。通过一系列的技术创新和产品升级,DURABLE成功实现了从传统电子材料供应商向智能电子解决方案提供商的转型升级。这一转型不仅提升了公司的核心竞争力,还为公司的未来发展奠定了坚实基础。

Horn公司的发展小趣事

面对电子行业日益复杂的加工需求和激烈的市场竞争,Horn公司不断进行自我调整和转型。公司加大了对自动化生产线的投入,提高了生产效率和产品质量。同时,Horn公司还加强了与下游客户的沟通与合作,深入了解市场需求变化,为客户提供更加个性化的解决方案。这些举措帮助Horn公司在电子行业中保持了竞争优势。

AD Semiconductor公司的发展小趣事

自1969年成立以来,Horn公司便致力于开发和生产切槽、侧铣和槽铣刀具。起初,公司聚焦于为小型机械加工企业提供高质量的工具解决方案。在创始人Paul Horn的领导下,公司迅速建立了技术团队,专注于刀具材料的研发与生产工艺的改进。这一时期,Horn公司凭借其出色的产品质量和定制化的服务,在行业内逐渐树立了良好的口碑。

贝特莱公司的发展小趣事

随着技术研发的不断深入和产品线的逐渐完善,贝特莱于2016年1月21日正式挂牌上市,进军资本市场。这一举措不仅为公司带来了更多的资金支持,也进一步提升了贝特莱的品牌知名度和市场竞争力。上市后,贝特莱得以加速其研发步伐,不断推出创新产品,满足市场的多样化需求。

Belkin公司的发展小趣事

贝尔金的成功不仅仅局限于美国本土。随着全球市场的不断扩张,贝尔金也在全球范围内建立了广泛的销售网络和物流中心。位于加州洛杉矶的总部、好莱坞的工业设计中心以及纽约州罗切斯特的研发机构,共同构成了贝尔金全球业务的核心。这些机构之间的紧密合作,确保了贝尔金能够迅速响应全球市场的需求,提供高品质的产品和服务。

AEM [ American Electronic Materials]公司的发展小趣事

随着全球经济的不断发展,AEM意识到要想在激烈的竞争中保持领先地位,必须进一步拓展全球市场。于是,公司开始实施全球扩张战略,积极开拓新的市场和业务领域。

在这个过程中,AEM与多家国际知名企业建立了战略合作关系。通过合作,AEM成功进入了欧洲、亚洲等多个重要市场,进一步提升了公司的品牌影响力和市场份额。同时,这些合作也为AEM带来了更多的技术资源和市场机会,促进了公司的持续发展。

问答坊 | AI 解惑

CE6.0编程问题

请问各位高手,如何在CE6.0下调用cout的,我在PB工程中添加一个APP子工程,添加#include编译报错没有这个文件。还望高手指点。…

查看全部问答>

新手求助 EVC下将文件内容输出到编辑框程序问题

想选择路径打开文件 将内容输出到编辑框 程序运行弹出一个对话框 显示叉号和乱码   void CTCPClientExDlg::Sendfile() {    CFile MyFile;    TCHAR str[100];    DWORD count;    Updat ...…

查看全部问答>

比赛的第一天我知道了自己什么都不会~!

本帖最后由 paulhyde 于 2014-9-15 04:01 编辑 如题~!  …

查看全部问答>

测量5Mv~500V,频率5Hz~5MHz的交流电压

本帖最后由 paulhyde 于 2014-9-15 03:41 编辑 有人做过测量交流电压的吗?可以交流交流一下 。带宽太宽了不好测量啊  可以分享你们的经验吗?  …

查看全部问答>

FPGA做AD采样,这种情况如何编程?

通过译码来选通要采样的模拟量,比如有6路选通、即有六路模拟量;这样的话,需采样六次才能将所有模拟量采完,然后分别处理这六个量。 如果采样一路的话,感觉好处理一些,循环采样六路,应该如何用verilog HDL来写? 之前觉得AD采样一次本身可以 ...…

查看全部问答>

open1081上电启动

我使用SecureCRT软件连接open1081开发板,默认启动后界面显示乱码,设置编码方式为GB2312就OK了。可以看到这里面是工厂测试程序。 …

查看全部问答>

脉冲激励电路求助

想用硬件电路自己做一个这样的激励电路,输入电压5V直流,图中的电压我是10倍衰减了的,大概有150多V, 大家有什么好的方案或者思路 …

查看全部问答>

【TI C2000的使用经验】+ 使用Energia开发C2000-LaunchPad应用

使用Energia开发C2000-LaunchPad应用Energia 是一个开源和社区驱动型集成开发环境 (IDE) 与软件框架。Energia 基于接线框架,为微控制器编程提供了直观的编码环境和由易于使用的功能 API 及库构成的可靠框架。Energia 支持多种 TI 处理器,主要包括 ...…

查看全部问答>

播放一段20s左右的语音要怎么实现?

用单片机系统控制,用中断的方法实现一段20s左右的语音播放,用语音芯片实现的话,AD转换要怎么弄,我要播放的内容怎么加进语音芯片的ram,是有专门的软件去生成吗? …

查看全部问答>