ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:591.30KB ,
资源ID:11875926      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11875926.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮数电综合实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮数电综合实验报告.docx

1、北邮数电综合实验报告北邮数电综合实验报告点阵赛车游戏 学院:信息与通信工程学院专业:通信工程班级:姓名: 学号:班内序号:一、设计课题的任务要求用88点阵进行5秒倒计时显示,当5秒倒计时结束后,点阵显示赛道和赛车的初始位置,赛车游戏开始,并开始计时,用两个数码管显示时间。用红色表示赛道,黄色表示赛车的初始位置,箭头表示赛车行进的方向。用BTN1BTN3三个按键分别控制赛车的左移、前进、右移,最终使赛车在不碰撞赛道的情况下走完全程,游戏结束,点阵显示“V”图案,数码管显示走完全程所耗费的时间。当游戏时间超过59秒,或者赛车在行进过程中碰撞赛道,游戏失败,点阵显示“X”图案。通过按键BTN0进行复

2、位,控制点阵返回到初始状态。二、系统设计1、设计思路这个过程乍一看蛮复杂的,但是当我经过仔细分析后发现,我的代码可以按照这个游戏的运行过程来写。这个游戏分为4个状态,即倒计时,运行,成功和失败。倒计时部分根据不同数字在点阵上的位置很容易设计出来,运行部分便是初始化赛道,赛车的位置,然后用按键来控制赛车运动,在这个过程中要不断判断赛车是否撞墙和到达终点,如果到达终点便进入第三个状态,成功,即显示“V”;若果撞墙便进入第四个状态,失败,即显示“X”。在游戏运行的同时数码管还要计时。2、总体框图(1)系统结构图 (2)ASM图(3)状态转移图RESETRESETRESET到终点撞墙(4)功能模块图3

3、、模块设计(1)分频模块分频器:因为原有低频时钟为50MHZ,如果直接用这个时钟信号同时实现计时和显示部分,故需两个分频器,分别将时钟频率分为1Hz和1kHz,1Hz用来控制倒计时和游戏运行过程中的计时,1kHz用来控制点阵和数码管的显示。(2)游戏模块刚开始的代码有一个判断是否复位的代码,如果RESET=1,将代码中定义的一些信号初始化,之后整个过程分为四个状态,即STATE可取0,1,2,3四个值。0处于倒计时状态,1处于用按键控制赛车运动的状态,2处于到达终点的状态,并且显示“V”,3处于失败的状态,并且显示“X”。当STATE=0时,游戏处于倒计时状态,倒计时五秒,利用五个数字在点阵上

4、的不同位置初始化点阵,分别对应五个数字,在时钟1Hz下做倒计时五秒的工作。当STATE=1时,处于用按键控制赛车运动的状态,此期间分别用BTN1,BTN2,BTN3来控制赛车的右,前,左的运动方向,运动期间还要不断判断赛车是否撞到墙或者障碍物,以及判断赛车是否到达终点,一次来确定游戏是否进入STATE=2或STATE=3状态。当STATE=2时,要在点阵上显示“V”,即给点阵矩阵初始化显示此图形的数据。当STATE=3时,要在点阵上显示“X”,即给点阵矩阵初始化显示此图形的数据。(3)显示模块因为所有状态不能同时显示,故循环显示电路分别扫描。当时钟频率足够大时,根据视觉暂留则可看到较为稳定的画

5、面。点阵显示是在时钟频率1kHz下一行一行扫描,这样在不同时候就可以显示不同的图形,比如倒计时的5,4,3,2,1和赛道,赛车的位置;其次是数码管的显示,数码管首先有个控制计数的代码,此计数是在时钟频率1Hz下工作的,然后在时钟频率1kHz的控制下分别让两个数码管显示,此即为计时器的显示。三、仿真波形及波形分析倒计时波形数码管显示及波形点阵显示波形四、源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CAR IS PORT

6、( CLK:IN STD_LOGIC; -时钟信号 RESET:IN STD_LOGIC;-复位输入 CONTROL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-赛车控制 ROW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-行控制输出 COLR,COLG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-列控制输出 CAT:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);-数码管选通 DISPLAY:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)数码管显示);END CAR;ARCHITECTU

7、RE behave OF CAR IS SIGNAL TEMP1:INTEGER RANGE 0 TO 49999;-分频信号 SIGNAL TEMP2:INTEGER RANGE 0 TO 49999999; SIGNAL CLK1K:STD_LOGIC;-频率1kHz时钟 SIGNAL CLK1HZ:STD_LOGIC; -频率1Hz时钟 SIGNAL TIMEH:INTEGER RANGE 0 TO 5;-十位计数 SIGNAL TIMEL:INTEGER RANGE 0 TO 9;-个位计数 SIGNAL LIGHTH:STD_LOGIC_VECTOR(6 DOWNTO 0);-十位数

8、码管控制信号 SIGNAL LIGHTL:STD_LOGIC_VECTOR(6 DOWNTO 0);-个位数码管控制信号 TYPE PRESENT_STATE IS (H,L);-自定义变量 SIGNAL P_STATE:PRESENT_STATE; SIGNAL STATE:INTEGER RANGE 0 TO 3;-四个状态控制信号 SIGNAL COUNT : INTEGER RANGE 0 TO 6;-倒计时控制信号 SIGNAL CX,CY:INTEGER RANGE 0 TO 7;-赛车坐标控制信号 SIGNAL ROWS:STD_LOGIC_VECTOR(7 DOWNTO 0);

9、-行控制信号 SIGNAL COLR7,COLR6,COLR5,COLR4,COLR3,COLR2,COLR1,COLR0,-列控制信号 COLG7,COLG6,COLG5,COLG4,COLG3,COLG2,COLG1,COLG0:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN DIV1K:PROCESS(CLK) -分频1kHzBEGIN IF CLKEVENT AND CLK = 1 THEN IF TEMP1 = 49999 THEN TEMP1 = 0; ELSE TEMP1 = TEMP1 + 1; END IF; IF TEMP1 25000 THEN CL

10、K1K = 0; ELSE CLK1K = 1; END IF; END IF;END PROCESS;DIV1HZ:PROCESS(CLK) -分频1HzBEGIN IF CLKEVENT AND CLK = 1 THEN IF TEMP2 = 49999999 THEN TEMP2 = 0; ELSE TEMP2 = TEMP2 + 1; END IF; IF TEMP2 25000000 THEN CLK1HZ = 0; ELSE CLK1HZ = 1; END IF; END IF;END PROCESS;GAMERUN:PROCESS(CLK1HZ,RESET) -游戏运行进程BEG

11、IN IF RESET = 1 THEN -复位和初始化 STATE = 0; COUNT = 6; CX = 2; CY = 0; TIMEH = 0; TIMEL = 0; COLG7 = 00000000; COLG6 = 00000000; COLG5 = 00000000; COLG4 = 00000000; COLG3 = 00000000; COLG2 = 00000000; COLG1 = 00000000; COLG0 CASE COUNT IS -点阵倒计时 WHEN 6 = COUNT = 5; COLR7 = 00000000; COLR6 = 00000000; CO

12、LR5 = 00000000; COLR4 = 00000000; COLR3 = 00000000; COLR2 = 00000000; COLR1 = 00000000; COLR0 COUNT = 4; COLR7 = 00111100; COLR6 = 00100000; COLR5 = 00100000; COLR4 = 00111100; COLR3 = 00000100; COLR2 = 00000100; COLR1 = 00000100; COLR0 COUNT =3; COLR7 = 00100100; COLR6 = 00100100; COLR5 = 00100100;

13、 COLR4 = 00111100; COLR3 = 00000100; COLR2 = 00000100; COLR1 = 00000100; COLR0 COUNT = 2; COLR7 = 00111100; COLR6 = 00000100; COLR5 = 00000100; COLR4 = 00111100; COLR3 = 00000100; COLR2 = 00000100; COLR1 = 00000100; COLR0 COUNT = 1; COLR7 = 00111100; COLR6 = 00000100; COLR5 = 00000100; COLR4 = 00111

14、100; COLR3 = 00100000; COLR2 = 00100000; COLR1 = 00100000; COLR0 COUNT = 0; COLR7 = 00001000; COLR6 = 00001000; COLR5 = 00001000; COLR4 = 00001000; COLR3 = 00001000; COLR2 = 00001000; COLR1 = 00001000; COLR0 COUNT = 6; STATE IF TIMEL = 9 THEN -数码管计时 TIMEL = 0; IF TIMEH = 5 THEN TIMEH = 0; IF CY /= 7

15、 THEN STATE = 3; ELSE STATE = 2; END IF; ELSE TIMEH = TIMEH + 1; END IF; ELSE TIMEL = TIMEL + 1; END IF; COLG7 = 00001110; -初始化赛道 COLG6 = 00000000; COLG5 = 00000000; COLG4 = 00000000; COLG3 = 00000000; COLG2 = 00000000; COLG1 = 00000000; COLG0 = 00000000; COLR7 = 00011111; COLR6 = 00010001; COLR5 =

16、00010001; COLR4 = 00100010; COLR3 = 01000100; COLR2 = 10001000; COLR1 = 10001000; COLR0 COLG0(7-CX) COLG1(7-CX) COLG2(7-CX) COLG3(7-CX) COLG4(7-CX) COLG5(7-CX) COLG6(7-CX) COLG7(7-CX) CX CY CX NULL; END CASE; CASE CY IS -判断移动后是否撞墙 WHEN 0 = IF COLR0(7-CX) = 1 THEN STATE = 3; ELSE COLG0(7-CX) IF COLR1

17、(7-CX) = 1 THEN STATE = 3; ELSE COLG1(7-CX) IF COLR2(7-CX) = 1 THEN STATE = 3; ELSE COLG2(7-CX) IF COLR3(7-CX) = 1 THEN STATE = 3; ELSE COLG3(7-CX) IF COLR4(7-CX) = 1 THEN STATE = 3; ELSE COLG4(7-CX) IF COLR5(7-CX) = 1 THEN STATE = 3; ELSE COLG5(7-CX) IF COLR6(7-CX) = 1 THEN STATE = 3; ELSE COLG6(7-

18、CX) STATE = 2; END CASE; IF CY = 7 THEN STATE COLR7 = 00000000; -到达终点后显示“V” COLR6 = 00000000; COLR5 = 00000000; COLR4 = 00000000; COLR3 = 00000000; COLR2 = 00000000; COLR1 = 00000000; COLR0 = 00000000; COLG7 = 00000000; COLG6 = 00000001; COLG5 = 10000010; COLG4 = 01000100; COLG3 = 00101000; COLG2 =

19、00010000; COLG1 = 00000000; COLG0 COLG7 = 00000000; -撞墙后显示“X” COLG6 = 00000000; COLG5 = 00000000; COLG4 = 00000000; COLG3 = 00000000; COLG2 = 00000000; COLG1 = 00000000; COLG0 = 00000000; COLR7 = 00000000; COLR6 = 01000010; COLR5 = 00100100; COLR4 = 00011000; COLR3 = 00011000; COLR2 = 00100100; COLR

20、1 = 01000010; COLR0 COLR = COLR0; COLG = COLG0; ROW = ROWS; ROWS COLR = COLR1; COLG = COLG1; ROW = ROWS; ROWS COLR = COLR2; COLG = COLG2; ROW = ROWS; ROWS COLR = COLR3; COLG = COLG3; ROW = ROWS; ROWS COLR = COLR4; COLG = COLG4; ROW = ROWS; ROWS COLR = COLR5; COLG = COLG5; ROW = ROWS; ROWS COLR = COLR6; COLG = COLG6; ROW = ROWS; ROWS COLR = COLR7; COLG = COLG7; ROW = ROWS; ROWS ROWS LIGHTHLIGHTHLIGHTHLIGHTHLIGHTHLIGHTHLIGHTHLIGHTLLIGHTLLIGHTLLIGHTLLIGHTLLIGHTLLIGHTLLIGHTLLIGHTLLIGHTLLIGHTL P_STATE = H; CAT = 111110; DISPLAY P_STATE = L; CAT

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

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