里面有心形流水灯的电路仿真图以及流水灯代码,在课程设计报告的文档里,见附件。
答辩PPT内容预览:
安装与调试
在安装时要考虑LED灯正负极有没有接反,安装好所有元件后,按照电路图逐一检查电路有没有漏焊的问题,接下来用万用表逐一检查有没有虚焊、线路断或线路短路的问题。在线路没有问题的情况下,连接电源调试,加入电源以后,32个LED灯可以循环点亮,依次熄灭,可以达到预期的效果
创新之处
技术在不断进步,传统照明方式已经被淘汰,取而代之的是具有高发光效率的LED,低热量的LED照明矩阵更具人性化,更能提高人们的生活质量,更受人们欢迎。白炽灯已经远去,LED时代已经到来。
不足之处
焊接时经常会将两个接口连在一起,电路板上的铜片容易掉落,就需要绑线进行连接,在焊接之前未仔细检查仪器的好坏,这些都是以后需要注意的地方。
综合课程设计 (一) Integrated Curriculum Design(1)
心形流水灯套件 1 设计目的(1)掌握单片机芯片AT89C51的基本功能和使用。 (2)熟悉Proteus仿真软件的使用,了解各元件的功能及作用。 (3)了解音乐的基本知识。 (4)提高数字电子电路的综合应用能力。 (5)掌握Keil软件的使用方法,以及如何创建文件和编写程序。 (6)提高焊接能力以及实际问题分析能力。 2 设计思路(1)设计一个用单片机控制的心形流水灯系统; (2)LED灯数量为32个; (3)将仪器焊接到电路板上; (4)可以实现循环点亮,依次熄灭的基本功能; (5)可以实现对角闪亮,间隔闪亮,顺时针闪亮,逆时针闪亮,同时闪亮等多种功能。 3方案论证1、单片机芯片的比较与选择 单片机作为该电路的主要控制器芯片,即整个系统的控制核心部分,主要是负责控制LED灯的不同变化速度以及变化效果。因此对单片机芯片的选择,必须要求其功耗低、数据转换速率快。 方案一:采用STC89C51单片机。40个引脚,8k Bytes Flash片内程序存储器, 256 bytes的随机存取数据存储器(RAM), 32个外部双向输入/输出(I/O)口, 5个中断优先级2层中断嵌套中断, 2个16位可编程定时计数器, 2个全双工串行通信口, 看门狗(WDT)电路,片内时钟振荡器。 方案二:选择TI公司生产的MSP430F149系列单片机系统。此款单片机具有低电压、超低功耗的特点,工作电压在3.6-1.8V之间,具有强大的功能和高效的运算处理能力。 方案选择:由于STC89C51芯片价格便宜,支持在线下载程序而且MSP430F149系列单片机的功能已经远远高于我们本系统,操作不便。 综合考虑,我们选择方案一。 4 设计过程4.1硬件设计单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。电子琴是现代电子技术与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经融入现代人们的生活中,成为不可替代的一部分。 本设计是以AT89C51单片机为核心控制元件,把51单片机的4个I/O口与32个5mm高亮LED灯相接,通过单片机控制各I/O引脚的高低电平控制LED的亮灭从而形 成各种不同亮灭的花样。(1)单片机控制模块 硬件电路要以单片机作为主芯片,针对本设计的功能和用途,采用AT89S51单片机更好,实现功能完全,性价比较高,更适合本设计。具体电路如图2所示。
(2)74HC245 5电路仿真与结果分析 5.1电路原理图 5.2 心形流水灯测试图 5.2 电路仿真图
5.3结果分析根据仿真结果可知,本次课程设计能够准确并彻底的完成设计要求,完成了心形流水灯的设计,实现了LED灯的循环点亮、依次熄灭等基本功能,并且还实现了对角闪亮、间隔闪亮、顺时针闪亮,逆时针闪亮等多种功能。 6设计体会这次课程设计我们换过几种方案,我们刚开始是选择完全的数字电路来实现,但我们做好仿真时,发现一个问题,频率不能很好的把握,指导老师说这在实物中更难把握,建议我们用单片机来实现,尽管我们现在还没有学习单片机的相关知识,但在老师的指导下,我们查阅相关的资料,进行相关的学习,最终我们实现了设计的要求,并且还新增了一些功能,同时还解决了第一次关于频率的问题,总体来说,此次课程设计使我们收获良多,虽然课程设计的过程中遇到了很多困难与问题,但我们最终还是完成了设计的任务及要求。具体来说可以分为以下几点:第一,不够细心,不够严谨;第二,因对课本理论的掌握度不够导致编程出现错误;第三,硬件方面,刚开始有的程序模块不能实现预期的效果,对于有的硬件,在实物制作过程中焊了比较多的排线,同时对于整体各元器件的布局都有很高的要求。不过在向同学请教,各方面都有了不同程度的改善;第四,在做人方面,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力和决心,有足够的挑战困难的勇气,就没有什么办不到的。这次课程设计中我们完成了基本任务,使我们有了一定的成就感,也使我们进一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤, 初步掌握了单片机仿真软件Proteus的使用方法和键盘,同时也掌握了撰写课程设计报告的方法。总之,通过这次课程设计,我们都清楚明白了自己的能力有多深,想提高还得归于多锻炼,多动手,多向别人学习。
附件实物图
单片机源程序如下: - #include<reg51.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code table0[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//P0-P7依次点亮
- uchar code table1[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//P0-P7依次熄灭
- uchar code table2[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//P7-P7依次点亮
- uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//P7-P7依次熄灭
- uchar temp,aa,bb,temp,temp1;
- void delay(uint z);
- void h();
- void hh();
- void hhh();
- void hhhh();
- void init();
- void main()//主函数
- {
- init();
- while(520)//大循环
- {
- h();
- hh();
- hhh();
- hhhh();
- }
- }
- void delay(uint z)//延时函数
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void h()
- {
- for(aa=0;aa<3;aa++)
- {
- for(bb=0;bb<8;bb++)
- {
- P0=table0[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P1=table0[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P3=table0[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P2=table0[bb];
- delay(50);
- }
- delay(500);
- for(bb=0;bb<8;bb++)
- {
- P0=table1[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P1=table1[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P3=table1[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P2=table1[bb];
- delay(50);
- }
- }
- for(aa=0;aa<3;aa++)
- {
- for(bb=0;bb<8;bb++)
- {
- P2=table2[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P3=table2[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P1=table2[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P0=table2[bb];
- delay(50);
- }
- delay(500);
- for(bb=0;bb<8;bb++)
- {
- P2=table3[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P3=table3[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P1=table3[bb];
- delay(50);
- }
- for(bb=0;bb<8;bb++)
- {
- P0=table3[bb];
- delay(50);
- }
- }
- }
- void hh()
- {
- for(bb=0;bb<3;bb++)
- {
- for(aa=0;aa<8;aa++)
- {
- P0=table0[aa];
- P2=table2[aa];
- delay(100);
- }
- for(aa=0;aa<8;aa++)
- {
- P3=table2[aa];
- P1=table0[aa];
- delay(100);
- }
- for(aa=0;aa<8;aa++)
- {
- P2=table3[aa];
- P0=table1[aa];
- delay(100);
- }
- for(aa=0;aa<8;aa++)
- {
- P1=table1[aa];
- P3=table3[aa];
- delay(100);
- }
- }
- }
- void init()
- {
- P1=P2=P3=P0=0x00;
- delay(1000);
- P1=P2=P3=P0=0xff;
- delay(200);
- temp=0xfe;
- temp1=0x7f;
- }
- void hhh()
- {
- for(bb=0;bb<10;bb++)
- {
- for(aa=0;aa<8;aa++)
- {
- P0=temp;
- temp=_crol_(temp,1);
- delay(40);
- }
- P0=0xff;
- for(aa=0;aa<8;aa++)
- {
- P1=temp;
- temp=_crol_(temp,1);
- delay(40);
- }
- P1=0xff;
- for(aa=0;aa<8;aa++)
- {
- P3=temp;
- temp=_crol_(temp,1);
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
|