资源描述
单 片 机 与 常 用 外 围 设 备 接 口 电 路 10.1 LED发 光 二 极 管 发 光 二 极 管 是 半 导 体 二 极 管 的 一 种 , 可 以 把 电 能 转 化 成光 能 ; 常 简 写 为 LED。 发 光 二 极 管 与 普 通 二 极 管 一 样 是 由 一个 PN结 组 成 , 也 具 有 。 当 给 发 光 二 极 管 加 上 正向 电 压 后 , 从 P区 注 入 到 N区 的 空 穴 和 由 N区 注 入 到 P区 的 电子 , 在 PN结 附 近 数 微 米 内 分 别 与 N区 的 电 子 和 P区 的 空 穴 复合 , 产 生 自 发 辐 射 的 荧 光 。 不 同 的 半 导 体 材 料 中 电 子 和 空 穴 所 处 的 。当 电 子 和 空 穴 复 合 时 释 放 出 的 能 量 多 少 不 同 , 释 放 出 的 能 量越 多 , 则 发 出 的 光 的 波 长 越 短 。 常 用 的 是 发 红 光 、 绿 光 或 黄光 的 二 极 管 。 发 光 二 极 管 的 外 形 如 图 10-1所 示 。 发 光 二 极 管 的 反 向 击 穿 电 压 约 5伏 。 它 的 正 向 伏 安 特 性曲 线 很 陡 , 使 用 时 必 须 串 联 限 流 电 阻 以 控 制 通 过 管 子 的 电 流 。限 流 电 阻 R可 用 下 式 计 算 : 式 中 E为 电 源 电 压 , UF为 LED的 正 向 压 降 , IF为 LED的 一 般工 作 电 流 。 1讲 10.1.1 物 理 特 性 发 光 二 极 管 的 两 根 引 线 中 较 长 的 一 根 为 正 极 , 应 接 电 源 正 极 。有 的 发 光 二 极 管 的 两 根 引 线 一 样 长 , 但 管 壳 上 有 一 凸 起 的 小舌 , 靠 近 小 舌 的 引 线 是 正 极 。 发 光 二 极 管 与 小 白 炽 灯 泡 和 氖 灯 相 比 , 发 光 二 极 管 的 特 点 是 :工 作 电 压 很 低 ( 有 的 仅 一 点 几 伏 ) ; 工 作 电 流 很 小 ( 有 的 仅零 点 几 毫 安 即 可 发 光 ) ; 抗 冲 击 和 抗 震 性 能 好 , 可 靠 性 高 ,寿 命 长 ; 通 过 调 制 通 过 的 电 流 强 弱 可 以 方 便 地 调 制 发 光 的 强弱 。 由 于 有 这 些 特 点 , 发 光 二 极 管 在 一 些 光 电 控 制 设 备 中 用作 光 源 , 在 许 多 电 子 设 备 中 用 作 信 号 显 示 器 。 把 它 的 管 心 做成 条 状 , 用 7条 条 状 的 发 光 管 组 成 7段 式 半 导 体 数 码 管 , 每个 数 码 管 可 显 示 0 9十 个 数 目 字 。 多 种 颜 色 的 发 光 二 极 管如 图 10-2所 示 。 10.1.2 发 光 原 理 50年 前 人 们 已 经 了 解 半 导 体 材 料 可 产 生 光 线 的 基 本 知 识 ,。 LED是 英 文 light emitting diode( 发 光 二 极 管 ) 的 缩写 , 它 的 基 本 结 构 是 一 块 电 致 发 光 的 半 导 体 材 料 , 置 于 一 个 有 引 线 的 架 子上 , 然 后 四 周 用 环 氧 树 脂 密 封 , 起 到 保 护 内 部 芯 线 的 作 用 , 所 以 LED的 抗震 性 能 好 。 发 光 二 极 管 的 核 心 部 分 是 由 P型 半 导 体 和 N型 半 导 体 组 成 的 晶 片 , 在 P型 半导 体 和 N型 半 导 体 之 间 有 一 个 过 渡 层 , 称 为 。 在 某 些 半 导 体 材 料 的PN结 中 , 注 入 的 少 数 载 流 子 与 多 数 载 流 子 复 合 时 会 把 多 余 的 能 量 以 光 的形 式 释 放 出 来 , 从 而 把 电 能 直 接 转 换 为 光 能 。 PN结 加 反 向 电 压 , 少 数 载 流 子 难 以 注 入 , 故 不 发 光 。 这 种 利 用 注 入 式 电致 发 光 原 理 制 作 的 二 极 管 叫 发 光 二 极 管 , 通 称 LED。 当 它 处 于 正 向 工 作状 态 时 ( 即 两 端 加 上 正 向 电 压 ) , 电 流 从 LED阳 极 流 向 阴 极 时 , 半 导 体晶 体 就 发 出 从 紫 外 到 红 外 不 同 颜 色 的 光 线 , 光 的 强 弱 与 电 流 有 关 。10.1.3 分 类 发 光 二 极 管 还 可 分 为 普 通 单 色 发 光 二 极 管 、 高 亮 度 发 光 二 极 管 、 超 高 亮度 发 光 二 极 管 、 变 色 发 光 二 极 管 、 闪 烁 发 光 二 极 管 、 电 压 控 制 型 发 光 二极 管 、 红 外 发 光 二 极 管 和 负 阻 发 光 二 极 管 等 。10.1.4 LED光 源 的 特 点 1. 电 压 LED使 用 低 压 电 源 , 供 电 电 压 在 6-24V之 间 , 根 据 产 品 不 同 而 异 , 所 以 它是 一 个 比 使 用 高 压 电 源 更 安 全 的 电 源 , 特 别 适 用 于 公 共 场 所 。 2. 效 能 消 耗 能 量 较 同 光 效 的 白 炽 灯 减 少 80% 3. 适 用 性 体 积 很 小 , 每 个 单 元 LED小 片 是 3-5mm2的 正 方 形 , 所 以 可 以 制 备 成 各 种形 状 的 器 件 , 并 且 适 合 于 易 变 的 环 境 的 发 光 二 极 管 4. 稳 定 性 10万 小 时 , 光 衰 为 初 始 的 50% 5. 响 应 时 间 其 白 炽 灯 的 响 应 时 间 为 毫 秒 级 , LED灯 的 响 应 时 间 为 纳 秒 级 6. 对 环 境 污 染 无 有 害 金 属 汞 7. 颜 色 发 光 二 极 管 方 便 地 通 过 化 学 修 饰 方 法 , 调 整 材 料 的 能 带 结 构 和 禁 带 宽 度 ,实 现 红 黄 绿 蓝 橙 多 色 发 光 。 红 光 管 工 作 电 压 较 小 , 颜 色 不 同 的 红 、 橙 、黄 、 绿 、 蓝 的 发 光 二 极 管 的 工 作 电 压 依 次 升 高 。 8. 价 格 LED的 价 格 现 在 越 来 越 平 民 化 , 因 LED省 电 的 特 性 , 也 许 不 久 的 将 来 , 人们 都 会 的 把 白 炽 灯 换 成 LED灯 。 现 在 , 我 国 部 分 城 市 公 路 、 学 校 、 厂 区等 场 所 已 换 装 万 LED路 灯 、 节 能 灯 等 。10.1.5 LED光 参 数 介 绍 LED的 光 学 参 数 中 重 要 的 几 个 方 面 就 是 : 光 通 量 、 发 光 效 率 、 发 光 强 度 、光 强 分 布 、 波 长 。 。 发 光 效 率 就 是 光 通 量 与 电 功 率 之比 。 发 光 效 率 表 征 了 光 源 的 节 能 特 性 , 这 是 衡 量 现 代 光 源性 能 的 一 个 重 要 指 标 。 。 LED发 光 强 度 是 表 征 它 在 某 个方 向 上 的 发 光 强 弱 , 由 于 LED在 不 同 的 空 间 角 度 光 强 相 差很 多 , 随 之 而 来 我 们 研 究 了 LED的 光 强 分 布 特 性 。 这 个 参数 实 际 意 义 很 大 , 直 接 影 响 到 LED显 示 装 置 的 最 小 观 察 角度 。 比 如 体 育 场 馆 的 LED大 型 彩 色 显 示 屏 , 如 果 选 用 的LED单 管 分 布 范 围 很 窄 , 那 么 面 对 显 示 屏 处 于 较 大 角 度 的观 众 将 看 到 失 真 的 图 像 。 而 且 交 通 标 志 灯 也 要 求 较 大 范 围的 人 能 识 别 。 。 对 于 LED的 光 谱 特 性 我 们 主 要 看 它 的 单 色 性 是否 优 良 , 而 且 要 注 意 到 红 、 黄 、 蓝 、 绿 、 白 色 LED等 主 要的 颜 色 是 否 纯 正 。 因 为 在 许 多 场 合 下 , 比 如 交 通 信 号 灯 对颜 色 就 要 求 比 较 严 格 , 现 在 我 国 的 一 些 LED信 号 灯 中 绿 色的 为 深 绿 , 红 色 的 为 深 红 , 从 这 个 现 象 来 看 我 们 对 LED的光 谱 特 性 进 行 专 门 研 究 是 非 常 必 要 而 且 很 有 意 义 的 。 10.1.6 发 光 二 极 管 的 检 测 1. 普 通 发 光 二 极 管 的 检 测 ( 1) 。 利 用 具 有 10k 挡 的 指 针 式 万 用 表 可 以 大 致 判 断发 光 二 极 管 的 好 坏 。 正 常 时 , 二 极 管 正 向 电 阻 阻 值 为 几 十 至 200k ,反向 电 阻 的 值 为 。 如 果 正 向 电 阻 值 为 0或 为 , 反 向 电 阻 值 很 小 或 为 0,则 已 损 坏 。 这 种 检 测 方 法 , 不 能 实 质 地 看 到 发 光 管 的 发 光 情 况 , 因 为 10k 挡 不 能 向 LED提 供 较 大 正 向 电 流 。 如 果 有 两 块 指 针 万 用 表 ( 最 好 同 型 号 ) 可 以 较 好 地 检 查 发 光二 极 管 的 发 光 情 况 。 用 一 根 导 线 将 其 中 一 块 万 用 表 的 “ +” 接 线 柱 与 另一 块 表 的 “ -” 接 线 柱 连 接 。 余 下 的 “ -” 笔 接 被 测 发 光 管 的 正 极 ( P区 ) , 余 下 的 “ +” 笔 接 被 测 发 光 管 的 负 极 ( N区 ) 。 两 块 万 用 表 均 置 10k 挡 。 正 常 情 况 下 , 接 通 后 就 能 正 常 发 光 。 若 亮 度 很 低 , 甚 至 不发 光 , 可 将 两 块 万 用 表 均 拨 至 1兆 若 , 若 仍 很 暗 , 甚 至 不 发 光 , 则说 明 该 发 光 二 极 管 性 能 不 良 或 损 坏 。 应 注 意 , 不 能 一 开 始 测 量 就 将 两 块万 用 表 置 于 1m , 以 免 电 流 过 大 , 损 坏 发 光 二 极 管 。 ( 2) 。 用 3V稳 压 源 或 两 节 串 联 的 干 电 池 及 万 用 表 ( 指 针式 或 数 字 式 皆 可 ) 可 以 较 准 确 测 量 发 光 二 极 管 的 光 、 电 特 性 。 如 果 测 得 VF在 1.4 3V之 间 , 且 发 光 亮 度 正 常 , 可 以 说 明 发 光正 常 。 如 果 测 得 VF=0或 VF 3V, 且 不 发 光 , 说 明 发 光 管 已 坏 。 2. 红 外 发 光 二 极 管 的 检 测 由 于 红 外 发 光 二 极 管 , 它 发 射 1 3m的 红 外 光 , 眼 看 不 到 。通 常 单 只 红 外 发 光 二 极 管 发 射 功 率 只 有 数 mW, 不 同 型 号 的 红外 LED发 光 强 度 也 不 相 同 。 红 外 LED的 正 向 压 降 一 般 为 1.32.5V。 正 由 于 其 发 射 的 红 外 光 人 眼 看 不 见 , 所 以 利 用 上 述 可见 光 LED的 检 测 法 只 能 判 定 其 PN结 正 、 反 向 电 学 特 性 是 否 正常 , 而 无 法 判 定 其 发 光 情 况 正 常 否 。 为 此 , 最 好 准 备 一 只( 如 2CR、 2DR型 硅 光 电 池 ) 作 接 收 器 。 用 万 用 表 测 光 电池 两 端 电 压 的 变 化 情 况 。 来 判 断 红 外 LED加 上 适 当 正 向 电 流 后是 否 发 射 红 外 光 。10.1.7 发 光 二 极 管 LED与 单 片 机 的 应 用 例 10-1 如 图 10-3所 示 , 单 片 机 的 P0口 经 74LS373锁 存 器 和 发光 二 极 管 D1-D8连 接 , D1-D8的 正 极 经 过 R1-R8限 流 电 阻 接+5V电 压 , P0口 因 为 没 有 上 拉 电 阻 , 所 以 要 外 加 RP1排 阻 。 编 程 实 现 LED发 光 二 极 管 流 水 灯 闪 烁 效 果 。 程 序 如 下 : #include #include void delay(unsigned char tmp);/延 时 子 函 数 unsigned chartmpled50=0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,0X81,0X82,0X84,0X88,0X90,0XA0,0XC0,0XC1,0XC2,0XC4,0XC8,0XD0,0XE0,0XE1,0XE2,0XE4,0XE8,0XF0,0XF1,0XF2,0XF4,0XF8,0XF9,0XFA,0XFC,0XFD,0XFE,0XFF,0XFF,0X00,0XFF,0X00;/定 义 数 组 常 量 ,前 面 加 code表 示 常 量 在 程 序 代 码 中 存 放 ,/不 占 用 RAM。 该 数 组 为 发 光 二 极 管 的 输 出 数 据 void main(void) /入 口 函 数 unsigned char i;/定 义 变 量while(1) /无 限 循 环 for(i=0;i50;i+)/连 续 输 出 50个 数 据 P0=tmpledi; /这 个 符 号 是 取 反 , 因 发 光 二 极 管采 用 共 阳 极 , 所 以 将 数 据 取 反 再 输 出delay(50); /调 用 延 时 子 函 数 , 改 变 参 数 大 小 , 调 整 变化 速 度 void delay(unsigned char tmp)/延 时 子 函 数 unsigned char i,j;i=tmp;while(i) i-;j=255;while(j) j-; 10.2 数 码 管 数 码 管 按 段 数 分 为 七 段 数 码 管 和 八 段 数 码 管 , 八 段 数 码 管比 七 段 数 码 管 多 一 个 发 光 二 极 管 单 元 ( 多 一 个 小 数 点 显示 ) ; 按 能 显 示 多 少 个 “ 8” 可 分 为 1位 、 2位 、 4位 等 数 码管 。 常 用 的 LED显 示 器 有 LED状 态 显 示 器 ( 俗 称 发 光 二 极管 ) 、 LED七 段 显 示 器 ( 俗 称 数 码 管 ) 和 LED十 六 段 显 示器 。 发 光 二 极 管 可 显 示 两 种 状 态 , 用 于 系 统 状 态 显 示 ; 数 码 管用 于 数 字 显 示 ; LED十 六 段 显 示 器 用 于 字 符 显 示 。 10.2.1 数 码 管 简 介 1. 数 码 管 结 构 数 码 管 结 构 如 图 10-4所 示 。 数 码 管 由 8个 发 光 二 极 管 ( 以 下 简 称 字 段 ) 构 成 , 通 过 不 同的 组 合 可 用 来 显 示 数 字 0-9、 字 符 A -F、 H、 L、 P、 R、 U、Y、 符 号 “ ” 及 小 数 点 “ ” 。 数 码 管 又 分 为 共 阴 极 和 共 阳 极 两 种 结 构 。 LED数 码 管 分 类 : 1) 按 其 内 部 结 构 可 分 为 共 阴 型 和 共 阳 型 ; 2) 按 其 外 形 尺 寸 有 多 种 形 式 , 使 用 较 多 的 是 0.5和 0.8; 3) 按 显 示 颜 色 也 有 多 种 形 式 , 主 要 有 红 色 和 绿 色 ; 4) 按 亮 度 强 弱 可 分 为 超 亮 、 高 亮 和 普 亮 。 5) 正 向 压 降 一 般 为 1.5 2V, 额 定 电 流 为 10mA, 最 大 电 流 为 40mA。 共 阳 极 数 码 管 的 8个 发 光 二 极 管 的 阳 极 ( 二 极 管 正 端 ) 连 接 在 一 起 。通 常 , 公 共 阳 极 接 高 电 平 ( 一 般 接 电 源 ) , 其 它 管 脚 接 段 驱 动 电 路 输 出端 。 当 某 段 驱 动 电 路 的 输 出 端 为 低 电 平 时 , 则 该 端 所 连 接 的 字 段 导 通 并点 亮 。 根 据 发 光 字 段 的 不 同 组 合 可 显 示 出 各 种 数 字 或 字 符 。 此 时 , 要 求段 驱 动 电 路 能 吸 收 额 定 的 段 导 通 电 流 , 还 需 根 据 外 接 电 源 及 额 定 段 导 通电 流 来 确 定 相 应 的 限 流 电 阻 。 共 阴 极 数 码 管 的 8个 发 光 二 极 管 的 阴 极 ( 二 极 管 负 端 ) 连 接 在 一 起 。 通 常 , 公 共 阴 极 接 低 电 平 ( 一 般 接 地 ) , 其 它 管 脚 接 段 驱 动 电 路 输 出 端 。当 某 段 驱 动 电 路 的 输 出 端 为 高 电 平 时 , 则 该 端 所 连 接 的 字 段 导 通 并 点 亮 ,根 据 发 光 字 段 的 不 同 组 合 可 显 示 出 各 种 数 字 或 字 符 。 此 时 , 要 求 段 驱 动 电 路 能 提 供 额 定 的 段 导 通 电 流 , 还 需 根 据 外接 电 源 及 额 定 段 导 通 电 流 来 确 定 相 应 的 限 流 电 阻 。 3. 数 码 管 字 形 编 码 ( ) 要 使 数 码 管 显 示 出 相 应 的 数 字 或 字 符 , 必 须 使 段 数 据 口输 出 相 应 的 字 形 编 码 。 字 型 码 各 位 定 义 为 : 数 据 线 D0与 a字 段对 应 , D1与 b字 段 对 应 , 依 此 类 推 。 如 使 用 共 阳 极 数 码 管 , 数 据 为 0表 示 对 应 字 段 亮 , 数 据 为1表 示 对 应 字 段 暗 ; 如 使 用 共 阴 极 数 码 管 , 数 据 为 0表 示 对 应字 段 暗 , 数 据 为 1表 示 对 应 字 段 亮 。 如 要 显 示 “ 0” , 共 阳 极数 码 管 的 字 型 编 码 应 为 : 11000000B( 即 C0H) ; 共 阴 极 数 码管 的 字 型 编 码 应 为 : 00111111B( 即 3FH) 。 依 此 类 推 。 数 码管 字 形 编 码 表 如 表 10-1所 示 。 10.2.2 驱 动 方 式 数 码 管 要 正 常 显 示 , 就 要 用 驱 动 电 路 来 驱 动 数 码 管 的 各个 段 码 , 从 而 显 示 出 我 们 要 的 数 字 , 因 此 根 据 数 码 管 的 驱 动 方式 的 不 同 , 可 以 分 为 和 两 类 。 是 指 数 码 管 显 示 某 一 字 符 时 , 相 应 的 发 光 二 极 管恒 定 导 通 或 恒 定 截 止 。 这 种 显 示 方 式 的 各 位 数 码 管 相 互 独 立 ,公 共 端 恒 定 接 地 ( 共 阴 极 ) 或 接 正 电 源 ( 共 阳 极 ) 。 每 个 数 码管 的 8个 字 段 分 别 与 一 个 8位 I/O口 地 址 相 连 , I/O口 只 要 有 段 码输 出 , 相 应 字 符 即 显 示 出 来 , 并 保 持 不 变 , 直 到 I/O口 输 出 新的 段 码 。 采 用 静 态 显 示 方 式 , 较 小 的 电 流 即 可 获 得 较 高 的 亮 度 ,且 占 用 CPU时 间 少 , 编 程 简 单 , 显 示 便 于 监 测 和 控 制 , 但 其占 用 的 口 线 多 , 硬 件 电 路 复 杂 , 成 本 高 , 只 适 合 于 显 示 位 数 较少 的 场 合 。 是 一 位 一 位 地 轮 流 点 亮 各 位 数 码 管 , 这 种 逐 位 点亮 显 示 器 的 方 式 称 为 位 扫 描 。 通 常 , 各 位 数 码 管 的 段 选 线 相 应并 联 在 一 起 , 由 一 个 8位 的 I/O口 控 制 ; 各 位 的 位 选 线 ( 公 共 阴极 或 阳 极 ) 由 另 外 的 I/O口 线 控 制 。 动 态 方 式 显 示 时 , 各 数 码管 分 时 轮 流 选 通 , 要 使 其 稳 定 显 示 , 必 须 采 用 扫 描 方 式 , 即 在某 一 时 刻 只 选 通 一 位 数 码 管 , 并 送 出 相 应 的 段 码 , 在 另 一 时 刻选 通 另 一 位 数 码 管 , 并 送 出 相 应 的 段 码 。 依 此 规 律 循 环 , 即 可使 各 位 数 码 管 显 示 将 要 显 示 的 字 符 。 虽 然 这 些 字 符 是 在 不 同 的 时 刻 分 别 显 示 , 但 由 于 人 眼 存 在, 只 要 每 位 显 示 间 隔 足 够 短 就 可 以 给 人 以 同 时 显示 的 感 觉 。 采 用 动 态 显 示 方 式 比 较 节 省 I/O口 , 硬 件 电 路 也 较 静 态 显 示方 式 简 单 , 但 其 亮 度 不 如 静 态 显 示 方 式 , 而 且 在 显 示 位 数 较 多时 , CPU要 依 次 扫 描 , 占 用 CPU较 多 的 时 间 。10.2.3 常 见 问 题 1、 显 示 效 果 由 于 发 光 二 极 管 基 本 上 属 于 电 流 敏 感 器 件 , 其 正 向 压 降 的分 散 性 很 大 , 并 且 还 与 温 度 有 关 , 为 了 保 证 数 码 管 具 有 良 好的 亮 度 均 匀 度 , 就 需 要 使 其 具 有 恒 定 的 工 作 电 流 , 且 不 能 受 温度 及 其 它 因 素 的 影 响 。 另 外 , 当 温 度 变 化 时 驱 动 芯 片 还 要 能 够自 动 调 节 输 出 电 流 的 大 小 以 实 现 色 差 平 衡 温 度 补 偿 。 2、 安 全 性 即 使 是 短 时 间 的 电 流 过 载 也 可 能 对 发 光 管 造 成 永 久 性 的 损 坏 , 采 用 恒 流 驱 动 电 路 后 可 防 止 由 于 电 流 故 障 所 引 起 的 数 码管 的 大 面 积 损 坏 。 另 外 , 我 们 所 采 用 的 超 大 规 模 集 成 电 路 还 具 有 级 联 延 时 开 关 特 性 , 可 防 止 反 向 尖 峰 电 压 对 发 光 二 极 管 的 损 害 。 超 大规 模 集 成 电 路 还 具 有 热 保 护 功 能 , 当 任 何 一 片 的 温 度 超 过 一 定 值 时 可 自 动关 断 , 并 且 可 在 控 制 室 内 看 到 故 障 显 示 。 1、 使 用 三 极 管 目 的 是 放 大 电 流 2、 三 极 管 三 脚 顺 序 ebc(三 极 管 平 的 一 面 向 自 己 时 的 顺 序 ), 3、 NPN( 箭 头 向 出 ) : 脚 e接 数 码 管 的 公 共 脚 , 脚 c接 +5V电 源 , 脚 b接P1.7; 4、 数 码 管 的 脚 abcdefgh并 不 是 按 一 定 的 顺 序 排 列 的 , 要 用 万 用 表 进 行 测量 , 看 那 段 发 亮 ; 5、 PNP( 箭 头 向 入 ) ; 6、 电 解 电 容 长 为 正 |-符 号 , 短 ( 灰 白 色 ) 为 负 ( -符 号 关 于 亮 度 一 致 性 的 问 题 是 一 个 行 业 内 的 常 见 问 题 。 有 二 个 大 的 因 素 影响 到 亮 度 一 致 性 。 一 是 使 用 原 材 料 芯 片 的 选 取 , 一 是 使 用 数 码 管 时 采 取 的 控 制 方 式 。 1、 原 材 料 -芯 片 的 UF和 亮 度 和 波 长 是 一 个 , 即 使 筛 选 过 芯 片 ,UF和 亮 度 和 波 长 已 在 一 个 很 小 的 范 围 了 , 生 产 出 来 的 产 品 还 是 在 一 个 范 围内 ,结 果 就 是 亮 度 不 一 致 。 2、 要 保 证 数 码 管 亮 度 一 样 , 在 控 制 方 式 选 取 上 也 有 差 别 。 最好 的 办 法 是 恒 流 控 制 , 流 过 每 一 个 发 光 二 极 管 的 电 流 都 是 相 同的 , 这 样 发 光 二 极 管 看 起 来 亮 度 就 是 一 样 的 了 。 如 恒 压 控 制 ,则 导 致 UF不 相 同 的 发 光 二 极 管 分 到 的 电 流 不 相 同 , 所 以 亮 度也 不 同 。 当 然 以 上 二 个 条 件 是 相 辅 相 成 的 。 找 公 共 共 阴 和 公 共 共 阳 : 首 先 , 我 们 找 个 电 源 ( 3到 5伏 ) 和 1个 1K( 几 百 欧 的 也 行 ) 的 电 阻 , Vcc串 接 一 个 电 阻 后 和 GND接 在 任 意 2个 脚 上 , 组 合 有 很 多 , 但 总 有 一 个 LED会 发 光 的 ,找 到 一 个 就 够 了 , 然 后 GND不 动 , Vcc( 串 电 阻 ) 逐 个 碰 剩 下的 脚 , 如 果 有 多 个 LED( 一 般 是 8个 ) , 那 它 就 是 共 阴 的 了 。相 反 用 Vcc不 动 , GND逐 个 碰 剩 下 的 脚 , 如 果 有 多 个 LED( 一般 是 8个 ) , 那 它 就 是 共 阳 的 。 也 可 以 直 接 用 数 字 万 用 表 , 红 表 笔 是 电 源 的 正 极 , 黑 表 笔 是 电 源 的 负 极 。 10.2.4 数 码 管 与 单 片 机 的 应 用 例 10-2 如 图 10-5所 示 , 单 片 机 的 P2口 接 数 码 管 的 字 形 口 , P1.0-P1.2接译 码 器 74LS138的 A-C实 现 片 选 Y0-Y7, E1、 E2、 E3为 使 能 端 , E2=E3=0( 4脚 、 5脚 接 低 电 平 ) , E1=1( 6脚 接 高 电 平 ) , 74LS138被 选 通 工 作 。数 码 管 的 字 位 口 接 74LS128的 Y0-Y7, 因 为 Y0-Y7是 低 电 平 ( 即 0) 表 示 选中 , 所 以 数 码 管 应 该 采 用 共 阴 管 。 要 求 : 在 数 码 管 上 动 态 显 示 24C02。 1) 采 用 74LS138译 码 器 为 中 间 器 件 , 采 用 减 少 P口 的 使 用 , 只 用 了P1.0-P1.2则 可 实 现 8个 数 码 管 字 位 的 控 制 ; 2) 在 实 际 硬 件 制 作 过 程 中 , 由 于 采 用 共 阴 管 , 靠 P2口 提 供 的 电 流 令数 码 管 发 光 , 存 在 电 流 拉 动 不 够 , 管 不 够 亮 的 情 况 ; 可 以在 74LS138后 再 加 74LS240芯 片 , 再 把 共 阴 管 改 为 共 阳 管 则 可 ( 记 得 程 序代 码 也 要 做 相 应 调 整 ) 。 市 面 上 现 在 也 很 少 八 为 一 体 数 码 管 , 可 以 用 2个 四 为 一 体 的 代 替 。 在 P2口 和 数 码 管 之 间 增 加 74LS373锁存 器 ( 或 者 74HC573锁 存 器 ) 3) 74LS240是 八 反 相 缓 冲 器 /线 驱 动 器 。 也 就 是 一 片 芯 片 上 , 有 八 路( 个 ) 反 相 缓 冲 器 /线 驱 动 器 。 反 相 的 意 思 是 当 输 入 是 高 电 平 , 输 出 就是 低 电 平 , 当 输 入 是 低 电 平 , 输 出 就 是 高 电 平 。 缓 冲 器 , 因 为 芯 片 有 三 态 门 , 数 据 可 在 用 时 打 开 三 态 门 , 驱 动 能 力 强 , 可 用 于 总 线 上 驱 动 用 。 4) 四 位 一 体 数 码 管 有 12个 脚 , 有 4个 公 共 端 , 8个 字 型 端 。 万 用 表 选X10 电 阻 挡 , 红 笔 出 来 “ 负 ” , 黑 笔 出 来 “ 正 ” 。 思 考 : 有 没 有 译 码 器 是 高 电 平 输 出 有 效 , 若 有 则 不 需 要 用 74LS240,硬 件 电 路 更 加 简 单 。 图 10-5 单 片 机 与 数 码 管 的 连 接/*数 码 管 的 显 示 */#include #include void display(unsigned char *lp,unsigned char lc); /数 字 的 显 示 函 数 ; lp为 指 向 数 组 的 地 址 , lc为 显 示 的 个 数void displaystr(unsigned char *lp,unsigned char lc); /字 符 的 显 示 函 数 , 同 上void delay(); /延 时 子 函 数 , 5个 空 指 令code unsigned char table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x40,0 x00;/共 阴 数 码 管 0-9 , , 全 灭unsigned char l_tmpdate8=0,1,2,3,4,5,6,7;/定 义 数 组 变 量 , 并 赋 值 0,12,3,4,5,6,7, 就 是 本 程 序 要 显 示 的 八 个 数code unsigned char l_24C025=0 x5b,0 x66,0 x39,0 x3f,0 x5b; /24C02 /定 义 数 组 常 量 ,前 面 加 code表 示 常 量 在 程 序 代 码 中 存 放 , ROM /不 占 用 RAM, 在 数 码 管 上 显 示 24C02void main(void) unsigned char i=0;while(1) display(l_tmpdate,8); /用 数 字 显 示 函 数 显 示 八 个 数 字 /displaystr(l_24C02,5); /或 者 用 这 个 函 数 显 示 5个 字 符 void display(unsigned char *lp,unsigned char lc) /显 示 unsigned char i;/定 义 变 量 P2=0;/端 口 2为 输 出 P1=P1 /将 P1口 的 前 3位 输 出 0, 对 应 74LS138译 门 输 入 脚 , 全 0为 第 一 位 数 码 管 for(i=0;ilc;i+) /循 环 显 示 P2=tablelpi; /查 表 法 得 到 要 显 示 数 字 的 数 码 段 delay( ); /延 时 5个 空 指 令 if(i=7) /检 测 显 示 完 8位 否 , 完 成 直 接 退 出 , 不 让 P1口 再 加 1, 否 则 进位 影 响 到 第 四 位 数 据 break; P2=0; /清 0端 口 , 准 备 显 示 下 位 P1+; /下 一 位 数 码 管 void displaystr(unsigned char *lp,unsigned char lc)/显 示 unsigned char i;P2=0;P1=P1for(i=0;ilc;i+) P2=lpi; /本 函 数 跟 上 面 函 数 一 样 , 不 同 的 是 它 不 用 查 表 , /直 接 输 出 显 示 已 设 定 好 的 数 值 到 数 码 段 delay(); if(i=7) break; P2=0; P1+; void delay(void) /空 5个 指 令 _nop_();_nop_();_nop_();_nop_();_nop_(); 10.3 点 阵 为 集 中 反 映 晶 体 结 构 的 周 期 性 而 引 入 的 一 个 概 念 。 首 先 考虑 一 张 二 维 周 期 性 结 构 的 图 像 。 可 在 图 上 任 选 一 点 O作 为 原点 。 在 图 上 就 可 以 找 到 一 系 列 与 O点 环 境 完 全 相 同 的 点 子 ,这一 组 无 限 多 的 点 子 就 构 成 了 。 将 图 像 作 一 平 移 ,对 应 于 从原 点 O移 至 点 阵 的 任 意 位 置 , 图 像 仍 然 不 变 。 这 种 不 变 性 表 明点 阵 反 映 了 原 结 构 的 平 移 对 称 性 。 上 述 的 考 虑 显 然 可 以 推 广 到具 有 三 维 周 期 性 结 构 的 无 限 大 晶 体 。 应 该 指 出 , 原 点 位 置 可 以任 意 选 , 但 得 到 的 点 阵 却 是 等 同 的 。 点 阵 平 移 矢 量 L总 可 以 选 用 三 个 非 共 面 的 基 矢 A1、 A2及A3的 组 合 来 表 示 : L=mA1+nA2+pA3, 这 里 的 m、 n、 p为 三个 整 数 。 A1、 A2与 A3所 构 成 的 平 行 六 面 体 , 称 为 晶 胞 或 初 基晶 胞 , 它 包 含 了 晶 体 结 构 的 基 本 重 复 单 元 。 值 得 注 意 : 基 矢 与 晶 胞 的 选 择 都 不 是 唯 一 的 , 存 在 无 限 多种 选 择 方 案 。 一 个 初 基 晶 胞 是 晶 体 结 构 的 最 小 单 元 。 但 是 有 时为 了 能 更 充 分 地 反 映 出 点 阵 的 对 称 性 , 也 可 选 用 稍 大 一 些 的 非初 基 晶 胞 ( 即 晶 胞 中 包 含 一 个 以 上 的 阵 点 ) 。 2讲 一 个 点 阵 可 以 还 原 为 一 系 列 平 行 的 阵 点 行 列 ( 简 称 阵 列 ) ,或 一 系 列 的 平 行 的 阵 点 平 面 ( 简 称 阵 面 ) 。 可 用 由 一 组 基 矢所 确 定 的 坐 标 系 来 描 述 某 一 组 特 定 的 阵 列 或 阵 面 族 的 取 向 。 我 们 选 取 通 过 原 点 的 阵 列 上 任 意 阵 点 的 三 个 坐 标 分 量 , 约 化为 互 质 的 整 数 u、 v、 w作 为 阵 列 方 向 的 指 标 , 可 用 符 号【 uvw】 来 表 示 。 为 了 标 志 某 一 特 定 阵 面 族 的 方 向 , 可 选 择最 靠 近 ( 但 不 通 过 ) 原 点 的 阵 面 , 读 取 它 在 三 个 坐 标 轴 上 截距 的 倒 数 , 将 这 三 个 数 约 化 为 互 质 的 数 h、 k、 l就 得 该 阵 面旋 的 方 向 指 标 ,可 用 符 号 (hkl)来 表 示 。 这 就 是 阵 面 族 的 密 勒指 数 。 点 阵 外 形 图 如 图 10-6所 示 ,点 阵 电 路 结 构 图 图 10-7所 示 。 图 10-6 点 阵 外 形 图 图 10-6 点 阵 外 形 图 图 10-7 点 阵 结 构 图 例 10-3 如 图 10-8所 示 , 点 阵 8*8的 行 X0-X7接 单 片 机 P2.0-P2.7, 列 L0-L7接 P3.0-P3.7, 实 现 行 列 扫 描 。 单 片 机 的 P1.0接 按 键 , 初 始 状 态 点 阵 显 示 数 码 “ 0” , 每 按一 下 按 键 , 数 码 管 则 加 1显 示 , 到 数 码 “ 9” , 再 按 则 变 回“ 0” , 即 0-9循 环 。 图 10-8 单 片 机 和 点 阵 的 连 接 程 序 如 下 :#include #define hang P2 /*定 义 行 的 IO口 */#define lie P3 /*定 义 列 的 IO口 */sbit an = P10; /定 义 按 键char shu=0 ; /定 义 一 个 变 量 记 下 当 前 的 数 字unsigned char code tab =0 x00,0 x7E,0 xFF,0 xC3,0 xC3,0 xFF,0 x7E,0 x00, /字 符 00 x00,0 x00,0 x43,0 xFF,0 xFF,0 x03,0 x00,0 x00, /字 符 10 x00,0 x63,0 xC7,0 xCF,0 xDB,0 xF3,0 x63,0 x00, /字 符 20 x00,0 x42,0 xDB,0 xDB,0 xDB,0 xFF,0 x66,0 x00, /字 符 30 x00,0 x3E,0 x46,0 xFF,0 xFF,0 x06,0 x06,0 x00, /字 符 4 0 x00,0 xF6,0 xF7,0 xD3,0 xD3,0 xDF,0 xDE,0 x00, /字 符 50 x00,0 x7E,0 xFF,0 xDB,0 xDB,0 xDF,0 x4E,0 x00, /字 符 60 x00,0 xC0,0 xC0,0 xC7,0 xFF,0 xF8,0 xC0,0 x00, /字 符 70 x00,0 xFF,0 xFF,0 xDB,0 xDB,0 xFF,0 xFF,0 x00, /字 符 80 x00,0 x72,0 xFB,0 xDB,0 xDB,0 xFF,0 x7E,0 x00, /字 符 9 ;void delay(unsigned int a)/延 时 子 函 数 while(a-); /*8x8点 阵 子 函 数 , 显 示 数 字 子 函 数 */void draw_8x8(char tu) /定 义 一 个 名 为 tu的 数 组 , 形 参 用 数 组 char n; /变 量 标 记 扫 描 的 次 数 for(n=0;n8;n+) hang=1n; /选 行 /hang=1=00000001B0,向 左 边 移 动 0位 , 就 是 说 首 次 不 用 移 动 /P2.0=1,有 效 , 选 中 首 行 , 即 第 0行 ; lie=tun; /送 出 8个 列 的 状 态 , 即 显 示 tu0。 delay(50); void qudoudong()/按 键 去 抖 动 子 函 数 char a=10; while(a-) draw_8x8(/去 抖 动 时 显 示 当 前 数 字void main() unsigned int n=0;/按 键 超 时 变 量 while(1) draw_8x8( /显 示 数 字 /实 参 用 指 针 变 量 ; /按 键 没 有 按 下 则 为 1; ( 按 键 首 状 态 ) if(an=0)/有 按 下 qudoudong();/去 抖 动 ; if(an=0)/真 的 按 下 了 键 (再 判 ) while(an=0) /等 手 放 开 , 放 手 则 不 能 进 入 这 个 循 环 体 , 因 为 an=1; draw_8x8(/显 示 数 字 n+; if(n=100) /n起 到 判 断 作 用 , 按 的 时 间 长 了 , 就 break, 转 到 去 做 显示 break; /如 果 按 键 超 时 则 退 出 n=0;/回 复 按 键 超 时 变 量 为 0 shu+; if(shu=10) /如 果 数 字 超 过 了 9 shu=0; /回 复 为 0 an=1; 例 10-4 如 图 10-9所 示 , 在 16*16点 阵 上 循 环 显 示 “ 单 片 机 点阵 实 验 ! ” 字 样 。 初 始 点 阵 屏 幕 显 示 “ 单 ” 字 , 向 左 移 动 。 按下 按 键 , 则 字 样 向 右 移 动 。 图 10-9 点 阵 16*16#include #include #include /*字 模 */unsigned char code zdan32= /单0 x10,0 x10,0 x08,0 x20,0 x04,0 x48,0 x3f,0 xfc,0 x21,0 x08,0 x21,0 x08,0 x3f,0 xf8,0 x21,0 x08,0 x21,0 x08,0 x3f,0 xf8,0 x21,0 x00,0 x01,0 x04,0 xff,0 xfe,0 x01,0 x00,0 x01,0 x00,0 x01,0 x00;unsigned char code zpian32= /片0 x00,0 x80,0 x20,0 x80,0 x20,0 x80,0 x20,0 x80,0 x20,0 x84,0 x3f,0 xfe,0 x20,0 x00,0 x20,0 x00, 0 x3f,0 xc0,0 x20,0 x40,0 x20,0 x40,0 x20,0 x40,0 x20,0 x40,0 x20,0 x40,0 x40,0 x40,0 x80,0 x40; unsigned char code zji32= /机0 x10,0 x00,0 x10,0 x10,0 x11,0 xf8,0 x11,0 x10,0 xfd,0 x10,0 x11,0 x10,0 x31,0 x10,0 x39,0 x10,0 x55,0 x10,0 x51,0 x10,0 x91,0 x10,0 x11,0 x10,0 x11,0 x12,0 x12,0 x12,0 x14,0 x0e,0 x18,0 x00;unsigned char code zdian32= /点0 x02,0 x00,0 x02,0 x00,0 x02,0 x08,0 x03,0 xfc,0 x02,0 x00,0 x02,0 x10,0 x3f,0 xf8,0 x20,0 x10,0 x20,0 x10,0 x20,0 x10,0 x3f,0 xf0,0 x00,0 x00,0 x29,0 x10,0 x24,0 xc8,0 x44,0 x44,0 x80,0 x04;unsigned char code zzhen32= /阵0 x00,0 x80,0 x78,0 x84,0 x4f,0 xfe,0 x50,0 x80,0 x50,0 xa0,0 x61,0 x20,0 x51,0 x28,0 x4b,0 xfc, 0 x48,0 x20,0 x48,0 x20,0 x68,0 x24,0 x57,0 xfe,0 x40,0 x20,0 x40,0 x20,0 x40,0 x20,0 x40,0 x20; unsigned char code zshi32= /实0 x02,0 x00,0 x01,0 x00,0 x7f,0 xfe,0 x48,0 x02,0 x86,0 x84,0 x02,0 x80,0 x10,0 x80,0 x0c,0 x80,0 x04,0 x84,0 xff,0 xfe,0 x01,0 x00,0 x01,0 x40,0 x02,0 x20,0 x04,0 x10,0 x18,0 x0c,0 x60,0 x04;unsigned char code zyan32= /验0 x08,0 x40,0 xfc,0 x40,0 x08,0 xa0,0 x48,0 xa0,0 x49,0 x10,0 x4a,0 x0e,0 x4d,0 xf4,0 x48,0 x00,0 x7c,0 x48,0 x06,0 x48,0 x05,0 x48,0 x1d,0 x50,0 xe5,0 x10,0 x44,0 x24,0 x17,0 xfe,0 x08,0 x00;unsigned char code ztanhao32= /!0 x00,0 x00,0 x01,0 x80,0 x03,0 xc0,0 x03,0 xc0,0 x03,0 xc0,0 x01,0 x80,0 x01,0 x80,0 x01,0 x80,0 x01,0 x80,0 x01,0 x80,0 x00,0 x00,0 x00,0 x00, 0 x01,0 x80,0 x01,0 x80,0 x00,0 x00,0 x00,0 x00; unsigned char *z_q=zdan,zpian,zji,zdian,zzhen,zshi,zyan,ztanhao,0; /要 显 示 的 字/定 义 了 *z_q指 针 指 向 数 组 ,只 是 它 的 每 一 个 数 组 元 素 又 是 一 个 数 组 (二维 数 组 )unsigned char TU32; /要 显 示 的 画 面sbit A_A =P11 ; /移 动sbit P21 =P21 ;sbit P22 =P22 ;sbit P23 =P23 ;sbit P24 =P24 ;#define P00 P0#define ZUO(a) P00=a;P24=0;P24=1#define YOU(a) P00=a;P21=0;P21=1#define SHANG(a) P00=a;P22=0;P22=1 #define XIA(a) P00=a;P23=0;P23=1 extern void xianshiyanshi(unsigned int n); /显 示 延 时 子 程 序extern void chuqitu(void); /初 始 图 第 一 个 字 单 extern void dian1616(unsigned char ZZ); /显 示 画 图 子 程 序extern void DELAY(unsigned int a); /延 时 子 函 数 void DELAY(unsigned int a) /延 时 子 函 数 a最 大 为 十 进 制65535 while(a-) ; void dian1616(unsigned char ZZ)/显 示 画 图 子 程 序 unsigned char a,b; /a放 行 号 ,b放 字 在 数 组 的 序 号 b=0; XIA(0 x00);/不 送 出 下 半 部 分 for(a=0 x01;a!=0;a=(a1)/上 半 个 字 DELAY(2) ; /延 时 一 小 段 时 间 为 看 清 楚 ZUO(ZZb); b+ ; YOU(ZZb); /送 出 右 b+ ; SHANG(a) ;/送 出 行 号 DELAY(30) ;/延 时 一 小 段 时 间 为 了 字 型 显 示 更 清 楚 ZUO(0) ; /消 影 YOU(0); SHANG(0 x00); /不 送 出 上 半 部 分 for(a=0 x01;a!=0;a=(a1)/下 半 个 字 DELAY(2) ;/延 时 一 小 段 时 间 为 看 清 楚 ZUO(ZZb) ; b+ ; YOU(ZZb); /送 出 右 b+ ; XIA(a); /送 出 行 号 DELAY(30) ;/延 时 一 小 段 时 间 为 了 字 型 显 示 更 清 楚 ZUO(0) ; /消 影 YOU(0); void chuqitu(void)/初 始 图 为 第 一 个 字 单 char n; for(n=0;n32;n+) TUn=z_q0n; /二 维 数 组 void xianshiyanshi(unsigned int n)/显 示 延 时 while(n-) dian1616(TU);/显 示 画 图 子 程 序void zychulimain(void)/左 右 处 理 子 程 序 unsigned char hao=0; /记 第 一 序 号 idata unsigned char haox=1; /记 下 一
展开阅读全文