花样流水灯设计

合集下载

DSP实验一:花样流水灯设计

DSP实验一:花样流水灯设计

由于采用 CCS5.5 版本导入工程后编译存在很多错误 (包括路径修 改、软件安装缺少驱动等问题) ,捣鼓了半天也搞不好,于是果断放 弃 CCS5.5,安装 CCS8.0 集成开发环境,以正确快速进行实验。 如一个工程前,首先,从 CCS8.0 中的 Resource Explorer 找 到 F28335 例程。
将其导入到 CCS8.0 里面,然后修改里面的 MAIN 函数。如图
可以看出,工程名为“Example_2833xGpioToggle”的主函数包含在 C 文件“example_LEDKey”中。 添加自己的源程序代码, 即可编译成功。
模式*开始 延时控制开始
GPIO 单口控制
7组
延时控制子函数
高 速
中 速
低 速
键扫描 返回
返回
键扫描:采用线键盘(采用矩阵扫描的意义不大) SW1-SW2-SW3 控制流水灯模式,SW4-SW5-SW6 控制流水灯速度。 四、源代码: (注:函数 DELAY_US()为 F28335 官方库函数,表示延时**微秒) A、宏定义、全局变量及子函数声明
// 本例使用下面的GPIO配置 Gpio_select(); // 步骤 3. 清除所有中断初始化中断向量表: // 禁止CPU全局中断 DINT; // 初始化PIE控制寄存器到他们的默认状态. // 这个默认状态就是禁止PIE中断及清除所有PIE中断标志 // 这个函数放在DSP2833x_PieCtrl.c源文件里 InitPieCtrl(); // 禁止CPU中断和清除所有CPU中断标志 IER = 0x0000; IFR = 0x0000; //初始化PIE中断向量表,并使其指向中断服务子程序(ISR) // 这些中断服务子程序被放在了DSP280x_DefaultIsr.c源文件中 // 这个函数放在了DSP2833x_PieVect.c源文件里面. InitPieVectTable();

花样流水的灯课程设计

花样流水的灯课程设计

花样流水的灯课程设计一、课程目标知识目标:1. 让学生理解并掌握“花样流水”灯的制作原理,包括电路连接、灯光控制等方面的基础知识。

2. 使学生了解“花样流水”灯在生活中的应用,提高对物理知识在实际应用中的认识。

技能目标:1. 培养学生动手操作能力,能够独立完成“花样流水”灯的制作。

2. 提高学生团队协作能力,学会在小组合作中共同解决问题,完成作品。

情感态度价值观目标:1. 培养学生对科学的兴趣和好奇心,激发他们探索未知世界的热情。

2. 引导学生关注生活中的科技创新,培养创新精神和实践能力。

3. 培养学生节能环保意识,让他们认识到科技发展应与环境保护相结合。

课程性质:本课程为实践性课程,结合物理知识,以学生动手制作为主,注重培养学生的实践能力和创新能力。

学生特点:六年级学生具有较强的动手操作能力和好奇心,对新鲜事物感兴趣,具备一定的团队合作意识。

教学要求:教师应引导学生主动探究,注重启发式教学,让学生在动手实践中掌握知识,提高能力。

同时,关注学生的情感态度价值观培养,使他们在课程学习中得到全面发展。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容本课程依据课程目标,选择以下教学内容:1. 电路基础知识:介绍电路的组成、电路图的识别、电路连接方式等,为学生制作“花样流水”灯奠定基础。

(对应教材章节:第二章 电路基础)2. 传感器原理:讲解传感器的工作原理、种类及其在“花样流水”灯中的应用。

(对应教材章节:第五章 传感器)3. 灯光控制技术:学习灯光亮度、颜色及动态效果的控制系统,使学生能够设计出独特的“花样流水”灯效果。

(对应教材章节:第七章 光电控制系统)4. 实践操作:指导学生动手制作“花样流水”灯,包括电路搭建、灯光调试等环节。

教学内容安排如下:第一课时:电路基础知识学习,了解“花样流水”灯的制作原理。

第二课时:学习传感器原理,探讨其在“花样流水”灯中的应用。

第三课时:学习灯光控制技术,掌握灯光效果的调整方法。

eda花样流水灯的课程设计

eda花样流水灯的课程设计

eda花样流水灯的课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握花样流水灯的设计原理;2. 学生能描述流水灯电路的工作原理,了解相关电子元件的功能和连接方式;3. 学生掌握C语言编程基础,能编写简单的程序控制流水灯的显示效果。

技能目标:1. 学生能运用所学知识,设计出具有创意的花样流水灯电路;2. 学生通过实践操作,提高焊接和电路调试的能力;3. 学生通过团队协作,学会沟通和解决问题,提高项目实践能力。

情感态度价值观目标:1. 学生对电子设计产生兴趣,培养创新意识和探索精神;2. 学生认识到科技发展对社会进步的重要性,增强社会责任感和使命感;3. 学生在团队协作中,学会尊重他人、分享成果,培养良好的团队合作精神。

分析课程性质、学生特点和教学要求:本课程为电子技术与应用的实践课程,适用于初中或高中年级学生。

学生在之前的学习中已经掌握了基本的电路知识和C语言编程基础。

课程注重实践操作,鼓励学生创新设计,培养学生的动手能力和团队协作能力。

课程目标具体、可衡量,旨在让学生通过实践,掌握EDA技术的基本应用,提高电子设计能力,同时注重培养学生的情感态度价值观,为今后的学习和发展奠定基础。

二、教学内容本课程教学内容主要包括以下三个方面:1. 电子设计自动化(EDA)基础理论- 了解EDA的基本概念、发展历程和应用领域;- 学习流水灯的设计原理和电路组成;- 掌握相关电子元件的功能、符号和连接方式。

2. 流水灯电路设计与编程- 学习流水灯电路的设计方法,分析不同显示效果的实现原理;- 掌握C语言编程基础,编写控制流水灯的程序;- 结合教材相关章节,实践操作,调试电路。

3. 团队协作与项目实践- 分组进行项目设计,明确分工,培养团队协作能力;- 制定项目进度计划,按计划完成电路设计、编程、调试和展示;- 教师指导,学生互评,总结项目实施过程中的经验教训。

教学内容安排和进度:第一周:EDA基础理论学习和流水灯设计原理了解;第二周:学习C语言编程基础,编写简单的流水灯程序;第三周:分组项目实践,进行电路设计和调试;第四周:项目总结与展示,交流学习心得。

单片机实训报告——花样流水灯的制作

单片机实训报告——花样流水灯的制作

单片机实训报告——花样流水灯的制作班级:电气一班学号:110101127姓名:李亚龙一、花样流水灯的设计方案流水灯实际上就是一个带有八个发光二级管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

如果要让P0.0口的LED2亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.0~P0.7口的其他7个LED的电亮和熄灭的方法同LED2。

因此,要实现流水灯功能我们只要将发光二极管LED2~LED9依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。

对8段LED数码管显示器的控制,包括“显示段”和“公共端”两个地方的控制。

其中显示段用来控制字符的形状,公共端用来控制若干个LED中的那一只被选中,前者称为“段选”,后者称为”位选”。

只有二者结合起来,才能在指定的LED上显示指定的字形。

显然,要显示某种字形就应该使此字形的相应字段点亮,按照dp、g、e、f、e、d、c、b、a的顺序,dp为最高位,a为最低位,引脚输入不同的8位二进制编码,可显示不同的数字或字符。

二、花样流水灯的硬件电路设计时钟电路是计算机的心脏,它控制着计算机的工作节奏,CPU 就是通过复杂的时序电路完成不同的指令功能的,89C52的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。

单片机有多种复位电路,本系统采用电平式复位与上电复位方式,如下图所示当上电时C1相当于短路时,使单片机复位,在正常工作时,按下复位键是单片机复位。

显示部分主要是由八个LED和四个七段数码管组成,八个LED 由限流电阻限流后接入89C52的P0口。

三、花样流水灯的软件设计#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit key3=P3^1;sbit key2=P3^2;sbit key1=P3^3;uchar code table[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; uchar code moshi1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uchar code moshi2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchar code moshi3[]={0x00,0x00,0xff,0x00,0x00,0xff,0x00,0x00};uchar code moshi4[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};uchar code moshi5[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};uchar code moshi6[]={0x7e,0x3c,0x18,0x00,0x81,0xc3,0xe7,0xff};uchar moshi,dingshi; //模式,定时uchar shijian,k1; //时间控制uchar num0,num;void delay(uint x) //延时程序{uchar i;while(x--);for(i=0;i<120;i++);}void keyscan() //键盘扫描{if(key1==0){delay(10);if(key1==0) //按键1,模式循环{moshi++;if(moshi==7)moshi=1;TR0=1;k1=1;while(!key1);}}if(key2==0) //按键2,时间调整{delay(10);if(key2==0){shijian++;if(shijian==15)shijian=15;while(!key2);}}if(key3==0) //按键3,时间复位{delay(10);if(key3==0){shijian--;if(shijian==1)shijian=1;while(!key3);}}}void display() //数码管显示{P1=table[moshi];P2=0xfe; //从左向右显示delay(2);P1=0XFF;P2=0XFF; //数码管不显示delay(2);P1=table[dingshi/10]; //十位显示P2=0xfd;delay(2);P1=table[dingshi%10]; //个位显示P2=0xfe;delay(2);}void liushuideng() //流水灯显示{switch(moshi) //模式选择{case 1:P0=moshi1[num];break;case 2:P0=moshi2[num];break;case 3:P0=moshi3[num];break;case 4:P0=moshi4[num];break;case 5:P0=moshi5[num];break;case 6:P0=moshi6[num];break;}}void disp() //显示器{num++;if(num==8){num=0;dingshi--;if(dingshi==0){dingshi=shijian;moshi++;if(moshi==7)moshi=1;}}}void init() //初始化{TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=0;shijian=5;dingshi=5;moshi=0;P3=P0=0xff;num=num0=0;}void main(){init();while(1){keyscan(); //键盘扫描display(); //数码管显示if(k1==1) //模式选择liushuideng(); //流水灯显示}}void t0_time() interrupt 1 //中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num0++;if(num0==6){num0=0;disp();}}四、总结实训中我发现主要问题是在焊接电路板的时候有虚焊,导致电路接触不良,还有多焊导致电路板损坏或短路。

单片机花样流水灯设计

单片机花样流水灯设计
机 的基 础 。
1 . 1硬件 设 计
1 . 1 . 1 硬 件 说 明
按照 单片机 系统扩展与系统配置情况 ,单片机应用系统
可分 为最 小系统、 最小功耗系统 以及典型系统等。 8 9 C5 1 单片 机 是本次设计 运用 的主 要元件 ,流水灯控制设计是用单片机 最 小应用 系统 , 即为有L E D、 晶振、 复位 电路、 电源等 电路和软 件 组成的单个 单片机 。电路焊接 : 制造 电子产 品的重要手段 。 主要 涉及 到的硬件 有 A T 8 9 C 5 1 单片机、 L E D、 晶振、 电阻、 开 关、 电容 等 。 1 . 1 . 2 芯片介绍一 A T 8 9 C 5 1 ( 见图 1 )
×TAI 2

P 2
X ALl ! ; S
l O
到下 一盏 一盏 点亮 ; 第二 , 花型种类不少于五种 , 花型 自拟 ; 第
三, 分别用快慢两种节拍实现 花型交换 , 总清零开关控制 电路 的初 始状态 。 1 . 1 . 3引脚说明
图1 8 9 C 5 1 芯片引脚 图 引脚是单片机和外界进行通信的通道连接点,用户 只能 通过 引脚组建控制系统 。从应用的角度来看,引脚 的应用 是 单 片机应用 的一个重要基础 。因此熟悉引脚是学习应用 单片
PI .
、 √
VI 2 C
P1 . 1
P1. 2
P O
pO. 1
p1 . 3 pl
p1 P1 . 6 PI . 7
po . 2 pD . 3
po. 4 5 6
这样一来制成品只能按照固定的模式闪亮 ,不 能根据不 同场 合、 不 同时间段 的需要来调节亮灯 时间、 模 式等动态参数 。这

单品机花样流水灯程序设计外部中断触发方式结果分析

单品机花样流水灯程序设计外部中断触发方式结果分析

单品机花样流水灯程序设计外部中断触发方式结果分析```while (true) {// 更新灯光状态updateLightPattern();// 控制LED灯显示displayLightPattern();// 延时一段时间delay(someDelayTime);}```在上述伪代码中,`updateLightPattern()`函数用于更新灯光状态,`displayLightPattern()`函数用于控制LED灯显示,`delay()`函数用于延时一段时间。

2. 外部中断触发方式:外部中断可以是通过按下按钮、接收到特定信号等方式触发。

在单品机花样流水灯中,可以通过外部中断触发方式改变灯光的状态或执行其他操作。

以下是一个示例的外部中断触发方式的伪代码:```void externalInterruptHandler() {// 处理外部中断触发// 更新灯光状态或执行其他操作updateLightPattern();}void setup() {// 初始化外部中断attachInterrupt(externalInterruptPin, externalInterruptHandler, INTERRUPT_MODE);}void loop() {// 控制LED灯显示displayLightPattern();// 延时一段时间delay(someDelayTime);}```在上述伪代码中,`externalInterruptHandler()`函数用于处理外部中断触发,`attachInterrupt()`函数用于将外部中断与特定的引脚和触发模式关联起来。

外部中断可在`setup()`函数中进行初始化,然后在`loop()`函数中进行循环执行。

3. 结果分析:通过上述程序设计和外部中断触发方式,单品机花样流水灯可以实现按照设定的规律进行灯光状态的变化,并且通过外部中断触发方式可以改变灯光的状态或执行其他操作。

心形花样流水灯设计报告

心形花样流水灯设计报告

心形花样流水灯设计报告
心形花样流水灯设计报告
心形花样流水灯是现有流水灯的一种经典改良版本,它采用16个灯作为原形,在跟随律动改变时,灯会形成一个心形的图案,从而形成艳丽夺目的画面。

该设计把流水灯的动感与闪烁的灯光有机地结合起来,带给观众一个难忘的视觉体验。

心形花样流水灯的实现原理主要基于按使灯在每个节点切换时都可以获取正确的额外信号,然后根据信号来控制灯的状态,从而实现每颗灯在固定节点可以达到设定的图案效果。

实现心形花样流水灯首先需要准备好必要的硬件,如灯、电源、封装等。

其中,灯是实现该图案花样的关键元素,合适的灯应该选择一直亮的灯,最好是采用柱面形状的灯放置;电源属于复杂的功能元件,而电源的输出功率是有限的,因此要选择规范型号的电源;灯装接容器也是必不可少的,以尽可能减少容器内部电阻增加此设计系统电源负载。

安装完必要的硬件之后,就可以编写控制程序实现心形花样的设计。

首先,程序需要实现的功能应该包括定时停档、定时启动、控制灯泡亮度等,这是该系统实现的最基本的功能,其次,控制程序设计的关键是要编写一段循环程序,使在每一节点可以实现按照心形花样拍摄计划设定的图案,最后,实现定时调节,达到改变速度以及心形持续不断等效果。

通过以上步骤,就可以实现心形花样流水灯的设计制作,从而实现不同场合的美观效果,更好的吸引更多的注意力,从而取得全新的效果。

单片机课程设计花样流水灯2

单片机课程设计花样流水灯2

单⽚机课程设计花样流⽔灯2前⾔随着⼈们⽣活环境的不断改善和美化,在许多场合可以看到彩⾊霓虹灯不断变化闪烁。

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

但⽬前市场上各式样的LED灯控制器⼤多数⽤全硬件电路实现,电路结构复杂、功能单⼀,这样⼀旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。

这种彩灯控制器结构往往有芯⽚过多、电路复杂、功率损耗⼤等缺点。

此外从功能效果上看,亮灯模式少⽽且样式单调,缺乏⽤户可操作性,影响亮灯效果。

因此有必要对现有的彩灯控制器进⾏改进。

流⽔灯是⼀串按⼀定的规律像流⽔⼀样连续闪亮。

流⽔灯控制是可编程控制器的⼀个应⽤,其控制思想在⼯业控制技术领域也同样适⽤。

流⽔灯控制可⽤多种⽅法实现,但对现代可编程控制器⽽⾔,利⽤移位寄存器实现最为便利。

通常⽤左移寄存器实现灯的单⽅向移动;⽤双向移位寄存器实现灯的双向移动。

本案例利⽤价格低廉的AT89C51系列单⽚机控制基⾊LED灯泡从⽽实现丰富的变化。

1、课程设计的⽬的和要求1.1 设计⽬的近年来随着科技的发展,单⽚机的应⽤正在不断⾛向深⼊,同时带动传统控制检测⽇新⽉异更新,在实时检测和⾃动控制的单⽚机应⽤系统中,单⽚机往往是作为⼀个核⼼部件来使⽤,单⽚机⽅⾯知识是不够的,还应根据具体硬件结构,以及针对具体应⽤对象点的软件结合,加以完善。

流⽔灯,可以更简单、⽅便的使⽤。

通过本课程设计使学⽣进⼀步巩固单⽚机原理及应⽤的基本概念、基本理论,分析问题的基本⽅法,增强系统地运⽤已学的理论知识解决实际问题的能⼒和查阅资料的能⼒。

培养⼀定的⾃学能⼒和独⽴分析问题、解决问题的能⼒,能通过独⽴思考、查阅⼯具书、参考⽂献,寻找解决⽅案。

1.2 设计要求设计流⽔灯的基本要求:设计⼀个流⽔灯,应⽤AT89C51试验系统,电路开启后红、绿两种颜⾊的灯在时钟信号作⽤下按⼀定规律转换状态。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计2014年 6月 15日课 程单片机课程设计题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班学生姓名 温亿锋 学生学号 201111631227 指导教师 张瑛一丶任务设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。

二丶设计要求通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。

三丶设计方案本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。

其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。

单片机流水灯循环控制系统硬件框图此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。

四丶系统硬件设计4.1 直流稳压电源电路对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。

电子设备除用电池供电外,还采用市电(交流电网)供电。

通过变压、整流、滤波和稳压后,得到稳定的直流电。

直流稳压电源是电子设备的重要组成部分。

本项目直流稳压电源为+5V。

直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。

下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。

三端固定式集成稳压电源电路图AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。

此处用3节1.5V的干电池供电。

4.2 单片机最小系统要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。

时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。

复位电路:确定单片机工作的起始状态,完成单片机的启动过程。

单片机系统的复位方式有上电自动复位和手动按键复位。

本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

单片机最小系统4.3 LED电路LED流水灯显示电路LED流水灯显示电路如图所示,实际上是由8个发光二极管和8个电阻构成的电路。

发光二极管与电阻对应串联,然后接在与之相对应的P2口上。

通过软件编程对P2口输出高低电平来实现不同的闪烁花型。

由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100Ω—3000Ω在此我们这里选用560Ω的电阻。

4.4 按键控制电路按键控制电路如下图所示,是由6个按键开关构成的。

他们分别接在单片机AT89C51的P1接口和P3.0口,Key1---Key5接在P1.0---P1.4,Key6接在P3.7上。

为了一对一的控制LED灯的闪烁方式。

当按下开关Key1时, LED流水灯系统闪烁第一种流水灯花型。

当按下开关Key2时, LED灯系统闪烁第二种闪烁方式。

当闭合Key6时,流水灯闪烁节拍变慢。

键盘控制电路4.5 串口电路串口电路为单片提供与PC机连接端口,为单片机提供下载程序到单片机程序存储器中。

串口原理图如下图所示。

串口也称串行通信接口,RS-232是目前最常用的一种串行通讯接口,由于其形状和针脚数量的原因,其接头又被称为DB9接头。

RS-232针脚定义: 2RXD 接收数据、3TXD发送数据、5GND系统接地,一般就用到这几个引脚。

串口原理图MAX232芯片是专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。

MAX23内部结构基本可分三个部分:第一部分是电荷泵电路:由1、2、3、4、5、6脚和4只电容构成,功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

第二部分是数据转换通道:由7、8、9、10、11、12、13、14脚构成两个数据通道,其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道,8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。

TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN 输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出第三部分是供电:15脚DNG、16脚VCC(+5v)。

五丶系统的软件设计本设计是以单片机AT89C51为核心控制8个发光二极管5种闪烁方式的变换。

硬件电路如图所示,八个发光二极管D1-D8分别接在单片机的P2.0-P2.7接口上,当给P2.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。

可以运用输出端口指令MOV P0,A或MOV P0,#DATA,只要给累加器值或常数值,同理,接在P2.1~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。

因此,要实现流水灯功能,只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的成流水灯了。

在此还应注意一点,由于视觉暂留效应以及单片机执行每条指令的时间很短,在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到闪烁效果。

程序启动时跳转到键盘判断模块程序中,此程序里面包含Key1-Key5的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的流水灯显示的花型模块,与此同时,当按键Key6有闭合时,程序中调用延时程序时,给延时参数赋值上另一个值,是延时程序延时时间发生改变,以达到不同快慢节奏闪烁的流水灯。

具体程序流程如下图所示。

六丶系统调试与测试结果分析6.1 系统仿真本设计使用的Keil C51软件来进行编程。

Keil C51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部份组合在一起。

Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。

仿真图如下:6.2 仿真调试本系统的调试是把在Keil里面写好的程序通过编译不出现任何错误后将生成的后缀名为.HEX的文件加载到AT89C51单片机中。

测试结果及状态分析经以上仿真上测试证实,能实现本设计系统要求的预期的功能。

结论本方案以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路,利用软件编程烧录程序到单片机来实现对LED流水灯进行控制,与其他LED流水灯相比该电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点,其电路集成度高,工作原理简单,清晰明了,控制图案的花样多,移植性好。

附录1 程序主程序:ORG 0000HLJMP MAINORG 0040HMAIN:MOV P1,#0FFHMOV A,P1CJNE A,#11111110b,S1LCALL K1S1: CJNE A,#11111101b,S2LCALL K2 S2: CJNE A,#11111011b,S3LCALL K3S3: CJNE A,#11110111b,S4LCALL K4S4: CJNE A,#11101111b,MAIN LCALL K5LJMP MAIN按键程序:K1: MOV A,#01111111bC1: RL AMOV P2,ALCALL DelayJNB P1.1,K2JNB P1.2,K3JNB P1.3,K4JNB P1.4,ZLJMP C1K2: MOV P2,#0FEHLCALL DelayMOV P2,#0FCHLCALL DelayMOV P2,#0F8HLCALL DelayMOV P2,#0F0HLCALL DelayMOV P2,#0E0HLCALL DelayMOV P2,#0C0HLCALL DelayMOV P2,#80HLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#80HLCALL DelayMOV P2,#0C0HLCALL DelayMOV P2,#0E0HLCALL DelayMOV P2,#0F0HLCALL DelayMOV P2,#0F8HLCALL DelayMOV P2,#0FCHLCALL DelayMOV P2,#0FEHLCALL DelayMOV P2,#0FFHLCALL DelayLJMP MAIN Z: LJMP K5K3: MOV P2,#55HLCALL DelayMOV P2,#0AAHLCALL DelayMOV P2,#0FFHLJMP MAINK4: MOV P2,#01111110BLCALL DelayMOV P2,#00111100BLCALL DelayMOV P2,#00011000BLCALL DelayMOV P2,#00000000BLCALL DelayMOV P2,#10000001BLCALL DelayMOV P2,#11000011BLCALL DelayMOV P2,#11100111BLCALL DelayMOV P2,#11111111BLCALL DelayLJMP MAINK5: MOV P2,#01111110BLCALL DelayMOV P2,#10111111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10011111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10001111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000111BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000011BLCALL DelayMOV P2,#01111110BLCALL DelayMOV P2,#10000001BLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#0FFHLCALL DelayMOV P2,#00HLCALL DelayMOV P2,#0FFHLCALL DelayLJMP MAIN延时程序:Delay: JNB P3.0,D1mov r5,#01hLJMP D5D1: MOV r5,#04h D5: mov r6,#0ffh D6: mov r7,#0ffh D7: nopdjnz r7,D7djnz r6,D6djnz r5,D5retEND。

相关文档
最新文档