嵌入式电子菜单的设计.docx

上传人:b****4 文档编号:4028246 上传时间:2022-11-27 格式:DOCX 页数:11 大小:185.12KB
下载 相关 举报
嵌入式电子菜单的设计.docx_第1页
第1页 / 共11页
嵌入式电子菜单的设计.docx_第2页
第2页 / 共11页
嵌入式电子菜单的设计.docx_第3页
第3页 / 共11页
嵌入式电子菜单的设计.docx_第4页
第4页 / 共11页
嵌入式电子菜单的设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

嵌入式电子菜单的设计.docx

《嵌入式电子菜单的设计.docx》由会员分享,可在线阅读,更多相关《嵌入式电子菜单的设计.docx(11页珍藏版)》请在冰豆网上搜索。

嵌入式电子菜单的设计.docx

嵌入式电子菜单的设计

电子菜单的设计

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的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是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矩阵键盘实现数据的输入控制,通过行扫描法将对应的值输入到控制模块,进行相应的操作。

控制模块控制显示模块的显示,存储点菜数据信息,对点菜数据进行处理,并完成最后的结算。

显示模块显示菜的单价、数量、口味和总价。

 

3.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键盘模块设计

4.1.1键盘扫描

计算机键盘通常采用行列扫描法来确定按下键所在的行列位置。

所谓行列扫描法是指,把键盘按键排列成n行×m列的n×m行列点阵,把行、列线分别连接到两个并行接口双向传送的连接线上,依次对每一行发出一个低电平,对列线进行检测,如显示低电平,则确定按键。

算法的实现过程如下:

CPU以一定时间间隔周期地执行此键盘扫描处理程序。

先是对键盘作扫描,获得反映键盘状态的键盘扫描码;然后对扫描码进行前后对比和定时计数,实现去抖;去抖后置位KReady标志,通知键盘分析程序已检测到有效按键。

键盘扫描码反映的是读取键盘时刻的键盘动作状态。

对键盘扫描码的基本要求是它要能对每一个单键作唯一编码。

4.1.2键盘译码器

通过一个译码程序,将键盘扫描后的值根据需要设定成相应的功能键和菜单键。

程序设计如下:

ima:

PROCESS(SC_CLK)

BEGIN

Z<=KEY_DRV&KEY_IN;--将扫描信号和消抖动后的按键输入值存入Z

IFSC_CLK'EVENTANDSC_CLK='1'THEN

CASEZIS--数字按键译码电路

WHEN"11100111"=>K_VALUE<=0;WHEN"11101011"=>K_VALUE<=1;

WHEN"11101101"=>K_VALUE<=2;WHEN"11101110"=>K_VALUE<=3;

WHEN"11010111"=>K_VALUE<=4;WHEN"11011011"=>K_VALUE<=5;

WHEN"11011101"=>K_VALUE<=6;WHEN"11011110"=>K_VALUE<=7;

WHEN"10110111"=>K_VALUE<=8;WHEN"10111011"=>K_VALUE<=9;

WHEN"10111101"=>K_VALUE<=10;WHEN"10111110"=>K_VALUE<=11;

WHEN"01110111"=>K_VALUE<=12;WHEN"01111011"=>K_VALUE<=13;

WHEN"01111101"=>K_VALUE<=14;WHEN"01111110"=>K_VALUE<=15;

WHENOTHERS=>K_VALUE<=K_VALUE;--默认情况为K_VALUE保持原来状态,相当于实现锁存器

ENDCASE;

4.2显示模块设计

4.2.1菜单显示

接收译码器的K_VALUE,显示相应的菜单信息,

单价显示和口味显示的源代码如下,其中,qw代表口味,dj代表单价。

entitymyJPis

port(cd:

instd_logic_vector(3downto0);

qw:

outstd_logic_vector(7downto0);

dj:

outstd_logic_vector(3downto0));

endentitymyJP;

architectureSEofmyJPis

begin

withcdselect

qw<="00010101"when"0100","00001111"when"0101",

"00010011"when"0110","00001101"when"0111",

"01010001"when"1000","00110000"when"1001",

"00010000"when"1010","00000101"when"1011",

"11000101"when"1100","00010001"when"1101",

"01000101"when"1110","11110001"when"1111",;

withcdselect

dj<="1000"when"0100",

"1010"when"0101","0111"when"0110",

"0101"when"0111","0110"when"1000",

"1010"when"1001","1100"when"1010",

"1000"when"1011","1111"when"1100",

"0011"when"1101","0101"when"1110",

"0110"when"1111","0000"whenothers;

endarchitectureSE;

4.2.2口味显示

通过CYC-L2V2.0便携式EDA/SOPC/DSP实验系统自带的8个LED,显示当前所选菜的口味。

8个LED灯分为4组,分别表示4种口味:

酸,甜,麻,辣,每组2个灯都不亮表示无此味道;1个灯亮表示有此味道;如:

微辣,微甜等;2个灯表示此味很重。

效果图如下:

4.2.3单价显示

单价显示主要由LED数码管实现。

分段式显示器(LED数码管)由7条线段围成,只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。

LED数码管有共阳、共阴之分。

图4.2是共阴式LED数码管的原理图。

使用时,公共阴极接地,7个阳极a~g由相应的BCD七段译码。

 

BCD七段译码器的输入是1位BCD码(以D、C、B、A表示),输出是数码管各段的驱动信号(以Fa~Fg表示),也称4-7译码器。

若用它驱动共阴LED数码管,则输出应为高有效,即输出为高

(1)时,相应显示段发光。

根据组成0~9这10个字形的要求可以列出8421BCD七段译码器的真值表。

程序设计如下:

architectureex1ofsevenis

beginwithAselect

Z<="1110111"when"0000","0010010"when"0001",

"1011101"when"0010","1011011"when"0011",

"0111010"when"0100","1101011"when"0101",

"1101111"when"0110","1010010"when"0111",

"1111111"when"1000","1111011"when"1001",

"1101101"when"1010","1101101"when"1011",

"1101101"when"1100","1101101"when"1101",

"1101101"when"1110","1101101"when"1111",

"0000000"whenothers;endarchitectureex1;

4.3控制模块

控制模块的实现主要是使用状态机的设计思路,在控制模块中有6个状态:

点菜状态、等待状态、确认状态、删除状态、已点查询状态和结帐。

每个状态产生不同的控制信号,用于过程的实现。

其中包含2个进程,标识为seq和com,seq进程用于建模次态和输出逻辑,com进程用于建模状态寄存器。

在com进程中,设定了相应的功能键,YES表示确认键,DEL表示删除键,HAV表示已点查询键,OVER表示结帐。

控制器状态机和控制器ASM图如下图所示:

 

4.3.1RAM的设计

系统采用静态RAM,大小为16×8Bit,因为数据既可以存储与RAM中,也可以从RAM读取,所以数据端口为INOUT模式。

RAM有3个控制信号:

CS(片选),WE(写使能),OE(输出使能),均为低电平有效。

libraryieee;

useieee.std_logic_1164.all;

entityramis

port(address:

inintegerrange0to15;

data:

inoutstd_logic_vector(7downto0);

cs,we,oe:

instd_logic);

endentityram;

architectureRTLoframis

begin

p0:

process(address,cs,we,oe,data)is

typeram_arrayisarray(0to3)ofstd_logic_vector(7downto0);

variablemem:

ram_array;

begin

data<=(others=>'Z');

if(cs='0')then

if(oe='0')then

data<=mem(address);

elsifwe='0'then

mem(address):

=data;

endif;

endif;

endprocessp0;

endarchitectureRTL;

4.3.2加法器的设计

加法器由一位全加器的简单模型构成行波进位加法器,通过将模型多次实例化构件一个8位的加法器。

行波进位加法器由一位全加器级联组成,由低位相加,低位的进位作为下一位的进位CIN的输入,依次相加,本设计需要进行8位的加法运算。

程序设计如下:

entityjfq1is

port(A,B:

instd_logic_vector(0to7);

CIN:

instd_logic;

SUM:

outstd_logic_vector(0to11);

COUT:

outstd_logic);

architectureNAofjfq1is

signalcarry:

std_logic_vector(0to8);

begin

g1:

foriin0to7generate

lt:

ifi=0generate

f0:

entityWORK.myNAportmap(A(i),B(i),CIN,SUM(i),CARRY(i+1));

endgeneratelt;

rt:

ifi=7generate

fn:

entityWORK.myNAportmap(A(i),B(i),CARRY(i),SUM(i),COUT);

endgeneratert;

md:

ifi>0andi<7generate

fm:

entityWORK.myNAportmap(A(i),B(i),CARRY(i),SUM(i),CARRY(i+1));

endgeneratemd;

5系统测试

该课题完成了一种简单的电子点菜单终端的设计,利用VHDL语言进行编程,用FPGA芯片得以实现。

以CYC-L2V2.0便携式EDA/SOPC/DSP实验系统为硬件平台,实现客人的自主点菜过程,功能齐全,使用方便。

各模块测试情况如下。

5.1键盘扫描模块

对键盘进行扫描,消抖,每一个单键作唯一编码,作为扫描值输出。

 

5.2键盘译码

将扫描键盘后得到的KEY值,通过译码设定为菜单键和功能键:

KEY值0000—0111分别为:

确认,删除,已点,结帐;KEY值1000—1111为菜单。

译码器原理图见图5.3所示:

 

5.3多位加法器

将从存储器中得到的值分别作为A,B两个8位输出,总价SUM通过3个七段数码管输出。

原理图见图:

 

5.4七段数码管

用于显示系统需要输出的单价,总价信息,原理图见图5.7所示:

 

5.5RAM存储器

用于存储菜单数据信息,DATA为INOUT模式,提供3个控制信号,第一个控制信号CS为芯片选择是选定芯片的通用控制信号。

地址范围为0到15,WE和OE只有其中一个有效:

WE信号有效,将数据写入;OE信号有效,将数据从芯片中读出。

3个控制信号都是低电平有效。

原理图见图5.9所示:

 

5.6系统控制器

为系统的核心部分,控制各个模块之间的工作,cd_v接受键盘的译码值,ADD,

DATA,CS,WE,OE为存储的控制信号,cd_out为菜单信息输出,A,B为8位的单价输入,SUM为总价的12位输出。

电路符号如下图所示:

 

6结论

该课题是利用ALTERA公司的QUARTUS开发环境和软件,进行VHDL程序设计,然后进行仿真,调试,以CYC-L2V2.0便携式EDA/SOPC/DSP实验系统为硬件平台,实现了一个简单的电子点菜单终端的设计。

本设计也存在一定的不足。

由于本身能力和实验器材的限制,无法在系统中建立完善的体制,只是实现了一个电子点菜单的基本功能。

图片显示,密码修改以及菜单改价的功能,都没有在系统中实现,这些都有待以后的继续提高和完善

 

7致谢

经过一学期的自我学习和努力,在老师和同学的帮助下,去认真完成我的设计,使我从中受益匪浅。

这是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整的系统设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,解决实际工程问题的能力,同时也提高我查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富,各方面都得到不同程度的提升。

对于在设计过程中帮助过我的老师和同学,我在此对你们表示衷心的谢意和崇高的敬意。

或许感谢的话语你们听了很多,也看了很多,但是我相信每一份谢意,都是满满的,满载着一个学生在走向社会的时候,对曾经孜孜不倦教诲过自己的老师的诚挚的心。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1