数电实验报告——拔河机Word文档下载推荐.doc

上传人:b****1 文档编号:13114810 上传时间:2022-10-05 格式:DOC 页数:34 大小:3.01MB
下载 相关 举报
数电实验报告——拔河机Word文档下载推荐.doc_第1页
第1页 / 共34页
数电实验报告——拔河机Word文档下载推荐.doc_第2页
第2页 / 共34页
数电实验报告——拔河机Word文档下载推荐.doc_第3页
第3页 / 共34页
数电实验报告——拔河机Word文档下载推荐.doc_第4页
第4页 / 共34页
数电实验报告——拔河机Word文档下载推荐.doc_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

数电实验报告——拔河机Word文档下载推荐.doc

《数电实验报告——拔河机Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《数电实验报告——拔河机Word文档下载推荐.doc(34页珍藏版)》请在冰豆网上搜索。

数电实验报告——拔河机Word文档下载推荐.doc

3. 仿真波形及波形分析 12

4. 源程序 15

5. 功能说明 31

6. 实验元器件清单及资源利用情况 32

7. 实验故障及问题分析 32

8. 实验总结 33

****************设计课题的任务要求*****************

一、基本任务:

用7个发光二极管排列成一行,模拟拔河过程。

游戏开始时只有中间的发光二极管点亮,作为拔河的中心线。

用按键来模拟拔河队员,按下键表示用力,根据甲乙双方按键的快慢与多少,决定亮点移动的方向。

移到任一方终端二极管时,该方获胜,该方记分牌自动加分,然后开始下一局的比赛。

比赛采用五局三胜制,甲乙双方各自记分。

当记分牌清零后,重新开始下一场拔河比赛。

1、设置“比赛开始”按键,实现一对一拔河;

2、设置复位键,按下后比分清零,双方重新开始比赛;

3、一场比赛结束时演奏一首欢快的曲子;

二、提高要求:

1、甲乙双方可选一到多个队员进行比赛;

2、自拟其它功能。

***********************系统设计********************

【设计思路】

1、10秒倒计时的实现:

电路接1M晶振的时钟,从10秒开始计时。

用变量us计算时钟个数,用present_state显示点阵的当前状态,每1M个时钟,修改一次变量num的值,用num控制8x8点阵显示的数字。

从而实现10秒倒计时。

并且设置开始键”reset”,按下后重新开始计时。

2、10秒倒计时的显示:

采用逐列扫描的方式,对行像素分别编码,利用人眼色觉暂留效应,以1MHZ的频率扫描列,点阵上就会出现稳定的数字。

3、拔河游戏的实现:

Ⅰ、当倒计时到0秒时,游戏才能正常显示;

Ⅱ、设置游戏开始键”start”,实现一对一拔河。

按下按键后游戏开始,点亮第4个发光二极管(拔河的中心点),双方的比分清零;

Ⅲ、用两个按键”player1”、”player2”代表比赛的甲乙双方。

甲方每按”player1”键10次,亮点向左移动一点;

乙方每按”player2”键10次,亮点向右移动一点。

当亮点到达最左边(第一个点),甲方胜利;

反之,亮点到达最右边(第七个点),乙方胜利。

Ⅳ、当有一方胜利后,蜂鸣器发声。

4、各个模块功能:

Ⅰ、绳子显示模块:

输入为两路脉冲信号,对两路脉冲分别记数,然后解码后控制LED灯亮灭的位置;

Ⅱ、计分模块:

每当LED灯移动到LED0或者LED6时,产生一个下降沿信号,然后七段数码管的计数器增加,然后将当前的所胜得局数显示在七段数码管上;

Ⅲ、乐曲模块:

在每局比赛结束后,即产生下降沿信号后,播放乐曲;

Ⅳ、开关及复位控制:

比赛开始前需要将“start”设置为1,否则按键信号输入不起作用;

当比赛结束后或者在比赛过程中,按下“start”则状态返回到最初的起始状态;

Ⅴ、控制电路:

在LED灯移动到最左边或者最右边时,产生一个控制信号,使计数器停止计数,使乐曲播放,并将此信号作为七段数码管使能端的输入信号。

【总体框图】

ASM图:

开始

start是否为1

触发记时器(1秒)

no,循环检测

yes

检测参赛者是否有按键脉冲

1秒时间到

判断是否到最左或者最右

对两路脉冲分别进行计数,存于count1、coun2

yes

蜂鸣

锁定count1,count2

译码,控制LED灯显示位置,并清零count1,count2

yes

在七段数码管上显示

胜利局数加一

判断是否有一方胜利

no

将灯状态锁定,显示也不变

yes

检测复位键是否按下

no,继续返回

yes,计分器清零

MDS图:

start=0

Wait

start=1

LED4(中间灯)

count2>

count1count1>

count2

灯右移

count2>

count1 count1<

灯左移

count1>

count1<

计分器发生变化,同时播放乐曲,BT3=0

LED6

LED0

Victory<

3

Victory=3

检测复位键

BT4=1 计分器清零

【分块设计】

计时进程:

数据处理进程:

显示控制进程:

【点阵设计】

1、点阵列管脚信号编码:

其中col的编码从右到左依次是点阵列管脚1-8的输入信号,即给要显示的列管脚输入低电平,其他管脚为高电位。

2、点阵行管脚信号编码

比如数

字4的点阵行编码为:

casecis

when1=>

row<

="

00000000"

;

when2=>

when3=>

00001100"

when4=>

00010100"

when5=>

00100100"

when6=>

01111111"

when7=>

00000100"

when8=>

endcase;

其中row的编码从右到左依次是点阵行管脚1-8的输入信号,即在显示的某列时,输入该列相应的行编码,显示的行输入高电平,反之输入低电平。

3、发光二极管信号编码:

其中led的编码从右到左依次是发光二极管1-8的输入信号,即给要亮的灯输入高电平,其他灯为低电位。

*******************仿真波形及波形分析*******************

1、倒计时电路的仿真:

由于频率太高,不易仿真,以下的仿真假设每8us为倒计时的1s,即8个时钟改变一次显示的数字。

从10开始倒计时,点阵列管脚从左到右进行扫描,依次赋值为低电平。

同时对该列的行管脚进行编码赋值,以较高的频率进行重复扫描,便可以显示相应的数字。

由于恰好是从左往右扫描的,所以可以在以上的仿真波形比较明显的看出显示的数字(第一幅波形显示的是10~7,第二幅波形显示的是7~4,第三幅波形中显示的是4~0)。

倒计时到0后,点阵就一直显示数字0。

且拔河游戏机不工作,8盏灯都不亮,蜂鸣器不响。

2.拔河游戏机的仿真:

电路板上共有8盏灯,游戏中现使用前7盏。

从以上的仿真波形中可以看到,当player2一直在赢的时候,代表它的三盏灯逐渐转移,知道达到终点,即点亮的灯(拔河的中心点)到达最左边的第一盏灯时(甲方胜利),播放音乐,表示其胜出。

上图表示,当player2赢了一局之后,有”start”复位,如果player2还是一直赢,代表它的等继续相继转移,知道终点。

这是一个循环过程。

上图表示,当player2赢了一局之后,有”start”复位,如果复位后,双方都没有按键,则中点一直保持在原状态,不发生偏移。

***********************源程序**********************

【顶层模块】

libraryIEEE;

useIEEE.std_logic_1164.all;

useIEEE.std_logic_unsigned.all;

entitybaheis

port(

player1,player2:

instd_logic;

--玩家1,2输入

clk_in:

--clk_in(1MHZ)

reset:

--重置键

row:

outstd_logic_vector(7downto0);

col:

led:

outstd_logic_vector(7downto0);

--绳子

cats:

outstd_logic_vector(6downto0);

--比分

q:

outstd_logic_vec

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

当前位置:首页 > 初中教育 > 英语

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

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