基于51单片机的循环彩灯控制设计

合集下载

基于单片机控制的节日彩灯控制课程设计

基于单片机控制的节日彩灯控制课程设计

课程设计题目基于51单片机的节日彩灯设计学院物流工程学院专业物流工程班级姓名同组者指导教师月日附件2:课程设计任务书学生姓名:专业班级:指导教师:工作单位:物流工程 __题目: 单片机节日彩灯控制器初始条件:1.Protues 7 professional的ISIS 7 professional和ARES 7 professional软件2.Keil uvision4软件3.单片机的相关资料指导书要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)设计一个节日彩灯控制器,实现不同的闪烁方式,要求:(1)P3.3: 开始,按此键则灯开始流动(由上而下);(2)P3.2: 停止,按此键则停止流动,所有灯为暗;(3)P3.1: 上,按此键则灯由上向下流动;(4)P3.0: 下,按此键则灯由下向上流动。

时间安排:十八周到十九周设计,十九周答辩指导教师签名:年月日系主任(或责任教师)签名:年月日附件3:武汉理工大学课程设计教学检查记录表课程设计名称设计周数检查日期课程设计指导教师进行方式:集中□分散□.地点检查人附件6:本科生课程设计成绩评定表指导教师签字:年月日摘要 (1)1 设计任务 (2)2 总体方案设计与论证 (3)2.1 方案比较 (3)2.2 方案论证 (4)2.3 方案选择 (4)3 系统硬件设计 (5)3.2 单片机最小系统设计 (5)3.3 LED彩灯显示电路设计 (6)3.4 按键控制电路设计 (6)4 系统的软件设计 (8)4.1 按键扫描子程序设计 (8)4.2 主程序设计 (8)参考文献 (11)彩灯是我国普遍流行的传统的民间的综合性的工艺品。

彩灯艺术也就是灯的综合性的装饰艺术。

新中国成立后,彩灯艺术得到了更大的发展,特别是随着我国科学技术的发展,彩灯艺术更是花样翻新,奇招频出。

而随着人们生活环境的不断改善和美化,在许多节日的气氛里可以看到彩色霓虹灯,这种LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。

51单片机彩灯控制器的设计

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的颜色、亮度等参数。

51单片机彩灯课程设计

51单片机彩灯课程设计

51单片机彩灯课程设计一、课程目标知识目标:1. 理解51单片机的基本原理,掌握其内部结构及功能;2. 学习并掌握C语言编程基础,能编写简单的程序控制51单片机;3. 掌握51单片机I/O口的应用,理解彩灯电路的原理及程序设计方法;4. 了解电子元器件的选择原则,能正确选用元器件并进行电路搭建。

技能目标:1. 能够运用C语言编写51单片机控制彩灯的程序;2. 学会使用相关开发工具和调试设备,具备独立搭建和调试彩灯电路的能力;3. 提高动手实践能力,培养解决实际问题的能力。

情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学习热情;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 培养学生严谨、细致、勇于创新的科学态度,增强自信心。

本课程针对高年级学生,结合学科特点,注重理论与实践相结合,旨在提高学生的编程能力、动手实践能力和创新能力。

通过课程学习,使学生能够独立完成51单片机彩灯的设计与制作,为后续深入学习电子技术打下坚实基础。

二、教学内容1. 51单片机原理及结构:介绍51单片机的内部结构、工作原理及特点,使学生了解单片机的基本组成和功能。

教材章节:《单片机原理与应用》第一章。

2. C语言编程基础:学习C语言的基本语法、数据类型、运算符、控制语句等,为编写单片机程序打下基础。

教材章节:《C语言程序设计》第一章至第四章。

3. 51单片机I/O口应用:讲解51单片机I/O口的使用方法,分析彩灯电路原理,使学生掌握I/O口编程及电路设计。

教材章节:《单片机原理与应用》第三章。

4. 彩灯程序设计:学习彩灯控制程序编写方法,包括流水灯、闪烁灯等效果的设计与实现。

教材章节:《单片机原理与应用》第四章。

5. 电子元器件选择与电路搭建:介绍常用电子元器件,学习元器件的选择原则,掌握电路搭建方法。

教材章节:《电子技术基础》第一章。

6. 开发工具与调试:学习使用51单片机开发工具(如Keil、Proteus等),掌握程序下载、调试及排错方法。

基于51单片机的楼体彩灯控制系统毕业论文.doc

基于51单片机的楼体彩灯控制系统毕业论文.doc

基于51单片机的楼体彩灯控制系统摘要随着社会的进步,人们的审美眼光不断提升,城市的景观建设也备受人们重视。

房地产的崛起让城市的楼层越来越高,单调的混凝土让城市的夜晚变得单调。

然而,伴随着城市越来越多的工程亮化工作的增多,越来越多的城市面积扩大,集中性的维护以及管理城市以及景观的亮化工作也变得越来越迫切,常常有不少城市的楼体亮化或景区的亮化在平常时不愿意开启,只有周末或者在国家法定节假日开启,这样一来更加造成了维护人员的困难。

基于51单片机的楼体彩灯控制系统,其总体架构是由一个51主控板采用80C51和多个51单片机控制节点所组成,主控板通过无线发射模块发射信号给子节点,子节点收到信号后通过MCU的I/O口来控制继电器来实现远程控制楼体彩灯开关,与此同时,子节点单片机将此节点彩灯的开关信号发送给主控板。

其中主控板用来处理复杂的子节点信号,通过内部算法进行实时有效的控制整栋楼甚至是多栋楼的亮灯效果。

伴随着科技的进步计算机在社会各个方面开始大规模应用,单片机随着集成电路的发展越来越便捷,操作更加简单,体积越来越小,功能越来越多,在生活上的应用随处可见。

更是随着智能家居的口号越来越响,单片机和A/D 芯片应用更是与日俱增。

如何让楼体彩灯控制智能化,引发了我们的思考。

本文阐述了以MCS-51单片机为核心控制的楼体亮化系统的设计方案。

该设计方案能够智能化控制楼体彩灯,极大的节省了人力成本,并且能很好的实现楼体美化以及很好的广告效果。

关键词:MCS-51单片机楼体彩灯控制系统无线发射模块THE CONTROL CYSTERMOF FLOOR LANTERN BASEDON 51 MCUABSTRACTAs society progresses, people's aesthetic vision of continuous improvement, construction of urban landscape has attracted much attention. Rising real estate make the city more and more high floor, monotonous concrete to make the city at night becomes monotonous. However, with the increasing number of urban lighting engineering work increased, more and more cities expand the area of concentration of maintenance and management of urban and landscape lighting has also become more and more urgent, and often there is not House of the city's less scenic lighting lighting or unwilling to open during normal, open only on weekends or during a national holiday, so to create a more difficult maintenance personnel.51 microcontroller-based floor Lottery light control system, the overall architecture is composed of a 51 MPUs 80C51 MCU control node and a plurality of 51 composed of the main control board transmit signals through the wireless transmitter module to a child node, the child node receives a signal after the adoption of the MCU I / O port to control relay to remote control building Lottery light switch, at the same time, the child nodes of this node lights switch MCU signal to the control board. Wherein the main control board for processing complex signals child nodes, through effective internal algorithms for real-time control of the whole building and even more building's lighting effects.With the advancement of computer technology began large-scale applications in all aspects of society, with the development of single-chip integrated circuits more and more convenient, easier operation, smaller and smaller, more and more functions, used in daily life can be seen everywhere . With the smart home is getting louder and louder slogan, microcontroller and A /D chip applications is increasing. How to make floor lamps Lottery intelligent control, led us to thinking. In this paper, with MCS-51 microcontroller as the core control of the House of lighting system design.This design can be intelligently controlled House Lottery lights, greatly save labor costs, and can achieve a good building body beautification and good advertising effect.KEY WORDS:MCS-51 microcontroller House Lottery light control system Wireless transmitter module目录前言 (1)第1章绪论 ....................................................错误!未定义书签。

基于单片机的彩灯控制器的设计(24个LED灯)

基于单片机的彩灯控制器的设计(24个LED灯)

任务书以单片机为核心,设计一个节日彩灯控制器控制24个LED灯:P1.2—开始,按此键则灯开始流动(由上而下)。

P1.3—停止,按此键则停止流动,所有灯为暗。

P1.4—上,按此键则灯由上向下流动。

P1.5—下,按此键则灯由下向上流动。

目录1.引言2.工艺过程3.系统控制要求4.方案论证5.系统电路设计6.系统软件设计7.系统程序设计8.连接调试9.心得10.致谢11.参考文献附录1.引言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。

特别是每当节日的到来,节日彩灯更是到处都看的到。

节日彩灯已成为生活中不可缺少的装饰物。

它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。

本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。

按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次循环点亮,健二可以使彩灯从左到又从右到左循环点亮,三号键使两端灭,中间亮,再对半交替亮,然后再奇偶亮。

通过按键能方便使用者选择不同样的亮法。

节日彩灯使生活中常常用到的装饰物品,是我国普遍流行的传统的民间的综合性的工艺品。

彩灯艺术也就是灯的综合性的装饰艺术。

在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。

彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化,它集中地运用了单片机、LED、,自动控制等技术,是典型的基于单片机的电子产品。

本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。

按P1.2键使灯开始流动;按P1.3键则停止流动;按P1.4键则灯由上向下流动;按P1.5键则灯由下向上流动。

毕业设计(论文)-基于51单片机的音乐彩灯设计-毕业设计

毕业设计(论文)-基于51单片机的音乐彩灯设计-毕业设计

毕业设计(论文)-基于51单片机的音乐彩灯设计-毕业设计扬州工业职业技术学院毕业论文扬州工业职业技术学院2009 2010 学年第二学期毕业设计课题名称:基于51 单片机的音乐彩灯设计设计时间: 2009 年12 月系部:电子信息工程系班级:姓名:指导教师:1 扬州工业职业技术学院毕业论文总目录第一部分任务书第二部分开题报告第三部分毕业设计正文2扬州工业职业技术学院毕业论文第一部分任务书3扬州工业职业技术学院毕业论文扬州工业职业技术学院毕业设计任务书电子信息系部指导老师职称工程系学生姓名班级学号设计题目基于51 单片机的音乐彩灯设计1、主要内容本毕业设计是以单片机AT89C52 为基础,通过LED,数码管,喇叭等进行展示,然后用Keil 软件编写单片机端通信程序,实现多模式彩灯和音乐的结合。

通过本设计旨在让学生要将单片机的硬件知识与软件知识融会贯通,设计出实用的系统。

培养学生独立分析问题,综合运用知识解决实际问题的能力。

通过本题的设计和调试,使学生巩固所学的理论知识,增强设计动手能力,提高学生的创新能力和工程素质。

内容 2、主要技术指标1)系统电源电压:+5V±5%目标2)单片机及外围芯片工作电压:+5V±5%和 3)单片机选型:MCS-51 系列单片机4)软件开发环境:Keil uvision2要求5)计时时间产生方式:定时器中断方式获取二、毕业设计的基本要求1 收集、整理与毕业设计有关领域的信息资料2 完成本毕业设计方案和结构框图的设计;3 完成本毕业设计电路原理图设计。

4 完成本毕业设计程序流程图和汇编语言源程序设计5 完成软件和硬件系统的调试,功能指标达到技术要求;4扬州工业职业技术学院毕业论文6 程序清单和图样资料;7 作品及照片;8)形成符合学校规定的毕业设计书面文档;三、毕业论文(设计)进度安排第一阶段 2009 11 月21 日 - 2010 1月 20 日选题、调研、收集资料、论证、开题第二阶段 2010 2 月20 日 - 20104 月 20 日方案、电路、硬件、软件设计第三阶段2010 4 月21 日- 2010 5 月 10 日软硬件调试、写作初稿第四阶段2010 5 月10 日- 2010 6 月 15 日修改、定稿、打印、答辩四、毕业设计提交的成果1 开题报告2 设计说明书3 图样资料a 系统原理图;b 硬件电路图;c 软件流程图;4 中、英文摘要(中文摘要约200 字,3―5 个关键词)查阅文献不少于8 篇教研室系部审核审核5扬州工业职业技术学院毕业论文第二部分开题报告扬州工业职业技术学院电子信息工程系 10届6扬州工业职业技术学院毕业论文毕业设计(论文)开题报告书(表 1)毕业设计(论文)开题报告书(表 1)学生姓专业应用电子班级学号名题基于51 单片机的音乐彩灯设计目指导教职称教师学位师题目类□工程设计□基础研究□应用研究□其它别【题的内容与要求】以单片机AT89C52 为基础,通过LED,数码管,喇叭等进行展示,然后用Keil软件编写单片机端通信程序,实现多模式彩灯和音乐的结合。

基于单片机的彩灯控制器设计

基于单片机的彩灯控制器设计

基于单片机的彩灯控制器设计一、引言彩灯是一种可以调节颜色和亮度的灯光装置,被广泛应用于舞台灯光效果、建筑物装饰、商业广告、节日庆典等场合。

传统的彩灯控制器往往依赖于传感器和模拟电路实现,无法快速调节灯光效果,操作不方便。

为了实现更加灵活、方便的彩灯控制,本文将设计一款基于单片机的彩灯控制器。

二、系统设计本彩灯控制器系统设计基于单片机,通过单片机控制器实现对灯光的调节和控制。

系统硬件主要由单片机、彩灯模块、按键开关、显示模块和电源构成,软件主要由单片机程序编写实现。

1.单片机选择单片机是整个系统的核心控制器,选择合适的单片机至关重要。

根据给定的设计要求,选取具有较强处理能力和丰富外设接口的单片机。

一般来说,常用的51系列单片机和STM32系列单片机具备较好的性能和扩展能力。

2.彩灯模块设计彩灯模块是实现灯光调节的核心部分,可以使用RGBLED灯珠或者是WS2812灯带等灯光模块。

通过控制彩灯模块的亮度和色彩来实现不同的灯光效果。

3.按键开关设计通过按键开关来切换不同的灯光模式,实现系统的开关和功能选择。

可以设计多个按键开关,分别对应不同的灯光模式,通过按下不同的按键实现灯光模式的切换。

4.显示模块设计为了方便用户了解灯光的当前状态和模式选择,可以使用OLED显示模块或者数码管显示模块来实现数据的显示。

5.电源设计由于彩灯模块通常需要较高的驱动电流,所以需要提供稳定的电源。

可以采用电池供电或者是AC-DC转换器等方式,确保系统稳定运行。

三、系统实现1.程序设计通过单片机编程实现对彩灯的控制和灯光模式的切换。

根据不同的按键输入,设置对应的灯光参数和模式,通过单片机的I/O接口控制彩灯模块的亮度和色彩。

2.硬件连接按照设计要求,将单片机、彩灯模块、按键开关、显示模块和电源连接起来。

通过对应的引脚和接口进行连接,确保系统正常运行。

四、总结本文设计了一款基于单片机的彩灯控制器,通过单片机编程实现对彩灯的控制和灯光模式的切换。

51单片机彩灯控制器的设计

51单片机彩灯控制器的设计

51单片机彩灯控制器的设计一、引言彩灯控制器是一种用于控制多个彩灯的设备,可以通过控制器改变灯光的亮度、颜色和闪烁等效果。

本文将介绍使用51单片机设计的彩灯控制器。

二、设计目标与需求1.控制多个彩灯:控制器需要具备控制多个彩灯的能力,能够同时控制彩灯开关、亮度和颜色等。

2.节约成本:设计需要尽量简化硬件电路,减少成本。

3.方便使用:控制器需要易于操作,提供用户友好的界面和操作方式。

三、硬件设计1.单片机选择:本设计选择了常用的51单片机作为主控芯片,其具备较强的计算和控制能力。

2.输入设备:采用4x4矩阵键盘作为输入设备,通过矩阵键盘可以方便地输入控制指令和参数。

3.输出设备:使用数字电路和三极管驱动电路实现对多个彩灯的控制,通过PWM技术控制灯光的亮度。

4.通信接口:设计可选装串口通信接口,以便将控制器与其他设备连接。

四、软件设计1.系统框图:彩灯控制器的软件框图如下:```主程序├4x4矩阵键盘扫描功能├彩灯控制函数├开关控├亮度控└颜色控└串口通信功能(可选)```2.矩阵键盘扫描功能:通过扫描矩阵键盘,获取用户输入的按键信息,并根据按键信息触发相应的彩灯控制功能。

3.彩灯控制函数:实现对彩灯开关、亮度和颜色等参数的控制。

-开关控制:根据用户输入的指令,控制彩灯的开关状态。

-亮度控制:使用PWM技术控制彩灯的亮度,根据用户输入的亮度参数设置对应的PWM占空比。

-颜色控制:根据用户输入的颜色参数,控制彩灯的颜色。

可以通过RGB色彩模型实现颜色变化。

4.串口通信功能(可选):通过串口通信接口,实现与其他设备的通信,可以通过串口发送控制指令和接收反馈信息。

五、总结本文介绍了使用51单片机设计的彩灯控制器。

通过合理的硬件设计和软件设计,实现了对多个彩灯的控制。

控制器具备控制开关、亮度和颜色等功能,简化了硬件电路,节约了成本。

同时,控制器还提供了用户友好的界面和操作方式,方便使用。

设计还可选装串口通信接口,实现与其他设备的通信。

基于AT89C51单片机的彩灯控制方案设计(含源文件)

基于AT89C51单片机的彩灯控制方案设计(含源文件)
因此在LED彩灯上电工作后,用户可以方便地通过主控模块控制LED亮灯代码,根据实际应用需要在不同场合和时间来改变彩灯闪亮效果,以便符合实际需要。此外如果用户对某一种模式感兴趣需要仔细观看该种亮灯模式,可以通过编程选定任意第table_i模式使系统循环重复工作在该花样模式下。
图1系统原理框图
2.硬件设计
机械电子工程系
毕业设计报告
引言……………………………………………1
设计目的任务和要求…………………………1
总体设计方案…………………………………. 2
结语……………………………………………10
一、引言
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰 富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe, //右移两次//
0x00,0xff,0x00,0xff,0x00}; //闪烁两次//
unsigned char code table_2[]={0x00,0xff,0x00,0x00,
我们采用一种基于AT89C51单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以AT89C51单片机作为主控核心,与显示、驱动等模块组成核心主控制模块。在主控模块上设有24个LED显示灯,根据Байду номын сангаас户需要可以编写若干种亮灯模式,利用程序定时实现各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。所以亮灯模式多,用户可以根据不同场合和时间来调节亮灯频率和亮灯时间。与普通LED彩灯相比,具有体积小、价格低、低能耗等优点。

51单片机实验-实验三 定时器实验——循环彩灯

51单片机实验-实验三 定时器实验——循环彩灯

实验3 定时器实验——循环彩灯一、实验目的1)学习8031内部计数器的使用和编程方法2)进一步掌握中断处理程序的编写方法二、实验设备PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路,PROTEUS仿真软件。

三、实验内容由8031内部定时器1按方式1工作,即作为16位定时器使用,每0.1秒钟T1溢出中断一次。

P1口的P1.0~P1.7分别接发光二极管的L1~L8。

要求编写程序模拟一循环彩灯。

彩灯变化花样可自行设计。

例程给出的变化花样为:①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。

各时序间隔为0.5秒。

让发光二极管按以上规律循环显示下去。

四、实验电路五、实验程序及注释基本内容:ORG 0000HLJMP STARTORG 001BH ;定时器/计数器1中断程序入口地址LJMP INTAORG 0100HSTART:MOV A,#01H ;首显示码MOV R1,#0H ;R1是彩灯花式表偏移量指针MOV DPTR,#TABE ;彩灯花式表头地址送DPTRMOV R0,#5H ;05是计数值MOV TMOD,#10H ;定时器置为方式1MOV TL1,#0AFH ;装入时间常数MOV TH1,#03CHORL IE,#88H ;CPU中断开放标志位和定时器1溢出中断允许位均置位SETB TR1 ;开始计时LOOP1:CJNE R0,#00,LOOP1MOV R0,#5H ;R0计数计完一个周期,重置初值INC R1 ;表地址偏移量加1CJNE R1,#36,LOOP2MOV R1,#0H ;如到表尾,则重置偏移量初值LOOP2:MOV A,R1 ;从表中取显示码入累加器MOVC A,@A+DPTRMOV P1,A ;将取得的显示码从P1口输出显示JMP LOOP1INTA:CLR TR1 ;停止计时DEC R0 ;计数值减一MOV TL1,#0AFH ;重置时间常数初值MOV TH1,#03CHSETB TR1 ;开始计数RETI ;中断返回TABE: DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFHDB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00HDB 0FFHDB 00H,0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFHDB 07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEHDB 00H,0FFH,00HEND拓展内容:;NAME T5_TIME_DPTR ;定时器实验ORG 0000HLJMP STARTORG 001BH ;定时器/计数器1中断程序入口地址LJMP INTAORG 0100HSTART:MOV A,#01H ;首显示码MOV R1,#0H ;R1是彩灯花式表偏移量指针MOV DPTR,#TABE ;彩灯花式表头地址送DPTRMOV R0,#10H ;10是计数值MOV TMOD,#10H ;定时器选定为方式1MOV TL1,#0AFH ;装入时间常数MOV TH1,#03CHORL IE,#88H ;CPU中断开放标志位和定时器1溢出中断允许位均置位SETB TR1 ;开始计时LOOP1:CJNE R0,#00,LOOP1MOV R0,#10H ;R0计数计完一个周期,重置初值INC R1 ;表地址偏移量加1CJNE R1,#28,LOOP2MOV R1,#0H ;如到表尾,则重置偏移量初值LOOP2:MOV A,R1 ;从表中取显示码入累加器MOVC A,@A+DPTRMOV P1,A ;将取得的显示码从P1口输出显示JMP LOOP1INTA:CLR TR1 ;停止计时DEC R0 ;计数值减一MOV TL1,#0AFH ;重置时间常数初值MOV TH1,#03CHSETB TR1 ;开始计数RETI ;中断返回TABE: DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFHDB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00HDB 0FFH,00HDB 01H,04H,10H,40H,80H,20H,08H,02HDB 0FFH,00HEND六、实验结果仿真结果跟实验结果相同:原程序:8个LED灯以0.5秒为间隔时间分别按照设定得花样亮灭:L1~L8依次点亮→L1~L8依次熄灭→L1~L8全亮→L1~L8全灭→L1~L8按顺序依次熄灭,每次只熄灭一个灯,其余灯均保持发光状态→L8~L1按顺序依次熄灭,每次只熄灭一个灯,其余灯均保持发光状态→循环修改后的程序:8个LED灯以1秒为间隔时间分别按照设定得花样亮灭:L1~L8依次点亮→L1~L8依次熄灭→L1~L8全亮→L1~L8全灭→L1、L3、L5、L7、L8、L6、L4、L2按顺序点亮,每次只亮一个灯→循环。

51单片机彩灯控制器的设计

51单片机彩灯控制器的设计

51单片机彩灯控制器的设计51单片机作为一种非常常见的微控制器,被广泛应用于各种控制系统中。

彩灯控制器是一种常见的应用,通过控制51单片机的IO口来控制彩灯的颜色和亮度,实现彩灯的闪烁、呼吸、渐变等效果。

本文将介绍51单片机彩灯控制器的设计过程。

首先,我们需要明确彩灯控制器的功能需求。

常见的彩灯控制器一般需要具备以下功能:1.控制彩灯的颜色和亮度;2.实现多种灯效,如闪烁、呼吸、渐变等;3.可以通过外部设备(如按钮、遥控器等)进行控制;4.响应外部输入(如声音、光线等)来控制彩灯;5.具备存储功能,保存用户设定的彩灯模式。

根据上述功能需求,我们可以着手进行彩灯控制器的设计。

下面将从硬件设计和软件设计两个方面进行详细介绍。

1.硬件设计:硬件设计包括电路设计和PCB设计两个方面。

电路设计主要是根据51单片机的引脚功能,选择合适的元器件连接到相应的引脚上,以实现各功能模块的电路连接。

常见的彩灯控制器电路包含以下模块:电源供应模块、单片机控制模块、彩灯输出模块、外设接口模块等。

PCB设计则是将电路布板到PCB板上,保证电路的稳定性和可靠性。

2.软件设计:软件设计是51单片机彩灯控制器的核心。

通过编写程序代码,控制单片机的IO口来实现控制彩灯的颜色和亮度,以及各种灯效。

软件设计需要掌握51单片机的编程方法,了解该单片机IO口的使用方法和特点。

在软件设计中,需要通过编程实现以下功能:-通过外部设备输入控制信号,如按钮、遥控器等,来控制彩灯的开关、亮度等;-通过外部输入信号,如声音、光线等,来触发彩灯的相应效果;-实现各种彩灯效果,如闪烁、呼吸、渐变等,通过控制IO口输出信号实现。

除了基本的功能设计,彩灯控制器还可以扩展一些附加功能。

例如,可以通过添加存储模块,实现保存用户设置的彩灯模式,下次开机时可以快速恢复设置。

还可以通过添加无线通信模块,实现远程控制彩灯,或者通过添加传感器模块,实现根据环境变化自动调节彩灯等。

单片机控制的循环彩灯控制系统的设计

单片机控制的循环彩灯控制系统的设计
LP2:MOV27H,#03H ;花形3
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)开关来实现切换,方法不限。

循环彩灯控制毕业设计

循环彩灯控制毕业设计

摘要本设计是循环彩灯控制,运用了单片机AT89c51作为核心芯片,英国Labcenter 公司开发的Proteus ISIS电路分析与实物仿真软件仿真,美国Keil Software公司出品的51系列兼容单片机C语言软件Keil C51 uVision2编程调试。

按设定的时间有规律的循环点亮彩灯,先红、绿、黄三组彩灯各九个,每一个分别按按0.5S的速度跑动一次;然后再所有红、黄、绿三组彩灯按5S的速度分别跑动一次,依次循环。

1目录第一章绪论 (1)1.1 选题依据 (1)1.2 系统设计任务要求 (2)1.3 应用价值 (2)第二章系统电路设计 (3)2.1系统设计 (3)2.1.1系统设计框图 (3)2.2 各功能模块作用 (4)2.2.1 AT89c51结构及功能简介 (4)2.2.2 供电电路 (5)2.2.3 复位电路 (6)2.2.4 P0接口驱动电路 (7)2.2.5 晶振电路 (7)2.2.6 电源指示灯电路 (7)2.3 灯的各个状态转换及端口定义 (8)2.4 程序设计与仿真 (8)第三章仿真测试 (15)3.1仿真平台 (15)3.1.1 Keil uVision2编程调试器 (15)3.1.2 Proteus介绍 (15)3.2 仿真结果 (16)第四章制作与调试 (17)4.1 系统总原理图 (17)4.2 元件选择购买 (17)4.3 安装工艺 (18)4.4 装配电路板 (18)4.5 整机调试 (19)4.5.1 硬件调试 (19)4.5.2 软件调试 (19)4.6 实验现象 (20)第五章总结 (21)致谢 ................................................ 错误!未定义书签。

Ⅲ参考文献 (23)附录一元器件清单 (24)附录二循环彩灯源程序 (25)Ⅲ第一章绪论1.1 选题依据自1879年美国科学家爱迪生发明了白炽灯以来,便结束了人类“黑暗“的历史,给人类以光明,创造了巨大的财富。

采用调用51自带的左移右移函数实现彩灯闪烁控制论

采用调用51自带的左移右移函数实现彩灯闪烁控制论

采用调用51自带的左移右移函数实现彩灯闪烁控制论彩灯闪烁控制,也称为跑马灯,是一种常见的照明应用。

在这个项目中,我们将使用51单片机的左移和右移函数来实现彩灯的跑马灯效果。

首先,我们需要知道51单片机的左移和右移操作。

在51单片机中,左移操作符<<表示将一些数的二进制表示向左移动n位,右边用0填充。

右移操作符>>表示将一些数的二进制表示向右移动n位,左边用符号位填充。

这两个操作都是逻辑操作,不会改变数的符号。

接下来,我们可以使用51单片机的GPIO口来控制彩灯的亮和暗。

假设我们使用8个LED灯,那么我们就需要8个GPIO口来控制每个LED的亮灭。

以下是利用左移和右移函数实现彩灯闪烁控制的基本步骤:1.设置51单片机的GPIO口为输出模式,用于控制LED灯。

2.初始化闪烁控制变量和计数器变量。

3.使用一个循环来不断更新LED灯的状态。

4.在循环中,通过调用左移和右移函数,根据计数器变量的值来更新LED灯的状态。

5.控制LED灯的亮和暗,可以使用51单片机的GPIO口的高电平和低电平来实现。

6.根据需要,可以调整闪烁速度和亮灭的模式。

下面是一个简单的示例程序:```c#include <reg51.h>sbit led1 = P1^0; // 假设P1口连接第一个LED灯sbit led2 = P1^1; // 假设P1口连接第二个LED灯//...//假设P1口连接第八个LED灯void delay(unsigned int count)unsigned int i, j;for(i = 0; i < count; i++)for(j = 0; j < 120; j++);void maiunsigned int count = 0;//初始化GPIO口led1 = 0;led2 = 0;//...//初始化其它LED灯while(1)//更新LED灯的状态led1 = count & 0x01;led2 = count & 0x02;//...//更新其它LED灯的状态//控制LED灯的亮和暗delay(1000); // 控制闪烁速度led1 = 0;led2 = 0;//...//控制其它LED灯的亮和暗//更新计数器变量count = (count << 1) , (count >> 7); // 控制左移和右移的位数和方向}```以上示例程序只是一个简单的跑马灯实现,具体的实现方式和效果可以根据实际需求进行调整。

51单片机彩灯控制器的设计

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%弱斫阳丁敬。

C51单片机 节日彩灯 课程设计

C51单片机 节日彩灯  课程设计
DJNZ R5,$
DJNZ R4,D1
DJNZ R3,D2
RET
END
电路图
元器件清单
序号
元件名称
规格或参数
数量
备注
1
电阻
220Ω
9个
2
电阻
10K
1个
3
点解电容
10μF
1个
4
瓷片电容
30pF
2个
5
发光二级管
Φ3MM
8个
6
晶振
12MHz
1个
7
单片机芯片
AT89S51
1块
8
万能电路板
15*17cm
1块
9
C51单片机 节日彩灯的程序设计 用汇编语言编制
要求用单片机控制8只小彩灯(发光二级管),使小彩灯按照要求亮灭。 第一秒二极管D1、D3亮,其他灭;第二秒钟二极管D2、D4亮,其他灭;第三秒钟D5、D7亮,其他灭;第五秒钟D1、D3、D5、D7亮,其他灭;第六秒钟D2、D4、D6、D8亮,其他灭;第七秒全亮,第八秒全灭,如此循环。
程序设计
P1.0==D1,.....P1.7=D8;假设低电平点亮二极管(二极管串联一个200欧姆电阻,正极接电源,负极接CPU 对应引脚)
假设时钟频率12MHz;
ORG 0000H
LED: MOV P1,#0FAH
CALL DELAY1S
MOV P1,#0F5H;
CALL DELAY1S
MOV P1,#0AH
CALL DELAY1S
MOV P1,#0AAH
CALL DEL DELAY1S
MOV P1,#00H
CALL DELAY1S
MOV P1,#0FFH

基于51单片机的节日彩灯控制器编写说明

基于51单片机的节日彩灯控制器编写说明
unsigned char HUMI_Buffer_Int_L = 0;
unsigned char TEM_Buffer_Int_H = 0;
unsigned char TEM_Buffer_Int_L = 0;
unsigned char CHECK_VALUE = 0;
//****************************************************
{
unsigned int i,j;
for(i = 0; i < n; i++)
for(j = 0; j < 123; j++);
}
//****************************************************
//写指令
//****************************************************
for(j = 0; j < 123; j++);
}
//****************************************************
//延时函数
//****************************************************
void DHT11_10us( unsigned int n )
图2-4DS18B20电路图
2.5 闪烁灯的设计
1.引脚连接:8个二极管分别于单片机的P2的8个口相连
图2-5 流水灯电路图
3
3.1 程序
图3-1程序主流程图
3.2
图3-2LCD显示程序流程图
4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JNB ACC.7,MAIN ;累加器最高位为0时转MAIN
RL A ;累加器A中数据循环左移1位
AJMP FUN00 ;转FUN00循环
;
;第2种闪烁功能程序
FUN1:MOV A,#0FEH ;累加器赋初值
;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为15×25毫秒)
DL05S:MOV R4,#0FH
LOOP3: LCALL DL25MS
DJNZ R4,LOOP3
RET
;
;25毫秒延时子程序,用调用扫键子程序延时,可快速读出功能按键值
CLR 01H
CLR 02H
CLR 00H
OUT3:RET
;
;************;
; 延时程序 ;
;************;
;0.5毫秒延时子程序,执行一次时间为513微秒
DL512:MOV R2,#0FFH
CPL A ;A中各位取反
MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
AJMP MAIN ;转MAIN
;************;
LJMP START ;跳至START执行
ORG 0003H ;外中断0中断入口地址
RETI ;中断返回(不开中断)
ORG 000BH ;定时器T0中断入口地址
RETI ;中断返回(不开中断)
ORG 0013H ;外中断1中断入口地址
JB 01H,FUN1 ;20H.1位为1时执行FUN1
JB 02H,FUN2 ;20H.2位为1时执行FUN2
JB 03H,MAIN ;备用
AJMP MAIN ;返回主程序MAIN
; 初始化程序 ;
;************;
;
CLEAR: MOV 20H,#00H ;20H单元内存清0(闪烁标志清0)
SETB 00H ;20H.0位置1(上电时自动执行闪烁功能1)
RET ;子程序返回
CLR 01H
CLR 00H
CLR 03H
OUT2:RET
;
;闪烁功能(备用)键处理程序
KEY3:LCALL DL10MS
JB P3.3,OUT3
SETB 03H ;20H.3位置1(执行备用闪烁功能标志)
LOOP1: DJNZ R2,LOOP1
RET
;
;10毫秒延时子程序(调用20次0.5毫秒延时子程序)
DL10MS:MOV R3,#14H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
;
; 初始化程序 ;
;************;
;
CLEAR: MOV 20H,#00H ;20H单元内存清0(闪烁标志清0)
SETB 00H ;20H.0位置1(上电时自动执行闪烁功能1)
RET ;子程序返回
;
;************;
; 主 程 序 ;
;************;
2、设计硬件电路,利用Proteus6.7软件进行仿真,最后要实现仿真模型;
希望有好心人帮助,辛苦了。邮箱:liuzhen19860723@>
提问者: pandeng89 - 一级其他回答 共 4 条
老兄,东西不复杂的,自己思考,别碰到1+1的问题也要来问。要给你画流程,没人有那么多时间的,
AJMP FUN11 ;转FUN11循环
;
; 第3种闪烁功能程序
FUN2:MOV A,#0AAH ;累加器赋初值
MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
JB P3.0,OUT0 ;P3.0为1,子程序返回(干扰)
SETB 00H ;20H.0位置1(执行闪烁功能1标志)
CLR 01H ;20H.1位清0
CLR 02H ;20H.2位清0
DL25MS:MOV R5,#0FFH
LOOP4:LCALL KEYWORK
DJNZ R5,LOOP4
RET END ;程序结束 回答者: zengjing01 - 一级 2009-3-28 17:11
基于51单片机的循环彩灯控制设计
悬赏分:0 - 提问时间2009-3-28 17:03
要求:利用51单片机控制8个发光二极管,使得发光二极管循环点亮,发光二极管
的循环点亮方式至少要有4种,方式自定。在整个系统中,能够利用按键控制来实现不同循环方式的切换。
具体要求:
1、给出整个设计的设计流程,画出程序流程图;
硬件:51用p1口接电阻驱动三级管,用三极管驱动二极管动作。
软件:网上很多现成的资料,自己去整理。
;************;
;小灯控制程序;
;************;
;
;************;
;中断入口程序;
;************;
;
ORG 0000H ;程序执行开始地址
RETI ;中断返回(不开中断)
ORG 001BH ;定时器T1中断入口地址
RETI ;中断返回(不开中断)
ORG 0023H ;串行口中断入口地址
RETI ;中断返回(不开中断)
;
;************;
; 扫键程序 ;
;************;
;
KEYWORK:MOV P3,#0FFH ;置P3口为输入状态
JNB P3.0,KEY0 ;读P3.0口,若为0转KEY0
JNB P3.1,KEY1 ;读P3.1口,若为0转KEY1
;************;
;
;************;
;中断入口程序;
;************;
;
ORG 0000H ;程序执行开始地址
LJMP START ;跳至START执行
ORG 0003H ;外中断0中断入口地址
RETI ;中断返回(不开中断)
ORG 000BH ;定时器T0中断入口地址
JNB P3.2,KEY2 ;读P3.2口,若为0转KEY2
JNB P3.3,KEY3 ;读P3.3口,若为0转KEY3
RET ;子程序返回
;
;闪烁功能0键处理程序
KEY0:LCALL DL10MS ;延时10毫秒消抖
LCALL DL05S ;延时
JNB ACC.7,MAIN ;累加器最高位为0时转MAIN
CLR 03H ;20H.3位清0
OUT0:RET ;子程序返回
;
; 闪烁功能1键处理程序
KEY1:LCALL DL10MS
JB P3.1,OUT1
SETB 01H ;20H.1位置1(执行闪烁功能2标志)
;
START:ACALL CLEAR ;调用初始化子程序
MAIN: LCALL KEYWORK ;调用键扫描子程序
JB 00H,FUN0 ;20H.0位为1时执行FUN0
JB 01H,FUN1 ;20H.1位为1时执行FUN1
JB 02H,FUN2 ;20H.2位为1时执行FUN2
;
;************;
; 功能程序 ;
;************;
;第1种闪烁功能程序
FUN0: MOV A,#0FEH ;累加器赋初值
FUN00:MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
RETI ;中断返回(不开中断)
ORG 0013H ;外中断1中断入口地址
RETI ;中断返回(不开中断)
ORG 001BH ;定时器T1中断入口地址
RETI ;中断返回(不开中断)
ORG 0023H ;串行口中断入口地址
RETI ;中断返回(不开中断)
;
;************;
实在实在是太简单了。。。。 是太简老兄,东西不复杂的,自己思考,别碰到1+1的问题也要来问。要给你画流程,没人有那么多时间的,
硬件:51用p1口接电阻驱动三级管,用三极管驱动二极管动作。
软件:网上很多现成的资料,自己去整理。
;************;
;小灯控制程序;
我觉得既然硬件都做出来了,那么软件也没有问题,貌似你的问题属于毕业设计范畴。
回答者: 869953334 - 二级 2009-3-28 17:59
实在是太简单了。。。。
回答者: QQ136207557 - 四级 2009-3-28 21:10
实在是太简单了。。。。
;
;************;
; 主 程 序 ;
;************;
;
START:ACALL CLEAR ;调用初始化子程序
MAIN: LCALL KEYWORK ;调用键扫描子程序
JB 00H,FUN0 ;20H.0位为1时执行FUN0
CLR 00H
CLR 02H
CLR 03H
OUT1:RET
;
;闪烁功能2键处理程序
KEY2:LCALL DL10MS
JB P3.2,OUT2
SETB 02H ;20H.2位置1(执行闪烁功能3标志)
FUN11:MOV P1,A ;累加器值送至P1口
LCALL DL05S ;延时
JZ MAIN ;A为0转MAIN
RL A ;累加器A中数据循环左移1位
相关文档
最新文档