您的当前位置:首页正文

基于AT89S52的流水灯控制

2020-08-03 来源:汇智旅游网


电子工程学院课外学分设计报告

题目:基于AT89S52的循环彩灯控制

姓 名:专 业:班 级:设计时间: 评定成绩:

宋建军 自动化 电子A1032班

2013 年 02月 15 日 学 号: 22 实 验 室: 开放实验室 —— 2013年 03月 20 日 审阅教师: 李卫华 1. 专业综合设计任务

1.1项目的背景

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个毕业课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

1.2项目的任务

设计彩灯控制电路,使连接在该电路上的8个发光二极管按顺序以次闪烁。

2. 方案设计与论证

实现此功能有两种方案,一种是使用传统的模拟电路,另一种是用单片机控制的电路。我们选择单片机控制系统。其中系统工作原理为:

在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现循环闪烁效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样就可以实现循环闪烁效果。

3. 硬软件设计 3.1设计思路

如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现循环闪烁功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的

2

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

3.2 设计原理图

本控制电路的硬件电路设计如图所示:

图3-1

3.3 主要元件功能

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统

及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~

3

24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的硬件组成的单个单片机。其具体硬件组成如图3-1所示。

3.4 设计程序 ORG 0000H LJMP MAIN ORG 0003H LJMP INTP ORG 0030H MAIN: SETB EX0 SETB EA MOV R4,#28 MOV R2,#00H MOV DPTR,#LED MOV A,#00H START: MOV A,R2 MOVC A,@A+DPTR MOV P1,A

CALL DELAY INC R2 DJNZ R4,START MOV R2,#00H MOV R4,#28 LJMP START INTP:

MOV R1,#08H

4

MOV R0,#00H MOV DPTR,#LED2 MOV A,#00H FF:

MOV A,R0

MOVC A,@A+DPTR MOV P1,A CALL DELAY INC R0 DJNZ R1,FF MOV R0,#00H MOV R1,#08H LJMP FF LED:

// DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH;

DB 7EH,0BDH,0DBH,0E7H,0FFH,0E7H,0C3H,81H,00H,0FFH,00H; DB 0FFH,00H,0FFH,7EH,3CH,18H,00H,0FFH,0E7H,0C3H,81H; DB 00H,0FFH,00H,0FFH,00H,0FFH; LED2:

DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH; //DB 0AAH,55H,0AAH,55H, 0AAH,55H,0AAH,55H; DELAY:

MOV R6,#255

D1: MOV R5,#255 D2: NOP

NOP NOP

DJNZ R5,D2 DJNZ R6,D1

5

RET

END

本电路设计中,所需器件清单如下:

序号 1 2 3 4 5 6 7 8 9 10 器件 R RP C1、C2 C3 555芯片 晶体管V1 晶体管V2 电动式扬声器BL 干电池GB 小型单极波动式开关S 型号 金属膜1/4W WH7型可变电阻 独石电容器 耐压6V以上铝电解电容器 S9013型硅NPN S9012型硅PNP 0.25W、8欧 5号 数量 1个 1个 2个 1个 1个 1个 1个 1个 2节 2个

4. 实现与测试

调试时我们发现LED灯不亮,首先我们检测的是电路,但是检测到线路无误,后来发现其原因是焊接点出现虚焊的地方,解决方法:用电表测量各个点之间是否导通,从而发现虚焊点进行补焊,之后,LED便正常工作。

5. 心得体会

做此次课程设计,让我感受颇深,它能培养我们综合运用所学知识、发现提出解决实际问题的能力,在拿到一个课题时,首先要做的就是对课题的任务要求和条件进行仔细的

6

分析和研究,在出问题的关键,根据其提出实现的原理和方法,并画出原理框图。

通过一个学期的学习,我认为要做好一个课程设计,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为高职生,更要注重实践这一环节,只有这样我们才能成为合格的电子技术人才。

通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟和领悟力。尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。实际能力的培养至关重要,而这种实际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。课程设计之后,我们普遍感到不仅实际动手说,这应该是个警示,在剩下的大学生活里,我应该好好珍惜,好好学习各方面的知识。在单片机方面也是了解了一些些,我相信这次课程设计会对我以后的工作通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为自己的东西

作为一名自动化专业的大三学生,我觉得做课程设计是十分有意义的,而且十分必要的。在已经度过的大学时间里,我们大多数接触的是专业课,我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的平台。

参考文献:

[1] 朱兆优,陈坚.单片机原理与应用.电子工业出版社,2010.09 [2] 陈宁.单片机技术项目教程.南京东南大学出版社,2008.04 [3] 何立民.单片机高级教程.北京航空航天大学出版社, 2000.05

7

因篇幅问题不能全部显示,请点此查看更多更全内容