您好,欢迎访问三七文档
单片机原理及系统课程设计答辩电气一班:周兴中文摘要本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的I/O引脚。系统以采用MCS-51系列单片机89C51为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。AbstractThisdesignmainlytoanalyzecalculatorsoftwareandintheprocessofdevelopingthesteps,andfromthepracticalexperienceofthecalculatordesignhasmadethedetailedanalysisandresearch.Thissystemistomakefulluseofthe8051chipI/Opins.SystemtotheMCS-51seriesmicroconterollerasthecenterIntel8C51devicetodesignLEDrunninglightssystem,realizetheeightLEDneonlightleftandrightcyclicdisplay,andrealizethecirculationspeedadjustable.1引言本系统的功能就时实现流水灯的循环点亮,主要有四个功能,第一,按下第一个按钮,彩灯向左点亮循环,按下第二个,彩灯向右循环点亮,按下第三个,彩灯全亮,按下第四个,彩灯全灭。彩灯用8个发光二极管代替。电路具有的控制彩灯点亮右移、左移、全亮及全灭的功能用按键切换彩灯状态,彩灯两点移动时间间隔为0.5秒。2设计方案及原理2.1设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。2.掌握汇编语言程序设计方法。3.培养实践技能,提高分析和解决实际问题的能力。2.2设计要求1.彩灯用8个发光二极管代替。2.电路具有控制彩灯点亮右移左移全亮及全灭等功能(用按键切换彩灯状态)。3.彩灯两点移动时间间隔为0.5秒。2.3设计方法课题使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。同样的道理,可以让8个灯左移点亮,全亮、全灭。LED流水灯设计系统框图开关AT89C51单片机LED流水灯显示本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D17LED-BIRYD18LED-BIRYD19LED-BIRYD20LED-BIRYD21LED-BIRYD22LED-BIRYD23LED-BIRYD24LED-BIRYR17220R18220R19220R20220R21220R22220R23220R24220C11nFC21nFX1CRYSTALC31nFR2510kR110kR210kR310kR410k3硬件设计硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。本设计选用以AT89S51单片机为主控单元。显示部分:8个LED灯循环亮灭。3.1单片机时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用12MHz的石英晶体。3.2复位电路电阻的作用是用于上电复位的,VCC以上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此电路应用自动复位。3.3控制电路控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右移、全亮、全没的功能,具体的控制电路如下。3.4工作电路工作电路就是根据总的电路的指令,来反应工作情况。本电路的流水灯电路具体的如下。4软件设计按照单片饥系统扩建和系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEI公司生产的低电、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量阴级中断结构、2个全I双工的串行、具有4.25~5.50V的电压工作范同和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。开始K1是否闭合灯左移点亮灯右移点亮灯全亮灯全灭K2是否闭合K3是否闭合K4是否闭合程序结束YYYYNNNN5系统仿真及其调试•5.1系统调试•软件调试一般分为以下四个阶段:1、编写程序并查错;2、在汇编语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。•在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够很好的达到既定的设计效果。•此系统可以改进为可以通过对开关的调节来控制流水灯电路具有控制彩灯点亮右移、左移、全亮及全灭等功。5.2测试结果•对于本系统而言,重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。通过利用8051芯片的I/O引脚。系统以采用MCS-51系列单片机AT89C51为中心器件来设计LED流水灯系统,实现了8个LED霓虹灯的左、右循环以及全亮全灭的功能,达到了预期的目的。5.3测试分析•在此,我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。6总结•经过两周时间的努力,我顺利的完成了这次单片机课设。从课题的选择开始,计算器的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。•通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。课设是一个通过思考、发问、自己解惑并动手、提高的过程。我会在以后的学习中不断学习,积累经验,完善自己。•对于这次单片机课程设计不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,学习了单片机C语言。参考文献•[1]王思明.单片机原理及应用系统分析[M].北京:科学出版社,2012:25-57.•[2]杨恢先.黄辉先.单片机原理与应用[M].人民邮电出版,2009:56-59.•[3]朱定华.单片机原理与接口技术[M].电子工业出版社,2001:56-59.•[4]王威.HCS12微控制器原理及应用[M].北京:航空航天大学出版社,2007:56-59.•[5]龚运新.单片机C语言开发技术[M].北京:清华大学出版社,2006:56-59.•[6]胡洪波.单片机原理与应用实验教程[M].湘潭大学出版社,2009:56-59.附录•1系统程序•ORG0000H•AJMPSTART;跳转到主程序存放地指出•ORG0030H;设置主程序开始地址•START:MOVSP,#60H;设置堆栈起始地址为60H•MOVDPTR,#TAB•START1:JNBP0.0,LOOP1;判断P0.0处开关是否闭合•JNBP0.1,LOOP2;判断P0.1处开关是否闭合•JNBP0.2,LOOP3;判断P0.2处开关是否闭合•JNBP0.3,LOOP4;判断P0.3处开关是否闭合•AJMPSTART1;如果没有开关闭合重新检测•LOOP1:CLRA;累加器清零•MOVCA,@A+DPTR;取数值表中的数•CJNEA,#11111111B,SHOW1;检查左移结束标志•AJMPSTART;左移结束重新检测开关状态•SHOW1:MOVP1,A;将数据送到P1口•ACALLDELAY;调用延时子程序•INCDPTR;取数据表指针指向下一数据•AJMPLOOP1;继续查表取数•LOOP2:MOVA,#09H;设定累加器的初始值•MOVCA,@A+DPTR;取数值表中的数•CJNEA,#00000000B,SHOW2;检查右移结束标志•AJMPSTART;右移结束重新检查开关状态•SHOW2:MOVP1,A;将数据送到P1口•ACALLDELAY•INCDPTR;取数据表指针指向下一数据•AJMPLOOP2;继续查表取数据•LOOP3:MOVA,#08H;设定累加器初始值•MOVCA,@A+DPTR;取数值表中的数•MOVP1,A•AJMPSTART;全灭结束重新检测开关状态•LOOP4:MOVA,#11H;设定累加器初始值•MOVCA,@A+DPTR;取数值表中的数•MOVP1,A;将数据送到P1口•AJMPSTART;全灭结束重新检测开关状态•DELAY:MOVR0,#10;延时一段时间6/9/2020•D0:MOVR1,#200•D1:MOVR2,#123•NOP•D2:DJNZR2,D2•DJNZR1,D1•DJNZR0,D0•RET;子程序返回•TAB:;TAB表•DB11111110B•DB11111101B•DB11111011B•DB11110111B•DB11101111B•DB11011111B•DB10111111B•DB01111111B•DB11111111B•DB01111111B•DB10111111B•DB11011111B•DB1110
本文标题:单片机答辩幻灯片
链接地址:https://www.777doc.com/doc-5792563 .html