基于单片机的流水灯系统设计与实现.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的流水灯系统设计与实现
. .摘要本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。本系统就是充分利用了G2452芯片的I/O引脚。系统以采用MSP430系列单片机G2452为中心器件来设计花样LED流水灯系统,通过按键实现8个LED灯不同花样式的闪烁。关键词:
流水灯;
单片机;
按键;
闪烁word教育资料目录1 项目要求32 项目分析和系统设计33 硬件设计33.1单片机选型模块33.2 LED流水灯模块33.3功能模式选择模块34 软件设计34.1主程序34.2子程序35 系统调试35.1硬件调试35.2程序调试35.3联合调试36 外延37 项目演练38 项目总结3附录1电路设计原理图(参考)3附录2 PCB设计原理图(参考)3附录3 关键程序(参考)3基于单片机的流水灯系统设计与实现1 项目要求本项目花样流水灯采用MSP430单片机为控制器件,用于各方面的装饰,此花样流水灯有8个LED灯,六种花样灯光效果。(1)初始化后,执行8个LED灯从右至左逐次点亮,每隔0.2s亮一个LED灯,直到8个LED灯全亮,再从左至右依次熄灭直到全灭,以此循环;
(2)当按下按键后,执行8个LED灯从右至左每隔0.2s 逐一亮灭,直到点亮最左边一个灯后再从左至右每隔0.2s逐一亮灭,
以此循环;
2 项目分析和系统设计本系统分为硬件和软件模块。硬件上我们打算在单片机的不同的i/o中装上一个流水灯来进行对流水灯进行控制。在程序方面,首先对msp430的i/o口进行的定义和设置,然后在去定义了一个delay进行延时功能,在用一个switch循环来使得流水灯不断的循环亮灭。花样流水灯采用MSP430单片机为控制器件,用于各方面的装饰,此花样流水灯有8个LED灯,两种花样灯光效果。
3 硬件设计本系统采用MSP430单片机为控制核心进行设计,该流水灯系统共可分为两个模块:
单片机选型模块和LED流水灯模块。图1 系统框图3.1单片机选型模块MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁的27条内核指令,大量的指令则是模拟指令;
众多的寄存器以及片内数据存储器都可参加多种运算。这些内核指令均为单周期指令,功能强,运行的速度快。图2单片机选型模块3.2 LED流水灯模块要实现流水灯功能,我们只要将发光二极管LED1~LED8 依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。且每一个LED灯于一个电阻串联。电阻的作用就是对通过LED灯的电流进行一定的限制起到去LED灯进行的保护作用。使得其在高电压的时候使得LED在电
阻的保护下不会烧坏。此图为共阴极接法,因此当LED_RED给高电平“1”时LED_RED亮;
当LED_RED给低电平“0”时,LED_RED灭。图3 LED流水灯模块图如图3可知此原理图的LED灯为共阴极的接法,因此我们只要给它一个高电平就能点亮此LED灯。3.3功能模式选择模块此设计有6种功能模式可以选择:
(1)初始化后,执行8个LED灯从右至左逐次点亮,每隔0.2s亮一个LED灯,直-本系统就是充分利用了G2452芯片的I/O引脚。系统以采用MSP430系列单片机G2452为中心器件来设计花样LED流水灯系统,通过按键实现8个LED灯不同花样式的闪烁。关键词:
流水灯;
单片机;
按键;
闪烁word教育资料目录1 项目要求32 项目分析和系统设计33 硬件设计33.1单片机选型模块33.2 LED流水灯模块33.3功能模式选择模块34 软件设计34.1主程序34.2子程序35 系统调试35.1硬件调试35.2程序调试35.3联合调试36 外延37 项目演练38 项目总结3附录1电路设计原理图(参考)3附录2 PCB设计原理图(参考)3附录3 关键程序(参考)3基于单片机的流水灯系统设计与实现1 项目要求本项目花样流水灯采用MSP430单片机为控制器件,用于各方面的装饰,此花样流水灯有8个LED灯,
六种花样灯光效果。(1)初始化后,执行8个LED灯从右至左逐次点亮,每隔0.2s亮一个LED灯,直到8个LED灯全亮,再从左至右依次熄灭直到全灭,以此循环;
(2)当按下按键后,执行8个LED灯从右至左每隔0.2s 逐一亮灭,直到点亮最左边一个灯后再从左至右每隔0.2s逐一亮灭,以此循环;
2 项目分析和系统设计本系统分为硬件和软件模块。硬件上我们打算在单片机的不同的i/o中装上一个流水灯来进行对流水灯进行控制。在程序方面,首先对msp430的i/o口进行的定义和设置,然后在去定义了一个delay进行延时功能,在用一个switch循环来使得流水灯不断的循环亮灭。花样流水灯采用MSP430单片机为控制器件,用于各方面的装饰,此花样流水灯有8个LED灯,两种花样灯光效果。
3 硬件设计本系统采用MSP430单片机为控制核心进行设计,该流水灯系统共可分为两个模块:
单片机选型模块和LED流水灯模块。图1 系统框图3.1单片机选型模块MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁的27条内核指令,大量的指令则是模拟指令;
众多的寄存器以及片内数据存储器都可参加多种运算。这些内核指令均为单周期指令,功能强,运行的速度快。图2单片机选型模块3.2 LED流水灯模块要实现流水灯功能,我们只要将发光二极管LED1~LED8 依次点亮、熄灭,8只LED灯便会一亮一暗的做流水
灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。且每一个LED灯于一个电阻串联。电阻的作用就是对通过LED灯的电流进行一定的限制起到去LED灯进行的保护作用。使得其在高电压的时候使得LED在电阻的保护下不会烧坏。此图为共阴极接法,因此当LED_RED给高电平“1”时LED_RED亮;
当LED_RED给低电平“0”时,LED_RED灭。图3 LED流水灯模块图如图3可知此原理图的LED灯为共阴极的接法,因此我们只要给它一个高电平就能点亮此LED灯。3.3功能模式选择模块此设计有6种功能模式可以选择:
(1)初始化后,执行8个LED灯从右至左逐次点亮,每隔0.2s亮一个LED灯,直:void effect3(){ int i,j; for(i=0;i=4;i++) { P2OUT |= (BIT4i); //BIT4左移i位BIT3 右移i位delay_ms(200); //延时200MS } for(j=0;j=4;j++) { P2OUT =~ ((0x01j)); //0x01 左移j位0x50右移j位delay_ms(200); //延时200MS }}外延功能(2)子程序:void effect4(){ int i,j; for(i=0;i=4;i++) { P2OUT |= (0x01i); //0x01 右移i位0x80 右移i位delay_ms(200); //延时200MS } for(j=0;j=4;j++) { P2OUT =~ ((0x10j)); //0x10 左移j位0x08右移j位delay_ms(200); //延时200MS }}外延功能(3)子程序:
void effect5(){ int i; for(i=0;i8;i++) { P2OUT – 0XFF; //状态反转delay_ms(100); //延时100MS }}外延功能(4)子程序: