历史上的今天
返回首页

历史上的今天

今天是:2025年03月18日(星期二)

正在发生

2018年03月18日 | 基于Proteus的自动取款机设计方案

2018-03-18 来源:eefocus

      内容摘要:自动取款机系统采用高可靠性的AT89C52单片机作为核心控制芯片,采用具备I2C总线接口的FM24C02芯片完成密码与金额的存储,通过液晶显示器128x64显示运行状态和操作步骤。软件设计采用具有较好移植性和可读性的C51语言编写程序,以便修改和增减功能。通过Proteus软件成功实现了自动取款机的仿真过程。经仿真表明,利用Proteus软件进行仿真设计可极大地简化单片机程序在目标硬件上的调试工作。


    引言

    自动取款机,简称ATM(AutomatIC Teller Machine),它使用现代技术实现自动取款、修改密码、查询余额等操作,是业务电子化的一种机器设备,由于其便利性和实用性受到了人们的青睐。本文设计了一种自动取款机系统,模拟自动取款机的基本功能(取款、查询余额、修改密码、取卡),使人们了解利用Proteus软件来实现自动取款机的仿真过程。

    1 系统总体设计

    本系统主要由微控制器模块、液晶显示模块、键盘输入模块、存储模块、蜂鸣电路所组成。系统结构如图1所示。

基于Proteus的自动取款机设计与仿真

    微控制器模块主要完成对整个系统操作过程的控制;液晶显示模块模拟自动取款机的人机交互界面;键盘输入模块完成对密码的输入及修改功能;存储模块完成对模拟银行卡密码及金额的存储功能。

    2 系统硬件电路设计

    系统硬件电路仿真图如图2所示。微控制器采用Atmel公司的AT89C52,存储器采用具备I2C总线接口的FM24C02芯片,液晶显示采用LCD 128x64模块。

基于Proteus的自动取款机设计与仿真

    液晶显示模块是128x64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8 192个中文汉字(16×16点阵)、128个字符(8×16点阵)及64x256点阵显示RAM(GDRAM)。可与微处理器直接相连,提供两种界面来连接微处理器:8位并行及串行两种连接方式。利用该模块灵活的接口方式,可构成全中文人机交互图形界面。

    FM24C02是2 048位的串行电可擦除只读存储器,内部组织为256 B,其作用是存储模拟银行卡的密码及金额。

    由图2可知,AT89C52的P0口通过上拉电阻RPt与LCD 128x64的数据端口DB0~DB7相连,使读取或写入的数据显示在液晶模块上。P1.0~P1.5实现对模拟银行卡的操作,如密码的输入与修改,查询余额,取款,取卡等;P2.0,P2.1,P2.2分别接LCD 128x64的使能端,读/写数据控制端口及片选端口;P2.5,P2.6端口作为模拟银行卡“CARD1”,“CARD2”按键输入端,当LCD 128x64液晶显示界面出现“请插卡”时,按下相应的按键即表示了插入银行卡;P3.0~P3.6端口实现对键盘的扫描,实现密码的输入、修改等功能;P3.7接蜂呜电路,当对模拟银行卡操作时,就会发出声响提示操作已经完成。

    3 系统软件设计

    本系统软件包括主程序模块、键盘输入扫描模块、液晶显示模块等。采用C51语言对系统的各个模块编写程序。系统程序流程如图3所示。

基于Proteus的自动取款机设计与仿真

    3.1 主程序模块

    主程序主要用于定义全局变量,给全局变量赋初值,初始化E2PROM,从FM24C02中读取或写入密码,驱动显示等,为整个程序提供数据。FM24C02读/写数据部分子程序如下:

基于Proteus的自动取款机设计与仿真
基于Proteus的自动取款机设计与仿真

    3.2 键盘输入扫描模块

    该模块具备扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的按键是否释放等功能。

    3.3 液晶显示模块

    此模块包括液晶初始化、命令的输入、显示数据的输入。

    向LCD 128x64里写数据部分子程序如下:

基于Proteus的自动取款机设计与仿真
基于Proteus的自动取款机设计与仿真

    4 系统仿真结果

    本文采用具有强大的EDA仿真功能的Proteus软件进行仿真,仿真测试结果如图4所示。

基于Proteus的自动取款机设计与仿真

    当按下运行的Proteus软件中的“play”按钮时,即启动系统,此时LCD液晶屏显示如图4(a)所示的界面。按下仿真电路中“CARD1”按键或“CARD2”按键,出现图4(b)所示画面,在键盘输入界面中输入银行卡“CARD1”或“CARD2”密码。若在密码输入的过程中,出现错误,则可按“key0”键进行修改。密码输入完成之后,按下仿真电路图中“key1”按键确定,若密码输入错误,则出现图4(c)所示界面,3 s钟之后转向图4(d)所示界面,重新输入密码。密码输入错误3次及以上,出现图4(e)所示界面,提示“此卡已被冻结”,再按“key1”按键取卡;若密码正确,则会出现图4(f)所示界面。在图4(f)所示界面下,按下“key0”按键选择“修改密码”功能,出现图4(g)界面,输入新的密码,修改成功之后跳转图4(h)界面;按下“key2”按键选择“查询余额”功能,出现图4(i)界面;按下“key3”按键选择“取款”功能,出现图4(i)界面,选择相应的金额按键按下(key0按键表示1 000,key2按键表示2 000,key3按键表示3 000),之后出现图4(k)界面,按下“key4”按键取钞,界面跳转到图4(1),完成取款操作。若要继续选择业务功能,则按下“key5”按键,界面重新跳转到图4(f)界面;若要取卡,则按下“key1”按键,则界面跳转到图4(a),对重新插入的银行卡进行操作。


    5 结语

    本文利用Proteus与Keil μVision3软件对自动取款机系统进行了仿真设计与实现。从仿真结果可知,利用Proteus软件进行仿真设计可极大地简化单片机程序在目标硬件上的调试工作,同时也可直观展示系统的运行界面,实现了自动取款机的基本功能,证明了此设计方案的可行性与正确性。


推荐阅读

史海拾趣

Delta Electronics Manufacturing Corp公司的发展小趣事

随着公司实力的不断增强,Delta开始积极拓展全球市场。公司通过设立海外分支机构、参加国际展会等方式,不断拓宽销售渠道,提升品牌知名度。同时,Delta还与国际知名企业展开合作,共同开发新产品,扩大市场份额。如今,Delta的产品已远销全球多个国家和地区,成为国际电源市场的领军企业之一。

Digital View公司的发展小趣事

面对日益激烈的市场竞争和技术变革的挑战,Digital View公司始终保持敏锐的市场洞察力和创新精神。公司密切关注市场动态和技术趋势,及时调整产品策略和市场布局。同时,公司还加大了对研发创新的投入力度,不断推出具有自主知识产权的新产品和新技术。通过不断创新和优化产品与服务,Digital View成功应对了市场挑战并保持了领先地位。

以上五个故事线索只是Digital View公司发展历程中的一部分缩影。每个故事都可以进一步挖掘和扩展,以呈现公司在电子行业里发展起来的完整画卷。

Catalyst / ON Semiconductor公司的发展小趣事

随着技术的不断进步,Catalyst / ON Semiconductor公司逐渐在半导体领域取得了重要的技术突破。公司投入大量资源进行研发,成功开发出了一系列高性能、低功耗的半导体产品,这些产品在市场上受到了广泛的欢迎。这些技术突破不仅提升了公司的市场竞争力,也为整个电子行业的发展注入了新的活力。

Cableform Inc公司的发展小趣事

随着技术的不断进步和市场的扩大,Cableform Inc公司意识到必须走出国门,开拓更广阔的市场。1974年,公司在弗吉尼亚州特洛伊成立了北美业务分部,这是公司国际化战略的重要一步。在北美市场,公司面临着激烈的竞争和不同的文化背景,但凭借着优质的产品和服务,Cableform Inc逐渐赢得了客户的信任,市场份额稳步上升。

DRS Technologies公司的发展小趣事

在21世纪初,DRS接受了价值16亿美元的合同,为美国陆军和海军陆战队的部队现代化计划制造加固式计算机。这一合同不仅展示了DRS在军事领域的实力,也进一步巩固了其在全球电子行业的地位。DRS提供的“探索者”MP加固式轻便多平台工作站,为数字战场提供了强大的支持。

American Custom Components公司的发展小趣事

随着全球环境问题的日益严重,American Custom Components公司开始关注可持续发展和社会责任。公司积极推行绿色生产,采用环保材料和节能技术,减少生产过程中的环境污染。同时,公司还参与了一系列公益活动,支持当地社区的发展和环境保护事业。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

这些故事只是基于电子行业常规实践虚构的示例,并不代表American Custom Components公司的真实发展历程。如需了解该公司的真实情况,建议查阅相关资料或访问公司官方网站。

问答坊 | AI 解惑

涡街流量计的原理

1.卡门涡街的产生与现象 为说明卡门涡街的产生,我们来考虑粘性流体绕流圆柱体的流动.当流体速度很低时,流体在前驻点速度为零,来流沿圆柱左右两侧流动,在圆柱体前半部分速度逐渐增大,压力下降,后半部分速度下降,压力升高,在后驻点速度又为 ...…

查看全部问答>

请各位前辈给点意见

我现在在做嵌入式linux的平台的开发,现在想做个短信网关,用的是SIEMENS-MC55的模块。用超级终端通过串口也成功实现发短信了。但在开发linux应用程序时对于那些应答该做怎么样的处理(因为指令的应答看上去有点复杂),他们应该采用什么样的格式封 ...…

查看全部问答>

为什么 我的IE不支持PNG格式图片

大家好,我手头上有两台PND,一个是CE 4.2 另一个是 CE 5.0. 当我用IE打开html文件时,所以的PNG格式图片都无法显示。 我查了相关的资料,都提到,IE6支持PNG的显示。 问题: 如何让现有的机器上的IE支持PNG的显示呢? 比如更新对应的dll, 或 ...…

查看全部问答>

sleep函数是如何实现的?

是这样的,俺的2440的应用程序调用这个sleep函数,非常不准确。sleep(500)的效果相与sleep(100)的效果,也就是说这个时间变快了。但是另外一5.0 BSP却正常,我看了一下帮助,没有讲这个函数是如何实现的,请问这个函数如此不准确,是什么原因 ...…

查看全部问答>

串口通信控制iPod

有人做过串口通信控制iPod吗?都需要哪些方面的知识啊?高手指点一下。…

查看全部问答>

关于c51的时间问题!

看看下面的代码,为什么我把程序烧到单片机中之后,L1先亮,过半秒之后就L2,L3同时亮,然后一直都没有灭,为什么? #include sbit L1=P0^0; //L1,L3灯是10秒闪一次,L2是1秒闪一次, sbit L2=P0^1;//L1是有主函数的一个标记n控制的,L3直接由 ...…

查看全部问答>

LWIP超过200字节数据接收乱码

在用Lwip接收SOCKET调试工具发送的超过200字节数组给LM3s8962处理时,200字节以后的数据出现乱码问题:   过程: 用SOCKET工具发送0123456789的序列,如图SocketData1.jpg:   现象: 在 Keil中调试信息,如图SocketData2.jpg: & ...…

查看全部问答>

有没有以STMCU为例讲解计算机组成原理、接口技术的书?

                                 初学计算机组成原理,戴梅萼的《微型计算机技术及应用》非常好,可惜是以8086、80386、奔腾处理器为例的,不知道有 ...…

查看全部问答>

全国大学生电子设计竞赛经验交流 ---- 【控制类】

本帖最后由 paulhyde 于 2014-9-15 03:40 编辑 (1) 7 月份,召开全国专家组工作会议,初步确定竞赛题目基本方向,审议竞赛题目基本框架。(2) 8 月17 日至8 月18 日,召开全国大学生电子设计竞赛组织工作会议;部署竞赛事宜,包括宣传竞赛规则及竞 ...…

查看全部问答>

提问+掌握了zigbee的哪些知识点后算是入门了呢?

如题,很想知道掌握了zigbee的哪些知识才算是入门? …

查看全部问答>