基于Proteus与Keil μVision3软件的自动取款机仿真设计

自动取款机系统采用高可靠性的at89c52单片机作为核心控制芯片,采用具备i2c总线接口的fm24c02芯片完成密码与金额的存储,通过液晶显示器128x64显示运行状态和操作步骤。软件设计采用具有较好移植性和可读性的c51语言编写程序,以便修改和增减功能。通过proteus软件成功实现了自动取款机的仿真过程。经仿真表明,利用proteus软件进行仿真设计可极大地简化单片机程序在目标硬件上的调试工作。
引言 自动取款机,简称atm(automaticteller machine),它使用现代技术实现自动取款、修改密码、查询余额等操作,是业务电子化的一种机器设备,由于其便利性和实用性受到了人们的青睐。本文设计了一种自动取款机系统,模拟自动取款机的基本功能(取款、查询余额、修改密码、取卡),使人们了解利用proteus软件来实现自动取款机的仿真过程。
1 系统总体设计 本系统主要由微控制器模块、液晶显示模块、键盘输入模块、存储模块、蜂鸣电路所组成。系统结构如图1所示。
微控制器模块主要完成对整个系统操作过程的控制;液晶显示模块模拟自动取款机的人机交互界面;键盘输入模块完成对密码的输入及修改功能;存储模块完成对模拟银行卡密码及金额的存储功能。
2 系统硬件电路设计 系统硬件电路仿真图如图2所示。微控制器采用atmel公司的at89c52,存储器采用具备i2c总线接口的fm24c02芯片,液晶显示采用lcd128x64模块。
液晶显示模块是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所示。
3.1 主程序模块 主程序主要用于定义全局变量,给全局变量赋初值,初始化e2prom,从fm24c02中读取或写入密码,驱动显示等,为整个程序提供数据。fm24c02读/写数据部分子程序如下:
3.2 键盘输入扫描模块
该模块具备扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的按键是否释放等功能。
3.3 液晶显示模块
此模块包括液晶初始化、命令的输入、显示数据的输入。
向lcd 128x64里写数据部分子程序如下:
4 系统仿真结果 本文采用具有强大的eda仿真功能的proteus软件进行仿真,仿真测试结果如图4所示。
当按下运行的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软件进行仿真设计可极大地简化单片机程序在目标硬件上的调试工作,同时也可直观展示系统的运行界面,实现了自动取款机的基本功能,证明了此设计方案的可行性与正确性。

6G网络相比5G网络的优势有哪些
变频器滤波器的作用 变频器滤波器的分类
TE Connectivity推出标准屏蔽罩产品组合
资深工程师对于电池及其充电速度的迷思与思考
汽车功能安全(ISO 26262)系列: 概念阶段开发
基于Proteus与Keil μVision3软件的自动取款机仿真设计
Exim最新漏洞影响全球过半邮件服务器
三星S8什么时候发布?底价曝光
EtherCAT从站控制器解决方案横向比较-ET1100/LAN9252/AX58100
Subtle Medical利用AI降低磁共振成像时间和成本
要不要剁手?外星人电脑降价500美元!
伺服驱动器的工作原理是什么
oppo R9 plus大战iphone 6 plus,你是谁的粉?
HDJB-702A微机继电保护测试仪上位机做直流试验
面向多媒体SOC微状态低功耗解决方案
浅谈PCB设置自动布线的技巧
强势!Kinghelm必应Bing搜索索引量突破百万,高达242万!金航标国际品牌营销新高度!
高速PCB电子系统设计所面临的挑战有哪些
工程师不得不知的10种PCB散热方法
禁令生效 华为怎么样了?