ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:350.47KB ,
资源ID:14885403      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14885403.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机控制流水灯.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机控制流水灯.docx

1、单片机控制流水灯单片机控制流水灯前言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯不断变化闪烁。LED灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器

2、进行改进。流水灯是一串按一定的规律像流水一样连续闪亮。流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,利用移位寄存器实现最为便利。通常用左移寄存器实现灯的单方向移动;用双向移位寄存器实现灯的双向移动。本案例利用价格低廉的AT89C52系列单片机控制基色LED灯泡从而实现丰富的变化。1、课程设计的目的和要求 设计目的近年来随着科技的发展,单片机的应用正在不断走向深入,同时带动传统控制检测日新月异更新,在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,单片机方面知识是不够的,还应根据具体硬件

3、结构,以及针对具体应用对象点的软件结合,加以完善。流水灯,可以更简单、方便的使用。通过本课程设计使学生进一步巩固单片机原理及应用的基本概念、基本理论,分析问题的基本方法,增强系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力。培养一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案。 设计要求设计流水灯的基本要求:设计一个16个LED灯的流水灯,应用AT89C51实验开发板的定时器功能实现,电路开启后LED灯在时钟信号作用下按一定规律转换状态。2、设计方案选择 根据设计的基本要求,要实现其基本要求有两种设计方案的选择,这两种设计方案都是基于A

4、T89C51单片机的基础上设计的。一种是使用两片74LS138译码器芯片扩展成为4线16线具有16种输出状态,从而可以控制16个LED灯;另一种是直接使用单片机的两个端口控制,这样也可以实现控制16个LED灯。比较这两种设计方案,我们小组选用了后者。因为这个设计只是简单的要求实现16个LED灯循环点亮的流水功能,不用实现其他的功能,即不需要考虑占用I/O口多的问题;而前者的设计方案需要外添加两个74LS138芯片,这样就增加了硬件电路的复杂性。3、硬件设计设计思路 如果要让接在口的LED1亮起来,那么只要把口的电平变为低电平就可以了;相反,如果要接在口的LED1熄灭,就要把口的电平变为高电平;

5、同理,接在和口的其他15个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1LED16依次点亮、熄灭,16只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 流水灯电路原理图图3-1硬件接线图 利用单片机的P0、P2口高低电平控制LED灯的发光闪烁,再利用编程实现流水灯的功能。用软件来实现对LED的控制,实现的软硬件结合。每个LED灯接一个限流电阻,来控制流入LED发光管的电流。 硬件系统方框图元件清单表3-1 元件清

6、单名称型号个数AT89C51122pF电容210uF电解电容1220欧姆电阻1610k电阻1晶振1发光二极管16连接线若干 硬件电路模块分析(1)核心部件89C51单片机是整个流水灯循环系统的核心功能的部件,其中内部有ROM、有RAM、有并行I/O口等,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。(2)复位系统电路中C1、R1、VCC等组成复位电路,它的作用是将单片机内部特殊功能寄存器和端口寄存器恢复到初始状态,从内部FLA

7、SH存储器的初始状态开始执行。如图所示,当要对晶片重置时,只要按此开关就能完成LED和开关的重置。复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式可由手动复位方式完成。RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6MHz晶振,则需持续4S以上才能完成复位操作。图中,在通电瞬间,由于RC的充电过程,在RST端出现一定宽度的正脉冲,只要该正脉冲保持10

8、ms以上,就能使单片机自动复位图3-2 复位电路CPU在第二个机器周期内执行内部复位操作,以后每个机器周期重复一次,直至RST端电平变低。在单片机复位期间,AlE和 信号都不产生。复位操作将对部分专用寄存器产生影响,复位后,这些内部寄存器状态如表2-6。表1-2 部分专用寄存器复位状态寄存器 值 寄存器 值 PC 0000H ACC 00H B 00H PSW 00H SP 07H DPTR 0000H P0P3 0FFH IP XXX00000 IE 0XX00000 TMOD 00H TCON 00H TL0,TL1 00H TH0,TH1 00H SCON 00H SBUF 不定 PCO

9、N 0XXX0000 上电瞬间由于电容C上无储能,其端电压近似为零,RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,当RST引脚上的电压小于某一数值后,单片机就脱离复位状态,进入正常工作模式。只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。(3)振荡系统单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。而时钟电路就用于产生单片机工作所需要的时钟信号。为LED灯循环系统提供稳定频率波在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,引入唯一的外部脉冲信号作为各单片机的振荡脉冲。这时外

10、部的脉冲信号是经单片机89C51的XTAL2引脚注入的;在MCS51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,可构成稳定的自激振荡器,振荡频率范围通常是12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。如图所示 图3-3 振荡电路 晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号A和B供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍

11、,A信号在每个状态的前半周期有效,在每个状态的后半周期B信号有效。CPU就是以两相时钟A和B为基本节拍协调单片机各部分有效工作的。 MCS-51单片机时钟电路示意图如图下图所示。 MCS-51单片机时钟振荡电路示意图振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。振荡脉冲在片内通过一个时钟发生电路二分频后才作为系统的时钟信号。片内时钟发生电路实质上是一个二分频的触发器,其输入来自振荡器,输出为二相时钟信号,即状态时钟信号,其频率为fosc/2;状态时钟三分频后为ALE信号,其频率为fosc/6;状态时钟六分频后为机器周期,其频率为fosc/12。(4)显示电路 如图3-4所示,P

12、0口控制LED灯D1D8的显示,P2口控制LED灯D10D17的显示。限流电阻为220欧姆,经过的电流大概为15mA。 图3-4 LED显示电路 主要元件说明 此电路主要元件是AT89C51单片机,单片机内部主要包含下列几个部件: 一个8位CPU; 一个时钟电路; 4Kbyte程序存储器; 128byte数据存储器; 两个16位定时/计数器; 64Kbyte扩展总线控制电路; 四个8-bit并行I/O端口; 一个可编程串行接口; 五个中断源,其中包括两个优先级嵌套中断。AT89C51硬件结构框图主要特性AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH

13、可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC51兼容。片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。主要引脚功能1.电源引脚Vcc和Vss Vcc:电源端,接5V。 Vss:接地端。 通常在Vcc和Vss引脚之间接高频滤波电容。 2.时钟电路引脚X

14、TAL1和XTAL2 XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。 XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。 3.地址锁存允许ALE 在系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。当单片机上电正常工作后,ALE端就周期性地以时钟频率的1/6的固定频率向外输出正脉冲信号,ALE的负载能力为8个LSTTL器件。 4.外部程序存储器读选通信号 是读外部程序存储器的选通信号,低电平有效。CPU从外部

15、存储器取指令时,它在每个机器周期中两次有效。 5.程序存储器地址允许输入端 /VPP 当 为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。当 为低电平时,CPU只执行片外程序存储器指令。对于8031,由于其无片内ROM,故 必须接低电平。 6.复位信号RST 该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。此外,该引脚还有掉电保护功能,若在该端接5V备用电源,在使用中若Vcc掉电,可保护片内RAM中信息不丢失。 7.输入/输出口引脚P0、P1、P2和P3 P0口():该端口为漏极开路的8位准双向口,负载能力位

16、8高LSTTL负载,它为8位地址线和8位数据线的复用端口。 P1口():它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。 P2口():它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,它作存储器的高8位地址线。 P3口():P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有特殊功能。 振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至

17、内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度 芯片擦除AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 4、软件设计 主程序设计 #include #define T 10 EX文件。本设计利用Keil Vision4, 在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“Options For

18、 Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C51并单击鼠标左键,对AT89C51进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。仿真结果图 Proteus仿真环境5、结束语 通过这次课程设计我学到了很多东西,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源,懂得设计的关键是要有一个清晰的思路和一个完整

19、的软件流程图。在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提供了方便。整个设计的过程中,还是碰到了一些问题。比如,对于P0口控制的LED灯点亮完后怎么样过渡到P2口控制的LED灯点亮,对于编程的顺序及各模块程序调用掌握得还不够好,主要是因为一些相关的应用软件没能熟练掌握。通过这几天的反复思考,以及参考网上的程序,最终还是完成了设计。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强实践能力,而且在理论上可以有更深的认识7、参考文献胡汉才单片机原理与接口技术M北京:清华大学出版社,楼然苗等51系列单片机设计实例M北京:北京航空航天出版社,何立民. 单片机高级教程M北京:北京航空航天大学出版社,2001夏继强. 单片机实验与实践教程M. 北京:北京航空航天大学出版社, 2001

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2