目录1绪论............................................................................................................................21.1任务的提出.....................................................................................................21.2设计的目的和意义.........................................................................................22相关知识简介............................................................................................................22.1开发工具.........................................................................................................22.2开发语言.........................................................................................................22.3开发环境.........................................................................................................33总体设计....................................................................................................................33.1设计的总体结构描述.....................................................................................33.2功能模块描述.................................................................................................33.3功能模块的状态转换.....................................................................................44详细设计....................................................................................................................44.1键盘模块设计.................................................................................................44.2显示模块设计.................................................................................................54.3控制模块.........................................................................................................75系统测试..................................................................................................................105.1键盘扫描模块...............................................................................................105.2键盘译码.......................................................................................................105.3多位加法器...................................................................................................105.4七段数码管...................................................................................................115.5RAM存储器.................................................................................................115.6系统控制器...................................................................................................116结论..........................................................................................................................127致谢........................................................................................................................122电子菜单的设计1绪论嵌入式系统是以应用为中心,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件等组成,它是集软硬件于一体的可独立工作的“器件”。1.1任务的提出本课题的任务即是设计一种简单的电子点菜单终端,以CYC-L2V2.0便携式EDA/SOPC/DSP实验系统为硬件平台,利用VHDL语言进行编程,要求实现的电子点菜单功能齐全,使用方便。1.2设计的目的和意义餐馆引进电子点菜系统,具有重大的意义:首先,提高运营效率与降低运营成本,使用电子点菜系统可以加快点菜速度,减少人力资源的投入,避免跑、冒、漏;其次,提升餐馆品牌与形象,电子点菜系统是一个高科技产品,它代替传统的纸笔式点菜方式给人一种高贵的感觉;最后,营造一个安静、舒服的就餐环境,传统的点菜方式在某些环节中出现大声喧哇的场面,电子点菜系统则可以避免这类情况的出现。2相关知识简介2.1开发工具本实验系统是在CYC-L2V2.0便携式EDA/SOPC/DSP实验系统基础上研发而成,具有完备的外部接口电路模块,并继承了该系统开放性的特点。系统由开发板(含主板、底板)、ByteBlasterII并口下载板(含电缆)和12V直流电源三个组成部件构成。采用Altera公司的CycloneEP1C6Q240系列FPGA为主芯片,包括系统时钟、SRAM存储器、FLASH存储器、网络接口芯片、串行配置芯片、音频编码/解码芯片、模数转换器、数模转换器、键盘、显示器和串行接口等外围电路模块。2.2开发语言VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,3一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。2.3开发环境QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。3总体设计3.1设计的总体结构描述本系统为一个电子点菜终端的简洁型系统,该系统以CYC-L2系统为主要核心,采用4*4的键盘,前12个键为菜单,8个数码管显示总价格,单价,已点菜数量;后四个键分别实现:结账,已点查询,删除,确认。4组LED灯分别表示菜的口味:酸,甜,麻,辣,以点亮的灯数表示口味浓度。3.2功能模块描述本系统主要由3个模块构成,键盘模块、控制模块和显示模块。键盘模块是由一个4*4矩阵键盘实现数据的输入控制,通过行扫描法将对应的值输入到控制模块,进行相应的操作。控制模块控制显示模块的显示,存储点菜数据信息,对点菜数据进行处理,并完成最后的结算。显示模块显示菜的单价、数量、口味和总价。43.2.1键盘模块键盘模块由4*4的键盘组成,3*4键盘代表一个菜名,共可容纳12个菜名,最后一排为功能键。当顾客选择一个菜名时,通过键位的触发连接到系统中的数据信息,显示该菜的单价和口味;选择菜名之后,如果满意则按确认,系统记录相关数据,不满意则重新选择。按下已点键,可以显示顾客已点菜的序号,单价,口味,再按一次则显示下一个已点菜,按删除,则取消该菜,按确认之后重新进入菜单。当按下“结账”键之后,显示应付金额(包括折扣,附加消费等等)。3.2.2显示模块由8个LED数码管,8个LED灯和一个显示屏组成,前4个数码管显示总价格,中间2个显示所选菜名的单价,最后2个显示已点菜的数量。在管理员使用改价键时,数码管则显示8位密码。8个LED灯分为4组,分别表示4种口味:酸,甜,麻,辣,每组2个灯都不亮表示无此味道;1个灯亮表示有此味道;如:微辣,微甜等;2个灯表示此味很重。以此来大概描述菜的口味。最后在存储器中存储菜名的实物图片,在选择菜名时显示相应的图片,方便顾客了解菜的外观。3.2.3控制模块控制器首先接收键盘模块的有效信息,如果键盘有键按下,则根据键盘扫描值经译码,判断是进入点菜状态还是功能选择状态,如果进入点菜状态,显示对应的菜单信息:单价,口味,图片信息。在接收到功能键的有效信号时,进入到控制状态。3.3功能模块的状态转换系统一直处于点菜等待状态,当客人开始点菜时,则进入点菜状态。系统对客人选择的菜进行及时的显示,以便及时了解所点菜的特色,如按下功能键,进入功能控制状态,系统进行数据信息的处理。如再按下菜单键,回到点菜状态。最后,结帐完毕,返回点菜等待状态。系统的功能转化图如图3.3所示。4详细设计4.1键盘模块设计54.1.1键盘扫描计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。所谓行列扫描法是指,把键盘按键排列成n行×m列的n×m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,依次对每一行发出一个低电平,对列线进行检测,如显示低电平,则确定按键。算法的实现过程如下:CPU以一定时间间隔周期地执行此键盘扫描处理程序。先是对键盘作扫描,获得反映键盘状态的键盘扫描码;然后对扫描码