1、简介
该系统采用AT89C51单片机为控制核心,它具有如下功能:利用 LCD12864 液晶来显示取款信息;通过矩阵键盘实现密码输入、独立按键模拟磁卡。
2、主要功能
a.通过LCD12864液晶来显示取款信息。
b.通过按键和矩阵键盘实现取款、查询、改密等功能。
3、环境搭建
资料清单:C程序+仿真+设计报告+使用说明+元件清单+操作视频
仿真版本:Proteus8.6及以上版本
编译平台:Keil C51
编程语言:C语言
4、源程序
使用keil C51软件实现程序编写与编译。
#include <reg52.h>
#include "bianldy.h"//变量定义
#include "control_lcd.h"//lcd的驱动程序
#include "hanssm.h"//函数的声明
#include "ziku.h"
#include "display.h"
#include "iiccon.h"
#include "init.h"//各类数据和函数的初始化
//unsigned char i;
#include "iicdateinit.h"
#include "KANSANF.h"
void delay(uint a)
{
uchar c;
uint b;
for(b=0;b<a;b++)
for(c=0;c<120;c++)
;
}
void buzzer_di()//蜂鸣器di声
{
buzzer=0;
delay(100);
buzzer=1;
}
main()
{
init();
ininticcdate();//E2PROM中数据的初始化
while(1)
{
if(chakc==0)
{
keysanf_chak();
// init();
}
if(chakc==1)
{
display_mima();
chakc=2;
}
if(chakc==2)
{
keysanf_mima();
if(xing>6)
xing=6;
if(xing<0)
xing=0;
keysanf_lk1();
if(lk1bz==1)
{
mima=table_mima[xing-1];
xing--;
lk1bz=0;
}
display_mimax(xing);
table_mima[xing]=mima;
if(xing==6)
{
keysanf_rk1();
if(rk1bz==1)
{
if(table_mima[1]==read_add(1+(cha-1)*8)&&table_mima[2]==read_add(2+(cha-1)*8)&&table_mima[3]==read_add(3+(cha-1)*8)&&table_mima[4]==read_add(4+(cha-1)*8)&&table_mima[5]==read_add(5+(cha-1)*8)&&table_mima[6]==read_add(6+(cha-1)*8))
{chakc=3;}
else
{
chakc=10;
erroncount=read_add(0+(cha-1)*8)+1;
delay(50);
write_add(0+(cha-1)*8,erroncount);
}
rk1bz=0;
xing=0;
}
}
}
if(chakc==3)// 在选择业务下检测1234个按键
{
display_ywxuanze();// 选择业务页面
keysanf_rk1();//取卡
if(rk1bz==1)
{
init();
}
keysanf_rk2();//取款
if(rk2bz==1)
{
chakc=4;
rk2bz=0;
}
keysanf_lk2();//查询余额
if(lk2bz==1)
{
chakc=7;
lk2bz=0;
}
keysanf_lk1();//修改密码
if(lk1bz==1)
{
chakc=9;
lk1bz=0;
}
5、proteus8.6仿真
采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
6、设计资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等,设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。由于不定期更新,最新的资料包不一定与下面图片完全一致,但主要资料都有。
7、资料获取方式
有偿,下载链接:SS10基于51单片机的自动取款机设计