译 码 器 (Decoder) 2014-2015 数 字 电 路 项 目 设 计 背 景 译 码 器 是 一 种 重 要 的 组 合 逻 辑 电 路, 其 功 能 是 将 二 进 制 代 码 转 换 为 实 现 特 定 目 标 的 控 制 信 号 根 据 目 标 来 分 类 的 话 译 码 器 可 以 分 为 唯 一 地 址 译 码 器 码 制 转 换 译 码 器 和 显 示 译 码 器 译 码 器 在 多 路 复 用 内 存 地 址 译 码 和 七 段 数 码 显 示 等 应 用 中 发 挥 着 重 要 作 用 随 着 学 习 的 深 入 你 将 在 这 门 以 及 后 续 的 课 程 中 不 断 看 到 译 码 器 的 身 影 阅 读 http://zh.wikipedia.org/zh/ 译 码 器 了 解 更 多 译 码 器 的 内 容 在 本 项 目 里 你 将 要 利 用 理 想 逻 辑 门 实 现 一 个 2 线 -4 线 唯 一 地 址 译 码 器 该 类 译 码 器 有 以 下 特 点 : 具 有 n 个 输 入 端 2 n 个 输 出 端 和 一 个 或 多 个 片 选 端 ( 使 能 端 ); 在 片 选 端 为 有 效 电 平 时, 对 应 每 一 组 输 入 仅 有 一 个 输 出 端 为 有 效 电 平, 其 余 输 出 端 为 无 效 电 平 ( 与 有 效 电 平 相 反 ), 有 效 电 平 可 以 是 高 电 平 ( 高 电 平 译 码 ) 也 可 以 是 低 电 平 唯 一 地 址 译 码 器 用 在 内 存 地 址 译 码 时, 实 现 了 内 存 容 量 的 扩 展 图 1 中 的 PC 内 存 条 由 一 组 内 存 芯 片 构 成, 内 存 条 的 容 量 是 所 有 内 存 芯 片 容 量 之 和 图 1 PC 内 存 条 由 一 组 内 存 芯 片 构 成 译 码 器 的 另 一 个 常 见 应 用 场 合 是 在 七 段 数 码 显 示 中 图 2 中 的 每 个 七 段 数 码 显 示 器 配 合 3 线 -8 线 译 码 器 只 需 要 三 根 信 号 线 即 能 进 行 控 制, 否 则 需 要 八 根 ( 若 包 含 小 数 点 ) 嵌 入 式 芯 片 的 引 脚 资 源 十 分 宝 贵, 使 用 译 码 器 能 够 使 嵌 入 式 芯 片 利 用 有 限 的 I/O 端 口 控 制 尽 可 能 多 的 外 设
图 2 一 组 七 段 数 码 显 示 器
简 易 键 盘 (Simple Keyboard) 键 盘 由 打 字 机 键 盘 发 展 而 来 是 电 脑 的 标 准 外 设 之 一 通 过 键 盘 可 以 输 入 字 符 也 可 以 控 制 电 脑 运 行 我 们 使 用 的 PC 键 盘 是 薄 膜 式 键 盘, 如 图 1 所 示 这 种 键 盘 中 有 一 整 张 双 层 胶 膜, 通 过 胶 膜 提 供 按 键 的 回 弹 力, 利 用 薄 膜 被 按 下 时 按 键 处 碳 心 与 线 路 的 接 触 来 控 制 按 键 触 发 图 1 薄 膜 式 键 盘 从 电 路 逻 辑 上 看, 键 盘 的 按 键 被 组 织 成 矩 阵 形 式 扫 描 电 路 分 别 在 X 和 Y 方 向 扫 描 按 键, 当 有 按 键 按 下 / 松 开 时 特 定 的 电 路 被 接 通 / 释 放, 键 盘 中 的 控 制 电 路 将 该 信 号 转 换 成 特 定 扫 描 码 以 便 进 行 后 续 处 理 在 该 链 接 中 ( http://en.wikipedia.org/wiki/file:functionalcircuitdiagramofkeyboar dnumpadscanningprocedure-small.gif ) 可 以 观 察 扫 描 键 盘 的 动 态 过 程 在 嵌 入 式 系 统 中, 为 了 提 供 必 需 的 人 机 交 互 手 段, 最 简 便 的 做 法 是 设 计 一 个 简 易 键 盘 我 们 在 本 项 目 中 所 实 现 的 与 其 叫 键 盘 不 如 说 是 一 组 按 键, 虽 然 这 个 键 盘 非 常 简 单, 可 是 当 我 们 看 到 硬 件 电 路 以 预 期 的 那 样 响 应 我 们 的 操 作 时, 那 种 感 觉 是 非 常 奇 妙 的
计 数 器 (Counter) 计 数 器 在 数 字 电 路 中 无 处 不 在, 它 对 数 字 设 备 的 性 能 有 重 要 影 响 当 思 考 下 面 三 个 应 用 时, 你 会 发 现 很 多 问 题 都 能 转 化 为 计 数 问 题 场 景 1: 工 程 师 为 了 测 量 两 堵 墙 的 距 离, 拿 出 了 叫 做 超 声 测 距 仪 的 设 备, 如 图 1 所 示 当 该 仪 器 发 出 声 波 后, 它 便 以 固 定 速 率 计 数, 当 声 波 被 对 面 的 墙 壁 反 射 回 来 并 被 仪 器 接 收 时 计 数 停 止 此 时 通 过 计 数 值 可 以 计 算 出 声 波 的 传 播 时 间, 由 于 声 波 的 传 播 速 度 已 知, 所 以 墙 壁 之 间 的 距 离 便 可 以 轻 而 易 举 的 计 算 出 来 了 图 1 超 声 测 距 仪 场 景 2: 你 驾 车 飞 快 地 驶 过 一 段 路 面, 注 意 到 路 面 有 一 些 特 别, 如 图 2 所 示, 但 没 太 在 意 其 实 在 你 刚 驶 上 这 段 路 面 时 触 发 了 一 个 以 固 定 速 率 计 数 的 计 数 器, 驶 过 路 面 时 该 计 数 器 停 止 由 于 这 段 特 殊 路 面 的 距 离 已 知, 所 以 利 用 计 数 器 的 计 数 值 可 以 计 算 出 你 的 行 驶 速 度 前 方 的 交 警 可 以 据 此 决 定 是 否 拦 下 你 的 车 图 2 在 路 面 下 埋 入 感 应 圈 来 测 速 场 景 3: 晨 跑 回 来, 你 看 到 计 步 器 上 显 示 了 今 天 早 上 运 动 的 成 果 它 是 怎 么
做 到 的 呢? 当 你 跑 步 时, 设 备 中 的 传 感 器 发 出 一 个 信 号, 其 中 的 计 数 器 对 该 信 号 计 数, 设 备 利 用 该 计 数 值 可 以 大 概 计 算 出 你 跑 动 的 距 离 和 消 耗 的 热 量 图 3 显 示 了 佩 戴 计 步 器 运 动 的 情 景 目 前 人 们 通 过 软 硬 件 的 有 效 结 合 开 发 出 更 加 智 能 的 计 步 器 产 品, 比 如 智 能 手 环 图 3 计 步 器 帮 助 我 们 科 学 运 动 计 数 器 通 过 对 脉 冲 计 数 实 现 计 时 分 频 计 数 等 目 的 当 脉 冲 是 以 固 定 速 率 产 生 时, 如 场 景 1 2 所 示, 利 用 计 数 器 可 以 计 时 ; 当 脉 冲 不 是 以 固 定 速 率 产 生 时, 如 场 景 3 所 示, 利 用 计 数 器 可 以 对 事 件 计 数 计 数 器 用 途 广 泛 功 能 繁 多 按 照 计 数 脉 冲 输 入 方 式 划 分, 可 以 分 为 同 步 计 数 器 ( 各 触 发 器 同 时 形 成 新 的 状 态 ) 和 异 步 计 数 器 ( 各 触 发 器 形 成 新 状 态 的 时 间 不 同 ) 按 计 数 过 程 的 增 减 趋 势 划 分, 可 以 分 为 加 计 数 器 减 计 数 器 和 双 向 计 数 器 维 基 百 科 的 Counter 页 面 有 更 丰 富 的 资 料 可 以 了 解 (http://en.wikipedia.org/wiki/counter )
点 击 竞 速 (Click Race) 不 论 是 实 际 的 还 是 虚 拟 的, 按 钮 在 我 们 的 生 活 中 无 处 不 在, 小 小 的 按 钮 像 个 信 使 一 样 将 我 们 的 意 愿 传 递 给 硬 件 按 钮 把 你 的 点 击 动 作 转 化 为 电 脉 冲, 搭 建 起 从 机 械 世 界 到 电 气 世 界 的 桥 梁, 图 1 显 示 了 一 组 按 钮 图 1 一 组 按 钮 本 周 我 们 利 用 按 钮 计 数 器 和 七 段 显 示 器 设 计 一 个 小 游 戏 点 击 竞 速 如 果 你 搜 索 click race 可 以 找 到 很 多 直 接 在 网 页 上 就 能 玩 的 游 戏, 这 里 就 有 一 个 :http://www.freewebarcade.com/game/mouse-click-race/ 那 么 点 击 竞 速 究 竟 是 一 个 什 么 样 的 游 戏 呢? 就 是 点 击 一 个 按 钮 制 造 脉 冲 让 计 数 器 计 数, 在 规 定 时 间 里 比 比 谁 点 击 的 次 数 多 或 者 看 谁 先 达 到 一 个 预 先 设 定 好 的 目 标, 点 击 的 次 数 用 七 段 数 码 管 显 示 出 来 是 不 是 有 点 boring 啊, 不 过 我 打 赌 当 你 和 同 学 们 玩 起 来 的 时 候 会 停 不 下 来 的
伪 随 机 数 发 生 器 (Pseudo Random Number Generator, PRNG) 随 机 (Randomness) 在 艺 术 统 计 加 密 通 信 游 戏 设 计 等 领 域 有 广 泛 的 应 用 (http://en.wikipedia.org/wiki/applications_of_randomness ) 以 游 戏 设 计 为 例, 游 戏 趣 味 的 源 泉 是 随 机 在 第 六 个 项 目 俄 罗 斯 轮 盘 赌 中, 试 想 如 果 每 次 旋 转 轮 盘 都 停 留 在 固 定 的 位 置 上, 游 戏 中 没 有 随 机 性, 那 么 游 戏 该 有 多 么 乏 味 再 以 通 信 为 例, 在 码 分 多 址 (CDMA) 通 信 技 术 中, 每 个 用 户 的 识 别 码 是 一 个 随 机 比 特 序 列 由 于 该 序 列 在 自 相 关 性 (correlation) 上 的 性 质, 使 得 多 个 用 户 可 以 共 享 一 个 频 段 通 信 而 不 会 发 生 互 相 干 扰 同 时 该 随 机 序 列 的 产 生 机 制 不 易 推 测, 使 得 CDMA 技 术 的 安 全 性 较 高 然 而 上 述 随 机 并 不 是 自 然 界 中 的 那 种 随 机, 而 是 以 确 定 方 式 产 生 的 随 机, 因 此 叫 伪 随 机 有 多 种 伪 随 机 数 产 生 方 法, 其 中 一 种 利 用 线 性 反 馈 移 位 寄 存 器 (Linear feedback shift register,lfsr)(http://zh.wikipedia.org/zh-cn/ 线 性 反 馈 移 位 寄 存 器 ) LFSR 有 Fibonacci 型 和 Galois 型, 图 1 是 一 个 16 位 Fibonacci LFSR 线 性 反 馈 移 位 寄 存 器 中 的 线 性 反 馈 是 指 从 某 些 位 置 引 出 抽 头 做 线 性 运 算 后 ( 比 如 异 或 运 算 ) 再 作 为 输 入 移 入 电 路 中, 如 图 1 所 示 图 1 一 个 16 位 Fibonacci LFSR 图 1 中 LFSR 的 当 前 状 态 是 (1000011100110101) B 下 一 个 状 态 是 (0000111001101010) B LFSR 的 起 始 状 态 叫 做 种 子 (seed), 如 果 知 道 了 LFSR 的 种 子, 就 可 以 预 测 LFSR 的 后 续 输 出, 因 此 保 护 好 种 子, 是 保 守 一 个 随 机 系 统 秘 密 的 关 键 为 获 得 最 大 长 度 的 随 机 序 列 ( 可 以 理 解 为 某 个 状 态 距 离 下 次 出 现 的 间 隔 ), 抽 头 的 位 置 很 有 讲 究 图 1 中 的 LFSR 的 度 为 16, 可 以 表 示 成 [16 14 13 11 0] ( 生 成 器 多 项 式 ), 其 中 的 0 对 应 图 1 中 的 白 色 数 字 1( 注 意 : 图 1 中 的 白 色 数
字 1 代 表 输 入 而 不 是 抽 头 ) 图 1 中 LFSR 的 循 环 周 期 达 到 最 大, 为 65535( 不 包 括 全 零 状 态 ) 表 1 是 一 些 能 产 生 最 大 长 度 随 机 序 列 的 LFSR 的 度 和 生 成 器 多 项 式, 据 此 你 可 以 设 计 自 己 的 最 大 长 度 LFSR 表 1 产 生 最 大 长 度 随 机 序 列 的 LFSR 生 成 器 多 项 式 举 例 度 生 成 器 多 项 式 度 生 成 器 多 项 式 2 [2 1 0] 21 [21 19 0] 3 [3 2 0] 22 [22 21 0] 4 [4 3 0] 23 [23 18 0] 5 [5 3 0] 24 [24 23 22 17 0] 6 [6 5 0] 25 [25 22 0] 7 [7 6 0] 26 [26 25 24 20 0] 8 [8 6 5 4 0] 27 [27 26 25 22 0] 9 [9 5 0] 28 [28 25 0] 10 [10 7 0] 29 [29 27 0] 11 [11 9 0] 30 [30 29 28 7 0] 12 [12 11 8 6 0] 31 [31 28 0] 13 [13 12 10 9 0] 32 [32 31 30 10 0] 14 [14 13 8 4 0] 33 [33 20 0] 15 [15 14 0] 34 [34 15 14 1 0] 16 [16 15 13 4 0] 35 [35 2 0] 17 [17 14 0] 36 [36 11 0] 18 [18 11 0] 37 [37 12 10 2 0] 19 [19 18 17 14 0] 38 [38 6 5 1 0] 20 [20 17 0] 39 [39 8 0] 40 [40 5 4 3 0] 47 [47 14 0] 41 [41 3 0] 48 [48 28 27 1 0] 42 [42 23 22 1 0] 49 [49 9 0] 43 [43 6 4 3 0] 50 [50 4 3 2 0] 44 [44 6 5 2 0] 51 [51 6 3 1 0] 45 [45 4 3 1 0] 52 [52 3 0] 46 [46 21 10 1 0] 53 [53 6 2 1 0]
轮盘赌 Roulette 1 项目背景 轮盘赌是一种赌博游戏 起源于 18 世纪的法国 图 1 展示了轮盘赌的赌桌 设计 图 2 显示了轮盘赌的轮盘细部 图 1 轮盘赌的赌桌 图 2 轮盘赌的轮盘 轮盘赌的游戏规则是 玩家可将赌注押在单个数字 一段范围的数字 红色 数字 黑色数字 奇数或偶数数字 为了判定输赢 庄家向一个方向旋转外圈的 转盘 向相反的方向旋转内圈的转盘 同时在内圈释放一个白色小球 当小球失 去动量后会落入外圈转盘的一个具有特定颜色和数字的槽中 欧式转盘 37 个槽 美 式 38 个 有 关 轮 盘 赌 的 历 史 玩 法 等 信 息 可 参 阅 该 维 基 百 科 条 目 http://en.wikipedia.org/wiki/roulette
拔 河 (Tug of War) 拔 河 是 一 项 历 史 悠 久 的 团 队 角 力 运 动 有 关 拔 河 的 最 早 记 载 是 在 我 国 的 春 秋 时 期, 当 时 楚 国 一 带 利 用 拔 河, 古 时 叫 牵 钩, 训 练 士 兵 唐 代 以 前 的 拔 河 活 动 以 拉 扯 竹 索 为 主, 到 了 隋 唐 时 期 已 将 竹 索 改 为 大 绳 在 西 方, 拔 河 原 为 英 格 兰 乡 村 的 一 种 游 戏,1900~1920 年 的 奥 运 会 上 拔 河 被 列 为 比 赛 项 目 新 疆 农 业 大 学 的 师 生 也 非 常 喜 爱 这 项 运 动, 图 1 是 2014 年 我 校 大 学 生 拔 河 比 赛 的 场 景 图 1 新 疆 农 业 大 学 拔 河 比 赛 场 景 在 最 后 一 个 项 目 中, 我 们 将 利 用 在 之 前 项 目 中 积 累 的 经 验 设 计 一 个 模 拟 拔 河 游 戏, 即 将 游 戏 双 方 点 击 按 钮 的 速 度 当 作 力 量, 利 用 数 码 显 示 呈 现 双 方 的 力 量 对 比, 当 一 方 的 点 击 速 度 或 积 累 的 点 击 量 超 过 另 一 方 一 定 程 度 时, 就 认 为 那 一 方 取 胜 虽 然 这 个 游 戏 和 点 击 竞 速 有 些 相 似, 但 是 当 我 们 具 备 了 更 多 的 硬 件 知 识 后 很 容 易 将 该 游 戏 改 进 为 真 正 的 力 量 对 比 游 戏