找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1695|回复: 4
收起左侧

想要对流水灯里的部分灯进行操作,对其中的某几个灯不打算操作,如何修改如下代码?

[复制链接]
ID:950769 发表于 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了,咋移都亮不了)
                }
        }
}

回复

使用道具 举报

ID:624769 发表于 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了,咋移都亮不了)
                }
        }
}

回复

使用道具 举报

ID:59202 发表于 2022-8-30 23:37 | 显示全部楼层
流水灯对应P1^0-P1^7,不打算操作的灯为P1^2,P1^3

用P1 = temp | 0x0C;这样每次都把P1^2,P1^3位置1,就不会亮了
回复

使用道具 举报

ID:96682 发表于 2022-8-31 00:19 | 显示全部楼层
只需修改为你想要 IO 亮一火即可,代码电路有高电平点亮和低电平点亮之分
回复

使用道具 举报

ID:123289 发表于 2022-8-31 08:11 | 显示全部楼层
观念改一下就行了。
是所有灯一起操作,只是你不想操作的,用它们原来的状态操作就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表