1、 基于AT89C51单片机流水灯 1 引言 1.1 课题介绍单片机全称叫单片微型计算机(Single Chip Microcomputer),是一个集成在电路芯片,是采取超大规模集成电路技术把含有数据处理能力中央处理器CPU随机存放器RAM、只读存放器ROM、多个I/O口和中止系统定时器/计时器等功效(可能还包含显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上组成一个小而完善计算机系统。现在单片机渗透到我们生活各个领域,几乎极难找到哪个领域没有单片机踪迹。导弹导航装置,飞机上多种仪表控制,计算机网络通讯和数据传输,工业自动化过程实时控制和数据处理,广泛使用多种智
2、能IC卡,民用豪华轿车安全保障系统,录像机、摄像机、全自动洗衣机控制,和程控玩具、电子宠物等等,这些全部离不开单片机。更不用说自动控制领域机器人、智能仪表、医疗器械和多种智能机械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备智能化管理及过程控制等领域,大致可分以下多个范围:在智能仪器仪表上应用,比如精密测量设备;在工业控制中应用,用单片机能够组成形式多样控制系统、数据采集系统,比如工厂流水线智能化管理,电梯智能化控制、多种报警系统,和计算机联网组成二级控制系统等;在家用电器中应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随地可见移
3、动电话,集群移动通信,无线电对讲机等。单片机在医用设备领域中应用,比如医用呼吸机,多种分析仪,监护仪,超声诊疗设备及病床呼叫系统等;在多种大型电器中模块化应用,如音乐集成单片机,看似简单功效,微缩在纯电子芯片中(有别于磁带机原理),就需要复杂类似于计算机原理。本设计着重在于分析计算器软件和开发过程中步骤和步骤,并从实践经验出发对计算器设计做了具体分析和研究。本系统就是充足利用了8051芯片I/O引脚。系统以采取MCS-51系列单片机Intel8051为中心器件来设计LED流水灯系统,实现8个LED霓虹灯左、右循环显示,并实现循环速度可调。1.2 设计目标(1) 学习基础理论在实践中综合利用初步
4、经验,掌握电路设计基础方法、设计步骤,培养综合设计和调试能力。(2) 掌握汇编语言程序设计方法。(3) 培养实践技能,提升分析和处理实际问题能力。1.3 设计任务及要求(1) 彩灯用8个发光二极管替换。(2) 电路含有控制彩灯点亮右移、左移、全亮及全灭等功效。(3) 彩灯两点移动时间间隔为0.5秒。2 总体设计思绪2.1设计思绪本课题使用AT89C51单片机时无须外扩存放器。所以,本流水灯实际上就是一个带有八个发光二极管单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必需软件组成单个单片机。假如要让接在P1.0口LED1亮起来,那么只要把P1.0口电平变为低电平就能够了;相反,假
5、如要接在P1.0口LED1熄灭,就要把P1.0口电平变为高电平;同理,接在P1.1P1.7口其它7个LED点亮和熄灭方法同LED1。所以,要实现流水灯功效,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗做流水灯了。一样道理,能够让8个灯左移点亮,全亮、全灭。在此我们还应注意一点,因为人眼视觉暂留效应和单片机实施每条指令时间很短,我们在控制二极管亮灭时候应该延时一段时间,不然我们就看不到“流水”效果了。2.2 系统结构框图 系统机构框图图1所表示。图1 系统结构框图2.3 系统程序步骤图 系统程序总步骤图图2所表示。 图2 系统框图3 设计步骤3.1硬件设计硬件系统
6、是指组成微机系统实体和装置,通常由运算器、控制器、存放器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件芯片,在实际应用中,通常极难直接和被控对象进行电气连接,必需外加多种扩展接口电路、外部设备、被控对象等硬件和软件,才能组成一个单片机应用系统。本设计选择以AT89S51单片机为主控单元。显示部分:8个LED灯循环亮灭。3.2单片机时钟电路时钟电路用于产生单片机工作所需要时钟信号,单片机本身就是一个复杂同时时序电路,为了确保同时工作方法实现,电路应在唯一时钟信号控制下严格地按时序进行工作。在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端
7、为引脚X2,在芯片外部跨接晶体振荡器和微调电容,形成反馈电路,就组成了一个稳定自激振荡器。 此电路采取12MHz石英晶体。时钟电路图3所表示。图3 时钟电路图3.3复位电路 电阻作用是用于上电复位,VCC以上电,因为电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还能够用手动复位,此电路应用自动复位。复位电路图4所表示。 图4 复位电路图3.4控制电路控制电路用于控制工作电路工作情况,依据要求来控制电路,本电路控制电路用来控制流水灯工作情况,当按下1、2、3、4各个开关时,电路含有左移、右移、全亮、全没功效,具体控制电路图5所表示。图5 开关电路图3.5工作电路(
8、1) 工作电路就是依据总电路指令,来反应工作情况。本电路流水灯电路具体图6所表示。 图6 流水灯电路图(2) 依据各个模块功效及她们信号传输,连接电路图7所表示。图7 整体电路图4 软件设计4.1设计要求本系统功效就时实现流水灯循环点亮,关键有四个功效,第一,按下第一个按钮,彩灯向上点亮循环,按下第二个,彩灯向下循环点亮,按下第三个,彩灯全灭,按下第四个,彩灯全亮。彩灯用8个发光二极管替换。电路含有控制彩灯点亮右移、左移、全亮及全灭功效用按键切换彩灯状态,彩灯两点移动时间间隔为0.5秒。4.2源程序见附录5 软件调试软件调试通常分为以下四个阶段:1、 编写程序并查错;2、在汇编语言编译系统中编
9、译源程序3、对程序进行编译连接,并立即发觉程序中存在错误;4、更正错误。在软件调试过程中,对出现错误进行了认真分析和修改,数次调试成功后,能够很好达成既定设计效果。此系统能够改善为能够经过对开关调整来控制流水灯电路含有控制彩灯点亮右移、左移、全亮及全灭等功。6 心得体会经过一段时间努力,我们顺利完成了这次单片机课设。这是一个磨练意志过程。从课题选择开始,计算器设计、硬件和软件系统设计、到最终Proteus软件仿真完成,这其中经历了很多困难,不过更关键是在这个过程中我得到了很大锻炼。首先经过C51单片机等部分器件设计让我学习和掌握了单片机技术基础知识和技术关键点,也使以前学很多知识全部得到了利用
10、;其次在用Proteus软件画电路图时,然后再转换成一维WORD中进行编辑,这个过程中让我掌握了计算机辅助设计技术。当然,这是一个需要不停尝试,不停校核,不停修改,最终完成一个合理设计过程。需要是细心和耐心。在很大程度上培养了我拼搏工作精神。使我受益匪浅,愈加明确了自己专业方向。经过此次课设,我不仅学到了相关单片机技术方面很多专业知识,同时也让我感觉到团体合作关键性。其实怎样有效和快速找到资料也是课设给我启发,利用好图书馆和网络,是资源到最好利用。和她人交流思想是取得成功关键,在交流中,不仅强化了自己原有知识体系,也扩展了自己思维。课设是一个经过思索、发问、自己解惑并动手、提升过程。我会在以后
11、学习中不停学习,积累经验,完善自己。对于这次单片机课程设计不仅巩固了以前所学过知识,而且学到了很多在书本上没有学到过知识,掌握了一个系统研究方法,能够进行部分简单编程。经过这次课程设计使我知道了理论和实际相结合是很关键,只有理论知识是远远不够,只有把所学理论知识和实践相结合起来,从理论中得出结论,从而提升自己实际动手能力和独立思索能力。同时在设计过程中发觉了自己不足之处,比如对以前所学过知识了解得不够深刻,掌握得不够牢靠,学习了单片机汇编语言。 参考文件1 王思明,张金敏,苟军年等著.单片机原理及应用系统设计.北京:科学出版社,2 谭浩强著. C程序设计(第四版).北京:清华大学出版社,3 冯
12、博琴,吴宁著.微型计算机原理和接口技术(第3版).北京:清华大学出版社,附 录 源程序:ORG 0000H AJMP START ORG 0030H START:MOV SP,#60H MOV DPTR,#TAB START1:JNB P0.0,LOOP1 JNB P0.1,LOOP2 JNB P0.2,LOOP3 JNB P0.3,LOOP4 AJMP START1 LOOP1:CLR A MOVC A,A+DPTR CJNE:A,#11111111B,SHOW1AJMP START SHOW1:MOV P1,A ACALL DELAY INC DPTR AJMP LOOP1 LOOP2:M
13、OV A,#09H MOVC A,A+DPTR CJNE A,#00000000B,SHOW2AJMP START SHOW2:MOV P1,A ACALL DELAY INC DPTR AJMP LOOP2 LOOP3:MOV A,#08H MOVC A,A+DPTR MOV P1,A AJMP START LOOP4:MOV A,#11H MOVC A,A+DPTRMOV P1,A AJMP START DELAY:MOV R0,#10 D0:MOV R1,#200D1:MOV R2,#123NOPD2:DJNZ R2,D2DJNZ R1,D1DJNZ R0,D0RETTAB: DB 11111110BDB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 11111111BDB 01111111BDB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 00000000B END