(五)软件设计

手持机软件系统用C51进行直接编写,当然如果扩展外部储存器,也可考虑在本系统中采用嵌入式操作系统,并在操作系统的基础上编写自己的应用驱动程序,我们这里考虑到本手持机只是作为物流读写射频卡的中间设备,数据处理类型和任务较少,较复杂的应用处理可以由远程数据控制中心来实现,所以这里采用C51直接编写全部程序,系统的各个单元部分用单独的任务线程设计,在减少了软件设计的复杂度的同时,也增强了软件系统的稳定性和可读性。

本系统软件设计主要包括,系统初始化,键盘扫描处理,液晶显示,射频卡的读写,以及无线模块的控制与数据通讯等主要部分,由于系统初始化,键盘扫描处理,LCD显示,都是非常常见的应用设计,下面主要说明射频卡的读写部分的设计。

1.射频卡的读写软件设计

射频卡的读写,最主要是对芯片进行控制。因此读写程序也主要是完成单片机对射频卡芯片MF RC500的控制,从而实现芯片与射频卡之间的数据交互,工作流程如下:

1)单片机对射频卡芯片进行初始化,使其进入正常的工作状态;

2)等待中断信号(射频卡芯片通过天线检测到有效的射频卡进入有效范围后,产生中断信号给单片机);

3)由单片机发送相应的指令给射频卡芯片,进行请求,防碰撞,选择等操作;

4)单片机发送相应的指令对读写射频卡密码进行验证;

5)验证完毕后,读取射频卡指定块的内容或者写入相应地址块的数据;

6)完成数据读写后,向卡发送停止命令,并可判断卡有没有离开。

2.无线模块的数据传输的软件设计

由于无线模块SIM900D自带TCP/IP协议栈,在本手持读写器里,单片机通过其串口,利用AT命令就可以对SIM900D进行数据通讯。主要流程如下:

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查