sbit K1=P3^2; //对应开发板K1按键 /*---*/ //串口初始化 void UART_Init(void){ SCON = 0x50; //串口工作方式为1 , 串行允许接收 //SM0=0;//SM1=1;//REN=1;TMOD = 0x20; //定时器1 工作在方式2
51单片机 多种格式串口控制LED源码: http://www.51hei.com/bbs/dpj-163182-1.html,适合新手
1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
单片机(microcontroller)可以通过控制其硬件输出接口来控制LED灯的亮灭。在使用单片机控制LED之前,需要对单片机的硬件进行接线和配置。首先,将LED的正极接入单片机的硬件输出口,将LED的负极接入单片机的地。然后,使用单片机编程
pc通过串口和单片机交换数据,从而控制LED灯。 pc程序用labview 调用Visa 进行串口通讯。单片机接受到串口命令后控制I\\/O口的高低电平实现led灯亮灭控制
在上述代码中,我们首先将P1口设置为全灭状态,然后使用一个循环将P1口设置为全亮状态,并延时1秒钟。接着,我们将P1口设置为全灭状态,并再次延时1秒钟。这样,LED灯就会一亮一灭间隔1秒。需要注意的是,上述代码中的延
LED_D1 =1;//=1亮灯 ,=0灭灯当也要看电路,完善的电路还会有驱动电路如三极管点了,也要看LED固定的那端是接地还是接VCC。最终无非就是通过单片机的IO口输出一个0或1来是LED二极管电路正向导通形成发光。
怎样使用单片机的串口控制LED灯亮灭
想增加6个灯珠是可以的,但是你需要知道电压、电流多少?需要怎样连接合理,LED不能过电压、过电流,48V供电,需要串入限流电阻,连接不合理,会使LED灯珠、电阻烧毁,或限流电阻耗电过大。三组并联,会使耗电电流加大。最好
你好 LED分很多种,不过你说的线路的话,我猜想是就是我们说的金线打线模式。一般,直插灯,3528贴片灯都是一个芯片,那么它肯定就是串联的 还有,5050,这是三颗芯片,绝大多数是三颗并联。还有,集成大功率,那么就是
LED灯管是串并联共存的,也就是"田"字格串并联,如果只有一排灯的话 ,一般是6灯一串然后和下组6灯并联! LED大功率射灯\球泡\基本都是并联, 不过也有极少数的会做成串联 不提倡!!!
Led灯是串联的,在我们生活当中,大部分电路都是并联的。一方面是为了保证它的电压供应,另一方面也是为了维持它的正常游戏,防止一个损坏而造成其他的断路。但是led灯珠里由于它的灯比较多,如果采用并联的方式。会导致非常麻烦
led灯是串联还是并联这个需要根据led灯泡的额定电压来决定,并且还要看下是否跟电源电压相符。如果相符,肯定就是并联;如果不符,那就必须几个led灯串联一组,接着再几组并联。比如:有100个,若是使用12V供电,则必须每4
串联,多头每头带驱动才是并联
首先LED灯必须是直流驱动的,那么LED灯必定有两个引线(一般以红、黑线区分),然后灯于灯直接用一个灯的红线连接另一个灯的黑线,依次相连最后只有两条出线就是一条红线,一条黑线,然后连接驱动就可以了
led灯里面有3个驱动6根线头,是并联还是串联
led_5 BIT P1.5;led_6 BIT P1.6;led_7 BIT P1.7; ;定义开关LED的数据,假定LED正极一端接电源,另一端通过限流电阻接I/O端口: DATA_CloseLED EQU 11111111B;DATA_OpenLED E
sbit k3=P3^2;void delay(unsigned int t)//12M晶振延迟约1ms { unsigned int i,j;for(i=0;i
P0 = 0x00; //P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;//点亮前两个发光二极管P0.0和P0.1;delay(1000);//延时1秒 P0 = 0x30;//点亮第三个和第四个LED delay(
define uchar unsigned char define uint unsigned int uchar j,k;sbit key1=P3^0;sbit key2=P3^1;sbit key3=P3^2;void delay(int ms){ uchar i;while(ms--)for(i=0;i<123;i++);} uchar code tab[]={
虽然编程51单片机。而且让每个LED灯都亮得非常好。这可太好了问题。这个技术应该有专门的负责人员来搞定。
用C语言编写51单片机三个开关控制八个LED灯的点亮,开关接P3端口,LED接P1端口?
实例6:使用P3口流水点亮8位LED include
P0=led1[i];i--;if(i>7)i=7;delay(200);} } main(){ flag=0;while(1){ if(key1==0){ flag=0;while(key1==0);flag=1;} if(key2==0){ flag=0;while(key2==0);flag=1;} if(key3==0){
;以89c51单片机为例,假定用P1控制LED:IO_LED EQU P1;led_0 BIT P1.0;led_1 BIT P1.1;led_2 BIT P1.2;led_3 BIT P1.3;led_4 BIT P1.4;led_5 BIT P1.
LED3=0;} }
P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xf7; //点亮第四个LED for(i=200;i>
虽然编程51单片机。而且让每个LED灯都亮得非常好。这可太好了问题。这个技术应该有专门的负责人员来搞定。
define uchar unsigned char define uint unsigned int uchar j,k;sbit key1=P3^0;sbit key2=P3^1;sbit key3=P3^2;void delay(int ms){ uchar i;while(ms--)for(i=0;i<123;i++);} uchar code tab[]={
用C语言编写51单片机三个开关控制八个LED灯的点亮,开关接P3端口,LED接P...
这个电路有问题,发光二极管要限流,否则要烧
3w的led灯电流在600-700mA,电流较大,用单个三极管会加重单片机负担,应使用二个npn(一小一大)三极管复合成达林顿形式才行,或直接用成品npn达林顿管也完全可以,比用mos管简单多了,一般单片机的1输出是3.3v或以上,只要在基
1、8050三极管不比达林顿管和mos管放大倍数较小,最小的可能只有40倍,以40倍计算,假设你的每个灯的电流为5mA(看你的应用了,如果用来照明不只5mA),12个灯就60mA,那么你基级需要提供的电流就是1.25mA,因为89C5
事实上没有电流流过这个绝缘体,所以FET管的GATE电流非常小。最普通的FET用一薄层二氧化硅来作为GATE极下的绝缘体。这种晶体管称为金属氧化物半导体(MOS)晶体管,或,金属氧化物半导体场效应管(MOSFET)。因为MOS管更小更省电
用mos极管控制6个LED灯有没有问题
1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1”3:当I值为每个值时,执行相应的模式。水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度;无效延迟(无符号整型
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
P0=led1[i];i--;if(i>7)i=7;delay(200);} } main(){ flag=0;while(1){ if(key1==0){ flag=0;while(key1==0);flag=1;} if(key2==0){ flag=0;while(key2==0);flag=1;} if(key3==0){
1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。3、接着创建延迟函数,如下图所示,输入以下代码。4、然后创建C语言主函数,如下图
P3=0xbf; //第七个灯亮 delay(); //调用延时函数 P3=0x7f; //第八个灯亮 delay(); //调用延时函数 } }
思路:循环控制常亮状态的值,将其从最高位循环到最低位。这个用于最后状态的常亮 在常亮循环中,控制不是常亮的其它所有位进行再次循环,逐渐从最低位亮灭循环到最高位 代码如下:include
用74hc595芯片做输出,即可实现三个端口控制多输出的问题。对于超过八输出,再增加一个595芯片即可实现。
求解答,这个51单片机如何用三个端口控制八个LED灯流水闪烁
硬件接法没说,假设注水灯接在P0口,高电平点亮,以下程序可供参考。 主程序: #include #define uchar unsigned char uchar a=0, b=0; void main() { TMOD=0X00;//定时器0以工作方式0 TH0=(8192-5000)/256;//定时5ms TH0=(8192-5000)%256; ET0=1;//开定时器0中断 EA=1;//开总中断 TR0=1;//启动定时器0 while(1); } 中断程序: void timer0 (void) interrupt 1 { a++; if(a==100)//中断100次 500ms { a=0; P0=3<<b; // 3用二进制表示是 00000011 亮两个灯 // 左移2位后为00001100 仍亮两个灯 b+=2; if(b==8)b=0; } }驱动小功率LED是没有问题的。1个51单片机外加4个PNP三极管(如C9012或8550),以及12个电阻就可以了。将32个LED分成4组共阳连接,采用动态扫描方式输出驱动LED,这样共占用单片机12根口线。
有两种方案:1、把相应的程序写成中断服务程序,开关接外部中断。 2、采用查询的方式。 main() { while(1) { do_something; if(p3.0 == 1) { delay_50us(); if( p3.0 == 1) start_function();//在函数中末尾检查p3.0的电平,0则跳出 } } }
//prj1 流水灯实验,LED灯是共阳极,给0亮。J1跳线帽 //用的是移位的方法 //头文件定义 #include #include //延时函数定义 void delay(void) { unsigned int i; unsigned int j; for(i=200;i>0;i--) { for(j=200;j>0;j--); } } void main() { P0 = 0xfe; //1111 1110 delay(); while(1) { P0 = _crol_(P0,1) ; // 将P0端口循环左移 delay(); if(P0 == 0x7f) { P0 = _cror_(P0,1); delay(); P0 = _cror_(P0,1); delay(); P0 = _cror_(P0,1); delay(); P0 = _cror_(P0,1); delay(); P0 = _cror_(P0,1); delay(); P0 = _cror_(P0,1); delay(); P0 = _cror_(P0,1); delay(); } } }
有点没明白你的意思!三个从机 是什么!是三片单片机么?如果是单纯的控制LED 很简单的了!
这是低电平有效的接线方法,高电平有效反过来就行了。。。
只用一个电阻器在它们之间共享连接多个并联的LED,是不是一个好主意。如果LED只需要稍微不同的电压在最低电压指示灯将亮起,它可能被销毁了较大的电流通过。 虽然相同的LED可以通过一个电阻连接成功,平行这种情况很少提供任何有用的好处,因为电阻器是非常便宜的和目前所使用的是相同的连接的LED单独,如果是在平行的LED每个人都应该有它自己的电阻。大功率LED串并联多少为合适?最近经常为了节约成本使用大功率led串并联使用,比如我的驱动电路能承受700ma电流输入电压48v,而我使用的是 1w的灯珠的话那么我就可以把两路12串联再并联使用.在这两并联led中是否需要再加入并联,比如3串联再并联一直下来好,还是6串联再并联下来好,这 中间并联的数目多少比较稳定,怎么样合适?因为大功率LED的VF差距较大,先并再串,首先影响的是亮度的一致性,这种亮度的不一致不仅仅是刚开始使用时的,而且还关系到光衰之后的情况,因为不同的电流点亮的LED衰减是不一样的, 其次如果你是足功率使用,如果散热不佳,因为电流不一致,一颗如果率先失效,另外一颗也会加速失效.如果没有断路保护电路,整串都会因为开路不亮.2并再串是个办法,不过要保证散热良好,不然有一颗挂了,另外一颗单独承受700MA比较可怕的。
这个很可能是由于驱动器输出电压不足所导致。因为三个烧坏的灯珠导通电压降低,如此一来,整个支路的电压要低于正常值,所以另外三个支路不亮;本支路三个好的灯珠中有电流通过,能够发光。 具体原因可能是整个设计中,未考虑限流和电流匹配问题。按道理说,当多个LED支路并联时,每个支路上应该串联一个限流电阻,这个限流电阻上的分压降应该能够补偿各支路导通压降的最大差异,并保证电流在全温度范围内,能够在各支路间平衡分配。 如果未加这个限流电阻,会出现以下过程的故障: 1. 驱动器输出正常电压,各支路导通,点亮所有灯珠; 2. 各支路之间的电流平衡被破坏,原因是各支路的导通压降出现偏差,这个偏差可能是由器件离散性引发,也可能是由散热不均匀引发; 3. 一旦各支路导通压降出现偏差,电流平衡即被打破。导通压降低的支路电流会增加,压降高的支路电流会减少,由于电流和压降之间是指数关系,很小的导通压降差即可导致剧烈的电流失衡; 4. 电流失衡会随着时间推移进一步加剧。因为电流大的支路温度更高,压降更低,电流就更大,这是一个正反馈过程,最终可能所有电流全部汇集到一个支路,导致这个支路中的元件烧毁; 5. 烧毁的元件是由于过热引发,过高的温度使得其PN结特性变化,无法实现光子激发,导通压降也会降低很多,但器件还能够维持导通。 从而表现出问题所描述的现象。