当前位置:首页 » 编程语言 » C语言控制彩灯快慢
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言控制彩灯快慢

发布时间: 2022-05-21 16:14:04

A. 如何用开关控制LED闪烁快与慢两种效果单片机c语言程序及电路

#include<reg51.h>
sbit a=P1^0;
sbit b=P1^1;
int i,k;
void delay(int z)
{
for(i=z;i>0;i--)
for(k=100;k>0;k--);
}
void main()
{
while(1)
{
a=1,b=0;
delay(随便写个数,大于0的,小于30000,用来控制灯闪烁的快慢);
a=0,b=0;
delay(和上面那个括号里的数一样);
}
}
注意P字母是大写的,各个标点是英文的

B. 如何用C语言写一个循环彩灯的程序,采用定时器方式1工作。

unsigned char lights = 0; //lights到各位分别表示P1.0~P1.7

int i=0;

while (1)
{
//①L1、L2、…L8依次点亮
lights = 0x01;
for (i=0; i<7; i++)
{
delay(500);
lights = lights << 1;
}
delay(500);
//②L1、L2、…L8依次熄灭
lights = 0xfe;
for (i=0; i<7; i++)
{
delay(500);

lights = (lights << 1) + 0x01;
}
delay(500);
//③L1、L2、…L8全亮
lights = 0xff;
delay(500);
//全灭
lights = 0x00;
delay(500);
}

C. 要写一个基于51单片机的c语言程序控制彩灯效果,要求一个按键控制一种效果可来回切换,每种效果的子函数写

调用输入输出指令啊

D. 彩灯控制器的设计与制作(单片机C语言),求原理图和程序!!!

#include#include#defineucharunsignedchar#(uintz);main(){ucharaa;while(1){aa=0xfe;P1=aa;delay(100);while(1){aa=_crol_(aa,1);P1=aa;delay(100);}}}voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}

E. 依次点亮,再闪烁3次后循环2次,延时时间0.5秒流水彩灯c语言程序

给你个思路,按下I0.0,置位一个M0.0.同时用传送指令MOV-B传送一个二进制数1(就是给一盏灯亮起来).用M0.0做一个1秒的脉冲(方法是:在延时计时器t37前面串联一个常闭t37触点.计时10.而常开t37就是一妙脉冲).用这个脉冲串联在循环左移指令前面.就可以实现循环亮。停止信号I0.1.按下后复位M0.0.同时传送指令传送一个0。

F. 51单片机用4个按钮控制开始暂停快速慢速的流水灯。需要用C语言编程。求大神帮助

其实很简单的,随便使用一个定时/计数 器,使其工作在方式1(方便计算初值),然后写中断服务函数,使用_crol_()函数来反复循环做流水效果,然后在主函数最后写while(1),一直不停扫描键盘函数,然后键盘函数定义4个按键,开始:TRx=1,停止:TRx=0,至于快慢的控制你可以在中断函数里边写一个延时函数,然后按键3和4按下一次自增或自减1000(你可以取其他值),然后传递给延时函数。
有不懂的地方随时回复我。
希望我的回答能帮助到你。

G. 还是程序翻译(c语言的彩灯控制)

#include<reg52.h>
#define uint unsigned
int#define uchar unsigned
char delay(uint i) //延时函数
{uchar j;
for(;i>0;i--)
for(j=0;j<140;j++);
}
main()
{uchar a,b,c;
while(1) //死循环 一直运行
{a=0x01; //把第一个位为高(就是1) 就是变亮 一共8个位,每个位控制一个LED灯for(b=0;b<8;b++) //这个循环体里面的程序就是把灯一次点亮
{P2=a; // 第一位亮
delay(500);
a<<=1; //往左以为1 就是第二位灯亮
a=a|0x01; // 取或 意思是第一位为高 一直亮
}
for(c=0;c<6;c++) 这个循环体里面的程序就是把灯弄灭
{
P2=~P2; 这是取反 原来1变为0
delay(500);
}
for(b=0;b<2;b++) //这个和上面是重复的{a=0x01;for(c=0;c<8;c++) {P2=a; delay(500); a<<=1; }}}}

H. 节日彩灯控制器的设计用C语言来编程,求程序!

程序大纲:
1.单片机初始化程序
2.主程序(把p1.1到p1.4写到存储器R1到R4)在用djnz R1,SUB1完成控制 以此类推
3.子程序
SUB1:此程序依次(加延时)设置彩灯所在脚为高电平
sub2 此程序设置彩灯所在脚为低电平
sub3 同sub1
sub4 sub1调转写

I. 将如下C语言单片机程序由4灯闪烁改成8个灯闪烁,速度有慢变快在变慢~~

/* 定时器0中断 */
if (++delay1 > 8){
delay1 = 0;
if (++count > 7) count = 0;
P1 |= 0x00;
P1 &= ~(0x01 << count);
}

上面的这段,改为这样就行了,你试试。灯接在p1口上,8个。

J. C语言单片机,彩灯控制器的设计,读程序回答问题。

//稍微改了一下加了一个暂停键,中断方式,你需要将该键接到P3.2
#include<reg51.h>
//包含单片机寄存器的头文件
#include
<intrins.h>
/*****************************
函数功能:延时一段时间
*****************************/
unsigned
char
L[8]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned
char
L1[8]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
bit
pause;
void
ex0isr()
interrupt
0
{
pause=~pause;
}
void
delay1s(unsigned
int
i)
{
unsigned
int
j;
while(i--)
{
for(j=0;j<=151;j++){;}
}
while(pause);//实现暂停,键按一下暂停,再按一下恢复。
}
/*****************************
函数功能:主函数
*****************************/
void
main(void)
{
unsigned
char
i,j;
P0
=
0x00;
P1
=
0x00;
P2
=
0x00;
P3
=
0x00;
pause=0;
while(1)
{
for(j=0;j<8;j++)
{
P0=L[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P1=L[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P2=L[j];
delay1s(100);
};
for(i=0;i<8;i++)
{
P3=L[i];
delay1s(100);
};
for(j=0;j<8;j++)
{
P0=L1[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P1=L1[j];
delay1s(100);
};
for(j=0;j<8;j++)
{
P2=L1[j];
delay1s(100);
};
for(i=0;i<8;i++)
{
P3=L1[i];
delay1s(100);
};
}
}