您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于单片机最小系统的流水灯
1电气工程学院学生科研实践计划项目总结报告项目编号:SRPP201715项目名称:基于单片机最小系统的流水灯项目参加人:李恺(论文撰写者)任子业所在班级:电子161项目指导教师:宋潇项目完成时间:2017年6月填报日期:2017年6月4日河南科技大学电气工程学院2016年制2目录一、项目研究内容............................................................................................3二、设计方法.....................................................................................................3三、系统各模块的设计过程.............................................................................41.电源模块......................................................................................................42.单片机最小系统..........................................................................................53.驱动电路.......................................................................................................84.PCB设计..………………………………………………………………………………………………….8四、系统软件设计..............................................................................................101.源程序............................................................................................................102.程序流程图....................................................................................................11五、系统调试与结果分析....................................................................................12六、总结……..........................................................................................................143一、研究内容单片微型计算机简称单片机,是指集成在一块芯片上的计算机,它具有与结构简单,控制功能强,可靠性高,体积小,价格低等优点。单片机技术作为计算机技术的一个重要的分支,广泛的应用于工业控制,智能仪器仪表,家用电器,电子玩具等各个领域。此次研究的内容是:用AltiumDesigner制作基于单片机最小系统流水灯的原理和PCB,自己进行各个原件的焊接。并进行程序的设计,通过程序来精确的控制LED的亮灭时间,从而达到预期的目的。二、设计方法首先,我们设计使用8个LED小灯制作流水灯,采用STC90C51RC作为主控芯片,并在单片机外围设计了电源指示模块,复位电路和晶振。通过编程控制I/O口的电平高度,使8个LED灯能够准确的以不同的时间亮灭。其基本的模块图如下所示:STC90C51RC电源LED指示灯LED流水灯复位晶振图2-1-1流水灯结构在这之后,为了防止所设计的系统没有误差,同时练习自己的焊接能力,于是我们找到了洞洞板并将单片机的最小系统焊于其上,录入程序看是否工作。如果不工作则进行修改,直到成功为止。这样,即练习了焊接技术以防焊接PCB时失误又能够进一步掌握单片机最小系统。4最后进行程序和PCB的设计。主要通过KeiluVision5和AltiumDesigner两个软件进行单片机的程序设计,原理图和PCB的制作。最后用stc-isp-15将所得到HEX文件烧录到单片机中,观察说设计的系统是否达到所预期的目的三、系统的各模块设计过程1、电源模块供电采用5v的USB供电图3-1-1电源电路C4为去耦合电容,通过此电容将电路中的耦合产生的能量传递抵消,从而减小了对单片机工作的影响。2、单片机最小系统(1)单片机裸片如图所示STC90C516RC+系列单片机是宏晶科技推出的新一代超高速、低功耗的单片机,指令代码完全兼容传统8051单片机。指令代码完全兼容传统8051单片机,12时钟的机器周期和6时钟的机器周期可任意选择,内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。我们用P2引脚作为电路的驱动接口,用RST引脚连接复位电路,用XTAL1和XTAL2连接晶振,用RXD和TXD连接下载模块,VCC和GND连接电源。5图3-2-1单片机(2)晶振如图所示:图3-2-2晶振电路每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振旁边接的是负载电容,负载电容是指晶振的两条引线连接IC块内部及外部所有有效电容之和,可XTAL2XTAL16看作晶振片在电路中串接电容。负载频率不同决定振荡器的振荡频率不同,而我们采用的是12MHz的晶振,结合芯片手册的说明所以使用了47pf的负载电容。(3)复位电路如图所示:当单片机的RST引脚置于高电平几秒后,单片机复位,程序重新执行。图3-2-3复位电路VCC上电时,C充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下S,C放电,在10K电阻上出现电压,并持续一段时间,使得单片机复位。松开S,C又充电,几个毫秒后,单片机进入工作状态。(4)下载模块如图所示:插针2接单片机TXD引脚,插针1接单片机RXD引脚。图3-2-4插针RST7图3-2-5下载模块USB下载模块是单独的物件,没有直接焊入PCB中,于是用四头插针与相应功能的接口连接,然后再用杜邦线与插针连接就能实现相应的功能。(5)上拉电阻的设计如图所示:图3-2-6上拉电阻P0口是集电极开路输出,也就是OC门,这种结构没有输出高电平的能力就相当于一个一端接地的开关,按下去就输出低电平0V,断开就没有电压,是悬空状态.如果要输出高电平控制一个器件,而这个器件本身又没有内置上拉,就必须自己接一个上拉电阻。3、驱动模块如图所示:8图3-3-1驱动电路单片机的I/O输出能力不足以驱动LED灯,所以采用灌电流的方式来驱动LED灯发光。4、PCB的设计我主要设计PCB,在设计PCB时遇到了不少的困难。首先是原理图,设计时需要很多的原件,有的元件库里的元件没有封装有的有,但是有很多是不能用的。而且,不同的元件库里的原件还不一样,而自己画原件又很浪费时间,也不会画。于是就在网上找了很多的资源,最终将原理图的问题解决。在画PCB时,先进行原件的布局,之后开始布线,为了减少信号的损失我把地线加粗为30mil,电源线加粗为20mil。考虑我们所做的板子非常的小,就没有进行覆铜。然而一些封装却无法解决,比如说排阻即找不到封装自己也不会画,还有就是一些电容,找到封装,但是不符合实际,不是太大就是太小,结果只画了图而没有去制作。原理图如下:9图3-4-1原理图10PCB图如下所示:图3-4-2PCB四、系统软件设计1、源程序部分设计程序采用延时程序,先定义一个延时函数,通过返回不同的函数值,在不同的位置调用来实现不同LED灯的亮灭时间。为了精确的控制延时的时间我们用了KeiluVision5进行了仿真,第一个灯亮的时间是1.01秒与我们规定的一秒只有0.01的误差,达到了我们预期的目的,这说明我们设计的程序是可行的。11图4-1-1延时函数122、程序流程图开始定义一个延时函数delay(unsignedinti)点亮第一个LED,返回1000给字符i并调用delay()函数延时一秒点亮第二个LED,返回2000给字符i并调用delay()函数延时两秒点亮第三个LED,返回3000给字符i并调用delay()函数延时三秒点亮第四个LED,返回4000给字符i并调用delay()函数延时四秒点亮第五个LED,返回5000给字符i并调用delay()函数延时五秒点亮第六个LED,返回6000给字符i并调用delay()函数延时六秒点亮第七个LED,返回7000给字符i并调用delay()函数延时7秒点亮第八个LED,返回8000给字符i并调用delay()函数延时8秒While(1)循环图4-2-1程序框图13五、系统调试与结果分析我们的工作开始进展的时候,我们根据各功能模块画出了原理图,并用AD制图软件进行了仔细的排线画出了PCB原理图。随后我们用洞洞板开始进行硬件的焊接,在硬件的焊接完成后,将写好的程序下载进去,结果有一两个灯没亮,我们用万用表进行了排查,灯的引脚处没有电压,我们动了动单片机,发现灯的引脚和单片机的底座焊接的不牢固。在程序的设计中,我们用软件仿真时发现并没有达到预期的亮灭时间,于是不断地修改延时函数中第二个循环中的n的值然后不断进行仿真最后确定了125.5这个值较为准确。同时在烧录时我们发现只有在开关打开的一瞬间,HEX文件才能被烧录进去,而其他时间无法烧录。经过详细的了解,原来我们单片机的P1.0,P1.1未置低属于冷启动,只有在断电然后上电才能够完成下载。但这并没有影响到实验的完成,在以后的设计中,我们会注意到运用到热启动,毕竟热启动不用多次的按动开关键。图5-1-1实物14最后在这都完成之后,我们现将单片机通上电,然后将程序烧录进去,最终达到了预期的目的。六、总结在本次项目中,我主要从事的是动手操作这部分。通过查阅书籍和影像资料我已经初步的掌握了KeiluVision5和AltiumDesigner的基本的使用方法。在本项目中我经过不断地修改布局,我把本次项目所需的PCB板基本的画完,但是封装出现了很大的错误,是经过老师的指导修改,然后才成功的把AD制图搞定。之后就是软件的编写,通过队友的指导,掌握了延时的方法很快就编写了所需的程序,并成功的运行在单片机上。在焊接的过程中也掌握了焊接的技巧,能够焊接一些基础的器件同时在实验室的学习中也基本的掌握了一些实验仪器的使用。这次项目使我学到很多东西,为我进一步学习单片机奠定了基础。在以后的学习中希望通过对单片机的学习,入门嵌入式系统和一些其它先进的东西,追赶时代的潮流,能够从事自己喜欢的工作。15项目完成人对项目实施情况的说明本项目研究工作已经按计划完成。现提交项目总结报告及相关研究成果,申请结项。项目完成人(签字):年月日项目指导教师意见该项目研究工作已经按计划完成。同意申请结项。项目指导教师(签字):年月日学院学术委员会意见负责人(签字):公章:年月日
本文标题:基于单片机最小系统的流水灯
链接地址:https://www.777doc.com/doc-6661675 .html