单片机控制的循环彩灯控制系统的设计
51单片机彩灯控制器的设计
51单片机彩灯控制器的设计一、设计目的单片机彩灯控制器是一种能够通过控制程序实现RGBLED灯光颜色和亮度变化的设备。
其设计目的是实现LED的多彩灯光效果,丰富室内环境,提高生活品质。
二、硬件设计1.单片机选择在设计彩灯控制器时,我们选择了常用的8051单片机作为控制芯片。
8051单片机拥有丰富的外设资源,易于编程控制,并且具有较高的稳定性和可靠性。
2.RGBLEDRGBLED是一种由红、绿和蓝三个LED灯组成的组合灯,可以通过控制不同颜色的LED来实现丰富多彩的灯光效果。
在设计中,我们选用了高亮度的RGBLED,以确保灯光效果的良好。
3.驱动电路为了驱动RGBLED,我们设计了一套驱动电路,其中包括三个恒流驱动电路和三个PWM调光电路。
恒流驱动电路可以确保LED的电流稳定,而PWM调光电路可以实现LED的亮度调节。
4.控制电路控制电路主要由单片机、按键、显示屏等组成。
通过单片机控制按键输入,并根据用户需求调整LED的颜色和亮度。
同时,显示屏可以实时显示LED的参数信息,方便用户操作。
5.电源彩灯控制器的电源一般采用直流5V供电,可以通过USB接口或者外部电源适配器来供电,以满足不同环境下的使用需求。
三、软件设计1.系统架构我们将彩灯控制器的软件设计分为三个模块:按键输入模块、LED控制模块和显示模块。
按键输入模块负责接收用户的按键输入,LED控制模块根据用户输入控制LED的颜色和亮度,显示模块实时显示LED的参数信息。
2.按键输入模块按键输入模块主要负责检测用户按键的状态,并根据按键的状态进行相应的处理。
例如,当用户按下“颜色+/颜色-”按键时,按键输入模块会向LED控制模块发送指令,控制LED颜色的变化。
3.LED控制模块LED控制模块负责控制RGBLED的颜色和亮度。
当接收到按键输入模块发送的指令时,LED控制模块会根据指令调节LED的PWM值,实现LED 颜色的变化和亮度的调节。
4.显示模块显示模块通过显示屏实时显示LED的参数信息,包括LED的颜色、亮度等参数。
基于AT89S52单片机的简易循环彩灯设计
基于AT89S52单片机的简易循环彩灯控制设计目录绪论 (4)1项目分析 (2)1.1 需求分析 (2)1.2 功能模块分析 (3)1.2.1 系统模块图 (3)1.2.2 外部时钟电路 (3)1.2.3 复位电路 (3)1.2.4 LED驱动电路 (4)1.2.5 最小系统电路 (4)1.3 方案设计 (5)1.3.1 设计方案比较及选择 (5)1.3.2 可行性分析 (5)1.3.3 难点分析及解决方法 (5)1.4 技术性能指标 (6)1.4.1基本要求: (6)1.4.2 彩灯闪烁花型 (6)2 硬件设计 (6)2.1 总体电路图 (6)2.2 电路的工作原理 (7)2.3 元器件及其参数选择 (7)2.4 PCB板的制作 (9)2.5焊接组装 (9)3 电路调试 (10)3.1 静态调试 (10)3.2 通电调试 (10)3.3 故障分析与排除 (10)4 软件设计 (11)4.1 程序设计 (11)4.2 程序功能模块的划分 (11)4.3 程序框架图 (11)4.4 软件程序: (11)4.4 程序调试 (14)4.5 系统仿真 (14)4.6 设计结果评价 (15)5 结语 (15)参考文献 (17)附录: (18)致谢 (19)基于AT89S52单片机的简易循环彩灯控制设计摘要在当代生活里,人们对生活灯饰品的要求越来越高,这样无疑使得各种彩灯成为了最日常生活中不可缺少的装饰品,它不仅能美化都市环境,渲染生活气氛,还可将其用于各种娱乐场所和电子玩具中。
现以本毕业设计为例进行分析与设计简易的可编程的循环彩灯控制电路很多,其组合的方式和运用的集成块的种类及数目更是多种多样,而且还有专门的可编程[9]循的各种复杂程度的循环彩灯控制电路模块。
市场上及大多数的彩灯都是运用各种数字电路来实现的,但本毕业设计在考虑到制作简易程度及成本的前提下,由于单片机具有集成度高、功耗低、运行可靠性强、体积并不大、价格低廉等优点 , 所以特意地运用了单片机、LED等优点及技术,来实现对各种形式不一的各色彩灯的自动简易控制。
循环彩灯控制系统实验报告
循环彩灯控制系统实验报告一、设计要求1、程序中由3个按钮控制每按下一个按钮都会出现不同的彩灯循环现象二、硬件电路设计1、单片机最小系统(2)发光二极管的电路三、软件设计(一)1、在Keil uVision4.LNK上写好程序后通过STC_ISP_V480.exe.lnk和USB口输入到reg52.h单片机中按下开关蓝色指示灯亮,然后按下P3^7按钮发光二极管从左往右依次点亮;2、①在不复位的情况下按下P3^6时发光二极管可以做往返运动依次点亮②在复位时按下P3^6发光二极管是从右往左依次点亮的;3、①在不复位的情况下按下P3^5时发光二极管可以在从左往右或者从右往左点亮后1,3,5,7与2,4,6,8交替闪烁(在看先点亮P3^6还是P3^5 来实现从左还是从右开始循环)②在复位时按下P3^5发光二极管是作1,3,5,7与2,4,6,8交替闪烁。
(二)说明(“0”“1”“2”“3”“4”“5”“6”“7”按键P3^7 0X7F 0XBF 0XDF 0XEF 0XF7 0XFB 0XFD 0XFE 复位P3^6 0XFE 0XFD 0XFB 0XF7 0XEF 0XDF 0XBF 0X7F 复位P3^5 0X7F/0XFF 0XFF/0XBF0XDF/0XFF0XFF/0XEF0XF7/0XFF0XFF/0XFB0XFD/0XFF0XFF/0XFE复位8421码10=A 11=B 12=C 13=D 14=E 15=F四、系统测试步骤1:新建工程→New Project→选择单片机型号→Atmel→AT89C52取名→保存2:新建文档→New file→取名→保存(—3个按键控制两种LED现象.C)3:点右键→Add file to group→选择(—3个按键控制两种LED现象.C)4:点工程右键→options “output”(√)create hex file5产出hex档→编译按钮(↓)(↓↓)(↓↓↓)STC下载软件1:选择单片机型号“STC89C52RC”2:打开文件→(流水灯.hex)3:选择COM口(裝置管理員)4:点下载按鈕→开启电源按钮→“OK 已加密”附录源程序清单#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit key1 =P3^7; //第一个按键sbit key2 =P3^6; //第二歌按键sbit key3 =P3^5; //第三个按键uchar A1=0,A2=0,A3=0;void delay(uint z){uint i,j;for(i=0;i<z;i++)for(j=0;j<110;j++);}void O_to_E() //1,3,5,7与2,4,6,8交替闪烁{P0=0Xaa;delay(200);P0=~0Xaa;delay(200);}{if(!key1){delay(10); //延时if(!key1)A1=1;}if(!key2){delay(10); //延时if(!key2)A2=1;}if(!key3){delay(10); //延时if(!key3)A3=1;}}void main(){uchar i;while(1){if(A1){for(i=0;i<8;i++) //从左往右亮,每盏灯亮一次{P0=~(0x7f>>i);delay(100);}}if(A2){for(i=0;i<8;i++) //从右往左亮,每盏灯亮一次{P0=~(0xfe<<i);delay(100);}}if(A3){O_to_E(); //1,3,5,7与2,4,6,8交替闪烁}}}附加图片(因为手机问题从左往右跟从右往左还有左右往返的看不出来所以就拍了2张图片)1、从左往右、从右往左、往返2、//1,3,5,7与2,4,6,8交替闪烁超。
彩灯循环控制系统设计及实现
彩灯循环控制系统的设计与实现【摘要】本文主要就是结合当下对LED灯的需求,展望了现在的LED灯被应用的情况,提出了现在LED彩灯使用中在硬件层面就固定的灯的花型,不能灵活变化使用的问题。
提出了一个彩灯循环控制的方案。
想要通过计算机程序语言,结合单片机控制来设计一个彩灯循环控制系统。
想要通过硬件的合理选择,还有程序的合理选择来完成一个可以灵活使用的彩灯循环控制系统。
本文通过设计背景的简述开始引入。
然后主要就彩灯循环控制系统的硬件部分的设计使用和选择,还有系统部分的选择使用作出介绍。
最后做了仿真,并根据仿真得出结果。
最后就整个设计做了总结。
【关键词】单片机;LED灯;循环控制系统;C语言;引言我们现在的城市里,越来越多的使用大量的彩灯,或者一些新型装饰材料来美化城市。
正是因为我们的国家现在开始进入到一个全新的发展时期,城市居民衣食温饱的问题已经逐渐的解决,而人们对于文化的需求,对于美的需求却在越来越高。
正是因为这样这样的原因,我们的LED灯就开始大量的使用于我们的城市装饰中。
特别是晚上,彩灯环绕的城市,都是靠我们大量的LED灯在发挥着巨大的作用。
1、彩灯循环控制系统的设计项目的分析1.1循环彩灯控制系统的需求背景我们现在的城市运行中LED灯已经在发挥着巨大的作用。
比如我们的证劵交易市场的大厅里,所有的大屏幕都是用LED灯组成的大屏幕,我们的高速公路上很多的电子告示牌也是LED灯大屏幕,甚至我们现在公交车的尾部同样安装了一些小型的LED灯广告牌,我们的大型公交站,交通信号灯,街边的广告牌,城市高架桥上的提示灯,装饰灯,也都是使用我们的LED灯来组成的。
其实现在个人使用的LED灯装饰也不少了,很多人的汽车,摩托车,电动车都会使用一些LED灯的装饰,所以LED灯的需求还在越来越大。
我们的生活已经离不开这样的一种产品了,它用它的诸多的优势来给我们的生活提供越来越多的便利。
正是因为我们的LED灯有很多的优势,比如LED的使用就非常的符合现在越来越提倡的绿色环保理念。
彩灯循环显示控制电路设计
彩灯循环显示控制电路设计武汉理工大学《数字电子技术》课程设计说明书彩灯循环显示控制电路设计1 原理电路的设计1.1 方案比较方案一:采用单片机做控制电路。
方框图如下:七段数码管单片机最小系统译码器图1 方案一原理方框图电路原理:利用单片机做控制电路,周围接最小系统,使其运行,利用Keil 软件写入程序,输出经译码器送入数码管,使其按要求循环显示即可。
优点:电路的原理及接线等都很简单,易实现。
缺点:单片机芯片较贵,成本较高,且必须利用Keil 软件进行编程,要求必须掌握Keil 软件的应用。
方案二:采用移位寄存器控制四个计数器做总体控制电路。
方框图如下:七段数码管译码器移位寄存器计数器时钟脉冲源图2 方案二原理方框图1武汉理工大学《数字电子技术》课程设计说明书电路原理:利用555 组成的多谐振荡器作为周期可调的时钟脉冲源,以满足功能要求3利用移位寄存器控制四个计数器,将四个计数器的进位信号作为移位寄存器的触发信号,移位寄存器的输出连接到计数器的清零端,使控制信号依次移位,从而让计数器按顺序工作,最后将四个计数器的输出用或门连接,经译码器送入数码管,使其按要求显示。
优点:要求的功能基本上都能实现,且用的芯片比较简单。
缺点:打开后需要用机械开关置数,不符合功能要求中全自动原则,且电路连接较复杂,难实现。
方案三:采用计数器和译码器组成循环控制电路控制四个计数器,作为总体控制电路。
方框图如下:七段数码管译码器循环控制电路计数器时钟脉冲源图3 方案三原理方框图电路原理:除循环控制电路外,其他原理均与方案二相同。
用一个计数器和一个译码器组成,四个计数器的进位信号通过或非门作为循环控制电路的触发信号,循环控制电路的输出连接各个计数器的清零端,使计数器依次工作,输出通过或门连接到译码器上,在数码管上显示出来。
计数器采用十进制,第一个计数器输出直接连接即可显示自然码;第二个输出的最低位连接1 即可显示奇数列;第三个输出的最低位连接0 即可显示偶数列;第四个输出的高位不连接即可显示音乐数列。
基于单片机的彩灯控制器设计
基于单片机的彩灯控制器设计一、引言彩灯是一种可以调节颜色和亮度的灯光装置,被广泛应用于舞台灯光效果、建筑物装饰、商业广告、节日庆典等场合。
传统的彩灯控制器往往依赖于传感器和模拟电路实现,无法快速调节灯光效果,操作不方便。
为了实现更加灵活、方便的彩灯控制,本文将设计一款基于单片机的彩灯控制器。
二、系统设计本彩灯控制器系统设计基于单片机,通过单片机控制器实现对灯光的调节和控制。
系统硬件主要由单片机、彩灯模块、按键开关、显示模块和电源构成,软件主要由单片机程序编写实现。
1.单片机选择单片机是整个系统的核心控制器,选择合适的单片机至关重要。
根据给定的设计要求,选取具有较强处理能力和丰富外设接口的单片机。
一般来说,常用的51系列单片机和STM32系列单片机具备较好的性能和扩展能力。
2.彩灯模块设计彩灯模块是实现灯光调节的核心部分,可以使用RGBLED灯珠或者是WS2812灯带等灯光模块。
通过控制彩灯模块的亮度和色彩来实现不同的灯光效果。
3.按键开关设计通过按键开关来切换不同的灯光模式,实现系统的开关和功能选择。
可以设计多个按键开关,分别对应不同的灯光模式,通过按下不同的按键实现灯光模式的切换。
4.显示模块设计为了方便用户了解灯光的当前状态和模式选择,可以使用OLED显示模块或者数码管显示模块来实现数据的显示。
5.电源设计由于彩灯模块通常需要较高的驱动电流,所以需要提供稳定的电源。
可以采用电池供电或者是AC-DC转换器等方式,确保系统稳定运行。
三、系统实现1.程序设计通过单片机编程实现对彩灯的控制和灯光模式的切换。
根据不同的按键输入,设置对应的灯光参数和模式,通过单片机的I/O接口控制彩灯模块的亮度和色彩。
2.硬件连接按照设计要求,将单片机、彩灯模块、按键开关、显示模块和电源连接起来。
通过对应的引脚和接口进行连接,确保系统正常运行。
四、总结本文设计了一款基于单片机的彩灯控制器,通过单片机编程实现对彩灯的控制和灯光模式的切换。
彩灯循环控制系统设计 精品
彩灯循环控制系统第1章绪论1.1 单片机的简介单片机是单片微型计算机的简称,也就是把微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。
这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
由此来看,单片机是可单独地完成现代工业控制所要求的智能化控制系统,这是单片机最大的特征。
1.2 单片机的应用领域目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用2.在工业控制中的应用3.在家用电器中的应用4.在计算机网络和通信领域中的应用5.单片机在医用设备领域中的应用1.3 单片机的发展趋势现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:1.低功耗CMOS化2.微型单片化3.主流与多品种共存第2章彩灯硬件电路框架设计2.1 彩灯功能描述本次主要完成功能有:(1)当按下开关KEY1时,彩灯依次一个一个点亮。
(2)当按下开关KEY2时,彩灯每两个间隔点亮。
(3)当按下开关KEY3时,彩灯灯全部闪烁。
(4)当按下开关(顺序)时,以上3种点亮方式依次执行一次。
(5)当按下暂停开关时,保持彩灯当前状态,松开开关时,继续运行。
(6)当按下中断开关时,说明彩灯系统出错了,所有红灯亮,喇叭报警。
51单片机彩灯控制器的设计
51单片机彩灯控制器的设计一、引言彩灯控制器是一种用于控制多个彩灯的设备,可以通过控制器改变灯光的亮度、颜色和闪烁等效果。
本文将介绍使用51单片机设计的彩灯控制器。
二、设计目标与需求1.控制多个彩灯:控制器需要具备控制多个彩灯的能力,能够同时控制彩灯开关、亮度和颜色等。
2.节约成本:设计需要尽量简化硬件电路,减少成本。
3.方便使用:控制器需要易于操作,提供用户友好的界面和操作方式。
三、硬件设计1.单片机选择:本设计选择了常用的51单片机作为主控芯片,其具备较强的计算和控制能力。
2.输入设备:采用4x4矩阵键盘作为输入设备,通过矩阵键盘可以方便地输入控制指令和参数。
3.输出设备:使用数字电路和三极管驱动电路实现对多个彩灯的控制,通过PWM技术控制灯光的亮度。
4.通信接口:设计可选装串口通信接口,以便将控制器与其他设备连接。
四、软件设计1.系统框图:彩灯控制器的软件框图如下:```主程序├4x4矩阵键盘扫描功能├彩灯控制函数├开关控├亮度控└颜色控└串口通信功能(可选)```2.矩阵键盘扫描功能:通过扫描矩阵键盘,获取用户输入的按键信息,并根据按键信息触发相应的彩灯控制功能。
3.彩灯控制函数:实现对彩灯开关、亮度和颜色等参数的控制。
-开关控制:根据用户输入的指令,控制彩灯的开关状态。
-亮度控制:使用PWM技术控制彩灯的亮度,根据用户输入的亮度参数设置对应的PWM占空比。
-颜色控制:根据用户输入的颜色参数,控制彩灯的颜色。
可以通过RGB色彩模型实现颜色变化。
4.串口通信功能(可选):通过串口通信接口,实现与其他设备的通信,可以通过串口发送控制指令和接收反馈信息。
五、总结本文介绍了使用51单片机设计的彩灯控制器。
通过合理的硬件设计和软件设计,实现了对多个彩灯的控制。
控制器具备控制开关、亮度和颜色等功能,简化了硬件电路,节约了成本。
同时,控制器还提供了用户友好的界面和操作方式,方便使用。
设计还可选装串口通信接口,实现与其他设备的通信。
单片机节日彩灯控制器设计彩灯控制器
单片机节日彩灯控制器设计彩灯控制器一、设计任务与要求(1)PD0: 开始,按此键则灯开始流动(由上而下);(2)PD1: 停止,按此键则停止流动,所有灯为暗;(3)PD2: 上,按此键则灯由上向下流动;(4)PD3: 下,按此键则灯由下向上流动。
二、方案设计与论证随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响彩灯效果,因此有必要对现有的彩灯控制器进行改进。
本方案主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如图所示,以单片机为核心控制,由单片机最小系统,时钟电路、复位电路、电源、按键控制电路、LED发光二极管和5V直流电源电路组成。
图2 单片机彩灯循环控制系统硬件框图此设计方案中单片机的PD口接4路按键控制电路,实现彩灯花型的切换功能,单片机上的PB口接8路LED发光二极管组成彩灯电路,显示彩灯循环情况。
1图2程序流程图2、键盘设计论证方案一、独立式独立式键盘是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响到其他输入线上的工作状态。
因此,通过检测输入线的电平状态可以很容易判断那个键被按下了。
独立式按键电路配置灵活,软件简单,但每个按键需要占用一根输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。
基于单片机的彩灯循环电路
一、设计目的1. 掌握电子电路的一般设计方法和设计流程;2. 学习使用PROTEL软件绘制电路原理图和印刷板图;3. 掌握应用EWB对所设计的电路进行仿真,通过仿真结果验证设计的正确性。
二、设计要求使用80C51单片机实现彩灯循环电路,彩灯个数为8个。
:①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。
各时序间隔为0.5秒。
让发光二极管按以上规律循环显示下去。
三、设计内容1、设计过程1)定时常数的确定定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
本设计中时钟频率为6.0 MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:机器周期=12÷晶振频率=12/(6×106)=2us设计数初值为X,则(2e+16-X)×2×106=0.1,可求得X=15535化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH2)初始化程序包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP 便不必设置。
3)设计中断服务程序和主程序中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
2、程序设计框图3、功能实现程序OUTPORT EQU 0CFB0HCSEG AT 0000HLJMP STARTCSEG AT 401BH ;定时器/计数器1中断程序入口地址LJMP INTCSEG AT 4100HSTART: MOV A,#01H ;首显示码MOV R1,#03H ;03是偏移量,即从基址寄存器到表首的距离MOV R0,#5H ;05是计数值MOV TMOD,#10H ;计数器置为方式1MOV TL1,#0AFH ;装入时间常数MOV TH1,#03CHORL IE,#88H ;CPU中断开放标志位和定时器;1溢出中断允许位均置位SETB TR1 ;开始计数LOOP1: CJNE R0,#00,DISPMOV R0,#5H ;R0计数计完一个周期,重置初值INC R1 ;表地址偏移量加1CJNE R1,#27H,LOOP2MOV R1,#03H ;如到表尾,则重置偏移量初值LOOP2: MOV A,R1 ;从表中取显示码入累加器MOVC A,@A+PCJMP DISPDB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCHDB 0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEHDB 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFHDB 0EFH,0F7H,0FBH,0FDH,0FEH,00H,0FFH,00HDISP: ;MOV DPTR,#OUTPORT;MOVX @DPTR,AMOV P1,A ;将取得的显示码从P1口输出显示JMP LOOP1INT: CLR TR1 ;停止计数DEC R0 ;计数值减一MOV TL1,#0AFH ;重置时间常数初值MOV TH1,#03CHSETB TR1 ;开始计数RETI ;中断返回END四、原理图和印刷板图图(一)电路原理图表(一)电气元器清单图(二)PCB印制板图图(三)PCB印制板三维图五、设计结论本文就彩灯循环系统的组成原理、实现方案和80C51芯片功能、控制及程序设计做了说明,设计出符合课题要求的循环彩灯系统。
单片机的四开关循环彩灯的设计课程设计
单片机的四开关循环彩灯的设计课程设计一、引言在现代电子技术领域中,单片机是一种功能强大且应用广泛的微处理器。
它具有体积小、功耗低、成本低廉等优点,因此被广泛应用于各种电子设备中。
其中,单片机的四开关循环彩灯设计是一项常见且有趣的课程设计项目。
本文将详细介绍该课程设计的步骤和要点。
二、设计目标本次课程设计旨在通过使用单片机和四个开关来实现一个循环彩灯系统。
具体目标如下:1. 使用四个开关控制不同颜色的LED灯的亮灭;2. 实现循环播放不同颜色的灯光效果;3. 设计简洁、易于理解和操作的系统。
三、硬件设计1. 单片机选择根据设计目标,我们可以选择适合该项目的单片机。
常见的单片机有PIC系列、AVR系列等,这里我们选择使用AVR系列的ATmega16单片机。
2. LED灯和电阻为了实现彩灯效果,我们需要准备四个不同颜色(红色、绿色、蓝色和黄色)的LED灯,并且每个LED都需要连接一个合适的电阻以限制电流。
3. 开关我们需要准备四个开关,每个开关对应一个LED灯。
这些开关用于控制LED灯的亮灭。
四、软件设计1. 系统初始化在程序开始时,我们需要初始化单片机的引脚和寄存器。
具体步骤如下:- 设置引脚方向:将LED灯所连接的引脚设置为输出,将开关所连接的引脚设置为输入。
- 设置初始状态:将所有LED灯关闭。
2. 主循环主循环是整个系统的核心部分,它负责读取开关状态并控制LED灯的亮灭。
具体步骤如下:- 读取开关状态:通过读取每个开关所连接引脚的电平来确定其状态(高电平表示按下,低电平表示未按下)。
- 根据开关状态控制LED灯:根据不同的开关状态来控制对应LED 灯的亮灭。
当按下第一个开关时,打开红色LED;当按下第二个开关时,打开绿色LED;以此类推。
- 实现循环播放效果:在每次循环中依次点亮不同颜色的LED灯,并保持一段时间后熄灭。
五、系统测试在完成硬件和软件设计后,我们需要进行系统测试以验证其功能和稳定性。
循环彩灯控制器的设计课程设计
循环彩灯控制器的设计课程设计设计课程:循环彩灯控制器设计背景:随着科技的发展,彩灯在各种娱乐场所和庆典活动中得到了广泛应用。
为了实现各种炫目的灯光效果,循环彩灯控制器被设计出来。
循环彩灯控制器是一种能够自动控制彩灯变换模式和颜色的设备,它具有多种预设的灯光效果和动画模式,能够实现彩灯的循环变化,给人们带来视觉上的享受。
设计目标:本次课程设计的目标是设计一个简单、实用的循环彩灯控制器。
通过该课程设计,学生将学会使用单片机进行硬件控制和编程,了解彩灯的控制原理和基本的电路设计。
同时,通过实践操作,学生将培养动手能力、创新思维和团队合作精神。
设计内容:彩灯控制器的基本构成单片机:使用ATmega328P单片机作为控制芯片,具有丰富的IO接口和强大的计算能力。
彩灯模块:选择常见的RGB LED灯模块,具有三种基本颜色的LED灯,可以通过改变电流和PWM控制颜色的亮度和混合效果。
电源和电路板:提供稳定的电源和电路板,保证彩灯控制器的正常工作。
硬件设计电路设计:根据彩灯模块的特性,设计相应的电路,包括电源电路、驱动电路和信号输入输出电路。
控制接口设计:设计合适的接口,将单片机与彩灯模块连接起来,实现控制功能。
软件设计单片机编程:使用C语言编程,编写单片机的控制程序,实现彩灯的循环变化、颜色控制和动画效果。
控制算法设计:根据彩灯控制的需求,设计相应的控制算法,实现各种灯光效果和动画模式。
实验操作和测试制作彩灯控制器:学生按照设计要求,进行电路焊接、单片机烧录和程序调试,制作出彩灯控制器。
功能测试与优化:对制作的彩灯控制器进行功能测试,发现问题并进行优化,确保控制器的稳定性和可靠性。
设计成果:通过该课程设计,学生将获得以下成果:彩灯控制器的设计与制作经验,了解彩灯的控制原理和基本的电路设计。
掌握单片机编程技术,能够使用C语言编写控制程序。
培养动手能力和创新思维,通过实践操作提高问题解决能力。
增强团队合作精神,通过小组合作完成课程设计任务。
彩灯循环显示控制系统电路设计
1.摘要彩灯循环控制器主要由三部分组成:振荡电路、计数及译码驱动电路、显示电路。
振荡电路是由555定时器组成的多谐振荡器构成,用于产生时间脉冲;计数电路由74HC160构成,用于电路的计数;译码器主要用于整个电路的循环计数控制;显示电路由七段的数码管构成,用于显示电路的输出结果。
为了实现这个循环输出的功能,在设计的时候用到了一个2线--4线译码器和一个四进制计数器,可以利用它的输出端来控制四个计数器的工作情况,让四个计数器依次工作,以达到要求的依次循环输出数列。
最后就是脉冲的问题,由于在产生奇数列和偶数列的时候要求分频使得数列显示的速度大致相同,因此要分频。
用555构成多谐振荡器产生脉冲,再用一个D触发器实现二分频就可以了。
彩灯循环控制器的作用主要是对现如今非常多的彩灯的运作进行控制的一个电路,具有很广泛的应用,而计数器则在时序电路中应用很广泛,不仅可以用于对脉冲计数,还可以用于分频、定时、产生节拍脉冲以及其他的时序信号。
我们这次的实验准备分三步进行,首先是原理的分析,确定好电路图,然后根据电路图进行仿真,最后是实物的制作与调试,而我在这次课程设计中主要是做的实物,所以对于实物的焊接和调试要了解得多一些.关于焊接,我们准备采用焊锡而不是焊导线,因为导线走的线路并不是十分清晰,而且焊出来并不是十分美观,焊锡的话不仅整个电路的损耗电阻要减小,而且电路的走线清晰美观。
2.主要任务(1)设计并制作一个彩灯循环控制器;(2)用七段LED数码管作为显示元件,它能自动依次显示,出数字0,1,2,3,4,5,6,7,8,9(自然数列),1,3,5,7,9(奇数列),0.2..4.6.8(偶数列)和0,1,2,3,4,5,6,7,0,1(音乐符号数列),然后循环显示自然数列,奇数列,偶数列,符号列……如此循环;(3)设置自动清0电路,打开电源输出状态为0,然后按1变化;设置时基电路为0.5S 到2S围连续可调3.基本组成方框图图1 基本方框图4.设计部分4.1序列产生部分4.1.1自然序列产生部分计数部分主要使用的是74HC160来实现的,其功能表以及引脚图如下图所示。
51单片机彩灯控制器的设计
51单片机彩灯控制器的设计51单片机作为一种非常常见的微控制器,被广泛应用于各种控制系统中。
彩灯控制器是一种常见的应用,通过控制51单片机的IO口来控制彩灯的颜色和亮度,实现彩灯的闪烁、呼吸、渐变等效果。
本文将介绍51单片机彩灯控制器的设计过程。
首先,我们需要明确彩灯控制器的功能需求。
常见的彩灯控制器一般需要具备以下功能:1.控制彩灯的颜色和亮度;2.实现多种灯效,如闪烁、呼吸、渐变等;3.可以通过外部设备(如按钮、遥控器等)进行控制;4.响应外部输入(如声音、光线等)来控制彩灯;5.具备存储功能,保存用户设定的彩灯模式。
根据上述功能需求,我们可以着手进行彩灯控制器的设计。
下面将从硬件设计和软件设计两个方面进行详细介绍。
1.硬件设计:硬件设计包括电路设计和PCB设计两个方面。
电路设计主要是根据51单片机的引脚功能,选择合适的元器件连接到相应的引脚上,以实现各功能模块的电路连接。
常见的彩灯控制器电路包含以下模块:电源供应模块、单片机控制模块、彩灯输出模块、外设接口模块等。
PCB设计则是将电路布板到PCB板上,保证电路的稳定性和可靠性。
2.软件设计:软件设计是51单片机彩灯控制器的核心。
通过编写程序代码,控制单片机的IO口来实现控制彩灯的颜色和亮度,以及各种灯效。
软件设计需要掌握51单片机的编程方法,了解该单片机IO口的使用方法和特点。
在软件设计中,需要通过编程实现以下功能:-通过外部设备输入控制信号,如按钮、遥控器等,来控制彩灯的开关、亮度等;-通过外部输入信号,如声音、光线等,来触发彩灯的相应效果;-实现各种彩灯效果,如闪烁、呼吸、渐变等,通过控制IO口输出信号实现。
除了基本的功能设计,彩灯控制器还可以扩展一些附加功能。
例如,可以通过添加存储模块,实现保存用户设置的彩灯模式,下次开机时可以快速恢复设置。
还可以通过添加无线通信模块,实现远程控制彩灯,或者通过添加传感器模块,实现根据环境变化自动调节彩灯等。
单片机控制的循环彩灯控制系统的设计
LCALL DISP
MOV DPTR,#TABLE
MOVR5,#11
L7: MOVA,#22
SUBBA,R5
LCALLXX
DJNZR5,L7
RET
LP3:MOV27H,#04H ;花形4
LCALL DISP
MOV DPTR,#TABLE
MOVR6,#09ຫໍສະໝຸດ L8:MOVA,#30SETB ET1 ;开INT1中断
SETB EX1
SETB EA
LOOP:LCALL KEY ;调用按键程序
LJMP LOOP
JIAN:JNB P3.2,$ ;取消按键抖动,等待释放
INC 20H ;延时单元加2
INC 20H
MOV A,20H
CJNE A,#14,YY ;判断延时单元是否等于14
MOV A,#14
单片机控制的循环彩灯控制系统的设计
一、实习目的
《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。
1)基本程序模块
延时程序、设置按键处理程序、主程序初始化及初值设定
2)LED控制程序
3)取消按键抖动程序
4)控制程序
2、设计要求
能输出4种花型,并能由人工进行花型的切换。可以使用按键,也可以使用波动1)开关来实现切换,方法不限。
单片机彩灯控制器设计
单片机彩灯控制器设计一、硬件设计1.主控单元选择:主控单元选用常用的单片机芯片,如STC89C52、AT89C52等,这种芯片具有成本低、可靠性高、易于编程等特点。
2.彩灯控制电路:彩灯控制电路可以采用常见的PWM(脉宽调制)电路,其中使用光电隔离器将主控单元与触摸开关进行电气隔离,以提高安全性。
通过PWM电路可以调整RGB(红绿蓝)三种基本颜色的亮度,从而实现多种颜色的组合。
3.连接器和线缆:为了方便安装和更好地布局,可以在控制器外壳上设置合适的连接器,如插头或插座。
使用高质量的线缆连接控制器和彩灯,以确保信号的稳定传输。
二、软件设计1.硬件初始化:在程序开始时,需要对单片机的各个端口进行初始化设置。
如设置I/O口接收和发送数据,设置定时器等。
2.触摸开关控制:通过读取触摸开关状态,可以实现对彩灯的开关、颜色切换等控制。
在触摸开关按下时,单片机可以通过读取触摸开关对应的I/O口电平变化来实现相应的功能。
3.调整亮度:可以通过按下触摸开关不同的次数或按下不同的触摸区域来调整彩灯的亮度。
单片机可以通过改变PWM的占空比来控制彩灯的亮度。
4.调整颜色:通过触摸开关可以实现彩灯颜色的切换。
根据按下的次数或按下的区域,单片机可以改变RGB三个通道的PWM占空比,从而实现不同颜色的混合。
5.模式切换:可以通过触摸开关实现不同的彩灯模式切换,如渐变、闪烁、呼吸等。
单片机可以通过改变PWM的频率和占空比来控制彩灯的亮度和变化速度。
三、应用场景举例1.室内装饰照明:单片机彩灯控制器可以用于室内的装饰照明,如客厅、卧室、书房等。
通过控制器可以实现不同颜色和亮度的灯光效果,营造出不同的氛围。
2.室外建筑照明:单片机彩灯控制器可以用于室外建筑照明,如大楼、桥梁、喷泉等。
可以通过控制器实现彩灯颜色的切换和模式的变化,为夜晚的城市增添美丽的景观。
3.舞台灯光:单片机彩灯控制器可以用于舞台灯光的控制。
可以根据音乐的节奏和舞蹈的动作,通过控制器实现灯光的闪烁、渐变等效果,增加舞台表演的视觉效果。
51单片机彩灯控制器的设计
51单片机彩灯控制器的设计原题要求如下:1.用16盏以上的LED小灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭);2.可以用输入按钮在几种灯光效果间切换;3.可以通过按钮暂停彩灯效果,使小灯全亮,再次按下相同按钮后继续之前的效果;4.增加自动在几种效果间切换的功能,并设置一个按钮可以在自动模式和手动模式间切换;5.使用定时中断延时。
最终作品如下:一共有十钟灯光效果,分别是:顺时针流水灯、逆时针流水灯、交替闪烁、顺时针对角灯、逆时针对角灯、顺时针逐个点亮、顺时针逐个熄灭、逆时针逐个点亮、逆时针逐个熄灭、二进制加法。
程序代码如下:模块名称:51单片机彩灯控制器模块功能:实现十种循环彩灯控制编写日期:2016/12/18****#include<reg51.h># definefalse0# definetrue1# defineucharunsignedchar# defineuintunsignedintsbitpause_key=P3八0;〃暂停按钮sbitauto_key=P3八1;〃手动模式的效果切换sbitchange_key=P3八2;//手动模式效果切换sbitpauseLed=P3八6;〃暂停、启动指示灯sbitautoLed=P3";〃自动、手动模式指示灯intledCode[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//led 段码(单个显示) intledCode2[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//led 段码(半显示半灭) intdisCode[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管段码0~9voiddisplayLed(void);〃显示led 的主函数voidkeyScan(void);//键盘扫描处理函数 voidDelay10ms(unsignedintn);〃延时10msbitisPause=false;//是否暂停bitisAuto =true;//是否自动运行bitisChange =false;//是否要切换下一个效果uchartime;〃计时满0.5suchartypes;//第几种灯光显示方案uintcounts;//灯光的第几个:T0_INT:T0定时器中断函数 :无 :无 voidT0_INT(void)interrupt1{TL0=(65536-50000)/256;* 函数名* 函数功能* 输入* 输出while(1)TH0=(65536-50000)%256;time++;if(time>=10)〃定时时间:0.5s{time=0;if(isChange ==true)//可以变换下一种显示效果了{counts=0;types++;//显示下一种效果if(types>9)types=0;P0=disCode[types];//更新数码管显示isChange=false;}displayLed();counts++;* 函数名* 函数功能* 输入* 输出voidmain(void){ TMOD=0x61;//01100001//方式一TL0=(65536-50000)/256;//50msTH0=(65536-50000)%256;TR0=1;〃开启T0ET0=1;//T0中断允许EA=1;//总中断开启time=0;〃定时器时间扩种(0.5s)counts =0;//灯光的第几次types =0;//灯光显示模式pauseLed=0;//暂停指示灯灭P0=disCode[types];//更新数码管显示:main :主函数 :无 :无keyScan();//键盘扫描及处理voidkeyScan(void){if(pause_key==0)//按下了暂停按钮{Delay10ms(1);if(pause_key==0){isPause=~isPause;pauseLed=isPause;if(isPause==true){日0二0;〃关闭T0中断P0=0xfd;//数码管显示“-”P1=0x00;//所有的灯都亮起来P2=0x00;}else{ET0=1;//T0中断允许P0=disCode[types];//更新数码管显示displayLed();}while(pause_key==0);//防止按键重复检测}}if(auto_key ==0)//自动、手动切换按键按下{Delay10ms(1);if(auto_key==0){isAuto=~isAuto;autoLed=isAuto;}while(auto_key==0);//防止按键重复检测* 函数名 * 函数功能* 输入* 输出:keyScan:键盘扫描处理 :无 :无}if(change_key ==0&&isAuto ==false)//手动模式,并且效果切换按下{Delay10ms(1);if(change_key==0){isChange=true;}while(change_key==0);//防止按键重复检测}}:displayLed:显示led 灯 :(全局变量)types :显示效果;counts:当前效果下的第几次 :无 voiddisplayLed(void){ switch(types){case0://顺时针旋转led 灯{if(counts>=16)counts=0;if(counts>=15){if(isAuto==true)isChange=true;}if(counts<8){P1=0xff;P2=ledCode[7-counts];}else{P1=ledCode[15-counts];P2=0xff;}break;}case1://逆时针旋转LED 灯if(counts>=16)counts=0;if(counts>=15){if(isAuto==true)isChange=true;}if(counts<8){函数名函数功能输入输出P1=ledCode[counts];P2=0xff;}else{P1=0xff;P2=ledCode[counts-8];}break;}case 2://交叉替换{if(counts>=16)counts=0;if(counts>=15){if(isAuto==true)isChange=true;}if(counts%2==0)//偶数{P1=0xaa;P2=0xaa;}else{P1=0x55;P2=0x55;}break;}case 3://对角顺时针{if(counts>=8)counts=0;if(counts>=7){if(isAuto==true)isChange=true;}P1=ledCode[7-counts];P2=ledCode[7-counts];break;}case 4://对角逆时针{if(counts>=8)counts=0;if(counts>=7){if(isAuto==true)isChange=true;}P1=ledCode[counts];P2=ledCode[counts];break;}case 5://顺时针逐个点亮{if(counts>=17)counts=0;if(counts<8){P1=~ledCode2[7-counts];P2=0xff;}elseif(counts<16){P1=0x00;P2=~ledCode2[15-counts];}else//全亮{P1=0x00;P2=0x00;if(isAuto==true)isChange=true;}break;}case 6://顺时针逐个又灭掉{if(counts>=17)counts=0;if(counts<8){P1=ledCode2[7-counts];P2=0x00;}elseif(counts<16){P1=0xff;P2=ledCode2[15-counts];}else//全灭{P1=0xff;P2=0xff;if(isAuto==true)isChange=true;}break;}case 7://逆时针逐个点亮{if(counts>=17)counts=0;if(counts<8){P1=0xff;P2=ledCode2[counts];}elseif(counts<16){P1=ledCode2[counts-7];P2=0x00;}else//全亮{P1=0x00;P2=0x00;if(isAuto==true)isChange=true;}break;}case 8://逆时针逐个灭掉{if(counts>=17)counts=0;if(counts<8){P1=0x00;/* *P2=~ledCode2[counts];}elseif(counts<16){P1=~ledCode2[counts-7];P2=0xff;}else//全亮{P1=0xff;P2=0xff;if(isAuto==true)isChange=true;}break;}case9://二进制加法{if(counts>=255)counts=0;if(counts==254&&isAuto==true)isChange=true;P1=~counts;P2=~counts;break;}default:types=0;P0=disCode[types]; //更新数码管显示函数名函数功能输入输出:Delay10ms(多个):延时函数,延时n*10ms :n-延时次数:无voidDelay10ms(unsignedintn){ unsignedchara,b;for(;n>0;n--){for(b=38;b>0;b-)(for(a=l30;a>0;a-);)))完整prot㊀us仿真图如下:HJ nwrwjMlI.H£>1ra_JLWD3E.4^gEJ5WTrn加RM PD*卬PlOMfi:P2tgPi l^Ki k?Awnr::±M-I3riA*.<A叼才FLIEM■=:1--■rj T J I HT TP3.4HQF31TI1F%弱斫阳丁敬。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SETB EX1
SETB EA
LOOP:LCALL KEY ;调用按键程序
LJMP LOOP
JIAN:JNB P3.2,$ ;取消按键抖动,等待释放
INC 20H ;延时单元加2
INC 20H
MOV A,20H
CJNE A,#14,YY ;判断延时单元是否等于14
MOV A,#14
1)基本程序模块
延时程序、设置按键处理程序、主程序初始化及初值设定
2)LED控制程序
3)取消按键抖动程序
4)控制程序
2、设计要求
能输出4种花型,并能由人工进行花型的切换。可以使用按键,也可以使用波动1)开关来实现切换,方法不限。
参考花型:
(1)使彩灯从右到左逐一循环点亮。
(2)使彩灯交替闪烁。
(3)使彩灯从左到右逐一点亮,当全部点亮后同时闪烁一次。
YY: MOV 20H,A
RETI
JIA: JNB P3.3,$ ;取消按键抖动,等待释放
DEC 20H ;延时单元减2
DEC 20H
MOV A,20H
JNZ YY ;判断延时单元是否等于0
MOV A,#02
MOV 20H,A
RETI
KEY:MOV A,P3 ;按键程序
ANL A,#03H
MOV 19H,A ;初始化19H
SUBBA,R6
LCALLXX
DJNZR6,L8
RET
XX: MOVCA,@A+DPTR ;查表
MOVP1,A
LCALL DEL1S ;调用延时程序
RET
DEL1S: JNB P3.4,$;判断是否需要暂停
MOV A,P3
ANL A,#03H
CJNE A,19H,PP ;判断花形是否改变
MOVR2,20H ;延时程序
表1.1拨动开关与对应的花型
K1
K2
花型
0
0
花型1
0
1
花型2
1
0
花型3
1
1
花型4
表1.2拨动开关功能表
K3
功能
K4
功能
K5
功能
0
加速无效
0
减速无效
0
暂停
1
加速
1
减速
1
启动
(3)8051通过8155对LED显示器控制显示相应的花型编号。
(4)利用软件子程序或单片机内部的定时/计数器实现定时功能,以模拟循环速度的基准值。
单片机控制的循环彩灯控制系统的设计
一、实习目的
《单片机原理与接口技术》课程实习安排在该课程理论教学结束后进行。其目的是通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/计数控制、程序设计、应用开发等基本理论知识的理解,提高单片机应用技术的实践操作技能,掌握单片机应用系统设计、研制方面的一般方法,培养利用单片机进行科技革新、开发和创新的基本能力、为毕业后从事和单片机相关的工作打下一定的基础。
LCALL DISP
MOV DPTR,#TABLE
MOVR4,#09
L6:MOVA,#09
SUBBA,R4
LCALLXX
DJNZR4,L6
RET
LP1: MOV27H,#02H ;花形2
LCALL DISP
MOV DPTR,#TABLE
MOVA,#09H
LCALLXX
MOVA,#10
LCALLXX
RET
(4)使彩灯从两边到中间顺序点亮,直至全部点亮;再将彩灯从中间到两边熄灭,直至全部熄灭。
2)循环彩灯的循环速度可调。
按键要求:
(1)启动/暂停。按动一次启动,再按一次暂停。是一个双态转换键。
(2)花型变化。按一次,立即停止当前花型的显示,转换为下一种花型。4种花型可以循环切换。
(3)速度+。按键一次,速度略加快一点。
二、实习内容
利用TDN86/51二合一微机实验教学系统设计一个用8051单片机控制的循环彩灯控制系统。
三、实习器材
TDN86/51二合一微机实验教学系统1台,配套计算机一台,连接导线若干。
四、系统仿真图
五、软件流程图
Ni d
选择花型
调速
否否
是否
是
是否是否
00 01 10 11
六、程序设计
1、程序是按照模块化设计的,一共分为四大模块
八、实验总结
通过这几天的实训,我对单片机有了更深的体会。了解和掌握了一些编程思想和对I/O口得使用。本次做的控制循环彩灯控制系统的设计是以单片机8051为核心,结合相关的元器件(共阴极LED数码显示器、通用I/O接口芯片8155等),再配以相应的软件,达到实现LED二极管的发光功能,也具有改变彩灯的花样、彩灯的暂停、彩灯的加减速功能。在软件调试的过程中,遇到很多困难,第一次实现了彩灯的花样变化,未能进行加减速的调整,后来经过调试后基本达到要求,但当减速见到一定程度后就不明显了,花形3全亮后左右最边亮灯没有灭,花形2时LED数码显示器上显示的不是“2”字,字码表上明明是“5BH”(共阴极)但是显示的“2”字多了一点。尽管这次的单片机课程设计还存在一些瑕疵但经过自己的努力制作出了彩灯的循环控制,也让自己对单片机有了更大的兴趣。
4、实验程序如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP JIAN
ORG 0013H
LJMP JIA
ORG 1000H
MAIN:MOV SP, #60H
MOV 20H,#8 ;初始化20H
MOV P1,#0FFH ;初始化P0口
SETB ET0 ;开INT0中断
SETB EX0
通过这次的设计使我认识到我对单片机方面的知识学习得不够透彻,对书本上的很多知识还不能灵活的运用,有很多我们需要掌握的知识在等着我去学习,在以后的学习生活中弥补所缺失的知识。这次实训使我对于软件的设计运用有了一定的了解,从程序设计到调试,再到装载到硬件电路中运行。
最重要的一点是自己的动手能力的提高。作为一个高职学生动手能力差是不行的,相比本科理论知识有所欠缺,这样就不利于我们以后到社会中的工作。提高动手能力,毕业后能够更快的适应工作。
D1:MOVR3,#30
D2:MOV R1,#120
DJNZ R1,$
DJNZ R3,D2
DJNZ R2,D1
RET
PP:LJMPLOOP
SEGTAB: DB 3FH,06H,5BH,4FH,66H
TABLE:
DB 0FFH
DB0FEH ,0FDH ,0FBH ,0F7H ,0EFH ,0DFH ,0BFH ,07FH;花形1字码
LP2:MOV27H,#03H ;花形3
LCALL DISP
MOV DPTR,#TABLE
MOVR5,#11
L7: MOVA,#22
SUBBA,R5
LCALLXX
DJNZR5,L7
RETLP3:MOV27H,04H ;花形4LCALL DISP
MOV DPTR,#TABLE
MOVR6,#09
L8:MOVA,#30
MOVX@DPTR,A
MOV A,R2
MOV DPTR,#8001H
MOVX @DPTR,A
MOV R3,#00H
DISP3: DJNZ R3,DISP3
INC R0
RR A
MOV R2,A
JB ACC.7,DISP1
RET
PUTT: MOV R1,A
ANL A,#0FH
MOV @R0,A
RET
LP0: MOV 27H,#01H ;花形1
CJNE A,#00H,L1
LJMP LP0 ;选择花形1
L1: CJNE A,#01H,L2
LJMP LP1 ;选择花形2
L2: CJNE A,#02H,L3
LJMP LP2 ;选择花形3
L3: LJMP LP3 ;选择花形4
DISP: MOV A,#03H ;显示程序
MOV DPTR,#8000H
MOVX @DPTR,A
MOV R0,#4FH
MOV A,27H
ACALL PUTT
MOV R0,#4FH
MOV R2,#0FEH
DISP1: MOV DPTR,#8002H
MOV A,#00H
MOVX @DPTR,A
MOV A,@R0
MOV DPTR,#SEGTAB
MOVC A,@A+DPTR
MOV DPTR,#8002H
(4)速度-。按键一次,速度略减慢一点。
3)在LED显示器上显示相应的花型号。
3、系统总体设计
充分利用TDN86/51二合一微机实验教学系统的硬件资源来实现循环灯的功能,因此:
(1)利用8051的P1端口接发光二极管,以模拟彩灯控制。
(2)利用8051的P3端口接拨动开关;利用拨动开关提供逻辑0和逻辑1,模拟按键操作,以实现4种花型之间的切换、加快循环速度、减慢循环速度以及暂停循环灯循环等操作,具体定义如表1.1和表1.2所示。
DB 0AAH,55H;花形2字码
DB7FH,3FH,1FH,0FH,07H,03H,01H,00H,0FFH,00H ;花形3字码
DB7EH,3CH,18H,00H,18H,3CH,7EH,0FFH ;花形4字码
DB 00H
END
七、进行软、硬件的调试过程
将程序装载进MD51,调试检查有没有错误,生成HEX文件,装载进8031内,装载成功后,输入G=0000按回车运行,看LED数码显示器显示花形号,二极管按花型的设计亮起。没有装载成功按复位键重装。