当前位置:文档之家› 单片机课程设计报告旗舰版

单片机课程设计报告旗舰版

单片机原理及系统课程设计评语:考勤(10)守纪(10)过程(40)设计报告(30)答辩(10)总成绩(100)专业:电气工程及其自动化班级:电气1001班姓名:周兴学号: 201009018指导教师:李红兰州交通大学自动化与电气工程学院2013 年 3 月 7 日基于单片机的LED流水灯系统设计摘要本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。

本系统就是充分利用了8051芯片的I/O 引脚。

系统以采用MCS-51系列单片机89C51为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。

关键词:单片机;LED流水灯;MCS-51AbstractThis design mainly to analyze calculator software and in the process of developing the steps, and from the practical experience of the calculator design has made the detailed analysis and research. This system is to make full use of the 8051 chip I/O pins. System to the MCS - 51 series microconteroller as the center Intel8C51 device to design LED running lights system, realize the eight LED neon light left and right cyclic display, and realize the circulation speed adjustable.Keywords: single chip microcomputer, LED running lights,MCS-511引言本系统的功能就时实现流水灯的循环点亮,主要有四个功能,第一,按下第一个按钮,彩灯向左点亮循环,按下第二个,彩灯向右循环点亮,按下第三个,彩灯全亮,按下第四个,彩灯全灭。

彩灯用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个灯左移点亮,全亮、全灭。

系统框图及线路连接原理图如图1所示。

开关AT89C51单片机LED流水灯显示图1 LED流水灯设计系统框图本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

其具体线路连接如图2所示。

XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.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/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D17LED-BIRY D18LED-BIRY D19LED-BIRY D20LED-BIRY D21LED-BIRY D22LED-BIRY D23LED-BIRY D24LED-BIRYR17220R18220R19220R20220R21220R22220R23220R24220C11nFC21nFX1CRYSTALC31nFR2510kR110kR210kR310kR410k图2 LED 流水灯设计接线图3 硬件设计硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。

单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。

本设计选用以A T89S51单片机为主控单元。

显示部分:8个LED 灯循环亮灭。

3.1单片机时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。

此电路采用1MHz的石英晶体。

时钟电路如图3所示。

C11nFC2 1nF X1 CRYSTAL图3 时钟电路3.2复位电路电阻的作用是用于上电复位的,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此电路应用自动复位。

自动复位如图4所示。

C31nFR2510k图4 复位电路3.3控制电路控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右移、全亮、全没的功能,具体的控制电路如图5所示。

R1 10k R210kR310kR410k图5 控制电路3.4工作电路工作电路就是根据总的电路的指令,来反应工作情况。

本电路的流水灯电路具体的如图6所示。

D17LED-BIRY D18LED-BIRYD19LED-BIRYD20LED-BIRYD21LED-BIRYD22LED-BIRYD23LED-BIRYD24LED-BIRYR17 220R18220R19220R20220R21220R22220R23220R24220图6 工作电路4软件设计按照单片饥系统扩建和系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。

AT89C51单片机是美国ATMEI公司生产的低电、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量阴级中断结构、全双工的串行通信、具有4.25~5.50V的电压工作范同和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。

因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

其软件流程图如图7所示。

开始K1是否闭合灯左移点亮灯右移点亮灯全亮灯全灭K2是否闭合K3是否闭合K4是否闭合程序结束Y Y Y Y N N N N图7 LED流水灯设计程序流程图5 系统仿真及其调试5.1系统调试软件调试一般分为以下四个阶段:1、编写程序并查错;2、在汇编语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。

在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够很好的达到既定的设计效果。

此系统可以改进为可以通过对开关的调节来控制流水灯电路具有控制彩灯点亮右移、左移、全亮及全灭等功。

5.2 测试结果对于本系统而言,重点在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。

通过利用8051芯片的I/O 引脚。

系统以采用MCS-51系列单片机AT89C51为中心器件来设计LED流水灯系统,实现了8个LED霓虹灯的左、右循环以及全亮全灭的功能,达到了预期的目的。

5.3 测试分析在此,我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。

6总结经过两周时间的努力,我顺利的完成了这次单片机课程设计。

从课题的选择开始,计算器的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。

通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。

其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络使资源得到最好的利用。

与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。

课设是一个通过思考、发问、自己解惑并动手、提高的过程。

我会在以后的学习中不断学习,积累经验,完善自己。

参考文献[1]王思明.单片机原理及应用系统分析[M].北京:科学出版社,2012:25-57.[2]杨恢先,黄辉先.单片机原理与应用[M].北京:人民邮电出版,2009:132-142.[3]朱定华.单片机原理与接口技术[M].北京:电子工业出版社,2001:121-127.[4]王威.HCS12微控制器原理及应用[M].北京:航空航天大学出版社,2007:44-50.[5]龚运新.单片机C语言开发技术[M].北京:清华大学出版社,2006:23-35.附录1系统程序ORG 0000HAJMP START ;跳转到主程序存放地指出ORG 0030H ;设置主程序开始地址START: MOV SP,#60H ;设置堆栈起始地址为60H MOV DPTR,#TABSTART1: JNB P0.0,LOOP1 ;判断P0.0处开关是否闭合JNB P0.1,LOOP2 ;判断P0.1处开关是否闭合JNB P0.2,LOOP3 ;判断P0.2处开关是否闭合JNB P0.3,LOOP4 ;判断P0.3处开关是否闭合AJMP START1 ;如果没有开关闭合重新检测LOOP1: CLR A ;累加器清零MOVC A,@A+DPTR ;取数值表中的数CJNE A,#11111111B,SHOW1 ;检查左移结束标志AJMP START ;左移结束重新检测开关状态SHOW1: MOV P1,A ;将数据送到P1口ACALL DELAY ;调用延时子程序INC DPTR ;取数据表指针指向下一数据AJMP LOOP1 ;继续查表取数据LOOP2: MOV A,#09H ;设定累加器的初始值MOVC A,@A+DPTR ;取数值表中的数CJNE A,#00000000B,SHOW2 ;检查右移结束标志AJMP START ;右移结束重新检查开关状态SHOW2: MOV P1,A ;将数据送到P1口ACALL DELAYINC DPTR ;取数据表指针指向下一数据AJMP LOOP2 ;继续查表取数据LOOP3: MOV A,#08H ;设定累加器初始值MOVC A,@A+DPTR ;取数值表中的数MOV P1,AAJMP START ;全灭结束重新检测开关状态LOOP4: MOV A,#11H ;设定累加器初始值MOVC A,@A+DPTR ;取数值表中的数MOV P1,A ;将数据送到P1口AJMP START ;全灭结束重新检测开关状态DELAY: MOV R0,#10 ;延时一段时间D0: MOV R1,#200D1: MOV R2,#123NOPD2: DJNZ R2,D2DJNZ R1,D1DJNZ R0,D0RET ;子程序返回TAB: ; TAB表DB 11111110BDB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 11111111BDB 01111111BDB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 00000000BEND。

相关主题