




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机实验指导书 河南师范大学物理与信息工程学院 单片机实验室 目目 录录 第一章 WAVE 仿真器系统概述 1 第二章 开发环境简介 3 第三章 MCS51 系列单片机实验 8 软件实验一 存储器块清零 8 软件实验二 二进制到 BCD 转换 9 软件实验三 十进制到 ASCII 码转换 10 软件实验四 存储块移动 11 软件实验五 多分支程序 12 软件实验六 数据排序 13 硬件实验一 P1 口输入 输出实 验 14 硬件实验二 I 交通灯控制 软件延时法 15 2 硬件实验二 II 交通灯控制 定时器延时法 16 硬件实验三 计数器实验 18 硬件实验四 外部中断实验 19 硬件实验五 定时器实验 1 P1 0 状态取反 20 硬件实验六 D A 转换实验 21 硬件实验七 A D 转换实验 23 硬件实验八 外部中断实验 急救车与交通灯 25 硬件实验九 定时器实验 2 电子秒表 26 硬件实验十 定时器实验 3 电子时钟 30 硬件实验十一 键盘输入实验 31 1 第一章WAVE 仿真器系统概述 WAVE 伟福 仿真器系统由仿真主机 仿真头 MULT1A 用户板 实验板 开关电源等组成 本系统的特点是 1 主机 仿真头的组合 通过更换不同型号的仿真头即可对各种不同类型的单片机进行仿 真 是一种灵活的多 CPU 仿真系统 采用主机 POD 组合的方式 更换 POD 可以对 各种 CPU 进行仿真 本仿真器主机型号为 E2000 S 仿真头型号为 POD8X5X 可仿 真 51 系列 8X5X 单片机 2 双平台 具有 DOS 版本和 WINDOWS 版本 后者功能强大 中 英文界面任选 用户 源程序的大小不再有任何限制 支持 ASM c PLM 语言混合编程 具有项目管理功 能 为用户的资源共享 课题重组提供强有力的手段 支持点屏显示 用鼠标左键点 一下源程序中的某一变量 即可显示该变量的数值 有丰富的窗口显示方式 多方位 动态地显示仿真的各种过程 使用极为便利 本操作系统一经推出 立即被广大用户 所喜爱 3 双工作模式 1 软件模拟仿真 不要仿真器也能模拟仿真 2 硬件仿真 4 双 CPU 结构 100 不占用户资源 全空间硬件断点 不受任何条件限制 支持地址 数据 外部信号 事件断点 支持 实时断点计数 软件运行时间统计 5 双集成环境 编辑 编译 下载 调试全部集中在一个环境下 多种仿真器 多类 CPU 仿真全部集成在一个环境下 可仿真 51 系列 196 系列 PIC 系列 飞利蒲公司的 552 LPC764 DALLAS320 华邦 438 等 51 增强型 CPU 为了 跟上形势 现在很多工程师需要面对和掌握不同的项目管理器 编辑器 编译器 他 们由不同的厂家开发 相互不兼容 使用不同的界面 学习使用都很吃力 伟福 WINDOWS 调试软件为您提供了一个全集成环境 统一的界面 包含一个项目管理器 一个功能强大的编辑器 汇编 Make Build 和调试工具并提供千个与第三方编译器的 接口 由于风格统一 大大节省了您的精力和时间 6 强大的逻辑分析仪综合调试功能 逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样 并实时在线调试分析 采集深度 32K E2000 L 最高时基采样频率达 20MHz 40 路波 形 可精确实时反映用户程序运行时的历史时间 系统在使用逻辑分析仪时 除普通 的单步运行 键盘断点运行 全速硬件断点运行外 还可实现各种条件组合断点如 数据 地址 外部控制信号 CPU 内部控制信号 程序区间断点等 由于逻辑仪可以 直接对程序的执行结果进行分析 因此极大地便利于程序的调试 随着科学技术的发 展 单片机通讯方面的运用越来越多 在通讯功能的调试时 如果通讯不正常 查找 原因是非常耗时和低效的 您很难搞清楚问题到底在什么地方 是波特率不对 是硬 件信道有问题 是通讯协仪有问题 是发方出错还是收方出错 有了逻辑仪 情况则 完全不一样 用它可以分别或者同时对发送方 接收方的输入或者输出波形进行记录 存储 对比 测量等各种直观的分析 可以将实际输出通讯报文的波形与源程序相比 较 可立即发现问题所在 从而极大地方便了调试 7 强大的追踪器功能 追踪功能以总线周期为单位 实时记录仿真过程中 CPU 发生的总线事件 其触发 2 条件方式同逻辑分析仪 追踪窗口在仿真停止时可收集显示追踪的 CPU 指令记忆信息 可以以总线反汇编码模式 源程序模式对应显示追踪结果 屏幕窗口显示波形图最多 追踪记忆指令 32K 并通过仿真器的断点 单步 全速运行或各种条件组合断点来完成 追踪功能 总线跟踪可以跟踪程序的运行轨迹 可以统计软件运行时间 3 第二章开发环境简介 双击桌面上的 WAVE 图标或从开始 程序 WAVE FOR WINDOWS WAVE 进入本开发环境 其界面及主要功能如图 2 1 中所注 图 2 1 WAVE 界面 1 仿真器设置窗口 如图 2 2 所示 在实验开始时要先根据需要设置好仿真器类型 仿真头类型以及设置好仿真器类型 仿真头类型以及 CPU 类型 类型 并注意是否 使用伟福软件模拟器 若使用硬件仿真 请注意去掉若使用硬件仿真 请注意去掉 使用伟福软件模拟器使用伟福软件模拟器 前的前的 选择 选择 图 2 2 仿真器设置窗口 2 文件窗口 如图 2 3 可在此窗口下进行包括新建 打开 保存等文件操作 仿 真 器 设 置 打 开 文 件 新 建 文 件 打 开 项 目 保 存 文 件 编 译 文 件 复 位 全 速 执 行 跟 踪 单 步 C P U 窗 口 保 存 文 件 数 据 窗 口 4 图 2 3 文件窗口 3 编译文件窗口 如图 2 4 在此窗口下可将源文件编译成目标文件 图 2 4 编译文件窗口 4 执行窗口 如图 2 5 在此窗口下 可用全速 跟踪 断点等各种方式运行程序 5 图 2 5 执行窗口 5 窗口窗口 如图 2 6 1 在此窗口下 可以观察各种窗口信息 其中最常用到的是 CPU 窗口和数据窗 口 图 2 6 1 窗口 a CPU 窗口 通过 CPU 窗口可以看到你编译正确的机器码及反汇编程序 可以让你更清楚地了解程 序执行过程 CPU 窗口中还有 SFR 窗口和位窗口 让你了解程序执行过程中寄存器内容的 变化 6 图 2 6 2 CPU 窗口 b 数据窗口 对 51 系列 CPU 数据窗口有 DATA 内部数据窗口 CODE 程序数据窗口 XDATA 外部数据窗口 PDATA 外部数据窗口 页方式 图 2 6 3 数据窗口 图 2 6 4 DATA 内部数据窗口 7 图 2 6 5 CODE 程序数据窗口 图 2 6 6 XDATA 外部数据窗口 图 2 6 7 PDATA 页方式外部数据窗口 8 第三章 MCS51 系列单片机实验 软件实验一 存储器块清零 一 实验目的 1 掌握存储器读写方法 2 了解存储器的块操作方法 二 实验内容 1 指定内部 RAM 中某块的起始地址和长度 要求能将其内容清零 2 指定外部 RAM 中某块的起始地址和长度 要求能将其内容清零 3 指定外部 RAM 中某块的起始地址和长度 要求能将其内容置为某固定值 如 0FFH 三 实验说明 通过本实验 学生可以了解单片机的存储器结构及读写存储器的方法 同时也可以了解单 片机编程 调试方法 四 实验仪器和设备 PC 机 WAVE 软件 五 参考程序框图 否 是 存储器块清零参考程序框图 设置块起始地址 设置块长度 当前地址内容清零 地址加 1 结束 是否清除完 9 软件实验二 二进制到 BCD 转换 一 实验目的 1 掌握简单的数值转换算法 2 基本了解数值的各种表达方法 二 实验内容 3 将给定的一个单字节二进制数 转换成非压缩的二 十进制 BCD 码 4 将给定的一个单字节二进制数 转换成压缩的二 十进制 BCD 码 三 实验说明 计算机中的数值有各种表达方式 这是计算机的基础 掌握各种数制之间的转换是一 种基本功 有兴趣的同学可以试试将 BCD 转换成二进制码 四 实验仪器和设备 PC 机 WAVE 软件 五 参考程序框图 单字节二进制数转换成非压缩 BCD 码框图 给出要转换的二进制数 将该数除以 100 保存百位数 将余数除以 10 得到十位 数 结束 保存十位数 余数为个位数 将其保存 10 软件实验三 十进制到 ASCII 码转换 一 实验目的 1 了解 BCD 值和 ASCII 值的区别 2 了解如何将 BCD 值转换成 ASCII 值 3 了解如何查表进行数值转换及快速计算 二 实验内容 给出一个压缩 BCD 数 分别用查表法和逻辑运算方法将其转换成 ASCII 值 三 实验说明 此实验主要让学生了解数值的 BCD 码和 ASCII 码的区别 学会用查表法快速地进行 数值转换并进一步了解数值的各种表达方式 四 实验仪器和设备 PC 机 WAVE 软件 五 参考程序框图 查表法 十进制到 ASCII 码转换 查表法 参考程序框图 给出要转换的 BCD 数 取出 BCD 高四位 查表得到 ASCII 码 取出 BCD 低四位 结束 查表得到 ASCII 码 保存低位 ASCII 码 保存高位 ASCII 码 11 软件实验四 存储块移动 一 实验目的 1 了解内存的移动方法 2 加深对存储器读写的认识 二 实验内容 将指定源地址和长度的存储块移到指定目标位置 三 实验说明 块移动是计算机常用操作之一 多用于大量的数据复制和图象操作 本程序是给出起 始地址 用地址加一方法移动块 请思考给出块结束地址 用地址减一方法移动块的算法 另外 若源块地址和目标块地址有重叠 该如何避免 四 实验仪器和设备 PC 机 WAVE 软件 五 参考程序框图 否 是 是 存储块移动参考程序框图 设置块的源地址 设置移动长度 源地址加 1 目标地址加 1 结束 是否移动完 设置块的目标地址 从源地址取数 保存到目标地址中 12 软件实验五 多分支程序 一 实验目的 1 了解程序的多分支结构 2 了解多分支结构程序的编程方法 二 实验内容 在多分支结构的程序中 能够按调用号执行相应的功能 三 实验说明 多分支结构是程序中常见的结构 若给出调用号来调用子程序 一般用查表方法 查 到子程序的地址 转到相应子程序 完成指定操作 四 实验仪器和设备 PC 机 WAVE 软件 五 参考程序框图 多分支参考程序框图 根据调用号查表 得到跳转地址 结束 跳转到相应程序段 调用返回 设置调用号 13 软件实验六 数据排序 一 实验目的 1 了解数据排序的简单算法 2 了解数列的有序和无序概念 二 实验内容 给出一组随机数 将此组数据排序 使之成为有序数列 三 实验说明 有序的数列更有利于查找 本程序用的是 冒泡排序 法 算法是将一个数与后面的 数相比较 如果比后面的数大 则交换 如此将所有的数比较一遍后 最大的数就会在数 列的最后面 再进行下一轮比较 找出第二大数据 直到全部数据有序 四 实验仪器和设备 PC 机 WAVE 软件 五 参考程序框图 否 是 否 是 否 是 数据排序参考程序框图 设置数据区地址 清除交换标志 从当前地址取数 B A B 设置数据区长度 从当前地址取数 A 地址加 1 结束 数据比较完 全部有序 设置交换标志 交换 A B 位置 14 硬件实验一 P1 口输入 输出实验 一 实验目的 1 学习 Pl 口的使用方法 2 学习延时子程序的编写和使用 二 实验内容 1 P1 口做输出输出口 接八只发光二极管 其输入端为高电平时发光二极管点亮 编写程序 使发光二极管循环点亮 2 P1 0 P1 1 作输入输入口接两个拨动开关 S0 S1 P1 2 P1 3 作输出口 接两个发光 二极管 编写程序读取开关状态 将此状态在发光二极管上显示出来 编程时应注意 P1 0 P1 1 作为输入口时应先置 1 才能正确读入值 三 实验电路连线 P1 0 LED0 P1 0 S0 P1 1 LED1 P1 1 S1 P1 2 LED2 P1 2 LED2 P1 3 LED3 P1 3 LED3 P1 4 LED4 P1 5 LED5 P1 6 LED6 P1 7 LED7 实验 1 P1 口循环点灯 实验 2 P1 口输入输出 四 实验说明 1 P1 口是准双向口 它作为输出口时与一般的双向口使用方法相同 由准双向口结构可 知当 P1 口用作输入口时必须先对它置 1 若不先对它置 1 读入的数据是不正确 的 2 延时子程序的延时计算问题 对于程序 Delay MOV R7 200 DEL1 MOV R6 123 NOP DEL2 DJNZ R6 DEL2 DJNZ R7 DEL1 RET 五 实验仪器和设备 查指令表可知执行 MOV 指令需 用 1 个机器周期 DJNZ 指令需用 2 个机器周期 在 12MHz 晶振时 一 个机器周期时间长度为 1 s 所以 该段程序执行时间为 1 1 1 2 123 2 200 2 1 s 50ms PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 P1 口循环 P1 口输入 开始 延时 设置初始值 数据输出 左移一位 开始 读入 P1 0 口值 将读入的值输出到 P1 3 P1 0 P1 1 置 1 将读入的值输出到 P1 2 读入 P1 0 口值 15 点灯框图 输出框图 16 硬件实验二 I 交通灯控制 软件延时法 一 实验目的 1 学习数据输出程序的设计方法 2 学习模拟交通灯控制的方法 3 进一步了解软件延时方法 二 实验内容 用 CPU 的 P1 口输出控制信号 控制六个 LED 灯 红 绿 黄 模拟交通灯管理 三 实验电路连接 P1 0 LED0 P1 1 LED1 P1 2 LED2 P1 3 LED3 P1 4 LED4 P1 5 LED5 四 实验说明 l 因为本实验是交通灯控制实验 所以要先了解实际交通灯的变化规律 假设一个十字 路口为东西南北走向 初始为状态 0 状态状态 0 东西红灯 红灯 南北红灯红灯 然后转 状态状态 1 南北绿灯绿灯通车 东西红灯红灯 过一段时间转 状态状态 2 南北绿灯闪绿灯闪几次转黄灯亮黄灯亮 延时几秒 东西仍然红灯 红灯 再转 状态状态 3 东西绿灯绿灯通车 南北红灯红灯 过一段时间转 状态状态 4 东西绿灯闪绿灯闪几次转亮黄灯亮黄灯 延时几秒 南北仍然红灯红灯 最后循环至状态状态 1 2 各用一组红 黄 绿色 LED 分别表示南北方向和东西方向红绿灯 3 延时程序参考硬件实验一中的例子 具体时间长短由同学自己确定 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 交通灯控制参考程序框图 LED3 LED4 LED5 分别 表示东西方向红 黄 绿 灯 开始 状态 1 南北绿灯 东西红灯 延时一会儿 状态 4 南北红灯 东西绿灯闪转亮黄灯 延时一会 儿 初始状态东西南北都是红灯 延时一会 儿 状态 2 南北绿灯闪转黄灯亮 东西红灯 延时一会儿 状态 3 南北红灯 东西绿灯 延时一会儿 LED0 LED1 LED2 分别 表示南北方向红 黄 绿 灯 17 硬件实验二 II 交通灯控制 定时器延时法 一 实验目的 1 进一步理解单片机内部定时器 计数器的工作原理和使用方法 2 学习模拟交通灯控制的方法 3 学习数据输出程序的设计方法 4 学习中断处理程序的编程方法 二 实验内容 用 CPU 的 P1 口输出控制信号 控制六个 LED 灯 红 绿 黄 模拟交通灯管理 三 实验电路连接 P1 0 LED0 P1 1 LED1 P1 2 LED2 P1 3 LED3 P1 4 LED4 P1 5 LED5 四 实验说明 l 因为本实验是交通灯控制实验 所以要先了解实际交通灯的变化规律 假设一个十字路 口为东西南北走向 初始为状态 0 状态状态 0 东西红灯 红灯 南北红灯红灯 然后转入 状态状态 1 南北绿灯绿灯通车 东西红灯红灯 过一段时间转入 状态状态 2 南北绿灯闪绿灯闪几次转黄灯亮黄灯亮 延时几秒 东西仍然红 红 再转入 状态状态 3 东西绿灯绿灯通车 南北红灯红灯 过一段时间转入 状态状态 4 东西绿灯闪绿灯闪几次转黄灯亮 黄灯亮 延时几秒 南北仍然红灯红灯 最后循环至状态状态 1 2 各用一组红 黄 绿色 LED 分别表示南北方向和东西方向 3 由定时器来产生通车延时定时器来产生通车延时时间 时间长短 1 秒以上 由同学自己确定 提示 内部计数器用作定时器时 是对机器周期计数 每个机器周期的长度是 12 个振荡 器周期 因为实验系统的晶振是 12MHZ 本程序定时器工作于方式 1 16 位方式 时 最大定时时间为 216 1 s 65536 s 65 536ms 所以需要配合软件记数 如要延时 2 秒 则需要 T0 中断 32 次 所 用时间为 65536 32 2097120 s 2s 因此在 T0 中断处理程序中 要判断中断次数是否到 32 次 若不到 32 次 则只使中断次 数加 1 然后返回 若到了 32 次 定时 2 秒时间到 4 用软件延时方法产生软件延时方法产生 闪闪 延时延时时间 参考硬件实验一 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 见下页 LED3 LED4 LED5 分别 表示东西方向红 黄 绿 灯 LED0 LED1 LED2 分别 表示南北方向红 黄 绿 灯 18 否 是 否 是 是 否 主程序框图 是 否 中断处理程序框图 注 本试验可安排在中断实验和定时器实验之后做 开始 设置 T0 时间常数 0000H 设置状态记数初值 B 0 置 T0 工作方式 1 定时器 通过 P1 口送初始状态 东西 南北都是红灯 设置秒计数值 R6 32 2 秒 中断允许 定时开始 动态停机等待中断 保护现场并重新设置 T0 时间常数 是否到 2 秒 T0 中断入口 秒计数值 R6 减 1 状态值 B 加 1 重新设置秒计数值 R6 32 恢复现场 中断返回 重设状态记数初值 R2 0 南北绿灯 东西红灯 南北绿灯闪转黄 灯亮 东西红灯 南北红灯 东西绿灯 是否状态 1 是否状态 2 是否状态 3 进入状态 4 南北红灯 东西绿灯闪转黄灯亮 19 硬件实验三 计数器实验 一 实验目的 学习 51 单片机内部定时 计数器使用方法 二 实验内容 51 单片机内部定时计数器 T0 按计数器模式工作于方式 1 对 P3 4 T0 引脚进行计数 将其数值按二进制数在 P1 口驱动 LED 灯上显示出来 三 实验电路连线 P1 0 LED0 P1 1 LED1 P1 2 LED2 P1 3 LED3 P1 4 LED4 P1 5 LED5 P1 6 LED6 P1 7 LED7 T0 P3 4 四 实验说明 本实验中内部计数器起计数器的作用 外部事件计数脉冲由 T0 P3 4 脚引入定时 器 T0 单片机在每个机器周期采样一次输入波形 因此单片机至少需要两个机器周期才 能检测到一次跳变 这就要求被采样电平至少维持一个完整的机器周期 以保证电平在变 化之前即被采样 同时这就决定了输入波形的频率不能超过机器周期频率 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 计数器实验参考程序框图 单次脉冲 开始 设置 T0 工作方式 方式 1 计数模式 开始计数 计数 输出计数值 20 硬件实验四 外部中断实验 一 实验目的 1 学习外部中断技术的基本使用方法 2 学习中断处理程序的编程方法 二 实验内容 用单次脉冲申请中断 在中断处理程序中对信号进行反转输出 三 实验电路连线 P1 0 LED0 INT0 四 实验说明 编写中断处理程序需要注意的问题是 1 保护进入中断时的状态 并在退出中断之前恢复进入时的状态 2 必须在中断处理程序中设定是否允许中断重入 即设置 EX0 位 本例中使用了 INT0 中断 一般进入中断处理程序时应保护 PSW ACC 以及中断处 理程序使用但非其专用的寄存器 保护现场 本例的 INT0 中断处理程序保护了 PSW ACC 等三个寄存器并且在退出前恢复了这三个寄存器 恢复现场 另外中断处理 程序中涉及到关键数据的设置时应关中断 即设置时不允许中断重入 本例中没有涉及这 种情况 3 INT0 端接单次脉冲发生器 P1 0 接 LED 灯 以查看信号反转 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 主程序框图 INT0 中断处理程序框图 单次脉冲 开始 设置有关中断控制寄存器 开外中断 INT0 设置 P1 0 初始状态 死循环等待中断 INT0 中断入口 P1 0 状态取反 保护现场 恢复现场 中断返回 21 硬件实验五 定时器实验 1 P1 0 状态取反 一 实验目的 1 学习 51 单片机内部计数器的使用和编程方法 2 进一步掌握中断处理程序的编程方法 二 实验内容 用单片机内部定时器中断方式计时 实现每 1 秒钟输出状态发生一次反转 三 实验电路连线 P1 0 LED0 四 实验说明 1 关于内部定时器 计数器的编程主要是时间常数的设置和有关控制寄存器的设置 内部 定时器 计数器在单片机中主要有定时和计数两种功能 本实验使用的是定时功能 2 与定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON TMOD 用于 设置定时器 计数器的工作方式 0 3 并确定用于定时还是用于计数 TCON 主要功 能是为定时器在溢出时设定标志位 并控制定时器的运行或停止等 3 内部计数器用作定时器时 是对机器周期计数 每个机器周期的长度是 12 个振荡器 周期 因为实验系统的晶振是 12MHZ 本程序定时器工作于方式 1 16 位方式 时 最大定时时间为 216 1 s 65536 s 再利用软件记数 当 T0 中断 16 次时 所用时间为 65536 16 1048576 s 1s 因此在 T0 中断处理程序中 要判断中断次数是否到 16 次 若不到 16 次 则只使中 断次数加 1 然后返回 若到了 16 次 则使输出状态位取反 4 在设置时间常数前要先关对应的中断 设置完时间常数之后再打开相应的中断 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 否 是 主程序框图 T0 中断处理程序框图 开始 设置 T0 时间常数 中断允许 置 T0 工作方式 1 定时器 设置 P1 0 初始状态 设置秒计数值 死循环等待中断 保护现场并重新设置 T0 时间常数 是否到 1 秒 T0 中断入口 秒计数值减 1 P1 0 状态取反 重新设置秒计数值 恢复现场 中断返回 22 硬件实验六 D A 转换实验 一 实验目的 1 了解 D A 转换的基本原理 2 了解 D A 转换芯片 0832 的性能及编程方法 3 了解单片机系统中扩展 D A 转换的基本方法 二 实验内容 1 利用 DAC0832 将任意 1 字节数字量转换成电压模拟量 用电压表测量输出电压 2 编制程序产生锯齿波 三角波 用示波器观看 三 实验电路连线 实验板上已经连好 用电压表测量输出电压或用示波器探头接触 Vo1或 Vo2 观察显示波形 DAC0832 Rfb 373 Iout1 VO 1 P0 口 DI0 DI7 Iout2 0 5V D0 D7 FF90H CLK CS ILE 5V D1 373 WR1 XFER FF91H CLK WR2 四 实验说明 1 D A 转换是把数字量转换成模拟量的变换 实验板上 D A 电路输出的是模拟电压信号 本实验系统具有 2 路 D A 输出为 Vo1 Vo2 采用单缓冲方式 数据口地址 FF90H 控制口地址 FF91H 其中 FF91H 的 D1 位输出正跳变信号控制 CH0 路 D A FF91H 的 D2 位输出正跳变信号控制 CH1 路 D A 实现转换的过程是 先将要转换的数字量写入 FF90H 口 用 MOVX 指令 然后将正跳变控制信号 经 FF91H 口送出 用 MOVX 指令 使 0832 缓冲器打开 开始 D A 转换 任意 1 字节数 如设为 7FH D A 转换的参考程序如下 MOV DPTR 0FF90H MOV A 7FH 待转换的数字量送 A MOVX DPTR A 然后送 FF90H 口 MOV DPTR 0FF91H MOV A 0FDH 控制位 D1 0 送 A MOVX DPTR A 然后送 FF91H 口 MOV A 0FFH 控制位 D1 1 送 A MOVX DPTR A 然后送 FF91H 口 即 D1 位得到一个正跳 变 2 要产生锯齿波 三角波 比较简单的方法是表格法表格法 先产生这二个波形的数据表格 然后依次查表得到波形中一点的数字量 送 D A 转换 得到模拟量的电压信号 再送 示波器显示 这种表格法对输出较复杂的波形 如正弦波或其他任意波形 是非常有 用的 产生锯齿波和三角波的表格只需由数字量的增减来控制 同时要注意三角波要 分段来产生 也可用教材中的编程法编程法 用一段程序来产生锯齿波或三角波 3 D A 转换取值范围为一个周期 在一个周期数据点越多 精度越高些 本例采用的 数据点为 256 点 周期 即最小数字量为 0 最大为 255 FFH 4 8 位 D A 转换器的输入数据 N 与输出电压 Vo1的关系为 23 Vo1 Vref N 256 Vref为参考电压 Vref 5V 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 表格法 否 是 表格法产生锯齿波 三角波参考程序框图 开始 表格首地址送 DPTR 置循环计数初值 查表得到波形数据 修改表指针 修改计数值 一周期数据 转换完毕 送 D A 转换 24 硬件实验七 A D 转换实验 一 实验目的 1 掌握 A D 转换与单片机的接口方法 2 了解 A D 芯片 ADC0809 转换性能及编程 3 通过实验了解单片机如何进行数据采集 二 实验内容 利用实验板上的 ADC0809 做 A D 转换器 实验板上的电位器提供模拟量输入 编 制程序 将模拟量转换成二进制数字量 并用发光二极管显示 三 实验电路连线 IN0 P0 口 D0 D7 IN1 P0 0 P0 7 IN2 EOC IN3 FF91H IN4 IN5 D0 D2 373 A0 A IN6 A1 B IN7 A2 C 通道地址 FF80H FF87H 四 实验说明 1 A D 转换器大致有三类 一是双积分 A D 转换器 优点是精度高 抗干扰性好 价格便宜 但速度慢 二是逐次逼近 A D 转换器 精度 速度 价格适中 三是并 行 A D 转换器 速度快 价格也昂贵 2 本实验用的 ADC0809 属第二类 是八位 A D 转换器 每采集一次一般需 100 s A D 转换结束后会自动产生 EOC 信号 本程序是用查询方式读入 A D 转换结果 实验系统具有 8 路 A D 通道 模拟量输入端为 IN0 IN1 IN7 地址分别为 FF80 FF87H 状态口地址 FF91H FF91H 的 D0 位输入的是 EOC 信号 D0 0 表 示未转换完 D0 1 表示转换完毕 可以读入转换好的数据了 实现转换的过程是 先向某一路通道写入任意数从而启动转换 然后从 FF91H 读入 EOC 状态进行判 断 若转换完成 则读入数据即可 A D 转换部分的参考程序如下 MOV DPTR 0FF80H 选中通道 0 D2D1D0 000 MOVX DPTR A 启动转换 MOV DPTR 0FF91H TEST MOVX A DPTR 读入状态 JNB ACC 0 TEST 判断 EOC 状态 EOC 0 继续查询 MOV DPTR 0FF80H EOC 1 转换完毕 MOVX A DPTR 读入数据 3 转换得到的二进制数字量通过 P1 口送到发光二极管显示 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 25 六 参考程序框图 否 是 A D 转换参考程序框图 开始 读入状态信息 启动 A D 转换 数据输出显示 A D 转换完 毕 26 硬件实验八 外部中断实验 急救车与交通灯 一 实验目的 1 学习外部中断技术的基本使用方法 2 学习中断处理程序的编程方法 二 实验内容 在硬件实验二的基础上增加允许急救车优先通过的要求 有急救车到达时 两个方向 交通信号灯全红 以便让急救车通过 设急救车通过路口时间为 10 秒 急救车通过后 交通恢复正常 本实验用单次脉冲申请中断 表示有急救车通过 三 实验电路及连线 P1 0 LED0 P1 1 LED1 P1 2 LED2 P1 3 LED3 P1 4 LED4 P1 5 LED5 INT0 四 实验说实明 1 编制中断处理程序要注意的问题是 保护进入中断时的状态 保护现场 并在退出 中断之前恢复进入时的状态 恢复现场 2 本例中使用了 INT0 中断 一般中断处理程序进入时应保护 PSW ACC 以及中断处理 程序使用但非其专用的寄存器 本例的 INT0 程序中应保护 PSW ACC 等 以便保护 中断前红绿灯的状态 保护现场 并且在退出前恢复原来红绿灯状态 恢复现场 INT0 端接单次脉冲发生器 3 本实验中交通信号灯 LED0 LED5 与 P1 0 P1 5 连接 4 有关本实验的其他问题请参考硬件实验二 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序框图 主程序框图 INT0 中断处理程序框图 LED3 LED4 LED5 分别 表示东西东西方向红 黄 绿 灯 单次脉冲 INT0 中断入口 东西南北红灯都亮 恢复现场 保护现场 延时 10 秒 中断返回 开始 开外中断 INT0 状态 1 南北绿灯 东西红灯 延时一会儿 状态 4 南北红灯 东西绿灯闪转黄灯亮 延时一会儿 状态 2 南北绿灯闪转黄灯亮 东西红灯 延时一会 儿 状态 3 南北红灯 东西绿灯 延时一会 儿 LED0 LED1 LED2 分别 表示南北南北方向红 黄 绿 灯 27 硬件实验九 定时器实验 2 电子秒表 一 实验目的 1 进一步学习 51 单片机内部计数器的使用和编程方法 2 进一步掌握中断处理程序的编程方法 3 了解键盘显示接口工作原理 二 实验内容 利用定时器定时 使七段数码管输出记时值 三 实验电路连线 本实验连线实验板上已经接好 无需另外接线 四 实验说明 本系统键盘显示接口由 8279 芯片控制 占用二个端口地址 数据口 FF88H 命令口 FF89H 在使用键盘显示功能时 要先初始化 8279 本实验中要将记时结果送 LED 显示 这可通过调用下面给出的显示子程序来实现 调用过程是 先将各位记时值拆字 分别送到 LED0 LED7 显示缓冲区中去 然后调用显 示子程序 本实验中用定时器 T0 产生 1 秒钟基本时间单位 本系统 fosc 12MHz 当定时 器 T0 工作在方式 1 16 位 时 最大定时时间为 216 1 s 65536 s 再利用软件记数 当 T0 中断 16 次时 所用时间为 65536 16 1048576 s 1s 因此在 T0 中断处理程序中 要判断中断次数是否到 16 次 若不到 16 次 则只使中断次 数加 1 然后返回 若到了 16 次 则使电子秒表记时值加 1 十进制 请参考硬件实验 五有关内容 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 六 参考程序及框图 LED0EQU50H 定义显示缓冲区 LED1EQU51H LED2EQU52H LED3EQU53H LED4EQU54H LED5EQU55H LED6EQU56H LED7EQU57H ORG 0000H LJMP MAIN ORG 000BH LJMP INT T0 转 T0 中断处理程序 ORG 0030H MAIN NOP INIT1 MOV DPTR 0FF89H INIT 8279 初始化 MOV A 00H MODE MOVX DPTR A MOV A 2AH CLOCK MOVX DPTR A 28 MOV TMOD 01H T0 初始化 方式 1 MOV TH0 00H T0 时间常数 MOV TL0 00H MOV TCON 10H 启动 T0 MOV IE 82H 开 T0 中断 MOV 70H 10H 中断次数记数 65536 16 1048576 s 1s MOV R0 LED0 CLR A LOOP MOV R0 A 显示缓冲区清零 INC R0 CJNE R0 LED7 1 LOOP DISP LCALL DISPLAY 调显示子程序 开始显示 8 个 0 SJMP DISP 循环调用 ORG 1000H DISPLAY MOV DPTR 0FF89H 显示子程序 MOV A 90H 8279 写显示缓冲区命令 MOVX DPTR A MOV R0 8H MOV R1 LED0 DLOOP MOV A R1 MOV DPTR DISPTAB 查表 得到七段字型码 MOVC A A DPTR DISPD2 MOV DPTR 0FF88H MOVX DPTR A 显示 送 8279 数据口 INC R1 DJNZ R0 DLOOP RET ORG 2000H INT T0 PUSH ACC T0 中断处理程序开始 保护现场 PUSH PSW MOV TH0 00H 重新赋 T0 时间常数 MOV TL0 00H MOV PSW 10H 选中工作寄存器 2 组 DJNZ 70H FAN 中断次数记数未减为 0 即未到 1 秒 转 MOV R0 LED7 到 1 秒 MOV 70H 10H 重新赋中断次数记数 LOP3 MOV A R0 ADD A 01 电子秒表记时值加 1 DA A 十进制调整 JNB ACC 4 LOP2 处理进位 MOV R0 00H DEC R0 CJNE R0 LED0 1 LOP3 CLR A LOP2 MOV R0 A 29 FAN POP PSW 恢复现场 POP ACC RETI DISPTAB DB 3FH 0 七段字型码表 DB 06H 1 DB 5BH 2 DB 4FH 3 DB 66H 4 DB 6DH 5 DB 7DH 6 DB 07H 7 DB 7FH 8 DB 6FH 9 DB 77H A DB 7CH B DB 39H C DB 5EH D DB 79H E DB 71H F DB 00H 10H DB 40H 11H DB 76H H 12H DB 73H P 13H DB 3EH U 14H DB 67H Q 15H DB 38H L 16H DB 50H r 17H DB 80H 18H DB 3DH G 19H DB 5CH o 1AH DB 08H 1BH DB 04H i 1CH DB 37H N 1DH DB 1CH u 1EH 主程序框图 DB 78H t 1FH DB 0FFH All 20H DB 54H n 21H END 开始 8279 初始化 T0 初始化 显示缓冲区清 0 调用显示子程序 30 否 是 显示子程序框图 T0 中断处理程序框图 开始 保护现场数 重赋 T0 时间常数 秒数加 1 十进制调整后 送显示缓冲区 恢复中断次数记数初值 中断次数记数 减为 0 恢复现场 返回 开始 8279 写缓冲区命令 查七段字型表 送显示缓冲区 返回 31 硬件实验十 定时器实验 3 电子时钟 一 实验目的 1 进一步掌握定时器的使用和编程方法 2 进一步掌握中断处理程序的编程方法 3 进一步掌握键盘显示接口工作原理 二 实验内容 利用 CPU 的定时器定时 设计一个电子时钟 使七段数码管输出记时值 格式如下 XX XX XX 由左向右分别为 时 分 秒 三 实验电路连线 本实验连线板上已经接好 无需另外接线 四 实验说明 本实验与硬件实验九类似 区别仅在于要显示的是时 分 秒 这仅需要将定时器的秒数 按照钟表的进率进行调整 请参考教材上的有关例题 其余问题请参考硬件实验九 五 实验仪器和设备 PC 机 WAVE 软件 E2000 S 仿真器 POD8X5X 仿真头 MULT1A 用户板 实验板 开 关电源等 32 硬件实验十一 键盘输入实验 一 实验目的 进一步了解键盘显示接口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 郑州美术学院《酒店客户管理》2024-2025学年第一学期期末试卷
- 湖北美术学院《临床微生物学检验技术2》2024-2025学年第一学期期末试卷
- 杭州师范大学钱江学院《现代生物医药进展》2024-2025学年第一学期期末试卷
- 新疆理工学院《中学生物实验创新设计与实践》2024-2025学年第一学期期末试卷
- 2025年营养师职业资格认证考试指南及模拟题集解析
- 幼儿园大班教师对传统文学作品的选择和应用研究
- 2025年全行业通-用面试技巧与笔试预测试题解析
- 2025年程序员面试宝典与预测题解析
- 2025年注册电气工程师考试专业基础备考指南
- 2025年项目协调员面试技巧与实战模拟题
- 不定代词专项练习(附详解)
- 县乡教师选调进城考试《教育心理学》题库含完整答案【全优】
- 营销优化策略研究方法
- 某中央空调机房拆除施工方案
- 《儿童孟氏骨折》课件
- 电力系统绝缘保护 过电压防护 电力系统内部过电压及防护
- 《保障农民工工资支付条例》宣传册
- 《用户体验的要素》课件
- 基于现代文献探讨经方治疗冠心病(胸痹心痛)的处方用药规律研究演示稿件
- 2023年贵州六盘水市盘州市考调事业单位人员60人笔试参考题库(共500题)答案详解版
- 一元二次不等式及解法
评论
0/150
提交评论