资源描述
十 天 学 会 单 片 机 完 整 版 十 天 学 会 单 片 机 完 整 版 第 一 讲 学 单 片 机 需 要 什 么 基 础 ? 什 么 是 单 片 机 、 单 片 机 能 做 什 么 、 怎 么 开 始学 习 单 片 机 。 学 单 片 机 需 要 的 一 些 预 备 知 识 C51基 础 知 识 。 了 解 TX-1C单 片 机 学 习 板 系 统 结 构 如 何 用 TX-1C单 片 机 学 习 板 在 短 时 间 内 掌 握51单 片 机 和 C语 言 编 程 。 KEIL工 程 建 立 详 细 介 绍 及 KEIL软 件 使 用 方 法 从 点 亮 实 验 板 上 的 一 个 发 光 二 极 管 开 始 学 单 片 机 需 要 什 么 基 础 ?1. 与 以 前 所 学 的 知 识 关 联 很 少 ;2. 只 需 要 掌 握 很 基 本 的 数 电 模 电 知 识 , 如二 进 制 、 十 进 制 、 十 六 进 制 之 间 的 转 换 ,与 、 或 、 非 逻 辑 关 系 等 ;3. 对 各 种 器 件 的 概 念 基 本 上 是 从 0开 始 ;4. 如 果 要 用 C语 言 编 程 , 需 具 备 简 单 的 C语言 基 础 ;5. 所 有 人 都 站 在 了 同 一 起 跑 线 上 ; 什 么 是 单 片 机 ? 单 板 机 将 CPU芯 片 、 存 储 器 芯 片 、 I/O接 口 芯 片 和简 单 的 I/O设 备 ( 小 键 盘 、 LED显 示 器 ) 等 装配 在 一 块 印 刷 电 路 板 上 , 再 配 上 监 控 程 序 ( 固化 在 ROM中 ) , 就 构 成 了 一 台 单 板 微 型 计 算机 ( 简 称 单 板 机 ) 。单 板 机 单 板 机 的 I/O设 备 简 单 , 软 件 资源 少 , 使 用 不 方 便 。 早 期 主 要 用于 微 型 计 算 机 原 理 的 教 学 及 简 单的 测 控 系 统 , 现 在 已 很 少 使 用 。 单 片 机 在 一 片 集 成 电 路 芯 片 上 集 成 微 处 理 器 、存 储 器 、 I/O接 口 电 路 , 从 而 构 成 了 单 芯 片微 型 计 算 机 , 即 单 片 机 。 Intel公 司 推 出 了MCS-51系 列 单 片 机 : 集 成 8位 CPU、 4K字节 ROM、 128字 节 RAM、 4个 8位 并 口 、 1个全 双 工 串 行 口 、 2个 16位 定 时 /计 数 器 。 寻 址范 围 64K, 并 有 控 制 功 能 较 强 的 布 尔 处 理 器 。单 板 机 单 片 机 单 片 机 能 做 什 么 实 物 展 示 用 到 单 片 机 的 项 目 经 验 介 绍1. 手 持 粮 库 温 度 寻 检 设 备2. 毕 设 答 辩 打 分 器3. 电 话 台 灯4. 自 动 感 应 水 龙 头 凡 是 与 控 制 或 简 单 计 算 有 关 的 电 子 设 备 都 可 以 用单 片 机 来 实 现 , 再 根 据 具 体 实 际 情 况 选 择 不 同 性能 的 单 片 机 , 如 : atmel,stc,pic,avr,凌 阳 , 80C51,arm等 工 业 自 动 化 : 数 据 采 集 、 测 控 技 术 。 智 能 仪 器 仪 表 : 数 字 示 波 器 、 数 字 信 号 源 、数 字 万 用 表 、 感 应 电 流 表 等 。 消 费 类 电 子 产 品 : 洗 衣 机 、 电 冰 箱 、 空 调 机 、电 视 机 、 微 波 炉 、 手 机 、 IC卡 、 汽 车 电 子 设备 等 。 通 讯 方 面 : 调 制 解 调 器 、 程 控 交 换 技 术 、 手机 、 小 灵 通 等 。 武 器 装 备 : 飞 机 、 军 舰 、 坦 克 、 导 弹 、 航 天飞 机 、 鱼 雷 制 导 、 智 能 武 器 等 。 等 等 . 怎 么 开 始 学 习 ? 实 践 第 一 。 补 充 必 要 的 理 论 知 识 , 即 缺 什 么 补 什 么 。 做 工 程 项 目 积 累 经 验 。 ( 可 在 网 络 上 搜 集 题目 , 也 可 自 己 有 什 么 想 法 大 胆 的 去 试 验 ) 预 备 知 识 电 平 特 性2进 制 与 16进 制 的 表 示 及 转 换 二 进 制 数 的 逻 辑 运 算8051单 片 机 介 绍C51基 础 知 识 关 于 电 平 特 性 数 字 电 路 中 只 有 两 种 电 平 : 高 和 低 ( 本 课 程 中 ) 定 义 单 片 机 为 TTL电 平 : 高 +5V 低 0V RS232电 平 : 计 算 机 的 串 口 高 -12V 低 +12V 所 以 计 算 机 与 单 片 机 之 间 通 讯 时 需 要 加 电平 转 换 芯 片 max232( 实 验 板 上 左 下 角 ) 。 二 进 制 数 字 电 路 中 的 两 种 电 平 特 性 决 定 了 它0 0 6 1101 1 7 1112 10 8 10003 11 9 10014 100 10 10105 101 11 1011 十 六 进 制 是 二 进 制 的 简 短 表 示 形 式 。 十 进 制 中 的 0-15分 别 表 示 为 十 六 进 制 的 0、 1、2、 3、 4、 5、 6、 7、 8、 9、 A、 B、 C、 D、E、 F 熟 练 掌 握 二 进 制 与 十 六 进 制 之 间 的 转 换 。 规 律 : 一 般 把 四 个 二 进 制 数 放 在 一 起 转 换 成一 个 十 六 进 制 数 , 转 换 时 先 把 二 进 制 数 转 换成 十 进 制 数 , 再 把 十 进 制 数 转 换 成 十 六 进 制数 。 如 : 0001B - 1 - 1H B表 示 为 二 进 制 , H为 十 六 进 制 1001B - 9 - 9H 1010B - 10 - AH 0010 1100 - 44 - 2CH 各 种 进 位 制 的 对 应 关 系 十 进 制 二 进 制 十 六 进 制 十 进 制 二 进 制 十 六 进 制0 0 0 9 1001 91 1 1 10 1010 A2 10 2 11 1011 B3 11 3 12 1100 C4 100 4 13 1101 D5 101 5 14 1110 E6 110 6 15 1111 F 7 111 7 16 10000 108 1000 8 二 进 制 数 的 逻 辑 运 算 1. “与 ” 运 算 “ 与 ” 运 算 是 实 现 “ 必 须 都 有 , 否则 就 没 有 ” 这 种 逻 辑 关 系 的 一 种 运 算 。 运 算 符 为 “ ”, 其 运 算 规 则 如 下 :00=0, 01=10=0, 11=1 2. “或 ” 运 算 “ 或 ” 运 算 是 实 现 “ 只 要 其 中 之 一有 , 就 有 ” 这 种 逻 辑 关 系 的 一 种 运 算 , 其 运 算 符 为 “ +”。 “ 或 ” 运 算 规 则 如下 : 0+0=0, 0+1=1+0=1, 1+1=1 3. “非 ” 运 算 “ 非 ” 运 算 是 实 现 “ 求 反 ” 这 种 逻辑 的 一 种 运 算 , 如 变 量 A的 “ 非 ” 运 算记 作 。 其 运 算 规 则 如 下 : A 10,01 4. “异 或 ” 运 算 “ 异 或 ” 运 算 是 实 现 “ 必 须 不 同 , 否 则 就 没 有 ” 这 种 逻 辑 的 一 种 运 算 , 运算 符 为 “ ” 。 其 运 算 规 则 是 : 011,101,110,000 80C51系 列 介 绍 Intel的 : 80C31、 80C51、 87C51, 80C32、80C52、 87C52等 ; ATMEL的 : 89C51、 89C52、 89C2051等 ; Philips、 华 邦 、 Dallas 、 STC Siemens(Infineon)等 公 司 的 许 多 产 品 。补 充 : 关 于 型 号 的 介 绍 80C51是 MCS-51系 列 中 的 一 个 典 型 品 种 ;其 它 厂 商 以 8051为 基 核 开 发 出 的 CMOS工 艺单 片 机 产 品 统 称 为 80C51系 列 。 当 前 常 用 的80C51系 列 单 片 机 主 要 产 品 有 : 80C51的 引 脚 封 装总 线 型 非 总 线 型 第 二 功 能 各 引 脚 功 能 定 义 :P3.0: RXD串 行 口 输 入P3.1: TXD串 行 口 输 出P3.2: INT0外 部 中 断 0输 入P3.3: INT1外 部 中 断 1输 入P3.4: T0定 时 器 0外 部 输 入P3.5: T1定 时 器 1外 部 输 入P3.6: WR外 部 写 控 制P3.7: RD外 部 读 控 制 总 线 ( BUS) 是 计 算 机 各 部 件 之 间 传 送 信息 的 公 共 通 道 。 微 机 中 有 内 部 总 线 和 外 部 总线 两 类 。 内 部 总 线 是 CPU内 部 之 间 的 连 线 。外 部 总 线 是 指 CPU与 其 它 部 件 之 间 的 连 线 。 外 部 总 线 有 三 种 : 数 据 总 线 DB( Data Bus) , 地 址 总 线 AB( Address Bus) 和 控 制 总 线 CBControl Bus) 。 CPU: 由 运 算 和 控 制 逻 辑 组 成 , 同 时 还 包 括中 断 系 统 和 部 分 外 部 特 殊 功 能 寄 存 器 ; RAM: 用 以 存 放 可 以 读 写 的 数 据 , 如 运 算 的中 间 结 果 、 最 终 结 果 以 及 欲 显 示 的 数 据 ; ROM: 用 以 存 放 程 序 、 一 些 原 始 数 据 和 表 格 ; I/O口 : 四 个 8位 并 行 I/O口 , 既 可 用 作 输 入 ,也 可 用 作 输 出 ; T/C: 两 个 定 时 /记 数 器 , 既 可 以 工 作 在 定 时模 式 , 也 可 以 工 作 在 记 数 模 式 ; 五 个 中 断 源 的 中 断 控 制 系 统 ; 一 个 全 双 工 UART( 通 用 异 步 接 收 发 送 器 )的 串 行 I/O口 , 用 于 实 现 单 片 机 之 间 或 单 片 机与 微 机 之 间 的 串 行 通 信 ; 片 内 振 荡 器 和 时 钟 产 生 电 路 , 石 英 晶 体 和 微调 电 容 需 要 外 接 。 最 高 振 荡 频 率 取 决 于 单 片机 型 号 及 性 能 。 C51知 识 C语 言 是 一 种 编 译 型 程 序 设 计 语 言 , 它 兼 顾 了多 种 高 级 语 言 的 特 点 , 并 具 备 汇 编 语 言 的 功能 。 目 前 , 使 用 C语 言 进 行 程 序 设 计 已 经 成 为软 件 开 发 的 一 个 主 流 。 用 C语 言 开 发 系 统 可 以大 大 缩 短 开 发 周 期 , 明 显 增 强 程 序 的 可 读 性 ,便 于 改 进 、 扩 充 和 移 植 。 而 针 对 8051的 C语言 日 趋 成 熟 , 成 为 了 专 业 化 的 实 用 高 级 语 言 。 C语 言 作 为 一 种 非 常 方 便 的 语 言 而 得 到 广 泛的 支 持 , 很 多 硬 件 开 发 都 用 C语 言 编 程 , 如 :各 种 单 片 机 、 DSP、 ARM等 .C语 言 程 序 本 身 不 依 赖 于 机 器 硬 件 系 统 , 基本 上 不 作 修 改 就 可 将 程 序 从 不 同 的 单 片 机 中移 植 过 来 。C提 供 了 很 多 数 学 函 数 并 支 持 浮 点 运 算 , 开发 效 率 高 , 故 可 缩 短 开 发 时 间 , 增 加 程 序 可读 性 和 可 维 护 性 。 C-51的 特 点 C-51与 ASM-51相 比 , 有 如 下 优 点 :1. 对 单 片 机 的 指 令 系 统 不 要 求 了 解 , 仅要 求 对 8051 的 存 贮 器 结 构 有 初 步 了 解 ;2. 寄 存 器 分 配 、 不 同 存 贮 器 的 寻 址 及 数据 类 型 等 细 节 可 由 编 译 器 管 理 ;3. 程 序 有 规 范 的 结 构 , 可 分 成 不 同 的 函数 , 这 种 方 式 可 使 程 序 结 构 化 ;4. 提 供 的 库 包 含 许 多 标 准 子 程 序 , 具 有较 强 的 数 据 处 理 能 力 ;5. 由 于 具 有 方 便 的 模 块 化 编 程 技 术 , 使已 编 好 程 序 可 容 易 地 移 植 ; C 51的 数 据 类 型基 本 数 据 类 型类 型 符 号 关 键 字 数 的 表 示 范 围所 占 位 数整型字符 型实型 有无 (signed) int 16 -3276832767(signed) short 16 -3276832767(signed) long 32 -2147483648214748364716unsigned int 06553532 04294967295unsigned long intunsigned short int 16 065535有 float 32 3.4e-383.4e38有 double 64 1.7e-3081.7e308有 char 8 -128127无 unsigned char 8 0255 C语 言 中 的 基 本 数 据 类 型类 型 符 号 关 键 字 数 的 表 示 范 围所 占 位 数整型字符 型实型 有无 (signed) int 16 -3276832767(signed) short 16 -3276832767(signed) long 32 -2147483648214748364716unsigned int 06553532 04294967295unsigned long intunsigned short int 16 065535有 float 32 3.4e-383.4e38有 double 64 1.7e-3081.7e308有 char 8 -128127无 unsigned char 8 0255 C 51的 数 据 类 型 扩 充 定 义sfr:特 殊 功 能 寄 存 器 声 明sfr16:sfr的 16位 数 据 声 明sbit:特 殊 功 能 位 声 明bit:位 变 量 声 明例 : sfr SCON = 0X98; sfr16 T2 = 0 xCC; sbit OV = PSW2; 例 :数 据 类 型 变 量 名char var1;bit flags;unsigned char vextor10;int wwww;注 意 : 变 量 名 不 能 用 C语 言 中 的 关键 字 表 示 。C-51数 据 的 存 储 类 型 C-51的 包 含 的 头 文 件通 常 有 :reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h常 用 有 :reg51.h reg52.h ( 定 义 特 殊 功 能 寄 存 器 和 位 寄 存 器 ) ; math.h ( 定 义 常 用 数 学 运 算 ) ; C-51的 运 算 符与 C语 言 基 本 相 同 :+ - * / ( 加 减 乘 除 ) = ( 位 右 移 位 左 移 ) 单 片 机 主 要 掌 握 以 下 几 点 最 小 系 统 能 够 运 行 起 来 的 必 要 条 件 。 1.电 源 2.晶 振 3.复 位 电 路 对 单 片 机 任 意 IO口 的 随 意 操 作 1.输 出 控 制 电 平 高 低 2.输 出 检 测 电 平 高 低 。 定 时 器 : 重 点 掌 握 最 常 用 的 方 式 2 中 断 : 外 部 中 断 、 定 时 器 中 断 、 串 口 中 断 串 口 通 信 : 单 片 机 之 间 、 单 片 机 与 计 算 机 间 KEIL的 使 用 掌 握 KEIL工 程 的 建 立 和 软 件 的 开 发 ; 掌 握 KEIL中 软 件 仿 真 的 基 本 应 用 ; 掌 握 用 KEIL直 接 硬 件 仿 真 TX-1C单 片 机 学 习板 的 方 法 Main 函 数格 式 : void main()特 点 : 无 返 回 值 , 无 参 。任 何 一 个 C程 序 有 且 仅 有 一 个 main函数 , 它 是 整 个 程 序 开 始 执 行 的 入 口 。例 : void main() 总 程 序 从 这 里 开 始 执 行 ; 其 他 语 句 ; 课 后 练 习 对 照 TX-1C单 片 机 学 习 板 原 理 图 写 程 序 用 位 操 作 和 总 线 操 作 两 种 方 法 完 成 以 下 题 目1.熟 练 建 立 KEIL工 程2.点 亮 第 一 个 发 光 管 .3.点 亮 最 后 一 个 发 光 管4.点 亮 1、 3、 5、 75.点 亮 二 、 四 、 五 、 六6.尝 试 让 第 一 个 发 光 管 闪 烁7.尝 试 设 计 出 流 水 灯 程 序 自 己 动 手 实 践 需 要 硬 件 材 料 DIP40脚 座 一 个 。 杜 邦 线 , 单 头 带 冒 , 40根 。 单 排 针 两 排 。 小 电 路 板 一 块 。 DS12C887 一 片 ( 旧 10元 , 新 22元 ) 。 焊 锡 、 单 片 机 工 作 的 基 本 时 序 机 器 周 期 和 指 令 周 期 ( 1) 振 荡 周 期 : 也 称 时 钟 周 期 , 是 指 为 单 片 机 提供 时 钟 脉 冲 信 号 的 振 荡 源 的 周 期 , TX实 验 板 上 为11.0592MHZ。 ( 2) 状 态 周 期 : 每 个 状 态 周 期 为 时 钟 周 期 的 2 倍 , 是 振 荡 周 期 经 二 分 频 后 得 到 的 。 ( 3) 机 器 周 期 : 一 个 机 器 周 期 包 含 6 个 状 态 周期 S1S6, 也 就 是 12 个 时 钟 周 期 。 在 一 个 机 器 周期 内 , CPU可 以 完 成 一 个 独 立 的 操 作 。 ( 4) 指 令 周 期 : 它 是 指 CPU完 成 一 条 操 作 所 需的 全 部 时 间 。 每 条 指 令 执 行 时 间 都 是 有 一 个 或 几 个机 器 周 期 组 成 。 MCS - 51 系 统 中 , 有 单 周 期 指 令 、双 周 期 指 令 和 四 周 期 指 令 。 第 二 讲 如 何 申 请 免 费 样 片 简 单 延 时 程 序 子 程 序 调 用 带 参 数 子 程 序 设 计 C51库 函 数 的 方 便 调 用 如 何 驱 动 蜂 鸣 器 如 何 驱 动 继 电 器 集 电 极 开 路 的 概 念 及 应 用 。 While ( 表 达 式 )语 句 ( 内 部 也 可 为 空 ) 特 点 : 先 判 断 表 达 式 , 后 执 行 语句 。原 则 : 若 表 达 式 不 是 0, 即 为 真, 那 么 执 行 语 句 。 否 则 跳 出 while 语 句 。 For (表 达 式 1;表 达 式 2;表 达 式 3) 语 句 ( 内 部 可 为 空 ) 执 行 过 程 :1.求 解 一 次 表 达 式 1.2.求 解 表 达 式 2, 若 其 值 为 真 ( 非 0 即 为 真 ) , 则 执 行 for中 语 句 。 然 后执 行 第 3步 。 否 则 结 束 for 语 句 , 直接 跳 出 , 不 再 执 行 第 3步 。3.求 解 表 达 式 3.4.跳 到 第 2步 重 复 执 行 。 集 电 极 开 路 典 型 图 P0i Q1 9013 VCC GND OUTPUT 课 后 练 习1. 第 一 个 发 光 管 以 间 隔 200ms闪 烁2. 8个 发 光 管 由 上 至 下 间 隔 1s流 动 , 其 中 每 个 管 亮 500ms,灭500ms,亮 时 蜂 鸣 器 响 , 灭 时 关 闭 蜂 鸣 器 , 一 直 重 复 下 去 。3. 8个 发 光 管 来 回 流 动 , 第 个 管 亮 100ms,流 动 时 让 蜂 鸣 器 发 出“ 滴 滴 ” 声 。4. 用 8个 发 光 管 演 示 出 8位 二 进 制 数 累 加 过 程 。5. 8个 发 光 管 间 隔 200ms由 上 至 下 , 再 由 下 至 上 , 再 重 复 一 次, 然 后 全 部 熄 灭 再 以 300ms间 隔 全 部 闪 烁 5次 。 重 复 此 过 程。6. 间 隔 300ms第 一 次 一 个 管 亮 流 动 一 次 , 第 二 次 两 个 管 亮 流 动, 依 次 到 8个 管 亮 , 然 后 重 复 整 个 过 程 。7. 间 隔 300ms先 奇 数 亮 再 偶 数 亮 , 循 环 三 次 ; 一 个 灯 上 下 循 环三 次 ; 两 个 分 别 从 两 边 往 中 间 流 动 三 次 ; 再 从 中 间 往 两 边 流动 三 次 ; 8个 全 部 闪 烁 3次 ; 关 闭 发 光 管 , 程 序 停 止 。 第 三 讲 数 码 管 是 如 何 显 示 出 字 符 的 数 码 管 静 态 显 示 与 动 态 显 示 原 理 中 断 概 念 单 片 机 的 定 时 器 应 用 显 示 器 及 其 接 口单 片 机 系 统 中 常 用 的 显 示 器 有 : 发 光 二 极 管 LED(Light Emitting Diode)显 示 器 、液 晶 LCD(Liquid Crystal Display)显 示 器 、 CRT显 示 器等 。 LED、 LCD显 示 器 有 两 种 显 示 结 构 : 段 显 示 ( 7段 、米 字 型 等 ) 和 点 阵 显 示 ( 5 8、 8 8点 阵 等 ) 。 使 用 LED显 示 器 时 , 要 注 意 区 分 这 两 种 不 同 的 接 法 。 为 了 显示 数 字 或 字 符 , 必 须 对 数 字 或 字 符 进 行 编 码 。 七 段 数 码 管 加 上 一个 小 数 点 , 共 计 8段 。 因 此 为 LED显 示 器 提 供 的 编 码 正 好 是 一 个 字节 。 TX实 验 板 用 共 阴 LED显 示 器 , 根 据 电 路 连 接 图 显 示 16进 制 数的 编 码 已 列 在 下 表 。 a bcdeg GNDf dpGNDa bcef gd dp abcdefgdp dpgfedcba 5V( a) ( b)共 阴 极 共 阳 极 共 阴 数 码 管 码 表 0 x3f , 0 x06 , 0 x5b , 0 x4f , 0 x66 , 0 x6d , 0 1 2 3 4 5 0 x7d , 0 x07 , 0 x7f , 0 x6f , 0 x77 , 0 x7c , 6 7 8 9 A B 0 x39 , 0 x5e , 0 x79 , 0 x71 , 0 x00 C D E F 无 显 示 LED数 码 显 示 方 式 及 电 路 静 态 显 示 方 式LED显 示 器 工 作 方 式 有 两 种 : 静 态 显 示 方 式 和 动 态 显 示方 式 。 静 态 显 示 的 特 点 是 每 个 数 码 管 的 段 选 必 须 接 一 个 8位数 据 线 来 保 持 显 示 的 字 形 码 。 当 送 入 一 次 字 形 码 后 , 显 示 字形 可 一 直 保 持 , 直 到 送 入 新 字 形 码 为 止 。 这 种 方 法 的 优 点 是占 用 CPU时 间 少 , 显 示 便 于 监 测 和 控 制 。 缺 点 是 硬 件 电 路 比较 复 杂 , 成 本 较 高 。 动 态 显 示 动 态 显 示 的 特 点 是 将 所 有 位 数 码 管 的 段 选 线并 联 在 一 起 , 由 位 选 线 控 制 是 哪 一 位 数 码 管 有 效 。选 亮 数 码 管 采 用 动 态 扫 描 显 示 。 所 谓 动 态 扫 描 显示 即 轮 流 向 各 位 数 码 管 送 出 字 形 码 和 相 应 的 位 选 ,利 用 发 光 管 的 余 辉 和 人 眼 视 觉 暂 留 作 用 , 使 人 的感 觉 好 像 各 位 数 码 管 同 时 都 在 显 示 。 动 态 显 示 的亮 度 比 静 态 显 示 要 差 一 些 , 所 以 在 选 择 限 流 电 阻时 应 略 小 于 静 态 显 示 电 路 中 的 。 ALE WR RD RXD TXD INT0 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 VCC 40 GND 20 U1 89C52 PSEN P10 P11 P12 P13 P14 P15 P16 P17 T0 T1 INT1 P00 P01 P02 P03 P04 P05 P06 P07 P 00 P 01 P 02 P 03 P 04 P 05 P 06 P 07 P20 P21 P22 P23 P24 P25 P26 P27 P 20 P 21 P 22 P 23 a bf c g d e DPY 11 7 4 2 1 10 5 a b c d e f g 3 dp dp a bf c g d e dp a bf c g d e dp a bf c g d e dp C 0 6 C 2 8 C 3 9 C 4 12 LED DPY 4-LED 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 R 1K P 00 P 01 P 02 P 03 P 04 P 05 P 06 P 07 5V K9 9 K10 A K15 F P10 P11 P12 P13 P1 4 P1 5 P1 6 P1 7 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 VCC 40 GND 20 U1 89C52 P10 P11 P12 P13 P14 P15 P16 P17 K0 0 K1 1 K2 2 K3 3 K5 5 K6 6 K7 7 K8 8 K4 4 K11 B K12 C K13 D K14 E 中 断 系 统 3.1 80C51的 中 断 系 统 3.1.1 80C51的 中 断 系 统 结 构一 、 中 断 的 概 念 CPU在 处 理 某 一 事 件 A时 , 发 生 了 另 一 事 件B请 求 CPU迅 速 去 处 理 ( 中 断 发 生 ) ; CPU暂 时 中 断 当 前 的 工 作 , 转 去 处 理 事 件 B( 中 断 响 应 和 中 断 服 务 ) ; 待 CPU将 事 件 B处 理 完 毕 后 , 再 回 到 原 来 事件 A被 中 断 的 地 方 继 续 处 理 事 件 A( 中 断 返回 ) , 这 一 过 程 称 为 中 断 。 MCS-51单 片 机 的 中 断 系 统 结 构执 行 主程 序 主 程 序继 续 执 行主 程 序断 点中 断 请 求 中 断 响 应执 行中 断处 理程 序中 断 返 回 引 起 CPU中 断 的 根 源 , 称 为 中 断 源 。 中 断 源 向 CPU提 出的 中 断 请 求 。 CPU暂 时 中 断 原 来 的 事 务 A, 转 去 处 理 事 件 B。对 事 件 B处 理 完 毕 后 , 再 回 到 原 来 被 中 断 的 地 方 ( 即 断 点 ) ,称 为 中 断 返 回 。 实 现 上 述 中 断 功 能 的 部 件 称 为 中 断 系 统 ( 中断 机 构 ) 。 随 着 计 算 机 技 术 的 应 用 , 人 们 发 现 中 断 技术 不 仅 解 决 了 快 速 主 机 与 慢 速 I/O设 备 的 数 据传 送 问 题 , 而 且 还 具 有 如 下 优 点 : 分 时 操 作 。 CPU可 以 分 时 为 多 个 I/O设 备服 务 , 提 高 了 计 算 机 的 利 用 率 ;实 时 响 应 。 CPU能 够 及 时 处 理 应 用 系 统 的随 机 事 件 , 系 统 的 实 时 性 大 大 增 强 ;可 靠 性 高 。 CPU具 有 处 理 设 备 故 障 及 掉 电等 突 发 性 事 件 能 力 , 从 而 使 系 统 可 靠 性 提 高 。 80C51中 断 系 统 的 结 构 80C51的 中 断 系 统 有 5个 中 断 源 ( 8052有 6个 ) ,2个 优 先 级 , 可 实 现 二 级 中 断 嵌 套 。 1、 ( P3.2) 可 由 IT0(TCON.0)选 择 其 为 低 电 平有 效 还 是 下 降 沿 有 效 。 当 CPU检 测 到 P3.2引 脚 上出 现 有 效 的 中 断 信 号 时 , 中 断 标 志 IE0(TCON.1)置 1, 向 CPU申 请 中 断 。 2、 (P3.3) 可 由 IT1(TCON.2)选 择 其 为 低 电 平有 效 还 是 下 降 沿 有 效 。 当 CPU检 测 到 P3.3引 脚 上出 现 有 效 的 中 断 信 号 时 , 中 断 标 志 IE1(TCON.3)置 1,向 CPU申 请 中 断 。 3、 TF0( TCON.5) , 片 内 定 时 /计 数 器 T0溢 出 中 断 请 求 标 志 。 当 定 时 /计 数 器 T0发 生溢 出 时 , 置 位 TF0, 并 向 CPU申 请 中 断 。 4、 TF1( TCON.7) , 片 内 定 时 /计 数 器 T1溢 出 中 断 请 求 标 志 。 当 定 时 /计 数 器 T1发 生溢 出 时 , 置 位 TF1, 并 向 CPU申 请 中 断 。 5、 RI( SCON.0) 或 TI( SCON.1) , 串 行 口中 断 请 求 标 志 。 当 串 行 口 接 收 完 一 帧 串 行 数据 时 置 位 RI或 当 串 行 口 发 送 完 一 帧 串 行 数 据时 置 位 TI, 向 CPU申 请 中 断 。 二 、 中 断 请 求 标 志1、 TCON的 中 断 标 志IT0( TCON.0) , 外 部 中 断 0触 发 方 式 控 制 位 。当 IT0=0时 , 为 电 平 触 发 方 式 。当 IT0=1时 , 为 边 沿 触 发 方 式 ( 下 降 沿 有 效 ) 。IE0( TCON.1) , 外 部 中 断 0中 断 请 求 标 志 位 。IT1( TCON.2) , 外 部 中 断 1触 发 方 式 控 制 位 。IE1( TCON.3) , 外 部 中 断 1中 断 请 求 标 志 位 。TF0( TCON.5) , 定 时 /计 数 器 T0溢 出 中 断 请 求 标 志 位 。TF1( TCON.7) , 定 时 /计 数 器 T1溢 出 中 断 请 求 标 志 位 。 2、 SCON的 中 断 标 志RI( SCON.0) , 串 行 口 接 收 中 断 标 志 位 。 当 允许 串 行 口 接 收 数 据 时 , 每 接 收 完 一 个 串 行 帧 , 由硬 件 置 位 RI。 注 意 , RI必 须 由 软 件 清 除 。TI( SCON.1) , 串 行 口 发 送 中 断 标 志 位 。 当CPU将 一 个 发 送 数 据 写 入 串 行 口 发 送 缓 冲 器 时 ,就 启 动 了 发 送 过 程 。 每 发 送 完 一 个 串 行 帧 , 由 硬件 置 位 TI。 CPU响 应 中 断 时 , 不 能 自 动 清 除 TI,TI必 须 由 软 件 清 除 。 一 、 中 断 允 许 控 制 CPU对 中 断 系 统 所 有 中 断 以 及 某 个 中 断 源 的 开 放 和 屏蔽 是 由 中 断 允 许 寄 存 器 IE控 制 的 。3.1.3 80C51中 断 的 控 制 EX0(IE.0), 外 部 中 断 0允 许 位 ;ET0(IE.1), 定 时 /计 数 器 T0中 断 允 许 位 ; EX1(IE.2), 外 部 中 断 0允 许 位 ;ET1(IE.3), 定 时 /计 数 器 T1中 断 允 许 位 ;ES( IE.4), 串 行 口 中 断 允 许 位 ;EA (IE.7), CPU中 断 允 许 ( 总 允 许 ) 位 。 二 、 中 断 优 先 级 控 制 80C51单 片 机 有 两 个 中 断 优 先 级 , 即 可 实 现 二 级中 断 服 务 嵌 套 。 每 个 中 断 源 的 中 断 优 先 级 都 是 由 中 断优 先 级 寄 存 器 IP中 的 相 应 位 的 状 态 来 规 定 的 。PX0( IP.0) , 外 部 中 断 0优 先 级 设 定 位 ;PT0( IP.1) , 定 时 /计 数 器 T0优 先 级 设 定 位 ;PX1( IP.2) , 外 部 中 断 0优 先 级 设 定 位 ;PT1( IP.3) , 定 时 /计 数 器 T1优 先 级 设 定 位 ;PS ( IP.4) , 串 行 口 优 先 级 设 定 位 ;PT2 (IP.5) , 定 时 /计 数 器 T2优 先 级 设 定 位 。 PX0( IPH.0) , 外 部 中 断 0优 先 级 设 定 位 ;PT0( IPH.1) , 定 时 /计 数 器 T0优 先 级 设 定 位 ;PX1( IPH.2) , 外 部 中 断 0优 先 级 设 定 位 ;PT1( IPH.3) , 定 时 /计 数 器 T1优 先 级 设 定 位 ;PS ( IPH.4) , 串 行 口 优 先 级 设 定 位 ;PT2 (IPH.5) , 定 时 /计 数 器 T2优 先 级 设 定 位 。而 80C52单 片 机 有 四 个 中 断 优 先 级 , 即 可 实 现 四 级中 断 服 务 嵌 套 。 每 个 中 断 源 的 中 断 优 先 级 由 中 断 优先 级 寄 存 器 IP和 IPH中 的 相 应 位 的 状 态 来 规 定 的 。 同 一 优 先 级 中 的 中 断 申 请 不 止 一 个 时 , 则 有 中断 优 先 权 排 队 问 题 。 同 一 优 先 级 的 中 断 优 先 权 排 队 ,由 中 断 系 统 硬 件 确 定 的 自 然 优 先 级 形 成 , 其 排 列 如所 示 : 设 置 52单 片 机 的 4个 中 断 源 ,使 他 们 的 优 顺序 为 T1,INT1,INT0,T0.IPH = 0X08; PT1 = 1;IP = 0X40; PX1 = 1; 80C51单 片 机 的 中 断 优 先 级 有 三 条 原 则 :CPU同 时 接 收 到 几 个 中 断 时 , 首 先 响 应 优 先 级 别 最高 的 中 断 请 求 。正 在 进 行 的 中 断 过 程 不 能 被 新 的 同 级 或 低 优 先 级 的中 断 请 求 所 中 断 。正 在 进 行 的 低 优 先 级 中 断 服 务 , 能 被 高 优 先 级 中 断请 求 所 中 断 。 为 了 实 现 上 述 后 两 条 原 则 , 中 断 系 统 内 部 设 有 两个 用 户 不 能 寻 址 的 优 先 级 状 态 触 发 器 。 其 中 一 个 置 1,表 示 正 在 响 应 高 优 先 级 的 中 断 , 它 将 阻 断 后 来 所 有的 中 断 请 求 ; 另 一 个 置 1, 表 示 正 在 响 应 低 优 先 级 中断 , 它 将 阻 断 后 来 所 有 的 低 优 先 级 中 断 请 求 。 3.2 80C51单 片 机 中 断 处 理 过 程 中 断 响 应 条 件 中 断 源 有 中 断 请 求 ; 此 中 断 源 的 中 断 允 许 位 为 1; CPU开 中 断 ( 即 EA=1) 。以 上 三 条 同 时 满 足 时 , CPU才 有 可 能 响应 中 断 。3.2.1 中 断 响 应 条 件 和 时 间 3.3 80C51的 定 时 /计 数 器 实 现 定 时 功 能 , 比 较 方 便 的 办 法 是 利 用 单片 机 内 部 的 定 时 /计 数 器 。 也 可 以 采 用 下 面 三种 方 法 :软 件 定 时 : 软 件 定 时 不 占 用 硬 件 资 源 , 但 占 用 了CPU时 间 , 降 低 了 CPU的 利 用 率 。采 用 时 基 电 路 定 时 : 例 如 采 用 555电 路 , 外 接 必 要的 元 器 件 ( 电 阻 和 电 容 ) , 即 可 构 成 硬 件 定 时 电 路 。但 在 硬 件 连 接 好 以 后 , 定 时 值 与 定 时 范 围 不 能 由 软件 进 行 控 制 和 修 改 , 即 不 可 编 程 。采 用 可 编 程 芯 片 定 时 : 这 种 定 时 芯 片 的 定 时 值 及 定时 范 围 很 容 易 用 软 件 来 确 定 和 修 改 , 此 种 芯 片 定 时功 能 强 , 使 用 灵 活 。 在 单 片 机 的 定 时 /计 数 器 不 够 用时 , 可 以 考 虑 进 行 扩 展 。 3.3.1 定 时 /计 数 器 的 结 构 和 工 作 原 理 一 、 定 时 /计 数 器 的 结 构 定 时 /计 数 器 的 实 质 是 加 1计 数 器 ( 16位 ) , 由 高 8位 和 低 8位 两 个 寄 存 器 组 成 。 TMOD是 定 时 /计 数 器 的 工 作 方 式 寄 存器 , 确 定 工 作 方 式 和 功 能 ; TCON是 控 制 寄 存 器 , 控 制 T0、T1的 启 动 和 停 止 及 设 置 溢 出 标 志 。 二 、 定 时 /计 数 器 的 工 作 原 理 加 1计 数 器 输 入 的 计 数 脉 冲 有 两 个 来 源 ,一 个 是 由系 统 的 时 钟 振 荡 器 输 出 脉 冲 经 12分 频 后 送 来 ; 一 个是 T0或 T1引 脚 输 入 的 外 部 脉 冲 源 。 每 来 一 个 脉 冲计 数 器 加 1, 当 加 到 计 数 器 为 全 1时 , 再 输 入 一 个 脉冲 就 使 计 数 器 回 零 , 且 计 数 器 的 溢 出 使 TCON中TF0或 TF1置 1, 向 CPU发 出 中 断 请 求 ( 定 时 /计 数器 中 断 允 许 时 ) 。 如 果 定 时 /计 数 器 工 作 于 定 时 模式 , 则 表 示 定 时 时 间 已 到 ; 如 果 工 作 于 计 数 模 式 ,则 表 示 计 数 值 已 满 。 可 见 , 由 溢 出 时 计 数 器 的 值 减 去 计 数 初 值 才 是 加1计 数 器 的 计 数 值 。 设 置 为 定 时 器 模 式 时 , 加 1计 数 器 是 对 内 部 机 器 周 期计 数 ( 1个 机 器 周 期 等 于 12个 振 荡 周 期 , 即 计 数 频 率为 晶 振 频 率 的 1/12) 。 计 数 值 N乘 以 机 器 周 期 Tcy就是 定 时 时 间 t 。设 置 为 计 数 器 模 式 时 , 外 部 事 件 计 数 脉 冲 由 T0或 T1引 脚 输 入 到 计 数 器 。 在 每 个 机 器 周 期 的 S5P2期 间 采样 T0、 T1引 脚 电 平 。 当 某 周 期 采 样 到 一 高 电 平 输 入 ,而 下 一 周 期 又 采 样 到 一 低 电 平 时 , 则 计 数 器 加 1, 更新 的 计 数 值 在 下 一 个 机 器 周 期 的 S3P1期 间 装 入 计 数器 。 由 于 检 测 一 个 从 1到 0的 下 降 沿 需 要 2个 机 器 周 期 ,因 此 要 求 被 采 样 的 电 平 至 少 要 维 持 一 个 机 器 周 期 。 当晶 振 频 率 为 12MHz时 , 最 高 计 数 频 率 不 超 过 1/2MHz,即 计 数 脉 冲 的 周 期 要 大 于 2 s。 3.3.2 定 时 /计 数 器 的 控 制 80C51单 片 机 定 时 /计 数 器 的 工 作 由 两 个 特 殊 功能 寄 存 器 控 制 。 TMOD用 于 设 置 其 工 作 方 式 ;TCON用 于 控 制 其 启 动 和 中 断 申 请 。一 、 工 作 方 式 寄 存 器 TMOD 工 作 方 式 寄 存 器 TMOD用 于 设 置 定 时 /计 数 器 的工 作 方 式 , 低 四 位 用 于 T0, 高 四 位 用 于 T1。 其 格 式如 下 : GATE: 门 控 位 。 GATE 0时 , 只 要 用 软 件 使 TCON中 的TR0或 TR1为 1, 就 可 以 启 动 定 时 /计 数 器 工 作 ; GATA 1时 ,要 用 软 件 使 TR0或 TR1为 1, 同 时 外 部 中 断 引 脚 或 也 为 高 电平 时 , 才 能 启 动 定 时 /计 数 器 工 作 。 即 此 时 定 时 器 的 启 动 多了 一 条 件 。 :定 时 /计 数 模 式 选 择 位 。 0为 定 时 模 式 ; =1为 计 数 模 式 。M1M0: 工 作 方 式 设 置 位 。 定 时 /计 数 器 有 四 种 工 作 方 式 ,由 M1M0进 行 设 置 。C/T C/TC/T 二 、 控 制 寄 存 器 TCON TCON的 低 4位 用 于 控 制 外 部 中 断 ,已 在 前 面 介 绍 。 TCON的 高 4位 用 于控 制 定 时 /计 数 器 的 启 动 和 中 断 申 请 。 其 格 式 如 下 :TF1( TCON.7) : T1溢 出 中 断 请 求 标 志 位 。 T1计 数 溢 出 时 由 硬 件 自动 置 TF1为 1。 CPU响 应 中 断 后 TF1由 硬 件 自 动 清 0。 T1工 作 时 , CPU可 随 时 查 询 TF1的 状 态 。 所 以 , TF1可 用 作 查 询 测 试 的 标 志 。 TF1也 可以 用 软 件 置 1或 清 0, 同 硬 件 置 1或 清 0的 效 果 一 样 。TR1( TCON.6) : T1运 行 控 制 位 。 TR1置 1时 , T1开 始 工 作 ; TR1置0时 , T1停 止 工 作 。 TR1由 软 件 置 1或 清 0。 所 以 , 用 软 件 可 控 制 定 时 /计 数 器 的 启 动 与 停 止 。TF0( TCON.5) : T0溢 出 中 断 请 求 标 志 位 , 其 功 能 与 TF1类 同 。TR0( TCON.4) : T0运 行 控 制 位 , 其 功 能 与 TR1类 同 。 3.3.3 定 时 /计 数 器 的 工 作 方 式 一 、 方 式 0 方 式 0为 13位 计 数 , 由 TL0的 低 5位 ( 高 3位 未 用 ) 和 TH0的 8位 组 成 。 TL0的 低 5位 溢 出 时 向 TH0进 位 , TH0溢 出 时 ,置 位 TCON中 的 TF0标 志 , 向 CPU发 出 中 断 请 求 。 定 时 器 模 式 时 有 :N t/ Tcy 计 数 初 值 计 算 的 公 式 为 :定 时 器 的 初 值 还 可 以 采 用 计 数 个 数 直 接 取 补 法 获 得 。计 数 模 式 时 , 计 数 脉 冲 是 T0引 脚 上 的 外 部 脉 冲 。13X=2 -N门 控 位 GATE具 有 特 殊 的 作 用 。 当 GATE=0时 , 经 反 相 后 使或 门 输 出 为 1, 此 时 仅 由 TR0控 制 与 门 的 开 启 , 与 门 输 出 1时 , 控 制 开 关 接 通 , 计 数 开 始 ; 当 GATE=1时 , 由 外 中 断 引脚 信 号 控 制 或 门 的 输 出 , 此 时 控 制 与 门 的 开 启 由 外 中 断 引脚 信 号 和 TR0共 同 控 制 。 当 TR0=1时 , 外 中 断 引 脚 信 号 引 脚的 高 电 平 启 动 计 数 , 外 中 断 引 脚 信 号 引 脚 的 低 电 平 停 止 计数 。 这 种 方 式 常 用 来 测 量 外 中 断 引 脚 上 正 脉 冲 的 宽 度 。 16X=2 -N 二 、 方 式 1 方 式 1的 计 数 位 数 是 16位 , 由 TL0作 为 低 8位 、 TH0作 为 高 8位 , 组 成 了 16位 加 1计 数 器 。计 数 个 数 与 计 数 初 值 的 关 系 为 : 8X=2 -N 三 、 方 式 2 方 式 2为 自 动 重 装 初 值 的 8位 计 数 方 式 。 工 作 方 式 2特 别 适 合 于 用 作 较 精 确 的 脉 冲 信 号 发 生 器 。 计 数 个 数 与 计 数 初 值 的 关 系 为 : 四 、 方 式 3 方 式 3只 适 用 于 定 时 /计 数 器 T0, 定 时 器 T1处 于 方 式 3时 相 当于 TR1=0, 停 止 计 数 。 工 作 方 式 3将 T0分 成 为 两 个 独 立 的 8位 计 数 器 TL0和 TH0 。 3.3.4 定 时 /计 数 器 应 用 举 例 初 始 化 程 序 应 完 成 如 下 工 作 :对 TMOD赋 值 , 以 确 定 T0和 T1的 工 作 方 式 。计 算 初 值 ,并 将 其 写 入 TH0、 TL0或 TH1、 TL1。中 断 方 式 时 , 则 对 IE赋 值 , 开 放 中 断 。使 TR0或 TR1置 位 , 启 动 定 时 /计 数 器 定 时 或 计 数 。 例 利 用 定 时 /计 数 器 T1的 方 式 1, 产 生 10ms的 定 时 ,并 使 P1.0引 脚 上 输 出 周 期 为 20ms的 方 波 , 采 用 中断 方 式 , 设 系 统 时 钟 频 率 为 12 MHz。解 : 1、 计 算 计 数 初 值 X:由 于 晶 振 为 12 MHz, 所 以 机 器 周 期 Tcy为 1 s。所 以 :N t/ Tcy 10000/1 10000X 65536 10000 55536 D8F0H即 应 将 D8H送 入 TH0中 , F0H送 入 TL0中 2、 求 T1的 方 式 控 制 字 TMOD: M1M0=01, GATE=0, C/T=0, 可 取 方 式 控 制字 为 01H; 1、 利 用 定 时 /计 数 器 T0从 P1.0输 出 周 期 为 1s的 方 波 ,
展开阅读全文