找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1729|回復(fù): 4
收起左側(cè)

想要對(duì)流水燈里的部分燈進(jìn)行操作,對(duì)其中的某幾個(gè)燈不打算操作,如何修改如下代碼?

[復(fù)制鏈接]
ID:950769 發(fā)表于 2022-8-30 18:00 | 顯示全部樓層 |閱讀模式
/*************************
流水燈對(duì)應(yīng)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;//因?yàn)檫M(jìn)行熄滅操作時(shí)將P2賦值為了0xFF,即11111111
                                            //若不引入temp變量暫存當(dāng)前P2的值,之后的移位操作將毫無(wú)意義
                                            //你會(huì)發(fā)現(xiàn)LED燈一直不會(huì)亮(因?yàn)镻2的8個(gè)引腳全為1了,咋移都亮不了)
                }
        }
}

回復(fù)

使用道具 舉報(bào)

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;//因?yàn)檫M(jìn)行熄滅操作時(shí)將P2賦值為了0xF3,即1111xx11
                                            //若不引入temp變量暫存當(dāng)前P2的值,之后的移位操作將毫無(wú)意義
                                            //你會(huì)發(fā)現(xiàn)LED燈一直不會(huì)亮(因?yàn)镻2的8個(gè)引腳全為1了,咋移都亮不了)
                }
        }
}

回復(fù)

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表