基于单片机自助订餐终端设计.doc_第1页
基于单片机自助订餐终端设计.doc_第2页
基于单片机自助订餐终端设计.doc_第3页
基于单片机自助订餐终端设计.doc_第4页
基于单片机自助订餐终端设计.doc_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中北大学2012届毕业设计说明书基于单片机自助订餐终端设计1 绪论1.1本课题的研究背景随着计算机的普及,社会电子信息化的脚步在进一步加快,信息化已经从多个方面和领域影响到了我们的日常生活。充分利用信息化的手段,实现现代生活的高品质和高效率,也就成为了当今信息系统集成商的追求目标。在这样的趋势下,自助终端作为各类信息的发布载体和功能扩充手段,受到了系统集成商越来越多的重视,握准了它的发展方向,顺应甚至超前的实现思路,就能够为各集成商带来广阔的发展空间。随着现代科技的发展与进步,人们的生活水平和生活方式也发生着变化,自助服务终端正在发挥着日益显著的作用。尤其是在餐饮业,餐饮业是被称为中国的黄金产业的具有巨大投资市场的行业1。而自助式餐饮的目的就是利用先进的无线通信技术、嵌入式手持终端技术、嵌入式移动数据库和无线控制技术。这种终端操作简便,能够实现自动结账。此外,类似的自助服务终端也广泛的应用于当今人们的方方面面,比如旅游业。无论是餐饮业、旅游业还是其他行业,自助服务终端都有着很多的优势:一方面可以为使用者提供方便快捷的服务,使人们可以足不出户地解决自己的需求;另一方面,对于从业者来说,自助服务终端无疑节约了人力资源,一个设计人性化、能够高效运行的终端系统可以极大地提高效率2。医院住院部是一个特殊的部门,在这样的部门对于病人日常生活的服务更是繁杂,为了能够减少人力消耗,提高工作效率,实现建立更好的住院服务秩序,自助终端是一个非常好的选择。本课题的研究正是基于以上背景,以单片机为实现方式,主要应用于医院的住院部,通过所设计的终端可以实现点菜订餐服务。1.2国内外发展现状1.2.1国内发展现状总结自助终端的发展历史,它正在从专门的行业应用领域向公众应用领域切换,而由于行业应用领域的高专业化,高稳定性,高安全性等方面的要求,促使自助终端的实现手段一步一步的完善,这样的应用趋势,为自助终端的多行业化应用奠定了坚实的技术和市场基础。 现代信息化的实现手段,就要求有成熟和先进的实现技术。自助终端因为其面对的对象为非专业化的使用群体,决定了自助终端系统设计的首先的出发点就是易理解性和易操作性,它必须满足使用者在没有任何相关行业知识背景的情况下,能自由的使用,完成对相关信息的处理和展示11。自助终端的应用,是一个复杂的综合应用体。这其中,对外部设备的使用是其中一个相当重要的部分。良好的体系结构,需要有先进的设计思想。自助终端是一个比较广泛的定义,涵盖了从银行到其他行业的各类自助类服务设备。广泛的产品类型需要开发者在设计和实现时充分考虑系统的开放性,具有了良好的开放性和可扩展性,才能使自助终端的设计和使用进入新的阶段3。现在丰富的系统设计和实现技术为自助终端良好的开放性奠定了基础。模块化的设计,多层体系架构,是自助终端迈向全面应用的第一步。只有符合这样的设计思想,才能在现在和将来的应用中不断创新,满足不断出现的新需求。目前订餐终端都以IC卡作为媒介,它克服了以往使用菜票的诸多缺点,方便就餐人员用IC卡与食堂结算。用餐者到食堂吃饭前,先交一定数额现金,上位机应用软件通过IC卡读写器将用户信息写入IC卡并交予用户,每个用户就拥有一个自己的饭卡,用于存储用户的姓名、编号、金额等相关信息4。用户到食堂用餐时只需将IC卡插入食堂售饭机窗口,由用餐者选定饭菜后,售饭机自动用卡中金额减去应付金额,并且液晶屏会显示出卡中余额,最终完成订餐。我国正在快速进入IC卡时代,国内先后组建华旭、华鑫集团公司等,出现了一批科研及生产、经营单位。国内第一张用芯片设计、研制到卡片制作生产全部国产化的中华IC卡顺利通过技术鉴定9。目前国内引进IC卡装配线较多,它们采用国外芯片,生产能力未充分发挥。近几年国内IC卡应用市场发展迅猛,已经应用于各行各业。1.2.2国外发展现状在经济发达国家,就餐饮业而言,其发展的速度与需求远远比经济不发达的国家要高很多。因为发达国家人们的时间观念很强7,对于服务的要求也比较高,更重要的是其餐饮业能不断运用先进的管理方法和手段,也别是信息技术的应用程度很高。在经济较为发达的国家和地区,计算机技术、嵌入式技术、无线通信技术等应用与餐饮业已经十分成熟,如IBM公司的POS产品已经获得了较大范围的应用。2004年,在美国100家最有效利用信息技术的企业中,美国最大的食品和多种服务公司ARAGroupIne,名列第四5。1.3本课题的研究目的医院的住院部是一个特殊的餐饮服务领域,照顾病人的饮食起居需要耗费很多的人力物体,而使用订餐终端后,病人可以不出房门,不需亲人照顾,就可以吃到自己想吃的饭菜,病人通过射频卡,可以在床前的订餐终端上预订相应时间段的六次的饭菜(根据需要也可以延长),通过按键可以查询各个餐段的菜名,然后选择自己喜欢吃的饭菜,操作完成后,订餐终端打印出小票。到吃饭时间时,食堂服务人员或护士就会将饭菜送到病人床前,这样就极大的方便了病人就餐。此外,该订餐终端可以大大地节省资源,医院食堂可以根据订餐情况决定所做的饭菜的数量,这样可以避免造成浪费现象。本课题虽然已经研究过,但是仍在存在很多值得改进的地方。首先,之前的系统是有线传输,虽然保证了信号的稳定传输,但是实际应用中,有线传输存在着埋线的问题,对于已经建成的建筑来说,是一个很难实现的问题,所以,在本次设计中,将会把有线传输更改为无线传输,使其在实际应用中有更好的发展。其次,在之前的系统设计中,很多类似的指令都是分别定义的,这使得延时很长,在使用人数较多的情况下,延时问题会严重影响该系统的使用,所以,把类似指令打包定义、操作,将会使延时大大缩小,系统的可靠性也会随之提高。此外,之前的系统可以预定的是两天以内的饭菜,但是这样的规定略显死板、不够人性化,将其改为六餐,即可以更加灵活的订餐,而不仅仅拘泥于两天内,比如,实现改进后,病人可以通过此终端预定今晚、明早中晚、后天早中这六顿饭,但是原来的系统却不能实现这样的订餐功能。针对本课题,我通过查阅资料与设计调试,完成一个自助订餐终端,该终端具有以下六个模块:控制模块、键盘模块、显示模块、射频卡接收模块、打印模块和通信模块。并通过完成毕业设计,掌握基本检测、控制电路的设计方法,器件的选型以及测试系统的软硬件设计与调试方法和相关的专业知识等14。于此同时,吸收学习前人的经验,并运用自己所学知识使其不断完善。2 基于单片机自助订餐终端的设计方案2.1该设计的基本功能本设计分析当前订餐终端发展形势,设计出适合住院部使用的订餐终端。本订餐终端能够售出六顿之内的饭菜,用餐者能够通过显示器查看两天内的菜名,通过键盘能够预订菜名及份数,用餐者订餐后,屏幕能显示出本次消费金额及卡上余额,并通过打印机打印出小票。设计分为六个个模块,各个模块可以实现以下功能:1、单片机控制模块:采用AVR系列ATmega128A,实现对整个系统的控制。2、显示模块:显示可供选择的点餐时段和菜谱;显示关于订餐操作的提示信息;显示订餐者所预定的菜谱、份数、消费情况及卡上余额10。3、键盘模块:该模块具有8个按键,其中有1个按键为备用键,其余7个按键分别为上移、下移、确定、修改、翻页、浏览、复位:通过上移键和下移键可以选择不同的点餐时段、菜名和点餐份数;确定键可以选择订餐时段、菜名和点餐份数,此外也可以通过确定键来打印小票;通过修改键可以修改已经选择的菜名和点餐份数;通过翻页键可以查看某一点餐时段内的所有菜谱;浏览键可以浏览所点的饭菜名称、份数及消费额;复位键可以使系统复位。4、打印模块:能够打印出订餐者已订的菜名、菜份数、消费金额以及终端号等。5、通信模块:能够实现上位机和所有通终端的信。通信功能是整个系统的重要环节,要求终端能够向上位机及时、准确、可靠的传送已订菜名、份数及订餐卡号等各种信息。6、读卡模块:能够读出有效的卡号。2.2该设计系统框图显示模块键盘模块读卡模块单片机控制模块打印模块通信模块图2.2:系统结构框图2.3设计选用的主要器件简介2.3.1 ATmega128单片机本设计以ATmega128单片机作为中心控制芯片。ATmega128是一种基于AVR RISC结构的8位低功耗CMOS微处理器。由于其先进的指令集以及单周期指令执行时间,ATmega128的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。ATmega128具有如下特点:128K字节的系统内可编程Flash( 具有在写的过程中还可以读的能力,即RWW)、4K字节EEPROM、4K字节的SRAM、53个通用I/O口线、32个通用工作寄存器、实时时钟RTC、4个灵活的具有比较模式和PWM 功能的定时器/计数器(T/C)、两个USART、面向字节的两线接口TWI、8通道10位ADC。其丰富的I/O口及2个通信串口完全能够满足订餐系统的要求,所以选择此芯片作为系统核心控制器9。2.3.2 C240128Z液晶显示屏 C240128Z是综合了中英文文字和绘图显示的240(列)*128(行)的全点阵显示模块。内含硬件字库,可以显示中文字型、数字符号、西文字符与日文字符。在文字模式中,可以通过送入中文字型的内码直接显示中文,而不需要在绘图模式下以绘图的方式描绘中文,可以节省许多处理时间10。提升液晶显示中文的处理效率。编程模式简洁方便,为项目开发节约了宝贵的成本和时间。此液晶能够显示815个汉字,并且其所需电源电压与TTL电平兼容,所以选择它作为显示器。2.3.3 键盘模块为了减少键盘占用单片机的I/O线数目,采用行列式键盘结构,根据本系统具体需要采用24键盘结构。矩阵键盘电路连接复杂,但提高了I/O口的利用率,软件编程较复杂,适用于需使用大量按键的场合12。单片机对按键的识别是通过键扫描法来实现的。键扫描法就是要判断有无键按下,当扫描到有键按下时再进行下一步处理,否则退出键盘处理程序。独立式键盘扫描只需读取I/O口状态,而矩阵式键盘扫描通常有两种方法:逐行扫描法和线反转法。逐行扫描法是依次从第一至最末行线上发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有按键按下的话,则得到非全“1”信号。由于矩阵键盘和独立键盘相比有占用I/O口少的特点,本次设计采用24矩阵键盘,因此按键识别必须通过软件来实现。本系统采通过逐行扫描法,用switch-case语句来实现按键识别,由于按键按下时的机械动作,在按键被按下或松开的瞬间,其输出电压会产生波动,称为键的抖动。为确保每按一次键单片机只进行一次处理,使键盘可靠的工作,必须消除按键抖动14。消除方法有硬件消抖和软件消抖两种。硬件消抖法就是在键盘中附加去抖动电路,从根本上消除抖动产生的可能性。软件消抖法是采用延时(一般延时1020ms)的方法,以避开按键的抖动,即在按键已稳定的闭合或断开时才读出其状态。本系统通过延时10ms来对按键进行消抖处理。2.3.4 炜煌热敏打印机E22 E22打印机采用直接热敏打印的方法打印,打印纸宽为57.50.5mm,打印密度为8点/mm,有效打印宽度为48mm,可以打印20H-7fH间的标准ASCII码半角字符和国标一、二级汉字,此打印机一行可打印12个汉字。接口形式为并口,提供缺纸、打印机不在线等功能,并且与TTL电平兼容15。2.3.5 GW200KB无线通信 GW200KB无线通信模块能够支持RS485/RS232/TTL接口,具有64 个频道,可以软、硬件修改频道,可以软件修改波特率,同时可以可以软件修改发射功率。最多256个负载;内置高速MCU做FEC(前向纠错)处理,通信可靠性可与有线媲美;可以软件控制的待机模式;可以硬件跳线设置上电后工作频道,以适合不需要实时软件更改频道的应用;内置硬件看门狗,适合极端恶劣条件的应用。其无线通信距离大于800米,适用于本设计的需要17。 2.3.6 M106BXN非接触射频读卡 非接触射频读卡模块采用125K射频基站。以韦根或UART接口输出ID卡卡号,在UART模式下,可工作于主动方式和被动方式,更适合用户需求:(1)主动方式下:当有卡靠近模块时,ID卡号连续从串口输出。(2)被动方式下:当有卡靠近模块,同时模块CLK端出现下降沿,串口才输出卡号。该读卡模块完全支持EM、TK及其125K兼容ID卡片的操作。通讯协议:(1)UART:适用于PC机或8位UART的单片机,波特率9600与19200可选;(2)韦根2634:通用读卡器接口。自带看门狗19。3 基于单片机自助订餐终端的设计3.1该设计的操作流程图上 电修改键待机页面刷卡 卡N 显示卡中余额Y N 选择餐段间Y N 选择菜名Y 确认份数Y 确定键继续点菜Y浏览键显示本次消费清单及余额打印小票图2 系统程序流程图3.2控制模块设计与功能实现 本次设计,使用protel DXP软件作为电路绘制软件,并完成了自助订餐终端的实物制作。在下文中,将从protel DXP软件电路图、实物图片、各模块器件接口定义与功能的实现的角度对该基于单片机的自助订餐系统的设计进行阐述与介绍。 图3.1 单片机最小系统单片机最小系统如图3.1,单片机晶振为7.3728MHz,通过ISP方式向单片机下载程序。3.3显示模块的设计与功能实现3.3.1显示模块流程图复位 刷卡 初始页面显示卡中余额确定 复位 显示餐段Y 复位 确定 显示菜谱订餐 复位 确定 显示份数复位 订餐 消费情况确定 确定 图3.2 液晶模块流程图 上电之后,LCD显示器显示初始页面,即“欢迎使用自助订餐系统,请刷卡”,成功刷卡之后显示卡上余额,确定后显示可以订餐的餐段,确认后可以选择该餐段的菜谱,通过确定键可以选择餐名和分数,确定订餐之后可以打印小票。 3.3.2显示模块路电路图图3.3 显示模块电路图3.3.3显示模块实物图 图3.4 显示模块实物图3.3.4显示模块LCD接口定义表3.1 显示模块接口定义引脚号引脚名称引脚功能描述1VSS电源地2VDD电源正3VO(NC)LCD驱动电压调节(对比度调节)4RS指令数据选择 H:数据 L:指令5RD读信号 低有效6WR写信号 低有效714DB0DB7八位三态并行数据总线15CS1片选1,低有效16CS2片选2,高有效17RST复位信号 低有效18VEE(NC)LCD驱动电压19BLA背光正20BLK背光负21INT中断信号22BUSY忙信号3.3.5 LCD指令寄存器介绍寄存器00H=0XCD:正常电源模式,文字显示模式,屏幕显示开启,屏幕显示正常,不反白。寄存器01H=0XF2:系统时钟8MHZ。寄存器10H=0X2B:中英文不对齐,正常字形不加粗,数据写入时光标自动移位,不显示光标。寄存器11H=0X20:光标高度为2,行与行之间的距离为0。寄存器12H=0X91:光标移动顺序为先水平移动再垂直移动,只显示图层一,读写运行于图层一。寄存器20H=0X1D:工作窗口右边界240/8-1=29=0X1D。寄存器30H=0X7F:工作窗口底边界128-1=127=0X7F。寄存器40H=0X00:工作窗口左边界0。寄存器50H=0X00: 工作窗口上边界0。寄存器21H=0X1D:显示窗口右边界240/8-1=29=0X1D。寄存器31H=0X9F:显示窗口底边界160-1=159=0X9F。寄存器41H=0X00:显示窗口左边界0。寄存器51H=0X00: 显示窗口上边界0。C240128Z是根据寄存器21H、31H、41H、51H的值来计算和设定驱动波形的,而控制器是专为240160点阵设计的,为了不影响显示效果,这里的四个寄存器必须按照240160来初始化。寄存器60H=0X00: 光标横坐标x位置。寄存器70H=0X00: 光标纵坐标y位置。寄存器61H=0X00:显示起始地址为0。寄存器71H=0X00: 水平移动块起始位置为0。寄存器72H=0X9F: 水平移动块结束位置为160-1=159=0X9F。寄存器F0H=0XA0:选择简体(GB)字形,选择ASCII区块0。寄存器F1H=0XF1:字体放大倍数为1倍20。3.4键盘模块3.4.1键盘模块流程图键盘扫描Y N确定键Y N修改键Y N翻页键Y N复位键Y N订餐键Y N上移键Y N下移键Y N结束图3.5 键盘模块流程图3.4.2键盘模块电路图图3.6 键盘模块电路图3.4.3键盘模块实物图图3.7 键盘模块实物图3.3.4键盘模块接口定义表3.2 键盘模块接口定义Pb2=H0行0包含s1,s2,s3,s4;Pb3=H1行1包含s5,s6,s7,s8Pb4=L0行0包含s1,s5Pb5=L1行0包含s2,s6Pb6=L2行0包含s3,s7Pb7=L3行0包含s4,s8注:各键盘含义:S8:上移;S7:下移;S6:浏览;S5:复位;S4:翻页;S3:修改;S2:确定;S1:未用。3.4打印模块3.4.1打印模块电路图图3.8 打印模块电路图3.4.2打印模块实物图图3.9打印模块实物图3.4.3打印模块接口定义表3. 3打印模块接口定义引脚信号方向说明1-STB入数据选通触发脉冲,上升沿时读入数据3,5,7,9,11,13,15,17DATA1-DATA8入这些信号分别代表并行数据的第一至第八位信号19-ACK出回答脉冲,低电平表示数据已被接收21BUSY出高电平表示打印机忙,不能接收数据23PE出缺纸信号,高电平表示打印机缺纸25SEL出高电平表示打印机在线4-ERR出高电平打印机无故障2,6,8空脚10-26(偶数)GND-接地3.4.4 打印机设置与命令介绍1、打印机设置打印机有两个功能键:LF键和SET键,一个指示灯:绿灯。绿灯本身即为LF键,上电后按一下LF键,打印机向前走纸一段。SET键在打印机背部通信接口左侧孔内。绿灯上电后为常亮状态,缺纸时为闪烁状态。打印机断电,按LF键不放,给打印机加电,松手,打印机会打印出自检条。打印机断电,按SET键不放,打印机加电,按LF键改变波特率:1200,2400,4800,9600,19200bps,设置完成后需重新加电。2、打印机命令详解ESC 6: 该命令使打印机打印字符集1中的字符,字符集1中有字符224个,代码范围20H-FFH。包括ASCII字符,及各种图形符号等。FS &:该命令用于进入汉字方式,在中文打印方式时,打印机接收的汉字代码为标准机内码,根据代码寻找打印机内的汉字字模,如找到则打印,否则不打印。打印机接收到单字节的ASCII码时,打印出相应的ASCII字符,与汉字等高。CR: 回车命令,打印机收到本命令后,即对缓冲区内的命令和字符进行处理,按要求打印缓冲区内的全部字符或汉字,并换行。ESC p n: 该命令是设定字符之间的空点,默认方式为0,n为字符间空点数,n在0255之间。ESC I n:是否允许反白 打印命令,n=1 允许反白打印,n=0 禁止反白打印,上电后初始化后 n=0,允许反白打印后的字符和汉字将以黑底白字打印出来。GS W n1 n2:设置条形码宽度尺寸,n1为条形码窄条尺寸,以点为单位,n2为条形码宽条尺寸。GS h n:设置打印条形码的高度n=0255,以点为单位,n=0为256点22。3.5通信模块3.5.1通信模块电路图图3.10 通信模块电路图该电路图为RS485通信方式电路图,在毕业设计阶段,由于没有购买GW200KB无线通信模块,选用了RS485通信方式来替代并完成了相关的设计与制作。RS485通信方式:RS485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点,所以它成为首选的串行接口。 因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输23。在要求通信距离为几十米到上千米时,广泛采用RS485串行总线。RS485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。RS485采用半双工工作方式,任何时候只能有一点出于发送状态,因此,发送电路必须由使能信号加以控制。RS485用于多点互联时非常方便,可以省掉许多信号线。应用RS485可以联网构成分布式系统。RS485具有以下特点:1、RS485的电气特性:逻辑“1”以两线间的电压差+2V+6V表示,逻辑“0”以两线间的电压差-6V-2V表示。接口信号电平比RS232降低了,就不容易损坏接口的电路芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。2、数据最高传输速率为10Mbps。在使用RS485接口时对于特定的传输线路,从RS485接口到负载其数据信号传输所允许的最大电缆长度与信号传输的波特率成反比,这个长度数据主要是受信号失真及噪声等影响。理论上,通信速率在100Kpbs及以下时,RS485的最长传输距离可达1200米,但在实际应用中传输的距离也因芯片及电缆的传输特性而所差异。在传输过程中可以采用增加中继的方法对信号进行放大,最多可以加八个中继,也就是说理论上RS485的最大传输距离可以达到9.6公里24。3、RS485接口采用平衡驱动器和差分接收器的组合,抗共模干扰能力强,即抗噪声性能好。4、RS485接口在总线上允许连接多达128个接收器,即具有多站能力,这样用户可以利用单一的RS485接口方便的建立设备网络。本系统经过比较选择RS485通信方式,RS485通信采用SN75176芯片,此芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。R和D端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD1和TXD1相连即可,/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为逻辑1;当A的电平低于B端时,代表发送的数据为逻辑0。在与单片机连接时接线非常简单。只需要一个信号D_485控制SN75176芯片的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100的电阻25。通信模块与单片机的串口1相连接,实现单片机与上位机通信。波特率为9600bps,数据格式为1个起始位,8个数据位,1个停止位,无奇偶校验位。3.6读卡模块3.6.1读卡模块电路图图3.11 读卡模块电路图3.6.2读卡模块实物图图3.12 读卡模块实物图3.6.3读卡模块接口协议该读卡模块采用125K射频基站。当有卡靠近模块时,模块以韦根或UART或键盘接口方式输出ID卡号,用户仅需简单的读取即可,该读卡模块完全支持EM、TK及其兼容卡片的操作。数据通讯协议:UART通信协议:UART接口一帧的数据格式为:1个起始位,8个数据位,无奇偶校验位,1个停止位,波特率为9600bps或19200bps。输出的数据格式为5字节数据,高位在前,格式为四字节数据+1字节异或和。例如:卡号数据为12345678,则读卡模块输出为0X12 0X34 0X56 0X78 0X08,当有卡进入该射频区域内时,主动发出以上格式的卡号数据26。韦根接口:韦根协议是国际上统一的标准,是由摩托罗拉公司制定的一种通讯协议。它使用于涉及门禁控制系统的读卡器和卡片,它有很多格式,标准的26bit是最常用的格式。韦根数据输出由二根线组成,分别是DATA0和DATA1;而根线分别输出逻辑0和逻辑1。输出逻辑0时:DATA0线上出现负脉冲;输出逻辑1时:DATA1线上出现负脉冲27。键盘口协议:当选择键盘口模块后,模块会采用标准PS2键盘口通信协议,向外输出ID卡号。PS2 通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过DATA(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS2键盘发送数据,而PS2键盘则不会抑制pc机发送数据。一般两设备间传输数据的最大时钟频率是33KHz,大多数PS2设备工作在1020KHz。推荐值在15KHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40s。每一数据帧包含1112个位,1个起始位,8个数据位,1个奇偶校验位,1个停止位29。图3.13 韦根结构与波形图本次设计采用USART通信,通信波特率为9600bps。接口与单片机的串口0相连接,实现单片机读取卡号信息。4 设计结果4.1自助订餐终端图4.1订餐终端初始页面图4.2订餐终端成功刷卡后页面图4.3订餐终端选择餐段页面图4.4订餐终端选择饭菜页面图4.5订餐终端订餐完成页面4.2终端与上位机通信结果图4.6 终端与上位机通信结果5 总结 为期三个月的毕业设计,从一开始通过李老师的简单介绍,到对于这个课题的兴趣日益浓厚,再到从零开始学习软件、绘制电路图、调试程序、制作实物,很高兴能够在李老师的帮助下比较完满的完成了这次毕业设计,当然更重要的是在这个过程中我学到的知识以及获得技术与感悟。 关于设计,我的毕业设计题目是基于单片机的自助订餐终端的设计,拿到题目便开始考虑这个设计的意义所在。有时候一个好的想法是最最关键的部分,基于目前我国医院住院部的现实情况,开发这样的一个产品其实是很有市场的,它能够带来更方便快捷且人性化的服务。综合大学四年的学习,这个基于单片机的设计有了雏形,在老师的指导下我将整个设计进行模块划分,综合实际需要选定了各个模块需要的器件,并且通过了解网上的相关信息找到了适合的产品与芯片。这个过程让我了解了从生活发现可以利用所学知识实现一些目前还是空白的事情是很重要的,而如何为自己的理想买单,即如何让想法变成现实就是之后在整个设计的实现过程中我所学会的东西。关于整个设计的实现过程,我认为就是一个学习、应用的不断循环的过程。本科的学习中仅仅是了解了有关单片机的基本知识,对于真正用程序实现功能,选用各个器件并使其能够在一整个系统中良好的运行,并制作出实物使其真正的能够在生活中发挥作用对于我们来说并不是一件简单的事情。在这三个月左右的时间里,我便是一边学习,一边进行设计,很多时候学起来很容易的东西在实践时会出现各种各样的问题,软件也好、硬件也好,只有在亲自制作时才真正的知道我们所学的知识究竟能够用来做什么,而我们距离掌握这项技术究竟还差多远。大学的学习生活就要结束了,但是学习不会止步,在今后的工作生活中我仍然会带着中北大学赋予我的学习精神不断学习不断进步。附录A 自助订餐终端源程序/*自助订餐终端源程序芯片:ATMEGA128晶振:7.3728MHZ*/#include #include #include #include #include #define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define NOP()asm(nop)/*端口定义*/#define LCD_RS_L PORTF&=(17) #define LCD_RS_H PORTF|=(17) /液晶指令、数据选择线 高-数据 低-指令#define LCD_RDN_L PORTF&=(16)#define LCD_RDN_H PORTF|=(16) /液晶读命令 低有效#define LCD_WRN_L PORTF&=(15)#define LCD_WRN_H PORTF|=(15) /液晶写命令 低有效#define LCD_CS1_L PORTF&=(14)#define LCD_RSTN_L PORTF&=(12)/485接口#define D_485_L PORTD&=(14)#define D_485_H PORTD|=(14) /485方向控制线,低单片机接收数据,高单片机发送数据有效/打印机接口#define P_STB_L PORTG&=(10)#define P_STB_H PORTG|=(10) /打印机数据选通线,上升沿有效uchar dingcjs56=0x28,204,225,202,190,0x3a,205,168, /(提示:通185,253,200,183,182,168,188,252, /过确定键205,234,179,201,182,169,178,205, /完成订餐178,162,180,242,211,161,208,161, /并打印小198,177,0x3b,0,205,168,185,253, /票; 通过 184,180,206,187,188,252,200,161, /复位键取207,251,182,169,178,205,0x21,0x29 /消订餐!) ;display_140=187,182,211,173,202,185,211,195,215,161,212,186,178,191,215,212,214,250,182,169,178,205,214,213,182,203,199,235,203,162,191,168,0x21;/欢迎使用住院部自助订餐终端请刷卡!uchar display_330=204,225,202,190,0x3a,178,187,196,220,205,172,202,177,uchar caipu1010=208,161,178,203,0, 0, 0, 0, 0, 0, 0x00,1,/小菜,1.0*当日早餐,每道菜占12个字节,菜名长度最多5个字 207,161,183,185,0, 0, 0, 0, 0, 0, 0x80,0,/稀饭,0.8 182,185,189,172,0, 0, 0, 0, 0, 0, 0x60,0,/豆浆,0.6 211,205,204,245,0, 0, 0, 0, 0, 0, 0x50,0,/油条,0.5 192,207,182,185,184,175,0, 0, 0, 0, 0x50,1,/老豆腐,1.5 203,216,176,252,215,211,0, 0, 0, 0, 0x70,0,/素包子,0.7 200,226,176,252,215,211,0, 0, 0, 0, 0x90,0,/肉包子,0.9 194,248,205,183,0, 0, 0, 0, 0, 0, 0x50,0,/馒头0.5*当日早餐188,226,189,183,205,193,182,185,203,191,0x50,5, /尖椒土豆丝,5.5*当日午餐201,189,206,247,185,253,211,205,200,226,0x50,21,/山西过油肉,21.5206,247,186,236,202,193,179,180,181,176,0x00,8, /西红柿炒蛋,8.0181,176,179,180,195,215,0, 0, 0, 0, 0x00,6, /蛋炒米,6.0 200,226,179,180,195,215,0, 0, 0, 0, 0x00,8,/肉炒米8.0 181,182,207,247,195,230,0, 0, 0, 0, 0x00,5,/刀削面5.0 195,215,183,185,0, 0, 0, 0, 0, 0, 0x50,2,/米饭2.5 194,248,205,183,0, 0, 0, 0, 0, 0, 0x50,0,/馒头0.5*当日午餐 186,236,201,213,199,209,215,211,0, 0, 0x50,8,/红烧茄子,8.5*当日晚餐193,185,176,232,187,198,185,207,0, 0, 0x50,3,/凉拌黄瓜,3.5188,226,189,183,205,193,182,185,203,191,0x50,5,/尖椒土豆丝,5.5207,161,183,185,0, 0, 0, 0, 0, 0, 0x80,0,/稀饭,0.8203,216,176,252,215,211,0, 0, 0, 0, 0x70,0,/素包子,0.7200,226,176,252,215,211,0, 0, 0, 0, 0x90,0,/肉包子,0.9194,248,205,183,0, 0, 0, 0, 0, 0, 0x50,0,/馒头0.5195,215,183,185,0, 0, 0, 0, 0, 0, 0x50,2 /米饭2.5*当日晚餐 ;uchar data_usart010=1,1,1,1,1,1,1;uchar data_usart120=1,1,1,1,1,1,1;uchar num_caifen10=0,0; /订餐样数统计数组,偶数为第1页,奇数为第2页uchar tongji_caifen120=0,0; /菜名序号和份数统计数组,偶数为菜序号,奇数为份数uchar temp_card10=0,0; /订餐卡序号的存储数组uchar card_code1200=0x64,0,165,220,7,126,0x50,100,0x65,0,165,215,60,78,0x10,186;/卡号存储数组,每8个为1个卡号uchar tishi5_dingcan22=200,183,182,168,188,252,182,169,178,205,0x2c,/确定键订餐, 184,180,206,187,188,252,205,203,179,246,0x21;/复位键退出!uchar card=0;uchar zhuangtai=0; /系统所处状态 1餐段 2菜名 3份数 4订餐 9初始画面 0卡无效uchar canci=0;/餐段参数0=今早,1=今午,2=今晚;3=明早,4=明午,5=明晚;uchar add_canduan; /当前菜谱基数uchar count_caiming=0; /记录选择菜名时当前光标的位置uchar count_cpnow=7; /当前菜谱数uchar num_page=0; /0=第一页,1=第二页uchar caifen_page1;uchar caifen_page2; /显示时第1页,第2页的菜谱数uchar caifen_page; /当前页的菜谱数uchar flag_sccp=0; /0未上传菜谱,1正在上传菜谱uchar flag_xiugai=0;uchar flag_quezhi=0; /0=打印机没出现错误,1=硬件错误uchar flag_jzdc=0; /0=可以预订今日饭菜,1=禁止预订今早饭菜,2=禁止预订今午饭菜,3=禁止预订今晚饭菜uchar count_usart1,count_usart1a=20 ; / 串口1接收数据序号和接收总数uint jiage,yue_old; uint xiaofei; uint base_caipu=12; /菜谱常数必须定义类型为16位,因为84*12=1008uchar qianwei,baiwei,shiwei,gewei,xiaoshu;uchar today_year=11,today_month=6,today_day=13; /今日日期/液晶初始化void lcd_init() LCD_RSTN_L; _delay_ms( 500); LCD_RSTN_H; _delay_ms( 10 ); LCD_CS1_L; LCD_CS2_H; lcd_write(0,0X0); lcd_write(0,0XCD); lcd_write(0,0X01); lcd_write(0,0XF2); / 系统时钟 8MHZ lcd_write(0,0X02); lcd_write(0,0X10); / RAM读取速度60ns lcd_write(0,0X03); lcd_write(0,0X80); lcd_write(0,0X10); lcd_write(0,0X2B); /ab 中英文不对齐,光标不显示,光标自动移位 lcd_write(0,0X11); lcd_write(0,0X20); / 10 光标高度 1,行距 0 lcd_write(0,0X12); lcd_write(0,0X91); / 只显示page 1 lcd_write(0,0X20); lcd_write(0,0X1d); /工作窗口右边界 (240/8-1=29) lcd_write(0,0X30); lcd_write(0,0X7f); /工作窗口底边界 (128-1=127) lcd_write(0,0X40); lcd_write(0,0X00); /工作窗口左边界 0 lcd_write(0,0X50); lcd_write(0,0X00); /工作窗口上边界 0 lcd_write(0,0X21); lcd_write(0,0X1d); /显示窗口右边界 (140/8-1=29) lcd_write(0,0X31); lcd_write(0,0X9f); /工作窗口底边界 (160-1=159) lcd_write(0,0X41); lcd_write(0,0X00); /工作窗口左边界 0 lcd_write(0,0X51); lcd_write(0,0X00); /工作窗口底边界 0 lcd_write(0,0X60); lcd_write(0,0X00); / 光标 x 位置 lcd_write(0,0X70); lcd_write(0,0X00); / 光标 y 位置 lcd_write(0,0X61); lcd_write(0,0X00); / 显示起始值 lcd_write(0,0X71); lcd_write(0,0X00); /水平移动块起始位置 lcd_write(0,0X72)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论