
单片机控制流水灯.doc
16页单片机控制流水灯前言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯不断变化闪烁LED灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚但目前市场上各式样的LED灯控制器大多数用全硬件电路实现,电路构造复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数这种彩灯控制器构造往往有芯片过多、电路复杂、功率损耗大等缺点此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果因此有必要对现有的彩灯控制器进展改良流水灯是一串按一定的规律像流水一样连续闪亮流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用流水灯控制可用多种方法实现,但对现代可编程控制器而言,利用移位存放器实现最为便利通常用左移存放器实现灯的单方向移动;用双向移位存放器实现灯的双向移动本案例利用价格低廉的AT89C52系列单片机控制基色LED灯泡从而实现丰富的变化目 录前言21、 课程设计的目的和要求61.1 设计目的 61.2 设计要求 62、 设计方案选择63、硬件设计73.1设计思路73.2 流水灯电路原理图 73.2.1元件清单83.2.2 硬件电路模块分析83.3 主要元件说明 113.3.3 振荡器特性153.3.4 芯片擦除154、软件设计154.1 主程序设计 154.2 程序流程图 185、 使用keil、proteus软件调试仿真说明195.1仿真过程195.2仿真结果196、 完毕语197、参考文献201、 课程设计的目的和要求1.1 设计目的近年来随着科技的开展,单片机的应用正在不断走向深入,同时带动传统控制检测日新月异更新,在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,单片机方面知识是不够的,还应根据具体硬件构造,以及针对具体应用对象点的软件结合,加以完善。
流水灯,可以更简单、方便的使用通过本课程设计使学生进一步稳固单片机原理及应用的根本概念、根本理论,分析问题的根本方法,增强系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力培养一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案1.2 设计要求设计流水灯的根本要求:设计一个16个LED灯的流水灯,应用AT89C51实验开发板的定时器功能实现,电路开启后LED灯在时钟信号作用下按一定规律转换状态2、 设计方案选择根据设计的根本要求,要实现其根本要求有两种设计方案的选择,这两种设计方案都是基于AT89C51单片机的根底上设计的一种是使用两片74LS138译码器芯片扩展成为4线—16线具有16种输出状态,从而可以控制16个LED灯;另一种是直接使用单片机的两个I/O端口控制,这样也可以实现控制16个LED灯比拟这两种设计方案,我们小组选用了后者因为这个设计只是简单的要现16个LED灯循环点亮的流水功能,不用实现其他的功能,即不需要考虑占用I/O口多的问题;而前者的设计方案需要外添加两个74LS138芯片,这样就增加了硬件电路的复杂性3、硬件设计3.1设计思路 如果要让接在P0.0口的LED1亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.1~P0.7和P2.0~P2.7口的其他15个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED16依次点亮、熄灭,16只LED灯便会一亮一暗的做流水灯了在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否那么我们就看不到"流水〞效果了3.2 流水灯电路原理图图3-1硬件接线图 利用单片机的P0、P2口上下电平控制LED灯的发光闪烁,再利用编程实现流水灯的功能用软件来实现对LED的控制,实现的软硬件结合每个LED灯接一个限流电阻,来控制流入LED发光管的电流复位电路AT89C51核心部件闪烁系统振荡系统硬件系统方框图3.2.1元件清单表3-1 元件清单名称型号个数AT89C51122pF电容210uF电解电容1220欧姆电阻1610k电阻1晶振11.0592M1发光二极管16连接线假设干3.2.2 硬件电路模块分析〔1〕核心部件89C51单片机是整个流水灯循环系统的核心功能的部件,其中部有ROM、有RAM、有并行I/O口等,在51单片机部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个部的时钟电路。
〔2〕复位系统电路中C1、R1、VCC等组成复位电路,它的作用是将单片机部特殊功能存放器和端口存放器恢复到初始状态,从部FLASH存储器的初始状态开场执行如下图,当要对晶片重置时,只要按此开关就能完成LED和开关的重置复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开场执行程序单片机的RST管脚为主机提供了一个外部复位信号输入口复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上单片机的复位方式可由手动复位方式完成RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,假设使用6MHz晶振,那么需持续4μS以上才能完成复位操作图2.10中,在通电瞬间,由于RC的充电过程,在RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位图3-2 复位电路CPU在第二个机器周期执行部复位操作,以后每个机器周期重复一次,直至RST端电平变低在单片机复位期间,AlE和 信号都不产生复位操作将对局部专用存放器产生影响,复位后,这些部存放器状态如表2-6表1-2 局部专用存放器复位状态存放器 值 存放器 值 PC 0000H ACC 00H B 00H PSW 00H SP 07H DPTR 0000H P0~P3 0FFH IP XXX00000 IE 0XX00000 TMOD 00H TCON 00H TL0,TL1 00H TH0,TH1 00H SCON 00H SBUF 不定 PCON 0XXX0000 上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。
只要高电平能保持复位所需要的时间〔约两个机器周期〕,单片机就能实现复位〔3〕振荡系统单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作而时钟电路就用于产生单片机工作所需要的时钟信号为LED灯循环系统提供稳定频率波在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,引入唯一的外部脉冲信号作为各单片机的振荡脉冲这时外部的脉冲信号是经单片机89C51的XTAL2引脚注入的;在MCS-51单片机片有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反应电路,可构成稳定的自激振荡器,振荡频率围通常是1.2~12MHz晶体振荡频率高,那么系统的时钟频率也高,单片机的运行速度也就快由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式如下图 图3-3 振荡电路 晶体振荡器的振荡信号从XTAL2端送入部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号A和B供单片机使用时钟信号的周期称为状态时间S,它是振荡周期的2倍,A信号在每个状态的前半周期有效,在每个状态的后半周期B信号有效。
CPU就是以两相时钟A和B为根本节拍协调单片机各局部有效工作的 MCS-51单片机时钟电路示意图如图以下图所示 MCS-51单片机时钟振荡电路示意图振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用振荡脉冲在片通过一个时钟发生电路二分频后才作为系统的时钟信号片时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟三分频后为ALE信号,其频率为fosc/6;状态时钟六分频后为机器周期,其频率为fosc/12〔4〕显示电路 如图3-4所示,P0口控制LED灯D1~D8的显示,P2口控制LED灯D10~D17的显示限流电阻为220欧姆,经过的电流大概为15mA图3-4 LED显示电路3.3 主要元件说明此电路主要元件是AT89C51单片机,单片机部主要包含以下几个部件:u 一个8位CPU;u 一个时钟电路;u 4Kbyte程序存储器;u 128byte数据存储器;u 两个16位定时/计数器;u 64Kbyte扩展总线控制电路;u 四个8-bit并行I/O端口;u 一个可编程串行接口;u 五个中断源,其中包括两个优先级嵌套中断。
AT89C51硬件构造框图3.3.1主要特性AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片有一个4KB的FLASH可编程可擦除只读存储器〔FPEROM—Flash Programmable and Erasable Read Only Memory〕,它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC—51兼容片置通用8位中央处理器〔CPU〕和FLASH存储单元,片的存储器允许在系统改编程序或用常规的非易失性存储器编程因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域3.3.2主要引脚功能1.电源引脚Vcc和VssVcc:电源端,接+5VVss:接地端通常在Vcc和Vss引脚之间接0.1μ高频滤波电容2.时钟电路引脚XTAL1和XTAL2XTAL1:接外部晶振和微调电容的一端,在片它是振荡器倒相放大器的输入,假设使用外部TTL时钟时,该引脚必须接地XTAL2:接外部晶振和微调电容的另一端,在片它是振荡器倒相放大器的输出,假设使用外部TTL时钟时,该引脚为外部时钟的输入端3.地址锁存允许ALE在系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
当单片机上电正常工作后,ALE端就周期性地以时钟频率的1/6的固定频率向外输出正脉冲信号,ALE的负载能力为8个LSTTL器件4.外部程序存储器读选通信号是读外部程序存储器的选通信号,低电平有效CPU从外部存储器取指令时,它在每个机器周期中两次有效5.程序存储器地址允许输入端 /VPP当 为高电平时,CPU执行片程序存储器指令,但当PC中的值超过0FFFH时,。












