单片机实验答案_第1页
单片机实验答案_第2页
单片机实验答案_第3页
单片机实验答案_第4页
单片机实验答案_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1 前前 言言 由于单片机具有高可靠性 超小型 低价格 容易产品化等特点 在仪 器仪表智能化 实时工业控制 实时数据采集 智能终端 通信设备 导航 系统 家用电器等控制应用领域 具有十分广泛的用途 目前在国内单片机 应用中 MCS 51 系列单片机仍然是一种主流单片机 为配合 单片机应 用技术 课程的教学 使学生尽快了解 掌握89C51 单片机的使用 特编 写了这本上机指导书 基础篇 单片机 是一门实践性很强的课程 提高教学质量的一个重要环节 是上机实习和训练 无论是学习汇编语言程序设计 还是学习接口电路和外 设与计算机的连接 或者软硬兼施地研制单片机应用系统 不通过加强动手 是不能获得预期效果的 本实验指导书提供了9 个实验的指导性材料 实 验还有一些思考题 可以根据课时的安排和教学要求进行取舍 为了达到某 些实验的目的 书中提供的参考程序与实际应用中的程序会有些差别 所以 不一定是最优的 由于时间紧迫 加上编者学识有限 如有不妥之处 欢迎读者批评指 正 编 者 2 实实 验验 须须 知知 1 实验前必须阅读教科书的有关部分和本实验指导书 了解实验目的 内容 步骤 做好实验前的准备工作 编写好实验中要求自编或修改的程序 完成实验前要求完成的准备工作后方可以上机实验 否则不得上机操作 2 各种电源的电压和极性不能接错 严禁带电接线和接插元器件 通 电前须经过指导教师检查认可后方能通电 3 不准随意拨弄各种与实验无关的旋钮和开关 凡与本次实验无关的 任何设备都禁止动用和摸弄 注意安全 4 严禁用手触摸实验系统印制电路板和元器件的引脚 防止静电击穿 芯片 5 实验中若损坏仪器或元器件 应及时向指导教师报告 听候处理 6 在实验室内保持安静和卫生 不得随意走动和喧哗 集中精力完成 实验 7 实验完成后 关掉电源 及时整理实验台桌面 保持环境整洁 8 按规定认真完成实验报告 对实验中出现的现象进行分析 在规定 的时间内交上实验报告 9 凡实验或实验报告未能按规定完成的学生 不能参加本课程的考试 或考查 3 第一章第一章 实验系统介绍实验系统介绍 本实验系统采用 EL MUT III 型单片机教学实验系统 1 系统概述系统概述 1 微处理器 89S51 P1 口 P3 口对用户开放 供用户使用 2 时钟频率 6 0MHz 3 存储器 程序存储器与数据存储器统一编址 最多可达 64KB 板载 ROM 监控 程序 27C256 12KB RAM1 程序存储器 6264 8KB 供用户下载实验程序 可扩展达 32KB RAM2 数据存储器 6264 8KB 供用户程序使用 可扩展达 32KB 0000H 2FFFH 为监控程序存储器区 用户不可用 4000H 5FFFH 为用户实验程 序存储区 供用户下载实验程序 数据存储器的范围为 6000H 7FFFH 供用户实验程 序使用 用户在编写实验程序时要注意 程序的起始地址应为 4000H 所用的中断入口地址均 应在原地址的基础上 加上 4000H 用户中断入口地址见表 1 1 表表 1 1 用户中断程序入口表 用户中断程序入口表 中断名称8051 原中断程序入口用户实验程序响应程序入口 外中断 00003H4003H 定时器 0 中断000BH400BH 外中断 10013H4013H 定时器 1 中断001BH401BH 串行口中断0023H4023H 2 资源分配资源分配 本系统采用可编程逻辑器件 CPLD EPM7128 做为地址的译码 地址的编译码分为两部分 一部分为系统 CPLD 提供了系统器件 如监控程序存储 器 用户程序存储器 数据存储器 系统显示控制器 系统串行通讯控制器等 的地址译 码功能 此外还通过插孔 CS0 CS1 CS2 CS3 CS4 CS5 提供固定的译码地址给用户 使用 译码地址见表 1 2 另一部分为用户 CPLD 它完全对用户开放 用户可通过芯片的 JTAG 接口与 PC 机 相连 对芯片进行编程 得到译码地址 由插孔 4 LCS0 LCS1 LCS2 LCS3 LCS4 LCS5 LCS6 LCS7 输出 供使用 表表 1 2 CPLD 地址分配表地址分配表 地址范围 输出孔 映射器件 性质 系统 用户 0000H 2FFFH 监控程序存储器 系统 3000H 3FFFH 数据存储器 系统 4000H 7FFFH 用户程序存储器 系统 8000H CFDFH LCS0 LCS7 用户 CFE0H PC 机串行通讯芯片 8250 系统 CFE8H 显示 键盘芯片 8279 系统 CFA0H CFA7H CS0 系统 CFA8H CFAFH CS1 系统 CFB0H CFB7H CS2 系统 CFB8H CFBFH CS3 系统 CFC0H CFC7H CS4 系统 CFC8H CFCFH CS5 系统 CFD0H FFFFH LCS0 LCS7 用户 注 系统地址中带 的表示用户不可用 也不可改 其他系统地址用户可用 但不可改 3 系统使用方法系统使用方法 1 用通信电缆将 EL MUT III 型单片机教学实验系统侧面的RS232 接口与 PC 机的 COM 口相连接 2 启动 EL MUT III 型单片机教学实验系统的电源开关 EL MUT III 型单片机 教学实验系统面板上的 LED 显示 几秒后显示 P 3 双击桌面 MCS51 快捷图标如图 1 1 启动 51 实验系统 启动后的界面如图 1 2 图 1 1 图 1 2 4 如需改变串口和波特率 在相应列表框中修改 点击 确定 按钮后 立即实验系 5 统面板上的 PRESET 键 面板上的 LED 显示 C 同时 PC 机屏幕显示 51 EL 型 80C51 教学实验环境 界面 如图 1 3 图 1 3 51 EL 型 80C51 教学实验环境界面 5 通过 文件 菜单新建或打开汇编语言文件 也可通过工具按钮 新建汇编文件 新建汇编文件的扩展名为 ASM 6 用 编译 菜单下的汇编命令或工具按钮 对汇编文件进行汇编 如有错误 应对文件重新编辑 直至汇编无错误为止 7 用 调试 菜单下的 调试 命令或工具按钮 进入 调试 界面 如图 1 4 图 1 4 调试 界面 8 用 调试 菜单下各调试命令 如图 1 5 对汇编文件进行调试 或用工具按钮 对汇编文件进行调试 工具按钮的功能如图 1 6 图 1 5 6 图 1 6 7 第二章第二章 上机指导上机指导 实验一实验一 P1 口实验 一 口实验 一 一 实验目的 一 实验目的 1 学习 P1 口作为输出口的使用方法 2 延时子程序的编写和使用 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 三 三 实验原理 实验原理 实验原理如图 2 1 1 图 2 1 1 P1 口输出实验电路 1 P1 口的使用方法 P1 口为准双向口 每一位都能独立地定义为输入位或输出位 作为输入位时 必须向 锁存器相应位写入 1 89S51 在复位时所有口锁存器均置为 1 如果曾对口锁存器写 过 0 此时要使它作为一个输入口 则应再次写入一个 1 2 延时程序的实现 常用两种方法实现延时程序 一是用定时器中断来实现 二是用指令循环来实现 在 系统时间允许的情况下可以采用后一种方法 本实验系统晶振为 6 0MHZ 则一个机器周期为 12 6 us 2 us 延时 0 1s 的程序如下 MOV R7 X 1 DEL1 MOV R6 200 2 8 DEL2 DJNZ R6 DEL2 3 DJNZ R7 DEL1 4 程序中 X 为延时值 指令 MOV DJNZ 需两个机器周期 所以每执行一条指令需要 4us 延时程序中 X 值应满足下式 4 X 4 200 4 4 0 1 106 指令 1 时间 指令 2 时间 指令 3 时间 指令 4 时间 故 X 123 75D 7CH 将 X 123 75D 7CH 代入上式 得到实际延时时间约为 0 1002S 3 程序流程图 程序流程图见图 2 1 2 和图 2 1 3 图 2 1 2 点亮发光二极管程序流程图 图 2 1 3 左移循环点亮发光二极管程序流程图 四 实验内容与步骤四 实验内容与步骤 1 实验内容 1 P1 口做输出口 接八只发光二极管 根据程序流程图 2 1 2 编写程序使 P1 口 8 个发光二极管同时熄灭 延时 点亮 2 根据程序流程图 1 3 编写程序使 P1 口 8 个发光二极管每隔一个左移循环点亮 2 实验步骤 1 将 P1 0 P1 7 分别连接发光二极管 L1 L8 2 按流程图 2 1 2 编写程序 对程序进行编辑 汇编直至无语法错误 3 调试程序 1 单步调试 观察并记录相应寄存器内容及发光二极管 L1 L8 的状态 2 全速运行程序 观察并记录发光二极管 L1 L8 的状态 4 重复 2 3 步骤 进行实验内容 2 的实验 五 实验报告五 实验报告 1 写出使 P1 口 8 个发光二极管同时熄灭 延时 点亮源程序清单 并对每条指令 给予注解 2 写出使 P1 口 8 个 LED 每隔一个 或二个 左移循环点亮源程序清单 并对每条指 令给予注解 9 六 思考题六 思考题 1 改变延时常数 重做实验 2 修改程序 使 LED 发光方式 方向等改变 七 参考程序 七 参考程序 1 点亮 8 个 LED 程序清单 ORG 4000H LJMP START ORG 4100H START MOV A 00H MOV P1 A 点亮 8 个 LED LCALL DELAY 延时 0 1 秒 MOV A 0FFH MOV P1 A 熄灭 8 个 LED LCALL DELAY 延时 0 1 秒 JMP START DELAY MOV R1 124 延时 0 1 秒 DEL1 MOV R2 200 DEL2 DJNZ R2 DEL2 DJNZ R1 DEL1 RET END 2 循环点亮 LED 程序清单 ORG 4000H LJMP START ORG 4100H START MOV A 0FEH LOOP MOV P1 A 点亮 1 个 LED RL A 左移一位 点亮下一个发光二极管 LCALL DELAY 延时 0 1 秒 JMP LOOP DELAY MOV R1 124 延时 0 1 秒 DEL1 MOV R2 200 DEL2 DJNZ R2 DEL2 DJNZ R1 DEL1 RET 10 END 11 实验二实验二 P1 口实验 二 口实验 二 一 实验目的 一 实验目的 1 P1 口作为输入口的使用方法 2 掌握数据输入 输出程序的设计方法 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 三 三 实验原理 实验原理 1 P1 口作为输入口实验原理见图 2 2 1 图 2 2 1 P1 口作为输入口实验电路 2 程序流程图 程序流程图见图 2 2 2 图 2 2 2 显示 P1 口状态程序流程图 12 四 实验内容四 实验内容与步骤与步骤 1 实验内容 P1 口做输入口 如图 2 2 1 P1 口的 P1 0 P1 8 分别接 8 个单刀双郑开关 K1 K8 74LS273 做输出口接八个 LED 编写程序读取开关 K1 K8 状态 并在 LED 上显示出 来 2 实验步骤 1 根据图 2 2 1 连线 CS273 接 CS0 2 根据流程图 2 2 2 编写相应程序 对程序进行编辑 汇编直至无语法错误 3 调试程序 拨动开关 K1 K8 观察并记录程序运行结果 五 实验报告五 实验报告 仿照实验一 写出相应的实验报告 六 思考题六 思考题 1 图 2 2 1 中芯片 74LS273 的作用是什么 2 在图 2 2 1 中 若 LED 反转 1800 电路和程序如何修改 七 参考程序 七 参考程序 通过 LED 将 P1 口的状态显示 ORG 0000H LJMP START ORG 4100H START MOV P1 0FFH 设置 P1 口为输入状态 LP MOV A P1 P1 口的状态读入累加器 A MOV DPTR 0CFA0H 74LS273 地址 输出口地址 送 DPTR MOVX DPTR A A 的值送 LED 显示 JMP LP 继续循环监测端口 P1 的状态 END 13 实验三实验三 P1 口实验 三 口实验 三 一 实验目的 一 实验目的 1 掌握 P1 口既做输入又做输出的使用方法 2 掌握分支程序的设计方法 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 三 三 实验原理 实验原理 1 P1 口同时作输入 输出口电路原理见图 2 3 1 图 2 3 1 P1 口同时作输入 输出口实验电路 2 程序流程图 程序流程图见图 2 3 2 四 实验内容四 实验内容与步骤与步骤 1 实验内容 图 2 3 1 为模拟汽车转向灯控制电路图 K1 为左转弯开关 L5 L6 做为左转弯灯 K2 为右转弯开关 L7 L8 做为右转弯灯 编写程序实现表 2 3 1 的功能 表 2 3 1 开关 K1 K2 功能表 14 图 2 3 2 P1 口既做输入又做输出程序流程图 2 实验步骤 1 根据图 2 3 1 连线 2 输入相应程序 对程序进行编辑 汇编直至无语法错误 3 调试程序 拨动开关 K1 K2 观察并记录程序运行结果 五 实验报告五 实验报告 仿照实验一 写出相应的实验报告 六 思考题六 思考题 当 K1K2 11 时 左转弯灯和右转弯灯同时闪烁 程序应如何修改 编程并调试 七 参考程序 七 参考程序 P1 口同时作输入 输出口实验程序 ORG 4000H LJMP START ORG 4100H START SETB P1 0 SETB P1 1 用于输入时先置位口内锁存器 15 L0 MOV A P1 ANL A 03H 从 P1 口读入开关状态 取低两位 CJNE A 00H L1 LJMP PRG0 L1 CJNE A 01H L2 LJMP PRG1 L2 CJNE A 02H L3 LJMP PRG2 L3 CJNE A 03H L4 LJMP PRG3 L4 LJMP L0 PRG0 MOV P1 0FFH 向 P1 口输出 0FFH LED 全灭 此时 K2 K1 0 0 LJMP START PRG1 MOV P1 0F3H 只点亮 L5 L6 表示左转弯 ACALL DELAY 此时 K2 K1 0 1 MOV P1 0FFH 熄灭 LED 0 5 秒 ACALL DELAY 延时 0 5 秒 LJMP START PRG2 MOV P1 0CFH 只点亮 L7 L8 表示右转弯 ACALL DELAY 此时 K2 K1 1 0 MOV P1 0FFH 熄灭 LED0 5 秒 ACALL DELAY LJMP START PRG3 MOV P1 00H LED 全亮 此时 K2 K1 1 1 LJMP START DELAY MOV R1 5 延时 0 5 秒 DEL1 MOV R2 200 DEL2 MOV R3 126 DEL3 DJNZ R3 DEL3 DJNZ R2 DEL2 DJNZ R1 DEL1 RET END 16 实验四实验四 中断实验中断实验 一 实验目的 一 实验目的 1 外部中断技术的基本使用方法 2 中断处理程序的编程方法 3 中断嵌套处理程序的编程方法 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 三 实验原理 三 实验原理 1 实验原理如图 2 4 1 图 2 4 1 外部中断实验电路 2 程序流程图 程序流程图见图 2 4 2 图 2 4 2 K1 中断控制 LED 程序流程图 17 四 实验内容与步骤 四 实验内容与步骤 1 实验内容 1 单一外部中断控制 按 K1 在 INT0 端产生中断信号 从而使 P1 的 8 个 LED 同时 闪烁 5 次 2 两级中断控制 中断嵌套 按 K1 使 8 个 LED 闪烁后 按 K2 使 LED 右循环点 亮 3 根据图 2 4 3 编写程序 的下降沿产生中断 中断服务程序为读入 P1 4 P1 7 开关状态 并通过 P1 0 P1 3 输出 图 2 4 3 2 实验步骤 1 按图 2 4 1 连接线路 2 根据程序流程图编写程序 编辑程序并进行汇编 3 用 单步连续运行程序 命令运行程序 观察程序运行等待中断过程 在等待中断 过程时 按 K1 K2 键 观察并记录程序运行过程和 LED 显示情况 4 对实验内容 2 编程 重复 2 3 步骤 观察并记录程序运行结果 5 对实验内容 3 编程 重复 2 3 步骤 观察并记录程序运行结果 6 在中端服务程序中设置断点 重复 2 3 步骤 观察并记录程序运行结果 五 实验报告五 实验报告 1 根据实验 1 内容写出相应的实验报告 2 画出实验内容 2 的程序框图 3 对程序语句加以注解 六 思考题六 思考题 1 中断时 需保护现场 如 PSW ACC 等寄存器的内容 中断服务程序应如何修改 2 如何在程序中实现 INT1 的中断优先权高于 INT0 中断优先权 18 七 参考程序 七 参考程序 实验四 INT0 中断实验程序 主程序 8 个 LED 熄灭 等待 INT0 中断 ORG 4000H LJMP START ORG 4003H LJMP EXT0 ORG 4013H LJMP LPT ORG 4100H START MOV A 0FFH MOV BAH A SETB EX0 SETB EX1 CLR IT0 SETB EA MOV SP 70H MOV A 0FFH MOV P1 A SJMP DELAY MOV R1 5 DEL1 MOV R2 200 DEL2 MOV R3 126 DEL3 DJNZ R3 DEL3 DJNZ R2 DEL2 DJNZ R1 DEL1 RET INT0 中断服务程序 8 个 LED 闪烁 5 次 EXT0 MOV R0 10 MOV A 00H LOOP MOV P1 A CALL DELAY CPL A 19 MOV P1 A DJNZ R0 LOOP MOV A 0FFH MOV P1 A RETI LPT MOVA 01H SHIF LCALL FLASH RR A SJMP SHIFT FLASH MOV P1 A LCALL DELAT MOV P1 00H LCALL DELAY DJNZ R2 FLASH RET DELAY MOV R5 200 D1 MOV R6 123 NOP DJNZ R6 DJNZ R5 D1 RET 20 实验五实验五 定时器定时器 计数器实验 一 计数器实验 一 一 实验目的 一 实验目的 1 掌握 89S51 内部定时器 计数器的使用和编程方法 2 定时器中断处理程序的编程方法 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 三 实验原理 三 实验原理 1 实验原理如图 2 5 1 图 2 5 1 定时器实验电路 1 定时常数的确定 采用定时器中断方法可实现时间延时 延时时间由主频和定时器方式来确定 本实验中时钟频率为 6 0 MHZ 其延时时间最大值约为 0 13s 方式一下 若要产生 0 5 秒延时时间 需采用定时器定时和软件计数的方法来实现 为此我们可在主程序中设置 软件循环次数初值为 05H 用 R0 的软件计数器和定时时间为 0 1s 的定时器 这样定时器 每隔 0 1s 产生一次中断 CPU 响应中断后将 R0 中计数值减一 即可实现 0 5s 延时 定时器时间常数的确定方法如下 机器周期 12 晶振频率 12 6 106 2 us 2 10 6 s 定时器工作于方式一 设计数初值为 X 则有 216 X 2 10 6 s 0 1s 由此可求得 X 15536D 3CB0H 故初始值为 TH 3CH TL B0H 2 初始化程序 初始化程序包括定时器初始化和中断系统初始化 即对 IP IE TCON TMOD 的相 应位进行正确的设置 并将时间常数送入定时器中 21 3 设计中断服务程序和主程序 中断服务程序除了要完成计数减一工作外 还要将时间常数重新送入定时器中 为下 一次中断做准备 主程序则用来控制发光二极管按要求亮灭 2 程序流程图 程序流程图见图 2 5 2 图 2 5 2 定时器 T0 中断控制 LED 程序流程图 四 实验内容与步骤 四 实验内容与步骤 1 实验内容 定时器工作于方式 1 每 0 5 秒 LED1 LED8 闪烁 2 实验步骤 1 按图 2 5 1 连接线路 2 根据程序流程图编写程序 编辑程序并进行汇编 3 运行程序 观察并记录 LED 显示情况 五 实验报告五 实验报告 根据实验内容写出相应的实验报告 变化花样可自行设计 六 思考题六 思考题 1 用定时器工作方式 0 或方式 2 能否实现本实验功能 2 如能 修改程序并调试 3 根据图 2 5 3 编写用 T0 中断控制 LED 闪烁 5 次的程序 22 图 2 5 3 定时器 T0 中断控制 LED 闪烁 5 次程序流程图 七 参考程序 七 参考程序 实验五 定时器定时 0 5S 中断实验 LED 闪烁 R0 0 5s 延时循环次数 ORG 4000H LJMP START ORG 400BH LJMP T0INT ORG 4100H START MOV TMOD 01H MOV TH0 3CH MOV TL0 0B0H MOV A 0FFH MOV P1 A 23 SETB EA SETB ET0 SETB TR0 MOV R0 05H SJMP T0INT CLR TR0 DJNZ R0 NEXT CPL A MOV P1 A MOV R0 05H NEXT MOV TH0 3CH MOV TL0 0B0H SETB TR0 RETI END 实验五 1 LED 闪烁 5 次 R0 0 5s 延时循环次数 R1 闪烁次数 ORG 4000H LJMP START ORG 400BH LJMP T0INT ORG 4100H START MOV TMOD 01H MOV TH0 3CH MOV TL0 0B0H MOV R1 10 MOV A 0FFH MOV P1 A SETB EA SETB ET0 SETB TR0 MOV R0 05H SJMP 24 T0INT CLR TR0 DJNZ R0 NEXT DJNZ R1 LP MOV A 0FFH MOV P1 A SJMP LP1 LP CPL A MOV P1 A MOV R0 05H NEXT MOV TH0 3CH MOV TL0 0B0H SETB TR0 LP1 RETI END 25 实验六实验六 定时器定时器 计数器实验 二 计数器实验 二 一 实验目的 一 实验目的 1 8031 外部计数的使用和编程方法 2 中断处理程序的编程方法 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 三 实验原理 三 实验原理 1 实验原理如图 2 6 1 图 2 6 1 计数器实验电路 图中 74LS132 按键 S 和电阻组成一单脉冲发生器 P 端接 89S51 的 T0 端 按键每 按动一次将在 P 端产生一个负脉冲 从而在 T0 端产生一次中断请求 因此将 T0 设置为计 数器方式即可对外部脉冲进行计数 2 程序流程图 程序流程图见图 2 6 2 四 实验内容与步骤 四 实验内容与步骤 1 实验内容 定时器工作于方式 2 定时器每计 5 个脉冲使 LED1 LED8 亮 灭一次 或发光方式 变化一次 2 实验步骤 1 按图 2 6 1 连接线路 2 根据程序流程图编写程序 编辑程序并进行汇编 3 运行程序 观察并记录 LED 显示情况 五 实验报告五 实验报告 根据实验内容写出相应的实验报告 26 图 2 6 2 用 T0 对外部脉冲进行计数控制 LED 程序流程图 六 思考题六 思考题 1 用定时器工作方式 0 或方式 2 能否实现本实验功能 2 如能 修改程序并调试 3 采用查询方式编写程序 实现外部脉冲进行计数控制 LED 七 参考程序 七 参考程序 实验六 按右下角的 PULSE 按键 5 次 LED 交替亮灭 ORG 4000H LJMP START ORG 400BH LJMP T0INT ORG 4100H START MOV TMOD 06H MOV TH0 0FBH MOV TL0 0FBH MOV A 00H SETB EA SETB ET0 SETB TR0 27 SJMP T0INT MOV P1 A CPL A RETI END 28 实验七实验七 8255A PB 口控制口控制 PA 口实验口实验 一 实验目的 一 实验目的 1 掌握 8255A 芯片的结构及编程方法 2 掌握 8255A 并行口读取开关数据的方法 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 三 实验原理 三 实验原理 1 实验原理如图 2 7 1 图 2 7 1 8255A 接口实验电路 2 程序流程图 程序流程图见图 2 7 2 29 系统初始化 设置8255的A 口输出 B口输入 通过8255的B口将开关的状 态读入CPU中 通过8255的A口将读入的开 关状态送给发光二极管显示 延时10ms 图 2 7 2 8255A 接口实验程序流程图 四 实验内容步骤 四 实验内容步骤 1 实验内容 8255A B 口作为开关量输入口 A 口作为显示输出口 编写程序读取按纽开关状态 在发光二极管上显示出来 2 实验步骤 1 按图 2 7 1 连接线路 2 根据程序流程图编写程序 编辑程序并进行汇编 3 运行程序 拨动开关 K1 K8 观察并记录 LED 显示情况 五 实验报告五 实验报告 根据实验内容写出相应的实验报告 六 参考程序 六 参考程序 实验七 8255A 接口实验 A 口显示输出口 B 口作为开关量输入口 ORG 4000H LJMP START ORG 4100H PA EQU 0CFA0H PB EQU 0CFA1H PCTL EQU 0CFA3H START MOV DPTR PCTL 置 8255A 控制字 A B C 口均工作方式 0 A C 口为输出 B 口为输入 MOV A 82H 30 MOVX DPTR A LOOP MOV DPTR PB 从 B 口读入开关状态值 MOVX A DPTR MOV DPTR PA 从 A 口将状态值输出显示 MOVX DPTR A MOV R7 10H 延时 DEL0 MOV R6 0FFH DEL1 DJNZ R6 DEL1 DJNZ R7 DEL0 JMP LOOP END 31 实验八实验八 8 位位 A D 转换器转换器 ADC0809 接口实验接口实验 一 实验目的 一 实验目的 1 了解 A D 转换器 ADC0809 的工作原理 2 掌握 ADC0809 与 89S51 接口电路设计方法 3 掌握 A D 转换程序编程方法 二 实验设备 二 实验设备 EL MUT III 型单片机实验箱 8051CPU 模块 数字万用表 三 实验原理 三 实验原理 1 实验原理如图 2 8 1 图 2 8 1 89S51 与 ADC0809 接口电路 2 程序流程图 根据 A D 与单片机连接方式和控制系统本身要求的不同 实现 A D 转换的软件设计方也不同 常用的控制方式有程序查询 定时采样和中断方式 定时采样方式程序流程图见图 2 8 2 四 实验内容与步骤四 实验内容与步骤 1 实验内容 1 从 ADIN0 输入模拟信号 VIN 0 5V 间隔为 0 25V 即 0V 0 25V0 5V 0 75V 5V 用万用表电压档测量该模拟信号的大小 2 启动 A D 转换 用转换后数字量与万用表测量结果进行比较 3 用模拟电压作横坐标 转换后的数字量作纵坐标作 D V 图 找出 ADC0809 的数字 量输出值 D 换算为十进制叔 与模拟量输入值 VIN 之间的关系 检查 A D 转换的线性度 2 实验步骤 1 按图 2 8 1 连线 ADIN0 接 AN0 参考程序采用查询法 因此 ADC0809 的 EOC 32 引脚不连接 2 通过 V ARJ 电位器调整加在 IN0 通道的电压 用数字万用表进行测量 从 0V 开始 间隔为 0 25V 3 输入程序 对每个电压值 运行程序 转换后的数字量保存于 30H 开始的单元 4 读取 30H 开始的单元中的数据 并填入表格 VIN V 0 000 250 500 751 001 251 501 752 002 25 VOUT H VOUT D 图 2 8 2 A D 转换实验流程图 五 实验报告五 实验报告 1 根据实验内容写出相应的实验报告 2 用模拟电压作横坐标 转换后的数字量作纵坐标作 D V 图 找出 ADC0809 的数字 量输出值 D 换算为十进制叔 与模拟量输入值 VIN 之间的关系 检查 A D 转换的线性度 六 思考题六 思考题 1 若转换后的数字量保存于外部 RAM 4300H 开始单元 程序应如何修改 上机调试 2 若程序采用中断法 电路应如何连接 3 画出中断法流程图 修改程序 重做实验 VIN V 2 502 753 003 253 503 754 004 254 504 755 00 VOUT H VOUT D 33 七 参考程序 七 参考程序 实验八 A D 采样程序 ORG 4000H 开始执行第一条指令的地址 LJMP START 跳转到主程序 ORG 4100H 主程序的地址 START MOV R1 30H 指向内部 RAM 20H 单元 MOV R6 20H 30H 4FH 共 32 个内部 RAM 单元 它们用 MOV A 00H 来存放被采集电压的数据区 LP MOV R1 A 30H 4FH 内部 RAM 单元清 0 INC R1 指向下一个单元 DJNZ R6 LP 32 个单元清 0 未完成 返回 LP 处继续清 0 MOV R1 30H 数据区首址送 R1 寄存器 MOV R7 14H 采集数据的总数 14H 20 送 R7 寄存器 MOV DPTR 0CFA0H IN0 通道地址 0CFA0H 送 DPTR 寄存器 CAIJI MOVX DPTR A 启动 A D 进行转换 LP1 MOV R2 40H 设置延时时间 WAIT DJNZ R2 WAIT 延时等待 A D 转换结束 MOVX A DPTR 读 A D 转换的数值到累加器 A MOV R1 A 转换后的数据送数据区 30H 4FH 保存 INC R1 指向下一个单元 CW DJNZ R7 CAIJI 20 个数据采集完成停止 否则继续采集 SJMP 停止 END 结束 34 实验九实验九 8 位位 D A 转换器转换器 DAC0832 接口实验接口实验 一 实验目的 一 实验目的 1 了解 D A 转换器 DAC

温馨提示

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

最新文档

评论

0/150

提交评论