POS机模拟系统.docx
- 文档编号:23968642
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:73
- 大小:171.99KB
POS机模拟系统.docx
《POS机模拟系统.docx》由会员分享,可在线阅读,更多相关《POS机模拟系统.docx(73页珍藏版)》请在冰豆网上搜索。
POS机模拟系统
前言
POS(Pointofsales)的中文意思是“销售点”,是一种配有条码)或OCR码(Opticalcharacterrecognition光字符码)终端阅读器,有现金或易货额度出纳功能。
品种有有线和无线两种或有、无线兼用。
POS机与广告易货交易平台的结算系统相联,其主要任务是对商品与媒体交易提供数据服务和管理功能,并进行非现金结算。
POS也称为销售点情报管理系统。
过去零售业常规收银机只能处理简单收银,发票,结帐等简单销售作业,得到之管理情报极为有限,仅止于销售总金额,部门销售基本统计资料。
对于一般零售卖场少则上千多则上万种商品之基本经营情报:
如营业毛利分析,单品销售资料,畅滞销商品,商品库存,回转率...却无法获得。
导入POS系统主要是解决上述零售业管理盲点。
POS系统基本作业原理是先将商品资料创建于计算机文件内,透过计算机收银机联机架构,商品上之条码能透过收银设备上光学读取设备直接读入后(或由键盘直接输入代号)马上可以显示商品信息(单价,部门,折扣...)加速收银速度与正确性。
每笔商品销售明细资料(售价,部门,时段,客层)自动记录下来,再由联机架购传回计算机。
经由计算机计算处理即能生成各种销售统计分析信息当为经营管理依据。
POS系统除能提供精确销售情报外,透过销售记录能掌握卖场上所有单品库存量供采购部门参考或与EOS系统连结。
总之POS为现代零售管理必备工具。
POS结算
通过POS系统结算时应通过下列步骤:
(1)地方易货代理或特约客户的易货出纳系统,将买方会员的购买或消费金额输入到POS终端;
(2)读卡器(POS机)读取广告易货卡上磁条的认证数据、买方会员号码(密码);
(3)结算系统将所输入的数据送往中心的监管账户;
(4)广告易货出纳系统对处理的结算数据确认后,由买方会员签字。
买卖会员及易货代理或特约商户各留一份收据存根,易货代理或特约商户将其收据存根邮寄到易货公司;
(5)易货公司确认买方已收到商品或媒体服务后,结算中心划拨易换额度。
完成结算过程。
第一章POS模拟系统总体设计
本章重点阐述POS模拟系统的设计思路、系统电路的原理框图。
串行口是计算机与外部设备之间进行数据交换的重要介质,作为一种灵活、方便、可靠的通信方式被广泛采用,这种通信的实现,经常要组成上位机为PC机而下位机为单片机的二级系统,通过RS232进行通信。
可将PC机与单片机组成通信系统利用vB的通信控件Mscomm及编程方法进行串口通信,这样可以很好地实现PC机与单片机之间的实时数据传送。
在本系统设计时,需要把单片机输入的密码机相关信息在上位机PC上显示出来。
并且将PC机界面的POS机信息发送到单片机显示出来。
初步确定设计系统由PC机VisualBasic:
模块,单片机模块,键盘、串行通信模块4个模块组成,电路系统框图如图1所示。
图1总体电路框图
设计基本原理:
本POS模拟系统以单片机为核心,首先通过键盘输入“进入”键,单片机控制显示屏显示“欢迎进入本系统,系统由密码进入,系统密码由键盘或PC机修改”,再按“进入”键,则显示“欢迎进入本系统,请输入系统密码,********,按确认键确认密码”,同时通过串行口将相关显示信息在POS机界面显示,接着如果按键“密码输入”键,则进入密码输入过程,如果连续输入6位密码后按“确认”键,则会将输入密码与默认密码比较,如果一致则显示“密码OK,谢谢使用”,如果密码不一致,则显示“密码错,请重新输入“,再重新输入密码即可。
如果要设定密码,可以通过两种方法:
一种是通过键盘,按“密码设定键”,此时屏幕显示“请输入新密码,*******,新密码确定”,按“确定”键后输入的密码有效;另外一种方法是通过PC机界面,在发送信息框内输入要修改的密码,然后点击“发送信息”,则会在下位机部分显示“你输入的新密码是******,密码修改成功”,且在POS模拟界面的接收信息框显示同样的内容。
2.4系统整体电路设计
若在本设计的基础上,在8051的I/O口上接18B20传感器电路,则可以实现网络式的监测系统,这也正式本设计的出发点
第二章系统的硬件设计
为使POS模拟系统能够具有更好的实用性,并且具有更高的性能,需对该系统的硬件进行完整的设计。
该系统的硬件设计采用了模块化的设计方法。
按实现的功能来分,可分为以下几个单元部分。
其中,AT89S52单片机是整个电路的核心,它控制其他模块来完成各种复杂的操作。
附录二就是装配流水线控制系统总电路图。
在本章下面的几个小节中,我们根据附录二所示的硬件设计图,对各个模块的主要的一些电路进行详细的设计和分析。
2.1AT89S52简介
2.1.1AT89S52的功能描述
AT89S52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89S52可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于8K,四个I/O口全部提供给用户。
可用12V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
工作电压范围宽(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz之间,比8751/87C51等51系列的6MHz~12MHz更具有灵活性,系统能快能慢。
AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
AT89S52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图2.1所示
2.1.2AT89S52的主要特性
AT89S52主要具有以下几个特点:
1)AT89S52与MCS-51系列的单片机在指令系统和引脚上完全兼容;
2)内有4k字节在线可重复编程快擦写程序存储器;
3)静态工作,工作范围:
0Hz~24MHz;
4)128×8位内部RAM;
5)32位双向输入输出线;
6)三个十六位定时器/计数器
7)5个中断源,两级中断优先级;
8)1个全双工的异步串行口;
9)闲置和掉电两种工作方式。
10)内振荡器和时钟电路
2.1.3主要管脚说明
AT89C51的主要管脚说明如下:
1)VCC:
供电电压。
2)GND:
工作地。
3)P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
4)P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
5)P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
6)P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表2.1所示。
7)RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
8)
:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR的8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
端口引脚
各个功能
P3.0
RXD(串行口输入端)
P3.1
TXD(串行口输出端)
P3.2
TNT0(外部中断0请求输入端,低电平有效)
P3.3
TNT1(外部中断1请求输入端,低电平有效)
P3.4
T0(定时器/计数器0脉冲输入端)
P3.5
T1(定时器/计数器1脉冲输入端)
P3.6
WR(外部数据存储器写选通信号输出端,低电平有效)
P3.7
RD(外部数据存储器读选通信号输出端,低电平有效)
9)
:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
10)
:
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
11)XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
12)XTAL2:
来自反向振荡器的输出。
2.2时钟电路的设计与工作原理分析
2.2.1振荡器特性
XTAL1和XTAL2分别为反相放大器的输入和输出。
该反相放大器可以配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应悬空不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2.2时钟电路的设计
8031/8051单片机的时钟信号通常用两种电路形式得到:
内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。
由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
内部振荡方式的外部电路如下图2.2所示。
图中,电容器C1,C2起稳定振荡频率、快速起振的作用,其电容值一般在30~50pF。
晶振频率的典型值为12MHz,采用6MHz的情况也比较多。
内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。
外部振荡方式是把外部已有的时钟信号引入单片机内。
这种方式适宜用来使单片机的时钟与外部信号保持同步。
外部振荡方式的外部电路如下图2.2所示。
由上图可见,XTAL1接地,外部振荡信号由XTAL2引入。
为了提高输入电路的驱动能力,通常将外部信号经过一个带有上拉电阻的TTL反相门后接入XTAL2。
2.2.3单片机的基本时序单位
单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。
振荡频率二分频后形成状态周期或称S周期,所以,1个状态周期包含有2个振荡周期。
振荡频率foscl2分频后形成机器周期MC。
所以,1个机器周期包含有6个状态周期或12个振荡周期。
1个到4个机器周期确定一条指令的执行时间,这个时间就是指令周期。
MCS-51系列单片机指令系统中,各条指令的执行时间都在1个到4个机器周期之间。
4种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的基本时序单位。
单片机外接晶振频率12MHZ时的时序单位的大小:
振荡周期=1/fosc=1/12MHZ=0.0833us
2.3单片机复位电路的设计与分析
2.3.1单片机复位电路的设计
在51系列单片机中,在振荡器运行时,RST引脚上保持到少两个机器周期的高电平输入信号,复位过程即可完成。
为响应这一不定期程,CPU发出内部复位信号。
内部复位操作是在发现RST为高电平后的第二个周期进行的,并且此后每个周期都重复进行复位操作,直到RST变成低电平为止。
针对复位电路对时间的需要,我们对上电复位电路进行设计。
一般来讲,Vcc电源的上升时间不超过1ms,片内振荡器启动时间在10ms之内。
在这种情况下,把RST引脚通10uF电容接到Vcc并同时经过10K电阻和地相连,就可获得上电自动复位的结果。
其具体的复位电路如图2.3所示。
接通电源后,Vcc便对电容通过电阻进行充电。
RST脚的电压等于Vcc与电容两端电压之差。
在充电过程中,随着电容电压逐步趋于Vcc,RST引脚上之电压最终将接近于0。
此过渡过程之长短取决于电阻和电容值的大小。
10uF电容足可使RST脚上的电压在振荡器启振后尚有两个机器周期以上的时间保持高于施密特触发器的低门槛电平,从而使整个复位过程得以完成。
2.3.2单片机复位后的状态的分析
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。
单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表2.2。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。
说明:
表中符号*为随机状态;
表2.2特殊功能寄存器与初始状态表
特殊功能寄存器
初始状态
特殊功能寄存器
初始状态
PSW
00H
TH0
00H
P0~P3
FFH
SBUF
不定
IP
***00000B
SCON
00H
IE
0**00000B
PCON
0*******B
A
00H
TMOD
00H
B
00H
TCON
00H
SP
07H
TL0
00H
DPL
00H
TH1
00H
DPH
00H
TL1
00H
PSW=00H,表明选寄存器0组为工作寄存器组;
SP=07H,表明堆栈指针指向片内RAM07H字节单元,根据堆栈操作的先加后进法则,第一个被压入的内容写入到08H单元中;
Po~P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;
IP=***00000B,表明各个中断源处于低优先级;
IE=0**00000B,表明各个中断均被关断;
A=00H,表明累加器已被清零;
MCS-51系列单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转成低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
MCS-51系列单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。
AT89C51是由美国Atmel公司生产的高性能八位单片机。
该芯片采用FLASH存储技术,内部具有2KB字节快闪存存储器,采用DIP封装,是目前在中小系统中应用最为普及的单片机。
2.4串行通信模块
MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。
MSComm 控件的常用属性
MSComm控件有很多重要的属性,但首先必须熟悉几个属性。
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。
也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
下面分别描述:
CommPort 属性
设置并返回通讯端口号。
语法
object.CommPort[ = value ]
CommPort 属性语法包括下列部分:
部分描述
object 对象表达式,其值是“应用于”列表中的对象。
value 一整型值,说明端口号。
说明
在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。
但是如果用 PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。
警告 必须在打开端口之前设置 CommPort 属性。
数据类型
Integer
Settings 属性
设置并返回波特率、奇偶校验、数据位、停止位参数。
语法
object.Settings[ = value]
Settings 属性语法包括下列部分:
部分描述
object对象表达式,其值是“应用于”列表中的对象。
value字符串表达式,说明通讯端口的设置值,如下所述。
说明
当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。
Value 由四个设置值组成,有如下的格式:
"BBBB,P,D,S"
BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。
value 的缺省值是:
"9600,N,8,1"
Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
具体的来说,它提供了两种处理通信问题的方法:
一是事件驱动(Event-driven)方法,一是查询法。
1.Mscomm提供了两种处理通信问题的方法,一是事件驱动方法,一是查询法。
(1)事件驱动法
在使用事件驱动法设计程序时,每当有新字符到达或端口状态改变,或发生错误时,Mscomm控件将触发OnComm事件,而应用程序在捕获该事件后,通过检查Mscomm控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应的操作。
这种方法的优点是程序响应及时,可靠性高。
(2)查询法
查询法适合较小的应用程序,在这种情况下,每当应用程序执行完某一串行口操作后,将不断检查Mscomm控件的CommEvent属性。
以检查执行结果或检查某一事件是否发生。
进行串行通信时有两种传输方式:
(1)字符形式:
通常采用以小于ASCII码128的字符码来传递,这种方式通常用于传送指令。
(2)二进制形式:
将数据以二进制编码的方式传递,它可能含有ASCII码128以上的字符码,这种方式通常用来传送数据,以提高速度。
欧美仪器一般通讯设置"9600,n,8,1.",日本的设备常用的设置"9600,e,7,2",一般我们采用欧美标准。
如图3的通讯端口(COMl),我们一般默认设置为第一通信通道。
MAX232与PC的连接电路
MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA一232一E电平。
典型的RS一232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在一5~-15V电平。
当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS一232电平再返回TTL电平。
电容可以取O.1uF到10uF、左右的电容,有极性无极性均可,但是使用有极性的电容一定注意正负方向。
MAX232将通过如图4接插件与外部设备进行联接,可以看到此接插件只用到了其中的三个管脚,而其余的管脚没有用,连接很简单和容易实现。
据查阅资料:
由RS一232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为15m,在实际应用中。
约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过15m,一般能满足个人和近距离设备的需要。
MAX232的不足之处:
(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低,在异步传输时,波特率最大为19200bps。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(4)传输距离受限。
2.5显示单元
本系统采用TS12816-03汉字LCD显示。
一、概述
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
基本特性:
● 低电源电压(VDD:
+3.0--+5.5V)
● 显示分辨率:
128×64点
● 内置汉字字库,提供8192个16×16点阵汉字(简繁体可选)
● 内置128个16×8点阵字符
● 2MHZ时钟频率
● 显示方式:
STN、半透、正显
● 驱动方式:
1/32DUTY,1/5BIAS
● 视角方向:
6点
● 背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
● 通讯方式:
串行、并口可选
● 内置DC-DC转换电路,无需外加负压
● 无需片选信号,简化软件设计
● 工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃
二、模块接口说明
并行接口
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POS 模拟 系统