基于单片机的无线点菜系统【毕业论文】.doc

上传人:文初 文档编号:17425 上传时间:2018-04-26 格式:DOC 页数:38 大小:1.56MB
下载 相关 举报
基于单片机的无线点菜系统【毕业论文】.doc_第1页
第1页 / 共38页
基于单片机的无线点菜系统【毕业论文】.doc_第2页
第2页 / 共38页
基于单片机的无线点菜系统【毕业论文】.doc_第3页
第3页 / 共38页
基于单片机的无线点菜系统【毕业论文】.doc_第4页
第4页 / 共38页
基于单片机的无线点菜系统【毕业论文】.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、本科毕业设计(20届)基于单片机的无线点菜系统所在学院专业班级电气工程及其自动化学生姓名学号指导教师职称完成日期年月I摘要【摘要】针对中低档餐厅的电子点菜需求,本文设计了基于C8051F330单片机的无线点菜系统。该系统由餐桌点菜机、服务台接收器、服务台上位机软件组成,系统通过点菜机进行点菜,菜单采用短距离无线方式传送到服务台接收器,接收器将菜单转发到上位机,上位机软件接收并显示菜单,并且对菜单进行管理。本文实现了基于C8051F330的餐桌点菜机和服务台接收器的最小系统软硬件的设计,以及基于VISUALBASIC60的上位机软件设计。采用NRF24L01模块作为无线收发模块,实现了无线点菜的

2、可靠距离为15M以上。【关键词】无线点菜;单片机;NRF24L01。IIABSTRACT【ABSTRACT】FORTHEELACARTEDEMANDOFMIDDLEANDLOWLEVELRESTAURANT,THEPAPERDESIGNOFAMICROCONTROLLERBASEDWIRELESSLACARTESYSTEMTHISSYSTEMCONSISTSOFLACARTEDININGTABLE,MENURECEIVER,PCMANAGEMENTSOFTWAREOFSERVICEDESKTHELACARTEAMENUANDSENDITTOTHEMENURECEIVERBYSHORTRANGE

3、WIRELESSTRANSMISSIONTHERECEIVERWILLFORWARDTHEMENUTOTHEPCMANAGEMENTSOFTWARETHENTHEPCMANAGEMENTSOFTWARERECEIVESANDDISPLAYSTHEMENUANDWECANUSETHESOFTWARETOMANAGETHEMENUSTHISPAPERDESIGNEDTHEHARDWAREANDSOFTWAREOFC8051F330BASEDLACARTEANDMENURECEIVERMINIMUMSYSTEM,ANDTHEPCMANAGEMENTSOFTWAREBASEDONVISUALBASIC

4、60USINGNRF24L01ASAWIRELESSTRANSCEIVERMODULE,THISDESIGNREALIZEDARELIABLEWIRELESSORDEROVERADISTANCEOF15M【KEYWORDS】WIRELESSLACARTE;MICROCONTROLLER;NRF24L01。III目录1前言111研究目的和意义1111研究目的1112研究意义112国内外研究现状113研究内容22系统方案设计321系统结构3211点菜机方案3212接收器方案4213无线收发方案4214上位机软件方案522本章小结53硬件设计631点菜机6311主控模块6312电源模块6313显示模

5、块8314按键模块8315无线收发模块932接收器9321主控模块9322电源模块9323串口通信模块9324无线收发模块1033本章小结104单片机程序设计1141点菜机11411具体功能描述11412点菜机主程序12413函数的具体实现1342接收器14421接收器主程序14422其他子程序1443数据传输15IV44本章小结155上位机软件设计1651系统概述16511功能16512结构1652人机界面16521控件列表17522菜单查询子程序1853MSCOMM控件串口通信18531通信的基本概念18532MSCOMM控件1954VB数据库访问20541VB常用的数据库20542VB常

6、用的数据库访问技术20543数据库方案2155本章小结216系统调试2261点菜机界面操作调试22611显示功能调试22612菜单操作调试2262接收器串口调试2263无线收发调试23631无线模块的可靠性测试23632对菜单帧的无线收发2364系统联调2365本章小结24总结25参考文献26致谢错误未定义书签。附录271前言11研究目的和意义本论文所研究的无线点菜系统是针对高速信息化的餐饮业而进行的,这里是针对中低档餐厅而设计的,其研究目的和研究意义如下。111研究目的无线点菜系统是餐馆实行信息化管理的一个重要组成部分,该系统不仅会给餐饮企业带来良好的经济效益,而且有利于先进的科学技术在国民

7、经济中的推广应用,产生良好的社会效益。目前国内点菜系统高、低档产品繁多,但推广速度十分缓慢,究其原因是缺少适合中国国情的中档适用产品。由于点菜系统的区别关键在于点菜终端和通讯方式的选择上,在此基础上提出了一种适合具体应用场合的中档无线点菜终端解决方案运用嵌入式系统开发无线点菜系统终端,运用短距离无线通信技术进行数据传输。112研究意义市场的繁荣,顾客消费品位的提高,不可避免地带来了激烈的竞争。近年来市场格局变化尤为剧烈,许多曾经立在潮头的餐饮企业如今已被市场无情地扫地出门。如何提高效率,控制成本,改善管理,做大做强,成为摆在每一家餐饮企业面前首当其冲的问题。在餐饮业的信息化过程中,无线电子点菜

8、系统的普及能够减轻服务员的劳动强度,提高工作效率,提升餐饮企业的形象和地位,实现收银及各种信息统计的快速操作,统计信息还能为决策层提供决策的依据,并且可以大大提高服务业的服务水平,对我国的餐饮业的发展起到了积极的促进租用,并将为用现代信息技术改造传统餐饮业作出一份贡献。信息化的餐饮服务可以迎合人们生活水平的提高和消费观念的转变,通过利用信息化的餐饮服务对服务形式、餐饮风格、环境氛围等要素的影响,吸引消费者的注意力。12国内外研究现状国外在20世纪70年代,国内在80年代末开始出现餐饮服务管理系统1的雏形,即在总服务台设置PC机及与之相连的打印机等外围设备,实现基本的结帐、核算、打印收据等简单功

9、能。这个时期餐饮服务管理系统的概念实际上只是企业内部财务管理的电算化,还算不上真正意义上的餐饮服务管理系统,但是它打开了新科技进入服务行业的大门。80年代末至90年代中期随着局域网技术的迅猛发展,出现了以触摸屏为交互终端,使用C/SCLIENT/SERVER和B/SBROWSER/SERVER体系结构的餐饮服务管理系统2。这时都以有线的方式进行2系统连接。20世纪90年代至今INTERNET在技术方面有了重大突破,宽带技术、动态网页技术和数据库技术的使用和完善,使得INTERNET的信息传递和交互更加便利,网络逐渐成为人们生活不可缺少的一部分。INTERNET也进一步扩展了餐饮服务管理系统的概

10、念,人们可以远程定餐、叫餐、网上支付。无线网络技术使我们随时随地进行网络通讯,此时出现了应用红外技术、蓝牙技术、80211系列技术的餐饮服务管理系统,而这一切信息化技术在国内外并没有太大的区别。根据控制核心主要有如下分类1基于PDA2的点菜系统;2基于ARM的点菜系统;3基于嵌入式LINUX的点菜系统。根据无线通讯模块主要有如下分类1现行的市场上较普遍的是利用蓝牙技术实现系统的无线通讯,具有效率高,便于控制管理,但是由于目前的手机普遍具有蓝牙功能导致系统装置通讯的信号存在一定的干扰风险;2在市场上还普遍可以发现利用ZIGBEE实现系统的无线通讯,具有功能强大、控制管理方便的优点,但是价格普遍较

11、高,难以实现市场的普及应用;3采用先进的GSM通信模块和单片机互连的终端系统,通过AT指令,实现了数据的发送。在PC机端,通过VB编程实现人机友好交互界面,通过连接GSM模块实现接收终端发出的数据的功能;4相对于前三者,市场上还存在有线的通讯系统,技术含量低,在生产成本方面存在明显劣势,复杂的布线使其无法具有较强的竞争力。13研究内容按照无线点菜系统的系统要求,需要研究的主要内容有终端点菜机的软硬件设计、接收器的软硬件设计和上位机软件设计,另外包括系统的可靠性和稳定性测试。32系统方案设计21系统结构本论文设计的基于单片机的无线点菜系统主要以单片机为控制核心,实现在各餐桌终端进行点菜,然后通过

12、无线的方式将菜单传输到接收器,接收器将接收到的数据流通过串口传输到PC服务台,服务台用上位机软件观察各餐桌所发过来的菜单,以方便管理。该系统由点菜机、接收器、服务台共同构成,其系统结构如图21所示。1号点菜机服务台接收器2号点菜机N号点菜机图21系统结构图211点菜机方案终端点菜机为本系统的主要构成部分之一,它由主控芯片、电源模块、显示模块、按键模块和无线收发模块构成,其框图如图22所示。主控芯片显示模块无线收发模块电源模块按键模块图22点菜机框图对于该点菜机,理论上可采用较高端的ARM作为其主控芯片,采取操作系统的方式设计,这种方案的优点在于其人机界面设计较为简单,同时彩屏的方式显得更加人性

13、化,但它的劣势在于成本将会提高很多,而且对于硬件设计的难度将会提高很多。所以为了面向中低档应用,本设计采用低成本的C8051F330单片机作为其主控芯片,液晶采用4黑白的12864,这种方案能使成本在极大程度上有了降低,而且它的硬件设计较为简易,可缩短系统开发周期。212接收器方案接收器同样为本系统的主要构成部分之一,它作为点菜机与服务台之间的桥梁,用于实现将无线数据接收并通过串口传输到上位机,其组成部分有主控芯片、电源模块、UART模块、无线收发模块。其框图如图23所示。主控芯片无线收发模块UART模块电源模块图23接收器框图对于接收器方案的选择,同样采取C8051F330单片机作为其主控芯

14、片,在与上位机的通信方面,为了适用于没有串口DB9接口的笔记本电脑,本方案选择了USB转串口的方式来满足这一需求。采用USB转串口的方式只要在上位机上安装对应的驱动,便可快速实现模拟串口的形式。213无线收发方案随着无线通信技术和物联网技术的迅猛发展,短距离无线通信实用得也越来越普遍,各式各样的短距离无线通信芯片和模块也应运而生,比较常用的有TI公司开发的CHIPCON系列的无线芯片,如针对低功耗无线应用设计的高度集成多通道无线芯片CC1100,基于ZIGBEE技术设计的无线芯片CC2430;另外是NRF系列无线芯片,如工作在433M频段的NRF40X,还有24G频段的NRF2401、NRF2

15、402、NRF24E1、NRF24E2等。这些芯片都各具特色,适用于各种应用场合。基于低成本、低功耗、外围电路设计的要求,选取NRF24L01作为无线收发芯片,它的主要特性如下具有GFSK调制;硬件集成OSI链路层;具有自动应答和自动再发射功能;片内自动生成报头和CRC校验码;数据传输率为LMB/S或2MB/S;SPI速率为0MB/S10MB/S;125个频道;5与其他NRF24系列射频器件相兼容;QFN20引脚4MM4MM封装;供电电压为19V36V。这些特点使得该无线芯片能工作在低功耗,并且进行快速稳定的无线数据传输。NRF24L01的控制接口采用的是硬件SPI,这使得主控芯片能方便地控制

16、该芯片并进行快速的数据读写。214上位机软件方案如今上位机编程软件各式各样,其中应用于串口编程的常用软件有LABVIEW、VISUALBASIC、VISUALC。LABVIEW是由美国国家仪器(NI)公司开发的,类似于C和BASIC,但LABVIEW与其他计算机语言的显著区别是其他计算机语言基本上都采用基于文本的语言产生代码,而LABVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。VISUALBASIC是由微软公司开发的包含协助开发环境的事件驱动编程环境。从任何标准来说,VB都是世界上使用人数最多的语言不管是盛赞VB的开发者还是抱怨VB的开发者的数量。它是基于BASIC编程语

17、言的。VB拥有便捷的图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO进行数据库的连接,在串口方面也拥有非常方便的控件。VISUALC和VISUALBASIC类似,它是基于C语言的,在编程上更需要规范的编程训练,对于没有系统学过C的,会需要较多时间进行入门。所以综上所述,上位机软件选择VISUALBASIC开发环境。22本章小结本章主要讲述了基于单片机的无线点菜系统的系统方案设计,其中包括各主要部分的方案选择以及大致实现方式。里面涉及到的具体技术及参数将在以下章节进行详细讲解。63硬件设计31点菜机点菜机的系统框图已经在第二章中介绍过,本节主要对点菜机

18、的各模块的硬件设计进行详细地介绍说明,同时对一些原理进行分析。311主控模块采用C8051F330作为主控芯片,它是属于增强型51系列,该芯片外设丰富,价格实惠,具有增强型的UART和SPI接口,对于需要SPI控制的液晶模块和无线模块就显得极为方便,同时在与上位机之前的UART数据通信也可以直接快捷地实现。C8051F330具有两个外部中断,可通过按键产生外部中断来唤醒CPU,这能在很大程度上降低功耗。其原理框图如图31所示。图31C8051F330的原理框图312电源模块这里的电源模块设计得较为简易,由四节电池进行供电,然后通过稳压芯片对其进行降压以满足CPU模块、液晶模块和无线模块的需要。

19、虽然这种方式对于整个系统来说,功耗有所提高,但是它能让系统更稳定可靠地运行。其电路图如图32所示。7图32电源模块电路图图中S0为电源开关,6V电源电压经过二极管D0的单向作用提供给33V稳压芯片SPX1117M的3脚,然后经过其稳压作用输出大约33V的VCC,图中的几个电容用于电源的去耦,D1为电源指示灯,通过它的电流约为118MA。图33和图34分别是从SPX1117M333的数据手册上截取的该芯片在输入48V时的输出电压和电流关系图和10MA时输入输出电压关系图。结合这两个图上可以直观地看出该芯片具有较好的线性度,这对本系统所设计的电源的稳定性奠定了良好的基础。图3348V时的输出电压和

20、电流关系图图3410MA时输入输出电压关系图同时,系统在平时若不需要工作时,便自动进入待机状态,此时的系统的功耗极低。8313显示模块由于本系统可能需要大量的中文文字及数字的显示,显示模块最好能带有中文字库及ASCII的,本设计采用了MZLH0412864。MZLH0412864为一块12864点阵的LCD显示模组,模组自带两种字号的汉字库(包含一、二级汉字库)以及两种字号的ASCII码西文字库;并且自带基本绘图功能,包括画点、画直线、矩形、圆形等;此外该模块特色的地方就是还自带有直接数字显示。模组为串行SPI接口,接口简单、操作方便;与各种MCU均可进行方便简单的接口操作。此模块刚好都满足了

21、本设计的需求,很适合作为本设计的显示模块。如图35为该液晶模块与单片机的连接原理图。图35液晶模块电路图314按键模块本设计采用的是最为简单的扫描式键盘,六个按键对应于六个I/O口,每个按键连接一个47K的上拉电阻这种简单的设计使得操作方便,能让每一个使用者快速学会使用。按键排布如图36。图36按钮的布局图E(ENTER,确认键);B(BACK,返回键);U(UP,上滚键);D(DOWN,下滚键);L(LEFT,向左键);R(RIGHT,向右键)。9315无线收发模块无线收发模块的芯片型号为NRF24L01,其无线频段为24GHZ的全球开放ISM频段,免许可证;此芯片支持多达6通道的数据接收,

22、同时满足多点通信和调频通信,具有125个频点,速率可达2MBPS,这些特点都使得该芯片的无线传输效率提高很多;采用19V36V的低电压供电,最大发射功率为0DBM,在发射模式下,0DBM时的电流消耗典型值为113MA,接收模式下,2MBPS时的电流消耗典型值为123MA,而掉电模式下,电流消耗仅为900NA,这些体现了该芯片的低功耗;该模块采用SPI进行控制,其控制字格式简单,功能强大,可通过从单片机的SPI模块直接控制也可通过模拟SPI的方式,这使得单片机对NRF24L01的控制就变得极为便捷;此外,该芯片还具有自动存储未收到应答号的数据包、自动应答、载波检测、CRC检错、点对点通信地址控制

23、等可靠性方面的功能。该模块与单片机的连接电路极为简单,只有几个SPI接口的引脚以及中断请求引脚、芯片复位引脚、电源和地。32接收器接收器的系统框图同样已经在第二章中介绍过,本节主要针对接收器各模块的硬件设计进行详细地介绍说明,同时对方案设计进行分析。321主控模块同样采用C8051F330作为主控芯片,利用它的SPI模块对无线收发模块进行控制及数据的收发,UART模块与上位机之间直接进行数据通信。322电源模块此处采用的是以USB供电的电源模块,USB为四线的通用串行总线,其中两根为数据线,另外两根为电源线和地线,本电路就采用以USB供电的方式。此处同样采用了稳压芯片的方式稳定系统电压。323

24、串口通信模块用USB转串口的形式在计算机上扩展了一个串口,方便用于笔记本电脑,这样只要简单地用一个USB接口连接一个小巧的数据接收器,就能方便地实现将菜单从接收器通过串口传输到上位机。因为本设计只是用了RS232通行方式中的三线连接(TX、RX、地线),所以就不再对标准串口的DB9作详细说明了。本设计采用的USB转串口的方式所产生的数据传输电平为TTL电平,但相位与单片机上的TTL电平相位相反,所以在设计上需要对它们之间的连接电平进行反相以使其兼容。10如图所示为主控芯片经过反相器芯片74LS04的电平转换电路图,其中右侧的三引脚TX、RX、GND将与USB转串口电路的串口端相连。图37UAR

25、T电平翻转电路图表31和表32分别是74LS04和C8051F330的I/O电压参数表格,将这两个表进行对照分析可得,当接收器采用USB进行供电时,74LS04和C8051F330的I/O电平是兼容的,这样就能顺利地对其电平进行翻转,从而可以合理地与USB转串口进行通信。表3174LS04的I/O输出电压参数表表32C8051F330的I/O电压参数表324无线收发模块接收器的无线收发模块的硬件电路与点菜机终端的电路完全相同,它们需要进行完全的匹配才能实现更稳定的数据传输。33本章小结本章主要描述了点菜机系统的硬件设计部分,这些内容将为之后的软件设计和系统调试提供硬件基础,它在整个系统的设计中

26、至关重要。114单片机程序设计41点菜机点菜机需要实现了如下功能便捷的按键操作菜单选择界面选择或取消当前菜菜单发送待机时进入低功耗411具体功能描述如图41为点菜机的状态流程图,本小节将对此图进行深入地讲解。硬件初始化开机动画主界面菜类界面子菜单界面菜单发送界面发送等待动画选择点菜项选择发送项确认发送选择当前菜类返回键返回键未发送完图41点菜机状态流程图系统启动时先初始化硬件,然后显示“欢迎光临”的开机动画,此时同时等待系统初始化完毕,紧接着就进入点菜机主界面。主界面有两个选项,分别为“菜谱”和“发送菜单”,前者存储了系统给定的菜谱,顾客可进入该菜单进行点菜;后者是用于在点菜完毕之后将所点菜单

27、发送到总服务台所用,顾客进入该菜单进行确认并发送菜单。菜类界面此界面为餐厅的菜谱分类,可设置加入各种菜类,本设计为了做一个较为简易的示范,在其中加入了如下五个菜谱肉类食谱、素食食谱、禽类食谱、汤类食谱、凉拌菜。其中只在前两个菜类中添加了子菜单作为示范。12子菜单界面此界面为各分类菜谱中的具体内容,它将显示各种菜的编号、名称及其价格。顾客可用确认键对当前光标所指向的菜名进行选择或者取消,当确认某一菜名时,该菜名的前面便会出现一个大黑点“”,以表示该菜名已被选中,在当前项再次按下确认键,便取消该选中项。退出各子菜单时,当前被选中的菜名依然被保存。菜单发送界面此界面只有一个选项“发送”,此时若确认发

28、送,则按下确认键,否则可按退出键返回主界面继续点菜。按下确认键之后便进入发送等待动画。发送等待动画本设计的发送等待动画为一模拟的进度条,它等待足够长的时间以保证菜单被完全发送完毕。412点菜机主程序如图42为点菜机程序的主流程,主程序首先对单片机的硬件进行初始化,然后等待无线模块的硬件稳定之后对无线模块进行初始化,接着配置无线模块为发送模式,再对液晶模块进行初始化并显示开机动画和主页,最终进入菜单操作循环中。开始单片机系统初始化等待无线模块的硬件稳定无线模块初始化配置为发送模式液晶初始化显示开机动画显示主页菜单操作图42点菜机主流程13413函数的具体实现对点菜机功能和框架进行分析,将程序模块

29、化,分为按键扫描函数模块、界面显示函数模块、菜单操作函数模块、无线收发函数模块、其他函数模块。结构如图43所示,其中部分模块的具体内容将在本小节中进行介绍。点菜机函数集按键扫描函数模块界面显示函数模块菜单操作函数模块无线收发函数模块其他函数模块图43函数模块化图示按键扫描函数模块在活动状态下,按键扫描函数不断地对6个按键进行扫描,它先读取I/O口状态,若扫描到为有按键被按下的状态,就进行大约10MS的延时去抖(因为在按键按下的瞬间,会产生该I/O口电平的抖动,一般这段时间小于10MS,若不将这段抖动进行滤除,则可能被误判为有多次按键按下而产生错误操作),这样能使按键即稳定,反应又迅速,从而实现

30、良好的按键效果;然后进行第二次读取I/O状态,并与第一次进行相比,若与第一次相同则为正常的按键,便可以将键值转换为对应的直观的宏定义值,从而可方便地用于其它操作时的判断,若与第一次不同(包括第二次检测到为无键按下的状态),则作为错键处理,函数返回值为0。其流程图如图44所示。进入读按键状态延时去抖有键按下再次读按键状态根据键值确定被按下的按键返回键值是退出否返回0图44按键扫描子流程14菜单操作函数模块对于多层菜单的实现,采用一系列的状态数去记录,每一层菜单均采用一个结构体去记录该菜单的状态,本设计中的每一个菜单采用一个字节(8BIT)的数去记录它的各状态数,这样,每个菜单可以记录256个菜单

31、项,这种方式的优势在于能灵活地进行菜单显示的变化,在退出到上一层之后要再次进入该子菜单也能保持之前的状态,从而能提高操作效率。另一方面,各菜单之间的切换使用状态机的方式去实现。这可以在图41的点菜机状态流程图中直观地看出。42接收器接收器的程序设计较为简单,它主要是作一个数据转发的桥梁,将无线数据进行接收,再通过串口将数据发送到上位机,其具体实现在以下小节中介绍。421接收器主程序如图45为接收器的主流程,首先是对单片机的系统进行初始化,包括看门狗的禁止、时钟的配置、I/O口的初始化、UART和定时器的初始化、中断的开启等;然后进行延时,等待无线模块的硬件稳定再对其进行初始化配置,将其设置为接

32、收模式,然后等待接收数据;若接收到无线数据,则将接收缓存的数据读取并通过串口发送到上位机;然后进入下一个周期进行等待。开始单片机系统初始化等待无线模块的硬件稳定无线模块初始化配置为接收模式转发到串口接收到无线数据是否图45接收器主流程422其他子程序其他子程序包括无线收发程序和串口收发程序,这些子程序的实现较为简单,此处不再展开。1543数据传输点菜机和接收器的无线收发基本上一致,在配置好它们的收发地址和其他初始化数据之后便进入程序的主流程,然后在需要发送的时候调用发送子函数,而接收是采用中断的形式。在菜单的传输帧的设计上,为了实现尽可能少的数据传输尽可能多的信息,采用了如图46的菜单帧格式“

33、T”桌号菜类2菜号1菜号2中间码菜类1菜号1菜号2中间码菜类N菜号1菜号2结束码图46菜单帧格式因为在用无线收发的时候,NRF24L01每一次最多只能传输5字节的数据,所以需要将菜单帧以5字节为单位进行分组发送,接收器也是以5字节为一组进行转发。上位机接收到菜单帧之后,按图46所示的帧格式进行解码,然后将其存储到对应桌号的菜单数据缓存中,在该桌号被点击的时候便读取缓存数据通过查询进行显示。44本章小结本章描述的是单片机的程序设计,主要包括点菜机的程序设计和接收器的程序设计,这两部分的编程都是基于C8051F330单片机的,其编程环境为KEILUVISION2。165上位机软件设计51系统概述点

34、菜管理系统是基于WINDOWS的上位机软件,因为该上位机软件需要涉及到数据库、串口通信和直观简易的人机界面,本设计选择在VISUALBASIC60的平台上实现该软件系统。511功能该点菜管理系统具有接收、存储、显示各菜单的功能,还能对菜谱进行编辑保存。它将各点菜机上所点的菜单通过串口控件接收到上位机之后,采用查询数据库的方式将所对应的菜单存储到点菜管理系统中,管理员可通过点击相应的桌号按钮来查看当前桌号的菜单和价格,然后可通过“上菜完毕”按钮和“结账”按钮来改变当前桌的状态,以此实现对各桌号的菜单的管理。同时,可通过“编辑菜谱”按钮来编辑系统的菜谱,添加或修改对应的菜名和价格并进行保存。512

35、结构如图51为点菜管理系统的软件结构图,图中是将数据通过串口接收并存到相应的菜单数据缓存中,然后在主界面的某桌号按钮TN按下的时候,便从菜单数据缓存中读取相应的菜单数组并在菜谱数据库中进行查询,将查询获得的结果菜单显示在主界面的菜单窗口中。菜谱数据库T1T2TN菜单数据缓存21单价菜名编号显示当前桌号菜单查询按钮触发串口数据T1T2T3T4T5T6T7T8图51点菜管理系统软件结构图52人机界面为了能实现简单的操作,点菜管理系统的界面设计精简,其界面如图52所示。该界面的左侧是对应的餐桌的按钮,若对应餐桌有菜单发送到上位机,则该按钮图标将变成红色;界面右上角是串口的选择框和启动按钮,通过它可选

36、择并启动接收器所连接的串口;界面中的列表用于显示当前桌号所对应的菜单,它包括编号、菜名、单价这三项;紧跟菜单列表下面的是菜单总价的显示;界面右下角为三个操作按钮“上菜完毕”、“结账”和“编辑菜谱”,若当前桌号有菜单,点击“上菜完毕”按钮,对应桌号按钮将变成绿色,再点击“结账”按钮,将清空当前菜单并将当前桌号按钮恢复为未点菜状态的白色;点击“编辑菜谱”按钮可对菜谱进行编辑。17图52点菜管理系统主界面521控件列表对应于图52,有表51所示的控件列表,该表列出了各控件的名称并加以说明。表51上位机软件控件列表控件类型控件名说明FORMFORM1点菜管理系统主窗口COMBOBOXCOMBO1用于选

37、择串口号COMMANDBUTTONCOMMAND1“编辑菜谱”按钮COMMAND211212张桌子对应的按钮COMMAND3“结账”按钮COMMAND4“上菜完毕”按钮COMMAND5“启动串口”按钮LABELLABEL1显示当前桌号LABEL2显示“桌号”LABEL3显示“总价”LABEL4显示总价的数值LABEL5显示“元”MSCOMMMSCOMM1用于接收收集器数据的串口控件ADODCADODC1连接菜谱数据库CAIDANMDBMSHFLEXGRIDMSHFLEXGRID1绑定ADODC控件,用以显示当前桌的菜单18522菜单查询子程序点击对应的桌号按钮,此时便进入菜单查询子程序,菜单顶

38、部显示当前桌号,然后将菜单显示窗口清空,接着就打开数据库连接对象并在数据库中进行查询,将查询结果显示在菜单窗口中,最后关闭数据库连接对象后退出改子程序。其流程如图53所示。开始LABEL1显示对应桌号MSHFLEXGRID1清空设置列标头打开数据库连接对象查询并显示菜单关闭数据库连接对象结束图53菜单查询子流程53MSCOMM控件串口通信由于现在各式各样的单片机的集成外设中基本上都会有UART,它的硬件实现非常简单,而且VB也有便捷的RS232串口控件,其功能强大,设置灵活,所以本设计采用了VB中的MSCOMM控件来实现串口通信。531通信的基本概念从人与自然的角度讲,通信就是人与人与自然之间

39、通过某种行为或媒介进行信息的交流与传递;而从广义上讲,通信是指需要信息的双方或多方(可以是任意物体之间)采用各种方法,使用各种媒介,将信息从某方准确安全传送到另一方。而对于本设计,是将上位机的数据流通过串口这一媒介传递给单片机或者从单片机传到上位机,在这个过程中,需要一个双方达成一致的协议来保证它们传递的数据的正确性。19532MSCOMM控件在VISUALBASIC中,微软设计了一个很好的控件,它可以让我们快捷地完成串口通信,这个控件就是MSCOMM控件。串行通信控件MSCOMM并没有自动出现在工具箱中,当我们要用MSCOMM控件时,需要通过如下操作实现(1)选择菜单上的“工程”;(2)在工

40、程菜单中选择“部件”;(3)出现对话框之后,在可勾选的项目中选择“MICROSOFTCOMMCONTROL60”;(4)点击“确认”键即完成控件的添加。之后,部件框中就出现了,该部件就是我们所需要的串口通信控件。点击该部件框中的该图标,然后在FORM中任选位置添加,即出现该控件,此时就已表明我们已经在该工程中添加了MSCOMM控件,之后便可通过属性框或通过VB语言的方式来设置属性。MSCOMM控件有唯一事件ONCOMM,只要有通信错误或者数据接收事件发生,该事件就会产生,下表列出了可能触发ONCOMM事件的通讯事件表52MSCOMM通信事件返回值属性列表常数值说明COMEVSEND1发送缓冲区

41、中的字符数少于STHRESHOLD。COMEVRECEIVE2接收到RTHRESHOLD个字符。在使用INPUT属性移去接收缓冲区中的数据之前,该事件将持续产生。COMEVCTS3CTS信号发生变化。COMEVDSR4DSR信号发生变化。该事件仅在DSR由1变为0时触发。COMEVCD5CD信号发生变化。COMEVRING6检测到电话振铃。某些UART(通用异步收发器)可能不支持本事件。COMEVEOF7收到文件结束符(ASCII字符26)。ONCOMM事件对应的有COMMEVENT属性,该属性存有错误或事件的值,这些值的具体值及其对应的说明如表53所示表53COMMEVENT属性表常数值说明

42、COMEVENTBREAK1001接收到一个中断信号,此信号由传送端通过设定属性即可产生。COMEVENTCTSTO1002CLEARTOSEND线超时。20COMEVENTDSRTO1003DATASETREADY线超时。COMEVENTFRAME1004帧错误。硬件检测到帧错误。COMEVENTOVERRUN1006端口超限。在下一个字符到达端口之前,前一字符还没有从硬件中读走,因而丢失。COMEVENTCDTO1007CARRIERDETECT线超时。COMEVENTRXOVER1008接收缓存溢出。COMEVENTRXPARITY1009奇偶校验错误。硬件检测到奇偶校验错误。COMEV

43、ENTTXFULL1010发送缓冲区满。在试图将字符传入发送缓冲区时,该缓冲区已满。COMEVENTDCB1011在为端口获取设备控制块DCB时,发生不可预料的错误。54VB数据库访问VB中的数据库编程就是创建数据访问对象,这些数据访问对象对应于被访问的物理数据库的不同部分,如DATABASE数据库、TABLE表、FIELD字段和INDEX索引对象。用这些对象的属性和方法来实现对数据库的操作。541VB常用的数据库VB通过DAO和JET引擎可以识别三类数据库(1)VB数据库也称为本地数据库,这类数据库文件使用与MICROSOFTACCESS相同的格式。JET引擎直接创建和操作这些数据库并且提供

44、了最大程度的灵活性和速度。(2)外部数据库VB可以使用几种比较流行的“索引顺序访问文件方法ISAM”数据库,包括DDASEIII、DBASEIV、FOXPRO20和25以及PARADOX3X和4X。在VB中可以创建和操作所有这些格式的数据库,也可以访问文本文件数据库和EXCEL或LOTUSL23电子表格文件。(3)ODBC数据库包括符合ODBC标准的客户机服务器数据库,如MICROSOFTSQLSERVER。如果要在VB中创建真正的客户机服务器应用程序,可以使用ODBCDIRECT直接把命令传递给服务器处理。542VB常用的数据库访问技术DATA控件数据控件DATA是VB中一个常用的控件对象,

45、它具有快捷、方便和功能强大的特点,主要用于打开、访问并操作已有的数据库。由于DATA控件使用MICROSOFT的JET数据库引擎来实现数据访问,使用户可以无缝地访问许多标准的数据库格式,而且用户只要设置控件中的几个关键属性,并用一些文本控件把数据显示出来就可以创建数据应用程序,因此这种内部的DATA控件最适合较小的桌面数据库,诸如ACCESS和ISAM数据库等。不足之处是在编辑处理数据方面受到限制,无法进行增删记录等操作。21DAODAODATAACCESSOBJECT即数据访问对象,是VB最早引入的数据访问技术。与上述建立在数据控件上的数据访问不同,DAO可以完全不用数据控件而只用程序代码来

46、创建完整的数据库应用程序。利用DAO可以访问数据库中的所有对象并灵活地操纵数据的编辑操作。但它是基于PC平台的数据交换。RDORDOREMOTEDATAOBJECT又称为远程数据对象,它是指在CLIENT客户端与SERVER服务器端建立的数据访问模式。RDO是位于ODBCAPI之上的一个对象模型薄层,它绕过JET数据库引擎,而依赖于ODBCAPI、ODBC驱动程序以及后端数据库引擎实现大部分的智能和功能。它是从DAO派生出来的,但两者的数据库模式有很大的不同。DAO是针对记录和字段的,而RDO是作为行和列来处理的。也就是说,DAO是ISAM模式,RDO是关系模式。此外,DAO是访问ACCESS

47、的JET引擎的接口,而RDO则是访问ODBC的接口。ADOADOACTIVEXDATAOBJECTS称为ACTIVEX数据对象,是MICROSOFT公司开发数据库应用程序面向对象的新接口,ADO技术已成为ASP技术用来访问WEB数据库应用程序的核心。ADO是DAO/RDO的后继产物,它扩展了DAO和RDO所使用的对象模型,具有更加简单,更加灵活的操作性能。ADO在INTERNET方案中使用最少的网络流量,并在前端和数据源之间使用最少的层数,提供了轻量、高性能的数据访问接口,可通过ADODATA控件非编程和利用ADO对象编程来访问各种数据库。543数据库方案对于本点菜管理系统,由于涉及到的数据库

48、较小,因此选择比较适合的ACCESS。在VB的应用中,它不仅设计简单,而且管理和访问也很方便。MICROSOFTOFFICEACCESS(前名MICROSOFTACCESS)是由微软发布的关联式数据库管理系统。它结合了MICROSOFTJETDATABASEENGINE和图形用户界面两项特点,是MICROSOFTOFFICE的成员之一。SQL(STRUCTUREDQUERYLANGUAGE)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。55本章小结本章实现了上位机软件具体设计,主要内容有VISUALBASIC的可视化编程、VB的串口控件介绍和使

49、用,以及关于数据库调用的内容。226系统调试61点菜机界面操作调试本节主要是对点菜机上的人机界面操作的调试,使得其界面更人性化,操作更加简单。611显示功能调试首先对液晶的界面显示进行调试,调试流程如图61所示。液晶的SPI数据传输调试基本图形和字符显示调试动画和菜单显示调试界面的完善图61显示功能调试流程最终设计的点菜机界面如图62所示,在使用过程中感觉该界面直观简单,操作方便。图62点菜机界面图612菜单操作调试对菜单的操作主要的调试在于对变量从定义到对变量赋值和调用,直到变量的一个生存周期结束的整个过程的具体管理。若要让系统稳定地运行并且不造成存储空间的浪费,就需要在编程之前对这些变量的使用期进行分析,然后以尽量节约的方式定义变量,从而使程序稳定可靠。62接收器串口调试这一部分的调试内容比较少,连接好硬件,在PC上用串口调试工具进行观察。首先在程序中配置好UART相关的寄存器,然后在主程序中进行数据的发送或在UART中断函数中设置断点进行等待接收。同时在调试过程中若出现问题,可借助示波器对TX和RX的波形进行捕获观察。2363无线收发调试由于本设计所用的无线收发器件是已设计好硬件的成形的无线模块,这使得无线收发的调试变得简单方便了很多,只要在程序中对该模块的配置和收发

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。