LED流水灯设计-电子设计结业论文_第1页
LED流水灯设计-电子设计结业论文_第2页
LED流水灯设计-电子设计结业论文_第3页
LED流水灯设计-电子设计结业论文_第4页
LED流水灯设计-电子设计结业论文_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1 电子设计结业论文电子设计结业论文 课程设计实验报告 实验课题实验课题 LED 霓虹灯设计霓虹灯设计 姓名姓名 学号学号 班级班级 指导老师指导老师 2 目目 录录 第一章第一章 设计概述设计概述 3 1 1 设计任务设计任务 3 1 2 设备器材设备器材 3 第二章第二章 硬件设计方案硬件设计方案 3 2 1 设计思想设计思想 3 2 2 硬件选择硬件选择 4 2 3 AT89C52 单片机介绍单片机介绍 4 2 4 硬件逻辑图硬件逻辑图 7 2 5 设计连线设计连线 8 2 6 仿真电路图仿真电路图 8 第三章第三章 软件设计方案软件设计方案 8 3 1 软件设计思想软件设计思想 8 3 2 程序流程图程序流程图 9 第四章第四章 调试及运行结果调试及运行结果 10 第五章第五章 设计心得与体会设计心得与体会 10 参考资料参考资料 11 源程序清单源程序清单 11 3 第一章第一章 设计概述设计概述 1 1 设计任务设计任务 设计内容 利用汇编语言 或 C 语言 实现 8 个单色 LED 灯的左 右循环 显示 并实现循环的速度可调 选用芯片 8255 等 注注 由于实验室的没有提供 8255 芯片 所以改用单片机完成此实验 并且添加 了调节灯明暗的功能 以实现明暗可调 1 2 设备器材设备器材 在本设计中 所用到的设备器材如下所示 1 计算机一台 2 唐都仪器实验箱一台 3 AT89C52 单片机一片 4 导线若干 第二章第二章 硬件设计方案硬件设计方案 2 1 设计思路设计思路 本课题需要用按钮开关实现流水灯的左右循环显示 调速 控制亮度的功 能 可以选用五个开关来实现这些操作 单片机正在软件运行下通过不断扫描 开关状态 来将相关操作对应量送入单片机的输入端口 然后判断属于哪一类 操作 五个开关分别为 K1 K2 K3 K4 K5 分别控制流水灯的调向 加速 减速 变亮 变暗 在设计过程中 接开关的端口要全部保持高电平 当按下一个开关时 输 入一个低电平 即为状态改变信号 不能同时有两个端口同为高电平 在设计中我主要负责了用云脉冲宽度调制 PWM 波控制 LED 灯的亮度 环节 开始对 PWM 并不是很了解 通过请教同学和查阅相关资料 渐渐明白 了其中的原理 在主程序运行时通过中断方式调整其输出电压的占空比 从而 改变灯泡的亮度 原理是这样的 主程序的始终频率和中断的始终频率并不相 同 大约是中断的一千倍 LED 灯在移动时如果响应了中断 则在执行中断程 序时 LED 灯近似看做没有移动 此时在中断程序中设计一个初值和一个上限 4 当计数到初值时置灯泡灭掉 在计数到上限之前小灯泡都是熄灭的 到达上限 后回 0 并置灯泡为亮 继续计数 在到设定的初值时置小灯泡为灭掉 这样 在主程序的一个周期内 中断程序将小灯泡置明置暗了近一千次 通过改变设 定的初值可以改变小灯泡的亮度 2 2 硬件选择硬件选择 本实验选用 AT89C52 单片机 五个按键开关和 8 个发光二极管 其中 AT89C52 为控制核心 当 5 个开关的状态改变时 单片机检测到开关信号后就 通过软件输出控制发光二极管 2 3 AT89C52 单片机介绍单片机介绍 AT89C52 是一个低电压 高性能 CMOS 8 位单片机 片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器 RAM 器件采用 ATMEL 公司的高密度 非易失性存储技术生产 兼容 标准 MCS 51 指令系统 片内置通用 8 位中央处理器和 Flash 存储单元 功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应用场合 AT89C52 有 40 个引脚 32 个外部双向输入 输出 I O 端口 同时内 含 2 个外中断口 3 个 16 位可编程定时计数器 2 个全双工串行通信口 2 个读写口线 AT89C52 的内部结构图如下 5 引脚图如下 引脚功能说明 P0 口 P0 口是一组 8 位漏极开路型双向 I O 口 也即地址 数据总 线复用口 作为输出口用时 每位能吸收电流的方式驱动8 个 TTL 逻辑 门电路 对端口 P0 写 1 时 可作为高阻抗输入端用 访问外部数据存 储器或程序存储器时 这组口线分时转换地址 低8 位 和数据总线复用 在访问期间激活内部上拉电阻 在 Flash 编程时 P0 口接收指令字节 而在程序校验时 输出指令字 节 校验时 要求外接上拉电阻 P1 口 P1 是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输出缓 6 冲级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通 过内部的上拉电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部存在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 IIL 与 AT89C51 不同之处是 P1 0 和 P1 1 还可分别作为定时 计数器 2 的外 部计数输入 P1 0 T2 和输入 P1 1 T2EX 参见表 1 Flash 编程和程序校验期间 P1 接收低 8 位地址 表 P1 0 和 P1 1 的第二功能 P2 口 P2 是一个带有内部上拉电阻的 8 位双向 I O 口 P2 的输出 缓冲级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口 P2 写 1 通过内部的上拉电阻把端口拉到高电平 此时可作输入口 作输入口使 用时 因为内部存在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 IIL 在访问外部程序存储器或 16 位地址的外部数据存储器 例如执行 MOVX DPTR 指令 时 P2 口送出高 8 位地址数据 在访问 8 位地址 的外部数据存储器 如执行 MOVX RI 指令 时 P2 口输出 P2 锁存器 的内容 Flash 编程或校验时 P2 亦接收高位地址和一些控制信号 P3 口 P3 口是一组带有内部上拉电阻的 8 位双向 I O 口 P3 口输 出缓冲级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对 P3 口写入 1 时 它们被内部上拉电阻拉高并可作为输入端口 此时 被外部拉低的 P3 口将用上拉电阻输出电流 IIL P3 口除了作为一般的 I O 口线外 更重要的用途是它的第二功能 引脚号功能特性 P1 0T2 时钟输出 P1 1T2EX 定时 计 数器 2 7 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高 电平将使单片机复位 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁 存允许 输出脉冲用于锁存地址的低8 位字节 一般情况下 ALE 仍以 时钟振荡频率的 1 6 输出固定的脉冲信号 因此它可对外输出时钟或用于定 时目的 要注意的是 每当访问外部数据存储器时将跳过一个ALE 脉冲 对 Flash 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如 有必要 可通过对特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可禁止 ALE 操作 该位置位后 只有一条 MOVX 和 MOVC 指令才能将 ALE 激活 此外 该引脚会被微弱拉高 单片机执行外部程序时 应设置 ALE 禁止位无效 PSEN 程序储存允许 PSEN 输出是外部程序存储器的读选通信号 当 AT89C52 由外部程序存储器取指令 或数据 时 每个机器周期两次 PSEN 有效 即输出两个脉冲 在此期间 当访问外部数据存储器 将跳过 两次 PSEN 信号 EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果加密 位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 Vcc 端 CPU 则执行内部程序存储器中的指令 Flash 存储器编程时 该引脚加上 12V 的编程允许电源 Vpp 当然这 必须是该器件是使用 12V 编程电压 Vpp XTAL1 振荡器反相放大器的及内部时钟发生器的输入端 XTAL2 振荡器反相放大器的输出端 2 4 硬件连接框图硬件连接框图 单片机从开关上提取不同输入信号 进行相应的软件操作 反映输出在发 光二极管上 8 2 5 设计连线设计连线 本实验的连线为 开关使用唐都试验箱上的 5 个开关 分别接到单片机的 P2 0 P2 4 口 然后发光二极管分别接到单片机的 P1 0 P1 7 口 2 6 实验仿真电路图实验仿真电路图 第三章软件设计方案第三章软件设计方案 3 1 软件设计思想软件设计思想 开关 输入 AT89C52 单片机 流水灯 9 一个完整的系统仅有硬件是不够的 还要有软件的配合 软件和硬件对一 个系统来说都是不可或缺的 本实验采用 C 语言编程 在具体设计中 通过 GetKey 函数来不停的扫描开关的状态 通过 KeyProcess 来确定输入的信 号 即按键的位置 从而执行不同的子程序内容 实现 LED 灯的控制 3 2 程序流程图程序流程图 10 第四章第四章 调试及运行结果调试及运行结果 通过设计和编写程序代码 讲程序通过 Keil 软件编译后生成的 hex 文件写 进 AT89C52 中 便可操作 为当拨动相应的开关时 看 LED 灯的变化 调试过程中问题很多 主要原因是对单片机结构的不熟悉 其次就是程序 中的一些问题 但通过努力 都被一一解决 实际接线前我们先用 protues 仿真 了一下实验结果 确认无误后接线 这样提高了调试的时间 第五章第五章 心得体会心得体会 经过四次的上机课程设计 在我和 同学的共同努力下 顺利的完成了任 务 并在其中体现了自己的独创部分 同时我感觉自己学到了很多 首先是要 把理论和实际相结合起来 从理论中得出结论 然后再实践 从而提高自己的 实际动手能力和独立思考问题的能力 在设计的过程中遇到了很多的问题 也 发现了自己的不足之处 首先是之前对单片机并不十分了解 通过借阅书籍 找同学咨询慢慢的开始对其有了初步的认识 其次是一些相关软件的用法 这 个通过自己慢慢的摸索也逐渐熟悉了起来 特别是 protues 的使用 它给了我们 很大的帮助 帮助我们解决了很多调试过程中的问题 在者是对 PWM 波的使 用 这个问题很是伤到筋 因为之前对其并不了解 从熟悉到使用我们查阅了 很多资料 请教了同学 最后终于掌握了 同时也是设计更完善 此课程设计让我加深理解了所学的理论知识 并进一步建立了计算机应用 系统的整体概念 初步掌握了单片机软 硬件开发方法 为以后进行实际的单 片机软 硬件应用开发奠定了良好的基础 这对下学期单片机的学习会有很大 的帮助 也使我对单片机产生了兴趣 这次课程设计的顺利完成 离不开学长 同学和知道老师的帮助 特别是 PWM 波的运用 也是学长给我们提出的建议 在此感谢老师和学长的无私帮 助 11 附录一附录一 参考文献参考文献 1 单片机原理及其接口技术 胡汉才 编著 北京 清华大学出版社 2 MCS 51 单片机原理及应用 张毅刚 编著 哈尔滨 哈尔滨工业大学出版社 3 51 单片机 C 语言应用程序设计 实例精讲 第二版 戴佳 刘博文 编著 电子工业出版社 附录一附录一 C 语言程序清单语言程序清单 程序名 可控流水灯 功能 实现流水灯的方向 速度 亮度控制 硬件 P2 接开关 P1 接 LED include include sbit K1 P2 0 方向 sbit K2 P2 1 加速 sbit K3 P2 2 减速 sbit K4 P2 3 加亮 sbit K5 P2 4 变暗 unsigned char Speed LED unsigned int tCount 0 unsigned char Idx 速度取值索引 bit Dirtect 1 滚动方向 char duty 10 占空比 unsigned int code sTable 0 1 3 7 9 15 30 50 100 200 230 280 300 350 调速表 void InitTimer0 Timer1 void void delay unsigned int x unsigned char i while x for i 0 i1 Speed sTable Idx break 加速 case 3 if Idx 20 duty 20 break 加亮 case 5 duty if duty 0 duty 1 break 变暗 void main void unsigned char Key P1 P2 0 xFF Idx 4 Speed sTable Idx IP 0 x02 中断优先级 InitTimer0 Timer1 LED 0 xfe P1 LED while 1 Key GetKey if Key 0 KeyProcess Key 13 定时器 0 和定时器 1 初始化 void InitTimer0 Timer1 void TMOD 0 x20 TH1 0

温馨提示

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

评论

0/150

提交评论