1、 单片机应用 课课 程程 设设 计计 题 目: 流水灯 系 别: 专 业: 班 级: 姓 名: 学 号: 指导老师: 目目 录录 引言3 第一节 硬件电路的设计3 1.1 AT89C51 的简介3 1.2 硬件电路的说明4 第二节 软件的设计4 2.1 设计思路和方法4 第三节 设计总结6 第四节 参考文献7 附件(一)8 附件(二)9 引言引言 当今时代是一个新技术层出不穷的时代, 在电子领域尤其是自动化智能控制 领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被 单片机智能控制系统所取代。 单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制 与自动控制的
2、核心就是单片机。当单片机运用于彩灯装饰的控制上时,更是为我 们的日常生活增添了一份绚丽的光彩。 单片机课程设计是单片机教学的主要内容,是培养设计能力的重要实践内 容。(1)通过课程设计巩固、深化单片机知识。(2)通过课程设计实践,培养 分析解决工程实际问题的能力。(3)掌握一般设计方法和步骤。 本设计采用 AT89C51 单片机,运用循环移位法实现了 8 只 LED 灯依次点亮, 熄灭的“流水”效果。流水灯应用在夜景、舞台、建筑物、广告牌等装饰上都能 达到出色的效果。 第一节第一节 硬件电路的设计硬件电路的设计 1.1 AT89C51 的简介 按照单片机系统扩展与系统配置状况,单片机应用系统可
3、分为最小系统、最 小功耗系统及典型系统等。AT89C51 单片机是美国 ATMEL 公司生产的低电压、高 性能 CMOS 8 位单片机,具有丰富的内部资源:4kB 闪存、128BRAM、32 根 I/O 口线、2 个 16 位定时/计数器、5 个向量两级中断结构、2 个全双工的串行口, 具有 4.255.50V 的电压工作范围和 024MHz 工作频率,使用 AT89C51 单片机 时无须外扩存储器。 1.2 硬件电路的说明 本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统, 即为 由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 从原理图中可以看出,如果要让接在
4、 P1.0 口的 LED1 亮起来,那么只要把 P1.0 口的电平变为低电平就可以了;相反,如果要接在 P1.0 口的 LED1 熄灭, 就要把 P1.0 口的电平变为高电平;同理,接在 P1.1P1.7 口的其他 7 个 LED 的点亮和熄灭的方法同 LED1。因此,要实现流水灯功能,我们只要将发光二极 管 LED1LED8 依次点亮、熄灭,8 只 LED 灯便会一亮一暗的做流水灯了。在此 我们还应注意一点, 由于人眼的视觉暂留效应以及单片机执行每条指令的时间很 短, 我们在控制二极管亮灭的时候应该延时一段时间, 否则我们就看不到 “流水” 效果了。其具体硬件组成如附件(一)所示。 第二第二
5、节节 软件的设计软件的设计 2.1 设计思路和方法 在完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉 单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发 光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,我 们以最简单的流水灯控制功能即实现 8 个 LED 灯的循环点亮。 下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开 始就给 P1 口送一个数,这个数本身就让 P1.0 先低,其他位为高,然后延时一段 时间,再让这个数据向高位移动,然后再输出至 P1 口,这样就实现“流水”效 果。 由于 8051 系列单片机的指令中只
6、有对累加器 ACC 中数据左移或右移的指令, 因此,实际编程中我们应把需移动的数据先放到 ACC 中,让其移动,然后再将 ACC 移动后的数据再转送到 P1 口,这样同样可以实现“流水”效果。程序结构 简单,具体编程如附件(二)所示。 第三第三节节 设计总结设计总结 机课程设计是单片机教学的重要教学环节, 是培养单片机控制设计能力的重 要实践环节。通过课程设计使得综合运用单片机课程及有关先修课程知识,起到 巩固、深化、融会贯通及扩展有关单片机控制设计方面知识的作用,树立正确的 设计思想,通过课程设计实践,培养分析和解决工程实际问题的能力掌握一般设 计方法和步骤。 在设计过程中,编制源程序,都有严格的格式和要求。源程序必须为纯文本 格