找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1615|回復: 4
收起左側

想要對流水燈里的部分燈進行操作,對其中的某幾個燈不打算操作,如何修改如下代碼?

[復制鏈接]
ID:950769 發(fā)表于 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的值,之后的移位操作將毫無意義
                                            //你會發(fā)現(xiàn)LED燈一直不會亮(因為P2的8個引腳全為1了,咋移都亮不了)
                }
        }
}

回復

使用道具 舉報

ID:624769 發(fā)表于 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的值,之后的移位操作將毫無意義
                                            //你會發(fā)現(xiàn)LED燈一直不會亮(因為P2的8個引腳全為1了,咋移都亮不了)
                }
        }
}

回復

使用道具 舉報

ID:59202 發(fā)表于 2022-8-30 23:37 | 顯示全部樓層
流水燈對應P1^0-P1^7,不打算操作的燈為P1^2,P1^3

用P1 = temp | 0x0C;這樣每次都把P1^2,P1^3位置1,就不會亮了
回復

使用道具 舉報

ID:96682 發(fā)表于 2022-8-31 00:19 | 顯示全部樓層
只需修改為你想要 IO 亮一火即可,代碼電路有高電平點亮和低電平點亮之分
回復

使用道具 舉報

ID:123289 發(fā)表于 2022-8-31 08:11 | 顯示全部樓層
觀念改一下就行了。
是所有燈一起操作,只是你不想操作的,用它們原來的狀態(tài)操作就可以了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表