ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:1.14MB ,
资源ID:9341407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9341407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机节日彩灯控制器设计彩灯控制器.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机节日彩灯控制器设计彩灯控制器.docx

1、单片机节日彩灯控制器设计彩灯控制器单片机节日彩灯控制器设计彩灯控制器一、设计任务与要求(1)PD0: 开始,按此键则灯开始流动(由上而下);(2)PD1: 停止,按此键则停止流动,所有灯为暗;(3)PD2: 上,按此键则灯由上向下流动;(4)PD3: 下,按此键则灯由下向上流动。二、方案设计与论证随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定

2、的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响彩灯效果,因此有必要对现有的彩灯控制器进行改进。 本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。其硬件构成框图如图所示,以单片机为核心控制,由单片机最小系统,时钟电路、复位电路、电源、按键控制电路、LED发光二极管和5V直流电源电路组成。 图2 单片机彩灯循环控制系统硬件框图 此设计方案中单片机的PD口接4路按键控制电路,实现彩灯花

3、型的切换功能,单片机上的PB口接8路LED发光二极管组成彩灯电路,显示彩灯循环情况。1、总体流程图设计 图2程序流程图2、键盘设计论证方案一、独立式 独立式键盘是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响到其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断那个键被按下了。 独立式按键电路配置灵活,软件简单,但每个按键需要占用一根输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。按键直接与单片机的I/O 口线相接,通过读 I/O 口,判定 I/O 口线的电平状态,即可识别出按下的按键。方案

4、二、行列式 矩阵式键盘也称行列式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行列的交叉点上。如下图所示,一个4X4 的行列结构可以构成一个 16 个按键的键盘。很明显,在按键数量较多的场合,矩阵键盘与独立式键盘相比,要节省很多的 I/O 口线。综上所述,本设计结构比较简单,所需按键较少就可以实现功能设计,故选择独立式键盘设计。三、单元电路设计与参数计算1、led彩灯模块设计本设计使用PB口做输出端口来控制led灯的闪亮与灭掉,连接8个发光二极管的阴极。8个发光二极管采用了共阳极设计,并且VCC通过pnp型三极管给二极管供电(vcc送发射极,集电极与二极管阳极连接,单片机通过PA2

5、来控制二极管阳极电压供给)-(限流电阻R取值为1K)具体硬件设计如下图所示:-2、按键模块设计由于在单片机按键操作中,存在按键抖动的问题,会造成取值不稳定的情况,如下图即为按键操作波形:所以必须考虑去抖动的问题,解决方法有如下两种:消除按键的抖动既可采用硬件方法,也可采用软件的方法。使用硬件消抖的方式,需要在按键连接的硬件设计上增加硬件消抖电路,如采用R-S触发器或RC积分电路等。采用硬件消抖方式增加了系统的成本,而利用软件方式消抖则是比较经济的做法,但增加了软件设计的复杂性。 软件方式消抖的基本原理是在软件中对按键进行两次测试确认,即在第 一次检测到按键按下后,间隔10ms左右再次检测该按键

6、是否按下,只有在 两次都测到按键按下时才最终确认有键按下,从而消除了抖动的影响。由于用软件方式消抖比较方便,比较经济,而硬件消抖即复杂又不经济,所以本次设计我们采用的是软件消抖。需特别注意的是:在按键接口软件中,除了要考虑按键消抖外,一般还要判别按键的释放,只有检测到按键释放以后,才能确定为一次完整的按键动作完成。 硬件按键设计如下:四、总原理图及元器件清单1总原理图功能说明:S1-开始,按此键,灯开始流动(从上到下)S2-停止,按此键,灯停止流动(灭灯)S3-上,按此键,灯从上而下流动S4-下,按此键,灯从下而上流动2元件清单元件序号元件说明数量备注Atmega16单片机芯片1R1R9限流电

7、阻91KLED发光二极管8KEY按键开关4Q1三极管1Pnp型五、功能仿真实现1、开始:从上到下流动点亮2、反向:从下向上流动点亮3、停止:灭灯六、安装与调试七、结论与心得本次课程设计既要求我们对知识掌握的牢固,又要求我们对知识能够灵活运用。从所涉及的知识面来说,它不仅要求我们运用所学过的知识还要求我们去查找,学习,借鉴其他科目或门类的知识。从时间上来说,这次设计的时间是最长的,因此我们有足够的时间去重新温习学过的知识,更有充足的时间去搜集学习一些我们没有涉猎过的知识。这样不仅锻炼了我们学习新知识的能力,同时也拓宽了我们的知识面。并且我们还有足够时间去修改我们的设计中的缺陷,这也是对我们将来走

8、入社会独立完成一项课题的考验。我们经过将近两周的努力,终于完成本次创新课程设计,过程虽是辛苦的,但从中我们却学到了很多东西。首先巩固了课上学习的理论知识,对于计算机C语言的系统化整体化有了更深的认识。整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的,平时的基础知识很重要。另外就是合作的重要性,每个人都有他的特长一个人难免有疏漏,只有大家共同努力才能顺利的完成任务。通过本次课程设计,提高了我们的自学能力,提高了理论联系实际的能力,把自己所学应用到实验中,对所用到的硬件有了更加深刻的理解;同时我们更加明白团结合作、分工合作的重要性,提高了团结合作的能力与做事效率。提高了

9、我们克服困难的信心与决心。 八、参考文献1马潮编著.AVR单片机嵌入式系统原理与应用实践(第二版) 北京航空航天大学出版社 2011年8月。 2周兴华编著.手把手教你学单片机C程序设计 北京航空航天大学出版社 2008年6月。 3、童诗白、华成英主编.模拟电子技术基础 高等教育出版社。附录:1、设计程序代码程序代码如下:#include #include #define uint unsigned int#define uchar unsigned charvoid delay_ms(uint com) uint i,j; for(i=0;icom;i+) for(j=0;j1194;j+);

10、 uchar key_press() uchar a; DDRD|=0X0F; PORTD|=0X0F; DDRD&=0XF0; a=PIND; a &=0x0F; if(a=0X0F) return 0; else return 1; uchar key_scan() uchar a; delay_ms(10); if(key_press() a=PIND; a &=0x0F; switch(a) case 0x0E: a=1;break; case 0x0D: a=2;break; case 0x0B: a=3;break; case 0x07: a=4;break; default :

11、a=16; while(key_press(); else a=16; return a; void zhengxiang(void) unsigned int i; for(i=0;i0;i) PORTB=BIT(-i); delay_ms(200); void main(void) uchar i,j=0,a=0; DDRA=BIT(2); PORTA=0x00; DDRB=0XFF; / PORTB=0XFF; while(1) PORTB=0XFF; /将LED关闭 i=key_press(); if(i) a=key_scan(); switch(a) case 1:zhengxiang();j=1; break; case 2:/stop(); j=0;break; case 3: if(j) zhengxiang(); break; case 4:if(j) fanxiang();break; default :/stop(); j=0; 2.电路板实物图3.别人提的问题,及回答。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1