首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于AT89C52的非接触式IC卡预收费电度表设计(2)

基于AT89C52的非接触式IC卡预收费电度表设计(2)

3 软件设计
  本非接触式IC卡 预收费电度表的程序采用了模块化的设计,整个系统由用户端电度表计费程序和供电部门存未及管理程序两部分组成。每部分程序又由单片机系统程序和VB用户接 口程序两部分组成,单片机程序和VB程序之间采用VB的通讯控件MSComm通过RS232进行通讯,通讯协议使用基于ASCII码的查询命令、中断收发 字符。微机通过事先约定好的字符对单片机实现控制,单片机通过判断微机发来的不同字符,执行不同的单片机子程序。
  3.1 用户端电度表计费程序
  3.1.1 单片机系统程序的主要功能
  (1)读取有效的非接触式IC卡功能。对卡进行防冲突、密码认证、卡号认证等操作,并读出卡中存储的数据,然后将卡清零、停卡。
  (2)完成电度表的预收费功能。将从IC卡中读出的电度数与单片机内存剩余的电度数相加,并存回内存。
  (3)显示功能。系统周期性地扫描,动态显示机内剩余的电度数。此外,当读写IC卡发生错误时,显示出错信号。
  (5)电度计数功能。系统实时监测电表转盘读数头(红外发射接收管)发来的脉冲信号,当脉冲信号由高电平变为低电平时,计数器COUNT加1;而当COUNT值等于电表常数(转/度)时,剩余电度数减1,用电量加1,同时COUNT清零。
  (6)报警断电功能。当机内剩余电度数小于15度时,点亮预告用电量将尽的发光二极管指示器,提示用户持卡到供电部门重新购电。而当用户电表中剩余电量完全用完时,控制继电器切断用户供电电源。用户只有再次存入电度数后,才能继续供电。
  单片机系统程序由主监控程序、IC卡处理子程序、电度计数子程序、串行中断服务子程序等组成,其框图分别见图4(a)、(b)、(c)、(d)。
  

  

  3.1.2 VB用户接口程序的主要功能
  (1)显示。根据输入的用户编号,显示相应的用户信息。
  (2)采集。将用户编号通过通讯控件发送给单片机,单片机认证用户编号后,返回该用户的用电量和剩余电度数。
  (3)写入。将采集来的数据。加上用户编号和日期,一并写入数据库,以供查询。
  (4)查看。查看当用各用户的用电量情况及剩余电度数;查看所有的用电情况。
  3.2 供电部门存款及管理程序
  3.2.1 单片机系统程序的主要功能
  (1)系统初始化设置。设置寄存器地址、中断源入口、加载IC卡认证密码以及设置串行口、定时器0和定时器1的工作模式等。
  (2)接收微机发来的控制字符。执行串行中断服务子程序,如控制字符为R则执行对IC卡的询卡、防冲突、选卡、认证等操作,并返回给微机卡号;如控制字符为W则将用户购买的电度数写入IC卡,再读出写入的电度数,然后停卡。
  (3)显示功能。显示IC卡中存入的电度数,当对IC卡操作过程中有任何错误时,将显示错误信息,提示用户。
  程序由主程序程序和串行中断服务子程序等组成,它们的框图见图5(a)、(b)。
  

  (1)IC卡 存款功能。用户持卡到供电部门存款,工作人员将放在读写器上,按“读卡”按钮,微机发送字符“R”给单片机,单片机执行相应的中断处理后返回卡号。系统根 据返回的卡号显示对应的用户信息,确认无误后,输入用户交纳的金额,系统自动转化成电度数。按下“存款”按扭,将电度数存入IC卡,同时将存款的相关信息写入数据库,以供查询。
  (2)查询功能。查询用户信息、IC卡信息以及用户的用电情况,可以根据输入的用户编号或电卡号进行有选择地查询。
  (3)维护功能。对数据库的维护包括添加新的记录、删除不需要的记录以及对现有记录的更新。本系统所使用的数据库由MSAccess建立,通过VB的数据对象控件与用户界面关联,对数据的所有操作都实时地更新所关联的数据库。
  本文将非接触式IC卡技术与计算机技术相结合,研制出多功能电量计量收费装置。该系统实现了用电收费的电子化,改变了先用电后收费的不合理状况,促进了用电计量、收费的科学化管理。该装置利用了老式机械表的功能和结构,降低了改造的成本,适于推广使用。
继承事业,薪火相传
返回列表