if(order==1) //方式一:全灯逐个点亮,然后逐个灭掉 { for(n=0;n<8;n++){ P2|=0x01<

include define uchar unsigned char code uchar ledtab[10]= { 0xff,0xe7,0xc3,0x81,0x00,//中间开始逐渐点亮 0xff,0x7e,0x3c,0x18,0x00//两边开始逐渐点亮 } void delay(int ms){ uchar i;whil

for(i=0,i++,i<=pwm){ p1.0=1 };p1.0=0 以上为软件pwm,i为局部变量,pwm为全局变量,通过控制pwm来控制led明暗,pwm最大100,最小0。从亮到暗和从暗到亮,写三角波程序,使pwm变化即可。

// c为偶数时pwmcount逐渐增加,自减段增加,此时LED如果为0,常0段为1,则变亮,反之变暗 // c为奇数时pwmcount逐渐减小,自减段减小,此时LED如果为1,常0段为0,则变亮,反之变暗 define fLED(a,b,c) {LED1 = a

这个要用到软件的pwm,因为51的没有硬件的pwm所以只好自己写软件的了。首先,要做一个软件三角波发生器子程序,频率自己定,就是变亮变暗的周期。此函数的返回值作为pwm的输入值。再做一个pwm的模拟程序,占空比(0-100

T0_1:CALLSET_LED T0_OUT:POPACC POPPSW RETI SET_LED:MOVA,PWM SETBC SUBBA,PWM_JS JCSET_LED1 CLRLED RET SET_LED1:SETBLED RET END

急求!!!51单片机用汇编语言如何编写LED灯逐渐变亮在逐渐变暗?谢谢大神们

肯定能啦,很常规

1、按下 Auto/Del 键来选择到自动运行状态,对应的 LED 被点亮。2、在无 Chase 键按下的情况下,会自动运行 Bank 用 Bank ( UP / Down 键)来选择要运行的 Bank。3、在自动运行状态下,按下哪个 Chase 键哪个

LED灯带必须是带双芯片的,才能变换色彩。双色灯有两根导线进入两种LED,另一根为公共地线,共三根导线;三色灯有三根导线分别进入三种LED,另一根为公共地线,共四根导线。购买成品的双色和三色控制器,根据端口标识连接每条线

有全彩灯,一个公用端,其余三个引脚,红色一个,绿色一个,蓝色一个

在掌握基本语言知识后,可以尝试编写一些简单的控制程序,如让LED灯闪烁、改变颜色等。三、通过实例操作实现LED灯的编程控制 理论学习固然重要,但只有通过实际操作才能真正掌握LED编程控制器。学习者可以通过一些实例操作,如使用

采用PWM控制。频率在100Hz左右,人眼觉察不出闪烁。通过调节PWM的占空比,可控制LED的亮度。

使LED灯亮度发生变化可以采用PWM控制或者通断延时时间发生变化来实现,举例如下:LED EQU P1.0 ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV R7,#1 LOOP1: ;渐亮 CLR P1.0 LCALL DELAY ;PWML SETB P1.0 LCALL DELA

灯光控台编程,怎么让LED灯单色渐变?

include < reg51.h > include < intrins.h > sbit K1 =P3^2 ; //亮度增加键 sbit K2 =P3^3 ; //亮度减少键 unsigned char PWM=0x7f ;void delayms(unsigned char ms);void delay(unsigned char

uchar count ,z;sbit key_1 = P3^7;sbit key_2 = P3^6;sbit PWM = P2^0;void key_control();void init ();void create_PWM(uchar);void delay(uint);void main (){ init ();while(1);{ key_control(

第一,要理解中断在这里的作用是固定的“一小段”时间进入一次。第二,PWM_ON在程序中的作用很大,它会由0--->CYCLE--->0并且一直循环下去。可以把它看成一个有规律的变化的量。第三,每进入中断一次count++,满足条

else led=1;//关灯 f(t>80)t=0;//t置零,要改呼吸频率就改掉“80”这个数还有下面的一个“80”也一起改 } } void Timer0Interrupt(void) interrupt 1 //T0中断,用来控制PWM电平,每50微秒,t自加一次 {

; 利用定时器控制产生占空比可变的 PWM 波 ; 按K1,PWM值增加,则占空比减小,LED 灯渐暗。; 按K2,PWM值减小,则占空比增加,LED 灯渐亮。;当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警 ;资源:p0口,8路指示

请教一下,有没有人可以帮忙写一个51单片机用pwm模块控制灯的亮度变化的程序,谢谢了~急!!!

假如说,第一个灯肯定比第二个灯亮的话,可以直接把8个LED灯的限流电阻弄成不同阻值的。就像楼上说的那样。但如果想随便变换不同的灯都能有不同的亮度话,硬件电路可以不变,限流电阻都一样。可以在程序里这样写:首先

sbit k2=P3^2;//减键 sbit k3=P3^4;//停止 uchar a=10;void delay(uint x)//延时函数 { uchar i;while(x--)for(i=0;i<110;i++);} void init(){ TMOD=0X01;//晶振11.0592,定时器定时方式1 TH0=

首先89C52内部没有硬件PWM发生器,只能通过定时器模拟!你可以通过两个定时器,T0控制周期,T1控制占空比。例如:实现周期为1000us,占空比为20%的PWM,用P1.0实现 首先你设置T0为65536-1000 (12M晶振)T1为65536-200 首先

把pwm的占空比调高,灯就慢慢亮了,把pwm的占空比调低,灯就会慢慢变暗,

用几个变量表示按键的按下/松开状态,然后用定时器中断设置PWM的频率,例如要50hz的频率,那么定时器中断周期(PWM周期的一半)可以设置为10ms,在中断服务程序内根据按键的状态确定是否需要对PWM输出管脚进行翻转。改方法可以输

uchar data si;void timer0() interrupt 1 using 1 {//中断里的片断:80Hz以上就能稳定而不闪烁,即每秒至少要溢出80*100次 定时0.1ms自装载好了 si++ if(si>=100) si=0; //100级亮度 LED0 = (si

我的单片机是stc 89c52。 我想利用pwm,按键控制8个LED慢慢的亮,慢慢的暗。怎么片成啊?跪求

灯光太亮可以通过以下几种方法减弱:1. 可以购买LED专用的条光开关进行安装,这种方法比较简单,直接将原来的开关替换掉即可。2. 可以选用灯光亮度调节器进行调节,需要专业电工操作。3. 可以加灯罩,加装一个透光灯罩,通过

这个灯光渐变用数字电路控制的话,可以通过PWM波来实现,将占空比由小到大渐变,可以是灯光强度由弱变强,反之则可以由强变弱。具体实现可以用定时器来做,比如:include define uchar unsigned char define uint u

这个通过编程控制电流,LED的亮度和电流成正比。

您好,建议您看一下SK6812灯珠这款方案,了解其灯珠参数,兴许可以帮到您 可以百度搜“SK6812灯珠”或者“5050幻彩灯珠”

想定时实现LED灯光亮强度的渐变,各位大神有什么好的方法

LED3 = (si

这个灯光渐变用数字电路控制的话,可以通过PWM波来实现,将占空比由小到大渐变,可以是灯光强度由弱变强,反之则可以由强变弱。具体实现可以用定时器来做,比如:include define uchar unsigned char define uint u

首先,要做一个软件三角波发生器子程序,频率自己定,就是变亮变暗的周期。此函数的返回值作为pwm的输入值。再做一个pwm的模拟程序,占空比(0-100)是三角波发生器的输出,pwm模拟程序控制某个端口输出1和0的占空比来控

PWM EQU 7FH WM赋初始值- K; H, S9 t! G;OUT EQU P0 ;8个LED灯的接口, {; ~, G! M* f; @% m2 q7 x ! O2 y; \$ {. P4 p6 {( d9 z INCKEY EQU P3.4 ;K1,PWM值

用PWM控制LED的由灭渐亮的程序?

要看你的驱动电压够不够。具体要看参数。最好有个驱动电路,不要直接控制。关于LED的一些事可以关注“射影无忌”公众号,里面有比较全的LED知识。
你的程序功能就是一直闪呀。 计时器0中断20次后输出反相,后每中断128次输出反相。就一直亮熄了。 计时器1中断作用不大。
用万能表测量皮肤电阻就行了!
在测试LED芯片的亮度和评价LED光辐射安全性的过程中,通常采用成像法,对于芯片的测试可以采用显微成像进行测量。光亮度是光源发光表面上某一处的亮度L,是该面元dS在给定方向上的发光强度除以该面元在垂直于给定方向平面上的正投影面积之商: 光亮度的单位是坎德拉每平方米(cd/m2)。当发光表面与测量方向垂直时,则cosθ=1。 LED光源因其有着寿命长、能耗低、可靠性高、易于控制等特点,正逐步取代白炽 灯及荧光灯照明市场,成为新一代照明光源。 扩展资料: LED的频闪特性: 由于LED具有非常快的响应时间,因此在一定的条件下,LED的频闪特性主要是由于驱动电源的特性决定。而传统光源由于响应速度慢(上升、下降时间长),发光具有很大延后性,因此对电流的抖动不敏感。 光源在交流或脉冲直流电源的驱动下, 随着电流幅值的周期性变化,光通量、照度或亮度发生相应的变化。因此LED光源的频闪问题比传统的光源要更加突出、严重,需要给予必要的关注。 参考资料来源: 百度百科-LED亮度
#include #define uchar unsigned char #define uint unsigned int sbit lamp=P2^0;//输出 sbit k1=P3^3;//加键 sbit k2=P3^2;//减键 sbit k3=P3^4;//停止 uchar a=10; void delay(uint x)//延时函数 { uchar i; while(x--) for(i=0;i<110;i++); } void init() { TMOD=0X01;//晶振11.0592,定时器定时方式1 TH0=0XFF;//100us定时 TL0=0XA4; EA=1;//开总中断 ET0=1;//开定时器中断 TR0=1;//开定时器 } void key() { if(!k1) { delay(10); if(!k1) { a++; if(a==99) a=1; } } // while(!k1); if(!k2) { delay(10); if(!k2) { a--; if(a==1) a=99; } } // while(!k2); if(!k3) { delay(10); if(!k3) { TR0=~TR0;//开定时器 } } while(!k3); } void main() { init(); while(1) { key(); } } void timer0() interrupt 1 using 3 { uchar count; /*中断次数计数器变量*/ TH0=0xFF; /*恢复定时器初始值*/ TL0=0xA4; count++; if (count>=100) count=0; if (count<=a) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/ lamp=0; else lamp=1; }
#include #define uint unsigned int #define uchar unsigned char uchar count ,z; sbit key_1 = P3^7; sbit key_2 = P3^6; sbit PWM = P2^0; void key_control(); void init (); void create_PWM(uchar); void delay(uint); void main () { init (); while(1); { key_control(); create_PWM(count); } } void delay(uint z) { uint x,y; for(x = z;x>0;x--) for(y = 110;y>0;y--); } void init() { TMOD = 0x10; TH1 = (65536-4608)/256;//50sm TL1 = (65536-4608)%256; TR1 = 1; } void create_PWM(uchar count) { static i; if(TF1 == 1) { TF1 = 0; TH1 = (65536-4608)/256;//50sm TL1 = (65536-4608)%256; i++; if(i == 100) i=0; if(i <= count) PWM = 1; else PWM = 0; } } void key_control() { if(key_1 ==0) { delay(10); if(key_1 == 0) { count+= 5; if(count >= 100)count = 0; } } if(key_2 ==0) { delay(10); if(key_2 ==0) { count-= 5; if(count <= 0)count =100; } } }
第一,要理解中断在这里的作用是固定的“一小段”时间进入一次。 第二,PWM_ON在程序中的作用很大,它会由0------>CYCLE------>0并且一直循环下去。可以把它看成一个有规律的变化的量。 第三,每进入中断一次count++,满足条件count==PWM_ON或count==CYCLE时改变LED的当前状态。作用是给小灯亮或灭的时间不同。 第四,LED的亮度与其通电时间有关,也可以说成是占空比。上面的条件要理解成是呈线性增加或减小的频率。可以理解成三角波,对应的面积就是通电时间。 不知能不能给你讲明白!
#include #define uint unsigned int #define uchar unsigned char uchar count ,z; sbit key_1 = P3^7; sbit key_2 = P3^6; sbit PWM = P2^0; void key_control(); void init (); void create_PWM(uchar); void delay(uint); void main () { init (); while(1); { key_control(); create_PWM(count); } } void delay(uint z) { uint x,y; for(x = z;x>0;x--) for(y = 110;y>0;y--); } void init() { TMOD = 0x10; TH1 = (65536-4608)/256;//50sm TL1 = (65536-4608)%256; TR1 = 1; } void create_PWM(uchar count) { static i; if(TF1 == 1) { TF1 = 0; TH1 = (65536-4608)/256;//50sm TL1 = (65536-4608)%256; i++; if(i == 100) i=0; if(i <= count) PWM = 1; else PWM = 0; } } void key_control() { if(key_1 ==0) { delay(10); if(key_1 == 0) { count+= 5; if(count >= 100)count = 0; } } if(key_2 ==0) { delay(10); if(key_2 ==0) { count-= 5; if(count <= 0)count =100; } } }
你是做程序?那样的话就做分时间刷新,控制点亮的时间长短,就可以控制灰度了
控制常预灯 一、配接常预 :预匙指向 灯 PROGRAM 1、按PATCH 2、按0/1/2/3 预预面 3、按预预 E,预预预预的DMX512 信 预出口。通常 号 0 预预预 A 路,1 预预 预 B 路…… 4、按预预 A 预入一 硅 ,然后按一次 想要配接的预色配接按预。 个 号 你 每预入一 硅 按一次相预的预色按预预行配接。(注意:同一 硅 个 号 个 不能配接到 不同的预置预上!) 号 两个 5、配接完后按EXIT→CLEAR 退出(预成多按 次的好预预) 二、预除常预 的配接:预匙指向 灯 PROGRAM 1、先预预预面→按PATH→再按预预 E 预预 DMX512 信 预出口→然 号 后依次按预预 A→DEL→预入想要预除的硅 →再按 号 ENTER 定 确 2、预除整 配接预:先预预预面→按 个 PATH→再按预预 E 预预 DMX512 信 预出口→然后依次按预预 号 A→DEL→预预快速按 下想要预除的 两 配接预→按ENTER 定 确 3、预除完成后按EXIT→CLEAR 退出
这个要用到软件的pwm,因为51的没有硬件的pwm所以只好自己写软件的了。首先,要做一个软件三角波发生器子程序,频率自己定,就是变亮变暗的周期。此函数的返回值作为pwm的输入值。再做一个pwm的模拟程序,占空比(0-100)是三角波发生器的输出,pwm模拟程序控制某个端口输出1和0的占空比来控制灯 的明暗。pwm的思路是:检查设置值是否不等于0,是则端口置1,程序开始加1计数,计数后检查计数值是否等于设置值,如果等于则跳转,不等则继续加一,如果到100或者计数值等于设置值则使端口置0,一个pwm周期结束,如此重复就可以了。pwm周期自己看实际情况定义。如果要控制电灯泡的话,频率不用太高,50hz可以了。关键是要做隔离,用光电隔离加双向可控硅来控制。 呵呵,声明两点:1 源程序网上应该有的,或者自己买本书就什么也有了。2 不鼓励直接给别人源程序,给你思路再动手就应该很好弄了,总看别人的,不自己思考永远都是别人的。 http://www.programsalon.com/downloads88/sourcecode/embed/detail337156.html
ORG 0000G AJMP MAIN MAIN: MOV 2EH,#00H MOV 2FH,#01H ACALL JIANBIAN MOV 2EH,#01H MOV 2FH,#00H ACALL JIANBIAN AJMP MAIN JIANBIAN: MOV 20H,#120 MOV 22H,#1 LOOP: MOV 24H,#100 LED: MOV P1,2EH MOV 21H,20H DJNZ 21H,$ MOV P1,2FH MOV 23H,22H DJNZ 23H,$ DJNZ 24H,LED INC 22H DJNZ 20H,LOOP RET GND