适合大学生创业的网站建设类型酒店网站建设方案策划书
2026/5/21 20:51:06 网站建设 项目流程
适合大学生创业的网站建设类型,酒店网站建设方案策划书,建筑公司愿景口号大全,wordpress文章采集排版要求#xff1a; 设计拔河游戏电路#xff0c;用按键与LED表示输入与输出。#xff08;1#xff09;初始时#xff0c;16个LED中间的两个点亮#xff0c;然后游戏双方不停按动按键#xff0c;点亮的两个LED向按动按键慢的一方移动#xff1b;#xff08;2#xff09;…要求设计拔河游戏电路用按键与LED表示输入与输出。1初始时16个LED中间的两个点亮然后游戏双方不停按动按键点亮的两个LED向按动按键慢的一方移动2每按动一下按键LED向对方移动一格3只要LED移动到头游戏结束4工作时钟100Hz即可1 翻译16 个 LED 上有两颗相邻亮点一段“绳子中心标记”两个人分别按左右按键左边玩家按一下→ 亮点整体向右移动 1 格朝对方移动右边玩家按一下→ 亮点整体向左移动 1 格亮点移动到最左/最右边界 →游戏结束题目里“向按键慢的一方移动”就是在描述谁按得少/慢中心就会被对方“拉”向自己这边。2 4个关键技术点时钟板上一般 50MHz/100MHz但题目说“工作时钟 100Hz 即可”→ 用分频做一个100Hz tick10ms 一拍用于按键扫描/游戏逻辑。按键消抖机械按键会抖动不消抖会一次按出很多下→ 10ms 扫描下用“连续 N 次采样一致”当作稳定。边沿检测只想要“一次按下一个脉冲”→ 稳定后的按键做pressed_pulse上升沿/下降沿取决于按键高低有效。位置寄存器用一个数pos表示“两颗亮点里左边那颗LED的位置”LED 共 16 个编号 0..15两颗相邻亮点 led[pos]和led[pos1]初始中间两颗亮pos7亮 7 和 8边界pos只能在 0..14到pos0亮 0,1或pos14亮 14,15 → game_over3 游戏逻辑核心写成规则翻译成代码在每个tick_100hz时刻若game_over1保持不动可选闪烁否则left_pulse1且right_pulse0→pos pos 1right_pulse1且left_pulse0→pos pos - 1两个都按/都不按 → 不动公平建议这样写更新后若pos0 || pos14→game_over1这套规则和题目(2)(3)完全对齐而且实现简单稳定。4 代码通过网盘分享的文件tug_game.v.zip链接: https://pan.baidu.com/s/1LLpMb-XqueEtLLwRipXWEQ 提取码: 1234默认按键低有效没按1按下0LED 默认高有效1 亮。如果你板子相反改参数就行。5 个文件clk_tick.v分频产生 100Hz tickkey_debounce_edge.v按键消抖 按下脉冲1 次按下1 个 pulsetug_game.v拔河核心逻辑pos game_over 可选闪烁led_encode.vpos→16LED 两点亮tug_top.v顶层连接tb_tug_top.v测试平台5 仿真结果5.1错误15.1调试波形里同时观察tick_100left_pulsepos你会发现现象是这种错位tick_100在某一拍为 1left_pulse反而是在tick_100 后一拍才冒出来或者反过来→ 所以pos一直不动。原因pos 不加 1 的原因基本可以锁定了tug_game是在if (tick_100)这 1 个 clk 的瞬间更新 pos但left_pulse在另一个 always 块里同一拍才“生成出来”tug_game那一拍读到的还是旧值 0。到下一拍left_pulse才变成 1但此时tick_100已经回到 0于是if(tick_100)不成立——这一按键就被“错过”了。这就是典型的单周期脉冲 不同 always 块 还用 tick 再门控 导致的漏采样。5.2结果分析仿真开始后系统首先经历复位阶段rst_n处于无效状态时各寄存器被初始化位置寄存器pos被置为7(4b0111)表示初始亮点位于 LED 的中间区域同时game_over为0表明游戏未结束显示控制blink初始为1允许 LED 正常显示。由此输出led对应出现两颗相邻点亮且与pos7相一致即led[pos]与led[pos1]置亮体现了“初始时 16 个 LED 中间两个点亮”的题目要求。进入正常工作后系统内部节拍信号tick_100按 100Hz 周期性产生窄脉冲用作按键消抖模块的采样时钟。此时原始按键输入key_left在测试平台驱动下呈现周期性“按下—松开”的动作序列由于按键消抖采用“连续多次采样一致才判稳”的策略稳定状态信号left_stable并不会与key_left同步瞬变而是在连续若干次tick_100采样确认后才翻转。当left_stable从 0 变为 1 的瞬间消抖模块输出一次性事件脉冲left_pulse单次按动仅产生一个脉冲该脉冲作为“有效按键事件”的唯一标志供游戏逻辑使用。在每次left_pulse出现后游戏核心逻辑立即对位置寄存器pos执行加 1 更新表现为pos从初始的0111(7)依次递增为1000(8)、1001(9)、1010(10)、1011(11)、1100(12)、1101(13)、1110(14)位置变化呈现严格的“一次按动移动一格”的离散步进特性。与此同时LED 输出led也同步更新两颗相邻亮点随pos的递增整体向右平移且始终保持“相邻两灯同时点亮”的规则即每次位置变化后亮点从(pos,pos1)平移到(pos1,pos2)实现了“亮点按按键向对方移动”的题目要求。当pos递增到14(4b1110)时亮点已经抵达最右边界点亮 LED14 与 LED15此时逻辑触发结束条件game_over由 0 置为 1系统进入“游戏结束锁定态”。在锁定态下即使后续仍出现按键动作与脉冲事件位置寄存器pos也不再更新保持在边界值不变从波形上可见pos在达到1110后保持恒定符合题目“只要 LED 移动到头游戏结束”的要求。此外由于设计中启用了结束闪烁功能BLINK_ON_OVER1在game_over1之后显示控制信号blink开始按设定频率翻转从而使 LED 显示呈现周期性明灭效果当blink1时 LED 正常显示边界亮点当blink0时 LED 输出被整体熄灭或显示抑制。该现象在波形后段可以观察到blink的翻转变化进一步证明“结束后进入提示状态闪烁”的逻辑链路工作正常。综上该波形完整覆盖并验证了关键功能链路复位初始化 → tick_100 采样消抖 → 按下事件生成 left_pulse → pos 单步移动 → LED 两点同步平移 → 到达边界置位 game_over 并锁死 → 结束闪烁提示符合拔河游戏课设的功能要求。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询