基于单片机的彩灯控制.doc_第1页
基于单片机的彩灯控制.doc_第2页
基于单片机的彩灯控制.doc_第3页
基于单片机的彩灯控制.doc_第4页
基于单片机的彩灯控制.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的彩灯控制【摘要】:介绍了一种基于单片机的多功能彩灯控制系统的设计方法与实现。以AT89C52为主控芯片,用4个74HC595作为驱动模块,采用32个LED作为显示模块,具有6个功能按键来实现彩灯的个个功能,实现多种彩灯花样循环显示。【关键词】:AT89C52;74HC595;LED循环彩灯1 引言:随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯,从歌舞厅到卡拉OK 包房,从节的祝贺到日常生活中的点缀。这些不紧说明了我们对生活的要求有了质的飞跃,也说明科技在现实运用中有了较大的发展,用彩灯来装饰街道和城市建筑物已经成为一种时尚。LED彩灯由于其丰富的灯光色彩,造价低廉以及控制简单等特点而得到了广泛的应用。但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。因此有必要对现有的彩灯控制器进行改进。本文提出了一种基于AT89C52 单片机的彩灯控制方案,实现对LED 彩灯的多功能循环控制。2 硬件设计2.1 主控芯片:2.1.1 AT89C52芯片介绍:图2.1VCC:供电电压。 GND:接地。P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址/数据总线复用口。 作为输出口用时,每位能吸收电流的方式驱动 8gTTL 逻辑门电路,对端口 P0 写“1” 时,可作为高阻抗输入端用。在访问个外部数据存储器或程序存储器时,这组口 线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时, 要求外接上拉电阻。P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可 驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电 阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电 阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与 AT89C51 不同之处是, P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入。Flash 编程和程序校验期间,P1 接收低 8 位地址。表.P1.0 和 P1.1 的第二功能 P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可 驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1”,通过内部的上 拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上 拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储 器或 16 位地址的外部数据存储器时,P2 口送出高 8 位地址数据。在访问 8 位地 址的外部数据存储器时,P2 口输出 P2 锁存器的内容。Flash 编程或校验时,P2 亦接收高位地址和一些控制信号。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可 驱动 4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作 为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除 了作为一般的 I/O 口线外,更重要的用途是它的第二功能 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将 使单片机复位。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 振荡器特性:AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片 外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容 C1、C2 接在放大器的反馈回路中构成并联振荡电路。使用石英晶体,我们推荐电容使 用 30pF10pF,使用陶瓷谐振器建议选择40pF10F。用户也可以采用外部时钟。这种 情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2 则悬空。2.1.2 AT89C52 主要特性:兼容 MCS51 指令系统,8k可反复擦写(1000 次)Flash ROM32 个双向 I/O 口,256x8bit 内部RAM3个16位可编程定时/计数器中断,时钟频率0-24MHz 2个串行中断,可编程UART串行通道2个外部中断源,共6个中断源 2个读写中断口线,3级加密位低功耗空闲和掉电模式,软件设置睡眠和唤醒功。2.2 最小系统电路:2.2.1 时钟电路: 单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号。单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。本系统设计采用内部振荡方式。 MCS-51 单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl 和XTAL2 分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式。给AT89C52单片机加上时钟电路和复位电路就构成了一个最小系统。时钟电路用于提供单片机工作时所需的时钟信号。复位电路用于单片机的上电复位,以使单片机从一个稳定确定的状态开始工作。由于不使用P0口,故可省去其上拉电阻。本实验采用外接5V电压来供电实现主控芯片与个个模块的工作。图2.22.3 驱动模块:2.3.1 74HC595介绍:Q0 Q7并行数据输出 GND接地 Q7串行数据输出MR主复位(低电平) SH_CP移位寄存器时钟输入 ST_CP存储寄存器时钟输入 OE输出有效(低电平) DS串行数据输入 VCC电源 2.3.2 74HC595主要特性:8 位串行输入 /8 位串行或并行输出 存储状态寄存器,三种状态输出寄存器可 以直接清除 100MHz 的移位频率。并行输出,总线驱动。595 移位寄存器有一个串 行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存 器有一个并行 8 位的,具备三态的总线输出,当使能 OE 时(为低电平),存储寄 存器的数据输出到总线。2.3.3 驱动模块: 本设计用 74HC595 作为驱动,有 4 个 74HC595 构成驱动模块,将单片机的P2.0,P2.1,P2.3,P2.2 口分别与 595 的 SH_CP,DS,ST_CP,MR 相连,并注上相应标号。DS 作为数据口,SH_CP 和 ST_CP 作为时钟,第一个 595 的输入端 DS 与 P2.1口相连,第一个595输出端Q7与第二个595输入端DS相连,直到连到最后一个。将输出端与 LED 相连构成驱动模块2.3.4 74HC595 驱动模块工作原理:本设计采用 AT89C52 的 P2口输出信号,P2.0 和 P2.3 作为时钟输入,用了 4 个 74HC595。上电后P2.1口输出信号给595,74HC595 是含8位串入、串/并出移位寄存器和8位三态输出锁存器。寄存器和锁存器都有自己的时钟输入,都是上升沿有效。当 SH_CP 从低到高电平跳变时,串行输入数据移入寄存器;当 ST_CP 从低到高电平跳变时,寄存器的数据置入锁存器;清除端MR 的低电平只对寄存器复位(Q7为低电平),而对锁存器无影响。当输出允许控制OE为高电平时,并行输出(O0-O7)为高阻态,而串行输出(Q7)不受影响。74HC595 最多只需要5 根控制线,即SH_CP、DS、ST_CP、 MR 和OE。其中MR可以直接接到高电平,用软件来实现寄存器清零;把SH_CP、ST_CP、 MR三根线和单片机的P2.0、P2.3、P2.2 口相接,数据从DS 口送入74HC595,在每个SH_CP 的上升沿,DS 口上的数据移入寄存器,在SH_CP的第9 个上升沿,数据开始从Q7 移出。把第一个 74HC595 的 Q7 和第二个 74HC595 的 DS 相连,数据即移入第二个 74HC595 中,照此一个一个接下去,直到接到第 4 个。数据全部送完后,给 ST_CP 一 个上升沿,寄存器中的数据置入锁存器。如果OE 为低电平,数据即从并口Q0-Q7 输出, 把Q0-Q7 与八个LED 相连,LED 就可以实现显示了。图2.32.4 显示模块:显示模块有 32 个 LED 构成,分成 4 行 8 列,每行 8 个,每列 4 个。每个 LED 分别与0.47k的电阻相连,在接上5V电源。当程序烧入单片机,上电后在 595 的驱动下按程序循环显示。图2.42.5 功能按键模块:按键K1采用AT89C52的外部中断0来实现,按键K2、K3、K4、K5、K6通过一个与非门电路采用AT89C52的外部中断1来实现个个功能键。按键电路原理图如下:图2.53 软件设计3.1主程序流程图:系统软件流程图如下图所示。系统上电启动后,LED显示OK,等待按键选择彩灯显示模式。当K3按下,彩灯自动循环显示,当显示OK表示为一个周期。程序流程图如下:开始初始化各模块显示OK判断是哪个显示模式?跳转对应模式子程序显示图3.13.2程序简介本设计用了P2 口的P2.0,P2.1,P2.2 和P2.3来控制74HC595与输出显示数据。程序有主程序,子程序,延时程序。 定 义LED 低电平亮高电平灭。由于显示方式比较多,需要定义一个数组来存放显示数据。当显示方式比较简单逐个点亮时还可以调用流水灯程序段。延时一定时间后按显示数据 依次显示下去直到最后一种显示方式。延时一定时间后循环继续显示。4 彩灯控制系统的仿真:图4.1显示OK图4.2图4.3图4.4图4.55 参考文献:【1】电子驿站. AT89C52中文资料,电子驿站【2】赵全利、肖兴达,单片机原理及应用教程,第二版,北京:机械工业出版社,2012.1【3】潘新民、王燕芳,微型计算机控制技术,第二版,北京:电子工业出版社,2011.1【4】谭浩强,C语言程序设计,第二版,北京:清华大学出版社,2008.11附录1 系统电路图:附录2 源程序:#include#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define BUF_LONG 182unsigned char key=8; ulong data_1;uint spend=0;uint stop=0;sbit ST_CP=P23;sbit SH_CP=P20;sbit MR=P22;sbit DS=P21;sbit TT=P27;sbit SS=P10;void delay_ms(uint);void writ_data(ulong);void int_init();void show0();void show1();void show2();void show3();void show4();void show5();void show6();void show7();void show8();ulong code data_bufBUF_LONG=0xfefefefe,0xfdfdfdfd,0xfbfbfbfb,0xf7f7f7f7,0xefefefef,0xdfdfdfdf,0xbfbfbfbf,0x7f7f7f7f,0xbfbfbfbf,0xdfdfdfdf,0xefefefef,0xf7f7f7f7,0xfbfbfbfb,0xfdfdfdfd,0xfefefefe,0x55aa55aa,0xaa55aa55,0xffffffff,0xfffefeff,0xfffcfcff,0xfff8f8ff,0xfff0f0ff,0xffe1e1ff,0xffc3c3ff,0xff8787ff,0xff0f0fff,0x7f1f1f7f,0x3f3f3f3f,0x1f7f7f1f,0x0fffff0f,0x87ffff87,0xc3ffffc3,0xe1ffffe1,0xf0fffff0,0xf8fefef8,0xfcfefefc,0xfefefefe,0xfcfefefc,0xf8fefef8,0xf0fffff0,0xe1ffffe1,0xc3ffffc3,0x87ffff87,0x0fffff0f,0x1f7f7f1f,0x3f3f3f3f,0x7f1f1f7f,0xff0f0fff,0xff8787ff,0xffc3c3ff,0xffe1e1ff,0xfff0f0ff,0xfff8f8ff,0xfffcfcff,0xfffefeff,0xffffffff,0x55fe7faa,0xaa7ffe55,0xfffffffe,0xfffffefc,0xfffefcf8,0xfefcf8f0,0xfcf8f0e0,0xf8f0e0c0,0xf0e0c080,0xe0c08000,0xc0800000,0x80000000,0x00000000,0x00000001,0x00000103,0x00010307,0x0103070f,0x03070f1f,0x070f1f3f,0x0f1f3f7f,0x1f3f7fff,0x3f7fffff,0x7fffffff,0xffffffff,0xf0ffff0f,0xe1ffff87,0xc3ffffc3,0x87ffffe1,0x0ffffff0,0x1f7ffef8,0x3f7e7efc,0x7e7e7e7e,0xfc7e7e3f,0xf8fe7f1f,0xf0ffff0f,0xe1ffff87,0xc3ffffc3,0x87ffffe1,0x0ffffff0,0x1f7ffef8,0x3f7e7efc,0x7e7e7e7e,0xfc7e7e3f,0xf8fe7f1f,0xf0ffff0f,0xf8fe7f1f,0xfc7e7e3f,0x7e7e7e7e,0x3f7e7efc,0x1f7ffef8,0x0ffffff0,0x87ffffe1,0xc3ffffc3,0xe1ffff87,0xf0ffff0f,0xf8fe7f1f,0xfc7e7e3f,0x7e7e7e7e,0x3f7e7efc,0x1f7ffef8,0x0ffffff0,0x87ffffe1,0xc3ffffc3,0xe1ffff87,0xf0ffff0f,0x55aa55aa,0xaa55aa55,0xffffffff,0x7e7e7e7e,0x3c3c3c3c,0x18181818,0x00000000,0x18181818,0x3c3c3c3c,0x7e7e7e7e,0xffffffff,0x55fe7faa,0xaa7ffe55,0x0000ffff,0xffff0000,0x0f0f0f0f,0xf0f0f0f0,0x0f0ff0f0,0xf0f00f0f,0xf0ffff0f,0xe1ffff87,0xc3ffffc3,0x87ffffe1,0x0ffffff0,0x1f7ffef8,0x3f7e7efc,0x7e7e7e7e,0xfc7e7e3f,0xf8fe7f1f,0xf0ffff0f,0xe1ffff87,0xc3ffffc3,0x87ffffe1,0x0ffffff0,0x1f7ffef8,0x3f7e7efc,0x7e7e7e7e,0xfc7e7e3f,0xf8fe7f1f,0xf0ffff0f,0xf8fe7f1f,0xfc7e7e3f,0x7e7e7e7e,0x3f7e7efc,0x1f7ffef8,0x0ffffff0,0x87ffffe1,0xc3ffffc3,0xe1ffff87,0xf0ffff0f,0xf8fe7f1f,0xfc7e7e3f,0x7e7e7e7e,0x3f7e7efc,0x1f7ffef8,0x0ffffff0,0x87ffffe1,0xc3ffffc3,0xe1ffff87,0xf0ffff0f,0x688a8a68;void main()ulong txdata=0x1;ST_CP=0;SH_CP=0;MR=0;ST_CP=1;ST_CP=0;MR=1;int_init();delay_ms(800);writ_data(0xffffffff);delay_ms(800);while (1) switch (key) case 0: show0(); break; case 1: show1(); break; case 2: show2();break; case 3: show3();break; case 4: show4();break; case 5: show5();break; case 6: show6();break; case 7: show7();break; case 8: show8();break; default : show1(); void writ_data(ulong txdata)uchar i;SH_CP=0;ST_CP=0;for(i=32;i;i-)txdata=1;DS=CY;SH_CP=1;SH_CP=0;ST_CP=1;ST_CP=0;void delay_ms(uint t)uint t1;if(spend=0)for(;t/10;t-)for(t1=20;t1;t1-);else if(spend=1)for(;t/2;t-)for(t1=55;t1;t1-);elsefor(;t;t-)for(t1=110;t1;t1-);void int_init() IT0 = 1; IT1 = 1; EX1 = 1; EX0 = 1; EA = 1; void show0()uchar i,j;while(1)if(key!=0) break;for(i=0;iBUF_LONG;i+)if(i=15|i=56|i=121|i=132)for(j=0;j6;j+)writ_data(data_bufi);delay_ms(400);if(key!=0) break;writ_data(data_bufi+1);delay_ms(400);if(key!=0) break;i+;else writ_data(data_bufi);if(key!=0) break;delay_ms(500);if(key!=0) break;if(key!=0) break;delay_ms(10000);void show1()uchar i;while(1)if(key

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论