24位多态彩灯控制器.docx
- 文档编号:3223632
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:21
- 大小:278.57KB
24位多态彩灯控制器.docx
《24位多态彩灯控制器.docx》由会员分享,可在线阅读,更多相关《24位多态彩灯控制器.docx(21页珍藏版)》请在冰点文库上搜索。
24位多态彩灯控制器
摘要
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
特别是每当节日的到来,节日彩灯更是到处都看的到。
节日彩灯已成为生活中不可缺少的装饰物。
主要用KeiluVision3软件和Protues软件单片机完成,它集中地运用了LED、,自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
关键词:
KeiluVision3软件应用;Protues软件应用;单片机
目录
1任务设计1
1.1设计要求1
1.2实验原理1
1.3方案论证1
2系统电路的设计2
2.1AT89C51单片机硬件结构2
2.1.1主要特性2
2.1.2管脚说明3
2.1.3振荡器特性5
2.1.4芯片擦除5
2.1.5AT89C51最小系统5
2.2电路及连线设计6
3系统软件设计7
3.1程序设计7
3.2系统程序7
4连接调试12
4.1仿真效果图12
总结15
致谢16
参考文献17
1任务设计
1.1设计要求
以单片机为核心,设计一个多态彩灯控制器控制24个LED灯:
P1.2,按此键则LED彩灯开始流动(由上而下)。
P1.3,按此键LED彩灯开始流动(由中间向两边流动)。
P1.4,按此键LED灯由三个组成一组开始流动(由下而上)。
P1.5,按此键则LED彩灯隔一个亮一个(由向上而下流动再由下而上流动)。
1.2实验原理
本题目本质上是由按键控制功能的流水灯,LED工作的方式通过键盘的扫描实现。
其中的LED采取共阳极接法,通过依次向连接LED的I/O口送出低电平,可实现题目要求的功能。
1.3方案论证
方案一
以80C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯流动的方向改变,键一可以使彩灯由上而下开始流动,键二可以使彩灯停止,三号键可以使彩灯由上而下流动,四键则可以使彩灯由下而上流动。
通过按键能方便使用者选择节日彩灯的开启、流动方向和停止。
系统框图如下:
图1.系统框图
方案二
利用模电原理设计,电路用数字电路完成。
结构复杂,以RY169电路为核心,加上发光二极管的特性以及继电器的原理构成,故障系数大,不易调试,成本可能较高。
利用单片机设计电路,由于使用软硬件结合的方式代替了数字电路的复杂性,所以电路结构简单、调试也相对方便,经济实惠。
与第二种方案比较优点是非常明显的。
此彩灯精度较高、造价低廉、装调容易。
因此选择第一种方案来设计。
2系统电路的设计
单片机(SCM)是单片微型计算机(SingleChipMicrocomputer)的简称。
它是把中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及输入输出适配器都集成在一块芯片上,构成一个完整的微型计算机。
随着SCM在技术上、体系上不断扩展其控制功能,国际上已经采用MCU(MicroControllerUnit)代替单片机的名词。
它的最大优点是体积小,可放在仪表内部。
但存储量小,输入输出适配器简单,功能较低。
目前,单片机在民用和工业测控领域得到最广泛的应用,早已深深地融入人们的生活中。
近年来,AT89C51在我国非常流行,它最大的特点是内部有可以多次重复编程的闪烁ROM,并且闪烁ROM可以直接用编程器来擦写(电擦写),使用起来比较方便。
一个单片机应用系统的硬件电路设计包含有两部分内容:
一是系统扩展,即单片机内部的功能单元,如ROM﹑RAM﹑I/O口﹑定时/记数器﹑中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。
二是系统配置,既要按照系统功能要求配置外围设备,如键盘显示器﹑打印机﹑A/D﹑D/A转换器等,又要设计合适的接口电路。
2.1AT89C51单片机硬件结构
AT89C51是一种低功耗/低电压、高性能的八位CMOS单片机,片内有一个4KB的FLASH可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MSC—51兼容。
片内置通用8位中央处理器(CPU)和FLASH存储单元,片内的存储器允许在系统内改编程序或用常规的非易失性存储器编程。
因此,AT89C51是一种功能强、灵活性高且价格合理的单片机,可方便的应用于各种控制领域。
2.1.1主要特性
(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)片内振荡器和时钟电路
2.1.2管脚说明
VCC(40):
供电电压,其工作电压为5V。
GND(20):
接地。
P0端口(P0.0-P0.7):
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,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):
来自反向振荡器的输出。
其引脚图如图2所示。
表1.P3端口引脚兼用功能表
图2.AT89C51引脚图
2.1.3振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.1.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2.1.5AT89C51最小系统
AT89C51最小系统中XTAL1、XTAL2端接上晶振及两个谐振电容,在RESET端接上相应的电阻、电容,如需要按键复位,加上按键即可组成一个最小系统,按要求通电后,系统就可以工作了。
2.2电路及连线设计
将MUC、LED和按键进行电路设计。
打开PROTEUS的ISIS编辑环境,从PROTEUS中选取该电路所需要的元器件,放置元器件、放置电源和地、连线得到如图3所示的电气原理图,再点菜单栏工具下拉的电气规则检查,当规则检查出现:
“NETLISTGENERATEDOKNOERCERRORDFOUND”,表示通过检查。
电路设计完成。
图3电气原理图
3系统软件设计
3.1程序设计
程序设计(Programming)是指设计、编制、调试程序的方法和过程。
它是目标明确的智力活动。
在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。
因此,软件设计在微机控制系统设计中占重要地位。
对于本系统,软件也占有重要的地位。
在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。
数据处理包括:
数据的采集、数字滤波、标度变换等。
过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。
为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。
把一个程序分成具有多个明确任务的程序模块,分别编制、调试后再把它们连接在一起形成一个完整的程序,这样的程序设计方法称为模块化程序设计。
所谓“模块”,实质上就是能完成一定功能,并相对独立的程序段,这种程序设计方法称为模块程序设计法。
模块程序设计法的主要优点是:
(1)单个模块比起一个完整的程序易编写、调试及修改。
(2)程序的易读性好。
(3)程序的修改可局部化。
(4)模块可以共存,一个模块可以被多个任务在不同条件下调用。
(5)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。
本系统软件采用模块化结构,由主程序,正向流动、反向流动和延时等子程序构成。
3.2系统程序
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitP00=P0^0;
sbitP01=P0^1;
sbitP02=P0^2;
sbitP03=P0^3;
sbitP04=P0^4;
sbitP05=P0^5;
sbitP06=P0^6;
sbitP07=P0^7;
sbitP20=P2^0;
sbitP21=P2^1;
sbitP22=P2^2;
sbitP23=P2^3;
sbitP24=P2^4;
sbitP25=P2^5;
sbitP26=P2^6;
sbitP27=P2^7;
sbitP30=P3^0;
sbitP31=P3^1;
sbitP32=P3^2;
sbitP33=P3^3;
sbitP34=P3^4;
sbitP35=P3^5;
sbitP36=P3^6;
sbitP37=P3^7;
sbitsw1=P1^2;
sbitsw2=P1^3;
sbitsw3=P1^4;
sbitsw4=P1^5;
voiddelay(inti)
{
intj;
for(;i>0;i--)
for(j=200;j>0;j--);
}
voidmain()
{
while
(1)
{
if(sw1==0)//顺着亮
{
P00=0;delay(200);P00=1;
P01=0;delay(200);P01=1;
P02=0;delay(200);P02=1;
P03=0;delay(200);P03=1;
P04=0;delay(200);P04=1;
P05=0;delay(200);P05=1;
P06=0;delay(200);P06=1;
P07=0;delay(200);P07=1;
P20=0;delay(200);P20=1;
P21=0;delay(200);P21=1;
P22=0;delay(200);P22=1;
P23=0;delay(200);P23=1;
P24=0;delay(200);P24=1;
P25=0;delay(200);P25=1;
P26=0;delay(200);P26=1;
P27=0;delay(200);P27=1;
P30=0;delay(200);P30=1;
P31=0;delay(200);P31=1;
P32=0;delay(200);P32=1;
P33=0;delay(200);P33=1;
P34=0;delay(200);P34=1;
P35=0;delay(200);P35=1;
P36=0;delay(200);P36=1;
P37=0;delay(200);P37=1;
}
if(sw2==0)//中间往两边亮
{
P23=0;delay(200);P23=1;
P22=P24=0;delay(200);P22=P24=1;
P21=P25=0;delay(200);P21=P25=1;
P20=P26=0;delay(200);P20=P26=1;
P07=P27=0;delay(200);P07=P27=1;
P06=P30=0;delay(200);P06=P30=1;
P05=P31=0;delay(200);P05=P31=1;
P04=P32=0;delay(200);P04=P32=1;
P03=P33=0;delay(200);P03=P33=1;
P02=P34=0;delay(200);P02=P34=1;
P01=P35=0;delay(200);P01=P35=1;
P00=P36=0;delay(200);P00=P36=1;
P37=0;delay(200);P37=1;
}
if(sw3==0)
{
P37=P36=P35=0;delay(200);P37=P36=P35=1;
P34=P33=P32=0;delay(200);P34=P33=P32=1;
P31=P30=P27=0;delay(200);P31=P30=P27=1;
P26=P25=P24=0;delay(200);P26=P25=P24=1;
P23=P22=P21=0;delay(200);P23=P22=P21=1;
P20=P07=P06=0;delay(200);P20=P07=P06=1;
P05=P04=P03=0;delay(200);P05=P04=P03=1;
P02=P01=P00=0;delay(200);P02=P01=P00=1;
}
if(sw4==0)
{
P00=0;delay(200);P00=1;
P02=0;delay(200);P02=1;
P04=0;delay(200);P04=1;
P06=0;delay(200);P06=1;
P20=0;delay(200);P20=1;
P22=0;delay(200);P22=1;
P24=0;delay(200);P24=1;
P26=0;delay(200);P26=1;
P30=0;delay(200);P30=1;
P32=0;delay(200);P32=1;
P34=0;delay(200);P34=1;
P36=0;delay(200);P36=1;
delay(50);
P37=0;delay(200);P37=1;
P35=0;delay(200);P35=1;
P33=0;delay(200);P33=1;
P31=0;delay(200);P31=1;
P27=0;delay(200);P27=1;
P25=0;delay(200);P25=1;
P23=0;delay(200);P23=1;
P21=0;delay(200);P21=1;
P07=0;delay(200);P07=1;
P05=0;delay(200);P05=1;
P03=0;delay(200);P03=1;
P01=0;delay(200);P01=1;
}
}
}
4连接调试
把程序装入单片机后,复位启动。
按P1.2开始,按此键则LED彩灯开始流动(由上而下);按P1.3下,按此键LED彩灯开始流动(由中间向两边流动);按P1.4下,按此键LED灯由三个组成一组开始流动(由下而上);按P1.5下,按此键则LED彩灯隔一个亮一个(由向上而下流动再由下而上流动)。
通过按键能方便使用者选择不同样的亮法。
4.1仿真效果图
图4.1效果图
4.1.1按下P1.2,LED彩灯开始流动(由上而下)。
图4.1.1
4.1.2按下P1.3,LED彩灯开始流动(由中间向两边流动)
图4.1.2
4.1.3按下P1.4,LED彩灯灯由三个组成一组开始流动(由下而上)
图4.1.3
4.1.4按下P1.5,LED彩灯隔一个亮一个(由向上而下流动再由下而上流动)。
图4.1.4
总结
一周的课程设计在不知不觉中就结束了,在本次设计中,通过对KeiluVision3软件和Protues软件的学习,让我对对这两款软件产生很大的兴趣,对创作思想做了引领,在对其绘图过程中队过大量练习从而使知识得到巩固与熟练。
事实告诉我们自己还有好多东西要学,还有好多的东西不懂呢!
因为是一天到晚的不间断训练,所以记的会非常牢固。
在课上,有老师在前面演示我们都还能跟着做,可轮到我们独立完成的时候,因为实际操作的少,早就忘光了!
我很感谢学校有实训这样的安排,把我们这一学期学的东西系统的集中的进行训练,对我们的动手制作能力水平的提高发挥着重要作用!
还要感谢我们的指导老师申红军老师,也很有耐心,即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导。
让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,什么也学不好!
经过这次的课程设计,我真真确确的感受到了单片机的神奇作用!
要多多培养自己的创作能力,其实自己也可以的。
当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己调试的不得体,总是检查不出问题所在。
这时候,老师和同学都会耐心的过来帮助我,帮我们知道问题所在,帮我们解决问题,所以在今后的学习中要多和老师、同学交流,多学实用的东西。
在这次课程设计不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
作为信息时代的大学生,作为国家重点培育的高科技人才,仅会操作鼠标是不够的,基本的动手能力是一切工作和创造的基础和必要条件所以我会更努力的学习,多看书。
致谢
短暂的一周的课程设计转瞬即逝,作为第三次实训,多多少少都获得一些经验,但是还是有一些小错误的地方,在这里我要感谢我的课程设计老师申红军老师,在课程设计过程中,不辞辛劳的帮我们讲解各种注意事项。
从开始的选图,编写任务书,后期调试和报告修改,都是对我们一个个精心指导。
我们的仿真过程中出现了很多问题,但是在申老师的指导下,问题都成为浮云。
除了敬佩申老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。
其次要感谢我的同学们对我无私的帮助,正因为如此我才能完成我的实训。
另外,我还要感谢那些曾给我授过课的每一位老师,是你们教会我专业知识。
在此谢谢每一位任课老师,老师您辛苦了!
参考文献
[1]万隆,巴奉丽.单片机原理及应用技术,清华大学出版社,2010.03
[2]邹丽新,翁桂荣.单片机微型计算机及接口技术,苏州大学出版社,2002.4
[3]十天学会单片机实例100
[4]单片机编程实例大全
[5]MCS-51单片机应用板系统结构说明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 24 位多态 彩灯 控制器