网站首页 / led灯管 / 正文

点亮led灯教学设计(让电灯发光教学设计)

时间:2023-04-05 18:48:07 浏览:

用c语言编程三个按键对应点亮三个LED灯的程序,AT89S52单片机,最好有原理图,谢谢。急求

这个也求?用按键点亮LED灯这个是51入门最基础的东西,真心想学的话,买块51的开发板,都带有例程,很快就可以入门的。建议你还是多看看资料把基础的东西学好。推荐你看一下《十天学会单片机和C语言编程》的视频教程对入门还是不错的。

三路抢答器提供你编程思路(按键扫描方式)参考,程序还是要根据你的硬件电路自己编写。

端口配置:

1、选择4个端口作为输入端口连接按键(独立按键,按键一端接单片机端口,另一端接地)。 三路为抢答的按键KEY1、KEY2、KEY3,一路为抢答后复位按键KEY0。

2、选择3个端口作为输出端口连接LED灯(高电平点亮还是低电平点亮要看你电路设计)对应为LED1、LED2、LED3。

编程思路:

1、初始设置一个抢答键按下与否的位标志变量:bit flag = 0;(没有抢答按键按下flag = 0,有抢答按键按下flag = 1)。

2、主程序按键扫描循环。

3、按键按下程序KEY1、KEY2、KEY3基本相同。以KEY1为列:

首先判断是否有抢答键按下(KEY1==0),如有抢答按键按下,延时10ms(消抖),再判断是否KEY1==0,如果KEY1==0说明KEY1抢答按键已经按下,然后再判断是否flag = =0,如果flag = =0,则点亮LED1(其他按键按下的话点亮相应的LED灯)、按键按下标志置“1”(flag = 1)。

4、复位按键程序判断KEY0按下并且flag = =1时,关闭所有LED灯、按键按下标志复位置“0”(flag = 0)。

制作LED灯详的细步骤是什么?

LED电子灯箱简单的制作方法

1、制作:使用亚克力板、塑料板、或者其他绝缘材料,本人用黑色2.5mm双层铝塑板时居多。将要做的字先用单面胶的纸刻好,贴在裁好尺寸的铝塑板上,用电钻或者雕刻机打出孔(间距根据字的大小,一般距离10-15mm一个),孔的大小直径5mm不能太大。用F5聚光灯做字是孔距最好要大于15mm,原因大家一试便知。若是用546椭圆灯,孔距可以控制在20-10mm之间,距离越近效果越好。

2、串联连接:把LED按 + -、+ -、......+ -、+ - 串联焊接,产生一个正极(作个标记 A+)和一个负极(作个标记 K-)。灯腿的连接需要用锡焊接,也可以拧在一起然后焊接。千万记住:一定要焊接。因为LED的腿是铁镀银,有电流通过时一旦受潮会很快锈蚀的,会给灯箱造成隐患,也会给售后带来不小的麻烦。现在的连体灯很多,用连体灯可以省不少时间提高生产效率,但每排只有20个灯,焊接是避免不了的。注:发光二极管长管脚为“+”(正)极,短管脚为“-”(负)极。

3、分组(串):按照不大于附表中各种颜色的发光二极管所能串联的最大数量进行分串,如每一串红色LED不应多于120只。原因很简单,控制器的输出是直流210V左右,红灯的工作电压是2V左右,就是说每经过一颗LED灯会降压2V,如果LED数量太多,那么控制器的输出电压达不到灯串正常工作时所需的电压时,灯串就会不亮,或亮度太低。

注:附表中加"*"号的不推荐选用,当串联LED个数接近或超过带"*"号的个数时,易引起电路不稳定,宜分作两串或更多串作并联连接为一组.

4、串入电阻:按附表数量将适当数量的电阻串入每串发光二极管中,电阻无正负极之分,且可串入于该串发光管中任意两个发光管之间。串在需要导线连接处省时省力省导线。

注: 由于产品的批次和型号不同,具体的个数和串电阻的数值要看工作电流,以上的参数仅供参考。发光二极管每个支路的电流最好调整在19ma±1ma,电阻选用1k/2w,如5k,可以用5个阻值为 1 千欧姆,功率为2W的电阻串入连接。

5、连接控制器:将每一串LED的正极接入控制器的正极(红线)端,每组发光管的负极接入控制器的负极(绿线)控制端。三条黄线是流水边灯的输出线,分别接三组边灯的负极。边灯的三个正极和主字的正极焊接在一起。一般控制器都有直亮输出线,在没有常亮要求的的情况下,灯箱的常亮输出线要剪断或者用胶棒粘好,防止与正极断路损坏控制器。

6、调试:连接无误,通电后会亮起来,简单测量电流的方法,用万用表直流电压档,测量其中一个1K/2W电阻上的电压约在15-20V(最好小于18V),超出20V再增加一个电阻后再测量,直至正常。为便于调试测量,可将控制器花样设置于调试状态和长延时间隔状态,此时控制器输出为大比例长亮、短灭状态。现在控制器有直亮输出,电流恒定有利于准确测量出电阻的电压。

7、维修:如果不亮,用万用表直流250V档,黑表笔接绿线,红表笔接红线,如果指示跳动或在200-220V,说明控制器正常;黑表笔不动,红表笔依次测量每个led两端的电压,如果某个LED两个脚电压差别非常大或无电压,说明这个LED损坏,更换后再试。

8、灯箱的组装:本人介绍的是一种物美价廉的方法,用铝型材固然美观但是成本较高本人没有使用。材料:2*.mm的木龙骨和2.*mm的铝角(90°),这些材料一般装饰材料市场都有。具体的制作方法不用细说,

9、主意事项:经常有新入门的客户问为什么绿灯和蓝灯很容易坏,其实大多数的原因不是灯的质量有问题,而是新手焊接技术还没有完全掌握,焊接不顺利,时间太长而造成LED灯的损坏,这就需要提高焊接技术和速度来避免了。

设计一个具有8个LED灯,要求从右向左依次点亮一秒后熄灭,循环往复的单片机程序。跪求

#include"reg52.h"//此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;//对数据类型进行声明定义

typedef unsigned char u8;

//LED灯命名

sbit leda=P0;

sbit led1=P0^0;

sbit led2=P0^1;

sbit led3=P0^2;

sbit led4=P0^3;

sbit led5=P0^4;

sbit led6=P0^5;

sbit led7=P0^6;

sbit led8=P0^7;

void delay(u16 i)

{

while(i--);

}

void main()

{

while(1)

{

leda=1;//全部灯亮

//从左到右依次熄灭

led1=0;

delay(50000);//大约延时450ms

led2=0;

delay(50000);//大约延时450ms

led3=0;

delay(50000);//大约延时450ms

led4=0;

delay(50000);//大约延时450ms

led5=0;

delay(50000);//大约延时450ms

led6=0;

delay(50000);//大约延时450ms

led7=0;

delay(50000);//大约延时450ms

led8=0;

delay(100000);//大约延时900ms

//从右到左依次点亮

led8=1;

delay(50000);//大约延时450ms

led7=1;

delay(50000);//大约延时450ms

led6=1;

delay(50000);//大约延时450ms

led5=1;

delay(50000);//大约延时450ms

led4=1;

delay(50000);//大约延时450ms

led3=1;

delay(50000);//大约延时450ms

led2=1;

delay(50000);//大约延时450ms

led1=1;

delay(50000);//大约延时450ms

leda=1;//全部灯亮

}

}

扩展资料:

main()应用:

1、C++中的main函数

C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,

但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,不能写成某个结构体或某个类的成员。

虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。

C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。

2、Java中的main函数

Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。

首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。

其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。

第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。

第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)

Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)

public class MainDemo{

public static void main(String[]args){

//TODO:在此处写入主函数的内容

}

}

Java Applet的运行机制与Java Application完全不同,因此不需要main函数

3、C#中的main函数

C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,

与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)

另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。

C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)

C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。

class Program{

static void Main(string[]args){

//TODO:在此处写入主函数的内容

}

}

猜你喜欢:
热门文章
随机文章列表
标签列表