手把手教你学单片机(五).pdf_第1页
手把手教你学单片机(五).pdf_第2页
手把手教你学单片机(五).pdf_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

据移 【套 件 供 应 】 教你学单片机 ( 五 ) 一 周 兴 华 逻 辑 运 算 指 令 逻 辑 操 作 类 指 令 共 有 2 5 条 , 包 括 与 、 或 、 清 除 、 求 反 、 左 右 移 位 等 逻 辑 操 作 按 操 作 数 可 划 分 为 单操 作 数 和双 操 作 数 两 种 , 单操 作 数是 专 门对 累 加 器 A进 行 的 逻 辑 操 作 , 这 些 操 作 主要 是 清 零 、 求 反 、 左 右移 位 等 ,操 作 结 果 保 存 在 累 加 器 A 中 双操 作 数 主 要 是 累 加 器 A 和第 二 操 作 数 之 问 执 行 逻 辑 与 、或 和 异 或 操 作 , 第 = 操 作 数 可 以 是立 即 数 , 也 可 以 是 内 部 数 据 存 贮 器 中 的 R n、 片 内 数 据 RAM 单 元 、 S F R 中 内 容 。 其 对 应 的 寻址 方 式 是 : 寄 存 器 、 寄存 器 间址 、 直 接 寻 址 。 逻 辑 操 作 的结 果 保 存 在 A 中 。也 可 将 直 接 寻 址 单 元 作 为第 一 操 作 数 和立 即 数 , 累加 器 A执行逻辑 与 、 或和异或 操作 , 结果l 存在直接寻址单元 中。 1 1累 加 器 A 取 反 指 令 : C P L A表 示 把 累 加 器 内 容 求 反 后 送 人 累 加 器 A 中 1 2 累 加 器 A 清 零 指 令 : C L R A 表 示 把 立 即 数 0 0 H 送 入 累 加 器 A 中 】 3逻 辑 “ 与 ” 指 令 : A NL A, Rn 表 示 累 加 器 A 中 的 内 容 和 寄 存 器 Rn中 内容 相 “ 与 ” , 所得 结果放 累 加器 A 中 ANL A, d i r e r , t 表 示 累 加 器 A 中 的 内 容 和 直 接 寻 址 单 元 d i r e c t 中 内容 相 “ 与 ” 所 得 结 果 放 累 加 器 A 中 。 ANL A,Rj 表 示 累加 器 A 中 的 内 容 和 寄 存 器 Ri中 内 容 作 为地 址 的单元 内容 相 “ 与” 所得结I 果 放 累 加 器 A 中 AN L A, # d a t a 表 示 累加 器 A J 中的 内容 和 立 即 数 d a t a相 “ 与 ” , 【 所 得结果 放 累加器 A中 AN L e l i t a c t, A 表 示 直 接 寻 址 单 元 d i r e c t 中 内 容 和 累加 器 A 中 的 内 容 棚 “ 与 ” 所 得 结 果 放 d i r e c t 中 。 AN I d i r e c t , # d a t a 表 示 直 接 寻 址 单 元 d i r e c t中 内容 和 立 即 数 d a t a 栩 “ 与 ” , 所 得 结 果 放 d i r e c t中 。 4逻 辑 “ 或 ” 指 令 OR L A,Rn 表 示 累加 器 A 中 的 内 容 和 寄 存 器R n 中 内 容 相 “ 或 ” , 所 得 结 果 放 累加 器 A 中 。 ORL A,d i r e c t表 示 累 加 器 A 中 的 内 容 和 直 接 寻 址 单 元 d i r e c t 中 内 容 相 “ 或 ” , 所 得 结 果 放 累加 器 A 中 0RL A , Ri 表 示 累 加 器A 中 的 内 容 和 寄 存 器 Rj 中 内 容 作 为 地 址 的单 元 内容 相 “ 或 ” , 所 得 结 果 放 累 加 器 A 中 OR I A, # d a t a 表 示 累 加 器 A 中 的 内 容 和 立 即 数 d a t a相“ 或 ” , 所 得 结 果 放 累加 器 A 中 。 OR L d i r e c t , A 表 示 直 接 寻 址 单 元 d i r e c t 中 内容 和 累 加 器 A 中 的 内 容 相 “ 或 ” 所 得 结 果 放 d i r e c t中 。 0 RL d i r e c t d a t a表 示 直 接 寻 址 单 元 d i r e c t中 内容 和立 即 数 d a t a 相 “ 或 ” , 所 得 结 果 放 d i r e c t中 5 逻 辑 “ 异 或 ” 指 令 XRL A, Rn 表 示 累 加 器 A 中 的 内 容 和 寄 存 器 R n 中 内 容 相 “ 异 或 ” , 所 得 结 果 放 累加 器 A 中 。 XR L A,d i r e c t表 示 累加 器 A 中 的 内 容 和 直 接 寻 址 单 元 d i r e c t 中 内容 相 “ 异 或 ” 所 得 结 果 放 累加 器 A 中 XR L A,Ri 表 示 累 加 器 A 中 的 内 容 和 寄 存 器 Ri 中 内 容 作 为 地 址 的 单 元 内 容 相 “ 异 或 ” , 所 得 结 果 放 累加 器 A 中 。 XRL A # d a t a 表 示 累 加 器 A 中 的 内 容 和 立 即 数 d a t a相“异 或 ” , 所 得 结 果 放 累 加 器 A 中 XI I _ d i r e c t , A 表 示 商 接 寻 址 单 元 d i r e c t中 内 容 和 累 加 器 A 中 的 内 容 相“ 异 或 ” , 所 得 结 果 放 d i r e c t中 。 XRL d i r e c t , # d a t a 表 示 直 接 寻 址 单 元 d i r e c t中 内 容 和 立 即 数 d a t a相“ 异 或 ” , 所 得 结 果 放 d i r e c t 中 6 循 环 移 位 指 令 RL A 累 加 器 A 内 的 内 容 左 环 移 Rl RL C A累 加 器 A 内 的 内 容 连 同 进 位 标 志 C Y 左 环 移 。 P Lr RR A 累 加 器 A 内 的 内 容 右 环 移 。 RRC A 累 加 器 A 内 的 内 容 连 同进 位 标 志 C Y 右 环 移 RR C A_ 三 F 7 累 加 器 半 字 节 交 换 指 令 S WA P A 交 换 累 加 器 A 中 内 容 的 高 、 低 两 个 半 字 节 下 面 我 们 做 个 实 验 , 设 A 的 内 容为0 C3 H, R0 的内 容为 0 AAH,执 行 取 反 、 “ 与 ”、 “ 或 ” 、 “ 异 或 ” 指 令 ( AN L、 O RL、 XRL) 后 , 将 结 果 分 别 送 P 0 口 P 3 口显 示 。 在 我 的 文 档 中 建 立 一 个 文 件 目 录 ( S 7) , 然 后 在 Ke i l 5 1开 发 环 境 中 建 立 一 个 S 7 u v 2的 工 程 项 目 最 后 建 立 源 程 序 文 件 ( s 7 a s t Y 1 ) 。输 入 以下 程 序 : 电子制作 2 0 0 3年第 5期一2 3 维普资讯 序号 :1 O R G H: 2 Ll MP MAI N; 3 0RG 03 0 H: 4 MA I N: MO V A , # 0 C3 1 k 5 MOV Rn# 0AAI i ; 6 CP L A: 7 MI V I A: 8 MOV A # OC 3H; 9 ANL A R幔 l 0 M( ) V J , I A: M0V A# 0 C3 H; I 2 0RL A 肿 : I 3 MOV P 2 且 : l 4 M0V C3 H; l 5 XRL A, R0 ; I 6 MOV P 3 A: I 7 A CAL L DEL ; 1 8 A J MP MAI N: I 9 DEL:M0V R 7 # OFF H; 2 0 D E I I : Mn V R 6 j 0 F F H ; 2 1 D E I l2 :M0 V R 5 l 堋 】 F H ; 2 2 D F 13: D J N Z R 5 D E I j: 2 3 【 NZ R6 D EI 2 ; 2 4 D J N Z R 7 DE l L 】 : 2 5 RET : 2 6 E D 编 译 通 过 后 , 将 其 烧 录 到 8 9 C 5 1芯 片 中 ,将 芯 片插 人 到 S 1型 L E D输 出试 验 板 上 , 住 S l实验 板 上 通电 运 行 后 P o 口 的 输 出 为 1 3 01 I 1 1 0 0 , Pl口 的输 出 为 1 O 0 0 0 叭0, P 2 口的输 出 为 I l I O I O 1 1 1 , 3口 的 输 出 为 OI 1 01 0 0 1 。这 个 结果 是 否正 确 ? 让 我 们 做 一 下 二 进 制 运 算 , C 3 H = l 1 o 0 0 0 l 1 B, 取 反 后 为 o 0 1 1 1 1 ( 幻B, 故 P 0口输 出 确 ; C 3 H =I 1 l 1 B与 从 H : 1 O 1 0 1 0 1 0 H相 “ 与” 后 为 : l 1 0 0 001 1 B 1 01 0l Ol 0B 1 ( K ) O 0 0 J O B 转 换 成 l 6进 制 后 即 为 8 2 H Pl口输 出 也 正 确 ; C 3 H =l 1 O O 0 0I l B与A AH = 1 0 1 0l O 1 O B市 H “ 或 ” 后 为 : 1 1 O O OO1 1 B V 1 0l Ol 01 0 B lll O】 O11 B 转 换 成 l 6进 制 后 即 为 EB H P 2口输 山 正 确 ; C3 H=I】 O O O O1 1 B AAH= l Ol 0 1 01 0 B相 “ 异 或 ” 后 为 : l l 0 00 0II B 4 - I l ( ) I n1 ) l n B 01 1 O1 0 01 B 转换 成 1 6进制 后即 为 6 9 H 一 2 4一电子制作 2 0 0 3年 第 5期 P 3 u输 出 同 样 也 正确 ; 甩 软 件 进 行 模 拟 仿 真 后 , P ( P 3输 出 结 果 见 图 l 豢 一 囊 我 们 对 程 序 进 行 解 释 序号 l ( 程序解释, 以下同) : 程序开始 序号2 : 跳转到M A I N主程序处。 序 呼3 : 主程序 MA l N从地址 加3 0 H开始 序 4 : 累加器 A载人初值( C 3 H) 。 序号 5 寄存器 R 0载人初值 ( A A H) 。 序号 6 : 累加器 A中的内容取反 序号7 : 将 累加器 A中的内容持送给 P 0口观察。 序 8 : 累加器 A重戴初值 ( C 3 1 I ) 序号9 : 累 li 器A中内容和奇存器R 0中内容 相“ 与” 所得结 果送 A 序号 1 0:将 累加器 A中的 内容传送给 P l口 观 察 序 1 I : 累加器A重藏初值( C 3 H ) 。 序号 l 2 :累加器 A叶 | 内容和寄存器 R O中内 窬相 或” 所得结米送 A 序号 1 3 :将 累加器 A中的内择传送给 P 2 观 察 序号 I 4 : 累加 器 A重载初值 ( C 3 I t ) , 席号 I 5 :累加器 A r 内存和寄存 器 R O中内 容相“ 异或 ” 所得结果送 A 。 序 l 6 :将 累加器 A中的内容传送给 P 3口 观 察 序 号 l 7 : 调用延时子程序 , 维持发光管点亮 序号 l 8 : 转到标号 MA I N处进行循环运行。 序号 l 9 2 5 : 延叫 于程序 序号 2 6 : 程序结束 下 面 再 做 个 实 验 , 要 求 将 累 加 器 A 中 的 低 4位 通 过 P 】口 的 高 4 位 输 出( 假 定A 中 的 内 容 为 5 9 H) 。 在 我 的 文 档 中 建 立 一 个 文 件 目录 ( S 8 ) , 然 后 建 立 一 个 S 8 u v 2 的 J : 程 项 目 , 最 后 建 立 源 程 序 文 件 ( S 8 a s I i l ) 输 人 下 面 的 程 序 : 序 呼: 1 OR G 0 0 0 O H : 2 L JMP MAI N; 3 ORG 0 3 0 H; 4 MAI N: MOV A, # 5 9H; 5 ANL A 加 F H: 6 S W AP A: 7 ANI PI 堋 F H: 8 0RL PI A: 9 A C A I D E I 4 l ( AJ MP MAI N: 1 I DEL :MOV R7# OF FH: I 2 DEI 1 : MOV R6 # O F FH; I 3 DE| 2: MOV RS # OI FH; l 4 D E L 3 : D J N Z R 5 D E L 3 ; 1 5 D J NZ R6,DEL2 ; I 6 D J NZ R7 ,DELl ; I 7 RE T; 1 8 END 编 译 通 过 后 , 将 其 烧 录 到 8 9 C 5 1芯 片 中 将 芯 片 插 人 到 S 1 型 L E D 输 出 试 验 板 上 , 在 S 1实 验 板 上 通 电 运 行 后 , P1口 的 输 出 为 1 0 0 l 1 l 1 l , 即 P1 6、 P 1 5所 接 的 发 光 管 点 亮 。 图 2为 仿 真 的结 果 。 我们 对程 序 进行 分 析解 释一 下 。 序号 1 ( 程序解释, 以下同) : 程序开始 序号2 : 跳转刊 M A I N主程序处 序号 3 : 主程序 MA I N从地址 o 0 3 0 H开始 。 序号 4: 将立即数 5 9 H送人 累加器 A中。 序号 5 : A 巾的内容 5 9 H和立即数 0 F H相 与 ( 屏蔽高半字节) 结果保存在累加器 A中。 序号 6 : 累加器 A中高 、 低半字节交换 。 序号 7: P 1口内容和立即数 0 F H相 与 ( 清除 高四位 ) 序 号 8 :将 P 1门内容和 累加器 A中内容相” 或 ( 即将 A的高半字 节送 P 1口) 序号 9: 调用延时 于程序 维持发光管点亮。 序号 l O: 跳转到标 呼MA IN 处进行循环运行 。 序号 l 】 一 j 7 : 延时 子程序 序号 1 8 : 程序结束 最后 我 们再 用 循 环移 位 指 令 设 计 一 组 流 水 灯 循 环 运 行 。 在 我 的 文 档 中 建 立 一 个 文 件 目录 ( s 9 ) 然 后 建 立 一 个 s 9 u v 2 的 3 2 程 项 目 , 最 后 建 立 源 程 序 文 件 ( S 9 a s m) 。 输 人 下 面 的 程 序 : 序号 : I O R G 0 0 0 O H; 2 UMP MA IN ; 3 ORG 0 3 0 H; 4 MAI N:MOV R0# 08 H; 5 M0V A # O F EH; 6 P L AY:RR A: 7 MOV F O , A; 8 AC AL L D Ek 9 D J N Z R n P L A Y : l 0 A J MP MAI N 1 I DEL : MOV R7 , # OF FH; 维普资讯 有 的 P l C单 片 机 , 如 P l c l 6 F 8 4、 l 6 2 ) ( 、 1 6 7 X 的 片内 有 E 2 pR OM ( 又 可 写 成 E ERO M) 数 据 存 储 器 。 这 些 E _甲R0M 在 单 片 机 正 常 工 作时 是 可 读 写的但 E R OM 并 未 直 接 映 象 在 P I C 单 片 机内部 资源数 据 存储 器 中 , 因此 对 它 们 不 能 用 指 令 直 接 寻 址 访 问 , 只 能 通 过 专 用 寄 存 器 ( 又 称 特 殊 功 能 寄 存 器 ) 进 行 间 接 寻 址 操 作 。 P I C 单 片 机 片 内 E ROM 可 用 于寄存 器 储存 频 繁更新 的值 , 如 芯 片 突 然 掉 电 , 可 利 用 E 2 P ROM 保 存 指 定 寄 存 器 的 数 据 , 使 数 据 不 因 外 部 供 电 突 然 中 断 而 丢 失 ; 利 用 E R OM 还 可 限 制 芯 片 程 序 使 用 的 次 数 , 防 止 程 序 被 别 人 复 制 所 以 片 内 E ROM 是 很 有 用 处 的 。 一 、用 于 PR0M 读 写 操 作 的 专 用 寄 存 器 在 使 用P I C 单 片 机 片 内 E P R0M 读 写 时 , 正 如 操 作 片 内 其 它 专 用 模 块 功 能 一 样 必 须 用 相 关 的 专 用 寄 存 器 才 能 完 成 其 功 能 。 片 内 E P R 0M 用 到 的专 用 寄 存 器 除 前 面 常 用 的 S _ r A TU S ( 状 态 寄 存 器 ) 、 I NT C ON ( 中 断 控 制 寄 存 器 ) 外 ,还 应 增 加 以 下 4个 专 用 寄 存 器 。 1 、 E RoM地 址寄 存器 EEADR E EADR 是 8 位 的 寄 存 器 , 用 于 存 放 指 向 片 内 E R0M 的 地 址 , 最 大 可 寻 址2 5 6 个 字 节 ( 2 5 6 8位 ) 。 由 于 不 同 型 号 的 P l C 单 片 机 , 其 片 内 Ez P RoM 的 容 量 不 等 ,所 以 指 向 E 2 p ROM 的 E EAD R 地 址 ,不 一 定 全 部 被 占 用 。 写 入 EE ADR 的 地 址 时 , 是 按 O O H 开 始 直 到 E = P R OM 的 最 大 容 量 为 止 , 例 如 P I C I 6 F 8 4片 内 E RO M( 数 据 存 储 器及其 应用 储 器 ) 为 6 4 x 8位 , 所 以 其 地 址 应 为 0 0 H 3 F H, 但 P I C I 6 F 8 7 7 8 7 6片 内 的 E P ROM 有 2 5 6 X8位 , 此 时 指 向 E2 p ROM 的 地 址 E EADR 被 全 部 占 用 。 为 了 降 低 片 内 E 2 p ROM 操 作 功 耗 , 当 间 接 寻 址 时 ,凡 E E ADR 未 被 译 码 的 最 高 位( 如 P I C 1 6 F 8 4 的 D 7、 1 3 6 位 ) , 可 用 位 清 零 指 令 B CF将 其 清 零 。 2、 E ROM数据寄 存器 E EDATA EE DAT A 是8位 的 寄 存 器 ,用 于 存 放 片 内 E 2 P R0 M 读 写 的 数 据 。 当 对 E ROM 写 数 据 时 , 应 先 把 数 据 存 入 E E DAT A 中 ; 当 读 E P R OM 数 据 时 , C P U会 把 已 读 出 的 数 据 存 人 E EDAT A、 再 由 用 户 程 序 送 到 指 定 的 寄 存 器 。 3 、 E2 1 , RoM控制寄存器 EEC0 N1 E E CON I用 于E 2 P R0M 1 2 DELl : MOV R6 堋 F FH; 1 3 DE L2 : MOV R5 加 l F H; 1 4 D E L 3 : D J N Z R 5 ,D E L 3 ; I 5 D J NZ R6 DEL 2 ; 1 6 I) J NZ R7 , DELl : 1 7 RET; l 8 END 编 译 通 过 后 , 将 其 烧 录 到 8 9 C 5 1芯 片 中 ,将 芯 片 插 人 到 S 1 型 L ED 输 出 试 验 板 上 , 在 s 1实 验 板 上 通 电 运 行 后 , F 0 口 的 输 出 状 态 为 : 一 个 发 光 管 点 亮 并 右 移 循 环 , 形 成 流 水 灯 。 我 们 对 程 序 进 行 分 析 解 释 一 下 。 序号 1 ( 程序解释 以下同) : 程 序开始。 序号 2 : 跳转到 MA I N主程序处。 序号 3 : 主程序 MAI N从地址 0 0 3 0 H开始 。 序号4 : 将立即数 0 8 H送寄存器R 0中 序号5 : 将立即数 F E H送累加器 A中。 序号 6: 累加器 A珥 J 内容右循环一位 半 导7 : 将 A中内容进 【 l 0口显示 。 序号 8 : 嗣用延时子程序 维持发光管点亮 序号 9 : H l 】 中内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论