基于单片机的煤车称重系统-软件设计 下载本文

图3.5自动充电和电源切换

3.5 IC卡

IC卡在我们日常生活运用十分广泛,在现代生活我们是越来越离不开IC卡。IC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证,银行的电子钱包,电信的手机SIM卡,公共交通的公交卡、地铁卡,用于收取停车费的停车卡等,都在人们日常生活中扮演重要角色。IC卡又称集成电路卡,是通过卡里的集成电路储存信息。一般采用射频技术,或者专用的读卡器进行数据交换。如图3.5所示

图3.5 IC卡接口电路

3.6按键电路

在本次智能煤车称重设计中需要运用到一些按键,本设计共有五个按键,分别是时钟显示模式的切换、设置键加、设置键减、称重按键和IC卡数据传输按键控制。硬件电路图如图3.6所示。

图3.6 按键电路图

四.系统软件设计

如果是硬件系统是智能煤车称重仪的外壳,那驱动程序就是智能称重仪器的内核,智能煤车称重系统的软件设计主要包括单片机的软件设计和PC机上的程序设计。本次设计主要用汇编语言来完成中断设置,A/D转换,重量显示,数据储存,IC卡数据读写等功能。单片机的软件设计主要包括:主程序设计、数据采集、显示程序、IC卡子程序等。在这过程中还有定时器/计数器的设置和中断的分配等工作。

4.1 系统主程序流程图

在本设计中选用的单片机语言是C52。它具有一般C语言的特点:(1)程序书写简单。(2)便于阅读和维护;(3)可实现模块化、结构化编程;(4)语言表达能力强:(5)可对内存、变量的值进行直接操作,能完成汇编语言对硬件操作的大部分功能;(6)源程序的可移植性好,许多程序段不做或只做少量的修改即可移植到另一个C系统上运行,为调试提供方便。主程序完成可编程芯片的初始化和重量数据采集及按需要调用各模块。

主程序主要是对各个端口及变量进行定义、刷新和开中断。还包括了按键扫

描和LED显示。程序的工作过程是:先对定时器和各个I/O口进行初始化和定义。然后进行按键扫描,如果检查到称重按键或者数据传输按键按下则调用称重或IC卡数据传输函数,最后进行LED显示,并不断的循环具体的程序流程图如下:

开始 初始化程序对时钟及I/O口定义 按键扫描 LED显示程序 称重程序 IC卡程序

图4.1主程序流程图

4.1.1 按键扫描

按键扫描每次循环进行一次扫描。检测到mode键按下后mode计数加一,mode0到mode2无操作。mode3和mode4时间和日期的设置,在这两个模式下会检测up键或down键是否按下,当mode按键到10时mode清0。如果检测到有up或则down键按下则进行相应的时间加减设置操作,否则返回。当检测到称重按键按下则置称重标志位flag1为1开始进行称重模式,本次称重模式,称重20次得出20次的平均数。当检测到IC卡传输按键按下则置IC卡传输标志位flag2为1,流程框图如图4.2所示。

N 返回

N Y IC按键是否按下 flag2 Y 分减1 Y Y 称重按键是否按下 flag1 N down按下 down按下 N N Y up键按下 Y 分加1 N Y up键按下 Y 日加1 N Mode键是否按下 Y Mode加1 Mode等于3 N Mode等于4 N 入口

图4.2按键扫描流程

4.1.2 LED显示程序

LED显示程序使用switch语句在不同的情况下分别显示不同的内容,其中显示控制由mode来控制,这就是在流程图中没有出现mode按键0和1和2的原因。因为在0和1时是对显示时间的控制。当case等于0时显示时间,当case等于1时显示年份,当case等于2时则显示月份和日期,当case等于3时则进入时间设置的显示,case为4时显示年月日的修改,case为5则显示称重的重量,case等于6则显示数据传输。

流程框图如图4.3所示。