顺序色灯的控制c语言

#includereg52.h

#定义uint无符号

int #定义uchar unsigned

Char delay(uint i) //延迟函数

{ uchar j;

for(;i0;我-)

for(j = 0;j140j);

}

主()

{uchar a,b,c;

While(1) //无限循环一直运行。

{ a = 0x01//将第一位调高(即1)点亮。总共有8位,每一位控制一个LED灯,用于(b = 0;b8;B) //这个循环中的程序是点亮灯一次。

{ P2 = a;//第一位开启。

延迟(500);

a = 1;//向左,认为1是第二个光。

a = a | 0x01//取or表示第一位数字在高电平时一直开着。

}

for(c = 0;C6;c)这个循环中的程序是关灯。

{

P2 = ~ P2;这是把原来的1反转为0。

延迟(500);

}

for(b = 0;B2;B) //这个和上面是重复的{ a = 0x01for(c = 0;c8;c){ P2 = a;延迟(500);a = 1;}}}}

c语言单片机,彩灯控制器设计,读程序回答问题。 //稍微改动了一下,增加了一个暂停键,中断模式,需要把这个键连接到P3.2

#includereg51.h

//包含MCU寄存器的头文件

#包括

intrins.h

/*****************************

函数功能:延时一段时间

*****************************/

无符号的

l依次亮起,闪烁三次后循环两次,延时0.5秒。流水灯的c语言程序。 给你一个思路,按I0.0设置一个M0.0,同时用传输命令MOV-B传输一个二进制数1(也就是点亮一盏灯)。用m0.0做一个1秒的脉冲(方法是在延时定时器t37前串联一个常闭的t37触点,常开的t37就是一个奇妙的脉冲)。在循环左移命令前连续使用该脉冲。停止信号I0.1 .按下它,同时复位M0.0,发送指令发送0。

如何用C语言写一个循环彩灯的程序,使用定时器模式1工作。 无符号字符灯= 0;//给你的灯分别代表P1.0~P1.7。

int I = 0;

while (1)

{

//①L2 L1,...L8依次亮起。

灯光= 0x01

for(I = 0;i7;我)

{

延迟(500);

灯光=灯光1;

}

延迟(500);

//②L1、L2、...L8依次出门。

lights = 0xfe

for(I = 0;i7;我)

{

延迟(500);

灯光=(灯光1)0x 01;

}

延迟(500);

//③L1,L2,……L8都在。

lights = 0xff

延迟(500);

//完全摧毁

lights = 0x00

延迟(500);

}

八个彩灯依次点亮,得出电路图和工作原理。 c语言1:

/*本实验为流水灯(8个led循环点亮),其作用是8个led间隔1S点亮*/

#includereg52.h//包含reg.52文件。

#define uint unsigned int//宏定义

#define uchar无符号char//宏定义

无效延迟(uint z);//声明延迟函数

uint a;//为循环定义变量

uchar代码表[]={

0xff、0xfe、0xfd、0xfb、0xf7、

0xef,0xdf,0xbf,0x7f };//定义回收的数据表。

void main()//主函数

{

a = 0;//将初始值赋给。

P1 =表[a];//将A所在表中的值赋给P1端口。

While(1)//while循环

{

延时(1000);//1S延迟子程序

If(a==8)//测试A是否等于8。

a = 0;//将值赋给

a;//a的值增加1。

P1 =表[a];//将A所在表中的值赋给P1端口。

}

}

Void delay(uint z)//1ms delay子程序,用z值改变延迟。

{

uint x,y;

for(x = z;x0;x -)

for(y = 110;y0;y-);

}

c语言2:

/*本实验为流水灯(8个led循环点亮),其作用是8个led间隔1S点亮*/

#includereg52.h//包含reg.52文件。

#define uint unsigned int//宏定义

#define uchar无符号char//宏定义

无效延迟(uint z);//声明延迟函数

uint a;//为循环定义变量

uchar代码表[]={

0xff、0xfe、0xfd、0xfb、0xf7、

0xef,0xdf,0xbf,0x7f };//定义回收的数据表。

void main()//主函数

{

a = 8;//将初始值赋给。

P1 =表[a];//将A所在表中的值赋给P1端口。

While(1)//while循环

{

延迟(100);//1S延迟子程序

If(a==0)//测试A是否等于8。

a = 8;//将值赋给

a-;//a的值增加1。

P1 =表[a];//将A所在表中的值赋给P1端口。

}

}

Void delay(uint z)//1ms delay子程序,用z值改变延迟。

{

uint x,y;

for(x = z;x0;x -)

for(y = 110;y0;y-);

}

c语言3:

/*本实验为流水灯(8个led循环点亮),其作用是8个led间隔1S点亮*/

#includereg52.h//包含reg.52文件。

# include interins . h//包含左右循环移位子函数库文件。

#define uint unsigned int//宏定义

#define uchar无符号char//宏定义

无效延迟(uint z);//声明延迟函数

uint a;//为循环定义变量

void main()//主函数

{

a = 0xfe//将初始值赋给。

While(1)//while循环

{

P1 = a;

延时(1000);//1S延迟子程序

a=_crol_(a,1);

}

}

Void delay(uint z)//1ms delay子程序,用z值改变延迟。

{

uint x,y;

for(x = z;x0;x -)

for(y = 110;y0;y-);

}

单片机控制8个发光二极管,每隔1S循环点亮。在C语言中,以数组的形式保存流水灯的循环模式,然后调用,非常方便,这是学校实验室所提倡的。延迟参数以毫秒为单位,非常准确。

控制8个LED灯从左到右点亮,再从右到左熄灭,10次后魂环完全闪烁。c语言代码 #includereg51.h

#定义uchar无符号字符

无效延迟(uchar a)

{

乌恰尔一世;

而(a-)for(I = 0;i120I);

}

主()

{

uchar i,j,led

for(I = 0;i10我)

{

led = 0xfe

for(j = 0;i8;我)

{

P0 = led

led = led1

延迟(200);

}

led = 0x80

for(j = 0;i8;我)

{

P0 = led

led =(le D1)| 0x 80;

延迟(200);

}

}

P0 = 0xff

while(1);

}

相关文章

发表新评论