<4D6963726F736F667420576F7264202D203130B5A5C6ACBBFACAB5D1E9D6B8B5BCCAE92E646F63>



Similar documents
DPJJX1.DOC

微處理機期末專題

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

untitled

CA24064B LED LED LED EL EL CCFL EL CCF /

单片机原理及应用实验指导书.doc

12232A LED LED LED EL EL CCFL EL CCF

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

D/A DAC ( 1us) (10~20 ) DAC0832 1

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

專題最終版.doc

W77E58中文手册

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

Microsoft Word - 專題封面.doc

untitled

1 TPIS TPIS 2 2

单片机学习教程

目 录


TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

学习MSP430单片机推荐参考书

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

Microsoft Word - P3.doc

PowerPoint 簡報

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

Ps22Pdf

51 C 51 isp 10 C PCB C C C C KEIL

µPSD3000 系列

() () () () () () () () DDRAM () II

电 阻 应 变 式 传 感 器 是 将 被 测 量 的 力, 通 过 它 产 生 的 金 属 弹 性 变 形 转 换 成 电 阻 变 化 的 元 件 由 电 阻 应 变 片 和 测 量 线 路 两 部 分 组 成 电 阻 应 变 片 产 生 的 误 差, 主 要 来 源 于 温 度 的 影 响, 本

逢 甲 大 學

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

R/W

Microsoft PowerPoint - chap4.ppt

dfgdafhdafhdafhdafh

呕血推荐51程序库,希望大家能资源共享

CH559指令周期.doc

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

??????????????????

untitled

勤 學 * 卓 越 * 快 樂 成 長 本 校 在 老 師 群 策 群 力 共 同 討 論 下, 型 塑 了 學 校 願 景 : 勤 學 卓 越 快 樂 成 長 ( 一 ) 勤 學 運 用 真 的 力 量 培 養 勤 學, 以 語 文 教 為 基 礎 紮 根 ( 二 ) 卓 越 利 用 美 的 感

Microsoft PowerPoint - chap5.ppt

Microsoft Word - FM12232C.doc

untitled

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

7688使用手冊V10.doc

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc

<313034A4BDB67DA4C0B56FBA5DB3E65FBD64A5BB2E786C7378>

Ⅰ Ⅱ 2 Ⅲ 2 Ⅳ 耀

1

诺贝尔生理学医学奖获奖者

第5章:汇编语言程序设计

Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - FG12232A.doc

Ps22Pdf

! *!"#$%&'()*+,-./#01 6, 8 6, 8 6, 8 8!"# ( / )!"# ( / )!"# ( / )! ( ) 3SB3!" Ø22mm!"# ( / ) 6, 8 6, 8 6, 8 8!"# ( / )!"# ( / )!"# ( ) 7, 10 7, 9 7, 8



该 奈 自 受 PZ 多 透 soc i e B t h y. y t is NA YL OR exp os ed t h a t b e i n g wh o res or sa in t es s e s we r e m ad e n b ot om. M ean wh i l e NA YL


untitled

SIGNUM 3SB3

因 味 V 取 性 又 鸟 U 且 最 大 罗 海 惜 梅 理 春 并 贵 K a t h l ee n S c h w e r d t n er M f l e z S e b a s t i a n C A Fe rs e T 民 伊 ' 国 漳 尤 地 视 峰 州 至 周 期 甚 主 第 应

微處理機

Microsoft Word - BL5372_UMAN_V1.1.doc

# " $ % $ # ( $ $ %% * $ %+ $, -., / ", 0, %, %%%%, " % 2 %% #. $ 3 *3 %45 6" %% 9: :" : "

Microsoft Word - 新建 Microsoft Word 文档.doc

粤社保函〔2013〕80号

幻灯片 1

第5章修改稿

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

Microsoft Word - ZX12232B.doc

计算机网络

2.181% 0.005%0.002%0.005% 2,160 74,180, ,000, ,500,000 1,000,000 1,000,000 1,000,000 2

从MCS51向AVR的快速转换.PDF

Microsoft PowerPoint - chap3.ppt

微型计算机原理及应用试题 机电96

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1. ( )( ) A. B. C. D. 2. ( )( ) A. : B. : C. : D. : 3. ( )( ) A. : B. : C. : D. : 1 D : 2

Ps22Pdf

Avision

:,,,, ( CIP ) /,. :, ISBN CIP ( 2001) : : 127, : : : ht t p: / / www. nwpup. com : :


第10章:CCP捕捉/比较/脉宽调制

目录

/ / (FC 3)...

2005.book

ICD ICD ICD ICD ICD

Microsoft PowerPoint - chap2.ppt

<4D F736F F D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

Microsoft PowerPoint - chap12.ppt

8051初学实验教程系列五.doc

Ps22Pdf

車在走天在看 PC前的三輪車日記

Persuasive Techniques (motorcycle helmet)


SIK) 者, 需 實 施 1 年 以 上, 經 體 格 檢 查 無 後 遺 症 者 5. 身 體 任 何 部 分 有 刺 青 紋 身 穿 耳 洞 者, 不 得 報 考, 各 項 檢 查 結 果 須 符 合 體 位 區 分 標 準 常 備 役 體 位 二 在 校 軍 訓 成 績 總 平 均 70 分

untitled

Transcription:

单 片 机 及 接 口 技 术 实 验 指 导 书 张 勇 编 计 算 机 与 通 信 工 程 学 院 信 息 与 通 信 工 程 系 2004.12 1 -

前 言 单 片 机 及 接 口 技 术 是 通 信 工 程 专 业 的 专 业 技 能 课 程, 在 专 业 知 识 结 构 体 系 中 具 有 十 分 重 要 的 地 位, 课 程 的 实 践 性 很 强, 学 习 必 须 理 论 和 实 践 并 重 为 配 合 单 片 机 及 接 口 技 术 课 程 的 理 论 教 学, 开 设 了 单 片 机 及 接 口 技 术 实 验 本 实 验 分 为 软 件 模 拟 部 分 和 系 统 仿 真 部 分, 使 同 学 们 在 计 算 机 上 编 辑 调 试 程 序, 掌 握 单 片 机 汇 编 程 序 的 编 写 技 能 和 调 试 能 力, 并 且 可 以 利 用 仿 真 器 看 到 应 用 系 统 的 运 行, 增 强 对 硬 件 系 统 的 感 性 认 识, 巩 固 课 堂 上 所 学 的 理 论 知 识 本 实 验 要 求 学 生 有 较 好 的 仪 器 使 用 能 力 和 硬 件 电 路 的 调 试 能 力, 希 望 同 学 们 在 做 实 验 的 同 时, 注 意 学 习 万 用 表 示 波 器 信 号 发 生 器 等 仪 器 的 正 确 使 用 方 法, 平 时 多 了 解 相 关 电 路 的 原 理 元 件 的 特 性 及 电 路 板 的 加 工 工 艺 方 面 的 知 识, 使 实 验 可 以 取 得 更 好 的 效 果 2

目 录 实 验 一 简 单 程 序 的 设 计 2 实 验 二 循 环 结 构 程 序 设 计 3 实 验 三 分 支 结 构 程 序 设 计 6 实 验 四 实 验 五 数 码 转 换 9 查 表 程 序 设 计 11 实 验 六 算 术 及 逻 辑 运 算 指 令 实 验 13 实 验 七 实 验 八 子 程 序 的 设 计 16 中 断 程 序 设 计 18 实 验 九 流 水 灯 21 实 验 十 键 盘 实 验 24 实 验 十 一 数 码 管 显 示 实 验 26 实 验 十 二 A/D 转 换 实 验 30 实 验 十 三 D/A 转 换 实 验 34 实 验 十 四 定 时 器 实 验 36 附 录 一 : 伟 福 仿 真 器 使 用 说 明 39 附 录 二 : WINMED 仿 真 器 使 用 说 明 48 3

实 验 一 简 单 程 序 的 设 计 一 实 验 目 的 1 熟 悉 伟 福 软 件 模 拟 器 的 基 本 使 用 方 法 2 学 习 调 试 程 序 的 方 法 3 学 习 用 连 续 和 单 步 方 式 运 行 程 序 4 掌 握 简 单 程 序 的 设 计 方 法 二 实 验 设 备 PC 机 与 伟 福 软 件 模 拟 器 三 实 验 内 容 1 拆 字 程 序 : 将 2000H 的 内 容 拆 开 高 位 送 2001H 的 低 位, 低 位 送 2002H 的 低 位, 2001H,2002H 的 高 位 清 0 2 拼 字 程 序 : 将 内 RAM 30H 和 31H 单 元 中 存 放 的 ASCII 码, 组 合 在 一 起 存 入 22H 单 元 3 求 R1,R0 中 存 放 的 16 位 二 进 制 数 的 补 数, 并 存 入 R3,R2 中 四 实 验 步 骤 1 双 击 伟 福 图 标, 打 开 伟 福 软 件 模 拟 器 2 选 择 File---New, 打 开 文 件 窗 口, 在 此 窗 口 中 输 入 所 编 的 程 序 : 3 选 择 File---Save, 保 存 文 件, 文 件 必 须 以 *.ASM 存 盘 4 选 择 项 目 --- 编 译, 将 汇 编 语 言 源 程 序 转 换 成 机 器 语 言 目 标 程 序 5 选 择 窗 口 ---CPU 窗 口, 观 察 SFR 的 状 态 --- 数 据 窗 口 ---DATA, 观 察 内 存 的 状 态, 注 意 确 定 工 作 寄 存 器 R0-R7 的 位 置 ---XDATA, 观 察 外 部 存 储 器 的 状 态 学 会 修 改 相 关 单 元 的 内 容 6 选 择 运 行 --- 全 速, 执 行 程 序, 点 击 停 止, 观 察 相 关 窗 口 内 容 选 择 运 行 --- 单 步, 单 步 运 行 程 序, 观 察 程 序 的 运 行 情 况, 注 意 观 察 相 关 窗 口 内 容, 结 合 流 程 图 理 解 程 序 执 行 过 程 五 实 验 报 告 要 求 1 写 出 实 验 源 程 序 和 执 行 结 果 2 说 明 程 序 在 软 件 模 拟 器 上 调 试 的 步 骤 4

一 实 验 目 的 实 验 二 循 环 结 构 程 序 设 计 1 熟 悉 相 关 的 指 令 及 应 用, 掌 握 简 单 程 序 的 设 计 方 法 2 理 解 典 型 循 环 程 序 的 结 构, 能 够 进 行 简 单 的 循 环 结 构 程 序 的 编 写 3 进 一 步 熟 悉 软 件 模 拟 器 的 基 本 使 用 方 法, 学 习 用 断 点 单 步 全 速 方 式 运 行 程 序 4 学 习 伪 指 令 的 使 用 二 实 验 内 容 和 要 求 学 会 设 定 循 环 结 构 的 初 始 状 态 循 环 次 数 以 及 循 环 体 等 尽 量 简 化 重 复 执 行 循 环 体 部 分 的 指 令, 注 意 循 环 参 数 的 修 改 和 循 环 条 件 的 判 断 观 测 程 序 的 执 行 过 程, 注 意 指 针 循 环 计 数 器 执 行 结 果 的 变 化 1 固 定 次 数 的 循 环 结 构 一 般 此 类 循 环 程 序 有 以 下 3 部 分 组 成 : (1) 置 循 环 初 值 : 设 置 循 环 开 始 时 的 指 针 循 环 次 数 等, 有 时 还 要 根 据 要 求 置 某 些 内 存 单 元 和 位 的 初 值 (2) 循 环 体 : 即 要 求 重 复 执 行 的 部 分 这 部 分 程 序 应 该 特 别 注 意, 应 尽 量 简 化 指 令, 因 为 它 要 重 复 执 行 许 多 次 (3) 循 环 控 制 部 分 : 它 包 括 指 针 的 修 改 和 循 环 计 数 器 判 断 两 部 分 例 1: 将 20H-2FH 数 据 搬 至 30H-3FH 单 元 分 析 : 这 个 程 序 要 完 成 从 一 个 单 元 取 数 放 至 另 一 个 单 元, 重 复 16 次, 我 们 用 R0 R1 来 分 别 表 示 取 数 和 放 数 的 地 址 指 针, 用 R2 来 做 循 环 计 数 器, 流 程 图 见 图 1-1, 程 序 如 下 : MOV R0,#20H ; 设 置 取 数 指 针 初 值 MOV R1,#30H ; 设 置 放 数 指 针 初 值 MOV R2,#10H ; 循 环 计 数 器 初 值 LOOP: MOV A,@R0 ; 循 环 体 MOV @R1,A INC R0 ; 修 改 指 针 INC R1 DJNZ R2,LOOP ; 控 制 部 分 END 2 次 数 不 固 定 的 循 环 结 构 有 时, 循 环 的 次 数 是 不 确 定 的, 一 般 设 有 某 种 结 束 标 志 或 结 束 条 件, 则 此 类 循 环 程 序 不 用 设 置 循 环 计 数 器, 只 在 每 次 操 作 时 判 断 结 束 条 件, 满 足 结 束 条 件 则 退 出 循 环 例 : 将 1000H 起 的 数 据 块 搬 至 20H 起, 结 束 标 志 为 #0F1H 分 析 : 此 题 中 循 环 次 数 未 知, 但 给 出 了 结 束 标 志, 用 DPTR 来 做 取 数 的 地 址 指 针, 每 次 搬 数 前 要 先 判 断 是 否 结 束 标 志, 不 是 则 搬, 是 结 束 标 志 则 退 出 循 环, 流 程 图 见 图 1-2, 程 序 如 下 : 5

MOV 40H,#10H MOV 41H,#00H MOV 42H,#20H MOV 43H,#0F0H LOOP: MOV DPH,40H MOV DPL,41H MOVX A,@DPTR CJNE A,#0F1H,XX LJMP XX XX: INC DPTR MOV 40H,DPH MOV 41H,DPL MOV DPH,42H MOV DPL,43H MOVX @DPTR,A INC DPTR MOV 42H,DPH MOV 43H,DPL LJMP LOOP OK: NO END 开 始 初 始 化 设 计 数 初 值 R2 #10H A @R0 @R1 A 修 改 地 址 指 针 INC R0 INC R1 开 始 初 始 化 R0 #20H DPTR #1000H 取 数 结 束 标 志 放 数 修 改 地 址 指 针 R2-1=0? 结 束 结 束 图 1-1 图 1-2 实 验 要 求 : 参 考 以 上 示 例 程 序, 按 以 下 要 求 编 写 程 序, 并 在 软 件 模 拟 器 上 运 行, 人 为 设 置 一 些 数 据, 观 察 程 序 运 行 和 结 果, 如 有 错 误, 单 步 运 行 找 出 错 误 原 因 6

并 修 改 ( 1) 将 20H-3FH 单 元 数 据 内 容 加 1 移 至 30H-4FH 单 元 中 (2) 把 20H-3FH 中 不 等 于 40(BCD 码 ) 的 数 搬 至 1000H 起 (3) 将 2000H 起 的 100 个 单 元 搬 到 2680H 开 始 的 单 元 三 实 验 报 告 要 求 1 根 据 实 验 要 求 的 题 目, 画 出 程 序 的 流 程 图, 给 出 最 终 源 程 序 2 观 察 数 据 窗 口 CPU 窗 口 中 数 据 的 变 化 过 程 记 录 实 验 过 程 中 遇 到 的 问 题 和 解 决 方 法 四 思 考 题 1 如 循 环 次 数 超 过 256 次, 循 环 计 数 器 如 何 设 置? 2 如 地 址 指 针 需 要 多 个, 用 R0 R1 DPTR 不 足 以 完 成, 怎 么 办? 是 否 可 以 用 R2 R3 来 做 地 址 指 针? 7

一 实 验 目 的 二 实 验 三 分 支 结 构 程 序 设 计 1 熟 悉 相 关 的 指 令 及 应 用, 掌 握 条 件 转 移 指 令 的 用 法 2 理 解 典 型 分 支 程 序 的 结 构, 能 够 进 行 简 单 的 分 支 结 构 程 序 的 编 写 3 更 进 一 步 熟 悉 伟 福 软 件 模 拟 器 的 基 本 使 用 方 法, 学 习 调 试 程 序 的 方 法 4 继 续 学 习 伪 指 令 的 使 用 实 验 内 容 和 要 求 分 支 结 构 程 序 设 计 也 是 最 基 本 的 程 序 设 计 技 术 在 实 际 的 程 序 设 计 中, 有 很 多 情 况 往 往 还 需 要 程 序 按 照 给 定 的 条 件 进 行 分 支 这 时 就 必 须 对 某 一 个 变 量 所 处 的 状 态 进 行 判 断, 根 据 判 断 结 果 来 决 定 程 序 的 流 向 在 编 写 分 支 程 序 时, 关 键 是 如 何 判 断 分 支 的 条 件 在 MCS 51 单 片 机 指 令 系 统 中 有 JZ(JNZ) CJNE JC(JNC) DJNZ 及 JB(JNB) 等 丰 富 的 控 制 转 移 指 令, 他 们 是 分 支 结 构 程 序 设 计 的 基 础, 可 以 完 成 各 种 各 样 的 条 件 判 断 分 支 常 用 的 分 支 结 构 有 以 下 几 种 : 开 始 1 统 计 例 1: 统 计 全 班 60 名 同 学 不 及 格 人 数, 设 置 计 数 初 值 成 绩 以 BCD 码 放 在 30H 起, 结 果 放 入 R7 和 地 址 指 针 MOV R0,#30H ZZ3: MOV R2,#3CH MOV R7,#00H MOV A,@R0 CJNE A,#60H, ZZ1 ZZ1: JNC ZZ2 INC R7 ZZ2: INC R0 DJNZ R2, ZZ3 2 排 序 例 2:30H-3FH 单 元 中 放 了 16 个 无 符 号 数, 按 从 大 到 小 的 顺 序 排 列 流 程 如 图 2-1 XX4: MOV R0,#30H MOV R1,#0FH CLR 01H XX3: MOV A,@R0 INC R0 MOV 40H,@R0 CJNE A,40H,XX1 XX1: JNC XX2 MOV @R0,A DEC R0 MOV @R0,40H 清 01H 标 志 位 R0 A R0+1 R0 40H A=40H? C=0? A R0 R0-1 40H R0 R0+1 置 01H 位 次 数 -1 0 01H=1 结 束 图 2-1 8

INC R0 SETB 01H XX2: DJNZ R1,XX3 JB 01H,XX4 3 分 类 例 3: 统 计 全 班 60 名 同 学 的 成 绩, 大 于 等 于 90 分 的 大 于 等 于 75 分 的 大 于 等 于 60 分 的 及 小 于 60 分 的 人 数, 分 别 放 入 R3 R4 R5 R6 中 XX8: XX1: MOV R0,#30H MOV R1,#3CH MOV R3,#00H MOV R4,#00H MOV R5,#00H MOV R6,#00H MOV A,@R0 CJNE A,#90H,XX1 JC XX2 INC R3 LJMP XX3 XX2: XX5: XX6: XX7: XX3: CJNE A,#75H,XX4 JC XX5 INC R4 LJMP XX3 CJNE A,#60H,XX6 JC XX7 INC R5 LJMP XX3 INC R6 INC R0 DJNZ R1,XX8 开 始 设 置 初 值 清 R3-R6 提 成 绩 90 75 60 R3+1 R4+1 R5+1 R6+1 修 改 指 针 次 数 -1 0 结 束 图 2-2 实 验 要 求 : 根 据 以 上 实 例 程 序, 按 以 下 要 求 编 写 程 序 (1) 全 班 30 个 人 的 成 绩 放 在 1000H 起, 统 计 及 格 和 不 及 格 的 情 况,30H 放 及 格 人 数,31H 开 始 放 成 绩,50H 放 不 及 格 人 数,51H 起 放 成 绩 (2) 1000H-1010H 单 元 中 放 了 16 个 无 符 号 数, 按 从 小 到 大 的 顺 序 排 列 (3) 统 计 全 班 30 名 同 学 的 成 绩 (20H 起 ), 大 于 等 于 90 分 的 大 于 等 于 75 9

三 实 验 报 告 要 求 四 分 的 大 于 等 于 60 分 的 及 小 于 60 分 的 人 数, 分 别 放 入 R3 R4 R5 R6 中, 找 出 成 绩 最 高 的 放 入 50H 起 的 单 元 1 根 据 实 验 实 例 程 序, 完 成 实 验 要 求 中 的 程 序 以 及 程 序 的 流 程 图 2 观 察 数 据 窗 口 中 数 据 的 变 化 过 程 记 录 实 验 过 程 中 遇 到 的 问 题 和 解 决 方 法 思 考 题 1 分 类 程 序 中, 如 何 设 计 判 断 的 次 序 使 90 分 75 分 60 分 合 理 的 归 档? 2 针 对 不 同 的 判 断 条 件, 相 应 的 流 程 图 应 如 何 正 确 画 出 以 使 程 序 的 编 写 更 为 清 晰? 10

B BMOV 实 验 四 数 码 转 换 一 实 验 目 的 1 学 会 二 进 制 BCD 码 及 ASCⅡ 码 间 相 互 转 换 的 方 法 2 进 一 步 加 强 循 环 程 序 的 使 用 二 实 验 内 容 和 要 求 二 进 制 用 0 和 1 两 个 数 码 表 示 数 的 大 小, 进 位 原 则 为 逢 二 进 一 用 以 B 结 尾 的 数 码 表 示 二 进 制 数 BCD 码 也 称 二 进 制 - 十 进 制 码 为 了 解 决 人 们 对 十 进 制 数 熟 悉 而 计 算 机 只 能 认 识 二 进 制 的 矛 盾, 在 计 算 机 输 入 输 出 数 据 时 往 往 采 用 二 进 制 形 式 表 示 十 进 制 的 数, 即 用 4 位 二 进 制 数 表 示 一 位 十 进 制 数 码 ASCⅡ 码 是 美 国 信 息 交 换 标 准 代 码 的 简 称 它 是 由 7 位 二 进 制 数 码 构 成,7 位 二 进 制 码 共 有 128 种 组 合 状 态, 可 表 示 0-9 十 进 制 数 码 10 个 小 写 字 母 52 个 及 其 它 符 号 等 例 1: 设 两 个 BCD 码 db1bdb0b 表 示 的 两 位 十 进 制 数 压 缩 存 于 R2, 其 中 R2 高 4 位 存 十 位, 低 4 位 存 个 位, 将 其 转 换 为 纯 二 进 制 码 并 存 入 20H 单 元 分 析 : 要 把 其 转 换 为 二 进 制 码 的 算 法 为 :(db1bdb0b)bbcdb=db1b 10+dB0B 实 现 该 算 法 编 写 的 流 程 图 及 子 程 序 如 下 : 开 始 源 程 序 为 : MOV A,R2 ;(A) (db1bdb0b)bbcd A,#0F6 ; 取 高 位 BCD 码 db1 SWAP A ;(A)=0dB1BH MOV B,#0AH ;(B) 10 MUL AB ;d 10 MOV R3,A ;R3 暂 存 乘 积 结 果 MOV A,R2 ;(A) (db1bdb0b)bbcdb ANL A,#0F ; 取 低 位 BCD 码 db0b ADD A,R3 ;db1b 10+dB0B MOV 20H,A ; 保 存 转 换 结 果 取 高 位 BCD 码 db1b db1b 10 放 入 R3 取 低 位 BCD 码 db0b db1b 10+dB0B 将 结 果 存 入 20H 例 2: 将 40H 里 的 二 进 制 数 转 化 为 BCD 码 并 放 入 41H,42H,43H 单 元 分 析 : 此 题 目 为 上 例 的 逆 过 程 源 程 序 如 下 : MOV B,40H MOV B,#100 DIV AB ; 求 得 百 位 数 据 MOV R0,#41H ; 放 数 指 针 MOV @R0,A ; 百 位 放 入 41H INC RO MOV A,#10 XCH A,B DIV AB ; 求 得 十 位 数 据 SWAP A 结 束 11

ADD A,B MOV 43H,A ; 余 数 放 入 43H 实 验 要 求 : 1 根 据 以 上 实 例 编 写 程 序 : 设 双 字 节 压 缩 BCD 码 放 入 R5( 千 位 百 位 ) R4 ( 十 位 个 位 ), 将 其 转 化 为 二 进 制 数 放 入 20H-21H 单 元 (20H 放 高 字 节, 21H 放 低 字 节 ) 2 在 片 内 RAM30H-34H 单 元 输 入 BCD 码 数, 编 制 循 环 程 序 将 30H-34H 单 元 内 的 BCD 码 数 转 换 为 ASCⅡ 码, 并 存 入 40H 为 首 地 址 的 单 元 中 数 字 ASCⅡ 码 对 照 表 如 下 : 数 码 0 1 2 3 4 5 6 7 8 9 ASCⅡ 码 30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 3 在 软 件 模 拟 器 上 运 行 以 上 程 序, 人 为 地 设 置 一 些 数 据, 观 察 记 录 运 行 结 果, 如 有 错 误, 单 步 运 行 找 出 错 误 原 因 并 修 改 三 实 验 报 告 要 求 根 据 实 验 要 求 的 题 目 画 出 程 序 的 流 程 图, 给 出 最 终 源 程 序, 并 认 真 完 成 实 验 总 结 四 思 考 题 1 BCD 码 主 要 应 用 场 合 有 哪 些? 它 的 位 权 是 如 何 确 定 的? 2 如 果 多 字 节 的 转 换, 用 加 权 方 法 和 用 运 算 方 法 哪 个 更 好? 12

实 验 五 查 表 程 序 设 计 一 实 验 目 的 1 熟 悉 查 表 指 令 (MOVC) 2 掌 握 查 表 程 序 的 设 计 方 法 和 步 骤 二 实 验 内 容 和 要 求 查 表, 就 是 根 据 变 量 x, 在 表 格 中 查 找, 使 y=f(x) 单 片 机 应 用 系 统 中, 查 表 程 序 是 一 种 常 用 程 序, 它 被 广 泛 应 用 于 LED 显 示 器 控 制, 打 印 机 打 印 以 及 数 据 补 偿 计 算 转 换 等 功 能 程 序 中 在 单 片 机 应 用 系 统 中, 查 表 是 一 个 很 有 用 的 程 序, 在 许 多 情 况 下 把 本 来 应 通 过 计 算 解 决 的 问 题 该 为 查 表 方 法 解 决, 可 以 达 到 方 便 快 捷 的 目 的, 使 程 序 长 度 缩 短, 程 序 的 执 行 效 率 提 高 例 如 一 非 线 性 参 数 要 涉 及 到 指 数 对 数 三 角 函 数 及 微 积 分 等 运 算, 如 果 采 用 汇 编 语 言 编 写, 不 仅 程 序 复 杂, 而 且 耗 费 大 量 时 间, 常 采 用 查 表 程 序 下 面 简 单 介 绍 MOVC 指 令 : 程 序 存 储 器 向 累 加 器 A 传 送 数 据 指 令, 又 称 查 表 指 令 它 采 用 变 址 寻 址 方 式, 把 程 序 存 储 器 中 存 放 的 表 格 数 据 读 出, 传 送 到 累 加 器 A 它 共 有 如 下 两 条 单 字 节 指 令, MOVC A,@A+DPTR,MOVC A,@A+PC 两 条 指 令 的 功 能 是 把 作 为 变 址 寄 存 器 的 累 加 器 A 中 的 内 容 与 基 址 寄 存 器 (DPTR,PC) 的 内 容 进 行 16 位 无 符 号 的 加 操 作, 得 到 程 序 存 储 器 某 个 单 元 地 址, 再 把 该 单 元 的 内 容 送 入 累 加 器 A 执 行 指 令 后 基 址 寄 存 器 DPTR 的 内 容 不 变,PC 的 内 容 为 PC+1 由 于 执 行 16 位 加 法, 从 低 8 位 的 进 位 将 传 送 到 高 位 去, 不 影 响 任 何 标 志 位 例 1: 利 用 查 表 将 十 六 进 制 数 转 换 为 ASCⅡ 码 分 析 : 若 用 计 算 方 法 求 解 也 能 实 现, 但 较 复 杂 如 果 采 用 查 表 求 解, 则 整 个 程 序 显 得 更 为 简 单, 也 容 易 理 解 把 0-F 对 应 的 ASCⅡ 码 按 顺 序 放 入 某 一 地 址 起 的 单 元 中, 通 过 设 地 址 指 针 和 变 址 指 针, 实 现 求 解 其 程 序 和 流 程 图 如 下 : ORG 0400H MOV DPTR,#0600H ; 设 地 址 指 针 MOV A,R0 ; 取 转 换 值 到 A ANL A,#0FH ; 屏 蔽 高 4 位, 获 得 变 址 地 址 MOVC A,@A+DPTR ; 查 表 MOV 20H,A ; 存 结 果 SJMP $ ORG 0600H DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H 开 始 DPTR 表 首 地 址 A (R0)B3-0B 计 算 (A)+(DPTR) 查 表 A ASCⅡ 存 结 果 20H (A) 实 验 要 求 : 1 编 制 整 数 0-9 的 平 方 表, 将 其 存 入 0600H 为 首 地 址 的 单 元 中 结 束 13

2 编 制 程 序, 将 待 查 整 数 (0-9 之 间 ) 送 入 累 加 器 A, 在 软 件 模 拟 器 上 运 行 程 序 后, 通 过 查 表 求 出 该 数 的 平 方 值 送 40H 单 元 3 改 变 输 入 待 查 数, 重 复 第 2 步 操 作 4 在 数 据 窗 口 查 看 运 行 结 果, 并 作 相 应 记 录 三 实 验 报 告 要 求 按 照 实 验 报 告 格 式, 认 真 完 成 实 验 报 告 画 出 流 程 图, 编 写 最 终 程 序 四 思 考 题 1 如 果 输 入 整 数 的 范 围 扩 大 到 0-256, 上 述 查 表 程 序 应 该 如 何 修 改? 2 除 了 本 实 验 要 求 的 指 令 外, 还 有 其 他 查 表 指 令 吗? 3 如 要 求 将 查 表 结 果 送 到 片 外 RAM 单 元, 程 序 应 如 何 修 改? 14

实 验 六 算 术 及 逻 辑 运 算 指 令 实 验 一 实 验 目 的 1 熟 悉 和 掌 握 算 术 逻 辑 指 令 的 功 能 和 使 用 方 法, 学 会 用 这 类 指 令 进 行 编 程 2 进 一 步 熟 悉 MSC-51 系 列 CPU 的 寻 址 二 实 验 内 容 和 要 求 MSC-51 单 片 机 中 的 算 术 运 算 指 令 包 括 加 减 乘 除 四 则 运 算 指 令, 这 类 指 令 中 一 个 操 作 数 在 累 加 器 A, 另 一 个 可 以 立 即 寻 址 直 接 寻 址 寄 存 器 寻 址 和 寄 存 器 间 间 接 寻 址 获 得, 运 算 结 果 也 存 于 累 加 器 A 中 运 算 过 程 中, 除 增 量 减 量 指 令 外, 这 类 指 令 不 因 程 序 影 响 程 序 状 态 寄 存 器 PSW 的 半 进 位 标 志 AC, 进 位 标 准 CY 和 溢 出 标 志 OV MCS-51 单 片 机 有 丰 富 的 逻 辑 操 作 指 令, 它 可 以 单 操 作 数 进 行 操 作, 也 可 以 双 操 作 数 进 行 操 作, 寻 址 方 式 灵 活, 操 作 数 可 在 累 加 器 A 中, 也 可 通 过 寻 址 方 式 获 得 例 1: 无 符 号 二 进 制 数 加 法 程 序 (2100H)+(2101H) (30H)BhB(31H)Bl 开 始 DPTR #2100H A @DPTR ORG 2000H MOV DPTR,#2100H MOVX A,@DPTR MOV R2,A INC DPTR ADD A,R2 MOV 31H,A CLR A ADDC A,#00H MOV 30H,A SJMP $ END R2 A INC DPTR A @DPTR A A+R2 31H A A #00H ADDC A 30H A 结 束 例 2: 把 0 99(BCD 码 )100 个 数 字 放 入 10H 起 的 100 个 单 元 中 分 析 : 虽 然 放 置 的 数 据 从 十 进 制 角 度 是 逐 个 加 1 的, 但 汇 编 中 认 为 数 据 是 16 进 制 的, 当 从 9 变 10 时, 必 须 采 用 十 进 制 调 整, 而 十 进 制 调 整 只 能 用 在 ADD 或 ADDC 指 令 后, 所 以 加 1 必 须 通 过 ADD 或 ADDC 来 实 现 15

源 程 序 如 下 : MOV R1,#100 LL: MOV R0,#10H MOV A,#00H MOV @R0,A INC R0 ADD A,#01H DA A DJNZ R1,LL END 例 3: 把 30H-36H 中 的 二 进 制 数 和 40H-46H 中 的 二 进 制 数 相 加, 放 至 50H 开 始 的 单 元, 低 位 在 前 分 析 : 此 题 目 中, 由 于 指 针 不 够 用, 所 以 采 用 戴 帽 子 法 用 20H 和 21H 单 元 做 为 实 际 指 针, 使 用 时, 用 到 哪 一 个 指 针, 就 暂 借 R0 单 元 来 完 成 MOV 20H,#30H LOOP: MOV 21H,#40H MOV R1,#50H MOV R2,#07H CLR C MOV R0,20H MOV A,@R0 MOV R0,21H ADDC A,@R0 MOV @R1,A INC R1 INC 20H INC 21H DJNZ R2,LOOP MOV A,#00H ADDC A,#00H MOV 57H,A END 实 验 要 求 : 1 将 2100H 和 2101H 两 个 单 元 内 容 分 别 进 行 加 减 乘 除 与 或 和 异 或 运 算, 结 果 存 于 30H 和 31H 单 元 ( 高 字 节 存 于 低 地 址 单 元 中 ), 运 行 前 后 均 需 检 查 PSW 内 容, 并 记 录 之, 说 明 发 生 变 化 的 原 因 2 BCD 运 算 : 将 双 字 节 压 缩 BCD 码 送 入 30H 31H 单 元 中,31H 存 高 位, 将 加 数 双 字 节 压 缩 BCD 码 送 入 40H 41H 单 元 中,41H 存 放 高 位, 编 写 程 序 将 两 个 双 字 节 BCD 码 数 相 加, 和 存 入 首 地 址 为 40H 单 元 中,40H 存 放 最 低 位, 改 变 加 数 与 被 加 数, 再 次 观 察 运 算 结 果 3 在 内 部 RAM 的 40H 和 41H 单 元 中 分 别 存 有 一 个 八 位 的 二 进 制 数, 现 要 求 将 两 个 单 元 中 低 四 位 合 并 成 为 一 个 八 位 的 二 进 制 数 并 存 入 42H 单 元 中 16

三 实 验 报 告 要 求 1 给 出 上 机 调 试 通 过 的 程 序 清 单, 并 给 出 每 段 程 序 的 运 行 结 果 2 总 结 算 术 运 算 和 逻 辑 运 算 指 令 的 工 作 特 点 及 其 对 状 态 标 志 的 影 响 四 思 考 题 1 简 述 运 算 类 指 令 是 如 何 影 响 程 序 状 态 寄 存 器 PSW 的 相 应 标 志 位 的? 2 什 么 叫 位 操 作? 如 何 区 分 位 传 送 操 作 指 令 和 字 节 传 送 类 指 令? 3 如 果 在 例 2 中, 采 用 INC A 来 代 替 ADD A,#01H, 会 出 现 什 么 结 果, 为 什 么? ( 通 过 单 步 运 行 来 发 现 问 题 ) 17

实 验 七 子 程 序 的 设 计 一 实 验 目 的 1 掌 握 子 程 序 调 用 与 返 回 指 令 的 用 法 2 掌 握 子 程 序 的 设 计 与 调 试 方 法 二 实 验 内 容 和 要 求 在 一 个 程 序 中, 将 反 复 出 现 的 程 序 段 编 制 成 一 个 个 独 立 的 程 序 段, 存 放 在 内 存 中, 这 些 完 成 某 一 特 定 任 务 可 被 重 复 调 用 的 独 立 程 序 段 称 为 子 程 序 在 汇 编 语 言 编 程 时, 恰 当 地 使 用 子 程 序, 可 使 整 个 程 序 的 结 构 清 楚, 阅 读 和 理 解 方 便, 而 且 还 可 以 减 少 源 程 序 和 目 标 程 序 的 长 度, 不 必 多 次 重 复 书 写 和 翻 译 同 样 的 指 令 在 汇 编 语 言 源 程 序 中 使 用 子 程 序, 需 要 注 意 的 两 个 问 题 是 : 子 程 序 参 数 的 传 递 和 现 场 保 护 的 问 题 例 1: 两 个 双 字 节 无 符 号 数 乘 法 子 程 序 设 计 两 个 双 字 节 无 符 号 数 被 分 别 放 在 R7 R6 和 R5 R4 中 MUL1: MOV A,R6 MOV B,R4 MUL AB MOV @R0,A 开 始 MOV R3,B MOV A,R7 取 两 数 高 位 相 乘 INC R1 18 NEXT: MOV B,R4 MUL AB ADD A,R3 MOV R3,A MOV A,B ADDC A,#00H MOV R2,A MOV A,R6 MOV B,R5 MUL AB ADD A,R3 INC R0 MOV @R0,A MOV R1,#00H MOV R2,A JNC NEXT INC R1 MOV A,R7 MOV B,R5 MUL AB ADD A,R2 INC R0 MOV @R0,A MOV A,B @R0 A R3 B R3 A+R3 R2 B A R6 B R5 A B A+R3 INC R0 @R0 A R1 00H R2 A C=1 R7 A B R5 A B A+R2 INC R0 @R0 A A B A+R1 INC R0 @R0 A 返 回

ADDC A,R1 INC R0 MOV @R0,A RET 例 2: 编 写 延 时 5 毫 秒 的 子 程 序 Delay5 DELAY5: MOV 7FH,#0AH DD1: DD2: MOV 7EH,#0C8H DJNZ 7EH,DD2 DJNZ 7FH,DD1 RET 在 大 量 的 实 用 程 序 中, 由 于 时 序 的 配 合 问 题, 许 多 场 合 要 用 到 延 时, 如 果 每 处 都 写 上 程 序 代 码, 则 大 大 增 加 了 程 序 的 长 度, 所 以, 几 乎 所 有 的 应 用 程 序 中, 都 有 延 时 子 程 序, 可 以 根 据 具 体 需 要 编 写 多 个 不 同 时 间 的 延 时 子 程 序, 以 供 主 程 调 用 实 验 要 求 : 1 二 进 制 数 转 换 成 BCD 码 : 内 RAM 中 从 20H 开 始 存 有 10 个 8 位 的 二 进 制 数, 将 它 们 转 换 成 BCD 码, 存 入 从 30H 开 始 的 单 元 2 编 写 延 时 时 间 分 别 为 5ms 500ms 50s 的 延 时 子 程 序 三 实 验 报 告 要 求 1 给 出 上 机 调 试 通 过 的 程 序 清 单, 并 给 出 每 段 程 序 的 运 行 结 果 2 总 结 算 术 运 算 和 逻 辑 运 算 指 令 的 工 作 特 点 及 其 对 状 态 标 志 的 影 响 四 思 考 题 1 子 程 序 调 用 和 返 回 时, 堆 栈 起 了 什 么 作 用? 2 如 果 要 向 子 程 序 传 递 参 数, 应 如 何 实 现? 3 子 程 序 能 够 嵌 套 吗? 多 层 嵌 套 会 出 现 什 么 问 题? 4 调 用 子 程 序 时,ACC PSW DPTR 有 没 有 被 保 护? 19

实 验 八 中 断 程 序 设 计 一 实 验 目 的 1 进 一 步 加 深 对 中 断 概 念 的 理 解, 学 会 设 计 中 断 子 程 序 2 掌 握 中 断 程 序 调 用 与 返 回 指 令 的 应 用 3 掌 握 中 断 子 程 序 的 设 计 与 调 试 方 法 二 实 验 内 容 和 要 求 MCS-51 单 片 机 提 供 了 5 个 中 断 源 :2 个 外 部 中 断 请 求 INT0 和 INT1 2 个 片 内 定 时 器 / 计 数 器 T0 和 T1 的 益 出 中 断 请 求 TF0 和 TF1 及 串 行 口 中 断 请 求 TI 和 R( 合 为 一 个 中 断 源 ) 各 中 断 源 所 对 应 的 中 断 服 务 程 序 的 入 口 地 址 如 下 : 中 断 源 入 口 地 址 外 部 中 断 0 0003H 定 时 器 T0 中 断 000BH 外 部 中 断 1 0013H 定 时 器 T1 中 断 001BH 串 行 口 中 断 0023H 各 中 断 的 标 志 位 分 别 为 : IE0( 或 IE1): 外 部 中 断 0( 或 1) 的 中 断 请 求 标 志 若 INTX 为 低 电 平, 将 直 接 触 发 外 部 中 断, 有 电 平 和 边 沿 两 种 触 发 方 式 中 断 服 务 程 序 结 束 后, 硬 件 自 动 清 0 TF0( 或 TF1): 为 T0(T1) 定 时 器 溢 出 中 断 标 志 位 当 计 数 溢 出 时, 由 硬 件 置 位, 中 断 服 务 程 序 结 束 后, 硬 件 自 动 清 0 TI: 串 行 口 发 送 中 断 标 志 当 串 行 发 送 数 据 字 第 8 位 结 束 后, 由 内 部 硬 件 使 TI 置 位, 中 断 响 应 结 束 后, 由 软 件 复 位 RI: 串 行 口 接 收 中 断 标 志 必 须 由 用 户 在 中 断 服 务 程 序 中 清 0 ( 见 课 本 129 页 ) MCS-51 单 片 机 的 中 断 系 统 对 优 先 级 的 控 制 比 较 简 单, 只 规 定 了 两 个 中 断 优 先 级, 对 于 每 一 个 中 断 源 均 可 编 程 为 高 优 先 级 中 断 或 低 优 先 级 中 断 在 同 1 个 优 先 级 中, 对 5 个 中 断 源 的 优 先 次 序 安 排 如 下 : 外 部 中 断 0 定 时 器 / 计 数 器 T0 溢 出 中 断 外 部 中 断 1 定 时 器 / 计 数 器 T1 溢 出 中 断 串 行 口 中 断 MCS-51 单 片 机 中 有 1 个 中 断 优 先 级 寄 存 器 IP, 字 节 地 址 为 B8H 对 于 每 1 个 中 断 源, 均 可 通 过 对 IP 的 设 置 来 确 定 其 优 先 等 级, 置 1 为 高 优 先 级, 清 0 为 低 优 先 级 在 设 计 和 执 行 中 断 程 序 时 必 须 注 意 以 下 问 题 : a: 保 护 中 断 现 场 与 恢 复 现 场 b: 中 断 源 有 请 求 c:cpu 开 中 断 d: 多 中 断 程 序 设 计 时 注 意 中 断 优 先 级 的 设 定 1 定 时 中 断 : 例 1: 利 用 定 时 中 断 通 过 P1.0 引 脚 输 出 周 期 为 2ms 的 方 波, 设 晶 振 频 率 为 12MHZ 分 析 : 若 要 产 生 周 期 为 2ms 的 方 波, 只 要 每 1ms 将 信 号 的 幅 值 由 0 变 到 1 或 由 1 变 到 0 即 可, 可 采 用 取 反 指 令 CPL 实 现 为 了 提 高 CPU 的 效 率, 可 采 用 定 时 中 断 的 方 式, 每 1ms 产 生 一 次 中 断, 在 中 断 服 务 程 序 中 将 输 出 信 号 取 反 即 可 20

程 序 设 计 : ORG LJMP ORG MOV MOV MOV SETB SETB SETB SJMP $ JT0: CPL P1.0 000BH JT0 2000H TMOD,#00H TH0,#0E0H TL0,#18H EA ET0 TR0 MOV TL0,#18H MOV TH0,#0E0H RETI 设 中 断 入 口 地 址 设 定 时 器 工 作 方 式 设 置 定 时 初 值 CPU 开 中 断 ET0 置 1 启 动 T0 等 待 中 断 中 断 处 理 中 断 返 回 2 外 部 中 断 : MCS-51 单 片 机 的 中 断 系 统 有 2 个 外 部 中 断 源, 引 脚 信 号 为 INT0 和 INT1( 即 P3.2 和 P3.3) 其 中 中 断 请 求 触 发 信 号 有 电 平 触 发 和 边 沿 触 发 两 种 CPU 响 应 中 断 请 求 后, 在 中 断 返 回 ( 执 行 RETI 指 令 ) 前, 必 须 撤 除 请 求, 否 则 会 错 误 地 再 一 次 引 起 中 断 过 程 例 2: 若 规 定 外 部 中 断 1 为 边 沿 触 发 方 式, 低 优 先 级, 在 中 断 服 务 程 序 中 将 寄 存 器 B 的 内 容 左 移 一 位,B 的 初 值 设 为 01H 程 序 如 下 : 设 中 断 入 口 地 址 ORG 0000H ; 主 程 序 LJMP MAIN ; 主 程 序 转 至 MAIN 处 CPU 开 中 断 ORG 0013H ; 中 断 服 务 程 序 LJMP INT ; 中 断 服 务 程 序 转 至 INT 处 EX 置 1 MAIN: SETB EA ; 开 中 断 SETB EX ; 允 许 外 中 断 1 中 断 设 为 低 优 先 级 CLR PX1 ; 设 为 低 优 先 级 SETB IT1 ; 边 沿 触 发 设 为 边 沿 触 发 方 式 MOV B,#01H ; 设 B 的 初 值 HALT: LJMP HALT ; 暂 停 等 待 中 断 设 B 初 值 INT: MOV A,B RL A 等 待 中 断 MOV B,A RETI ; 中 断 返 回 中 断 处 理 中 断 返 回 有 以 下 2 点 需 要 说 明 : 21

(1) 由 于 从 0003H 到 0023H 之 间 分 布 了 5 个 中 断 源 的 入 口 地 址, 因 此 在 一 般 情 况 下, 主 程 序 与 中 断 服 务 程 序 均 用 长 转 移 指 令 移 至 其 他 区 (2) 本 例 题 未 考 虑 保 护 现 场 与 恢 复 现 场 的 问 题, 是 否 需 要, 应 视 具 体 情 况 而 定 三 实 验 要 求 : 按 要 求 编 写 程 序 1 用 定 时 中 断 和 定 时 / 计 数 方 式 1 和 2 分 别 设 计 出 1ms 和 500μs 的 定 时, 并 观 察 定 时 是 否 准 确 2 用 外 部 中 断 0( 电 平 触 发 方 式 ) 在 中 断 服 务 程 序 中 将 A( 初 值 为 03H) 右 移 一 位, 观 察 特 殊 寄 存 器 的 变 化 四 思 考 题 1 中 断 服 务 程 序 和 子 程 序 有 什 么 区 别? 应 用 上 有 什 么 不 同? 2 中 断 系 统 主 要 的 作 用 是 什 么? 3 什 么 叫 中 断 嵌 套? 如 何 模 拟 中 断 嵌 套? 4 如 果 要 求 在 执 行 定 时 器 T0 中 断 服 务 程 序 时, 能 被 串 口 中 断, 应 如 何 设 置? 5 中 断 时 什 么 寄 存 器 内 容 被 保 护 了? 保 护 在 哪 里? 22

实 验 九 流 水 灯 一 实 验 目 的 1 学 习 伟 福 单 片 机 仿 真 器 仿 真 头 计 算 机 信 号 转 接 板 功 能 实 验 板 仿 真 器 电 源 开 关 电 源 之 间 的 连 接 方 法, 以 及 伟 福 硬 件 仿 真 器 的 设 置 方 法 2 掌 握 P1 口 的 输 出 方 法 3 掌 握 软 件 延 时 的 计 算 二 实 验 设 备 伟 福 单 片 机 仿 真 器 仿 真 头 计 算 机 信 号 转 接 板 功 能 实 验 板 仿 真 器 电 源 开 关 电 源 三 实 验 内 容 和 要 求 本 实 验 是 将 接 在 P1 口 上 的 8 个 LED 逐 个 点 亮 ( 只 有 一 个 LED 亮 ), 形 如 流 水, 故 称 流 水 灯, 它 广 泛 地 用 于 装 饰 霓 虹 灯 学 生 通 过 本 实 验 掌 握 P1 口 的 操 作 方 法 和 软 件 延 时 计 算 MOV A,#0FEH ;11111110 B LOOP: MOV P1,A ;A 的 内 容 送 P1 口 RL A ; 左 移 A 中 的 内 容 ACALL DELAY ; 调 用 延 时 程 序 SJMP LOOP ; 循 环 设 A 初 值 DELAY: DELAY1: DELAY2: MOV R0, #0AH MOV R1,#64H MOV R2, #0FAH DJNZ R2, $ DJNZ R1, DELAY2 DJNZ R0, DELAY1 RET END A 数 据 送 P1 口 左 移 A 中 数 据 调 用 延 时 23

例 2:8 个 LED 灯 逐 个 右 移, 每 次 只 亮 一 个,8 个 移 完 之 后 在 逐 个 左 移, 每 次 只 亮 一 位, 结 束 后 重 复 以 上 过 程 当 按 键 K1 为 低 时, 暂 停 移 位, 再 按 下 对 应 键 K1, 继 续 进 行, 松 开 K2 闪 动 加 快, 按 下 K2 闪 动 恢 复 原 来 速 度 参 考 程 序 : ORG 0000H LJMP START ORG 0100H START: MOV R0,#6FH QL: PMD1: XX1: LL1: PMD2: YY1: LL2: MOV R1,#10H MOV A,#00H MOV @R1,A INC R1 DJNZ R0,QL MOV A,#0FEH MOV R0,#08H MOV P1,A JNB P3.3,LL1 LCALL DELY10 LCALL DELY5 RL A DJNZ R0,XX1 MOV A,#7EH MOV R0,#08H MOV P1,A JNB P3.3,LL2 LCALL DELY10 LCALL DELY5 RR A DJNZ R0,YY1 DELY10: ORG 0200H MOV R5,#0AH DELY2: MOV R6,#200 DELY1: MOV R7,#0F8H LL0: JNB P3.2,LL0 NOP NOP DELY0: DJNZ R7,DELY0 DJNZ R6,DELY1 DJNZ R5,DELY2 RET DELY5: MOV R6,#200 DELY11: MOV R7,#0F8H LL3: JNB P3.2,LL3 NOP 上 电 复 位 清 内 存, 清 显 示 置 A=7EH,R0=08H A 放 入 P1 P3 3=0? 延 时 去 抖 P3 3=0? 延 时 1s 延 时 0.5s A 左 移 一 位 R0-1=0 置 A=0FEH,R0=08H 延 时 1s A 放 入 P1 P3 3=0? 延 时 去 抖 P3 3=0? A 右 移 一 位 R0-1=0 结 束 延 时 0.5s 24

NOP DELY01: DJNZ R7,DELY01 DJNZ R6,DELY11 RET END 四 实 验 报 告 要 求 1 改 变 流 水 灯 方 向 和 显 示 方 式, 改 变 变 换 时 间, 做 出 多 种 方 式 和 时 间 的 流 水 灯 观 察 显 示 效 果 2 测 量 LED 点 亮 时 压 降 和 电 流 五 思 考 题 1 如 果 要 求 多 种 方 式 自 动 转 换, 如 何 实 现? 2 如 果 要 扩 展 更 多 的 LED 显 示, 如 何 实 现? 25

实 验 十 键 盘 实 验 一 实 验 目 的 1 掌 握 引 脚 扩 展 键 盘 开 关 的 方 法 2 掌 握 键 盘 扫 描 识 别 方 法 二 实 验 设 备 伟 福 单 片 机 仿 真 器 仿 真 头 计 算 机 信 号 转 接 板 功 能 实 验 板 仿 真 器 电 源 开 关 电 源 三 实 验 内 容 参 考 电 路 图 例 1:K1 按 下 时,LED 由 左 向 右 轮 流 点 亮, 按 起 时,LED 由 右 向 左 轮 流 亮 K2 控 制 其 移 动 速 度 的 快 慢 参 考 程 序 ORG 0000H LJMP START ORG 0100H START: MOV R1,#6FH MOV R0,#10H XX1: MOV @R0,#0FFH INC R0 DJNZ R1,XX1 MOV P1,#00H LCALL DLY XX: MOV P1,#0FFH LCALL DLY MOV R1,#08H JB P3.2,L1 MOV A,#07FH XX4: MOV P1,A XX5: LCALL DLY JNB P3.2,XX2 MOV 6CH,A MOV A,#09H SUBB A,R1 MOV R1,A MOV A,6CH SETB C RLC A MOV P1,A LCALL DLY JB P3.2,XX3 MOV 6CH,A MOV A,#09H SUBB A,R1 MOV R1,A 26

MOV A,6CH L3: MOV 6CH,A LJMP XX4 MOV A,#09H XX3: DJNZ R1,XX5 SUBB A,R1 LJMP XX MOV A,R1 XX2: CLR C MOV A,6CH RRC A LJMP L5 DJNZ R1,XX4 L2: CLR C LJMP XX RLC A L1: MOV A,#0FEH DJNZ R1,L5 L5: MOV P1,A LJMP XX LCALL DLY DLY: MOV R2,#0AH JB P3.2,L2 YY3: MOV 6DH,#28H MOV 6CH,A YY2: MOV 6EH,#0FAH MOV A,#09 YY1: DJNZ 6EH,YY1 SUBB A,R1 DJNZ 6DH,YY2 MOV R1,A JB P3.3,YY4 MOV A,6CH MOV 6DH,#28H L4: SETB C YY6: MOV 6EH,#0FAH RRC A YY5: DJNZ 6EH,YY5 MOV P1,A DJNZ 6DH,YY6 LCALL DLY YY4: DJNZ R2,YY3 JB P3.2,L3 RET DJNZ R1,L4 END LJMP XX 问 题 : 如 果 将 开 关 按 下 改 为 开 关 按 下 并 抬 起, 则 如 何 修 改 程 序? 例 2:8 键 扫 描 程 序, 将 键 值 放 入 R7 分 析 :164 输 出 为 全 低, 一 旦 AN1-AN8 有 一 个 键 按 下, 则 P3.2 端 变 低, 再 采 用 串 口 发 送 数 据 给 164, 数 据 中 只 有 一 个 位 为 1, 每 次 移 位 该 位, 当 对 应 键 盘 哪 一 位 为 1 时,P3.2 变 高, 则 查 出 了 哪 一 个 键 被 按 下 参 考 程 序 : MOV R1,#08H MOV A,#01H MOV R7,#00H NEXT: MOV SBUF,A WW1: JNB TI,WW1 CLR TI JB P3.2,OK ; 查 到 键 位 置 RL A INC R7 DJNZ R1,NEXT MOV R7,#0FH ; 错 误 标 志 四 实 验 报 告 要 求 1 对 调 K1 K2 的 作 用, 改 变 延 时 时 间, 重 做 例 1 2 调 试 扫 面 键 盘 程 序, 正 确 得 到 键 码 27

五 思 考 总 结 1 I/O 线 扩 展 键 盘 和 164 扩 展 键 盘 有 什 么 应 用 上 的 不 同? 2 如 何 清 除 键 盘 的 抖 动? 3 如 果 有 2 个 键 同 时 按 下, 会 出 现 什 么 结 果, 程 序 中 应 如 何 设 计 以 防 误 判? 28

实 验 十 一 数 码 管 显 示 实 验 一 实 验 目 的 1 掌 握 多 位 数 码 管 显 示 的 原 理 2 学 习 多 位 数 码 管 静 态 连 接 方 式 下 驱 动 程 序 的 编 制 方 法 二 实 验 设 备 伟 福 单 片 机 仿 真 器 仿 真 头 计 算 机 信 号 转 接 板 功 能 实 验 板 仿 真 器 电 源 开 关 电 源 三 实 验 内 容 1 LED 七 段 数 码 管 显 示 原 理 数 码 管 结 构 图 共 阴 极 共 阳 极 数 码 管 由 8 个 发 光 二 极 管 ( 以 下 简 称 字 段 ) 构 成, 通 过 不 同 的 组 合 可 用 来 显 示 数 字 0 9 字 符 A F H L P R u Y 符 号 一 及 小 数 点. 数 码 管 的 外 形 结 构 如 图 (a) 所 示 数 码 管 又 分 为 共 阴 极 和 共 阳 极 两 种 结 构, 分 别 如 图 (b) 和 图 (c) 所 示 共 阳 极 数 码 管 的 8 个 发 光 二 根 管 的 阳 极 ( 二 极 管 正 端 ) 连 接 在 一 起 通 常, 公 共 阳 极 接 高 电 平 ( 一 般 接 电 源 ), 其 它 管 脚 接 段 驱 动 电 路 输 出 端 当 某 段 驱 动 电 路 的 输 出 端 为 低 电 平 时, 则 该 端 所 连 接 的 字 段 导 通 并 点 亮 根 据 发 光 字 段 的 不 同 组 合 可 显 示 出 各 种 数 字 或 字 符 此 时, 要 求 段 驱 动 电 路 能 吸 收 额 定 的 段 导 通 电 流, 还 需 根 据 外 接 电 源 及 额 定 段 导 通 电 流 来 确 定 相 应 的 限 流 电 阻 共 阴 极 数 码 管 的 8 个 发 光 二 极 管 的 阴 极 ( 二 极 管 负 端 ) 连 接 在 起 通 常, 公 共 阴 极 接 低 电 平 ( 一 般 接 地 ), 其 它 管 脚 接 段 驱 动 电 路 输 出 端 当 某 段 驱 动 电 路 的 输 出 端 为 高 电 平 时, 则 该 端 所 连 接 的 字 段 导 通 并 点 亮, 根 据 发 光 字 段 的 不 同 组 合 可 显 示 出 各 种 数 字 或 字 符 此 时, 要 求 段 驱 动 电 路 能 提 供 额 定 的 段 导 通 电 流, 还 需 根 据 外 接 电 源 及 额 定 段 导 通 电 流 来 确 定 相 应 的 限 流 电 阻 29

参 考 电 路 图 : 例 : 上 电 后 自 检, 显 示 0-9, 间 隔 1s ORG 0000H LJMP START ORG 0100H START: MOV R7,#5FH QL: ZJ: XX1: ZZ1: XX2: ZZ2: ZJ1: MOV R1,#20H MOV A,#00H MOV @R1,A INC R1 DJNZ R7,QL MOV R2,#03H MOV A,#00H MOV SBUF,A JNB TI,ZZ1 CLR TI DJNZ R2,XX1 LCALL DELY5 MOV R2,#03H MOV A,#0FFH MOV SBUF,A JNB TI,ZZ2 CLR TI DJNZ R2,XX2 LCALL DELY5 MOV R1,#0BH MOV R2,#03H XX3: XX4: ZZ3: YY: MOV DPTR,#0400H MOV R0,#00H MOV A,R0 MOVC A,@A+DPTR MOV SBUF,A JNB TI,ZZ3 CLR TI DJNZ R2,XX4 MOV R3,#0AH LCALL DELY5 DJNZ R3,YY INC R0 MOV R2,#03H DJNZ R1,XX3 DELY5: MOV R6,#200 DELY11: MOV R7,#0F8H DELY01: DJNZ R7,DELY01 DJNZ R6,DELY11 RET ORG 0500H DB 50H,0F6H,61H,0E0H,0C6H,0C8H DB 48H,0F2H, 40H,0C0H,50H END 四 实 验 报 告 要 求 1 采 用 单 位 扫 描 办 法, 查 出 段 与 数 据 位 的 关 系, 写 出 0-9 a b c d e f 的 显 示 码 30

2 编 写 电 子 跑 表,2 位 数 码 管 分 别 显 示 秒 和 十 分 之 一 秒, 按 键 AN 来 做 复 位 / 启 动 / 暂 停 五 思 考 题 1 如 果 采 用 共 阴 的 数 码 管, 显 示 代 码 有 什 么 变 化? 2 如 果 跑 表 变 为 显 示 10 秒 和 秒 的 程 序, 应 如 何 改 变? 3 用 延 时 和 定 时 做 1s 间 隔 哪 个 能 准 确? 为 什 么? 31

实 验 十 二 A/D 转 换 实 验 一 实 验 目 的 1 掌 握 A/D 转 换 与 单 片 机 的 接 口 方 法 2 了 解 A/D 芯 片 ADC0809 转 换 性 能 及 编 程 3 通 过 实 验 了 解 单 片 机 如 何 进 行 数 据 采 集 二 实 验 电 路 三 实 验 内 容 和 要 求 1 ADC0809 模 数 转 换 器 的 引 脚 功 能 IN0~IN7:8 路 模 拟 量 输 入 A B C:3 位 地 址 输 入,2 个 地 址 输 入 端 的 不 同 组 合 选 择 八 路 模 拟 量 输 入 ALE: 地 址 锁 存 启 动 信 号, 在 ALE 的 上 升 沿, 将 A B C 上 的 通 道 地 址 锁 存 到 内 部 的 地 址 锁 存 器 D0~D7: 八 位 数 据 输 出 线,A/D 转 换 结 果 由 这 8 根 线 传 送 给 单 片 机 OE: 允 许 输 出 信 号 当 OE=1 时, 即 为 高 电 平, 允 许 输 出 锁 存 器 输 出 数 据 START: 启 动 信 号 输 入 端,START 为 正 脉 冲, 其 上 升 沿 清 除 ADC0808 的 内 部 的 各 寄 存 器, 其 下 降 沿 启 动 A/D 开 始 转 换 EOC: 转 换 完 成 信 号, 当 EOC 上 升 为 图 1 ADC0809 管 脚 图 32

高 电 平 时, 表 明 内 部 A/D 转 换 已 完 成 CLK: 时 钟 输 入 信 号,0809 的 时 钟 频 率 范 围 在 10~1200kHz, 典 型 值 为 640kHz 2 ADC0809 时 序 图 图 2. ADC0809 时 序 图 例 : 两 路 A/D 显 示 参 考 程 序 : ORG 0000H LJMP MAIN ORG 000BH LJMP JT0 ORG 0100H MAIN: MOV R1,#6FH MOV R0,#10H MOV A,#00H XX0: MOV @R0,A INC R0 DJNZ R1,XX0 MOV 50H,#00H MOV 51H,#00H MOV R2,#0BH XX4: LCALL DISP MOV R4,#19H YY3: LCALL DELY DJNZ R4,YY3 INC 50H INC 51H DJNZ R2,XX4 MOV SP,#40H CLR 01H CLR 02H SETB P3.4 SETB EA XX5: CLR P3.7 CLR P1.6 PJ1: JB P1.4, PJ2 LCALL DELY 33

JB P1.4,PJ2 JB P1.5,IN3 LCALL DELY JB P1.5,IN3 LJMP IN35 PJ2: JB P1.5,PJ1 LCALL DELY JB P1.5,PJ1 CLR 02H CLR 01H CLR TR0 CLR P3.5 SETB P3.6 LJMP QD IN3: CLR 02H CLR 01H CLR TR0 SETB P3.5 CLR P3.6 LJMP QD IN35: JB 02H,NEXT MOV R4,#28H MOV TMOD,#01H MOV TL0,#3CH MOV TH0,#0B0H SETB TR0 NEXT: SETB ET0 SETB 02H JB 01H,IN50 SETB P3.5 CLR P3.6 LJMP QD IN50: CLR P3.5 SETB P3.6 NOP QD: SETB P3.7 SETB P1.6 NOP CLR P1.6 WAIT: JB P3.3,WAIT LCALL CLXJ LCALL DISP LCALL DELY LJMP XX5 CLXJ: MOV R1,#61H MOV A,P0 MOV 60H,A MOV B,#64H DIV AB MOV @R1,A MOV A,#0AH XCH A,B DIV AB SWAP A ADD A,B INC R1 MOV @R1,A MOV R6,#02H LOOP1: CLR C MOV A,@R1 ADD A,@R1 DA A MOV @R1,A DEC R1 MOV A,@R1 ADDC A,@R1 DA A MOV @R1,A INC R1 DJNZ R6,LOOP1 MOV A,61H CJNE A,#10H,X1 MOV 50H,#09H MOV 51H,#09H LJMP X2 X1: MOV 50H,61H MOV A,62H ANL A,#0F0H SWAP A MOV 51H,A X2: SETB P3.3 RET DISP: MOV R3,#02H MOV DPTR,#060BH MOV A,51H MOV R5,#08H 34

MOVC A,@A+DPTR JNB 01H,XX10 ANL A,#0BFH XX10: CLR P1.1 RLC A MOV P1.0,C SETB P1.1 DJNZ R5,XX10 LJMP XX3 XX2: MOV DPTR,#0600H MOV A,50H MOV R5,#08H MOVC A,@A+DPTR XX1: CLR P1.1 RLC A MOV P1.0,C SETB P1.1 DJNZ R5,XX1 XX3: DJNZ R3,XX2 RET MOV TL0,#3CH MOV TH0,#0B0H SETB TR0 DJNZ R4,JT1 CPL 01H MOV R4,#28H JT1: RETI DELY: MOV 53H,#28H YY2: MOV 54H,#0FAH YY1: DJNZ 54H,YY1 DJNZ 53H,YY2 RET ORG 0600H DB 0AH,0CFH,26H,86H,0C3H,92H DB 12H,0CEH,02H,82H,0FFH DB 48H,0EEH,0C1H,0C4H,66H,54H DB 50H,0CEH,40H,44H,0FFH END JT0: CLR TR0 要 求 :1 调 整 W1 W2, 观 察 A/D 的 显 示 结 果, 检 测 A/D 的 线 性 度 2 测 试 A/D 的 转 换 时 间 3 调 整 延 时 量 确 定 合 适 的 去 抖 时 间 四 实 验 报 告 要 求 1 画 出 8 键 及 16 键 扫 描 的 流 程 图 2 写 出 得 到 去 抖 时 间 的 方 法 过 程 和 时 间 五 思 考 题 1 0809 的 A/D 精 度 是 多 少? 要 想 取 得 更 大 精 度, 应 如 何 实 现? 2 0809 的 数 字 地 和 模 拟 地 应 如 何 连 接? 3 如 输 入 信 号 是 0~3V 或 -5V~+5V, 如 何 设 置 电 路 使 A/D 结 果 仍 是 0~255 35

实 验 十 三 D/A 转 换 实 验 一 实 验 目 的 1 了 解 D/A 转 换 的 基 本 原 理 2 了 解 D/A 转 换 芯 片 0832 的 性 能 及 编 程 方 法 3 了 解 单 片 机 系 统 中 扩 展 D/A 转 换 的 基 本 方 法 二 实 验 内 容 和 要 求 1 DAC0832 介 绍 DAC0832 为 一 个 8 位 D/A 转 换 器, 单 电 源 供 电, 在 -5V~+15V 范 围 内 均 可 正 常 工 作 基 准 电 压 的 范 围 为 ±10V, 电 流 建 立 的 时 间 为 1μs,CMOS 工 艺, 低 电 耗 20mW 该 转 换 器 由 输 入 寄 存 器 和 DAC 寄 存 器 构 成 两 级 数 据 输 入 锁 存 使 用 时, 数 据 输 入 可 以 采 用 两 级 锁 存 ( 双 缓 冲 ) 形 式, 或 单 级 锁 存 ( 单 缓 冲 ) 形 式, 也 可 以 采 用 直 接 输 入 ( 直 通 ) 形 式 由 3 个 与 门 电 路 组 成 寄 存 器 输 出 控 制 电 路, 可 直 接 进 行 数 据 锁 存 控 制 : 当 LE=0 时, 输 入 数 据 被 锁 存 ; 当 LE=1 时, 数 据 不 锁 存, 锁 存 器 的 输 出 跟 随 输 入 变 化 DAC0832 各 引 脚 的 功 能 如 下 : ⑴ D7~D0: 转 换 数 据 输 入 端 ⑵ CS: 片 选 信 号, 输 入, 低 电 平 有 效 ⑶ ILE: 数 据 锁 存 允 许 信 号, 输 入, 高 电 平 有 效 ⑷ WR1: 写 信 号 1, 输 入, 低 电 平 有 效 ⑸ WR2: 写 信 号 2, 输 入, 低 电 平 有 效 ⑹ XFER: 数 据 传 送 控 制 信 号, 输 入, 低 电 平 有 效 ⑺ IBOUT1B: 电 流 输 出 1, 当 DAC 寄 存 器 中 各 位 为 全 1 时, 电 流 最 大, 为 全 0 时, 电 流 为 0 ⑻ IBOUT2B: 电 流 输 出 2, 电 路 中 保 证 IOUT1+IOUT2= 常 数 ⑼ RBfbB: 反 馈 电 阻 端, 片 内 集 成 的 电 阻 为 15KΩ 36

⑽ VBrefB: 参 考 电 压, 可 正 可 负, 范 围 为 -10V~+10V ⑾ DGND: 数 字 量 地 ⑿ AGND: 模 拟 量 地 2 双 极 性 输 出 电 路 D/A 转 换 是 把 数 字 量 转 化 成 模 拟 量 的 过 程,DAC0832 需 要 电 压 输 出 时, 可 以 简 单 地 8 使 用 一 个 运 算 放 大 器 连 接 成 单 极 性 输 出 形 式, 输 出 电 压 Vout=Dm/2P P (-VBREFB); 当 VBREFB =-5v 时,Vout 输 出 范 围 为 0 5V; 采 用 二 级 运 算 放 大 器 可 以 连 接 成 双 极 性 输 出, 当 VBREFB =-5V 时,VBAB 取 值 范 围 为 0 5v,Vout 推 出 范 围 为 -5V 一 +5V 3 例 : 利 用 0832 产 生 锯 齿 波 波 形 参 考 程 序 : MOV A,#01H NEXT: MOV DPTR,#8001H MOVX @DPTR,A INC A LCALL DELAY1 JNZ NEXT LCALL DELAY2 LJMP NEXT 本 实 验 输 出 为 模 拟 电 压 信 号, 本 次 实 验 生 成 的 波 形 较 为 简 单, 有 兴 趣 者 可 试 编 程 序 生 成 各 种 波 形, 如 方 波, 正 弦 波 等, 也 可 与 键 盘 显 示 模 块 结 合 起 来, 构 成 一 个 简 单 的 波 形 发 生 器, 通 过 键 盘 输 入 各 种 参 数, 如 频 率, 振 幅 ( 小 于 +5V), 方 波 的 占 空 比 等 三 实 验 报 告 要 求 1 观 察 波 形 输 出, 改 变 其 周 期, 修 改 程 序 2 观 察 op07 的 输 出 四 思 考 题 1 如 何 测 量 0832 的 响 应 时 间? 2 两 路 D/A 时, 如 何 扩 展? 3 如 果 要 产 生 1KHz 的 方 波, 应 如 何 实 现? 37

一 实 验 目 的 实 验 十 四 定 时 器 实 验 1 学 习 8031 内 部 计 数 器 的 使 用 和 编 程 方 法 2 进 一 步 掌 握 中 断 处 理 程 序 的 编 程 方 法 二 实 验 电 路 及 连 线 P1.0--P1.7 接 L1--L8 三 实 验 内 容 和 要 求 由 8031 内 部 定 时 器 1, 按 方 式 1 工 作, 即 作 为 16 位 定 时 器 使 用 每 0.05 秒 钟 T1 溢 出 中 断 一 次 P1 口 的 P1.0-P1.7 分 别 接 八 个 发 光 二 极 管 要 求 编 写 程 序 模 拟 一 时 序 控 制 装 置 开 机 后 第 一 秒 钟 L1,L3 亮, 第 二 秒 钟 L2,L4 亮, 第 三 秒 钟 L5,L7 亮, 第 四 秒 钟 L6,L8 亮, 第 五 秒 L1,L3,L5,L7 亮, 第 六 秒 钟 L2,L4,L6,L8 亮, 第 七 秒 钟 八 个 二 极 管 全 亮, 第 八 秒 钟 全 灭, 以 后 又 从 头 开 始,L1,L3 亮, 然 后 L2,L4 亮... 一 直 循 环 下 去 1 关 于 内 部 计 数 器 的 编 程 主 要 是 定 时 常 数 的 设 置 和 有 关 控 制 寄 存 器 的 设 置 内 部 计 数 器 在 单 片 机 中 主 要 有 定 时 器 和 计 数 器 两 个 功 能 本 实 验 用 的 是 定 时 器, 有 关 计 数 器 的 说 明 请 查 阅 实 验 七 2 内 部 计 数 器 用 作 定 时 器 时, 是 对 机 器 周 期 计 数 每 个 机 器 周 期 的 长 度 是 12 个 振 荡 器 周 期 因 为 实 验 系 统 的 晶 振 是 11.0592MHz, 所 以 定 时 常 数 的 设 置 可 按 以 下 方 法 计 算 : 机 器 周 期 =12 11.0592MHz=1.0857μS (65536- 定 时 常 数 )*1.0857μS=50mS 定 时 常 数 =4C00H 3 定 时 器 的 有 关 的 寄 存 器 有 工 作 方 式 寄 存 器 TMOD 和 控 制 寄 存 器 TCON TMOD 用 于 设 置 定 时 器 / 计 数 器 的 工 作 方 式 0~3, 并 确 定 用 于 定 时 还 是 用 于 计 数 TCON 主 要 功 能 是 为 定 时 器 在 溢 出 时 设 定 标 志 位, 并 控 制 定 时 器 的 运 行 或 停 止 等 38

4 在 例 程 的 中 断 服 务 程 序 中, 因 为 中 断 定 时 常 数 的 设 置 对 中 断 程 序 的 运 行 起 到 关 键 作 用, 所 以 在 置 数 前 要 先 关 对 应 的 中 断, 置 数 完 之 后 再 打 开 相 应 的 中 断 参 考 程 序 框 图 参 考 程 序 : ORG 0000H AJMP START ORG 001BH AJMP INT_T1 ORG 0100H ;T1 中 断 入 口 地 址 START: MOV SP,#60H MOV TMOD,#10H ; 置 T1 为 方 式 1 MOV TL1,#00H ; 延 时 50mS 的 时 间 常 数 MOV TH1,#4BH MOV R0,#00H MOV R1,#20 SETB TR1 SETB ET1 SETB EA ; 开 中 断 SJMP $ INT_T1: ;T1 中 断 服 务 子 程 序 39

PUSH ACC ; 保 护 现 场 PUSH PSW PUSH DPL PUSH DPH CLR TR1 ; 关 中 断 MOV TL1,#00H ; 延 时 50mS 常 数 MOV TH1,#4BH SETB TR1 ; 开 中 断 DJNZ R1,EXIT MOV R1,#20 ; 延 时 一 秒 的 常 数 MOV DPTR,#DATA ; 置 常 数 表 基 址 MOV A,R0 ; 置 常 数 表 偏 移 量 MOVC A,@A+DPTR ; 读 常 数 表 MOV P1,,A ; 送 P1 口 显 示 INC R0 ANL 00,#07H EXIT: POP DPH ; 恢 复 现 场 POP DPL POP PSW POP ACC RETI ;LED 显 示 常 数 表 DATA DB 0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFH END 四 思 考 题 1 定 时 器 与 计 数 器 的 相 同 和 不 同 点 是 什 么? 2 定 时 器 确 定 的 时 间 值 与 用 延 时 确 定 的 时 间 值 有 什 么 不 同? 40

附 录 一 : 伟 福 仿 真 器 使 用 说 明 一 文 件 (F) 1. 打 开 文 件 打 开 用 户 程 序, 进 行 编 辑 如 果 文 件 已 经 在 项 目 中, 可 以 在 项 目 窗 口 中 双 击 相 应 文 件 名 打 开 4 文 件. ( 图 : 项 目 窗 口 ) 伟 福 开 发 环 境 的 项 目 文 件 包 括 仿 真 器 设 置, 模 块 文 件, 包 含 文 件 仿 真 器 设 置 包 括 仿 真 器 类 型, 仿 真 头 (POD) 类 型,CPU 类 型, 显 示 格 式 和 产 生 的 目 标 文 件 类 型 可 以 用 以 下 几 种 方 法 设 置 仿 真 器. 在 项 目 窗 口 中 双 击 第 一 行, 将 打 开 仿 真 器 设 置 窗 口, 对 仿 真 器 进 行 设 置. 按 鼠 标 右 键, 在 弹 出 菜 单 中 选 择 [ 仿 真 器 设 置 ], 主 菜 单 仿 真 器 仿 真 器 设 置. 加 入 模 块 文 件 按 鼠 标 右 键, 在 弹 出 菜 单 中 选 择 [ 加 入 模 块 文 件 ] 主 菜 单 项 目 加 入 模 块 文 件 用 户 可 以 将 以 前 单 文 件 方 式 仿 真 转 为 WINDOWS 下 的 项 目 方 式 进 行 仿 真 (1) 主 菜 单 文 件 新 建 项 目, 在 新 建 项 目 时, 前 一 个 项 目 自 动 关 闭. (2) 加 入 模 块 文 件 时, 选 择 要 调 试 的 程 序 文 件 名, 将 文 件 加 入 项 目. (3) 将 项 目 存 盘. (4) 编 译, 运 行, 调 试 项 目. 2. 保 存 项 目 将 用 户 项 目 存 盘 用 户 在 编 译 项 目 时, 自 动 存 盘. 注 意 : 当 用 项 目 仿 真 时, 系 统 要 求 项 目 文 件, 模 块 文 件, 包 含 文 件 在 同 一 个 目 录 ( 文 件 夹 ) 下. 3. 新 建 项 目 当 用 户 开 始 新 的 任 务 时, 应 新 建 一 个 项 目, 在 项 目 中, 设 置 所 用 仿 真 器 类 型,POD 类 型, 加 入 用 户 程 序 ( 模 块 ) 4. 项 目 另 存 为 将 项 目 换 名 存 盘, 此 方 法 只 是 将 项 目 用 另 一 个 名 字, 而 不 会 将 项 目 中 的 模 块 和 包 含 文 件 换 成 另 一 个 名 字 存 盘. 如 果 想 将 整 个 项 目 及 模 块 存 到 另 一 个 地 方, 请 用 复 制 项 目 5. 复 制 项 目 复 制 项 目, 用 户 可 以 将 项 目 中 的 所 有 模 块 ( 用 户 程 序 ) 备 份 到 另 一 个 地 方 在 多 模 块 项 目 中, 用 复 制 项 目 功 能, 可 以 避 免 用 户 因 为 少 复 制 某 些 模 块, 而 造 成 项 目 编 译 不 能 通 过. 方 便 用 户 对 程 序 进 行 管 理. 项 目 栏 中 为 当 前 被 复 制 项 目, 包 括 项 目 中 各 模 块, 包 含 文 件, 如 果 不 是 复 制 当 前 项 目, 可 以 通 过 [ 浏 览 ] 找 到 所 要 复 制 的 项 目,[ 到 目 标 路 径 ] 中 为 项 目 复 制 到 何 处, 可 以 通 过 其 后 的 [ 浏 览 ] 指 定 将 项 目 复 制 到 其 它 地 方. 41

6. 调 入 目 标 文 件 装 入 用 户 已 编 译 好 目 标 文 件 ( 图 : 调 入 目 标 文 件 对 话 框 ) 调 入 已 经 编 译 好 的 目 标 文 件 地 址 选 择 一 般 为 缺 省 地 址 ( 由 编 译 器 定 ). 如 果 想 在 当 前 项 目 已 编 译 好 的 二 进 制 代 码 中 插 入 一 段 其 它 代 码, 可 以 去 掉 缺 省 地 址 前 的 选 择. 然 后 填 入 开 始 插 入 的 地 址 和 结 束 地 址 用 调 入 目 标 文 件 的 方 法, 可 以 调 试 已 有 的 二 进 制 代 码 程 序. 而 不 需 要 源 程 序. 直 接 调 入 目 标 文 件 进 行 仿 真 的 方 法 是 : 在 新 建 的 项 目 中, 设 置 仿 真 器 类 型, 仿 真 头 类 型,CPU 类 型 ; 调 入 目 标 文 件.( 不 要 用 加 入 模 块 方 式, 而 是 直 接 调 入 文 件 ) 打 开 CPU 窗 口, 在 CPU 窗 口 中 就 可 以 看 见 目 标 文 件 反 汇 编 生 成 的 程 序 程 序 停 在 与 CPU 相 关 的 地 址 上 (51 系 列 停 在 0000H 处,96 系 列 停 在 2080H) 这 样 就 可 以 单 步 或 全 速 调 试 程 序 了. 7. 保 存 目 标 文 件 42

将 用 户 编 译 生 成 的 目 标 文 件 存 盘 对 于 按 项 目 方 式 仿 真 的 用 户, 系 统 将 程 序 编 译 正 确 后, 会 根 据 用 户 在 仿 真 器 仿 真 器 设 置 下 [ 目 标 文 件 ] 中 设 置 的 格 式, 将 生 成 的 二 进 制 代 码 存 盘. 如 果 用 户 是 用 调 入 目 标 文 件 方 式 进 行 仿 真, 并 且 对 目 标 码 进 行 了 修 改. 就 可 以 用 文 件 保 存 目 标 文 件 方 式 存 盘. 二 搜 索 (S) 1. 查 找 在 当 前 窗 口 中 查 找 符 号, 字 串 可 以 指 定 区 分 大 小 写 方 式, 全 字 匹 配 方 式, 可 以 向 上 / 向 下 查 找 2. 替 换 在 当 前 窗 口 查 找 相 应 文 字, 并 替 换 成 指 定 的 文 字, 可 以 指 定 区 分 大 小 写 方 式 和 全 字 匹 配 方 式 查 找, 可 以 在 指 定 处 替 换, 也 可 以 全 部 替 换 3. 查 找 下 一 个 查 找 文 字 符 号 下 一 次 出 现 的 地 方 4. 项 目 中 查 找 在 项 目 所 有 模 块 ( 文 件 ) 中 查 找 符 号, 字 串 在 项 目 所 包 含 的 文 比 较 多 时, 用 此 方 法 可 以 很 方 便 地 查 到 字 串 在 什 么 地 方 出 现 5. 转 到 指 定 行 将 光 标 转 到 程 序 的 某 一 行 6. 转 到 指 定 地 址 / 标 号 将 光 标 转 到 指 定 地 址 或 标 号 所 在 的 位 置 7. 转 到 当 前 PC 所 在 行 将 光 标 转 到 PC 所 在 的 程 序 位 置 三 项 目 (P) 1. 编 译 编 译 当 前 窗 口 的 程 序 如 有 错 误, 系 统 将 会 指 出 错 误 所 在 的 位 置 2. 全 部 编 译 全 部 编 译 项 目 中 所 有 的 模 块 ( 程 序 文 件 ), 包 含 文 件 如 有 错 误 系 统 会 指 出 错 误 所 在 位 置 3. 加 入 模 块 文 件 在 当 前 项 目 中 添 加 一 个 模 块 4. 加 入 包 含 文 件 在 当 前 项 目 中 添 加 一 个 包 含 文 件 四 执 行 (R) 1. 全 速 执 行 : 运 行 程 序 2. 跟 踪 : 跟 踪 程 序 执 行 的 每 步, 观 察 程 序 运 行 状 态 3. 单 步 : 单 步 执 行 程 序, 与 跟 踪 不 同 的 是, 跟 踪 可 以 跟 踪 到 函 数 或 过 程 的 内 部, 而 单 步 执 行 则 不 跟 踪 到 程 序 内 部 4. 执 行 到 光 标 处 : 程 序 从 当 前 PC 位 置, 全 速 执 行 到 光 标 所 在 的 行 如 果 光 标 所 在 行 没 有 可 执 行 代 码 则 提 示 这 行 没 有 代 码 43

5. 暂 停 : 暂 停 正 在 全 速 执 行 的 程 序 6. 复 位 : 终 止 调 试 过 程, 程 序 将 被 复 位 如 果 程 序 正 在 全 速 执 行, 则 应 先 停 止 7. 设 置 PC: 将 程 序 指 针 PC, 设 置 到 光 标 所 在 行 程 序 将 从 光 标 所 在 行 开 始 执 行 8. 编 辑 观 察 项 观 察 变 量 或 表 达 式 的 值, 可 以 将 需 要 检 查 和 修 改 的 值 或 表 达 式 放 到 观 察 窗 口 里 以 便 检 查 和 修 改 ( 图 : 观 察 项 对 话 框 ) [ 表 达 式 ]: 用 于 输 入 用 户 所 要 求 值 的 表 达 式.( 例 ) [ 重 复 次 数 ]: 如 果 表 达 式 为 某 一 存 储 变 量, 重 复 次 数 表 示 以 此 变 量 开 始 的 连 续 N 个 地 址 的 值.( 例 ) [ 显 示 格 式 ]: 指 定 用 何 种 方 式 显 示 表 达 式 的 值. [ 存 贮 区 域 ]: 指 明 变 量 所 在 的 区 域. [ 显 示 类 型 ]: 指 定 表 达 式 为 何 种 类 型 的 变 量. [ 缺 省 方 式 显 示 ]: 按 照 高 级 语 言 定 义 的 方 式 显 示. [ 存 贮 器 内 容 ]: 以 内 存 方 式 显 示 观 察 内 容, 也 就 是 按 地 址 顺 序 显 示 变 量 值, 与 变 量 类 型 无 关 [ 求 值 ]: 对 表 达 式 求 值, 并 按 显 示 格 式 显 示 在 窗 口 内. [ 加 入 观 察 ]: 将 表 达 式 加 入 观 察 窗 口 中, 以 便 随 时 察 看. [ 编 辑 观 察 ]: 当 修 改 过 窗 口 内 容 后, 按 此 键 后, 替 代 观 察 窗 口 中 的 原 观 察 项, 如 果 选 择 [ 加 入 观 察 ], 则 会 在 观 察 窗 口 中 另 加 一 个 变 量 的 观 察 项, 以 两 种 格 式 观 察 一 个 变 量. [ 取 消 ]: 关 闭 编 辑 观 察 项 窗 口 9. 设 置 / 取 消 断 点 将 光 标 所 在 行 设 为 断 点, 如 果 该 行 原 来 已 为 断 点, 则 取 消 该 断 点. 四 种 方 法 可 以 在 光 标 处 设 置 断 点 (1) 将 光 标 移 到 编 辑 窗 口 内, 行 左 边 的 空 白 处, 光 标 变 成 右 上 指 箭 头, 双 击 鼠 标 左 键, 可 以 设 置 / 取 消 断 点. (2) 使 用 Ctrl-F8 快 捷 键, 可 以 在 光 标 所 在 行 设 置 / 取 消 断 点 (3) 右 击 鼠 标, 弹 出 菜 单, 选 择 设 置 / 取 消 断 点, (4) 主 菜 单 执 行 / 设 置 取 消 断 点, 也 可 以 用 Alt-R / B 菜 单 快 捷 设 置 取 消 断 点 断 点 设 置 好 后, 当 前 行 左 空 白 处 出 现 X 图. 如 果 断 点 有 效, 则 当 前 行 背 景 色 为 红, 如 果 背 景 色 为 绿, 说 明 当 前 程 序 行 不 产 生 代 码, 断 点 无 效. 10. 清 除 全 部 断 点 : 44

清 除 程 序 中 所 有 的 断 点 让 程 序 全 速 执 行 五 窗 口 (W) 1. 项 目 窗 口 打 开 项 目 窗 口, 以 便 在 项 目 中 加 入 模 块 或 包 含 文 件 2. 信 息 窗 口 显 示 系 统 编 译 输 出 的 信 息 如 果 程 序 有 错, 会 以 图 标 形 式 指 出, 表 示 错 误, 表 示 警 告, 表 示 通 过 在 编 译 信 息 行 会 有 相 关 的 生 成 文 件, 双 击 鼠 标 左 键, 或 击 右 键 在 弹 出 菜 单 中 选 择 打 开 功 能, 可 以 打 开 相 关 文 件.( 如 果 有 编 译 错 误, 双 击 左 键, 可 以 在 源 程 序 中 指 出 错 误 所 在 行, 有 时 前 一 行 或 后 一 行 程 序 有 错, 会 造 成 当 前 行 编 译 不 通 过. 而 将 错 误 定 位 在 本 行, 所 以 如 果 发 现 了 错 误, 但 在 本 行 没 有 发 现 错 误, 可 以 查 查 本 行 上 下 的 程 序 ). 例 : 编 译 过 程 发 现 有 错. 在 信 息 窗 口 中 看 到 在 CALC.C 文 件 第 118 行 有 202 号 错 误, 文 字 显 示 错 误 类 型 是, DispVa undefined identifier 即 : 未 定 义 DispVa 标 识 符. 双 击 此 信 息 行, 系 统 将 打 开 CALC.C 文 件, 并 且 在 源 文 件 的 118 行, 指 出 有 错, 可 以 看 到,DispVa 和 ls() 中 间 有 空 格. 原 来 应 为 DispVals(). 3. 观 察 窗 口 观 察 窗 口 也 可 以 用 观 察 数 据 时 效 分 析, 程 序 时 效 分 析, 代 码 覆 盖 以 及 影 子 存 储 器 等 分 析 功 能 的 结 果.( 参 见 各 分 析 功 能 使 用 ) 表 示 当 前 项 目, 双 击 可 以 展 开, 观 察 到 项 目 中 的 模 块 和 项 目 所 使 用 的 变 量 45

表 示 项 目 中 所 包 括 的 模 块. 双 击 可 以 展 开, 观 察 到 项 目 中 包 含 的 过 程 函 数. 例 : 一 个 打 开 的 项 目, 可 以 看 项 目 中 包 括 PTRAP, ATRAP, CALC 三 个 模 块, 其 中 PTRAP 展 开,PTRAP 包 括 WRITELN 和 READLN 两 个 函 数, 可 以 看 到 展 开 的 WRITELN 函 数 使 用 个 三 个 简 单 变 量 :PTR,I,B. 在 展 开 的 CALC 模 块 中 包 含 了 六 个 函 数. 表 示 模 块 中 的 函 数, 双 击 可 以 观 察 到 模 块 中 所 用 到 的 变 量. 表 示 模 块 或 函 数 中 使 用 的 简 单 变 量. ds 表 示 模 块 或 函 数 中 使 用 的 数 组, 双 击 可 以 展 开 数 组, 观 察 数 组 中 各 值 的 变 化. 表 示 模 块 或 函 数 中 使 用 的 结 构, 双 击 可 以 展 开 结 构, 观 察 结 构 内 部 变 量 值. 例 : 一 个 展 开 的 结 构. 结 构 变 量 名 为 TIME, 它 包 括 一 个 数 组 变 量 和 一 个 长 整 形 变 量, 通 过 展 开 的 数 组, 可 以 看 到 数 组 有 四 个 元 素, 其 中 第 二 个 元 素 在 上 次 执 行 过 程 中 发 生 了 变 化, 长 整 形 变 量 L 也 发 生 变 化. 表 示 模 块 或 函 数 中 使 用 的 指 针 表 示 模 块 或 函 数 中 使 用 的 标 号 标 记 颜 色 为 红, 表 示 在 上 次 执 行 过 程 中 变 量 值 发 生 变 化. 标 记 颜 色 为 橄 榄 色, 表 示 在 上 次 执 行 过 程 中, 变 量 被 访 问 过. 可 以 在 弹 出 菜 单 中 选 择 [ 加 入 观 察 ] 把 当 前 行 的 变 量 放 在 窗 口 的 最 后, 而 不 用 展 开 复 杂 的 项 目, 模 块 来 观 察 某 个 变 量. [ 编 辑 观 察 项 ] 可 以 打 开 编 辑 观 察 窗 口, 对 当 前 变 量 进 行 修 改, 求 值 [ 删 除 观 察 项 ] 删 除 观 察 窗 口 后 变 量. 不 再 对 此 变 量 进 行 观 察. [ 察 看 源 程 序 ] 若 窗 口 中 当 前 行 是 模 块 文 件, 用 此 命 令 可 以 打 开 相 应 的 模 块 文 件. [ 展 开 ] [ 收 缩 ] 用 于 展 开 / 收 缩 当 前 行 的 函 数, 结 构, 数 组. 便 于 观 察. [ 修 改 ] 对 当 前 行 的 变 量 进 行 修 改, 在 程 序 运 行 时, 给 出 所 要 求 的 值. 以 观 察 程 序 在 此 值 时, 运 行 的 结 果. [ 窗 口 总 在 最 上 面 ] 若 此 项 被 选 中, 则 窗 口 会 一 直 显 示 在 前 面, 覆 盖 其 它 窗 口. 建 议 选 中 此 项, 使 窗 口 在 最 上 面 时, 不 要 使 窗 口 最 大 化, 以 免 完 全 覆 盖 其 它 窗 口. 46

在 观 察 窗 口 最 下 面 的 状 态 行 可 以 看 到 观 察 项 的 更 详 细 信 息, 当 你 在 点 击 一 个 项 目 时, 可 以 看 到 该 观 察 项 的 类 型 ( 模 块, 函 数 / 过 程 ), 所 在 区 域 (CODE,DATA,BIT,XDATA 等 到 ), 地 址, 数 据 类 型 (unsigned char, unsigned int, real 等 ) 4. CPU 窗 口 : 通 过 CPU 窗 口, 可 以 看 到 你 编 译 正 确 的 机 器 码 及 反 汇 编 程 序, 可 以 让 你 更 清 楚 地 了 解 程 序 执 行 过 程 CPU 窗 口 中 还 有 SFR( 特 殊 功 能 寄 存 器 ) 窗 口 和 位 窗 口, 让 你 了 解 程 序 执 行 过 程 中 寄 存 器 的 变 化 机 器 码 窗 口 内 为 程 序 地 址, 机 器 码, 反 汇 编 码. 窗 口 最 左 边 的 为 当 前 PC 所 在 行, 为 断 点 行. 在 机 器 码 窗 口 内 也 支 持 点 屏 功 能, 在 反 汇 编 码 处, 点 击 寄 存 器, 可 以 看 到 寄 存 器 的 值. 在 寄 存 器 窗 口 内 为 寄 存 器 名 称 和 值. 位 窗 口 内 为 所 选 寄 存 器 的 每 一 位 名 称 和 值. 可 修 改 寄 存 器 值, 或 其 中 某 一 位 的 值, 以 观 察 程 序 执 行 的 结 果.CPU 窗 口 的 状 态 行 显 示 的 是, 当 前 选 中 的 寄 存 器 名 称 和 地 址, 及 寄 存 器 中 选 中 位 的 名 称 和 可 寻 址 的 位 地 址. 机 器 码 窗 口 的 弹 出 菜 单 : 执 行 到 光 标 处 : 使 程 序 从 当 前 PC 值, 全 速 执 行 到 光 标 所 在 行, 用 这 种 方 法 可 以 在 调 试 程 序 时, 跳 过 一 些 不 必 要 的 指 令. 将 程 序 停 到 所 要 求 的 位 置 上. 转 到 指 定 地 址 / 标 号 : 将 光 标 跳 到 某 个 地 址 或 标 号 所 在 位 置, 以 便 察 看 相 应 的 程 序, 或 使 用 执 行 到 光 标 处 功 能, 也 可 以 设 置 断 点,, 将 程 序 全 速 执 行 到 相 应 位 置. 转 到 当 前 PC 所 在 行 : 将 光 标 跳 到 PC 所 在 行, 由 于 在 检 查 程 序 时, 可 能 会 将 PC 所 在 行 移 出 当 前 窗 口, 用 这 种 方 法 可 找 回 PC 所 在 行. 取 消 / 设 置 断 点 : 在 光 标 所 在 行, 设 置 断 点, 使 程 序 全 速 执 行 到 此 处. 若 此 行 已 是 断 点, 再 次 点 击 将 取 消 该 断 点. 寄 存 器 窗 口 的 弹 出 菜 单 : 加 入 观 察 : 将 当 前 寄 存 器 放 入 观 察 窗 口, 以 方 便 随 时 察 看. 修 改 : 修 改 当 前 寄 存 器 值. 在 程 序 执 行 时, 可 以 用 这 种 方 法, 把 寄 存 器 值 为 你 所 指 定 的 值, 从 而 观 察 程 序 在 此 值 时 运 行 的 结 果. 5. 数 据 窗 口 51 系 列 有 以 下 四 种 数 据 窗 口 DATA 内 部 数 据 窗 口 CODE 程 序 数 据 窗 口 XDATA 外 部 数 据 窗 口 PDATA 外 部 数 据 窗 口 ( 页 方 式 ) 内 部 数 据 窗 口 47

在 内 部 数 据 窗 口 中 可 以 看 到 CPU 内 部 的 数 据 值, 红 色 的 为 上 一 步 执 行 过 程 中, 改 变 过 的 值, 窗 口 状 态 栏 中 为 选 中 数 据 的 地 址, 可 以 在 选 中 的 数 据 上 直 接 修 改 数 据 的 十 六 进 制 值, 也 可 以 用 弹 出 菜 单 的 修 改 功 能, 修 改 选 中 的 数 据 值 弹 出 菜 单 : 修 改 : 修 改 选 中 数 据 的 值, 可 以 输 入 十 进 制, 十 六 进 制, 二 进 制 的 值, 与 直 接 修 改 不 同 的 是, 用 这 种 方 法 可 以 输 入 多 种 格 式 数 据, 而 直 接 修 改 只 能 输 入 十 六 进 制 数 据 46( 十 进 制 ),2EH( 十 六 进 制 ),00101110B( 二 进 制 ) 都 是 有 效 的 数 据 格 式, 显 示 为 : 选 择 不 同 的 数 据 类 型 显 示 数 据 内 容, 可 以 是 字 节 方 式 (BYTE), 也 可 以 是 字 方 式 (WORD, 两 字 节 ), 可 以 是 长 整 型 (LONGINT, 四 字 节 ), 也 可 以 是 实 数 型 (REAL, 四 字 节 ) 这 里 是 选 择 整 个 窗 口 的 显 示 方 式, 如 果 想 指 定 个 别 数 据 的 显 示 方 式, 可 以 用 主 菜 单 / 执 行 / 编 辑 观 察 项 功 能, 选 择 所 要 选 择 的 显 示 类 型 ( 参 见 编 辑 观 察 项 窗 口 ) 程 序 数 据 窗 口 程 序 数 据 窗 口 显 示 的 是 编 译 后 程 序 码, 状 态 栏 显 示 的 是 选 中 数 据 的 地 址, 可 以 对 在 选 中 数 据 上 直 接 修 改 程 序 数 据 的 十 六 进 制 值, 也 可 以 对 程 序 数 据 进 行 块 填 充, 块 移 动 操 作, 也 可 以 读 入 一 段 二 进 制 代 码 插 入 程 序 数 据 中, 也 可 以 将 程 序 数 据 中 的 某 段 代 码 写 文 件 中. 弹 出 菜 单 修 改 : 修 改 选 中 数 据 的 值, 可 以 输 入 十 进 制, 十 六 进 制, 二 进 制 的 值, 与 直 接 修 改 不 同 的 是, 用 这 种 方 法 可 以 输 入 多 种 格 式 数 据, 而 直 接 修 改 只 能 输 入 十 六 进 制 数 据 46( 十 进 制 ), 2EH( 十 六 进 制 ),00101110B( 二 进 制 ) 都 是 有 效 的 数 据 格 式. 48

块 操 作 : 对 程 序 数 据 以 块 的 方 式 进 行 操 作. 在 窗 口 中 按 往 左 键 拖 动, 可 以 指 定 所 要 操 作 的 块 块 填 充 : 将 选 中 的 块 内 数 据 值, 填 充 为 指 定 值.( 图 ) 块 移 动 : 将 选 中 的 块 移 动 到 指 定 地 址.( 图 ) 显 示 为 : 选 择 不 同 的 数 据 类 型 显 示 数 据 内 容, 可 以 是 字 节 方 式 (BYTE), 也 可 以 是 字 方 式 (WORD, 两 字 节 ), 可 以 是 长 整 型 (LONGINT, 四 字 节 ), 也 可 以 是 实 数 型 (REAL, 四 字 节 ) 这 里 是 选 择 整 个 窗 口 的 显 示 方 式. 6. 跟 踪 窗 口 显 示 跟 踪 器 捕 捉 到 的 程 序 执 行 的 轨 迹, 其 中 可 以 看 到 帧 号, 时 标, 反 汇 编 程 序, 对 应 的 源 程 序 和 程 序 所 在 的 文 件 名 7. 逻 辑 分 析 窗 口 在 这 窗 口 中 观 察 到 逻 辑 分 析 仪 所 采 集 到 的 波 形, 可 以 设 置 不 同 的 采 样 方 式, 以 满 足 各 种 情 况 下 的 需 要 逻 辑 分 析 仪 是 数 字 设 计 中 不 可 缺 少 的 设 备, 通 过 它, 可 以 清 楚 地 看 到 程 序 执 行 时, 各 端 口 输 出 的 波 形, 迅 速 地 帮 助 你 找 出 硬 件 和 软 件 中 设 计 错 误 49

附 录 二 : WINMED 仿 真 器 使 用 说 明 一 仿 真 器 设 置 设 置 项 目 编 译 语 言 的 路 径, 命 令 行 选 项 [ 编 译 器 路 径 ]: 指 明 本 系 统 汇 编 器, 编 译 器 所 在 位 置, 系 统 缺 省 51 系 列 编 译 器 在 C:\COMP51\ 文 件 夹 下, 缺 省 96 系 列 编 译 器 在 C:\COMP96\ 文 件 夹 下. 本 系 统 使 用 的 编 译 器 为 第 三 方 软 件, 你 应 从 其 它 途 径 获 得. [ASM 命 令 行 ]: 使 用 伟 福 汇 编 器, 需 要 选 择 是 否 使 用 伟 福 预 定 义 的 符 号. 在 伟 福 汇 编 器 中 已 经 把 51 使 用 的 一 些 常 用 符 号, 寄 存 器 名 定 义 为 相 应 的 值, 就 可 以 直 接 使 用 这 些 符 号 [C 命 令 行 ]: 项 目 中 若 有 C 语 言 程 序, 系 统 进 行 编 译 时, 使 用 此 行 参 数 对 C 程 序 进 行 编 译. [PL/M 命 令 行 ]: 项 目 中 若 有 PL/M 语 言 程 序, 系 统 编 译 时, 就 使 用 此 行 参 数 对 程 序 进 行 编 译. [LINK 命 令 行 ]: 系 统 对 目 标 文 件 链 接 时, 使 用 此 参 数 链 接. 注 : 除 非 你 对 命 令 行 参 数 非 常 了 解, 并 且 确 实 需 要 修 改 这 些 参 数, 一 般 情 况 下, 不 需 要 修 改 系 统 给 出 的 缺 省 参 数. 以 免 系 统 不 能 正 常 编 译. [ 编 译 器 选 择 ]: 选 择 使 用 伟 福 汇 编 器, 还 是 英 特 尔 汇 编 器, 系 统 对 C 语 言 程 序 和 PL/M 语 言 编 译 是 采 用 第 三 方 编 译 器. 一 般 情 况 下, 如 果 用 户 项 目 中 都 是 汇 编 语 言 程 序, 没 有 C 语 言 和 PL/M 语 言, 选 择 伟 福 汇 编 器. 如 果 用 户 项 目 中 含 有 C 语 言,PL/M 语 言, 或 者 汇 编 语 言 是 用 英 特 尔 格 式 编 写 的, 就 选 择 英 特 尔 汇 编 器. [ 缺 省 显 示 格 式 ]: 指 定 观 察 变 量 显 示 的 方 式, 一 般 为 混 合 十 / 十 六 进 制. 50

二 目 标 文 件 设 置 生 成 的 目 标 文 件 的 地 址, 及 生 成 目 标 文 件 的 格 式 一 般 情 况 下, 地 址 选 择 为 缺 省 方 式. 即 由 编 译 确 定. 如 果 你 想 重 新 定 位 你 的 程 序 就 要 指 定 地 址, 方 法 是 : 去 掉 缺 省 地 址 前 面 的 选 择. 在 开 始 地 址, 结 束 地 址 处 填 入 相 应 的 地 址. 编 译 可 以 生 成 BIN( 二 进 制 ) 格 式 和 HEX( 英 特 尔 ) 格 式 的 目 标 文 件, 可 以 根 据 你 的 需 要, 选 择 相 应 的 格 式. POD PIC 系 列 仿 真 头 设 置 : [(FOSC) 频 率 选 择 ]: 根 据 用 户 目 标 板 晶 振 频 率 不 同, 选 择 晶 振 的 频 率 范 围 对 于 MICROCHIP 早 期 的 仿 真 芯 片,4MHz 晶 振 认 为 是 中 频 率 晶 振 而 对 于 现 在 的 仿 真 芯 片,4MHz 则 认 为 是 高 频 率 晶 振 [(WDTE) 看 门 狗 使 能 ]: 决 定 程 序 工 作 时 看 门 狗 是 否 工 作, 在 调 试 程 序 时, 请 关 闭 看 门 狗, 否 在 调 试 程 序 时, 会 工 作 不 正 常, 出 现 莫 明 其 妙 的 错 误. [ 加 密 位 ]: 程 序 调 试 正 确 后, 选 择 程 序 是 否 以 加 密 方 式 烧 到 芯 片 中. 更 详 细 的 说 明 请 参 见 MICROCHIP 公 司 的 PIC 芯 片 资 料. 三 通 信 设 置 51

仿 真 器 与 计 算 机 通 信 设 置 包 括 通 信 端 口 选 择, 速 率 选 择, 字 间 距 选 择, 以 及 串 口 的 测 试 功 能 如 果 选 择 了 使 用 伟 福 软 件 仿 真, 则 不 需 要 设 置 通 信 端 口 [ 端 口 选 择 ]: 选 择 仿 真 器 与 计 算 机 连 接 的 串 口 号. 如 果 计 算 机 与 仿 真 器 连 接 不 上, 请 检 查 通 信 端 口 是 否 选 择 正 确. [ 波 特 率 选 择 ]: 选 择 仿 真 器 与 计 算 机 连 接 的 速 度. 如 果 在 高 速 率 时 通 信 不 流 畅, 请 降 低 通 信 速 率. [ 字 符 间 隔 ]: 选 择 通 信 时, 字 符 与 字 符 之 间 的 间 隙, 如 果 在 小 间 隔 时, 通 信 不 是 很 流 畅, 请 调 到 较 大 的 间 隔. [ 使 用 伟 福 软 件 模 拟 器 ]: 如 果 选 择 此 项, 可 以 在 完 全 脱 离 硬 件 仿 真 器 情 况 下, 对 软 件 进 行 模 拟 执 行. 如 果 使 用 硬 件 仿 真 器 调 试 程 序, 请 去 掉 [ 使 用 伟 福 软 件 模 拟 器 ] 前 的 选 择 勾. [ 测 试 串 行 口 ]: 用 来 检 测 仿 真 器 是 否 正 确 连 接 到 计 算 机 的 串 行 口 上. 四 设 置 工 作 目 录 进 入 MedWin 集 成 开 发 环 境 后, 系 统 首 先 提 示 默 认 的 工 作 目 录 为 C:\MedWin 我 们 建 议 用 户 根 据 需 要 选 择 合 适 的 工 作 目 录, 例 如 将 工 作 目 录 改 为 D:\WorkDir( 用 户 可 自 行 定 义 目 录 名 称 ) 注 意 : 不 得 使 用 长 文 件 名 作 为 工 作 目 录! 设 置 MedWin 第 一 步 : 启 动 MedWin 1. 由 安 装 MedWin 集 成 开 发 环 境, 直 接 启 动 MedWin 2. 或 点 击 Windows[ 开 始 程 序 Manley MedWin 中 文 版 ] 启 动 中 文 版 MedWin 3. 或 点 击 Windows[ 开 始 程 序 Manley MedWin] 启 动 英 文 版 MedWin 4. 如 果 已 经 连 接 仿 真 器, 屏 幕 上 出 现 MedWin 的 初 始 画 面, 进 入 启 动 MedWin 的 第 三 步 5. 如 果 没 有 连 接 仿 真 器, 屏 幕 上 出 现 端 口 选 择 画 面, 进 入 启 动 MedWin 的 第 二 步 第 二 步 : 选 择 进 入 在 线 仿 真 或 模 拟 仿 真 1. 由 于 仿 真 器 供 电 电 源 通 讯 电 缆 连 接 问 题, 请 检 查 并 使 仿 真 器 工 作 正 常 后, 点 击 对 话 框 中 [ 仿 真 器 ] 按 钮, 进 入 在 线 仿 真 状 态 2. 如 果 确 认 需 要 进 行 模 拟 仿 真, 点 击 [ 模 拟 仿 真 ] 按 钮, 进 入 模 拟 仿 真 状 态 经 过 以 上 步 骤, 屏 幕 上 出 现 MedWin 集 成 开 发 环 境 的 初 始 画 面, 并 渐 渐 消 失, 出 现 MedWin 集 成 开 发 环 境 的 系 统 画 面 52

MedWin 集 成 开 发 环 境 初 始 画 面 MedWin 集 成 开 发 环 境 端 口 选 择 第 三 步 : 设 置 工 作 目 录 进 入 MedWin 集 成 开 发 环 境 后, 系 统 首 先 提 示 默 认 的 工 作 目 录 为 C:\MedWin 我 们 建 议 用 户 根 据 需 要 选 择 合 适 的 工 作 目 录, 例 如 将 工 作 目 录 改 为 D:\WorkDir( 用 户 可 自 行 定 义 目 录 名 称 ) 更 改 MedWin 集 成 开 发 环 境 工 作 目 录 的 步 骤, 必 须 在 Windows 环 境 下 进 行 : 1. 打 开 Windows 的 资 源 管 理 器 2. 选 择 我 的 电 脑 -> 本 地 磁 盘 (D:) 3. 单 击 鼠 标 右 键, 选 择 新 建 文 件 夹, 命 名 为 WorkDir 第 四 步 : 配 置 编 译 / 汇 编 / 连 接 器 及 环 境 MedWin 集 成 开 发 环 境 初 始 默 认 编 译 / 汇 编 / 连 接 环 境 为 使 用 万 利 电 子 自 主 版 权 的 宏 汇 编 和 连 接 器, 使 用 默 认 设 置, 汇 编 连 接 信 息 和 错 误 关 联 均 为 中 文 提 示 当 选 择 用 户 设 置 编 译 / 汇 编 / 连 接 环 境 时, 必 须 注 意 选 择 合 适 的 路 径 和 程 序 : 如 1. 编 译 器 路 径 为 C:\C51\BIN\C51.exe 2. 汇 编 器 路 径 为 C:\C51\BIN\A51.exe 3. 连 接 器 路 径 为 C:\C51\BIN\BL51.exe 系 统 头 文 件 库 文 件 的 环 境 为 : 1. 编 译 器 系 统 头 文 件 路 径 为 C:\C51\INC 2. 编 译 器 系 统 库 文 件 路 径 为 C:\C51\LIB MedWin 集 成 开 发 环 境 默 认 源 程 序 的 扩 展 名 为 : 1. C 源 程 序 文 件 的 扩 展 名 为.C 2. 汇 编 源 程 序 文 件 的 扩 展 名 为.ASM 选 择 驱 动 器 D 盘 后, 打 开 文 件 夹 ( 目 录 )WorkDir, 确 认 后, 工 作 目 录 设 置 即 告 完 成 系 统 将 提 示 进 行 下 一 步 设 置 : 编 译 / 汇 编 / 连 接 器 的 配 置 第 五 步 : 设 置 文 本 编 辑 器 设 置 文 本 编 辑 器 可 以 用 于 设 置 文 本 窗 口 的 前 景 字 符 的 颜 色 背 景 颜 色 字 体 和 编 辑 文 件 类 型 53

当 您 已 经 存 在 编 译 器 / 汇 编 器 / 连 接 器 时, 建 议 按 照 下 列 目 录 存 放 : 1. C:\C51\BIN 存 放 C51.exe,A51.exe,L51.exe 或 BL51.exe 2. C:\C51\INC 存 放 C 程 序 的 头 文 件 3. C:\C51\ASM 存 放 汇 编 程 序 的 嵌 入 文 件 4. C:\C51\LIB 存 放 C 程 序 连 接 所 需 的 库 文 件 用 户 可 按 照 上 面 提 示 的 路 径 设 置 编 译 器 / 汇 编 器 / 连 接 器 及 环 境 ; 如 编 译 器 / 汇 编 器 / 连 接 器 存 放 在 其 它 目 录, 则 必 须 在 输 入 框 中 设 置 合 适 的 路 径 或 点 击 按 钮 选 择 相 应 的 文 件 及 路 径 当 您 使 用 Keil 编 译 器 时, 其 连 接 器 应 设 为 BL51.exe, 当 您 使 用 Franklinl 编 译 器 时, 其 连 接 器 应 设 为 L51.exe 编 译 / 汇 编 / 连 接 工 具 路 径 选 择 编 译 器 头 文 件 和 连 接 器 库 文 件 路 径 选 择 设 置 文 本 编 辑 器 参 数 MedWin 集 成 开 发 环 境 提 供 了 以 下 两 种 方 式 开 发 用 户 应 用 程 序,: 54

1. 不 使 用 MedWin 集 成 开 发 环 境 项 目 管 理 方 式 对 源 程 序 文 件 直 接 进 行 汇 编 / 连 接, 兼 容 传 统 开 发 习 惯 2. 使 用 MedWin 集 成 开 发 环 境 项 目 管 理 方 式 可 进 行 多 模 块 混 合 语 言 编 程 的, 同 样 也 适 合 单 模 块 程 序 的 开 发 用 户 无 论 是 单 模 块 或 多 模 块 的 程 序 开 发, 我 们 都 建 议 使 用 项 目 管 理 方 式 管 理 应 用 程 序 不 使 用 项 目 管 理 方 式 开 发 应 用 程 序 不 使 用 MedWin 集 成 开 发 环 境 项 目 管 理 方 式, 只 能 对 单 模 块 方 式 下 的 应 用 程 序 开 发, 具 有 很 大 的 局 限 性 以 下 是 不 使 用 MedWin 集 成 开 发 环 境 项 目 管 理 方 式 开 发 应 用 程 序 的 步 骤 : 五 MedWin 开 发 入 门 第 一 步 : 关 闭 当 前 项 目 文 件 命 令 :[ 项 目 管 理 关 闭 当 前 项 目 ] 不 使 用 MedWin 集 成 开 发 环 境 项 目 管 理 方 式 开 发 应 用 程 序, 用 户 必 须 关 闭 已 经 打 开 的 项 目, 此 时 MedWin 集 成 开 发 环 境 关 闭 界 面 上 所 有 的 窗 口 因 为 当 打 开 项 目 文 件 后,MedWin 集 成 开 发 环 境 默 认 所 有 编 译 / 汇 编 产 生 代 码 的 过 程 都 是 对 项 目 或 项 目 所 包 含 的 文 件 进 行 的 MedWin 集 成 开 发 环 境 软 件 桌 面 第 二 步 : 在 文 件 菜 单 下 打 开 应 用 程 序 命 令 :[ 文 件 新 建 ] 或 [ 文 件 打 开 ] 单 模 块 方 式 下 的 文 件 调 试 可 以 按 照 以 下 方 法 新 建 或 打 开 文 件 : 1. 点 击 [ 文 件 新 建 ], 输 入 文 件 名 和 扩 展 名, 新 建 文 件 2. 点 击 [ 文 件 打 开 ], 选 择 文 件 捡 取 框 中 的 文 件 将 其 打 开 第 三 步 : 编 译 / 汇 编 命 令 :[ 项 目 管 理 编 译 / 汇 编 ] MedWin 集 成 开 发 环 境 根 据 文 件 的 扩 展 名, 自 动 对 当 前 激 活 的 文 件 选 择 调 用 外 部 编 译 器 或 汇 编 器 : 1. 如 果 当 前 文 件 的 扩 展 名 为 ASM 或 系 统 定 义 的 扩 展 名, 编 译 / 汇 编 命 令 调 用 外 部 汇 编 命 令 对 当 前 文 件 汇 编 55

2. 如 果 当 前 文 件 的 扩 展 名 为 C 或 系 统 定 义 的 扩 展 名, 编 译 / 汇 编 命 令 调 用 外 部 C 编 译 命 令 对 当 前 文 件 编 译 执 行 [ 项 目 管 理 编 译 / 汇 编 ] 命 令 后 产 生 的 结 果 显 示 在 消 息 框 中 编 译 / 汇 编 结 果 第 四 步 : 错 误 信 息 关 联 MedWin 集 成 开 发 环 境 调 用 外 部 命 令 编 译 / 汇 编 后 产 生 的 结 果, 显 示 在 消 息 窗 口 中, 消 息 窗 口 可 由 热 键 Ctrl+9 激 活 当 编 译 / 汇 编 发 生 错 误 时, 消 息 窗 口 中 的 错 误 信 息 自 动 与 源 文 件 关 联, 提 示 出 错 的 位 置 在 消 息 窗 口 中 错 误 提 示 处 双 击 鼠 标 左 键 或 键 入 回 车, 可 将 错 误 信 息 与 源 文 件 的 错 误 位 置 关 联 : 1. 如 果 编 译 / 汇 编 没 有 错 误, 可 进 入 第 五 步 操 作 2. 如 果 编 译 / 汇 编 出 现 错 误, 在 修 改 源 文 件 后 重 复 进 行 第 三 步 操 作 第 五 步 : 产 生 代 码 并 装 入 仿 真 器 调 试 命 令 :[ 项 目 管 理 产 生 代 码 ] 或 [ 项 目 管 理 产 生 代 码 并 装 入 ] 产 生 代 码 或 产 生 代 码 并 装 入 命 令 对 经 过 编 译 / 汇 编 无 误 后 产 生 的 OBJ 文 件 进 行 连 接 产 生 用 于 下 载 的 代 码 此 命 令 自 动 地 对 修 改 过 的 源 程 序 进 行 编 译 或 汇 编, 对 没 有 修 改 过 的 程 序 将 越 过 编 译 或 汇 编 过 程, 然 后 连 接 所 有 的 OBJ,LIB 文 件, 再 装 载 代 码 到 仿 真 器, 完 成 调 试 程 序 所 需 的 准 备 工 作 装 载 完 成 后, 出 现 Loading program ( 项 目 名 )...Completed 的 字 样 如 果 需 要 设 置 文 件 编 译 / 汇 编 的 命 令 行 参 数, 可 以 选 择 [ 项 目 管 理 文 件 属 性 ] 命 令 设 置 MedWin 集 成 开 发 环 境 调 试 界 面 使 用 项 目 管 理 方 式 开 发 应 用 程 序 使 用 MedWin 集 成 开 发 环 境 项 目 管 理 方 式 开 发 程 序, 适 用 于 各 种 方 式 下 的 单 模 块 和 多 模 块 方 式 应 用 程 序 以 下 是 使 用 MedWin 集 成 开 发 环 境 项 目 管 理 方 式 开 发 应 用 程 序 的 步 骤 : 56

1. 建 立 一 个 新 的 项 目 进 入 第 一 步 新 建 项 目 文 件 2. 打 开 已 经 存 在 的 项 目 文 件 进 入 第 三 步 打 开 项 目 文 件 第 一 步 : 新 建 项 目 文 件 命 令 :[ 项 目 管 理 新 建 项 目 文 件 ] 项 目 名 称 : MedWin 集 成 开 发 环 境 的 项 目 器 是 按 项 目 名 称 管 理 的, 项 目 管 理 器 内 的 项 目 名 称 不 可 以 相 同 在 项 目 名 称 输 入 栏 内, 用 户 必 须 输 入 项 目 名 称, 并 且 项 目 名 不 得 超 过 8 个 字 符, 不 可 以 使 用 汉 字 以 及 -,?,*,/ 等 DOS 文 件 名 所 不 可 以 使 用 的 字 符, 也 不 可 以 输 入 盘 符 和 路 径! 高 级 设 置 : 高 级 设 置 是 用 户 程 序 所 处 路 径 与 当 前 工 作 目 录 不 同 时, 选 择 存 放 项 目 文 件 路 径 的 过 程 通 常, 当 用 户 源 程 序 文 件 存 放 在 当 前 工 作 目 录 时, 不 需 要 进 行 高 级 设 置 如 果 源 程 序 文 件 不 在 当 前 工 作 目 录 时, 用 户 必 须 选 择 高 级 设 置, 将 项 目 文 件 存 放 到 用 户 源 程 序 所 处 的 目 录 如 果 源 文 件 与 项 目 文 件 不 在 同 一 目 录 时, 将 会 出 现 不 能 进 行 源 文 件 调 试 的 情 况 发 生 新 建 项 目 文 件 输 入 窗 口 存 储 器 属 性 存 储 器 属 性 Small / Compact / Large, 此 属 性 为 C 编 译 器 所 需, 如 果 项 目 文 件 中 包 含 C 程 序, 用 户 必 须 设 置 存 储 器 属 性 RAM 尺 寸 :128/256, 此 属 性 为 连 接 器 所 需 的 控 制 项 系 统 默 认 128 字 节 系 统 默 认 标 准 80C51 汇 编 选 项, 此 选 项 为 汇 编 器 所 需 的 控 制 项 选 中 时, 汇 编 器 默 认 SFR 为 80C51 如 果 项 目 所 使 用 的 不 是 标 准 的 80C51, 用 户 必 须 定 义 其 使 用 的 SFR, 例 : P0 DATA 80H IE DATA 0A8H TR0 BIT 8CH 项 目 环 境 设 置 项 目 头 文 件 路 径 为 该 项 目 所 定 义 的 头 文 件 所 处 的 路 径 该 路 径 与 系 统 定 义 的 头 文 件 路 径 在 DOS 环 境 设 置 的 关 系 是 : set c51inc=( 系 统 定 义 的 头 文 件 路 径 );( 项 目 定 义 的 头 文 件 路 径 ) 项 目 库 文 件 路 径 为 该 项 目 所 定 义 的 库 文 件 所 处 的 路 径, 该 路 径 与 系 统 定 义 的 库 文 件 路 径 在 DOS 环 境 设 置 的 关 系 是 : set c51lib=( 系 统 定 义 的 库 文 件 路 径 );( 项 目 定 义 的 库 文 件 路 径 ) 在 项 目 的 编 译 和 连 接 过 程 中,MedWin 自 动 加 入 以 上 环 境 变 量 的 设 置 通 常 用 户 不 需 要 设 置 项 目 定 义 的 头 文 件 和 库 文 件 路 径, 只 有 在 高 级 应 用 时 才 需 设 置 调 试 信 息 建 立 新 的 项 目 后, 系 统 默 认 为 产 生 调 试 信 息, 能 够 进 行 源 文 件 调 试 57

更 多 的 文 件 属 性 关 于 编 译 / 汇 编 程 序 的 更 多 的 文 件 属 性, 可 在 [ 项 目 管 理 文 件 属 性 ] 中 设 置 如 果 在 多 模 块 调 试 中 需 要 关 闭 一 个 或 多 个 文 件 的 源 文 件 调 试, 可 在 文 件 属 性 对 话 框 中, 分 别 关 闭 产 生 调 试 信 息 选 项 第 二 步 : 添 加 文 件 命 令 :[ 项 目 管 理 添 加 文 件 项 ] 添 加 文 件 命 令 用 于 将 各 类 文 件 添 加 至 项 目 管 理 器, 新 建 项 目 文 件 后 集 成 环 境 会 自 动 打 开 添 加 文 件 对 话 框, 提 供 选 择 请 根 据 : 1. 如 果 文 件 存 在, 在 文 件 捡 取 框 中 选 择 并 打 开 文 件 添 加 2. 如 果 文 件 不 存 在, 必 须 输 入 文 件 名 ( 包 含 扩 展 名 ), 建 立 新 文 件 后, 键 入 命 令 [ 项 目 管 理 添 加 文 件 项 ], 将 新 建 文 件 添 加 到 项 目 中 添 加 文 件 选 择 添 加 文 件 选 项, 表 示 在 项 目 建 立 后 会 自 动 打 开 文 件 捡 取 框, 供 用 户 选 择 文 件 添 加 到 项 目 管 理 器 中 添 加 文 件 检 取 框 第 五 步 : 错 误 信 息 关 联 文 件 经 过 编 译 / 汇 编 后 的 结 果 显 示 于 消 息 窗 口, 出 现 错 误 后 错 误 信 息 与 文 件 关 联 在 消 息 窗 口 中 错 误 之 处 双 击 鼠 标 左 键 或 键 入 回 车, 即 可 将 错 误 与 文 件 关 联 : 1. 如 果 没 有 错 误, 进 入 第 六 步 操 作 2. 如 果 出 现 错 误, 修 改 文 件 后 重 复 进 行 第 四 步 操 作 第 六 步 : 产 生 代 码 并 装 入 仿 真 器 命 令 :[ 项 目 管 理 产 生 代 码 ] 命 令 :[ 项 目 管 理 产 生 代 码 并 装 入 ] 命 令 :[ 项 目 管 理 重 新 产 生 全 部 代 码 ] 产 生 代 码 或 产 生 代 码 并 装 入 命 令, 对 经 过 编 译 / 汇 编 无 误 后 产 生 的 OBJ 文 件 进 行 连 接, 产 生 用 于 下 载 的 代 码 此 命 令 对 修 改 过 的 源 程 序 自 动 进 行 编 译 或 汇 编, 否 则 将 越 过 编 译 或 汇 编 过 程 进 行 连 接, 并 装 载 代 码 到 仿 真 器, 完 成 调 试 文 件 所 需 的 准 备 工 作 1. 使 用 产 生 代 码 命 令, 项 目 管 理 器 会 自 动 判 别 文 件 是 否 需 要 重 新 编 译 / 汇 编, 提 高 调 试 效 率 2. 使 用 产 生 代 码 并 装 入 命 令, 项 目 管 理 器 会 自 动 判 别 文 件 是 否 需 要 重 新 编 译 / 汇 编, 并 将 连 接 产 生 的 代 码 下 载 到 仿 真 器, 提 供 调 试 运 行 第 三 步 : 打 开 项 目 文 件 命 令 :[ 项 目 管 理 打 开 项 目 文 件 ] 对 于 已 经 存 在 的 项 目 文 件, 可 以 直 接 打 开 项 目 文 件 进 入 第 四 步 操 作 第 四 步 : 编 辑, 编 译 / 汇 编 / 连 接 命 令 :[ 项 目 管 理 编 译 / 汇 编 ] MedWin 集 成 开 发 环 境 根 据 文 件 的 扩 展 名, 自 动 对 激 活 的 文 件 选 择 调 用 外 部 编 译 器 或 汇 编 器 : 58