《多级外部中断控制灯设计》10电气1班 第二组_第1页
《多级外部中断控制灯设计》10电气1班 第二组_第2页
《多级外部中断控制灯设计》10电气1班 第二组_第3页
《多级外部中断控制灯设计》10电气1班 第二组_第4页
《多级外部中断控制灯设计》10电气1班 第二组_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

0 单单 片片 机机 课课 程程 设设 计计 用外部中断控制用外部中断控制 LEDLED 灯的设计灯的设计 学号 学号 20100611192010061119 专业 专业 1010 电气一班电气一班 姓名 姓名 赵晨博赵晨博 成绩 成绩 2012 06 132012 06 13 1 多级外部中断控制灯移动多级外部中断控制灯移动 一 设计目的与要求 一 设计目的与要求 1 利用多级外部中断控制灯的移动 要求具有电源开关及指示灯 有复 位按键 2 单片机 P1 端口接 8 只 LED 复位后 8 只灯闪烁 按下外部中断开关 外部中断输入信号 K1 后 8 只灯中的一个灯左右移动三次 之后恢 复闪烁 按下外部中断开关 K2 后 8 只灯中的两只左右移动四次 之 后恢复闪烁 3 注意多机终端的优先级 例如 若 K2 高优先级 K1 低优先级 则 当按下 K1 使一只灯左右移动过程中按下 K2 立即开始两只等移动 然 后再继续没有完成的一只灯移动次数 若先按下 K2 在两只灯移动过程 中按下 K1 不会影响两只灯的移动 直到完成规定的次数 关键词 关键词 AT89C52 中断 汇编程序 桥堆 晶振 二 设计所需单片机知识 设计所需单片机知识 1 中断源 指能向 CPU 发出中断请求信号的部件和设备 2 2 中断信号 指内部或外部中断源产生的申请信号 这个信号通常是电 信号的某种变化形式 有以下几类 1 脉冲的上跳沿或下降沿 上升沿触发型或下降沿触发型 2 高电平或低电平 3 电平的变化 3 中断控制与中断响应条件 在单片机中 对应每一个中断源都有一个相应的中断标志位 该 中断标志位将占据中断控制寄存器中的一位 当单片机检测到某一中断 源产生符合条件的中断信号时 其硬件会自动将该中断源对应的中断标 志位置 1 这就意味着有中断信号产生并向 MCU 申请中断 响应 A 中断 全局中断允许标志位 中断 A 允许标志位 中断 A 的标 志位 4 外部中断 系统的外部设备产生的中断源 产生一个中断信号 通常是高 低地那瓶或者电平跳变的上升 下降 送到单片机的外部中 断请求引脚供 CPU 检测 5 中断进行的大概过程 总中断允许位打开 本身中断允许位打开 中断源产生一个符 合条件的中断信号 当 MCU 检测到这个信号 其硬件就自动将该中断源 对应的中断标志位置 1 这个标志位在中断控制寄存器中占一位 即 响应中断 则 CPU 会自动转移 执行一个固定的程序空间地址中的指令 3 即中断向量 在中断向量处放置着一条跳转到中断服务程序的指令 这样 CPU 响应后 执行中断向量中的转移指令 进而执行中断服务程 序 4 目目 录录 1 设计背景 6 1 1 课题依据 6 1 2 实习背景 4 2 设计方案 6 2 1 提出方案 6 2 2 确定方案 6 3 方案实施 6 3 1 硬件原理 6 3 2 软件程序 9 3 3做出实物 11 4 设计总结 11 5 课程设计收获 11 6 附件 12 6 1 原理图 12 6 2 程序清单 13 6 3 元器件清单 15 5 1 1 设计背景设计背景 1 11 1 课题依据课题依据 单片机中断功能可以提高 CPU 的效率 可以实现实时处理 以满足实时控制要 求 可及时处理故障 提高单片机的可靠性 1 21 2 实习背景实习背景 由于单片机具有集成度高 处理功能强 可靠性高 系统结构简单 价格低廉 易于使用等优点 在世界范围内已经得到广泛普及和应用 目前在工业控制 智能 仪器仪表 家用电器 测控等领域 都可以看到单片机的踪影 在我国 单片机的 开发和使用技术发展迅速 近年来 单片机成为全国各高校相关专业的重要课程 实习是学以致用的重要途径之一 2 设计方案 2 12 1 方案提出方案提出 方案一 单片机的 P1 口接 8 只 LED 和接两级外部中断电路 采0INT1INT 用汇编语言编程 在主程序中调用中断程序 循环程序和延时程序的嵌套 方案二 单片机的 P1 口接 8 只 LED 和接两级外部中断电路 采用0INT1INT C 语言编程 在主程序中调用循环程序并且调用中断子程序和延时子程序 2 22 2 确定方案确定方案 采用汇编语言编程占用资源少 而且执行效率高 思路清晰 但是程序较繁 琐 采用 C 语言编程程序较简短一些 编写比较难理解 占用资源多 中断优先级容易 设置 方案一和方案二都能够达到实验要求 在讲两种编程语言对比后 结合自己 的知识掌握情况 我们使用了汇编语言编程 决定采用方案一 3 方案实施 3 13 1 硬件原理硬件原理 6 本设计主要以 AT89C52 芯片为中心 分别与电源电路 复位电路 中断系统 时钟电路 LED 显示电路连接 组成一个具有两级中断控制灯移动的简易系统 原 理图如附件 7 1 在此次实习中 本人主要负责硬件电路的设计 各部分电路如下 1 电源电路 图 1 电源电路 桥堆是整流电路中常见的器件 它实际上就是将 4 只整流二极管封装在一起 桥堆有 4 根引脚 从它的内电路中可以看出 四只二极管构成桥式电路 7805 三 端稳压器件是最常用的线性降压型 DC DC 转换器 内含过流和过载保护电路 如图 1 所示 用桥堆 2W10 和 7805 以及电容电阻与外界变压器相连为复位电路 LED 显 示电路 中断部分提供 5 伏电压 图中开关控制电源 发光二极管为电源指示灯 2 复位电路 图 2 复位电路 复位电路的基本功能是 系统上电时提供复位信号直至系统稳定后 撤销复位 信号 在初始化程序中应安排一定的复位延迟时间用来系统可靠复位 本设计采用 了按键手动电平复位 如图 2 所示 R12 左端引线接电源 C6 右端引线接 AT89C5 2 的 RST 接口 其工作原理是 VCC 上电时 电容充电 在 1K 电阻上出现电压 使得单片机复位 几个毫秒后 电容充满 1K 电阻上电流降为 0 电压也为 0 使 7 得单片机进入工作状态 工作期间 按下按键 电容放电 松手 电容又充电 在 1K 电阻上出现电压 使得单片机复位 几个毫秒后 单片机进入工作状态 本实 验中 当 LED 在有规律率闪烁时 按下开关 SW 就可以恢复到 8 个发光二极管闪 烁 这种复位电路比较简单 其中电阻和电容参数可以根据时钟频率确定 3 中断电路 图 3 中断电路 51 系列单片机的外部中断和为低电平有效 如图 3 所示 R9 和0INT1INT R10 左端接电源 下端两根引线分别接和 在按下按键 K1 和 K2 时 外部中0INT1INT 断接收低电平 发出中断请求 此时 LED 灯按照程序循环 K2 的优先级高于 K1 4 时钟电路 图 4 时钟电路 51 系列单片机内部有一个用于构成振荡器的高增益反相放大器 该高增益反 相放大器的输入端为芯片引脚 XTAL1 输入端为引脚 XTAL2 这两个引脚跨接石英晶 体振荡器和微调电容 构成一个稳定的自激振荡器 为单片机提供始终脉冲 如图 8 构成单片机最小工作模式 图中晶振 Y1 采用 12MH 属于内部时钟电路 根据书中 所述确定两个电容的值 Y1 设置为 12MH 时 C1 C1 值为 33PF 5 LED 显示电路 AT89C52 有四个双向 8 位并行 I O 端口 分别记作 P0 P3 共 32 根口线 在次 设计中 P1 口作为输出口使用 外电路无需接上拉电阻 如图 5 所示 八只 LED 接到 AT89C52DE P1 端口 在外部电平的驱动下 由于程序的作用 这 8 只 LED 按 照要求发光 每个发光二极管都要串联一个适当的都电阻作为保护措施 图 5 显示电路 3 23 2 软件编程软件编程 采用汇编语言编程 在主程序中 先把累加器赋初值 0FEH 可以点亮第一个灯 初始化后要进行累加器的取反 主程序调用中断子程序 此程序的主要部分是两个 中断子程序和延时程序 中断要先设置优先级 在设计中我们将 K1 接作为低0INT 级中断 让一个工作寄存器循环向右移动一位 在执行三次循环之后返回 K2 接 作为高级中断 让相邻两个寄存器依次向右移动两位 在执行四个循环后返1INT 回 两个中断子程序均要嵌套调用一个延时程序 在写完程序之后 要使用 KEIL 软件进行编译 程序流程图如图 6 9 开始 初 始 化 8 只灯闪烁 中断 0 赋初值 循环左移 1 次 八次到 三次到 循环右移 1 次 八次到 N N Y Y Y N 返 回 中断 1 赋初值 循环左移 2 次 四次到 四次到 循环右移 2 次 四次到 返 回 N N N N N N Y Y Y 图 6 程序流程图 10 3 33 3 做出实物做出实物 这次课程设计采用万能板 按照原理图焊接电路 焊接过程必须注意不能短路 焊接之后将程序写入 验证能否实现设计要求的所有功能 如果不能 检验是否焊 接错误 如有错误进行修改 直到能够实现功能 在验证时 由于没有变压器 我 们采用了常用低压充电器替代 4 结果与结论 4 14 1 结果结果 在老师的指导和同学的帮助下 我们按时完成了设计 而且能实现要求的功能 在验证的时候 由于开始单片机接地线疏忽了 导致单片机芯片 AT89C52 不能 工作 在经过修改之后 基本能完成设计要求的所有功能 在按下 K1 之后 一只 LED 循环移动三个来回之后 恢复闪烁 按下 K2 则两个灯循环四个来回之后恢复 若在 K1 按下之后立即按下 K2 则先执行两个灯循环 然后继续执行一个灯循环 结束后恢复八只灯闪烁 4 24 2 结论结论 该设计实现了外部中断对灯移动的控制 在许多 LED 显示中都有应用 在实际 的产品中 程序和电路更加复杂 显示功能也更加强大 若是对该系统加以修整 可以制作电子显示屏 流水灯等 应用前景很广泛 5 收获与致谢 5 15 1 收获收获 此次实习让我更加熟练的掌握 AT89C52 的时钟电路 复位电路 这些是最基本 的单片机知识 由于电源电路有多种实现方式 这此实习使用的比较简单 在显示 电路中 AT89C52 有多种工作模式 在不同条件下 输出也不同 对单片机的工作 原理 结构和使用方法了解深入 在编写程序时 中断 循环 嵌套 延时等的编 写都需要对汇编语言的常用指令和基本程序的设计有很深入的了解 在硬件和软件 都掌握的情况下 可以用单片机作出很多实际用途的系统 通过这次课程设计 我更加深刻的理解单片机的相关知识 初步掌握如何应用 11 单片机 对汇编语言编程有了更深入的认识 在学习课本知识的同时 增强了动手 能力 理论联系实际 锻炼了自己的能力 为以后的工作和学习打下坚实基础 6 附件 6 16 1 原理图原理图 6 26 2 程序清单程序清单 ORG 00H JMP MAIN ORG 0003H JMP TIN0 ORG 0013H 12 JMP TIN1 ORG 0030H MAIN MOV A 0FFH MOV P1 A SETB IT0 SETB IT1 SETB EX1 SETB EX0 SETB PX1 SETB EA HERE CPL A MOV P1 A CALL DELAY SJMP HERE TIN0 PUSH ACC 中断 0 入口 PUSH PSW MOV A 0FEH 初始化 MOV R2 08H MOV R4 03H LOOP1 MOV P1 A 单灯左移四次 RL A CALL DELAY DJNZ R2 LOOP1 MOV R2 08H LOOP2 RR A 单灯右移四次 MOV P1 A CALL DELAY DJNZ R2 LOOP2 MOV R2 08H DJNZ R4 LOOP1 循环三次 13 MOV R4 03H POP PSW POP ACC RETI TIN1 PUSH ACC 中断 1 入口 PUSH PSW MOV A 0FCH 赋初值 MOV R3 04H MOV R1 04H LOOP3 MOV P1 A 双灯左移四次 RL A RL A CALL DELAY DJNZ R3 LOOP3 MOV R3 04H LOOP4 RR A 双灯右移四次 RR A CALL DELAY MOV P1 A DJNZ R3 LOOP4 MOV R3 04H 循环四次 DJNZ R1 LOOP3 MOV R1 04H POP PSW POP ACC RETI DELAY MOV R5 02 延时子

温馨提示

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

评论

0/150

提交评论