广告灯的设计 单片机课程设计.doc

上传人:精*** 文档编号:855861 上传时间:2023-09-17 格式:DOC 页数:15 大小:263.83KB
下载 相关 举报
广告灯的设计 单片机课程设计.doc_第1页
第1页 / 共15页
广告灯的设计 单片机课程设计.doc_第2页
第2页 / 共15页
广告灯的设计 单片机课程设计.doc_第3页
第3页 / 共15页
广告灯的设计 单片机课程设计.doc_第4页
第4页 / 共15页
广告灯的设计 单片机课程设计.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、目录第一章 引言.03第二章 总体设计方案.04一:设计要求.04二:硬件设计方案.04三:软件设计程序.08第三章 调试及结果分析.14一:调试及结析结果分析.14二:设计总结.15参考文献.15附录(一).16附录(二).引言:单片机具有体积小,可靠性高,功能强,灵活方便等许多优点,广泛应用于国民经济的各个领域。单片机的应用,从根本上改变了传统的控制系统设计思想和设计方法,以前由模拟电路和数字电路实现的大部分电路,现在都能用单片机通过软件方法来实现。单片机在工业控制中的应用,特别是在实时监测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根

2、据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。广告灯控制的出现,对广告夜景的美化和视觉享受,起到了十分重要的作用,也为一个城市商务区增添了一道亮丽的风景线。STC89C52RC单片机简要介绍单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、IO接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。本系统采用单片机为中心器件来设计广告灯,单片机系统实用性强,操作简单,扩展性好,灵活多变。可以利用其方便快捷的进行实验。在单片机应用系统在其中配

3、置的键盘可以是独立键盘,也可能是矩阵键盘。显示器也为LED数码管。但在此次实验中运用的是矩阵键盘。来控制不同的发光二极管使之呈现出理想的效果,从而达到预期的目标第二章 总体设计方案一、设计要求键盘输入使8个led发光二极管作16种不同的变幻,控制矩阵键盘。即用硬件设计和软件设计相结合的方式,来进行此功能的实现。其中硬件的设计主要包括:电路的设计、选取元器件、编辑元器件,元器件的属性设置、连插件,连接电路和检测。软件的设计主要包括:添加源程序,编辑源程序,生成目标代码文件(扩展名为.HEX)。最后两种设计相结合,在单片机上体现出这种功能的实现。二、硬件电路的设计方案按照设计要求,确定硬件电路的总

4、体设计方案,以8052单片机为核心的控制电路,包括复位电路、定时电路,4*4矩阵键盘和二极管控制电路。2.1 复位电路设计单片机在可靠的复位之后,才会从0000H地址开始有序的执行应用程序。同时,复位电路也是容易受到外部噪声干扰的敏感部分之一。因此,复位电路应该具有两个主要的功能:1.必须保证系统可靠的进行复位;2必须具有一定的抗干扰的能力。系统选用6MHz晶振,则一个机器周期为2us,那么复位脉冲宽度最小应为4us。在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初

5、态开始工作。8052系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。2.2 定时电路设计CPU就是通过复杂的时序电路完成不同的指令功能的。时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。本实验中用到的是内部定时电路。从而实现对二极管开关的的时间长短,延时的长短进行控制,因此具有重要的意义。电路图如下所示:2.3、4*4矩阵键盘的设计矩阵式键盘乃是当今使用最为广泛的

6、键盘模式,该系统以N个端口连接控制N*N个按键显示在LED数码管上。用单片机的并行口P3连接44矩阵键盘,并以单片机的P3.0P3.3各管脚作输入线,以单片机的P3.4P3.7各管脚作输出线。4*4矩阵键盘是用4条I/O线作为行线4条I/O线作为列线在行线和列线的交叉点上设置一个按键每个按键有它的行值和列值。开始先对第一列进行扫描,如果没有按键,再对第二列、第三列、第四列分别进行扫描,如果没有返回到开始。如果第一列有按键,分别对第一行、第二行、第三行、第四行进行扫描,判断是哪一个按键被按下。用AT89C51单片机对4*4矩阵键盘进行动态扫描,当按键盘的键时,可以产生相应的二极管亮灭的变化并实时

7、显示出来。矩阵键盘电路图:2.4二极管控制电路二极管控制电路是整个实验的重要部分,也是展示的主要部分。芯片的并行口P2与二极管相连。通过编写不同的延时程序,来实现不同的”shanshuo”子程序。并与矩阵键盘相连接,通过矩阵键盘的控制,来显示相应的效果。电路图如下:Protel原理图设计:在此次课程设计中,主要使用Protel 99SE来进行电路的设计Protel为设计者提供了一个集成的电路设计环境,包括原理图设计和PCB布线工具、电路仿真和集成的设计文档管理。而本次课程设计主要应用其绘制电路原理图。硬件设计原理图见附录一。三、软件设计程序C语言程序代码:#include#include#de

8、fine uchar unsigned char#define uint unsigned intuchar num,temp;void delay(uint x) /延时子程序uint i,j; for(i=x;i0;i-) for(j=100;j0;j-);void liushuideng(uchar q,uint p)/流水灯控制子程序 uchar aa,i;aa=0xfe;for(i=8;i0;i-) P2=aa; delay(p); aa=_crol_(aa,q);void shanshuo1(uint w) /奇数灯和偶数灯交替闪烁子程序P2=0x55;delay(w);P2=0x

9、aa;delay(w); void shanshuo2(uint e) /后四个灯和前四个灯交替闪烁子程序P2=0xf0;delay(e);P2=0x0f;delay(e); void keys() /检测4*4矩阵键盘哪个按下子程序P3=0xfe; /判断有无按键按下,进行第一列扫描temp=P3;temp=temp&0xf0; /取行状态,对列状态进行屏蔽if(temp!=0xf0)/如果有按键按下,计算其编码值delay(10); /消除抖动temp=P3; temp=temp&0xf0;/排除普通机械抖动造成的影响if(temp!=0xf0) temp=P3; switch(temp)

10、 case 0xee: /按键0按下,其编码值给numnum=0;break;case 0xde: / 按键1按下,其编码值给numnum=1;break;case 0xbe: /按键2按下,其编码值给numnum=2;break;case 0x7e: /按键3按下,其编码值给numnum=3;break; P3=0xfd; /进行第二列扫描temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P3; temp=temp&0xf0;if(temp!=0xf0) temp=P3; switch(temp) case 0xed:num=4;brea

11、k;case 0xdd:num=5;break;case 0xbd:num=6;break;case 0x7d:num=7;break; P3=0xfb; /进行第三列扫描temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P3; temp=temp&0xf0;if(temp!=0xf0) temp=P3; switch(temp) case 0xeb:num=8;break;case 0xdb:num=9;break;case 0xbb:num=10;break;case 0x7b:num=11;break; P3=0xf7; /进行第四列

12、扫描temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P3; temp=temp&0xf0;if(temp!=0xf0) temp=P3; switch(temp) case 0xe7:num=12;break;case 0xd7:num=13;break;case 0xb7:num=14;break;case 0x77:num=15;break; void xiaoguo() switch(num) case 0: /当编码值为0时,二极管亮后四个灯 P2=0xf0; break; case 1: /当编码值为1时,二极管亮第一三五七个灯

13、 P2=0x55; break; case 2: /当编码值为2时,二极管亮两边两个灯 P2=0x7e; break; case 3: /当编码值为3时,亮第二个第七个灯 P2=0xbd; break; case 4: /当编码值4时,二极管亮前四个灯 P2=0x0f; break; case 5: /当编码值为5时,两第二四六八个灯 P2=0xaa; break; case 6: /当编码值为6时,亮第三个灯和第五个灯 P2=0xdb; break; case 7: /当编码值为7时,亮第四个和第五个灯 P2=0xe7; break; case 8: /当编码值为8时,前四个灯和我后四个灯慢

14、速交替闪烁 shanshuo2(2000); break; case 9: /当编码值为9时,奇数灯和偶数灯慢速交替闪烁 shanshuo1(2000); break; case 10: /当编码值为10时,灯从最右边向左每隔一个慢速流水闪 liushuideng(2,1500); break; case 11: /当编码值为11时,灯从最右边慢速先做流水闪 liushuideng(1,1500); break; case 12: /当编码值为12时,前四个灯和后四个灯快速交替闪烁 shanshuo2(800); break; case 13: /当编码值为13时,奇数灯和偶数灯快速闪烁 sh

15、anshuo1(800); break; case 14: /当编码值为14时,灯从最右边向左每隔一个快速流水闪 liushuideng(2,500); break; case 15: /当编码值为15时,灯从最右边以此向左快速流水闪 liushuideng(1,500); break; void main() while(1) /主程序 ,无条件循环以下环节 keys(); /判断是哪个按键按下子程序 xiaoguo();/在二极管上显示对应的按键效果第三章 调试及结果分析一、调试及结果分析矩阵键盘扫描所对应的编码,为按键的序列号,通过调试,其最终结果为:当按下为0键时,二极管亮后四个灯当按

16、下为2键时,二极管亮第一三五七个灯当按下为2键时,二极管亮两边两个灯当按下为3键时,亮第二个第七个灯当按下为4键时,二极管亮前四个灯当按下为5键时,亮第二四六八个灯当按下为6键时,亮第三个灯和第五个灯当按下为7键时,亮第四个和第五个灯当按下为8键时,前四个灯和后四个灯慢速交替闪烁当按下为9键时,奇数灯和偶数灯慢速交替闪烁当按下为10键时,灯从最右边向左每隔一个慢速流水闪当按下为11键时,灯从最右边慢速先做流水闪当按下为12键时,前四个灯和后四个灯快速交替闪烁当按下为13键时,奇数灯和偶数灯快速闪烁当按下为14键时,灯从最右边向左每隔一个快速流水闪当按下为15键时,灯从最右边以此向左快速流水闪二、设计总计 通过这次课程设计,我得到了一次用专业知识专业技能分析和解决问题全面系统的锻炼。使我对单片机有了一个较高层次的认识,使我在单片机的基本原理,单片机应用系统的基本原理,单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。获得丰富理论知识的同时,极大地提高了实践能力,动手能力。把知识与实际相结合,对今后单片机进一步研究和深入有着重要作用。参考文献:单片机原理及C51程序设计 清华大学出版社附录一:第 15 页 共 15 页

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922