基于单片机的节日彩灯设计解析.docx
《基于单片机的节日彩灯设计解析.docx》由会员分享,可在线阅读,更多相关《基于单片机的节日彩灯设计解析.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机的节日彩灯设计解析
辽宁工业大学
单片机原理及接口技术课程设计(论文)
题目:
基于单片机的节日彩灯设计
院(系):
专业班级:
学号:
学生姓名:
指导教师:
起止时间:
课程设计(论文)任务及评语
院(系):
电气工程学院教研室:
学号
学生姓名
专业班级
课程设计(论文)题目
基于单片机的节日彩灯设计
课程设计(论文)任务
课题完成的功能、设计任务及要求、技术参数
实现功能
采用单片机作为控制器,设计具有多种模式的节日彩灯,以16个发光二极管作为节日彩灯,具有4种灯亮模式,可以通过按键选择彩灯灯亮模式及灯闪的速度,并通过LED数码管显示每种模式号。
设计任务及要求
1、单片机最小系统设计。
2、模式切换、调速按键电路、LED数码管显示电路、16个发光二级管彩灯电路的设计。
3、编写相应的软件,完成控制系统的控制要求。
4、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理;
5、按学校规定的书写格式,撰写、打印设计说明书一份;设计说明书应在4000字以上。
技术参数
模式1:
彩灯常亮、模式2:
彩灯闪烁、模式3:
流水线闪亮、模式4:
单数等闪亮累计5次后,换双数灯闪亮5次,依次交换。
进度计划
1、布置任务,查阅资料,确定系统电路的组成(2天)
2、对系统各功能电路进行设计(2天)
3、整个系统的硬件电路图设计(1天)
4、进行系统软件流程图的设计(1天)
5、程序设计并进行仿真程序调试(2天)
6、撰写、打印设计说明书(1天)
7、答辩(1天)
指导教师评语及成绩
平时:
论文质量:
答辩:
总成绩:
指导教师签字:
年月日
摘要
节日彩灯时生活中常常用到的装饰物品。
由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
它集中地运用了单片机、LED、自动控制等技术,是典型的机遇单片机的电子产品。
彩灯控制电路时近年来随着电子技术发展而产生的一种控制装置。
它能使彩灯按照要求有序地被点亮。
本彩灯控制器可控制八个彩灯的一次点亮,能营造出平面上色彩变化的场景,本电路结构简单适合初学者学习。
本文以AT89C51单片机为控制核心,采用模块化得设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以再彩灯使用的时候选择不同的亮法,使彩灯变化多样,按键一可以使彩灯常亮,按键二可以使彩灯闪烁,三号按键键使流水线亮,四号按键使彩灯单数等闪亮累计5次后,换双数灯闪亮5次,依次交换。
通过按键能方便使用者选择不同样的亮法。
关键词:
LED彩灯;循环;AT89C51
第1章绪论1
第2章课程设计的方案3
2.1概述3
2.2系统组成总体结构3
第3章硬件设计5
3.1单片机最小系统设计5
3.1.1单片机选择5
3.1.2时钟电路设计8
3.1.3复位电路设计8
3.1.4锁存控制电路9
3.1.5单片机最小系统10
3.2按键控制电路11
3.3LED彩灯显示模块12
3.4系统总电路图14
第4章软件设计15
4.1按键扫描子程序设计15
4.2主程序设计16
第5章课程设计总结21
参考文献22
第1章绪论
节日彩灯是生活中常常用到的装饰物品。
它集中地运用了单片机、LED、自动控制等技术,是典型的基于单片机的电子产品。
随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。
在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。
在娱乐方面,场地的装饰离不开彩灯。
在建筑方面也采用彩灯来装饰高楼大厦。
彩灯有灵活多变的点亮方式,装饰效果非常好,特别是晚上似的高楼大厦更加漂亮。
在国内外,微控制系统主要采用单片机作为控制核心。
因此,单片机的发展将有助于简单实用电子产品的开发。
在本设计中,采用比较先进的AT89C51单片机为控制核心,它的功耗很低。
单片机技术发展至今,掌握最先进技术的仍然是国外的几大公司。
如Intel公司发展的MCS-51系列的新一代产品,如8xC152、80C51FA/FB、80C51GA/GB、8Xc451、8Xc452,还包括了Philips、Siemens、ADM、Fujutsu、OKI、Harria-Metra、ATMEL等公司以80C51为核心推出的大量各具特色、与80C51兼容的单片机。
新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现Microcomputer完善的控制功能为己任,可连接一些外部接口功能单元如A/D、PWM、PCA(可编程计数器阵列)WDT(监视定时器)、高速I/O口、计数器的捕获、比较逻辑等。
这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。
Philips公司还为这一代单片机80C51系列8xC52单片机引入了具有较强功能的设备间网络系统总线——CAN(ControllerAreaNetworkBUS)。
由于国内生活水平不断提高,人民向往较佳的生活质素,对灯具灯饰也不断提出了新要求,近年内地灯饰市场有以下情况:
功能细分:
人们要求灯具能符合不同场合,不同照光功能的需求日高,因此适用于各种使用要求的灯具逐应运而生,如学生灯、书写灯、应急灯、日光灯、霞光灯、晚餐灯以及不同高度的落地灯等新品叠出。
高技术化:
由于电子技术被广泛用于灯具的制造,适应不同的电压,使可调节亮度的第三代照光灯具多起来。
无频闪灯、3种波长色谱可调灯,放射远红外光灯等具备保护视力功能的灯具也开始推出市场。
多功能化:
符合当前的消费时尚、集多种功能于一体的灯如床头兼作光敏电话自控灯、带八音盒台灯等,是近年另一需求特点。
节能环保:
新推出的高科技无频闪书写灯,光线平稳并可节能源50%,这种灯具很受消费者的欢迎。
环保是灯具生产技术的崭新主题,显示人们对居室生态环境的重视,这亦是未来家居照明的主要发展方向。
国际灯具行业现代化产品设计的潮流是:
减少产品的尺寸,以减少材料的投入;现代社会对产品的开以制造最重要的着眼点是“经济”和“环境保护”。
照明产品最好能体现这一潮流的是紧凑荧光灯,细管径,超细管径直管荧光灯和无汞的射频(RF)或微波(MW)激发的硫灯。
紧凑型荧光灯直径和尺寸,它们的形式多种多样用途也十分广泛。
一般来说,它们有5倍于白炽灯的光效和8倍于白炽灯的寿命。
因此,它们是绿色照明工程的推荐产品,使用紧凑型荧光灯的灯具也日益多见。
第2章课程设计的方案
概述
本文提出了一种基于AT89C51单片机的彩灯控制方案,实现对LED彩灯的控制。
本方案以AT89C51单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块。
在主控模块上设有4个按键和16个LED显示器,可以有多种闪光模式。
系统组成总体结构
利用单片机设计,框图如图2.1所示
图2.1利用单片机设计结构框图
LED彩灯系统包括5大部分,即闪烁系统,脉冲震荡系统,核心控件(89C51主控模块),复位电路。
主控模块,具有控制功能,闪烁系统是受控模块,上面有16个LED灯及16个电阻。
核心控件主要由89C51芯片组成,是整个彩灯循环系统的核心,是控制彩灯循环闪烁等等一切功能的部件。
复位开关连接控制器的RST端,实现复位控制。
根椐彩灯的亮灭规律,为了便于控制,决定采用移位型系统方案。
即用移位寄存器模块的输出驱动彩灯,彩灯亮,灭和花型的转换通过改变移位寄存器的工作方式来实现。
16路彩灯需要移位寄存器模块的规模为16位,但为了便于实现花型4的演示花型,将其分为左,右两个8位移位寄存器模块LSR8和RSR8。
由按键控制功能的流水灯,其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,可实现题目要求的功能。
第3章硬件设计
单片机最小系统设计
单片机选择
本次设计选择AT89C51。
(1)AT89C51单片机硬件结构:
AT89C51是一种低功耗、低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可变成可擦除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC-51兼容。
片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改变程序或用常规的非易失性存储器编程。
因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。
(2)主要特性:
1.与MCS-51产品指令系统兼容
2.4K字节可编程闪烁存储器
3.寿命:
1000写、擦循环
4.数据保留时间:
10年
5.全静态工作:
0Hz-24Hz
6.三级程序存储器锁定
7.128*8位内部RAM
8.32可编程I/O线
9.两个16位定时器、计数器
10.6个中断源
11.可编程串行通道
12.低功耗的闲置和掉电模式
13.片内振荡器和时钟电路
(3)管脚说明:
VCC(40):
供电电压,其工作电压为5V。
GND(20):
接地。
P0端口(P0.0-P0.7):
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据、地址的第八位。
再LFASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1端口(P1.0-P1.7):
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能够接收4TTL门电流。
P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
再FLASH编程和校验时,P1口作为第八位地址接收。
P2端口(P2.0-P2.7):
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3端口(P3.0-P3.7):
P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。
P3口也可作为AT89C51的一些特殊功能口,如表1所示。
P3口同时为闪烁编程和编程校验接收一些控制信号。
复位RST(9):
复位输入。
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
复位操作不会对内部RAM有所影响。
ALE/
(30):
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
(29):
外部程序存储器的选通信号。
在由外部程序存储器取指令期间,每个机器周期两次
有效。
但在访问外部数据存储器时,这两次有效的
信号将不出现。
EA/VPP(31):
当
保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
将内部锁定为RESET;当
端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1(19):
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2(18):
来自反向振荡器的输出。
其引脚图如图3.1所示。
表3.1P3.6端口引脚兼用功能表
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外中断0)
P3.3
(外中断1)
P3.4
T0(定时、计数0)
P3.5
T1(定时、计数1)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
图3.1AT89C51引脚图
时钟电路设计
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。
时钟电路89C51单片机的时钟信号通常用两种电路形式得到:
内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。
由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
内部振荡方式的外部电路如图3-1所示。
图3-1中,电容器Cl,C2起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。
晶振频率的典型值为12MHz,采用6MHz的情况也比较多。
内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。
图3.2时钟电路
复位电路设计
复位电路电路图如图3.3所示
当89C51单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
常用的上电复位电路电容C1和电阻R1对电源+5V来说[20]构成微分电路。
上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图3.3所示。
图3.3复位电路电路图
开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位常用的上电或开关复位电路。
上电后,由于电容C3的充电和反相门的作用,使RESET持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RESET为一段时间的高电平,从而实现上电或开关复位的操作。
锁存控制电路
其锁存功能利用74LS373来实现,其功能表如表3.2所示,引脚图如图3.4所示
图3.474LS373引脚图
表3.274LS373功能表
输入
输出
输出控制
使能
数据
Dn
LE
OE
On
H
H
L
H
L
H
L
L
X
L
L
Q0
X
X
H
Z*
(1)锁存使能控制端,如图3.4中的LE。
只有当锁存使能信号有效(图3.4是上升沿)时,寄存器才能锁存输入数据(d3d2d1d0),寄存器状态得到更新。
时钟信号经常作为锁存使能端的输入,以便协调时序电路的工作。
(2)控制输入端,
它的作用可同时影响寄存器的多个输出,如图3.4中的CR。
有些控制输入端需要与锁存使能输入端配合才能生效,称这种控制为同步控制。
(3)数据输入端,如图3.4
在微控制器单元(MCU)中,寄存器是十分重要的资源。
寄存器的主要作用是快速寄存算术逻辑运算单元(ALU)运算过程中的数据。
熟悉和了解MCU的寄存器是掌握MCU应用的关键。
MCU内部寄存器的位数通常与MCU的总线宽度相同,如普通51系列单片机的寄存器宽度是8位,嵌入式控制器和DSP处理器的寄存器宽度通常是32位或48位。
单片机最小系统
AT89C51最小系统中XTAL1、XTAL2端接上晶振及两个谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。
单片最小系统图如下:
图3.5单片机最小系统
按键控制电路
本次设计使用二极管作为彩灯,16支彩灯接在了AT89C51的P1口和P0口,这2个接口每一个在接二极管的同时在接一个小电阻,这个电阻在电路中所起的作用是限流电阻,防止电路电流过大,限制电流的作用。
本次设计的按键部分包含四个按键,S0按键直接接在复位电路上,按下S0使彩灯亮,S1使彩灯闪烁,S2使彩灯流水线闪亮,S3使彩灯单数等闪亮累计5次后,换双数灯闪亮5次,依次交换。
图3.6按键电路图
LED彩灯显示模块
LED彩灯显示电路实际上是由16个发光二极管和16个电阻构成的电路。
发光二极管与电阻对应串联,然后接在与之相对应的P0口和P1口上。
通过软件编程对P0口和P1口输出高低电平来实现不同的闪烁花型。
由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100欧姆~3千欧姆在此我们这里选用560欧姆的电阻。
74LS373的输出端O0-O7可直接与总线相连,总线的另一端与单片机的P0.0~P0.7相连。
采用74LS373来传输8位数据,当液晶显示器进行写数据时,三态允许控制端OE为低电平,通过74LS373进行缓存。
当数码管显示器进行读数据,还要通过74LS373进行输出,把存在液晶显示器里的数据传输到单片机中。
数码管显示模块的D1和D8分别与74LS373的Q1到Q8相连来控制数码管显示模块指令寄存器和数据寄存器读写条件。
P0口为双向三态口,用作输出的时候需要接上拉电阻。
74LS373这里的用法是逻辑上透明的,也就是P0输出什么,它也输出什么。
不做锁存。
作用是提高驱动能力。
这样数码管的电流来自373而不是单片机。
数码管是共阴极的。
图3.7LED连接电路
系统总电路图
系统总电路图如图3.8所示:
图3.8系统总电路图
第4章软件设计
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的明灭。
软件编程是多控制、多闪烁方式的LED彩灯系统中的一个重要的组成部分,
按键扫描子程序设计
本设计是以单片机AT89C51为核心控制16个发光二极管4种闪烁方式的变换。
程序启动时跳转到键盘判断模块程序中,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块。
是否有键按下
图4.1按键扫描子系统设计流程图
主程序设计
图4.2主程序流程图
汇编程序如下:
org0000h
ljmpstart
org0003h
ljmpspeedup
org0090h
start:
movIE,#81h
setbIT0
mov60h,#20
movp2,#0ffh
movp3,#0ffh
mov40h,#0
movp0,#0ffh
jnbp1.0,key1
jnbp1.1,key2
jnbp1.2,key3
sjmpstart
key3:
lcallkey33
key1:
movr4,#03h
movp3,#0f2h
key1:
movp0,#0fh
movp2,#32h
lcalldelay
movp0,#00h
movp2,#00h
lcalldelay
sjmpkey1
djnzr4,key11
movp2,#0ffh
movp0,#0feh
lcalldelay
restart1:
movr4,#07h
movr5,#07h
movr3,40h
loop1:
incr3
mova,r3
movdptr,#SEG
movca,@a+dptr
movp2,a
mova,p0
rla
lcalldelay
movp0,a
jnbp1.3,start
djnzr4,loop1
incr3
incr3
loop2:
decr3
mova,r3
movdptr,#SEG
movca,@a+dptr
movp2,a
mova,p0
rra
lcalldelay
movp0,a
djnzr5,loop2
sjmprestart1
ret
key2:
mov40h,#1
movr1,#8h
mova,#0feh
movp0,00h
movp3,#048h
LOOP3:
movp0,a
movr0,a
clra
mova,40h
movdptr,#SEG
movca,@a+dptr
movp2,a
lcalldelay
jnbp1.3,loop5
inc40h
clra
mova,r0
rla
djnzr1,loop3
inc40h
ljmpkey2
key3:
clra
mov40h,#8
movr1,#8h
mova,#07fh
movp3,#60h
loop4:
movp0,a
movr0,a
clra
mova,40h
movdptr,#SEG
movca,@a+dptr
movp2,a
lcalldelay
jnbp1.3,loop5
dec40h
clra
mova,r0
rra
djnzr1,loop4
ljmpkey3
loop5:
jmpstart
SEG:
db0feh,0f2h,48h,60h,32h,24h,04h,0f0h,00h
speedup:
dec60h
dec60h
reti
delay:
movr2,60h
movr6,#25
loop7:
movr7,#25
loop8:
nop
nop
djnzr7,loop8
djnzr6,loop7
djnZr2,loop7
ret
end
第5章课程设计总结
经过几天的努力,完成了单片机的彩灯设计。
过程虽是辛苦的,但从中我却学到了很多东西。
这次课程设计使我意识到理论与实际相结合的重要