石家庄铁道大学四方学院毕业设计
图2-11 IC卡电路
2.3.3. 键盘电路设计
单片机系统中常用的键盘有以下三种类型: (1)独立型按键
独立型按键的一脚通过电阻接电源端或者地,而另一脚接单片机的I/O口。在按键被按下和没有按下时,I/O口电平刚好相反。这样通过检测I/O口的电平状态即可判断哪个按键被按下了。此类键盘的特点是按键电路配置灵活、按键的状态识别简单,但是每一个按键需要占用一个I/O口,资源占用率较高,当按键的数量不是很多或者系统有睨较多的I/O口剩余时,可以采用此类设计。
(2)矩阵扫描键盘
矩阵扫描键盘有行线和列线组成。按键位子行列线的交叉点上。一个3*3的矩阵结构就可以构成一个含有9个按键的键盘。按键设置在行列线的交叉点上,行列线分别接到按键开关的两端。行列通过上拉电阻接到+5V上。平时当没有按键按下时,列线处于高电平的状态;而当有键按下时,行列线导通,因此列线的电平状态将由此相连接,各个按键按下与否影响该键所在的行列线的电平。这样行列线配合起来进行适当的处理,即可确定按键的位置。此类键盘与独立式键盘相比,要节省很多的I/O
- 12 -
石家庄铁道大学四方学院毕业设计
口,适用于按键数量较多的场合。
(3)PS/2接口按键
PS/2接口是由IBM公司开发的一种计算机接口。计算机上的鼠标和键盘使用的就是这种接口,现在在计算机上更多的是使用USB接口。PS/2键盘为每一个按键分配唯一的编码。扫描码分为两种不同的类型:通码和断码。当键被按下是,发送的是通码;当键盘被释放是,发送的是断码。这样通过查找扫描码表就可以确定是哪一个按键,PS/2的扫描码共有三套,现在广泛使用的是第二套扫描码。PS/2接口采用双向串行数据传输协议。每个字节为一桢,包含ll位(一位起始位、8位数据位、一位奇偶校验位和一位停止位),此类键盘的特点是集成度高,使用灵活。一个使用了串行数据传输技术,仅需要使用两个I/O端口即可(由于程序设计的原因,其中一个端口通常薏;要占用一个外部中断端口),但成本较高,而且不易集成在系统内部。
IC卡售饭机系统选用的STC单片机STC89C52的I/O端口较多,在实际使用中,键盘最好集成在售饭机内以防止由于键盘的滑轮造成售饭员的误操作。综合考虑实际的使用情况和价格比,本设计采用矩阵扫描键盘进行数据输入。其硬件设计部分如图2-12。
图2-12 按键电路
2.3.4 显示电路设计
IC卡售饭机系统只需要进行数字的显示即可,但需要显示器件具有直观和高亮度。在此基础上,本设计采用的高亮度红色LED数码管作为显示器件。在显示电路中,所用到的数码管型号是LD3461BS,它是以共阳极的数码管,当输入为低电平时,数码管亮。同时数码管下面接着三极管,前三个为8550,低电平触发,后面一个为8050,高电平触发。其电路设计如图2-13。
2.3.5 蜂鸣报警电路设计
本设计采用电磁式蜂鸣器作为IC卡出错报警提示。它与单片机STC89C52的连接如图2-14所示。单片机STC89C52的PD3口通过NPN型三极管驱动蜂鸣器。当PD3输出高电平时,三极管导通,蜂鸣器发出报警声。
- 13 -
石家庄铁道大学四方学院毕业设计
图2-13 显示电路
图2-14 蜂鸣报警器电路设计
- 14 -
石家庄铁道大学四方学院毕业设计
第3章 系统的软件部分
3.1 软件结构设计
IC卡售饭机软件系统采用模块化程序设计。从结构上看,系统控制软件主要包括一个主程序、按键处理程序和其他一些辅助处理程序。从功能上看,系统控制软件则主要由IC卡控制程序、STC89C52单片机程序等组成。
3.2 系统的操作过程
在IC卡插入售饭机后,系统能读出IC卡里面预先存储的金额,并能在数码管上显示出金额。售饭员利用键盘输入就餐者选定的食物金额,售饭机自动用卡中的金额减去应付金额。操作完后屏幕显示应付金额以及卡中的余额。如果IC卡中金额小于预先设定的金额,饭卡机则给出报警。
3.2.1 主程序
主程序完成初始化、IC卡插入检测、读写和键盘输入处理、异常情况的报警处理等工作,已完成人机交互的功能。
系统主流程序的流程图如图3-1所示。。
3.2.2 中断程序
在数码管显示时要用到中断子程序,它主要的设计思路为:由于为11.0592HZ的晶振,所以每个时钟脉冲为100us,当计数器每计够50次,即每5ms执行一次数码管显示的语句。中断程序的流程图如图3-2所示
3.2.3 按键处理程序
按键处理程序是系统服务程序的一部分。按键处理程序完成按键的识别与处理工作。在确认有键被按下后,通过查找按键,区分功能键与数字键,从而根据不同的情况进行相应的处理。按键处理程序的流程如图3-3所示。
- 15 -
石家庄铁道大学四方学院毕业设计
开始 初始化 N 是否卡插入 Y 显示余额 Y 是否有按键按下 N 按键处理
图3-1 主程序框图
开始 N 是否计数50次 Y 显示段码 等待 是否位码数为3 N 显示位码 Y 位码数归0 返回
图3-2 中断程序流程图
- 16 -