标题: 想要对流水灯里的部分灯进行操作,对其中的某几个灯不打算操作,如何修改如下代码? [打印本页]

作者: 雨人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