标题:
想要对流水灯里的部分灯进行操作,对其中的某几个灯不打算操作,如何修改如下代码?
[打印本页]
作者:
雨人1212
时间:
2022-8-30 18:00
标题:
想要对流水灯里的部分灯进行操作,对其中的某几个灯不打算操作,如何修改如下代码?
/*************************
流水灯对应P1^0-P1^7,不打算操作的灯为P1^2,P1^3
求助各位大佬!
************************/
void light_time()
{
int i,temp,times;
P1=0xFC;//11111100->LED0、LED1亮
for(i=0;i<8;i++)
{
temp=_crol_(P1,1);
times=3;
while(times--!=0)//闪烁三次
{
P1=temp;
delay(1000);
P1=0xFF;//11111111->所有LED灯熄灭
delay(1000);
P1=temp;//因为进行熄灭操作时将P2赋值为了0xFF,即11111111
//若不引入temp变量暂存当前P2的值,之后的移位操作将毫无意义
//你会发现LED灯一直不会亮(因为P2的8个引脚全为1了,咋移都亮不了)
}
}
}
作者:
188610329
时间:
2022-8-30 23:04
/*************************
不操作的灯为P1^2,P1^3
************************/
// 全局
sbit LED_1 = ACC^1;
sbit LED_3 = ACC^3;
void light_time()
{
int i,temp,times;
P1=0xFC;//11111100->LED0、LED1亮
//你确定要这样 赋值么? P1^2, P1^3 就给你赋1了!!!
for(i=0;i<8;i++)
{
ACC =_crol_(P1,1);
LED_1 = LED3;
temp = ACC | 0x0C; // xxxx11xx
times=3;
while(times--!=0)//闪烁三次
{
delay(1000);
P1 |= 0xF3
;//1111xx11-> 除了 P1^2,P1^3 所有LED灯熄灭
delay(1000);
P1 &= temp
;//因为进行熄灭操作时将P2赋值为了0xF3,即1111xx11
//若不引入temp变量暂存当前P2的值,之后的移位操作将毫无意义
//你会发现LED灯一直不会亮(因为P2的8个引脚全为1了,咋移都亮不了)
}
}
}
作者:
xxxevery
时间:
2022-8-30 23:37
流水灯对应P1^0-P1^7,不打算操作的灯为P1^2,P1^3
用P1 = temp | 0x0C;这样每次都把P1^2,P1^3位置1,就不会亮了
作者:
wc86110
时间:
2022-8-31 00:19
只需修改为你想要 IO 亮一火即可,代码电路有高电平点亮和低电平点亮之分
作者:
yzwzfyz
时间:
2022-8-31 08:11
观念改一下就行了。
是所有灯一起操作,只是你不想操作的,用它们原来的状态操作就可以了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1