资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1题目:题目:VHDL 课程设计之打地鼠游戏专专 业业 : 信息工程信息工程班班 级级 : 电联电联学生姓名学生姓名 : 提交日期提交日期 :20152015 年年 0303 月月 0505 日日2目录一、设计任务与要求3 二、总体框图3 2.1 总体框图3 2.2 设计思路及各模块功能3 2.2.1 设计思路3 2.2.2 各模块功能3 三、选择器件4 四、模块功能实现74.1 分频器模块74.2 随机数产生模块184.3 随机数产生模块29 4.4 键盘控制模块10 4.5 计分器模块14 4.6 LCD1602 地鼠显示模3块154.7 数码管显示模块17 五、总体设计电路图18 六、游戏说明书18 6.1 前言18 6.2 运行说明18 6.3 评分规则18 七、心得体会19一、 设计任务与要求 设计一个挑战反应速度的“打地鼠”游戏机。要求:地鼠随机出现在任何位置,以按键代表锤子,击中地鼠,一旦击中,数码管计分器分数增加。按复位键重新开始游戏。二、 总体框图 42.1、打地鼠游戏机的总体框图如下图所示: 电路设计总体框图2.2、设计思路及各模块功能: 2.2.1设计思路: 产生伪随机数使地鼠随机出现,外接LCD1602显示地鼠随机出现的位置,以一个特殊字符表示地鼠。游戏者按下按键,与地鼠出现的位置代表的伪随机数进行比较,若一致,计分器进行加分。按下ESC键进行复位,利用50MHz分频作为基本信号源。2.2.2各模块功能介绍: 分频器模块 将50MHz的信号源分别分频为游戏所需频率的时钟信号1Hz。 伪随机数产生模块 产生伪随机数,使得地鼠出现位置随机。计分模块 接收来自键盘控制模块的信号,正确一次加一分。LCD显示模块 在1HZ时钟信号下,根据产生的伪随机数使得2*16的LCD屏上随机出现代表地分频模块随机数发 生模块键盘模块LCD 显示模块计分模块数码管显 示模块5鼠的字符。键盘控制模块 玩家按下地鼠出现的位置可能对应的按键,按键地址与地鼠出现的位置对应的伪随机进行比较,若一致,输出一个为1的correct信号。计分模块 接收来自键盘控制模块的信号,正确一次加一分。数码管显示模块 通过数码管,将计分模块的计分结果显示出来。三、 器件选择 设计开发软件:Quartus2 8.1/9.0主芯片:1. FPGA 芯片: EP2C8Q208C8 EP2C8Q208C8:含 8,256 Les; 165,888 RAM bits; 2 个 PLL; 18 Multipliers; 139 个 I/O 口2.配置芯片: EPCS1 / EPCS4 FPGA 串行配置芯片含 1 M bit Flash / 4 M bit Flash EP2C5Q208C8:配置 EPCS1EP2C8Q208C8:配置 EPCS4 3. FLASH: AM29LV160DB 16M bit(2 M8 Bit/1 M16 Bit)4. SRAM: IS61LV25616 256K16 Bit 5. I2C 存储器电路: 24LC16B 16K bit(8 Blocks2568 Bit)6. SPI 存储器电路: 93LC46B 1K bit(6416 Bit)7.有源晶振: 50 MHz8.电源芯片: LM1117-3.3V、LM1117-1.5V 69.调试接口: AS、JTAG 调试接口10.核心板尺寸: 100mm79mm外接LCD1602显示屏工业字符型液晶,能够同时显示 16x02 即 32 个字符。(16 列 2 行)注:为了表示的方便 ,后文皆以 1 表示高电平,0 表示低电平。1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义 CGRAM,显示效果也不好)。1602LCD 是指显示的内容为 16X2,即可以显示两行,每行 16 个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于 HD44780 液晶芯片的,控制原理是完全相同的,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。2 管脚功能1602 采用标准的 16 脚接口,其中:第 1 脚:GND 为电源地第 2 脚:VCC 接 5V 电源正极7第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K 的电位器调整对比度)。第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平(1)时进行读操作,以 51 为例的简单原理图低电平(0)时进行写操作。第 6 脚:E(或 EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第 714 脚:D0D7 为 8 位双向数据端。第 1516 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极。特性3.3V 或 5V 工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有 80 字节显示数据存储器 DDRAM8内建有 192 个 5X7 点阵的字型的字符发生器 CGROM8 个可由用户自定义的 5X7 的字符发生器 CGRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。操作控制注:关于 E=H 脉冲开始时初始化 E 为 0,然后置 E 为 1。外接PS/2键盘进行控制四、功能模块4.1 分频器模块分频器模块接收晶振提供的50MHz时钟信号,通过计数将其分频为1s的时钟脉冲信号并输出。输出秒脉冲的VHDL程序如下:LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; use ieee.std_logic_unsigned.all;ENTITY divider IS PORT(clk:IN STD_LOGIC;rst_n:IN STD_LOGIC;clk_1HZ:BUFFER STD_LOGIC ); END divider;ARCHITECTURE behav OF divider IS BEGINPROCESS(clk,rst_n)VARIABLE count:INTEGER range 0 TO 50000000;BEGINIF rst_n=0 THENcount:=0;ELSIF clkevent AND clk=1 THEN9IF count=25000000 THENcount:=0;clk_1HZ 0) ;elsif (clk = 1 and clkevent) then ram 0) ;elsif (clk = 1 and clkevent) then ram temp_data(0) temp_data(1) temp_data(2) temp_data(3) temp_data(4) temp_data(5) temp_data(6) temp_data(7) null; end case; end if; if (num = x“b“) then num -0 if(ps2_byte_r=x“6b“) then correct-1 if(ps2_byte_r=x“74“) then correct-2 if(ps2_byte_r=x“73“) then correct-3 if(ps2_byte_r=x“74“) then correct-4 if(ps2_byte_r=x“69“) then correct-5 if(ps2_byte_r=x“79“) then correct-6 if(ps2_byte_r=x“73“) then correct-7 if(ps2_byte_r=x“73“) then correct-8 if(ps2_byte_r=x“79“) then correct-9 if(ps2_byte_r=x“69“) then14correct-10 if(ps2_byte_r=x“74“) then correct-11 if(ps2_byte_r=x“6b“) then correct-12 if(ps2_byte_r=x“72“) then correct-13 if(ps2_byte_r=x“73“) then correct-14 if(ps2_byte_r=x“7a“) then correctnull;end case; resss“1001“) thenseg_data LCD_DataLCD_DataLCD_Datacase numin is when “0000“=LCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_DataLCD_Datanull; end case;when “101“=LCD_Datanull; end case; end if; end process;process(LCD_Data) begin if (LCD_Data(8 downto 7)=“01“)then judge=LCD_Data; end if; end process; end gongneng;4.7 数码管显示模块Seg.v数码管驱动程序,具体分数显示在计分模块代码中实现。五、总体设计电路图总体电路原理图如下图所示:19实物图:总体图:LCD 显示图:20六 游戏说明书6.1前言: 地鼠欢乐地上窜下跳,在六个洞口不时探出身来,调皮的孩子用小锤左敲右击却仿佛总也打不到,地鼠从不记仇,为你计分,为你加油。打打地鼠,释放压力,呆萌地鼠陪你一起换个心情!6.2 运行说明:通电即可开始游戏,地鼠出现位置成2*3
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号