1、3.仿真波形及波形分析124.源程序155.功能说明316.实验元器件清单及资源利用情况327.实验故障及问题分析328.实验总结33*设计课题的任务要求*一、基本任务:用7 个发光二极管排列成一行,模拟拔河过程。游戏开始时只有中间的发光二极管点亮,作为拔河的中心线。用按键来模拟拔河队员,按下键表示用力,根据甲乙双方按键的快慢与多少,决定亮点移动的方向。移到任一方终端二极管时,该方获胜,该方记分牌自动加分,然后开始下一局的比赛。比赛采用五局三胜制,甲乙双方各自记分。当记分牌清零后,重新开始下一场拔河比赛。1、设置“比赛开始”按键,实现一对一拔河;2、设置复位键,按下后比分清零,双方重新开始比赛
2、;3、一场比赛结束时演奏一首欢快的曲子;二、提高要求:1、甲乙双方可选一到多个队员进行比赛;2、自拟其它功能。*系统设计*【设计思路】1、10秒倒计时的实现:电路接1M晶振的时钟,从10秒开始计时。用变量us计算时钟个数,用present_state显示点阵的当前状态,每1M个时钟,修改一次变量num的值,用num控制8x8点阵显示的数字。从而实现10秒倒计时。并且设置开始键”reset”,按下后重新开始计时。2、10秒倒计时的显示:采用逐列扫描的方式,对行像素分别编码,利用人眼色觉暂留效应,以1MHZ的频率扫描列,点阵上就会出现稳定的数字。3、拔河游戏的实现:、当倒计时到0秒时,游戏才能正常
3、显示;、设置游戏开始键”start”,实现一对一拔河。按下按键后游戏开始,点亮第4 个发光二极管(拔河的中心点),双方的比分清零;、用两个按键”player1”、”player2”代表比赛的甲乙双方。甲方每按” player 1”键10次,亮点向左移动一点;乙方每按” player 2”键10次,亮点向右移动一点。当亮点到达最左边(第一个点),甲方胜利;反之,亮点到达最右边(第七个点),乙方胜利。、当有一方胜利后,蜂鸣器发声。4、各个模块功能:、绳子显示模块:输入为两路脉冲信号,对两路脉冲分别记数,然后解码后控制LED灯亮灭的位置;、计分模块:每当LED灯移动到LED0或者LED6时,产生一个
4、下降沿信号,然后七段数码管的计数器增加,然后将当前的所胜得局数显示在七段数码管上;、乐曲模块:在每局比赛结束后,即产生下降沿信号后,播放乐曲;、开关及复位控制:比赛开始前需要将“start”设置为1,否则按键信号输入不起作用;当比赛结束后或者在比赛过程中,按下“start”则状态返回到最初的起始状态;、控制电路:在LED灯移动到最左边或者最右边时,产生一个控制信号,使计数器停止计数,使乐曲播放,并将此信号作为七段数码管使能端的输入信号。【总体框图】ASM图:开始start是否为1触发记时器(1秒) no,循环检测yes检测参赛者是否有按键脉冲 1秒时间到判断是否到最左或者最右对两路脉冲分别进行
5、计数,存于count1、coun2 yes 蜂鸣锁定count1,count2译码,控制LED灯显示位置,并清零count1,count2yes在七段数码管上显示胜利局数加一 判断是否有一方胜利 no将灯状态锁定,显示也不变 yes检测复位键是否按下 no,继续返回yes,计分器清零 MDS图: start=0Wait start=1LED4(中间灯) count2count1 count1count2 灯右移count2count1count1count1计分器发生变化,同时播放乐曲,BT3=0LED6LED0 Victoryrowwhen 3=00001100when 4=00010100
6、when 5=00100100when 6=01111111when 7=00000100when 8=end case;其中row的编码从右到左依次是点阵行管脚1-8的输入信号,即在显示的某列时,输入该列相应的行编码,显示的行输入高电平,反之输入低电平。3、发光二极管信号编码:其中led的编码从右到左依次是发光二极管1-8的输入信号,即给要亮的灯输入高电平,其他灯为低电位。*仿真波形及波形分析*1、 倒计时电路的仿真:由于频率太高,不易仿真,以下的仿真假设每8us为倒计时的1s,即8个时钟改变一次显示的数字。 从10开始倒计时,点阵列管脚从左到右进行扫描,依次赋值为低电平。同时对该列的行管脚
7、进行编码赋值,以较高的频率进行重复扫描,便可以显示相应的数字。由于恰好是从左往右扫描的,所以可以在以上的仿真波形比较明显的看出显示的数字(第一幅波形显示的是107,第二幅波形显示的是74,第三幅波形中显示的是40)。倒计时到0后,点阵就一直显示数字0。且拔河游戏机不工作,8盏灯都不亮,蜂鸣器不响。2拔河游戏机的仿真:电路板上共有8盏灯,游戏中现使用前7盏。从以上的仿真波形中可以看到,当player2一直在赢的时候,代表它的三盏灯逐渐转移,知道达到终点,即点亮的灯(拔河的中心点)到达最左边的第一盏灯时(甲方胜利),播放音乐,表示其胜出。上图表示,当player2赢了一局之后,有”start”复位
8、,如果player2还是一直赢,代表它的等继续相继转移,知道终点。这是一个循环过程。上图表示,当player2赢了一局之后,有”start”复位,如果复位后,双方都没有按键,则中点一直保持在原状态,不发生偏移。*源程序*【顶层模块】library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity bahe isport(player1,player2:in std_logic;-玩家1,2输入clk_in:-clk_in(1MHZ)reset:-重置键row : out std_logic_vector(7 downto 0);col :led:out std_logic_vector(7 downto 0);-绳子cats:out std_logic_vector(6 downto 0);-比分q:out std_logic_vec
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1