基于单片机的食堂收费系统设计.docx
《基于单片机的食堂收费系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的食堂收费系统设计.docx(47页珍藏版)》请在冰豆网上搜索。
![基于单片机的食堂收费系统设计.docx](https://file1.bdocx.com/fileroot1/2023-4/18/0df566f8-f5d3-49ac-8eab-50772b3a5e3e/0df566f8-f5d3-49ac-8eab-50772b3a5e3e1.gif)
基于单片机的食堂收费系统设计
摘 要
饭卡售饭系统最早使用于校园,食堂售饭系统的研制成功和投入使用开启了食堂管理的革命,作为一种电脑自动结算系统,替代了传统的餐券结算方式,从根本上解决了一些弊端,节省了人力、物力、财力,该系统为后勤管理工作向自动化、科学化方向发展开辟了广阔的前景。
本设计主要是由STC89C52单片机、按键扫描电路、数码管显示电路和SLE4442电路组成。
SLE4442电路通过I2C总线和STC89C52单片机实现通讯。
按键扫描电路,运用独立按键扫描,通过列和行逐次判断确定按键。
数码管显示电路中,所用的是四位的数码管,通过段选和位选确定数码管的显示。
其中,位选主要是通过控制三极管的通断来控制选择。
单片机接发光二级管,在板子上电时,用于指示。
本设计,完成了protel、PCB图的绘制、PCB板的制作、电路板的焊接。
程序编译无误,实物符合任务书要求。
关键词:
STC单片机 SLE4442卡 I2C总线
Abstract
Ricecardtosellricesystemthefirsttouseonthecampus,canteenfoodsoldthesuccessfuldevelopmentofthesystemandputintouseopenthediningroommanagementrevolution,asakindofcomputerautomaticsettlementsystem,hasreplacedthetraditionalmealvoucherssettlementway,fundamentallysolvedsomedrawbacks,savehuman,materialandfinancialresources,thesystemforlogisticsmanagementtotheautomation,scientificdevelopmentdirectionopenedupbroadprospects.
ThisdesignismainlycomposedofSTC89C52SCM,keyscanningcircuit,digitaltubedisplaycircuitandSLE4442circuitcomponent.SLE4442circuitthroughtheI2CbusandSTC89C52singlechipmicrocomputercommunication.Keyscanningcircuit,usingindependentkeyscan,throughthecolumnandalinejudgedeterminesuccessivebuttons.Digitalpipedisplaycircuit,theuseofthefouristhedigitaltube,throughtheperiodofchooseandchooseadeterminedthatdigitaltube.Amongthem,achosenmainlythroughthecontrolofthetransistorhigetocontroltheselection.SCMbyleds,intheboardelectricity,usedforinstruction.
Thisdesign,completedprotel,PCBdrawing,PCBproduction,circuitboardofwelding.Theprogramcompiledandcorrect,therealcommitmentstomeetrequirements.
Keywords:
STCsingle—chip SLE4442card I2Cbus
第1章 绪论
1.1 课题研究背景
随着科技的飞速发展,目前信息产业得到了比以往更大的发展空间,各种各类的信息产品正不断的改变着人们的生活。
在信息飞速前进的今天,数据采集与获取作为信息处理的第一步成为了众多专业人士的关注方向,如何改变数据输入现有的方式,提高数据获取的可靠性,提高数据采集的精度与速度,降低工作人员的劳动强度,提高工作效率等,成为了亟待解决的问题,在这种背景下就急需一种自动识别技术。
自动识别技术指的是应用一定的识别装置,通过被识别物品与识别装置之间的接近活动,能够自动获取被识别物品的相关信息,并提供给后台计算机处理系统来完成相关后续处理的一种技术。
经过了几十年时间的技术革新与发展,自动识别技术已初步形成了一个包括磁条磁卡技术、条码技术、光学字符识别技术、IC卡技术、声音识别及视觉识别技术、射频技术等集计算机、磁、光、机电、物理、通讯技术为一体的高科技技术科学。
它是当今社会实现信息数据的自动识读、自动输入后台计算机从而进行数据处理的重要方法,已经广泛应用于社会的各个领域。
归结起来,“感应式IC卡”食堂收费系统方案就实现用电子手段把往常繁琐,海量的有形消费数据转化成能存放在一块小晶体片中的电子信息,再利用电脑的高速运算,软件的灵活控制,网络通讯的便利对电子消费信息进行快速可靠地处理和监控,从而把食堂收费管理在简化过程,强化管理,杜绝贪污作假和节省资源各方面从传统的水平提高到全新的档次。
1.2 国内外研究现状
IC卡是集成电路卡(IntegratedCircuitCard)的英文简称,在有些国家也称之为智能卡、智慧卡、微芯片卡等。
将一个专用的集成电路芯片镶嵌于符合ISO7816标准的PVC(或ABS等)塑料基片中,封装成外形与磁卡类似的卡片形式,即制成一张IC卡。
当然也可以封装成纽扣、钥匙、饰物等特殊形状。
1993年,以电子货币应用为重点的“金卡工程”在我国正式启动。
IC卡这种诞生于20世纪70年代的具有智能性及便于携带的卡片迅速在我国普及、发展,为我国电子信息产业开辟了广阔的市场,引发了许多经济增长点。
IC卡系统的应用出人意料的在我国有金融业迅速扩展到诸多领域。
与IC卡的发源地—欧洲国家相比,我国IC卡应用领域还远不够广泛,应用深度也远不及发达国家,但我国IC卡应用领域及深度的发展迅速。
随着国家对智能卡行业的支持和智能卡行业的迅速发展和逐步成熟,国内IC卡的生产和应用呈现突飞猛进的发展势头。
现在IC卡已广泛应用于金融、电信、交通、商贸、旅游、社会保障、银行账户管理以及公共事业收费管理等领域。
由于IC卡已经向射频识别(RFID)领域发展,RFID应用示范工程建设正在稳步进行,如面向工业生产过程与安全生产管理,促进生产力发展;服务于“三农”,推进农业(农产品)产业化;重要物品的防伪和动态管理;供应链与现代物流管理;数字旅游产业与现代服务业等。
所以对我们的对IC卡读卡器的安全性,保密性,智能性,提出了更高的要求,未来的IC卡读卡器将会向便携式,无线式的方向发展。
第一代,IC卡的最初设想是由日本人提出来的。
1969年12月,日本的有村国孝(KunitakaArimura)提出一种制造安全可靠的信用卡方法,并于1970年获得专利,那时叫ID卡(IdentificationCard)。
第二代IC卡在1974年,法国的罗兰·莫雷诺(RolandMoreno)发明了带集成电路芯片的塑料卡片,并取得了专利权,这就是早期的IC卡。
第三代是,1976年法国布尔(Bull)公司研制出世界第一枚IC卡。
第四代,1984年,法国的PTT(Posts,TelegraphsandTelephones)将IC卡用于电话卡,由于IC卡良好的安全性和可靠性,获得了意想不到的成功。
随后,国际标准化组织(ISO,InternationalStandardizationOrganization)与国际电工委员会(IEC,InternationalElectrotechnicalCommission)的联合技术委员会为之制订了一系列的国际标准、规范,极大地推动了IC卡的研究和发展。
本实验,我要通过对SLE4442卡的应用,实现一个简单的IC卡饭卡收费系统,能够进行扣钱、报警、显示。
1.3 课题研究的主要内容
本设计主要学习了:
SLE4442芯片的传输方法,它与单片机之间通过I2C总线进行传输;STC89C52单片机的编程思路,本设计用C语言进行编程,其中包括数码管显示函数、按键扫描函数、中断函数、主函数;学习使用了protel和PCB软件的用法;学习制作了PCB板及电路板的焊接;C语言程序拷入单片机的方法;系统整体的软硬件调试。
第2章 食堂饭卡收费系统硬件设计
2.1 售饭机的概念
下位机即售饭机,是本系统的一个主要组成部分,负责读取和暂时处理卡信息,由通信系统传到管理中心,同时键盘输入每次消费的金额,也传到管理中心,保存到数据库中,同软件统计,管理。
管理中心的数据到下位机通过显示程序显示给消费者。
2.2 应用系统结构设计
根据IC卡售饭机的功能特点,售饭机系统需要完成数据的输入、显示和处理三种功能,整个系统的结构框图如图2-1。
图2-1 系统的结构框图
2.3 设备选型及设计电路
此设计采用高性能低功耗单片机STC89C52作为控制系统的核心。
按照图2-1所确定系统结构,选择合适的功能部件,以完成完整的系统控制电路设计。
控制系统需要选择STC89C52单片机系统、IC卡单元、键盘单元和显示单元四部分。
2.3.1 STC89C52单片机
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效地解决方案。
具有以下标准功能:
8K字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB
图2-2 STC89C52单片机管脚图
E2PROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
1~8脚:
通用I/O接口P1.0~P1.7
9脚:
RST复位键
10脚:
RXD串口输入
11脚:
TXD串口输出
12脚:
INT0中断0
13脚:
INT1中断1
14脚:
计数脉冲T0
15脚:
计数脉冲T1
16脚:
WR写控制
17脚:
RD读控制输出端
18~19脚:
晶振谐振器
20脚:
地线
21~28脚:
P2.0~P2.7接口,高8位地址总线
29脚:
psen片外rom选通端,单片机对片外rom操作时,29脚输出低电平
30脚:
ALE/PROG地址锁存器
31脚:
EA,rom取指令控制器,高电平片内取,低电平片外取
32~39脚:
P0.7~P0.0
40脚:
电源+5V
在本设计中,P3.0、P3.1分别与232芯片的R1O、R2O相连,用于串口输入、串口输出,作用是通过电脑上的程序通过232拷入单片机中。
P3.3口与蜂鸣器电路相连,当输出低电平时,蜂鸣器作用。
P3.2、P3.4、P3.5、P3.6分别与SLE4442芯片底座相连,用于SLE4442芯片与单片机之间的I2C总线的通讯。
P0.0接指示灯,用于上电后,指示灯提醒。
P0.1、P0.2与按键的行接通,P1.0~P1.7与案件的列接通,行列配合用于按键扫描。
P2.0~P2.7接数码管的段选端,P0.4~P0.7接数码管的位选端,位选和段选配合一起控制数码管。
2.3.2 IC卡电路设计
2.3.2.1 SLE4442卡简介
本系统选用西门子SLE4442逻辑加密型IC卡,SLE4442是西门子公司的一款具有可编程安全代码(PSC)和写保护功能的智能型存储芯片。
它有256EEPROM主存储器,不可逆的4个写保护存储器,lB的错误计数器具有3B密码保护功能。
SLE4442采用两线数据传输方式,符合IS07816-3标准。
每个字节的写入/擦除时间为2.5豪秒,数据保存时间10年上。
SLE4442具有一个安全逻辑,用以控制存储器的读写操作.在密码成功之前,除3B密码(可编程安全代码)外,数据都可以读出,只有在校验密码成功之后才可以执行数据的写入动作。
2.3.2.2 SLE4442卡的引脚配置
SLE4442IC卡采用两线数据传输方式,其引脚配置如图2-3所示。
表2-1是SLE4442IC卡的管脚功能说明。
图2-3 SLE4442IC卡引脚
表2-1 SLE4442IC卡的引脚功能
引脚号标记符号功能
C1VCC+5V电压输入
C2RST复位
C3CLK串行时钟输入
C4NC空
C5GND接地
C6NC空
C7I/O串行数据输入/输出
C8NC空
2.3.2.3 SLE4442卡的内部结构及存储器编址
SLE4442的内部结构如图2-4所示。
SLE4442的存储器采用独立编址,其地址分配如表2-2所示。
2.3.2.4 SLE4442卡的指令
SLE4442具有7种指令,包括读、写主存储器,读、写保护存储器,读、写安全存储器和读、写密码存储器和密码校验指令,每个指令都三字节组成,其格式如表2-3所示。
图2-5是SLE4442的指令模式时序图。
(1)读存储器
此指令读取存储器从指定地址N(N=0~255)开始知道主存储器最后地址的存储区的内容。
每个字节的最低位最先被读出。
此指令需要提供足够的脉冲,脉冲数m=(256-N)*8+1。
主存储器的读取始终是允许的。
读存储器的指令格式如表3-4所示。
图2-6是读主存器的时序图。
图2-4 SLE4442的内部结构
表2-2 SLE4442的地址分配
地址主存储器保护存储器加密存储器
255数据字节255----
……----
31数据字节31保护位31--
………--
3数据字节3保护位3密码字节3
2数据字节2保护位2密码字节2
1数据字节1保护位1密码字节1
0数据字节0保护位0错误计数器
表2-3 SLE4442IC卡指令格式
控制字地址数据
B7B6B5B4B3B2B1B0A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0
图2-5 SLE4442指令模式时序
表2-4 读主存储器的指令格式
ControlAddressData
B7B6B5B4B3B2B1B0A7-A0D7-D0
Binary00110000AddressNoeffect
Hexadecimal0x300x00-0XffNoeffect
图2-6 读主存储器时序
(2)写主存储器
此指令按地址对EEPROM主存储器写入数据。
根据所写数据的新老程度,其间将发生如下几种内部处理模式(即在指令发出之后需要延迟时间,以供芯片进行内部处理)。
擦除和写入(5毫秒)——相当于255个时钟脉冲
只写不擦(2.5毫秒)——相当于124个时钟脉冲
只擦不写(2.5毫秒)——相当于124个时钟脉冲
(以上为式中频率为50KHZ的情况下)
写主存储器的指令格式如表2-5所示。
如图2-7是写主存储器的时序图。
表2-5 写主存储器的指令格式
ControlAddressData
B7B6B5B4B3B2B1B0A7-A0D7-D0
Binary00111000AddressInputData
Hexadecimal0x380x00-0xFFInputData
图2-7 写主存储器时序
(3)读保护存储器
此指令后连续输入32个时钟脉冲将读出保护存储器的内容,然后额外提供一个脉冲将I/O口变为高阻态。
保护存储器始终可读。
读保护存储器的指令格式如表2-6所示。
表2-6 读保护存储器的指令格式
ControlAddressData
B7B6B5B4B3B2B1B0A7-A0D7-D0
Binary00110100NoeffectNoeffect
Hexadecimal0x34NoeffectNoeffect
(4)写保护存储器
此操作包含将输入数据与原数据相比较的过程。
如果输入的数据与要保护的数据一致,则该地址的数据不能再次被改写,否则此次操作无效。
SLE4442内部4B(32位)的写保护存储器分别和主存储器的前32B一一对应。
写保护存储器即将保护存储器的对应位由l变为0。
写保护存储器的指令格式如表2-7所示。
图2-8 读保护存储器时序
表2-7 写保护存储器的指令格式
ControlAddressData
B7B6B5B4B3B2B1B0A7-A0D7-D0
Binary00111100AddressInputData
Hexadecimal0x3c0x00-0x1FInputData
(5)读安全存储器
此指令是读出4B安全码存储器的内容,与读保护存储器指令类似,32个时钟脉冲读出了4个字节的数据,只额外提供一个时钟脉冲使I/O变为高阻态。
在密码校验成功之前,读取的安全代码存储器的内容除错误计数器外全部为0。
错误计数器的初始值为OX07。
读安全代码的指令格式如表2-8所示。
表2-8 读安全代码的指令格式
ControlAddressData
B7B6B5B4B3B2B1B0A7-A0D7-D0
Binary00110001NoeffectNoeffect
Hexadecimal0x31NoeffectNoeffect
图2-9 读安全代码存储器时序
(6)写安全代码存储器
只有在安全代码校验正确之后才能对安全存储器进行修改,否则只能把错误计数器的各位由l该为O,所需时间和时钟脉冲与主存储器相同。
写安全代码存储器的指令格式如表2-9所示。
表2-9 写安全代码存储器的指令格式
ControlAddressData
B7B6B5B4B3B2B1B0A7-A0D7-D0
Binary00111101AddressInputData
Hexadecimal0x390x00-0x03InputData
(7)校验密码
校验密码指令只有与错误计数器结合使用才有效。
指令执行一次比较一个字节的数据。
因此,此指令要连续执行三次。
在进入内部处理模式期间,必须提供时钟脉冲。
密码校验的过程如下:
首先将错误计数器的低三位的某一位写0,然后连续校验三字节的密码,接着再将错误计数器清除,再错误计数器的值,如果低三位都是l,则校验正确。
如果连续三次校验失败,错误计数器的低三位被清零,IC卡报废。
校验密码的指令格式如表2-10所示。
图2-10是校验密码的时序图。
表2-10 校验密码的指令格式
ControlAddressData
B7B6B5B4B3B2B1B0A7-A0D7-D0
Binary00110011AddressInputData
Hexadecimal0x330x00-0x03InputData
图2-10 校验密码时序
在本设计中,SLE4442卡与STC89C52的连接如图2-11所示。
由于SLE4442是开漏结构,在I/O口必须接上拉电阻以提供高电平。
详细的硬件设计如图2-11。
图2-11 IC卡电路
2.3.3. 键盘电路设计
单片机系统中常用的键盘有以下三种类型:
(1)独立型按键
独立型按键的一脚通过电阻接电源端或者地,而另一脚接单片机的I/O口。
在按键被按下和没有按下时,I/O口电平刚好相反。
这样通过检测I/O口的电平状态即可判断哪个按键被按下了。
此类键盘的特点是按键电路配置灵活、按键的状态识别简单,但是每一个按键需要占用一个I/O口,资源占用率较高,当按键的数量不是很多或者系统有睨较多的I/O口剩余时,可以采用此类设计。
(2)矩阵扫描键盘
矩阵扫描键盘有行线和列线组成。
按键位子行列线的交叉点上。
一个3*3的矩阵结构就可以构成一个含有9个按键的键盘。
按键设置在行列线的交叉点上,行列线分别接到按键开关的两端。
行列通过上拉电阻接到+5V上。
平时当没有按键按下时,列线处于高电平的状态;而当有键按下时,行列线导通,因此列线的电平状态将由此相连接,各个按键按下与否影响该键所在的行列线的电平。
这样行列线配合起来进行适当的处理,即可确定按键的位置。
此类键盘与独立式键盘相比,要节省很多的I/O口,适用于按键数量较多的场合。
(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输出高电平时,三极管导通,蜂鸣器发出报警声。
图2-13 显示电路
图2-14 蜂鸣报警器电路设计
第3章 系统的软件部分
3.1 软件结构设计
IC卡售饭机软件系统采用模块化程序设计。
从结构上看,系统控制软件主要包括一个主程序、按键处理程