《按键中断控制彩灯课程设计报告》由会员分享,可在线阅读,更多相关《按键中断控制彩灯课程设计报告(17页珍藏版)》请在金锄头文库上搜索。
1、1单片机课程设计报告按键中断控制花样彩灯按键中断控制花样彩灯年级与专业 2010 级电气工程及其自动化 班指导教师: 王 春 梅 设计完成人:1、学号: 姓名: 芳 2、学号: 姓名: 3、学号: 姓名: 4、学号: 姓名: 5、学号: 姓名: 2012 年 12 月 28 日2目录目录摘要.3 引言.3 方案选择集整体设计.3 系统硬件设计.4 单片机最小系统图.5 按键电路图5 外部中断电路图.6 LED 显示电路.6 系统手动复位按键电路图.7 总体电路图7 系统的软件设计(流程图和程序清单) .8 程序流程图8 程序清单.9 系统调试.10 使用的仪器.10 系统调试.10 测试结果.
2、11 总结.11 参考文献.11 附录.12 程序.12 实物图.153(一一)摘要摘要当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。本设计用 AT89C51 单片机自制了一款简易的花样流水灯,介绍了其硬件电路及软件编程方法,在实践中体验单片机的自动控制功能。该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计
3、,需要更深的去了解单片机的很多功能,努力的去查找资料。本课题将以发光二极管作为发光器件,用单片机自动控制,实现一个简易的花样流水灯设计。(二)引言(二)引言单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由 CPU、RAM、ROM、定时/计时器、I/O 接口电路通过应刷电路板上的总线连成一体的完整计算机系统。11从 1971 年出现单片机的雏形开始,短短四十多年的时间里,单片机便社会各领域中得到了广泛的应用在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式控制系统,成为
4、日后此系统中的核心部分。由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。22本文主要讲的是单片机,课题名称为多按键花样流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。通过本课题的设计以后,使我了解到了单片机的许多方面的应用。(三)方案选择及总体设计(三)方案选择及总体设计基于 AT89C51 单片机的彩灯控制方案,实现对 LED 彩灯的控制。本方案以 AT
5、89C51 单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块。根据用户需要可以编写若干种亮灯模式,设计出具有不同花样的彩灯,例如跑马灯、顺次点亮级顺次熄灭、进制彩灯、两端对称点亮、闪烁等,起到美化装饰的作用的效果。4方案一:采用各类数字电路来组成键盘控制系统,进行信号处理,如选用 CPLD 等可编程逻辑器件。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。方案二:过单片机控制二极管的闪烁,通过中断来改变模式同时串行输出数码管。显而易见,第二种方案易于设计和控制,并且比较经济,而且操作起来相对容易而且便于实现,比较适合于现阶段我们的设计与实践。(四)系统的
6、硬件设计(四)系统的硬件设计最小系统:51 单片机最小系统复位电路的极性电容 C1 的大小直接影响单片机的复位时间,一般采用 1030uF,51 单片机最小系统容值越大需要的复位时间越短。51 单片机最小系统晶振 Y1 也可以采用 12MHz 或者 11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51 单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。51 单片机最小系统起振电容 C2、C3 一般采用 1533pF,并且电容离晶振越近越好,晶振离单片机越近越好 4.P0 口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。设置为定时器模式时,加
7、1 计数器是对内部机器周期计数(1 个机器周期等于 12 个振荡周期,即计数频率为晶振频率的 1/12) 。计数值 N 乘以机器周期 Tcy 就是定时时间 t。设置为计数器模式时,外部事件计数脉冲由 T0 或 T1 引脚输入到计数器。在每个机器周期的 S5P2 期间采样 T0、T1 引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加 1,更新的计数值在下一个机器周期的 S3P1 期间装入计数器。由于检测一个从 1 到 0 的下降沿需要 2 个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为 12MHz 时,最高计数频率不超过 1/2MHz,即计数脉
8、冲的周期要大于 2 ms。5单片机最小系统图:单片机最小系统图:按键电路图:按键电路图:案件采用独立按键6外部中断电路图外部中断电路图:用外部中断 1LEDLED 显示电路:显示电路:由单片机 89C51 的 P2 口与发光二极管相连,低电平二极管发光7系统手动复位按键电路图系统手动复位按键电路图:总体电路图总体电路图: 由单片机的最小系统电路、led 显示电路、按键电路、按键复位电路、可以得到该课程设计 的总体电路,电路图如下图所示。8(五)系统的软件设计(流程图和程序清单)(五)系统的软件设计(流程图和程序清单)程序流程图程序流程图: 设计内容:由按键中断控制花样彩灯,采用 80c51 单
9、片机为控制器件,此花样流水 灯共有四个按键,分别对应控制着四种花样灯光效果。当按键 S7,左流水灯亮, 再次按下熄灭;当按键 S8 时,LED 顺次点亮熄灭,再次按下熄灭;当按键 S9,左右跑马 灯,再次按下熄灭;当按键 S10 时,左右对称依次点亮,再次按下熄灭;按键 s1(外部中 断控制):全亮全灭;按键 S2,复位键,程序回到开始的程序的开始。得到程序流程图如 下:9开始开始S7 按下S8 按下S9 按下S10 按下显示模式 1显示模式 2显示模式 3显示模式 4S7 按下S8 按下S9 按下S10 按下结束结束程序清单程序清单: : 延时子程序:主要起延时作用:用于按键去抖动和控制 l
10、ed 灯点亮熄灭的是实践控制 void delay() int i;for(i=0;i30000;i+); 左右流水灯子程序:主要作用是使 led 灯组按照左右流水的模式显示 void aa() 10int i=0,k=0;loop:P2=0xff;if(S7=0) /第一次判断是否有键按下 for(i=0;i30000;i+); /延时防抖动if(S7=1) /判断按键是否弹起 while(1) P2=ak;delay();k+;if(k=8)k=0;/左流水灯if(S7=0) /第二次判断是否有键按下 for(i=0;i30000;i+); /延时防抖动 if(S7=1) /判断按键是否弹
11、起 goto loop; /跳转到 LOOP 处,即 P3=0xff,此时灯全灭 顺次点亮熄灭流水灯子程序:主要作用是使 led 灯按照从右到左一次点亮然后从左到右依 次熄灭 void bb() int i=0,j=0;loop:P2=0xff;if(S8=0) /第一次判断是否有键按下 for(i=0;i30000;i+); /延时防抖动if(S8=1) /判断按键是否弹起 while(1)P2=cj;delay();j+;if(j=16)j=0; /顺次点亮熄灭if(S8=0) /第二次判断是否有键按下 for(i=0;i30000;i+); /延时防抖动 if(S8=1) /判断按键是否弹起 goto loop; /跳转到 LOOP 处,即 P3=0xff,此时灯全灭 左右跑马灯子程序:led 灯先从左到右逐个点亮,到达最右端的时候然后再从右到左逐个 点亮 void cc() int i=0,j=0;loop:P2=0xff;if(S9=0) /第一次判断是否有键按下 for(i=0;i30000;i+); /延时防抖动if(S9=1) /判断按键是否弹起 while(1)P2=bj;delay();j+;if(j=16)j=0; /左右跑马灯if(S9=0) /第二次判断是否有键按下 for(i=0;i30000;i+); /延时防