十位流水灯课程设计.doc_第1页
十位流水灯课程设计.doc_第2页
十位流水灯课程设计.doc_第3页
十位流水灯课程设计.doc_第4页
十位流水灯课程设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

皖皖 西西 学学 院院 课课 程程 设设 计计 课程名称课程名称 微机原理与应用微机原理与应用 课题名称课题名称 十位流水灯设计十位流水灯设计 专专 业业 电气工程及其自动化电气工程及其自动化 班班 级级 电气电气 08030803 班班 学学 号号 20080112502008011250 姓姓 名名 小吴小吴 指导教师指导教师 徐老师徐老师 任务书下达日期任务书下达日期 20112011 年年 0606 月月 1313 日日 设设 计计 完成日期完成日期 20112011 年年 0606 月月 2424 日日 摘要 单片机是一种集成电路芯片 采用超大规模技术 把具有数据处理能力的 微处理器 随机存取数据存储器 只读程序存储器 输入输出电路 可能还包 括定时计数器 串口通信口 显示驱动电路 脉宽调制电路 模拟多路转换器 及 A D 转换器等电路集成到一块芯片上 构成一个最小而完善的计算机系统 这些电路在软件的控制下准确 迅速 高效地完成程序设计者事先规定的任务 对可控流水灯设计通过 C 语言编写代码实现 10 个 LED 灯 4 种流水灯显示方式 在设计中主要采用 AT89C51 这款芯片作为控制主体 用发光二极管来作为显示 灯 系统通过 P1 口外接 8 个发光二极管 P0 口接 2 个发光二极管 流水灯的 放光二极管经过排阻接在 P0 和 P1 口上 设计中辅以简单的设备和必要的震荡 电路 设计了一款流水灯 最终达到预期的目的 关键词 单片机 AT89C51 发光二极管 流水灯 目录 1 引言 1 2 课题综述 1 2 1 课题来源与意义 1 2 2 面临的问题 1 3 系统设计 1 3 1 总体设计 1 3 2 模块设计 2 3 3 硬件设计 5 4 代码编写 6 5 系统调试 8 6 系统运行结果与分析 8 7 结 论 9 8 参 考 文 献 10 1 引言 单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制 系统 可以软件控制来实现 并能够实现智能化 现在的单片机的控制范畴无 所不在 例如通信产品 家用电器 智能仪器仪表 过程控制和专用控制装置 等等 单片机的应用领域越来越广泛 2 课题综述 2 12 1 课题来源与意义课题来源与意义 随着经济的发展 科技的突飞猛进 芯片业得到了迅速的发展 是单片机 技术在各种民用和工业控制等领域得到更广泛的应用 单片机凭借其低成本 高性能的不可代替优势已经成为了微电脑 控制的主力军 学习单片机的有效方 法是将理论与实践并重 因此通过对单片机可控流水灯的设计和研究 鼓励学 生在熟悉基本原理的前提下 与实际应用相联系 提出自己的方案 来完善设 计 使得我们更好的掌握单片机的应用 2 22 2 面临的问题面临的问题 本次课程设计的要求是对 10 个 LED 灯设计 4 种流水灯显示方式 所要解决的软件问题有流水灯显示方式的编码设计 LED 灯的驱动以及需 要一个可以自激震荡的电路问题 下面将对各个问题展开论述 3 系统设计 3 13 1 总体设计总体设计 实现这个课题我们使用 AT89C51 作为控制主体 使用十个发光二极管作为 LED 显示流水灯 外接一个晶振来提供外接时钟脉冲 模块图如下 图 3 1 系统模块图 流程图如下 开始启动 选择方式 结束 流水灯发光 图 3 2 系统流程图 3 23 2 模块设计模块设计 3 2 1 主体控制模块 芯片 AT89C51 是核心 P0 P1 P2 P3 口均可以作为 I O 口使用 其中 2 个数码管经过上拉电阻接在 AT89C51 的 P0 口的 P00 和 P01 上 另外 8 个发光二 主体控制模块 AT89C51 时钟模块 复位控制模 块 流水灯模块 极管接在 P1 口的 P10 P17 上 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 U1 AT89C51 图 3 3 主体控制模块图 3 2 2 时钟模块 时钟电路用于产生单片机工作时所需的时钟信号 在芯片的外部通过 18 脚 19 脚接晶体振荡器和微调电容 形成反馈电路 构成一个稳定的自激振荡器 电 路中的 C1 C2 取 100Pf 左右 二晶体振荡器的频率范围通常是 1 2 12MHZ 晶体振荡器的越高 振荡频率越高 图 3 4 时钟模块图 3 2 3 流水灯模块 发光二极管就是 LED 是一种由磷化镓等半导体材料制成的 能直接将电 能转换成光能的发光显示器件 当其内部有一定电流通过时 就是发光 发光 二极管具有功耗低 体积小 可靠性高 寿命长和相应快等优点 流水灯模块采用 10 个 LED 发光二极管 通过代码的编写 实现四种流水移 动 其中电阻的作用是保护二极管 向它提供较小的电流 防止二极管因为电 流过大而烧毁 设计中 发光二极管是共阳极接法的 我们只需要将其低电平不断的改变 就会看到 LED 的被点亮 也就实现了流水灯的功能 刚刚开始的时候让所有的 灯全部熄灭 即赋给初值 P0 0 xff P1 0 xff delay 100 刚开始熄灭所有灯 R3 50 R4 50 R5 50 R6 50 R7 50 R8 50 R9 50 R10 50 R11 50 VCC R2 50 D1 LED RED D2 LED YELLOW D3 LED BLUE D4 LED GREEN D5 LED YELLOW D6 LED YELLOW D7 LED GREEN D8 LED BLUE D9 LED YELLOW D10 LED RED 图 3 5 流水灯模块图 3 2 4 复位模块复位模块 单片机必须在时钟的驱动下才能工作 在单片机内部有一个时钟震荡电路 只要外接一个 震荡源就能产生一定的时钟信号送到单片机内部的各个单元 决定单片机的工作速度 复 位模块由一个电容和一个开关构成 图 3 6 硬件连接图 3 33 3 硬件设计硬件设计 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 U2 AT89C51 X1 CRYSTAL C1 100PF C2 100PF C3 100pF R1 1k R3 50 R4 50 R5 50 R6 50 R7 50 R8 50 R9 50 R10 50 R11 50 VCC VCC R2 50 D1 LED RED D2 LED YELLOW D3 LED BLUE D4 LED GREEN D5 LED YELLOW D6 LED YELLOW D7 LED GREEN D8 LED BLUE D9 LED YELLOW D10 LED RED 图 3 7 硬件连接图 4 代码编写 include define uchar unsigned char define uint unsigned int sbit P01 P0 1 sbit P00 P0 0 延时 void delay uint z uint x y for x z x 0 x for y 110 y 0 y void main uint temp uchar n while 1 P0 0 xff P1 0 xff delay 100 刚开始熄灭所有灯 1 依次单独点亮 temp 0 x01 给初始值 for n 0 n 8 delay 100 temp 1 2 5 个亮 5 个不亮循环 4 次 for n 0 n 4 n P1 0 x55 P00 0 P01 1 第 1 3 5 7 9 灯亮 delay 100 P1 0 xaa P00 1 P01 0 第 2 4 6 8 10 个灯不亮 delay 100 3 两边各 5 个 轮流亮 循环 4 次 for n 0 n 8 n 2 P1 0 xe0 P00 1 P01 1 第 1 2 3 4 5 个灯亮 第 6 7 8 9 10 个灯不亮 delay 100 P1 0 x1f P00 0 P01 0 第 1 2 3 4 5 个灯亮 第 6 7 8 9 10 个灯不亮 delay 100 4 灭三个亮两个 亮两个灭三个 循 环四次 for n 0 n 4 n P1 0 xe7 P00 0 P01 0 第 1 2 3 6 7 8 灯不亮 第 4 5 9 10 个灯亮 delay 100 P1 0 x18 P00 1 P01 1 第 1 2 3 6 7 8 灯亮 第 4 5 9 10 不亮 delay 100 5 系统调试 通过对编写好的代码用 keil 进行编译后 因为编写的时候中英文输入的切 换 导致空格是全角符号 编译有错误 在语句中 字母的大小写也会出错 数值代码的错误导致二极管的显示方式出现了不该亮的亮了 该亮的没有亮 即没有和预先写的语句达到一致的显示效果 通过不断的修改程序调试最终实 现了流水灯的显示方式与预先的结果达到一致 6 系统运行结果与分析 通过 USB 线接通提供电源后 led 灯能正常显示 四种编码方式不停的在循 环显示流水效果 由于延时的问题 四种显示方式人眼看来不能很好的分辨这 四种显示方式 于是我们采用了帧进的方法进行了实际仿真 结结 论论 通过这次的课程设计 让我学习到了很多知识以及认识到了很多问题 同时 我意识到了一个很重要的问题 那就是课程设计之前的准备工作也是很重要的 包括提前预习设计的题目 上网和去图书馆查阅资料 我清楚的知道了 资料 也是那么重要 否则在一个新颖的题目面前 你将无从下手 通过准备工作 这样可以保正在设计的时候 有了充足的准备 使得自己不会在真正要开始课 程设计的时候 对着题目发呆 没有什么进展 因此 我觉得这个也是对待学 习的一种好的态度 以后在学习中 也要一直以这种好的态度对待 除此之外 让我发现这次的可控流水灯设计 对于我以前的学习如数码管 显示 led 灯等的知识 不仅是一次很好的运用 而且让我再次花心思去复习 了以前学习的知识点 运用之初相互结合知识点 使得知识点可以联系起来 对我的学习有了很大的好处 在程序设计的过程中 也遇到了好多的问题 刚开始在代码调试的时候 一直会存在错误 也有过很失望的时候 在通过老师的帮助后 经过很多次的 修改以后 终于把程序代码改好 但是在代码烧入芯片中 以及数码管的显示 等问题上面 我们还是花费了好多时间 但是还是没有头绪 最终还是在他人 的帮助下 以及帮我们把代码进行了修改 才得以完成了可控流水灯基本功能 总的来说 这次设计获益胜多 因为本次课程设计是一个团队的合作 所 以 不仅使得我们团结合作 学习到了知识 还让我们更加的学会沟通 不仅 培养了实践能力 还培养了设计思维 同时也锻炼了动手实际操作能力 在摸 索该如何设计电路使之实现所需功能的过程中 锻炼了运用所学知识的灵活性 加深了对知识的理解及提高了解决问题的能力 在体会到设计电路的艰辛的同 时 更能体会到成功喜悦和快乐 在这次的设计中 我学习了很多 也享受到了其中的乐趣 从这次课程设 计中我了解到流水灯的设计

温馨提示

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

评论

0/150

提交评论