基于单片机的流水灯系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1.系统方案选 (x)
1、1 设计要求 (x)
1、2 方案选择 (x)
2 系统的硬件设计与实现 (x)
2、1芯片介绍 (x)
2、2 电源 (x)
2、3 时钟 (x)
2、4 I/O线 (x)
2、5 晶振电路 (x)
2、6 LED电路 (x)
2、7按键电路 (x)
3 系统的软件设计 (x)
3、1 程序流程图 (x)
3、2 程序设计 (x)
3、3 仿真电路图 (x)
3、3、1仿真电路初始化图 (x)
3、3、2 仿真结果(设计实现的功能) (x)
3、3、3 结论 (x)
4.设计心得与体会 (x)
5.参考文献 (x)
【摘要】:若干个灯泡有规律依次点亮或者依次熄灭叫流水灯,它用在夜间建筑物装饰方面。例如在建筑物的棱角上装上流水灯,可起到变换闪烁美不胜收的效果。一般情况下单片机的流水灯由若干个LED发光二极管组成,在单片机系统运行时,可以在不同的状态下让流水灯显示不同的组合,作为单片机运行正常的指示,当单片机系统出现故障时,可以利用流水灯显示当前的故障码,对故障做出诊断。
本设计采用一块单片机(AT89C52、BUS)作为流水灯系统的控制核心,通过编程来实现单片机I/O口对LED的控制,使流水灯显示上下流动、停止流动、闪灯等功能,并由按键控制流水灯的不同亮法,LED的工作方式通过键盘的扫描实现。其中的LED采取共阳极接法,通过依次向连接的LED的I/O口送出低电平来实现LED 的点亮。
【关键词】:流水灯按键控制单片机
1、方案:
1、1设计要求:
以单片机为核心,设计一个节日彩灯控制器:
P1、2—开始,按此键则灯开始流动(由上而下)。
P1、3—停止,按此键则停止流动,所有灯为暗。
P1、4—上,按此键则灯由上向下流动。
P1、5—下,按此键则灯由下向上流动。
1、2方案选择:
根据题目的要求,控制模块需要选择单片机作为核心控件,可以选择的单片机有AT89C51、AT89C52还有各自的总线型号的,而对于按键,可以选择BUTTON,当然用SWITCH来代替也就是可以实现的;显示模块的LED发光二极管也有很多颜色可以供选择如红色、蓝色、绿色等。
考虑到题目的要求与电路图布线的问题,经过仔细的分析与论证,最终的方案如下:单片机:AT89C52、BUS、按键:BUTTON
发光二极管:LED-RED。
系统的基本框图1、2、1所示,单片机主要用于对流水灯模块(发光二极管)的控制,实现流水灯从上往下流、停止、由下往上流、闪烁的功能,而按键模块控制单片机I/O口的输出电平,间接地控制流水灯模块。
图1、2、1 系统基本框图
工作过程:系统开始工作后,按下按键1(由上往下),流水灯模块上循环的显示由上往下流动,放开按键,停止流动;按下按键2,流水灯模块循环的显示由下往上流动,放开按键,流动停止;按下按键3,流水灯模块循环的显示交错闪烁,放开按键,闪烁停止;按下按键4,流水灯模块循环的由上往下全部点亮,全部点亮时,一下子全灭,再由下往上全部点亮;无论按下哪个键,只要再按下按键5,循环停止直到松开按键5为止。
2、系统的硬件设计与实现
2、1芯片介绍
按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等AT89C52单片机就是美国ATMEL 公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:8kB 闪存、256BRAM 、32根I/O 口线、3个16位定时/计数器、6个向量两级中断结构、2个全双工的串行口,具有4、25~5、50V 的电压工作范围与0~24MHz 工作频率,使用AT89C52单片机时无须外扩存储器因此,本流水灯实际上就就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路与必要的软件组成的单个单片机、
从图2、1、1中可以瞧出,如果要让接在P1、0口的LED1亮起来,那么只要把P1、0口的电平变为低电平就可以了;相反, 如果要接在P1、0口的LED1熄灭,就要把P1、0口的电平变为高电平;同理,接在P1、1~P1、7口与P2、0~P2、7口的其她15个LED 的点亮与熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED16依次点亮、熄灭,16只LED 灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就瞧不到“流水”效果了。
单片机 AT89C52
按键模块
流水灯模块(发光二 极管)
图2、1、1 硬件电路图
2、2电源
VCC - 芯片电源,接+5V。VSS - 接地端。用万用表测试单片机引脚电流一般为0v或者5v,这就是标准的TTL电平,但有时候在单片机程序正在工作时候测试结果并不就是这个值而就是介于0v-5v之间,其实这之就是万用表反映没这么快而已,在某一个瞬间单片机引脚电流还就是保持在0v或者5v的。
2、3时钟
XTAL1、XTAL2 - 晶体振荡电路反相输入端与输出端。
2、4 I/O线
89C52共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出与控制信号(属控制总)。
2、5晶振电路
对于一个高可靠性的系统设计,晶体的选择非常重要,尤其设计带有睡眠唤醒(往往用低电压以求低功耗)的系统。这就是因为低供电电压使提供给晶体的激励功率减少,造成晶体起振很慢或根本就不能起振。这一现象在上电复位时并不特别明显,原因时上电时电路有足够的扰动,很容易建立振荡。在睡眠唤醒时,电路的扰动要比上电时小得多,起振变得很不容易。在振荡回路中,晶体既不能过激励(容易振到高次谐波上)也不能欠激励(不容易起振)。晶体的选择至少必须考虑:谐振频点,负载电容,激励功率,温度特性,长期稳定性。