单片机仿真实验开发毕业论文.doc_第1页
单片机仿真实验开发毕业论文.doc_第2页
单片机仿真实验开发毕业论文.doc_第3页
单片机仿真实验开发毕业论文.doc_第4页
单片机仿真实验开发毕业论文.doc_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

辽宁科技学院本科生毕业设计 论文 第 1 页 单片机仿真实验开发单片机仿真实验开发 毕业论文毕业论文 目录 1 1 绪绪 论论 3 1 11 1 单片机背景及教学意义单片机背景及教学意义 3 1 21 2 PROTEUSPROTEUS 在单片机教学中的应用在单片机教学中的应用 4 1 31 3 用用 ProteusProteus 在单片机课程设计中的应用在单片机课程设计中的应用 4 2 2 PROTEUSPROTEUS 的简介的简介 4 2 12 1 ProteusProteus ISISISIS 简介简介 4 2 1 12 1 1 实现了单片机仿真和 实现了单片机仿真和 SPICESPICE 电路仿真结合电路仿真结合 5 2 1 22 1 2 支持主流单片机系统的仿真 支持主流单片机系统的仿真 5 2 1 32 1 3 提供软件调试功能 提供软件调试功能 5 2 1 42 1 4 具有强大的原理图绘制功能 具有强大的原理图绘制功能 5 2 22 2 工具栏介绍工具栏介绍 7 2 2 1proteus2 2 1proteus I IS SISIS 菜单栏菜单栏 7 2 2 22 2 2 USUS ISISISIS 主工具栏主工具栏 7 2 2 32 2 3 原理图编辑窗口原理图编辑窗口 7 2 2 42 2 4 预览窗口预览窗口 8 2 2 52 2 5 模型选择工具栏模型选择工具栏 8 2 2 6 方向工具栏 9 2 2 72 2 7 仿真工具栏仿真工具栏 9 3 3 PROTEUSPROTEUS 与与 KEILCKEILC 的联合仿真的联合仿真 10 4 4 基本实验项目的开发基本实验项目的开发 11 4 1 开关的实训演练 11 辽宁科技学院本科生毕业设计 论文 第 2 页 4 1 14 1 1 指拨开关指拨开关 11 4 1 2 按钮开关 13 4 24 2 计数器的实训演练计数器的实训演练 15 4 34 3 中断的实训演练中断的实训演练 18 4 34 3 1 1 单片机外中断实验的设计与仿真单片机外中断实验的设计与仿真 18 4 3 24 3 2 单片机中断优先级实验的设计与仿真单片机中断优先级实验的设计与仿真 21 4 44 4 D AD A A DA D 转换的应用转换的应用 25 4 44 4 1 1 单片机与单片机与 DAC0832DAC0832 接口的设计与仿真接口的设计与仿真 25 图 4 11 DAC0832 接口电路 26 4 4 2 单片机与 ADC0808 接口的设计与仿真 28 4 54 5 定时器的设计与仿真定时器的设计与仿真 32 4 6 串行口实验和仿真 37 4 7 行列式键盘的设计与仿真 39 5 5 综合综合试验项目的开发试验项目的开发 42 5 15 1 基于基于 AT89C51AT89C51 的的的的 6060 秒倒计时装置的设计与仿真秒倒计时装置的设计与仿真 42 5 25 2 基于单片机密码锁的设计和仿真基于单片机密码锁的设计和仿真 45 5 5 3 3 交通灯的设计与仿真交通灯的设计与仿真 57 结结 论论 66 致致 谢谢 67 参考文献参考文献 68 附录附录 A A 69 附录附录 B B 73 附录附录 C C 77 辽宁科技学院本科生毕业设计 论文 第 3 页 1 1 绪绪 论论 1 11 1 单片机背景及教学意义单片机背景及教学意义 1970 年微处理器研制成功之后 随着就出现了单片机 即单片的微型计算 机 1971 年美国的INTEL 公司生产的4 位单片机4004 和1972 年生产的雏 形8 位单片机8008 特别是1976 年9 月INTEL 公司的MCS 48 单片机问世以 来 在短短的十几年间 经历了多次更新换代 其发展速度大约每两 三年要 更新一代 集成度增加一倍 功能翻一番 单片机发展速度之快 应用范围之 广已达到了惊人的地步 它已渗透到生产和生活的各个领域 应用非常广泛 尽管目前单片机的品种很多 但其中最具典型性的当属INTEL公司的MCS 51系 列单片机系列 MCS 51是在MCS 48的基础上于80年代初发展起来的 虽然它 仍然是8位单片机 但其功能有很大的增强 此外它还具有品种全 兼容性强 软硬件资料丰富等特点 因此51系列单片机应用非常广泛 成为继MCS 48之后 最重要的单片机品种 直到现在 MCS 51仍不失为单片机中的主流机型 MCS 51系列单片机主要包括8031 8051和8751等产品 具有结构紧凑 逻辑位 操作功能丰富和直接面向控制的指令系统等优势 堪称一代 名机 随着半 导体技术的发展 51系列单片机的处理速度更快 性能更优越 在工业控制领 域上占据十分重要的地位 现在片机的应用日益广泛深入 诸如在智能仪表 家用电器和军事设备的智能化以及实时过程控制等方面 单片机都扮演着非常 重要的角色 单片机的设计开发具有广阔的前景 估计近10年内8位的单片机将 仍是主流机型 其设计也是嵌入式产品开发的基础 所以 单片机的学习十分 必要 目前单片机技术在各个领域正得到越来越广泛的应用 大多数院校都有单 片机实验室 单片机种类繁多 用单片机开发的产品差异很大技术发展快 用 单片机实验箱进行教学硬件电路上受到很大程度上的限制 Proteus的出现恰好 解决了这个矛盾 可以将它与Keil C51结合随时搭建一个单片机应用系统 并 实现仿真 不仅能为学生提供丰富的实验内容 而且能充分利用学校机房现有 的计算机设备 减少硬件设备维护的工作量 通过单片机技术 课堂实验箱实 辽宁科技学院本科生毕业设计 论文 第 4 页 验 Proteus仿真实验这三方面共同作用可以帮助学生更好的理解单片机技术的 知识点 提高单片机产品的开发能力扎扎实实学好单片机技术这门课程 1 21 2 PROTEUSPROTEUS 在单片机教学中的应用在单片机教学中的应用 单片机课程的实践性很强 实验环节的教学应引起高度重视 而单片机课 程的课内实验学时有限 使用实验箱仅停留在演示性及验证性实验的层次 为 了解决这个问题 可以应用Proteus所提供的元器件模型和外设模型按照实验内 容来设计原理图 再利用仪器仪表的输入输出效果对实验结果进行检测 这样 学生一方面了解了单片机应用系统硬件电路结构 锻炼了编程技术 也学习了 仪器仪表的使用 提高了设计水平 1 31 3 用用 ProteusProteus 在单片机课程设计中的应用在单片机课程设计中的应用 在课程设计中 要求学生先应用Proteus设计仿真 在设计硬件电路时最好 能考虑实验箱的资源状况 以使仿真的结果可在实验箱上实现 等编程调试通 过后可以移植到实验箱上实现 验证实物效果 在进行毕业设计时 也可以让 学生根据爱好和掌握知识的程度自由选择设计题目 培养学生的自主创新意识 教师与学生共同探讨方案的可行性之后 由学生在Proteus中设计硬件电路 编 制程序并调试 等仿真成功之后 再购买元器件进行电路焊接 系统调试和程 序固化 最终每组独立完成一件作品 这种方法可以节省因方案不正确所造成 硬件投入的浪费 并且在实验过程中不会出现元器件的损耗问题 而使学生实 验能力和开发能力都得到较大提高 2 2ProteusProteus 的的简介简介 2 12 1 Proteus ISIS 简介 Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件 可以 仿真 分析 SPICE 各种模拟器件和集成电路 该软件的特点是 辽宁科技学院本科生毕业设计 论文 第 5 页 2 1 12 1 1 实现了单片机仿真和 实现了单片机仿真和 SPICESPICE 电路仿真结合电路仿真结合 具有模拟电路仿真 数字电路仿真 单片机及其外围电路组成的系统的仿 真 RS 232 动态仿真 I2C 调试器 SPI 调试器 键盘和 LCD 系统仿真的功能 有各种虚拟仪器 如示波器 逻辑分析仪 信号发生器等 2 1 22 1 2 支持主流单片机系统的仿真 支持主流单片机系统的仿真 目前支持的单片机类型有 68000 系列 8051 系列 AVR 系列 PIC12 系 列 PIC16 系列 PIC18 系列 Z80 系列 HC11 系列以及各种外围芯片 2 1 32 1 3 提供软件调试功能 提供软件调试功能 在硬件仿真系统中也具有全速 单步 设置断点等调试功能 同是 还可 以观察各个变量 寄存器等的当前状态 因此在该软件仿真系统中也具有这些 功能 同时 还支持第三方的软件编译和调试环境 如 Keil C51 vision2 等软 件 2 1 42 1 4 具有强大的原理图绘制功能 具有强大的原理图绘制功能 用 Proteus 软件虚拟单片机实验的优点 1 内容全面 实验的内容包括软件部分的汇编 C51 等语言的调试过程 也包括硬件接 口电路的大部分类型 对同一类功能的接口电路 可以采用不同的硬件来搭建 完成 可以扩展学生的思路和提高学生的学习兴趣 2 硬件投入少 经济优势明显 Proteus 所提供的软件库中 大部分可以直接用于接口电路的搭建 同时该 软件所提供的仪表 不管在数量还是在质量上都是可靠和经济的 如果在实验 教学中投入这样的真实仪器仪表 仅仪表的维护来讲 其工作量也是比较大的 因此采用软件的方式进行教学 其经济优势是比较明显的 3 学生可自行实验 锻炼解决实际工程问题的能力 采用仿真软件后 对于实际工程问题的研究 可以先在软件环境中模拟通 辽宁科技学院本科生毕业设计 论文 第 6 页 过 在进行硬件投入 这样处理 不仅省时省力 还可以节省因方案不正确所 造成的硬件投入的浪费 4 实验过程中损耗小 基本没有元器件的损耗问题 在传统的实验教学过程中 都涉及到因操作不当而造成的元器件和仪器仪 表的损毁 也涉及到仪器仪表等工作时所造成的能源消耗 采用 Proteus 仿真软 件 则不存在上述的问题 5 与工程实践最为接近 可以了解实际问题的解决过程 在 Proteus 中做一个工程项目 并将其最后移植到一个具体的硬件电路中 让学生了解将仿真软件和具体的工程实践如何结合起来 利于学生对工程实践 过程的了解和学习 6 大量的范例 可供学生参考处理 在系统设计时 存在对以有资源的借鉴和引用处理 而该仿真系统所提供 的比较完善的系统设计方法和设计范例 可供学生参考和借鉴 安装完 PROTEUS 后 运行 ISIS Profeeional 会出现如图 2 1 所示 下面分别对 窗口内个部分进行简单介绍 图 2 1Proteus 操作窗口 辽宁科技学院本科生毕业设计 论文 第 7 页 2 22 2 工具栏介绍工具栏介绍 2 2 1proteus2 2 1proteus ISISISIS 菜单栏菜单栏 菜单栏包括文件 F 查看 V 编辑 E 工具 T 设计 D 绘 图 G 源代码 S 调试 B 库 L 模板 M 系统 Y 帮助 H 如图 2 2 所示 图 2 菜单栏 2 2 22 2 2 USUS ISISISIS 主工具栏主工具栏 主工具栏包括 File 栏 View 工具栏 Edit 工具栏和 Design 工具栏等 每个工具栏的打开与关闭 以通过 View 查看 工具 命令进行设置 2 2 32 2 3 原理图编辑窗口原理图编辑窗口 原理图编辑窗口用于显示当前编辑的原理图的一部分 通过使用查看重 画命令可以使原理图编辑窗口的内容重绘 这也会重绘预览窗口 在任何其 他的命令使得显示有些凌乱的时候也可使用这个功能 蓝色方框内为可编辑 区 元件放置在编辑窗口里面 ISIS 中坐标系统的基本单位是 10nm 主要 是为了和 ARES 保持一致 但坐标系统的识别单位被限制在 1th 坐标原点 默认在图形编辑区的中间 图形的坐标值显示在屏幕右下角的状态栏中 如 辽宁科技学院本科生毕业设计 论文 第 8 页 2 2 42 2 4 预览窗口预览窗口 预览窗口课对选中的对象进行预览 包括对元件列表中选中元件的预览和 对原理图编辑窗口内的对象进行预览 通过单击鼠标可以改变绿色方框的位 置 从而改变原理图的可视范围 2 2 52 2 5 模型选择工具栏模型选择工具栏 1 主要模板 用于选中元器件 选择元器件 放置连接点 放置标签 放置脚本 用于绘制总线 绘制子电路块 2 配件 终端 对象选择列出各种终端 器件引脚 对象选择列出各种引脚 图表 对象选择列出各种仿真分析所需的图表 录音机 对设计电路分割仿真时采用此模式 信号发生器 对象选择列出各种激励源 电压探针 可显示个探针处得电压值 电流探针 可显示个探针处得电流值 虚拟仪表 对象选择列出各种虚拟仪器 3 2D 图形 辽宁科技学院本科生毕业设计 论文 第 9 页 画各种直线 画各种方框 画各种圆 画各种圆弧 画各种多边形 画各种文本 画符号 画原点 2 2 6 方向工具栏 顺时针 逆时针旋转 旋转角度只能是90的整数倍 可以用数字键 盘的 或 键完成元器件的顺时针或逆时针90 镜像 完成水平镜像和垂直镜像 先右键单击元件选中元器件 在左键单击相应的旋转按钮 可以用快捷键Ctrl M 完成元器件的水平镜像 2 2 72 2 7 仿真工具栏仿真工具栏 仿真控制按钮 运行 单步运行 暂停 辽宁科技学院本科生毕业设计 论文 第 10 页 停止 对着写工具熟练的掌握可以让仿真进行的如鱼得水 3 3 ProteusProteus 与与 KeilCKeilC 的联合仿真的联合仿真 Keil 是美国 KeilSoftware 公司开发的 是目前世界上最好的 51 单片机的汇 编和 C 语言的开发工具 它支持汇编 C 语言以及混合编程 同时具备功能强 大的软件仿真 在软件模拟仿真方式下不需要任何单片机硬件即可完成用户程 序仿真调试 虽然 Keil 也提供了硬件仿真功能 但我们在利用它的硬件仿真功 能时 会受到一定的限制 如果我们将 Proteus 与 Keil 联合起来使用 充分利 用各自的仿真功能 单片机软硬件调试将变得十分有效 3 1Proteus 与与 KeilC 的接口的接口 实现 Proteus 与 KeilC 的接口步骤如下 1 把安装目录 Proteus MODELS 下的 VDM51 dll 文件复制到 Keil 安装目 录的 C51 BIN 目录中 2 修改 Keil 安装目录下 Tools ini 文件 在 C51 字段加入 TDRV5 BIN VDM51 DLL Proteus VSM Monitor 51 Driver 并保存 注意 不 一定要用 TDRV5 根据原来字段选用一个不重复的数值就可以了 引号内的名 字随意 3 打开 Proteus 画出相应电路 在 Proteus 的 Debug 菜单中选中 Use Remote Debug MONITOR 4 进入 Keil 的 Project 菜单 Option for Target 工程名 在弹出界面选择 Debug 选项卡 在 Use 的下拉列表框中选择 Proteus VSM Monitor 51 Driver 并 辽宁科技学院本科生毕业设计 论文 第 11 页 且选中 Use 单选框 即在 Use 前面的小圆圈内出现小黑点 再单击 Settings 按 钮 在 Host 文本框输入 127 0 0 1 端口号为 8000 5 在 Keil 中进行 debug 同时在 Proteus 中查看直观的结果 这样就可以像 使用仿真器一样调试程序了 可以看出 Proteus 可以很方便地与 Keil C51 集成开发环境连接 程序编译 好之后 立即可以进行软 硬件结合的系统仿真 4 4 基本实验项目的开发基本实验项目的开发 4 1 开关的实训演练 按钮是人们日常生活经常接触的电子器件 它给我们的生活带来了很大方 便 它广泛应用在工业和生活中 有按钮开关 指拨开关 BCD 指拨开关等 应用单片机的输入口 试验目的 1 掌握单片机 I O 口得输入及输出电路得设计 2 掌握读入按键状态 并输出到 LED 发光管显示得程序设计方法 4 1 14 1 1 指拨开关指拨开关 实验功能 如下图 4 1 1 所示 指拨开关的状态由 P2 输入 而其状态将反映到 P1 所连接的 LED 上 若 P2 0 所连接的开关 on 则 P1 0 所连接的 LED 会亮 若 P2 0 所连接的开关 off 则 p1 0 所连接的 LED 将不亮 以此类推 1 电路设计 元件清单 80C51 DIPSW 8 LED RED 220 欧姆 原理图 辽宁科技学院本科生毕业设计 论文 第 12 页 4 1 指拨开关电路 参考程序 根据功能需求与电路结构可知 当指拨开关 on 时 要由其连接的输入口读 取到低电平 即 0 而若要连接在 P1 的 LED 亮 则由 P0 输出低电平即可 因 此 在程序里 只要将 P2 读取到的指拨开关直接输出到 P 即可 当然 可不要 忘了 事先将 P2 设计成输入功能 2 程序设计 ORG 0 START MOV P2 0FFH 设 P2 为输入功能 LOOP MOV A P2 读入指拨状态开关 MOV P1 A 将开关状态反应到 P0 LJMP LOOP END 程序调好后生成 4 1 HEX 文件 并加载该文件 运行 Proteus ISIS 运行拨动指 拨开关可以看到可以看到如图 辽宁科技学院本科生毕业设计 论文 第 13 页 3 仿真 仿真图标 启动仿真 图 4 2 指拨开关仿真 拨动指拨开关 K3 K6 P1 口上的灯 D3 D6 点亮 4 1 2 按钮开关 功能说明 如图 4 1 3 所示 若按一下 PB1 则 P0 0 所连接的 LED 亮 若按一下 PB2 则关闭 P0 0 所连接的 LED 不亮 1 电路设计 原件清单 80C51 BUTTON LED BIRG RES 220 欧姆 辽宁科技学院本科生毕业设计 论文 第 14 页 图 4 3 按钮开关 参考程序 根据功能需求与电路结构可知 当按下按钮开关时 能从其连接的输入口读 取到低电平 即 0 而若要连接在 P0 0 的 LED 亮 则由 P0 0 输出低电平即可 因此 在程序里 若 P2 0 读取到 0 则将 P0 0 设为 0 若 P2 1 读取到 0 则将 P0 0 设为 1 同样地 课不要忘了 事先将 P2 设计成输入功能 2 程序设计 ORG 0 START MOV P2 0FFH 将 P2 设计为输入功能 LOOP JNB P2 0 ON JNB P2 1 OFF JMP LOOP ON CLR P0 0 P0 0 0 ON 1 JB P2 0 LOOP 去抖动 JMP ON 1 OFF SETB P0 0 辽宁科技学院本科生毕业设计 论文 第 15 页 OFF 1 JB P2 1 LOOP lJMP OFF 1 END 程序调好后生成 4 2 HEX 文件 并加载该文件 运行 Proteus ISIS 运行后按按 钮开关可 K2 以看到可以看到如图 3 仿真 单机图标 启动仿真 图 4 4 按钮开关仿真 单击 K2 灯 D1 点亮 再单击 K1 灯熄灭 4 2 计数器的实训演练 在数字电子技术中应用的最多的 时序逻辑电路 计数器不仅能用于对 时 钟脉冲计数 还可以用于分频 定时 产生节拍脉冲和脉冲序列以及进行数 字运算等 但是并无法显示计算结果 一般都是要通过外接LCD 或 LED 辽宁科技学院本科生毕业设计 论文 第 16 页 屏才能显示 实验目的 1 掌握二 十进制译码器和显示电路同时计数配套使用的方法 2 掌握加减计数 功能说明 如图 4 5 所示 P0 的低 4 位连接到 7447 BCD 码对 7 段 LED 数码管的译码 与驱动器 PB1 具有增数的功能 P 具有减数的功能 若程序刚开始时 段 LED 数码管显示 0 按一下 PB1 则 7 段 LED 数码管显示 1 再按一下 PB1 则 7 段 LED 数码管显示 2 若 7 段 LED 数码管显示 9 按一下 PB1 则 7 段 LED 数码管显示 0 同样地 若 7 段 LED 数码管显示 0 按一下 PB2 则 7 段 LED 数码管显示 9 再按一下 PB2 则 7 段 LED 数码管显示 8 依次类推 1 电路设计 原件清单 7SEG COM AN GRN 80C51 7447 BUTTON RES 220 欧 姆 图 4 5 计数器 参考程序 根据功能需求与电路结构可知 只要 P0 0 到 P0 3 输出 BCD 码 7 段 LED 数 码管即可正确地显示 0 9 的数字 在程序的开始 先将 7 段 LED 数码管设为 辽宁科技学院本科生毕业设计 论文 第 17 页 0 若读取到 P2 0 为 0 若读取到 P2 0 为 0 则进行加数的操作 若读取到 P2 1 为 0 则进行减数的操作 2 程序设计 ORG 0 START MOV A 0 设定显示器的初始值 SETB P2 0 设定 P2 0 为输入口 SETB P2 1 设定 P2 1 为输入口 LOOP MOV P0 A 显示 A 的内容 JNB P2 0 INCR JNB P2 1 DECR LJMP LOOP INCR JNB P2 0 INCR 放开按键 INC A ADD A 0 DA A 将 A 的内容进行 BCD 调整 LJMP LOOP DECR JNB P2 1 DECR 放开按键 JZ ZERO 判断 A 的内容是否为 0 DEC A ADD A 0 DA A LJMP LOOP ZERO MOV A 9 LJMP LOOP END 程序调好后生成 4 2 HEX 文件 并加载该文件 运行 Proteus ISIS 运行按动按 钮 PB1 PB2 开关可以看到可以看到如图 4 2 2 辽宁科技学院本科生毕业设计 论文 第 18 页 3 仿真 单机图标 启动仿真 图 4 6 计数器仿真 按 PB1 实现加计数 按 PB2 实现减计数 4 34 3 中断的实训演练中断的实训演练 中断是指计算机在执行程序的过程中 当出现异常情况或特殊请求时 计算 机停止现行程序的运行 转向对这些异常情况或特殊请求的处理 处理结束后 再返回现行程序的间断处 继续执行原程序 中断是单片机实时地处理内部或 外部事件的一种内部机制 当某种内部或外部事件发生时 单片机的中断系统 将迫使 CPU 暂停正在执行的程序 转而去进行中断事件的处理 中断处理完毕 后 又返回被中断的程序处 继续执行下去 4 34 3 1 1 单片机外中断实验的设计与仿真单片机外中断实验的设计与仿真 设计与仿真目的 1 理解中断过程及作用 掌握单片机外中断的电路设计 2 学习中断应用及中断服务程序的设计方法 辽宁科技学院本科生毕业设计 论文 第 19 页 PROTEUS 设计与仿真 1 电路设计 在 PROTEUS ISIS 中设计如图 4 3 1 所示的外中断电路 元件清单 3WATT470R 7SEG COM AN GRN AT89C51 BUTTON RESPACK 8 原理图 图 4 7 中断电路图 参考程序 根据功能需求与电路结构可知 上点运行 观察到 P0 口上的数码管中各 段按 a g 的顺序点亮 每一时刻只有一段亮 循环进行 当单击 S0 时 发生 外中断 0 与 P2 口相接数码管中的各段全部点亮半秒 再暗半秒 如此循环 8 次后 返回主程序继续中断前的工作 2 程序设计 ORG 00H SJMP STAR 辽宁科技学院本科生毕业设计 论文 第 20 页 ORG 03H 将 INT0 中断入口地址 SJMP INT0S 转中断服务 ORG 30 STAR MOV IE 10000001B 开中断 MOV TCON 1H 采用边沿触发 MOV A 0FEH P0 口输出初值 ST1 MOV P0 A ACALL DELAY 延时 RL A 改变输出数据 SJMP ST1 主循环 INT0S PUSH ACC 保护现场 MOV R2 8 R2 计算器赋初值 LOOP CLR A MOV P2 A 数码管亮 ACALL DELAY 延时 MOV A 0FFH MOV P2 A 数码管全暗 ACALL DELAY 延时 DJNZ R2 LOOP 循环 8 次 POP ACC 恢复现场 A RETI DELAY MOV R7 250 延时子程序 500ms D1 MOV R6 250 D2 NOP NOP NOP NOP NOP NOP DJNZ R6 D2 DJNZ R7 D1 RET END 程序调好后生成 4 3 1 HEX 文件 并加载该文件到图 4 3 1 中单片机的 Program File 属性栏中并设置时钟频率为 12MHZ 3 仿真 单机图标 启动仿真 辽宁科技学院本科生毕业设计 论文 第 21 页 图 4 8 中断仿真图 未单击外中断 0 按键时 P0 口接的数码管上点亮以 a g 的顺序循环流动 当单 机按键时 触发外中断 0 主程序暂停 亮点暂停流动 外中断服务程序控制 P2 口数码管闪烁 8 次 8 后熄灭 中断返回 主程序使亮点接着流动 如图 4 3 2 所示 主程序暂停在亮点 d 中断服务程序正显示 8 4 3 24 3 2 单片机中断优先级实验的设计与仿真单片机中断优先级实验的设计与仿真 设计与仿真的目的 理解中断优先级 中断嵌套 理解中断过程及中断优先级的设置 中断服务程序的处理方法 功能说明 设置 INT1 为高优先级 INT0 为低优先级 高优先级可中断低优先级 但低优 先级的中断请求不能中断高优先级 同一优先级不能相互中断 辽宁科技学院本科生毕业设计 论文 第 22 页 电路设计 在 PROTEUS ISIS 中设计如图 4 2 3 所示中断优先级演示实验电路 元件清单 3WATT470R 7SEG COM AN GRN AT89C51 BUTTON RESPACK 8 原理图 图 4 9 优先级中断电路 如图 4 9 所示 上电运行 观察到单片机主程序控制 P0 口数码管循环显示 0 8 按下两种操作方式做中断优先级实验 先单击 S1 发生 INT1 中断 在 INT1 响应中断未返回时单击 S0 观察现象 并作出合理解释 先单击 S0 发生 INT0 中断 在 INT0 中断 在 INT0 响应中断未返回时单击 S1 观察现象 并作出合理解释 2 程序设计 ORG 00H SJMP STAR ORG 03H INT0 中断入口地址 SJMP INT0S 转 INT0 中断服务程序 ORG 13H INT1 入口地址 SJMP INT1S ORG 30H STAR MOV IE 85H INT0 开中断 MOV TCON 5 边沿出发方式 MOV A 0FEH P2 口输出初值 MOV P3 0FFH SETB PX1 ST0 MOV A 1 ST1 PUSH ACC 辽宁科技学院本科生毕业设计 论文 第 23 页 ACALL SEG7 MOV P0 A ACALL DELAY POP ACC INC A CJNE A 9 ST1 SJMP ST0 INT0S PUSH ACC MOV A 0 LOOP INC A PUSH ACC ACALL SEG7 MOV P2 A POP ACC ACALL DELAY CJNE A 8 LOOP POP ACC MOV P2 0FFH RETI INT1S PUSH ACC MOV A 0 LOOP1 INC A PUSH ACC ACALL SEG7 MOV P1 A ACALL DELAY POP ACC CJNE A 8 LOOP1 MOV P1 0FFH POP ACC RETI DELAY MOV R7 250 D1 MOV R6 250 D2 NOP NOP NOP NOP NOP NOP DJNZ R6 D2 辽宁科技学院本科生毕业设计 论文 第 24 页 DJNZ R7 D1 RET SEG7 INC A MOVC A A PC RET DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H END 程序调好后生成 4 3 2 HEX 文件 并加载该文件到图 4 3 2 中单片机的 Program File 属性栏中并设置时钟频率为 12MHZ 仿真 单机图标 启动仿真 图 4 10 优先级中断仿真 低优先级 INT0 中断主程序 当主程序运行时 控制与 P0 口相接的数码管循环显示 1 8 而 P1 P2 口的 数码管不显示 当前主程序控制 P0 口显示 2 时 单击 低优先级 按钮 触发 INT0 INT0 服务程序控制 P2 口依次显示 1 8 当前显示 2 高优先级 INT1 中断低优先级 INT0 在上一步的基础上 即主程序 INT0 中断在 P0 口输出 2 在 INT0 服务程 辽宁科技学院本科生毕业设计 论文 第 25 页 序在 P2 口也输出 2 的时刻 单击 高优先级 按钮 触发高优先级 INT1 所在 INT0 服务程序在 P2 口输出 2 接下来 INT1 控制 P1 口输出 3 8 关闭显示 中断返回至 INT0 显示 5 的断电 接着 P2 口输出 6 7 显示 8 中断返回至主程序断点显示 6 接着主程序控制 P0 口输 出循环显示 7 8 用 PROTEUS 图形化的仿真演示功能 很好的演示了 中断优先级的原理 4 44 4 D AD A A DA D 转换的应用转换的应用 4 44 4 1 1 单片机与单片机与 DAC0832DAC0832 接口的设计与仿真接口的设计与仿真 单片机处理的数字量 实际应用中 常常需要将数字量转换成模拟量来推 动或控制外设 D A 转换器就是一种将数字量转换成模拟量 电流 电压等 的电子器件 是应用广泛的接口 IC 由 D A 转换器组成的电路加上相应的软 件 便可解决单片机和受控外设之间的连接问题 设计与仿真目的 理解单片机与 DAC832 典型的单缓冲方式接口电路 理解如何构建 D A 转换的数字量 理解单片机把 DAC 当作一个外 RAM 地址来访问 PROTEUS 设计与仿真 1 电路设计 在 PROTEUS ISIS 中设计如图 4 11 所示的单片机与 DAC0832 接口电路 原件清单 AT89C51 BUTTON DAC0832 POT LIN PULLUP UA741 原理图 辽宁科技学院本科生毕业设计 论文 第 26 页 图 4 11 DAC0832 接口电路 2 程序设计 锯齿波 ORG 00H JUCHI MOV A 00 第一个数据 MOV DPTR 7FFFH 片外 RAM 单元 JUCHI1 MOVX DPTR A 输出数据到 DA INC A 数据更新 1 SJMP JUCHI1 END 半圆波 ORG 00H BANYUAN MOV R2 00 起始值为 0 MOV R1 40 数据长度为 40 BANY1 MOV DPTR TAB2 首地址给 DPTR MOV A R2 MOVC A A DPTR 查表取数 辽宁科技学院本科生毕业设计 论文 第 27 页 MOV DPTR 7FFFH MOVX DPTR A 输出数据到 DA INC R2 数据序号更新 DA 1 DJNZ R1 BANY1 循环取数 SJMP BANYUAN 复位 TAB2 DB 0 40 56 67 77 85 91 102 107 111 送到 DA 的数据表 DB 114 117 120 122 124 125 127 127 128 DB 128 127 127 125 124 122 120 117 114 DB 111 107 102 97 91 85 77 67 56 40 0 END 程序调好后分别生成 DAC1 HEX DAC2 HEX 加载到单片机中 3 仿真 单机图标 启动仿真 在 DAC1 HEX DAC2 HEX 的控制下 可在模 拟示波器上看到锯齿波和半圆波如图 4 12 所示 辽宁科技学院本科生毕业设计 论文 第 28 页 图 4 12 DAC0832 仿真 4 4 2 单片机与 ADC0808 接口的设计与仿真 A D 转换器是一种能把输入模拟电压或电流信息变成与其正比的数字 量信息的电路芯片 A D 转换器用于实现模拟量到数字量的转换 ADC0808 是典型的 8 通道模拟输入 8 位并行数字输出的逐次逼近式 A D 转换器 该转换器采用 CMOS 工艺 可实现 8 路模拟信号的分时采集 片内有 8 路模拟选通开关 以及相应的通道地址锁存用译码电路 设计与仿真目的 理解典型的单片机与 ADC0808 的接口电路 理解用延时方式编写 ADC0808 转换程序的方法 理解单片机把 ADC0808 当作一个片外 RAM 地址来访问 PRPTEUS 设计与仿真 1 电路设计 在 PROTEUS ISIS 中设计如图 4 13 所示的单片机与 ADC0808 的接口 电路 原件清单 7SEG MPX4 辽宁科技学院本科生毕业设计 论文 第 29 页 CA 7447 ADC0808 BUTTON POT RES 图 4 13ADC0808 接口电路 1 程序设计 ETDATA EQU 30H ADC0808 数据输出值 ST BITP3 0 OE BITP3 1 EOCBITP3 2 CLKBITP3 7 ORG 0000H LJMPMAIN ORG000BH LJMPT0X 中断 0 ORG001BH LJMPT1X 中断 1 ORG0030H MAIN MOVTMOD 12H T0 工作在模式 2 T1 工作在模式 1 MOVTH0 216 MOVTL0 216 辽宁科技学院本科生毕业设计 论文 第 30 页 MOVTH1 65536 4000 256 4ms 延时赋初值 MOVTL1 65536 4000 MOD 256 SETBET0 SETBET1 SETBTR0 SETBTR1 SETBEA LOOP CLRST 产生启动转换的正脉冲信号 SETBST CLRST JNBEOC 等待转换结束 SETBOE 允许输出 MOVGETDATA P0 暂存转换结果 CLROE 关闭输出 MOVA GETDATA 将转换结果转换为 10 进制数 MOVB 100 DIVAB MOV33H A 存放百位上的数 MOVA B 除以 100 后的余数 MOVB 10 DIVAB MOV34H A 十位上的数 MOV35H B 个位上的数 LJMPLOOP T0X CPLCLK RETI T1X MOVTH1 65536 4000 256 4ms 延时赋值 MOVTL1 65536 4000 MOD 256 MOVA 33H 百位上的数 辽宁科技学院本科生毕业设计 论文 第 31 页 ORLA 10H 左边第一个 LED 工作 MOVP1 A LCALL DELAY MOVA 34H 十位上的数 ORLA 20H 左边第二个 LED 工作 MOVP1 A LCALL DELAY MOVA 35H 个位上的数 ORLA 40H 左边第三个 LED 工作 MOVP1 A LCALL DELAY MOVP1 00H 左边第四个无输出 LCALL DELAY RETI DELAY MOVR7 255 DJNZR7 RET END 程序调好后生成 ADC HEX 文件 并加载该文件到图 4 13 中单片机的 Program File 属性栏中并设置时钟频率为 12MHZ 2 仿真 单机图标 启动仿真 如图 4 5 2 所示 辽宁科技学院本科生毕业设计 论文 第 32 页 图 4 14ADC0808 接口仿真 ADC0808 内部有输出锁存器 可以与 AT89C51 单片机直接相连 初始化时 使 START 和 OR 信号全为低电平 传送到要转换的通道的地址在 A B C 端口上 在 START 端给出一个至少有 100ns 宽的正脉冲信号 当 EOC 变为高电平时 表示转换完成 数码管显示数据范围为 0 255 4 54 5 定时器的设计与仿真定时器的设计与仿真 定时器是日常生活中最常用到的单片机系统 本实验定时器设计一个秒表定 时器 T0 工作在方式 1 设计与仿真目的 初步了解定时器的应用 掌握定时器的相关知识 PRPTEUS 设计与仿真 1 电路设计 在 PROTEUS ISIS 中设计如图 4 15 定时器秒表的应用电路 原件清单 7SEG MPX2 CA AT89C51 BUTTON RESPACK 8 辽宁科技学院本科生毕业设计 论文 第 33 页 图 4 15 秒表电路 2 程序设计 KEY BIT P3 0 ORG 0000H LJMP MAIN ORG 000BH LJMP TI T0 ORG0030H MAIN MOV TMOD 01H 定时器初始化 MOV TH0 3CH 定时 50ms MOV TL0 0B0H MOV IE 82H 辽宁科技学院本科生毕业设计 论文 第 34 页 MOV R0 00H MOV R1 00H D0 JB KEY D00 判断键是否按下 LCALL DELAY JB KEY D00 SETB TR0 第一次按键 刚启动定时器 SETB EA JNB KEY SJMP D1 D00 CALL DISPLAY 没按则调用显示 SJMP D0 D1 CALL DISPLAY JB KEY D1 判断是否有第二次按键 CALL DELAY 没按则继续调用显示 JB KEY D1 D2 CALL DELAY JB KEY D1 CLR EA 第二次按键 则暂停计数 CALL DISPLAY JNB KEY D3 JB KEY D33 判断是否有第三次按键 CALL DELAY JB KEY D33 MOV R1 00H 第三次按键 则计数清零 JNB KEY SJMP D0 D33 CALL DISPLAY SJMP D3 显示程序 DISPLAY MOV A R1 辽宁科技学院本科生毕业设计 论文 第 35 页 MOV B 10 DIV AB MOV DPTR TAB1 MOVC A A DPTR MOV P0 A SETBP2 6 显示十位 CALL DELAY CLR P2 6 MOV A B MOV DPTR TAB MOVC A A DPTR MOV P0 A 显示个位 SETBP2 7 CALL DELAY CLRP2 7 RET 延时程序 DELAY MOV R7 20 D4 MOV R6 250 DJNZ R6 DJNZ R7 D4 RET 中断程序 TI T0 MOV TH0 3CH MOV TL0 0B0H INC R0 CJNE R0 02H RETURN 是否计到 100ms MOV R0 00H 辽宁科技学院本科生毕业设计 论文 第 36 页 INC R1 到 100ms 则加 1 CJNE R1 99 RETURN 加到 99 时清零 MOV R1 00H RETURN RETI TAB DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H TAB1 DB 40H 79H 24H 30H 19H 12H 02H 78H 00H 10H END 3 仿真 单机图标 启动仿真 图 4 16 秒表仿真 辽宁科技学院本科生毕业设计 论文 第 37 页 当第一次按下按键时 定时器开始计时 第二次按下按键时 停止计时并计算 第一次按下键盘与第二次按下键盘时间 送入 P0 口和 P2 口并将时间显示出来 P0 口显示十位 P2 口显示个位 第三次按下键盘时使定时器清 0 等待下一次 按键 4 64 6 串行口实验和仿真串行口实验和仿真 如图 4 17 所示 将 89C51 的第 10 与 11 脚短路 让串行数据输出连接到串 行输入 以达到自己传给自己的目的 另外 第 11 脚所要传出的数据是来自 PORT2 所连接的指拨开关 DIPSW 状态 而第 11 脚所接收的串行数据 将反映 到 P0 所连接的 LED 上 PRPTEUS 设计与仿真 1 电路设计 在 PROTEUS ISIS 中设计如图 4 17 所示的串行口电路 原件清单 AT89C51 DIPSW 8 LED BLUE RES 图 4 17 串行电路图 辽宁科技学院本科生毕业设计 论文 第 38 页 2 程序设计 ORG 0 START MOV TMOD 20H 将 Timer1 设置 mode2 作为比特率产生 ANL PCON 3FH 将 SMOD 设置为 0 MOV TH1 0FDH 比特率设置为 9600bit s SETB TR1 启动 Timer1 MOV SCON 01010000B 设置串行口初始值 MOV p2 0FFH 将 P2 设置为输入功能 LOOP MOV A P2 读取指拨开关状态 MOV SBUF A 将 ACC 的内容复制到 SBUFF JNB RI 检查是否完成接受 完成接受 则 RI 串行中断 CLR RI 清除 RI 标志 MOV P0 SBUF 将所接受的数据输入到 Port0 CLR T1 清除 TI 标志 JMP LOOP END 3 仿真 单机图标 启动仿真 辽宁科技学院本科生毕业设计 论文 第 39 页 图 4 18 仿真图 在此所要采用的比特率为 9600bit s 首先利用 TMOD 寄存器 将 Timer 设置 mode2 在将 PCON 寄存器的 SMOD 位设置为 0 然后 TH1 寄存器加载 FDH 即 253 最后启动 Timer1 即可产生 9600bit 的比特率 另外 在 SCON 寄存器里 将串行端口设置为 mode1 即可由 Port2 所读取的数据 放入 SBUF 寄存器 CPU 即自动传送 另一方面 CPU 也自动接收 当接收的 SBUF 寄存满了 即产生 RI 中断 4 74 7 行列式键盘的设计与仿真行列式键盘的设计与仿真 键盘上的按键行列组成矩阵 在行列的交点上都对应一个键 为了实现键盘 的数码输入功能和命令处理功能 每个键都有一个处理子程序 为此每个按键 对应一个键码 以便根据键码转到相应的键处理子程序 设计与仿真的目的 掌握行列式键盘与单片机典型的接口电路 理解扫描读键法 辽宁科技学院本科生毕业设计 论文 第 40 页 PRPTEUS 设计与仿真 1 电路设计 在 PROTEUS ISIS 中设计如图 4 19 所示的行列式键盘电路 如图 4 19 行列式键盘电路 2 程序设计 ORG0000H LJMPMAIN ORG0030H MAIN MOVP3 00H L1 MOVR3 0F7H 键盘行扫描的初值 MOVR1 00H TABLE2 的取码指针 L2 MOVA R3 MOVP2 A MOVA P2 MOVR4 A SETBC C 1 MOVR5 04H 列扫描数 L3 RLCA JNC KEYIN C 0 表示有按键 INC R1 辽宁科技学院本科生毕业设计 论文 第 41 页 DJNZR5 L3 4 个扫描完毕 MOVA R3 扫描下一个 SETBC 使右移时 移入 1 RRCA

温馨提示

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

评论

0/150

提交评论