《单片机项目结题报告之流水灯.docx》由会员分享,可在线阅读,更多相关《单片机项目结题报告之流水灯.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机工程结题报告工程名称:把戏流水灯工程组员: 张曌、张丹丹、张浩、章江班级: 通信 1502指导教师: 张天飞填表日期: 2023/5/527名目第 1 章 概述错误!未定义书签。工程简介错误!未定义书签。工程方案错误!未定义书签。第 2 章 硬件电路设计错误!未定义书签。第 3 章 软件程序设计错误!未定义书签。第 4 章 仿真结果错误!未定义书签。第 5 章 小结错误!未定义书签。附录 A 程序错误!未定义书签。附录 B 电路图错误!未定义书签。附录 C 焊接实物图错误!未定义书签。第 1 章 概述工程简介本工程要求在单片机的P0 端口的引脚外接 8 个LED 发光二极管 D1D8,在
2、 P2 端口的引脚外接 8 个 LED 发光二极管 D9D16 实现各种灯亮的效果,具体要求为:(1) D1D16 发光二级管自上而下依次轮番点亮;(2) D1D16 发光二级管自下而上依次轮番点亮;(3) D1D16 发光二级管自上而下每间隔一个依次点亮;(4) 上下交替点亮(5) 全亮(6) 全灭(7) 重复循环以上 6 个过程工程方案工程整体方案描述及方案框图假设要实现流水灯不同功能的呈现,则要依据实际的条件设计相应的硬件电路和软件程序的设计。本课题使用 AT89C51 单片机进展流水灯的功能演示,本流水灯实际上就是一个带有 16 个发光二极管的单片机最小的应用系统,由发光二极管、晶振、
3、复位、电源等电路和必要的软件组成的单个单片机。假设要让接在口的LED1 灯亮起来,那么只要把口的电平变为低电平就可以了;相反,假设要接在口的 LED 灯熄灭,就要把口的电平变为高电平;同理,接在口的其他 7 个 LED 灯点亮和熄灭的方法同LED1;同理也如此。因此,要实现流水灯功能,我们只要将发光二极管的依次点亮,熄灭,LED 灯便会一亮一暗的做流水灯。在此我们还应留意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在掌握二极管亮灭的时候应当延时一段时间,否则我们就看不到“流水”的效果了。根本功能:利用AT89C51 作为主掌握器组成一个LED 流水灯系统, 实现 16 个
4、 LED 灯的演示。根本器件:AT89C51 单片机、16 个 LED 灯和电阻系统原理组成框图:开关输入中心掌握模块 AT89C51LED 流水灯复位晶第 2 章 硬件电路设计类似第 1 章,分小节介绍硬件电路设计分模块介绍各子电路的功能及原理各电路模块2. 1. 1 子系统模块一AT89C51 复位模块图 复位模块通过人工按键复位实现单片机的复位。按键复位通过对 RST 端经过两个电阻对电源 Vcc 接通分压产生的高电平来实现。2. 1. 2 子系统模块二AT89C51 晶振模块(内部时钟方式)图AT89C51 单片机内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚 XTAL1
5、,输出端为引脚 XTAL2,这两个引脚外部跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。2. 1. 3 子系统模块三功能播放模块播放模块由 16 个发光二极管和 16 个上拉电阻构成,通过对软件程序的调用,让 16 个发光二极管在不同时刻产生不同的效果, 使其实现根本的流水灯功能,能够近一步的实现从理论到实际的转变。图 功能播放模块引脚外接 8 个 LED 发光二极管 D1D8 并且分别连接 8 个上拉电阻且共阳极,同在 P2 端口的引脚外接 8 个 LED 发光二极管D9D16 也接 8 个上拉电阻且共阳极,实现各种灯亮的效果。第 3 章 软件程序设计软件流程总流程图自上而下依次轮
6、番点亮自下而上依次轮番点亮自上而下间隔一次点亮上下交替点亮全亮全灭第 4 章 仿真结果D1D16 发光二级管自上而下依次轮番点亮D1D16 发光二级管自下而上依次轮番点亮D1D16 发光二级管自上而下每间隔一个依次点亮D1D16 发光二级管上下交替点亮D1D16 发光二级管全亮D1D16 发光二级管全灭第 5 章 小结总结描述工程设计过程中遇到的问题及解决方法、团队队员的感悟与收获等通过这次单片机课程设计,我们小组收获很多。在这次设计过程中,硬件的设计跟焊接都要我们自己动手,软件的编程也要我们不断的调试,最终才能够完成自己所要完成的目标,获得相关的学问。在实习之前,我们要对所用单片机的内部构造
7、有一个比较系统的了解;要从哪些途径获得单片机理论学问的储藏;要有一个清楚的思路和一个完整的软件流程图。在设计程序时,不能想着一步就将整个程序设计好,只有不断修改才是程序设计完善的必经之路;要养成注释程序的好习惯,一个程序的完善与否不仅仅是实现功能,而应当让全部人能明白你的思路,这样也为资料的保存与沟通供给了便利;在实习过程中遇到问题是很正常的,但我们应当讲每次遇到的问题记录下来,并分析清楚,以免下次再遇到同样的问题。但是从中学到的学问会让我们受益终身。觉察、提出、分析、解决问题和实践力量提高都会受益于我在今后的学习、工作和生活中。在设计过程中和完成后,我们小组认真总结,有以会:1. 此次课程设
8、计是在本学期单片机原理与技术的根底上进展的,整个试验设计过程相比照较生疏,是把以前学习的零碎的内容系统的整合学习。2. 程序调试时,应当讲各模块单独调试。3. 本试验要充分了解 AT89C51 的程序,依据要求编译相关程序。4. 在设计过程中,通过大量的查阅资料,认真的争论教材, 并向指导教师请教很多问题,我们对单片机有了更为深刻的理解。我们认真演技原理,画出程序流程图,通过源程序,做出电路图, 在仿真中觉察很多问题,通过认真争论,不但解决了问题,还学 到了在寻常的学习中学不到的东西。5. 在设计过程中,进一步的把握 Proteus、Word、Wave、Keil 等软件的应用,也了解了单片机开
9、发的根本环节。附录 A 程序#include void Delay10ms(unsigned int c); unsigned char LED,LCD,l;void mainunsigned char i;while (1)/-LED 往左闪耀-/ LED = 0x01;for (i = 0 ;i 8 ; i+)P0 = LED;Delay10ms(50);LED = LED 1;if( LED =0x80)LED = 0x00;P0 = LED;/ LED = 0x01;for (i = 0 ;i 7 ; i+)P2 = LED;Delay10ms(50);LED = LED 1; if(
10、 LED = 0x80)LED = 0x00;P2 = LED;/ LED = 0x80;for (i = 0 ;i 1; if( LED = 0x01)LED = 0x00;P2 = LED;/ LED = 0x80;for (i = 0 ;i 1;if( LED = 0x01)LED = 0x00;P0 = LED;/ LED = 0x01;for (i = 0 ;i 4 ; i+)P0 = LED;Delay10ms(50);LED = LED 2 ;if( LED = 0x40)LED = 0x00;P0 = LED;/ LED = 0x01;for (i = 0 ;i 4 ; i+)
11、P2 = LED;Delay10ms(50);LED = LED 2; if( LED = 0x40)LED = 0x00;P2 = LED;/ LED = 0x01;LCD = 0x80;l = 0xff;for (i = 0 ;i 8 ; i+)P0 = LED;Delay10ms(50);P0 = l;LED = LED 1 ;LED = 0x00;LCD = 0xff; P2 = LED; P0 = LED;Delay10ms(50);P0=LCD;P2=LCD;void Delay10ms(unsigned int c)/延时函数误差 0usunsigned char a, b;/-c 已经在传递过来的时候已经赋值了,所以在for 语句第一句就不用赋值了-/for (;c0;c-)for (b=38;b0;b-)for (a=130;a0;a-);附录 B 电路图-附录 C 焊接实物图