顺序色灯的控制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);
}
最后更新于 2023-10-08 02:00:43 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章